WO2020255207A1 - コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム - Google Patents

コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム Download PDF

Info

Publication number
WO2020255207A1
WO2020255207A1 PCT/JP2019/023904 JP2019023904W WO2020255207A1 WO 2020255207 A1 WO2020255207 A1 WO 2020255207A1 JP 2019023904 W JP2019023904 W JP 2019023904W WO 2020255207 A1 WO2020255207 A1 WO 2020255207A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
signature
access information
terminal
public key
Prior art date
Application number
PCT/JP2019/023904
Other languages
English (en)
French (fr)
Inventor
大喜 渡邊
盛徳 大橋
達郎 石田
滋 藤村
篤 中平
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/617,838 priority Critical patent/US20220247570A1/en
Priority to JP2021528059A priority patent/JP7174300B2/ja
Priority to PCT/JP2019/023904 priority patent/WO2020255207A1/ja
Publication of WO2020255207A1 publication Critical patent/WO2020255207A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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
    • 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/68Special signature format, e.g. XML format

Definitions

  • the present invention relates to a content use system, a licensed terminal, a browsing terminal, a distribution terminal, and a content use program.
  • Blockchain which is a type of decentralized decentralized ledger, is used in digital virtual currency transactions.
  • information on virtual currency transactions between participants is collected in units called blocks to form a blockchain.
  • the blockchain is recorded in such a way that the block is associated with the immediately preceding block, as the word chain implies. Specifically, each block is linked by including the hash value of the immediately preceding block in the block.
  • the hash value of the block changes, so it is necessary to falsify all the blocks thereafter.
  • the program code which is also called a contract, is registered in the blockchain in advance.
  • the program code is executed when the transaction is included in the block.
  • the execution result is stored in the blockchain state data.
  • IPFS InterPlanetary File System
  • IPFS InterPlanetary File System
  • files are divided into blocks of a specific size and managed by terminals belonging to IPFS.
  • the file is recognized by the identifier generated from the hash value, and the file cannot be tampered with.
  • IPFS can ensure transparency and reliability due to its decentralization and identity structure.
  • Non-Patent Document 2 the file is divided into chunks. Each chunk is summarized by DAG (Directed Acyclic Graph), and the information of the linked chunk is described in the chunk.
  • DAG Directed Acyclic Graph
  • the identifiers of all the chunks forming the DAG are registered in the blockchain.
  • Non-Patent Document 2 the list of users who can access the files managed by IPFS is retained in the smart contract on the blockchain.
  • the user is specified by an identifier on Ethereum, the Ethereum address.
  • the address is calculated from the public key generated by the user using elliptic curve cryptography, and is uniquely linked to the private key managed by the user on the terminal.
  • Non-Patent Document 2 this list is shared on the blockchain. Therefore, there is a privacy concern that the user can confirm the access right of the file and at the same time, it is determined that the user can access the file from another third party.
  • One way to increase anonymity is to use a different address for each file instead of reusing a fixed address (public key).
  • this method requires the generation and management of private keys for a plurality of addresses, which impairs usability.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a technique for ensuring anonymity of access information managed on a blockchain.
  • one aspect of the present invention is a content utilization system including a licensed terminal and a viewing terminal, wherein the licensed terminal has a content public key of the content and a user public key of the viewer of the content.
  • the access information includes a generation unit that generates access information for the content and a registration unit that registers the access information in the blockchain, and the access information aggregates the content public key and the user public key.
  • the browsing terminal includes the aggregated public key, the message for the content, and the content signature obtained by signing the message with the content private key corresponding to the content public key, and the viewing terminal obtains access information of the requested content in the blockchain.
  • a confirmation unit that verifies the aggregated signature obtained from the user signature that signs the access information message with the user private key and the content signature of the access information with the aggregated public key of the access information. If successful, it includes a requesting unit that transmits a content request including the user signature or the aggregate signature.
  • the licensed terminal of one aspect of the present invention uses the content public key of the content and the user public key of the viewer of the content to generate an access information for the content, and the access information into a blockchain.
  • the access information includes a registration unit for registration, and the access information includes an aggregate public key that aggregates the content public key and the user public key, a message for the content, and content corresponding to the content public key. Includes content signatures signed with the private key.
  • the browsing terminal of one aspect of the present invention acquires the access information of the requested content from the blockchain, and aggregates the user signature in which the message of the access information is signed by the user private key and the content signature of the access information. It includes a confirmation unit that verifies the signature with the aggregated public key of the access information, and a request unit that transmits the user signature or the content request including the aggregated signature when the verification is successful.
  • the distribution terminal of one aspect of the present invention acquires the access information of the requested content from the blockchain, and aggregates the user signature in which the message of the access information is signed by the user private key and the content signature of the access information.
  • a confirmation unit that verifies the signature with the aggregated public key of the access information
  • a request unit that sends a content request including the user signature to the licensed terminal when the verification is successful, and the content according to the content request.
  • the corresponding access information is acquired from the blockchain, and the aggregated signature that aggregates the content signature of the access information and the user signature included in the content request is verified by the aggregated public key of the access information, and the content request is executed. It is provided with a shared control unit that determines whether or not to permit.
  • the distribution terminal of one aspect of the present invention acquires the access information of the requested content from the blockchain, and aggregates the user signature in which the message of the access information is signed by the user private key and the content signature of the access information.
  • a confirmation unit that verifies the signature with the aggregated public key of the access information
  • a request unit that sends a content request including the aggregated signature to the licensed terminal when the verification is successful, and the content according to the content request.
  • a shared control unit that acquires the corresponding access information from the blockchain, verifies the aggregated signature included in the content request with the aggregated public key of the access information, and determines whether or not to grant the content request. To be equipped with.
  • One aspect of the present invention is a content usage program characterized in that a computer functions as the licensed terminal.
  • One aspect of the present invention is a content utilization program characterized in that a computer functions as the viewing terminal.
  • One aspect of the present invention is a content utilization program characterized in that a computer functions as the distribution terminal.
  • a public key for anonymization is defined separately from the address on the normal blockchain.
  • This anonymous public key also functions as an anonymous address for identifying the user, but only a limited number of parties can know it.
  • the grantor who grants the access right receives the anonymous public key from the user who is granted the access right, and identifies the user by the anonymous public key.
  • this anonymous public key will not be distributed to anyone other than those involved.
  • This anonymous public key has cryptographically aggregate characteristics. For example, when n public keys P 1 , P 2 , P 3 , ..., P n are defined, the public keys are aggregated as follows.
  • the anonymization of the user is realized by utilizing this aggregation characteristic.
  • Anonymization is performed by the licensed terminal of the licensee who registers the file and generates access information (access control information).
  • the licensed terminal (licenser) generates one public key Pc (hereinafter referred to as "anonymous content public key") that can be aggregated for the combination of the content file and the user.
  • grant terminal aggregates anonymous content public key P c, and anonymous for the user public key P u received from the user, generating an aggregate public key P which is anonymous.
  • the licensed terminal creates access information using this centralized public key P as the licensed destination of the access right, and registers it in the blockchain. At this time, permission terminal as access information, and registers the aggregate public key P, a arbitrary message m, the signature value sigma c for a message m signed anonymously content secret key s c.
  • FIG. 1 is a diagram showing an overall configuration of a content utilization system according to the first embodiment of the present invention.
  • the content utilization system 1 of the present embodiment includes a blockchain system 2 (distributed ledger system) and a file management system 3.
  • the blockchain system 2 includes a licensed terminal 4 and a browsing terminal 5. These terminals 4 and 5 are autonomously and decentralizedly connected to the blockchain network 21 which is a P2P (Peer to Peer) network.
  • the blockchain system 2 may include a plurality of control terminals 22 in addition to the licensed terminal 4 and the browsing terminal 5.
  • the blockchain of this embodiment is a smart contract type blockchain, and for example, Ethereum, which is one of the blockchain basic technologies, may be used. Ethereum is an application development platform for using blockchain as a distributed ledger for recording state transitions. However, the blockchain is not limited to Ethereum, and other than Ethereum may be used.
  • the file management system 3 includes a licensed terminal 4 and a browsing terminal 5. These terminals 4 and 5 are connected to the network 31 of the file management system 3.
  • the file management system 3 may include a plurality of control terminals 32 in addition to the license terminal 4 and the viewing terminal 5.
  • the terminals 4, 5 and 32 belonging to the file management system 3 are P2P connected via the network 31.
  • the file management system 3 is a decentralized distributed file management system such as IPFS.
  • the distributed file management system is a system in which each terminal belonging to the system manages files in a distributed manner.
  • the file management system 3 is not limited to the distributed file management system.
  • a normal cloud-type centrally managed storage may be used for the file management system 3.
  • the licensed terminal 4 is a terminal (node) used by a licensee who permits access (viewing) to the content.
  • the licensed terminal 4 is connected to the blockchain system 2 and the file management system 3.
  • the browsing terminal 5 is a terminal used by a viewer of the content, and is connected to the blockchain system 2 and the file management system 3.
  • the number of licensed terminals 4 and viewing terminals 5 may be plural.
  • the control terminal 22 of the blockchain system 2 is a terminal used by users other than the content licensor and the viewer among the users who use the system 2.
  • the control terminal 32 of the file management system 3 is a terminal used by users other than the content licensor and the viewer among the users who use the system 3.
  • the number of the control terminals 22 and 32 is two in the illustrated example, but the number is not limited to the number. Further, the control terminal 22 of the blockchain system 2 and the control terminal 32 of the file management system 3 may be different terminals, and one terminal implements the blockchain function and the file management function. You may.
  • Access information (access control information) of content data used in the content utilization system 1 is registered in the blockchain of the present embodiment.
  • the access information associates the identifier of the content data in the file management system 3 with the user who can browse.
  • the access information of this embodiment will be described with reference to FIGS. 2A and 2B.
  • the access information is information for managing the access right to the content data registered in the file management system 3.
  • the access information is created by the licensed terminal 4.
  • the access information is open to the public on the blockchain and can be viewed from other terminals connected to the blockchain network 21.
  • the access information is stored in association with the aggregate public key, the message, and the signature for each content identifier.
  • the access information shown in FIGS. 2A and 2B includes a content identifier, an aggregate public key, a message, and a signature (signature value) signed by the anonymous content private key.
  • the content identifier uniquely identifies the content data.
  • the content identifier may be, for example, a hash value of the content registered in the file management system 3.
  • This content identifier is Zui string element set for authenticating the user (P i, m i, ⁇ c i) and.
  • P is the aggregate public key
  • m is an arbitrary message
  • ⁇ c is the signature created for the message m using the anonymous content private key.
  • FIG. 2B shows an example in which a plurality of users are associated with one content identifier.
  • the content identifier is represented by C i.
  • the content identifier is a set of elements for authenticating the user has Zui string (P i, j, m i , j, ⁇ c i, j) and.
  • j 1,2 indicates that different users are handled.
  • the access information is described by the content identifier C and the authentication element set (P, m, ⁇ c ), and the superscript is omitted. ..
  • a signature algorithm using a bilinear map is used to enable signature aggregation.
  • the destination of the input M of arbitrary length is mapped defines the hash function so that G 1.
  • the public key P is as follows.
  • the signature for the hash value H (m) of the message m is as follows.
  • a different set (P 2 , s 2 , ⁇ 2 ) is defined for a set of public key, private key, and signature (P 1 , s 1 , ⁇ 1 ), and the signature ⁇ and public are summarized as follows. Suppose you want to make a key P.
  • the signature can be verified for this aggregate signature ⁇ and the aggregate public key P by using the following bilinearity.
  • the aggregated public key P in the access information is an aggregate of the anonymous content public key P c and the anonymous user public key Pu .
  • the formula for verification is as follows.
  • the aggregate signature value can be verified using the aggregate public key P.
  • This signature value ⁇ u can not be made if not in possession of the secret key s u to become a user public key P u and a pair for anonymous.
  • the user who sees the access information can check on the blockchain whether or not he / she has the access right by using his / her own anonymous user public key Pu .
  • the licensed terminal 4 of this embodiment will be described with reference to FIG.
  • the licensed terminal 4 includes a storage device 41, a processing device 42, and a communication control device 43.
  • the storage device 41 stores various data such as input data, output data, and intermediate data for the processing device 42 to execute processing.
  • the processing device 42 reads and writes data recorded in the storage device 41, inputs and outputs data to and from the communication control device 43, and executes processing in the licensed terminal 4.
  • the communication control device 43 is an interface for the licensed terminal 4 to communicably connect with a terminal belonging to the blockchain network 21 or the file management network 31.
  • the storage device 41 stores the blockchain 411, the content data 412 possessed by the licensed terminal 4, the key management data 413, and the licensed terminal program 414 for executing each function of the licensed terminal 4.
  • the blockchain data 411 includes, for example, the blockchain body data (blockchain) and state data in the blockchain-based Ethereum.
  • the data of the blockchain body is formed by connecting a plurality of blocks in a chain shape. Each block contains multiple transactions.
  • a transaction for example, sets a smart contract and also executes a function of the smart contract.
  • state data For state data, a data area is provided for each smart contract. As the smart contract is executed, the data area of the corresponding smart contract is updated.
  • state data a smart contract that manages the above-mentioned access information and the data are registered in the storage device 41.
  • the content data 412 includes a content file (also referred to as content) which is the main body of the content and management data (routing information and the like) necessary for operating the content in the file management system 3.
  • a content file also referred to as content
  • management data routing information and the like
  • the key management data 413 stores the private key for signature used in this embodiment.
  • the first key is a private key (blockchain private key) for generating a blockchain transaction.
  • This private key is a private key for signing a transaction according to the protocol of the blockchain system 2.
  • Ethereum holds a private key that uses elliptic curve cryptography.
  • the second key is a private key for anonymization (private key for anonymity) peculiar to this embodiment.
  • the private key uses the private key for generating the BLS signature, but the signature is not limited to the BLS signature as long as the signature can be aggregated.
  • the anonymous private key includes a content private key (anonymous content private key) and a user private key (anonymous user private key).
  • the processing device 42 includes a blockchain control unit 421, a file management unit 422, a generation unit 423, a registration unit 424, and a shared control unit 425.
  • the blockchain control unit 421 maintains the blockchain system in an autonomous and decentralized cooperation with the terminals connected to the network 21.
  • the blockchain control unit 421 accesses the blockchain 411 and reads or updates the data of the blockchain 411.
  • the file management unit 422 registers arbitrary content in the file management system 3 and acquires the content identifier C based on the instruction from the licensor (user).
  • a distributed file management system such as IPFS
  • the content is saved in the licensed terminal 4 (local terminal).
  • the content can be shared with other terminals via the file management system 3 as needed under the control of the sharing control unit 425. Therefore, the management data (routing information) required for sharing the location of the content with other terminals is shared by the network 31 of the file management system 3 via the communication control device 43.
  • the generation unit 423 uses the content public key of the content and the user public key of the viewer of the content to generate access information for the content. Specifically, the generating unit 423, a user public key P u for anonymous viewers to grant access to the content (the user), the pair of a content identifier C as input, the anonymous content key pair (P c , S c ) is generated, and the authentication element set (P, m, ⁇ c ) is output. It is assumed that the generation unit 423 has acquired the anonymous user public key Pu in advance.
  • the signature message m it is sufficient that different m can be generated for each pair of ( Pu , C) (that is, for each combination of user and content).
  • the data obtained by combining the aggregate signature P with the content identifier C may be m.
  • (P, ⁇ c ) may be output as an authentication factor set without specifying m.
  • Anonymous content secret key s c that the generation unit 423 generates are stored in the storage device 41 as the key management data 413.
  • the registration unit 424 registers the access information generated by the generation unit 423 on the blockchain.
  • the registration unit 424 registers access information on the blockchain to issue a transaction to the blockchain network 21 via the communication control device 43.
  • the registration unit 424 issues a transaction for registering the content identifier C by associating the authentication element set (P, m, ⁇ c ) or (P, ⁇ c ) with the corresponding value. ..
  • the sharing control unit 425 acquires the authentication element set (P, m, ⁇ c ) (that is, access information) corresponding to the content from the blockchain in response to the content request, and sets the content signature ⁇ c of the authentication element set. , The aggregated signature ⁇ that aggregates the user signature ⁇ u included in the content request is verified by the aggregated public key P of the authentication element set, and it is determined whether or not the content request is permitted.
  • the sharing control unit 425 determines whether or not the requesting source has access rights when receiving a request for sharing of the content registered in the own terminal by the licensee from another terminal, and accesses the content. Share if you have the right. For example, suppose that there is a request for content sharing from the viewing terminal 5 via the file management system 3 by designating a content identifier. The browsing terminal 5 makes a request by attaching the viewer's anonymous signature ⁇ u corresponding to the content identifier. Upon receiving the request, the shared control unit 425 acquires the access information from the blockchain and determines whether or not the viewer has the access right.
  • the sharing control unit 425 shares the content corresponding to the content identifier.
  • the viewing terminal 5 of the present embodiment will be described with reference to FIG.
  • the browsing terminal 5 includes a storage device 51, a processing device 52, and a communication control device 53.
  • the storage device 51 stores various data such as input data, output data, and intermediate data for the processing device 52 to execute processing.
  • the processing device 52 reads / writes the data recorded in the storage device 51, inputs / outputs the data to / from the communication control device 53, and executes the processing in the viewing terminal 5.
  • the communication control device 53 is an interface for the browsing terminal 5 to communicatively connect with a terminal belonging to the network 21 of the blockchain system 2 or the network 31 of the file management system.
  • the storage device 51 stores the blockchain 511, the content data 512, the key management data 513, and the browsing terminal program 514 for executing each function of the browsing terminal 5. Since the blockchain 511 is the same as the blockchain 411 of the licensed device 4, the description thereof is omitted here.
  • the content data 512 includes a content file that is the main body of the content possessed by the browsing terminal 5 and management data (routing information, etc.) necessary for operating the content in the file management system 3.
  • the key management data 513 stores the private key for signature used in this embodiment.
  • the first key is a private key (blockchain private key) for generating a blockchain transaction.
  • the second key is an anonymous private key.
  • the anonymous private key includes a private key related to the user (anonymous user private key).
  • the processing device 52 includes a blockchain control unit 521, a key management unit 522, a confirmation unit 523, a request unit 524, and a synchronization unit 525. Since the blockchain control unit 521 is the same as the blockchain control unit 421 of the licensed device 4, description thereof will be omitted here.
  • the key management unit 522 generates an anonymous user key pair ( Pu , s u ) based on an instruction from the viewer (user).
  • the public parameter Q and share it with permission terminal 4, P u s u Q holds.
  • the generated private key su is stored in the storage device 51 as key management data 513.
  • the confirmation unit 523 confirms whether or not the access right is set on the blockchain for the content identified by the content identifier C. Specifically, the confirmation unit 523 obtains the request content of the access information (authentication element sets (P, m, sigma c)) from the block chain signed message m of the access information in the user private key s u The aggregated signature ⁇ that aggregates the user signature ⁇ u and the content signature ⁇ c of the access information is verified by the aggregated public key P of the access information.
  • authentication element sets P, m, sigma c
  • the confirmation unit 523 queries the smart contract on the blockchain using the content identifier C as a query, and acquires the authentication element set (P, m, ⁇ c ).
  • the authentication factor set does not explicitly include m, and m may be a value uniquely calculated by combining P and C.
  • the confirmation unit 523 generates the viewer's signature ⁇ u for the message m.
  • the confirmation unit 523 outputs that the signature verification was successful and the signature ⁇ u of the viewer used for the verification.
  • the request unit 524 transmits a content request including the user signature ⁇ u .
  • the request unit 524 requests the file management system 3 to acquire arbitrary contents based on an instruction from the viewer (user).
  • the request requires the content identifier C and the viewer's user signature ⁇ u .
  • the request unit 524 confirms the access right of the content by using the confirmation unit 523, and acquires the signature ⁇ u of the viewer. Then, the request unit 524 transmits the content request including the content identifier C and the signature ⁇ u of the viewer to the file management system 3.
  • the file management system 3 uses the content identifier C as a key to access the licensed terminal 4 that owns the actual file, and includes the content identifier C and the viewer's signature ⁇ u for the shared control unit 425 of the licensed terminal 4. Send a content request.
  • the synchronization unit 525 synchronizes the content file with the viewing terminal 5 via the file management system 3 when the content sharing is permitted from the licensed terminal 4 in response to the content request.
  • the synchronized content file is stored in the storage device 51.
  • S11 to S16 are processes for registering the corresponding authentication factor set (P, m, ⁇ c ) on the blockchain when the licensed terminal 4 registers the content.
  • S21 to S28 are processes in which the browsing terminal 5 acquires (P, m, ⁇ c ) registered on the blockchain and requests sharing of the content file with the signature ⁇ u of the viewer.
  • S29 to S34 are processes in which the licensed terminal 4 that has received the request verifies the aggregated signature and transmits the content file.
  • the licensed terminal 4 registers arbitrary contents in the file management system 3 based on the instruction from the licensee (S11).
  • the file management system 3 is a distributed file management system such as IPFS
  • what is registered in the file management system 3 in S11 is routing information indicating the network address of the terminal, the location of the content, etc., and the content body (content file). Is held by the licensor terminal 4 itself.
  • the file management system 3 is a centralized cloud server or the like, the content itself is registered in the file management system 3 in S11.
  • the licensed terminal 4 acquires the content identifier C for the content from the file management system 3 (S12).
  • the licensed terminal 4 (generation unit 423) generates access information. Specifically, licensed terminal 4, the user public key P u for anonymous viewers to grant access to the content (the user), the pair of a content identifier C as input, the anonymous content key pair (P c , s c) to produce a (S13).
  • the licensed terminal 4 registers the content identifier C and the authentication element set (P, m, ⁇ c ) on the blockchain as access information (S16). Specifically, the license terminal 4 generates a transaction for registering access information, and issues the transaction to the blockchain network 21. As a result, the authentication element set (P, m, ⁇ c ) of the content identifier C is registered as blockchain data in the storage device of the terminal connected to the network 21.
  • the browsing terminal 5 confirms whether or not the access right is set for the content on the blockchain. Specifically, the browsing terminal 5 uses the content identifier C as a query to inquire the smart contract on the blockchain 511 of its own browsing terminal 5 (S22), and the authentication element set (P, m,) corresponding to the content identifier C. ⁇ c ) is acquired (S23).
  • the browsing terminal 5 requests the content from the file management system 3 based on the instruction from the viewer (S27). That is, the browsing terminal 5 transmits a content request including the content identifier C and the viewer's signature ⁇ u to the file management system 3.
  • the file management system 3 uses the content identifier C as a key to access the licensed terminal 4 that owns the content file, and transmits a content request including the content identifier C and the viewer's signature ⁇ u to the licensed terminal 4 (S28). ).
  • the licensing terminal 4 determines whether or not the viewing terminal 5 has an access right. Specifically, the licensed terminal 4 accesses the blockchain 511 of its own terminal and acquires the authentication element set (P, m, ⁇ c ) corresponding to the content identifier C from the blockchain 511 (S29, S30). ..
  • the license terminal 4 transmits a response to the content request in S28 and a content file corresponding to the content identifier C to the file management system 3 (S33).
  • the file management system 3 transmits the content file received in S33 to the viewing terminal 5 of the requesting source (S34).
  • the viewing terminal 5 receives the content file and stores the content file in the storage device 51.
  • the content public key P which is a collection of the content public key P c and the user public key Pu , the message m, and the message m are the contents corresponding to the content public key P c.
  • the aggregate public key is set in the access information registered in the blockchain. ..
  • the aggregate public key is a public key in which a user public key and a content public key that differs for each content are aggregated by a licensor (a person who sets authority). That is, in the present embodiment, the user public key is not registered in the blockchain, and the user public key can be anonymized. Access information published by block chain (authentication element set), the aggregate public key P, a message m, since a content signature sigma c, a third party acquires the user public key P u using for anonymous Can't.
  • the licensee who gives the access right and the viewer who has the access right can determine that the viewer has the access right. It is possible to provide a mechanism in which it is not possible to easily determine which user can access from a third party other than the related parties (licenser, viewer).
  • a different user public key is used for each content, and a fixed specific user public key can be used instead of the method of throwing away the user public key.
  • a fixed specific user public key can be used instead of the method of throwing away the user public key.
  • This embodiment is an embodiment in which the content is distributed from a terminal other than the licensed terminal.
  • FIG. 7 is a diagram showing an overall configuration of the content utilization system according to the second embodiment.
  • the illustrated content utilization system 1A is different from the content utilization system 1 of the first embodiment shown in FIG. 1 in that it includes a distribution terminal 6, and is the same as the content utilization system 1 of the first embodiment in other respects.
  • the content file which is the substance of the content
  • the distribution terminal 6 does not have the authority to permit the viewer to share the content, but has the authority to hold the substance of the content and have the viewing terminal 5 share the content according to the access information registered on the blockchain.
  • the role of the distribution terminal 6 is to first request the content from the licensed terminal 4 and redistribute the acquired content to the viewing terminal 5.
  • the licensed terminal 4 can disperse and gently distribute the content without centrally managing the content.
  • the redistribution of content it is distributed only to a limited number of users according to the access information.
  • the distribution terminal 6 will be described below.
  • the distribution terminal 6 of the present embodiment will be described with reference to FIG.
  • the distribution terminal 6 includes a storage device 61, a processing device 62, and a communication control device 63.
  • the storage device 61 stores various data such as input data, output data, and intermediate data for the processing device 62 to execute processing.
  • the processing device 62 reads and writes the data recorded in the storage device 61, inputs and outputs the data to and from the communication control device 63, and executes the processing in the distribution terminal 6.
  • the communication control device 63 is an interface for connecting the distribution terminal 6 to a terminal belonging to the blockchain network 21 or the file management network 31 so as to be able to communicate with each other.
  • the storage device 61 stores the blockchain 611, the content data 612, the key management data 613, and the distribution terminal program 614 for executing each function of the distribution terminal 6. Since the blockchain 611 is the same as the blockchain 411 of the licensed device 4, the description thereof is omitted here.
  • the content data 612 includes a content file that is the main body of the content possessed by the distribution terminal 6 and management data (routing information, etc.) necessary for operating the content in the file management system 3.
  • the key management data 613 stores the private key for signature used in this embodiment.
  • the first key is a private key (blockchain private key) for generating a blockchain transaction.
  • the second key is an anonymous private key.
  • the anonymous private key includes the anonymous user private key of the distributor.
  • the processing device 62 includes a blockchain control unit 621, a key management unit 622, a confirmation unit 623, a request unit 624, a synchronization unit 625, and a shared control unit 626. Since the blockchain control unit 621 is the same as the blockchain control unit 421 of the licensed device 4 shown in FIG. 3, description thereof will be omitted here.
  • the key management unit 522 generates anonymous user key pairs (P d , s d ) based on instructions from the distributor (user).
  • P d s d Q is established by the public parameter Q shared with the licensed terminal 4.
  • the generated private key s d is stored in the storage device 61 as key management data 613.
  • the licensed terminal 4 has acquired the distributor's anonymous user public key P d and the viewer's anonymous user public key Pu in advance (a method in which the licensed terminal 4 acquires these public keys). And the route does not matter).
  • different authentication factor sets P, m, ⁇ c
  • the authentication element set of distributors and E d describes the authentication element set of visitors and E u.
  • the authentication factor sets Ed and Eu are registered on the blockchain.
  • the confirmation unit 623 confirms whether or not the access right is set on the blockchain for the content identified by the content identifier C. Specifically, the confirmation unit 623 acquires the access information (authentication element set (P, m, ⁇ c )) of the requested content from the blockchain, and signs the access information message m with the user private key. And the aggregated signature ⁇ that aggregates the content signature ⁇ c of the access information is verified by the aggregated public key P of the access information.
  • the access information authentication element set (P, m, ⁇ c )
  • the distribution terminal 6 in advance to share anonymous for user public key P d the license terminal 4, the grant terminal 4, the access rights of the anonymous for the user public key P d for the content identifier C on the block chain
  • the confirmation unit 623 queries the smart contract on the blockchain using the content identifier C as a query, and acquires all the authentication element sets (P, m, ⁇ c ).
  • the authentication factor set does not explicitly include m, and m may be a value uniquely calculated by combining P and C.
  • each authentication element set E d of the viewing terminal 5 and distribution terminal 6, E u is obtained may include authentication element set for other users.
  • Confirmation unit 623 determines E d, for all of the authentication element set containing E u, repeat the following processing, if the following equation is satisfied by any one of the authentication element set, successful signature verification and.
  • the authentication element set E d confirmation unit 623 generates a signature sigma d of the distributor to the message m.
  • the confirmation unit 623 outputs that the signature verification was successful and the distributor's signature ⁇ d used for the verification. Confirmation unit 623, if successful in the signature verification of the authentication element set E d does not perform the signature verification of other authentication element set E u, if it fails to signature verification of the authentication element set E d is, other authentication the elements set E u, the same process is repeated.
  • the request unit 624 transmits a content request including the distributor's user signature ⁇ d .
  • the requesting unit 624 requests the file management system 3 for arbitrary contents based on the instruction from the distributor.
  • the request requires the content identifier C and the distributor's signature ⁇ d .
  • the request unit 624 confirms the access right of the content by using the confirmation unit 623, and acquires the signature ⁇ d of the distributor. Then, the request unit 624 transmits the content request including the content identifier C and the distributor's signature ⁇ d to the file management system 3.
  • the file management system 3 uses the content identifier C as a key to access the licensed terminal 4 that owns the content, and requests the shared control unit 425 of the licensed terminal 4 to include the content identifier C and the distributor's signature ⁇ d. Send.
  • the requesting unit 624 may add index information indicating which authentication element set the signature ⁇ d is a signature to, in addition to the content identifier C and the signature ⁇ d .
  • the synchronization unit 625 synchronizes the content file with the distribution terminal 6 via the file management system 3 when the content sharing is permitted from the licensed terminal 4 in response to the content request.
  • the synchronized content file is stored in the storage device 61.
  • the sharing control unit 626 determines whether or not the requesting source has an access right when receiving a request for sharing of the content registered in the own terminal by the distributor, and if the requester has the access right. ,Share. Specifically, the sharing control unit 626 acquires the authentication factor set Eu (P, m, ⁇ c ) (that is, access information) of the browsing terminal 5 corresponding to the content from the blockchain in response to the content request. Then, the aggregated signature ⁇ that aggregates the content signature ⁇ c of the authentication element set and the user signature ⁇ u included in the content request is verified with the aggregated public key P of the authentication element set, and whether or not to approve the content request is confirmed. judge.
  • the browsing terminal 5 requests the content by attaching the viewer's anonymous signature ⁇ u corresponding to the content identifier.
  • the shared control unit 626 acquires the access information from the blockchain and determines whether or not the viewer has the access right.
  • Judgment repeats the following signature verification for all authentication factor sets (P, m, ⁇ c ) corresponding to the content identifier, and if signature verification is successful with any of the authentication factor sets, the viewer has access rights. Judge that there is.
  • FIGS. 9 and 10 are sequence diagrams showing the operation of the content utilization system. Here, the points different from those of the first embodiment will be mainly described, and the same processing as that of the first embodiment will be briefly described.
  • the license terminal 4 registers arbitrary content in the file management system 3 based on the instruction from the licensee, and acquires the content identifier C for the content from the file management system 3 (S41).
  • the licensed terminal 4 generates access information (S42). License terminal 4, it is assumed the anonymity for the user public key P u of visitors and anonymous for the user public key P d of the distributor, is a pre-been acquired.
  • the licensed terminal 4 uses the anonymous user public key P d of the distributor to generate an authentication element set Ed (P, m, ⁇ c ) for the distributor corresponding to the content of the content identifier C. Further, the licensed terminal 4 uses the anonymous user public key Pu of the viewer to generate an authentication element set Eu (P, m, ⁇ c ) for the viewer corresponding to the content of the content identifier C.
  • the generation of the authentication factor set is the same as that of the first embodiment.
  • the grant terminal 4 (authentication element set E d content identifier C, E u) accessing information, and registers on the block chain (S43).
  • the distribution terminal 6 confirms whether or not the access right is set for the content on the blockchain. Specifically, the distribution terminal 6, a content identifier C as a query, query the smart contract on the block chain 611 of its own distribution terminal 6 (S52), the authentication element set corresponding to the content identifier C E d, E u (S53).
  • the distribution terminal 6 (in this case, the authentication element set E d, E u) each authentication element set E is performed for, S54 ⁇ S56 of the process, respectively.
  • the distribution terminal 6 outputs that the signature verification was successful and the signature ⁇ d of the distributor used for the verification (S56).
  • the distribution terminal 6 fails in the signature verification of one authentication factor set E, the distribution terminal 6 does not perform the signature verification of the remaining authentication factor set E. That is, the distribution terminal 6 repeatedly performs signature verification (S54 to S56) of each acquired authentication factor set E until the signature verification is successful.
  • the distribution terminal 6 transmits a content request including the content identifier C and the distributor's signature ⁇ d to the file management system 3 based on the instruction from the distributor (S57).
  • the file management system 3 uses the content identifier C as a key to access the licensed terminal 4 that owns the content file, and transmits a content request including the content identifier C and the distributor's signature ⁇ d to the licensed terminal 4 (S58). ).
  • the licensed terminal 4 determines whether or not the distribution terminal 6 has an access right to the content of the own terminal 4 in response to the request from the distribution terminal 6. Specifically, the licensed terminal 4 acquires all the authentication element sets E (P, m, ⁇ c ) corresponding to the content identifier C from the blockchain 411 (S59).
  • the license terminal 4 When the license terminal 4 has the access right, the license terminal 4 transmits a response to the content request of S58 and the content file of the content identifier C to the file management system 3 (S61).
  • the file management system 3 transmits the received content file to the requesting distribution terminal 6 (S62).
  • the distribution terminal 6 receives the content file and stores it in the storage device 61.
  • the browsing terminal 5 generates an anonymous user key pair ( Pu , s u ) based on an instruction from the viewer (S71).
  • the public parameter Q and share it with permission terminal 4, P u s u Q holds.
  • the browsing terminal 5 confirms whether or not the access right is set on the blockchain for the content identified by the content identifier C.
  • the browsing terminal 5 queries the smart contract on the blockchain 511 of its own browsing terminal 5 using the content identifier C as a query, and all the authentication element sets E (P, m,) corresponding to the content identifier C. ⁇ c ) is acquired (S72).
  • the browsing terminal 5 transmits a content request including the content identifier C and the viewer's signature ⁇ u to the file management system 3 based on the instruction from the viewer (S74).
  • the file management system 3 uses the content identifier C as a key, the file management system 3 transmits a content request including the content identifier C and the viewer's signature ⁇ u to the distribution terminal 6 that owns the content file (S75).
  • the distribution terminal 6 determines whether or not the viewing terminal 5 has the access right to the content held by the own terminal 6 in response to the request from the viewing terminal 5. Specifically, the distribution terminal 6 accesses the block chain 611 of the terminal 6, all the authentication element set E d corresponding to the content identifier C, and E u, obtained from block chain 611 (S76).
  • Distribution terminal 6 all the authentication element set E d obtained using the E u, verifies the signature sigma u Audience (S77). Verification of the signature ⁇ u is the same as in S60. Distribution terminal 6 determines acquired authentication element set E d, if the signature is verified sigma u using either E u, and have access to the browsing terminal 5 to the content, view the content Share with terminal 5.
  • the distribution terminal 6 When the distribution terminal 6 has the access right, the distribution terminal 6 transmits a response to the content request of S75 and the content file of the content identifier C to the file management system 3 (S78).
  • the file management system 3 transmits the content file to the viewing terminal 5 of the request source (S79).
  • the viewing terminal 5 receives the content file and stores it in the storage device 51.
  • the distribution terminal 6 of the present embodiment described above does not need to store the anonymous content key P c, and when the content is requested, the user signature ⁇ u sent by the requesting viewing terminal 5 and the block chain. It is possible to determine whether the requester has access authority by using the authentication factor set (P, m, ⁇ c ) published in.
  • the distribution terminal 6 of the present embodiment does not require the browsing terminal 5 to use the anonymous user public key Pu .
  • Information distributed terminal 6 can know the authentication element set (P, m, ⁇ c) is only and user signature sigma u, distribution terminal 6, an anonymous for the user public key P u of the viewer from these data You can't get it. Therefore, in the present embodiment, the browsing terminal 5 can acquire the content without the distribution terminal 6 that relays and distributes the content also knowing the anonymous user public key Pu .
  • a general-purpose computer system as shown in FIG. 11 can be used.
  • the computer system shown is a CPU (Central Processing Unit, processor) 901, memory 902, storage 903 (HDD: Hard Disk Drive, SSD: Solid State Drive), communication device 904, input device 905, and output device. 906 and.
  • the memory 902 and the storage 903 are storage devices.
  • each function of each device is realized by executing a predetermined program loaded on the memory 902 by the CPU 901.
  • the licensed terminal 4, the viewing terminal 5, and the distribution terminal 6 may be implemented on one computer, or may be implemented on a plurality of computers. Further, the licensed terminal 4, the viewing terminal 5, and the distribution terminal 6 may be virtual machines mounted on a computer.
  • the program for the licensed terminal 4, the program for the viewing terminal 5, and the program for the distribution terminal 6 are HDD, SSD, USB (Universal Serial Bus) memory, CD (Compact Disc), DVD (Digital Versatile Disc), etc. It can be stored on a computer-readable recording medium or distributed over a network.
  • Modification example 1 In key aggregation using BLS signatures, measures may be taken to multiply the signature value or key by a specific number and then aggregate in order to prevent unauthorized key exchange attacks such as Rouge-key attacks. By taking the same measures in this embodiment as well, it becomes possible to maintain higher strength and anonymity.
  • two secret values t c and tu that are deterministically determined between the licensor and the viewer are prepared.
  • applying a hash function H 0 for each output a unique number from additive cyclic group G 1 anonymous content public key P c and anonymous for the user public key P u, t c, may be t u.
  • the aggregate public key is defined as follows.
  • the corresponding aggregate signature is as follows.
  • the content signature sigma c which has been described in the above embodiments, is replaced with its t c multiplied by content signature t c sigma c, authentication element set included in the access information (P ', m, t c ⁇ c ). Further, the information of the viewer attached by the browsing terminal 5 at the time of requesting the content is multiplied by tu to obtain tu ⁇ u .
  • the signature ⁇ may be attached. That is, the confirmation unit 523 of the browsing terminal 5 may transmit a content request including the aggregated signature ⁇ instead of the anonymous user signature ⁇ u .
  • the sharing control unit 425 of the licensed terminal 4 verifies the aggregated signature ⁇ included in the content request with the aggregated public key of the authentication element set (access information), and determines whether or not to permit the content request.
  • the viewing terminal 5 and the distribution terminal 6 of the second embodiment may transmit a content request including the aggregated signature ⁇ instead of the anonymous user signatures ⁇ u and ⁇ d (FIGS. 9 and 10 :). S56-S58, S73-S75).
  • the licensing terminal 4 and the distribution terminal 6 of the second embodiment verify the aggregated signature ⁇ included in the content request with the aggregated public key of the authentication element set, and determine whether or not to permit the content request ( FIG. 10: S60, S77).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

許諾端末4は、コンテンツのコンテンツ公開鍵と、コンテンツの閲覧者のユーザ公開鍵とを用いて、前記コンテンツに対するアクセス情報を生成する生成部423と、アクセス情報をブロックチェーンに登録する登録部424とを備え、アクセス情報は、コンテンツ公開鍵とユーザ公開鍵とを集約した集約公開鍵と、コンテンツ用のメッセージと、メッセージをコンテンツ公開鍵に対応するコンテンツ秘密鍵で署名したコンテンツ署名とを含み、閲覧端末5は、要求するコンテンツのアクセス情報をブロックチェーンから取得し、アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、アクセス情報のコンテンツ署名とを集約した集約署名を、アクセス情報の集約公開鍵で検証する確認部523と、検証に成功した場合、ユーザ署名または前記集約署名を含むコンテンツ要求を送信する要求部524とを備える。

Description

コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム
 本発明は、コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラムに関する。
 デジタル仮想通貨の取引において、非中央集権型の分散台帳の一種であるブロックチェーンが用いられる。ブロックチェーンでは、参加者間の仮想通貨の取引の情報がブロックという単位でまとめられ、ブロックチェーンを形成する。ブロックチェーンの構造に関し、ブロックチェーンは、チェーンという言葉のとおり、ブロックが直前のブロックと紐付けが行われる形で記録される。具体的には、直前のブロックのハッシュ値をブロックの中に含むことで、各ブロックが紐付けされる。
 これにより、ある時点のブロックの中に含まれた取引情報を改竄するには、ブロックのハッシュ値が変わることからそれ以降全てのブロックの改竄が必要となる。また、ブロックを追加する際、それを追加することによってブロックのハッシュ値が特定条件と合致するような付加情報(ナンス)を発見する処理(マイニング)が必要である。この処理の計算量が非常に大きなことも相まって、ブロックチェーンは、改竄に対して極めて強固な仕組みにより形成される。
 またEthereum(イーサリアム)において、プログラマブルブロックチェーンが提案されている。コントラクトとも称されるプログラムコードが、予めブロックチェーンに登録される。コントラクトの実行を指定したトランザクションが入力されると、トランザクションがブロックに含まれる際、そのプログラムコードが実行される。実行結果は、ブロックチェーンのステートデータに格納される。
 一方、特権的なノードを仮定しない分散ファイル管理システムとして、IPFS(InterPlanetary File System)がある(非特許文献1参照)。IPFSにおいて、ファイルは特定サイズのブロックに分割されて、IPFSに属する端末において管理される。ファイルは、ハッシュ値から生成される識別子により認識され、ファイルの改竄はできない。IPFSは、分散性およびID構造により、透明性および信頼性を確保できる。
 またブロックチェーンの改竄に対して極めて強固な仕組みである点に着目し、分散ファイル管理システムと、ブロックチェーンとを融合したシステムがある(非特許文献2参照)。非特許文献2において、ファイルは、チャンクに分割される。各チャンクは、DAG(Directed Acyclic Graph:向非巡回グラフ)でまとめられ、チャンクには、リンク先のチャンクの情報が記載される。非特許文献2においてDAGを形成する全てのチャンクの識別子が、それぞれブロックチェーンに登録される。
Juan Banet,"IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)",<https://ipfs.io/ipfs/QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX/ipfs.draft3.pdf> Mathis Steichen, 他、"Blockchain-Based, Decentralized Access Control for IPFS":<https://www.researchgate.net/publication/327034734_Blockchain-Based_Decentralized_Access_Control_for_IPFS>
 非特許文献2では、IPFSで管理されるファイルへアクセス可能なユーザのリストは、ブロックチェーン上のスマートコントラクト内で保持される。リストにおいて、ユーザはEthereum上の識別子、すなわちEthereumアドレスによって指定される。アドレスはユーザが生成した楕円曲線暗号による公開鍵から算出され、ユーザが端末で管理する秘密鍵に一意に紐づいている。
 非特許文献2では、このリストはブロックチェーン上に共有される。このため、ユーザ自身が当該ファイルのアクセス権を確認可能であると同時に、他の第三者からも本ユーザがアクセス可能であることが判別されるといったプライバシー上の懸念がある。匿名性を高めるための一つの方法は、固定のアドレス(公開鍵)を使い回さずに、ファイルごとに異なるアドレスを使用することである。しかし、この方法は、複数のアドレス分の秘密鍵を生成および管理する必要が生じ、ユーザビリティを損ねる。
 本発明は、上記課題を鑑みてなされたものであり、本発明の目的は、ブロックチェーン上で管理されるアクセス情報の匿名性を確保する技術を提供することにある。
 上記目的を達成するため、本発明の一態様は、許諾端末と閲覧端末とを備えるコンテンツ利用システムであって、前記許諾端末は、コンテンツのコンテンツ公開鍵と、前記コンテンツの閲覧者のユーザ公開鍵とを用いて、前記コンテンツに対するアクセス情報を生成する生成部と、前記アクセス情報をブロックチェーンに登録する登録部と、を備え、前記アクセス情報は、前記コンテンツ公開鍵と前記ユーザ公開鍵とを集約した集約公開鍵と、前記コンテンツ用のメッセージと、前記メッセージを前記コンテンツ公開鍵に対応するコンテンツ秘密鍵で署名したコンテンツ署名とを含み、前記閲覧端末は、要求するコンテンツのアクセス情報を前記ブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、検証に成功した場合、前記ユーザ署名または前記集約署名を含むコンテンツ要求を送信する要求部と、を備える。
 本発明の一態様の許諾端末は、コンテンツのコンテンツ公開鍵と、前記コンテンツの閲覧者のユーザ公開鍵とを用いて、前記コンテンツに対するアクセス情報を生成する生成部と、前記アクセス情報をブロックチェーンに登録する登録部と、を備え、前記アクセス情報は、前記コンテンツ公開鍵と前記ユーザ公開鍵とを集約した集約公開鍵と、前記コンテンツ用のメッセージと、前記メッセージを前記コンテンツ公開鍵に対応するコンテンツ秘密鍵で署名したコンテンツ署名とを含む。
 本発明の一態様の閲覧端末は、要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、検証に成功した場合、前記ユーザ署名または前記集約署名を含むコンテンツ要求を、送信する要求部と、を備える。
 本発明の一態様の配信端末は、要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、検証に成功した場合、前記ユーザ署名を含むコンテンツ要求を、許諾端末に送信する要求部と、コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記アクセス情報のコンテンツ署名と、前記コンテンツ要求に含まれるユーザ署名とを集約した集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部と、を備える。
 本発明の一態様の配信端末は、要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、検証に成功した場合、前記集約署名を含むコンテンツ要求を、許諾端末に送信する要求部と、コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記コンテンツ要求に含まれる前記集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部と、を備える。
 本発明の一態様は、上記許諾端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラムである。
 本発明の一態様は、上記閲覧端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラムである。
 本発明の一態様は、上記配信端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラムである。
 本発明によれば、ブロックチェーン上で管理されるアクセス情報の匿名性を確保する技術を提供することができる。
第1の実施形態に係るコンテンツ利用システムの全体構成図である。 アクセス情報の一例を示す図である。 アクセス情報の他の一例を示す図である。 許諾端末の構成例を示すブロック図である。 閲覧端末の構成例を示すブロック図である。 第1の実施形態の動作を示すシーケンス図である。 第1の実施形態の動作を示すシーケンス図である。 第2の実施形態に係るコンテンツ利用システムの全体構成図である。 配布端末の構成例を示すブロック図である。 第2の実施形態の動作を示すシーケンス図である。 第2の実施形態の動作を示すシーケンス図である。 コンピュータの構成図である。
 以下、本発明の実施の形態について、図面を参照して説明する。図面の記載において、同一部分には同一符号を付し説明を省略する。
 [実施形態の概要]
 本実施形態では、通常のブロックチェーン上のアドレスとは別に、匿名化用の公開鍵を定義する。この匿名用公開鍵は、ユーザを識別するための匿名アドレスとしても機能するが、限られた関係者しか知り得ないとする。例えば、アクセス権を与える許諾者は、アクセス権が与えられるユーザから匿名用公開鍵を受け取り、匿名用公開鍵によってユーザを識別する。一方で、この匿名用公開鍵は、関係者以外には配布されないとする。
 この匿名用公開鍵は、暗号学的に集約特性を持つ。例えばn個の公開鍵P,P,P,…,Pが定義されていた場合、その公開鍵は以下のように集約される。
Figure JPOXMLDOC01-appb-M000001
 各公開鍵と対となる秘密鍵を使用した署名σ,…,σを下記のように集約した場合、集約された署名σは、集約された公開鍵Pによって検証可能である。
Figure JPOXMLDOC01-appb-M000002
 このような署名鍵の集約が可能な署名アルゴリズムとして、Schnorr署名やBLS(Boneh, Lynn, Shacham)署名などが知られている。
 本実施形態では、この集約特性を利用してユーザの匿名化を実現する。匿名化は、ファイルを登録し、アクセス情報(アクセス制御情報)を生成する許諾者の許諾端末によって行われる。まず許諾端末(許諾者)は、コンテンツファイルとユーザの組合せに対して、集約が可能な1つの公開鍵P(以降、「匿名用コンテンツ公開鍵」と呼ぶ)を生成する。その後、許諾端末は、匿名用コンテンツ公開鍵Pと、ユーザから受け取った匿名用ユーザ公開鍵Pとを集約し、匿名化された集約公開鍵Pを生成する。
 許諾端末は、この集約公開鍵Pをアクセス権の許諾先としてアクセス情報を作成し、ブロックチェーンに登録する。この時、許諾端末は、アクセス情報として、集約公開鍵Pと、任意のメッセージmと、匿名用コンテンツ秘密鍵sで署名したメッセージmに対する署名値σとを登録する。
 集約の元となる匿名用コンテンツ公開鍵Pとその秘密鍵sの鍵ペアは、ファイルとユーザの組合せに対し1つランダムに生成される。そのため、例えユーザが匿名用ユーザ公開鍵Pを使い回していたとしても、集約される結果である集約公開鍵Pは毎回異なる値となる。これにより、ユーザが固定の匿名用ユーザ公開鍵Pを用いていたとしても、本実施形態では、匿名性が向上する仕組みを提供できる。
 [第1の実施形態]
 (コンテンツ利用システムの全体構成)
 図1は、本発明の第1の本実施形態に係るコンテンツ利用システムの全体構成を示す図である。本実施形態コンテンツ利用システム1は、ブロックチェーンシステム2(分散台帳システム)と、ファイル管理システム3とを備える。
 ブロックチェーンシステム2は、許諾端末4と、閲覧端末5とを備える。これらの端末4、5は、P2P(Peer to Peer)ネットワークであるブロックチェーンのネットワーク21に自律分散的に接続される。なお、ブロックチェーンシステム2は、許諾端末4および閲覧端末5の他にも、複数の制御端末22を備えていてもよい。
 ブロックチェーンシステム2に属する各端末4、5、22は、後述するブロックチェーン(分散台帳)と、ブロックチェーンを同期するためのブロックチェーン制御部とを備える。各端末は、ブロックチェーンに記録されたデータおよびトランザクションを相互に検証し、系を維持している。ブロックチェーンは、当該システム2に属する端末間で共有される。ブロックチェーンは、システムに属する端末が発行したトランザクションを含むブロックが繋がったデータである。
 なお、本実施形態のブロックチェーンは、スマートコントラクト型ブロックチェーンであって、例えばブロックチェーン基盤技術の1つであるEthereumを用いてもよい。Ethereumは、ブロックチェーンを、状態遷移を記録する分散台帳として用いるためのアプリケーション開発プラットフォームである。ただし、ブロックチェーンは、Ethereumに限定されるものではなく、Ethereum以外を用いてもよい。
 ファイル管理システム3は、許諾端末4と、閲覧端末5とを備える。これらの端末4、5は、ファイル管理システム3のネットワーク31に接続される。なお、ファイル管理システム3は、許諾端末4および閲覧端末5の他にも、複数の制御端末32を備えていてもよい。ファイル管理システム3に属する各端末4、5、32は、ネットワーク31を介してP2P接続される。
 本実施形態では、ファイル管理システム3は、例えばIPFS等の非中央集権型の分散ファイル管理システムである場合について説明する。分散ファイル管理システムは、当該システムに属する各端末が分散してファイルを管理するシステムである。ただし、ファイル管理システム3は、分散ファイル管理システムに限らない。例えば、ファイル管理システム3に、通常のクラウド型の中央管理されたストレージを利用しても良い。
 許諾端末4は、コンテンツへのアクセス(閲覧)を許可する許諾者が利用する端末(ノード)である。許諾端末4は、ブロックチェーンシステム2と、ファイル管理システム3とに接続される。閲覧端末5は、コンテンツの閲覧者が利用する端末であって、ブロックチェーンシステム2と、ファイル管理システム3に接続される。許諾端末4および閲覧端末5は、複数であってもよい。
 ブロックチェーンシステム2の制御端末22は、当該システム2を利用するユーザのうち、コンテンツの許諾者および閲覧者以外のユーザが利用する端末である。ファイル管理システム3の制御端末32は、当該システム3を利用するユーザのうち、コンテンツの許諾者および閲覧者以外のユーザが利用する端末である。制御端末22、32の数は、図示する例ではそれぞれ2つであるが、その数に限定されるものではない。また、ブロックチェーンシステム2の制御端末22とファイル管理システム3の制御端末32とは、互いに異なる端末であっても良いし、1つの端末がブロックチェーンの機能と、ファイル管理の機能とを実装しても良い。
 (アクセス情報)
 本実施形態のブロックチェーンには、コンテンツ利用システム1において利用されるコンテンツデータのアクセス情報(アクセス制御情報)が登録される。アクセス情報は、ファイル管理システム3におけるコンテンツデータの識別子と、閲覧可能なユーザとを紐づける。 
 図2A、図2Bを参照して、本実施形態のアクセス情報について説明する。アクセス情報は、ファイル管理システム3に登録するコンテンツデータへのアクセス権を管理するための情報である。アクセス情報は、許諾端末4により作成される。アクセス情報は、ブロックチェーン上に公開され、ブロックチェーンのネットワーク21に接続された他の端末からも閲覧可能である。アクセス情報は、各コンテンツの識別子に対して、集約公開鍵と、メッセージと、署名とが対応付けて格納されている。
 図2A、図2Bに示すアクセス情報は、コンテンツ識別子と、集約公開鍵と、メッセージと、匿名用コンテンツ秘密鍵によって署名された署名(署名値)とを含む。コンテンツ識別子は、コンテンツデータを一意に特定する。コンテンツ識別子は、例えば、ファイル管理システム3に登録されたコンテンツのハッシュ値などであっても良い。
 図2Aに示す例では、コンテンツ識別子Cが示され、ここでi=1,2,3とし、それぞれ異なるコンテンツを扱うことを示す。このコンテンツ識別子はユーザを認証するための要素セット(P,m,σ )と紐づいている。ここでPは集約公開鍵、mは任意のメッセージ、σはメッセージmに対して匿名用コンテンツ秘密鍵を用いて作成した署名である。
 図2Bは、1つのコンテンツ識別子に対して、複数ユーザが紐づいている例を示す。この場合、コンテンツ識別子は、Cで表現される。このコンテンツ識別子は、ユーザを認証するための要素セット(Pi,j,mi,j,σ i,j)と紐づいている。ここでi=1,2,3はそれぞれ異なるコンテンツを扱うことを示し、j=1,2は異なるユーザを扱うことを示す。
 なお、以降は、複数コンテンツおよび複数のユーザの場合を除き、アクセス情報を、コンテンツ識別子Cと、認証要素セット(P,m,σ)とで表記し、上付き添字を省略して記述する。
 以下、署名の集約について説明する。本実施形態では、署名集約を可能とするために双線形写像(ペアリング)を利用した署名アルゴリズムを用いる。
 G,Gを素数位数qの加法巡回群とし、双線形写像eを用いて下記が成り立つ位数qの乗法巡回群Gが存在する。
Figure JPOXMLDOC01-appb-M000003
 また任意長の入力Mが写像した先がGとなるようにハッシュ関数を定める。
Figure JPOXMLDOC01-appb-M000004
 有限体Fから秘密鍵sを以下のように選ぶ。
Figure JPOXMLDOC01-appb-M000005
 公開パラメータQ ∈Gを生成元として、公開鍵Pは以下となる。
Figure JPOXMLDOC01-appb-M000006
 この時、上記の秘密鍵sを用いて、メッセージmのハッシュ値H(m)に対する署名は以下となる。
Figure JPOXMLDOC01-appb-M000007
 このとき、以下の式が成り立つかを検証する。
Figure JPOXMLDOC01-appb-M000008
 上記検証において、ペアリングの双線形性を利用する。ペアリングの双線形性においては、下記の関係式が成り立つ。
Figure JPOXMLDOC01-appb-M000009
 したがって、上記の検証過程では、P=sQ、σ=sH(m)であるからσが正しい署名であるならば、下記の式が成り立つ。
Figure JPOXMLDOC01-appb-M000010
 ここでペアリングを用いた署名においては、署名鍵と公開鍵において集約特性が成り立つことを確認する。
 例えば公開鍵、秘密鍵、署名の組(P,s,σ)に対して異なる組(P,s,σ)を定義し、次のように集約された署名σと公開鍵Pを作るとする。
Figure JPOXMLDOC01-appb-M000011
 この集約署名σと集約公開鍵Pに対しても下記の双線形性を利用して、署名の検証が可能である。
Figure JPOXMLDOC01-appb-M000012
 ここで、アクセス情報の説明に戻る。アクセス情報における集約公開鍵Pは、匿名用コンテンツ公開鍵Pと匿名用ユーザ公開鍵Pとを集約したものである。この時、検証に係る式は下記のようになる。
Figure JPOXMLDOC01-appb-M000013
 上記より、ユーザからメッセージmに対する署名値σが提出されれば、集約公開鍵Pを使って集約署名値が検証可能となる。この署名値σは、匿名用ユーザ公開鍵Pと対になる秘密鍵sを所持していないと作ることはできない。
 従ってアクセス情報を見たユーザは、自身が持つ匿名用ユーザ公開鍵Pを使って、自身にアクセス権があるか否かをブロックチェーン上で確認できる。
 (許諾端末)
 図3を参照して、本実施形態の許諾端末4を説明する。許諾端末4は、記憶装置41、処理装置42、通信制御装置43を備える。
 記憶装置41には、処理装置42が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置42は、記憶装置41に記録されたデータを読み書きし、通信制御装置43とデータを入出力して、許諾端末4における処理を実行する。通信制御装置43は、許諾端末4がブロックチェーンのネットワーク21またはファイル管理のネットワーク31に属する端末と通信可能に接続するためのインタフェースである。
 記憶装置41は、ブロックチェーン411と、許諾端末4が有するコンテンツデータ412と、鍵管理データ413と、許諾端末4の各機能を実行するための許諾端末用プログラム414とを記憶する。
 ブロックチェーンデータ411は、例えばブロックチェーン基盤のEthereumでは、ブロックチェーン本体のデータ(ブロックチェーン)と、ステートデータとを含む。ブロックチェーン本体のデータは、複数のブロックがチェーン状に連結して形成される。各ブロックは、複数のトランザクションを含む。トランザクションは、例えば、スマートコントラクトを設定し、また、スマートコントラクトの関数を実行する。
 ステートデータは、スマートコントラクト毎にデータ領域が設けられている。スマートコントラクトの実行に伴って、対応するスマートコントラクトのデータ領域が更新される。本実施形態においては、ステートデータとして、上述したアクセス情報を管理するスマートコントラクトと、そのデータとが記憶装置41に登録される。
 コンテンツデータ412は、コンテンツ本体であるコンテンツファイル(コンテンツともいう)と、コンテンツをファイル管理システム3で動作させるために必要な管理データ(ルーティング情報等)と含む。
 鍵管理データ413は、本実施形態で使用する署名用の秘密鍵を保管する。本実施形態では2種類の鍵がある。第1の鍵は、ブロックチェーンのトランザクションを生成するための秘密鍵(ブロックチェーン用秘密鍵)である。この秘密鍵は、ブロックチェーンシステム2のプロトコルに従って、トランザクションに署名を付与するための秘密鍵である。Ethereumでは楕円曲線暗号を使用した秘密鍵を保持している。
 第2の鍵は、本実施形態特有の匿名化のための秘密鍵(匿名用秘密鍵)である。本実施形態においては、この秘密鍵は、BLS署名を生成するための秘密鍵を用いるものとするが、鍵の集約が可能な署名であればBLS署名に限られない。匿名用秘密鍵には、コンテンツに関する秘密鍵(匿名用コンテンツ秘密鍵)とユーザに関する秘密鍵(匿名用ユーザ秘密鍵)とを含む。
 処理装置42は、ブロックチェーン制御部421と、ファイル管理部422と、生成部423と、登録部424と、共有制御部425とを備える。
 ブロックチェーン制御部421は、ネットワーク21に接続された端末と自律分散的に協調してブロックチェーンの系を維持する。ブロックチェーン制御部421は、ブロックチェーン411にアクセスし、ブロックチェーン411のデータを読み出し、または、更新する。
 ファイル管理部422は、許諾者(ユーザ)からの指示に基づいて、任意のコンテンツをファイル管理システム3に登録し、コンテンツ識別子Cを取得する。本実施形態では、IPFS等の分散型ファイル管理システムを使用しているため、まずは、許諾端末4(ローカル端末)にコンテンツ(コンテンツファイル)が保存される。コンテンツは、共有制御部425の制御によって、必要に応じてファイル管理システム3を介して他の端末に共有可能である。従って、他の端末にコンテンツのありかを共有する際に必要な管理データ(ルーティング情報)などは、通信制御装置43介してファイル管理システム3のネットワーク31で共有される。
 生成部423は、コンテンツのコンテンツ公開鍵と、コンテンツの閲覧者のユーザ公開鍵とを用いて、コンテンツに対するアクセス情報を生成する。具体的には、生成部423は、コンテンツへのアクセスを許諾する閲覧者(ユーザ)の匿名用ユーザ公開鍵Pと、コンテンツ識別子Cとのペアを入力として、匿名用コンテンツ鍵ペア(Pc,)を生成し、認証要素セット(P,m,σ)を出力する。生成部423は、匿名用ユーザ公開鍵Pをあらかじめ取得しているものとする。
 認証要素セットは、匿名用コンテンツ公開鍵Pcと、ユーザ公開鍵Pとを集約した集約公開鍵Pと、コンテンツ用のメッセージmと、メッセージmを匿名用コンテンツ公開鍵Pに対応する匿名用コンテンツ秘密鍵sで署名したコンテンツ署名σとを含む。なお、匿名用コンテンツ鍵ペアを生成するときに必要な公開パラメータQは事前に設定され、他のユーザと共有しているものとする(すなわちP=sQ)。
 ここで、生成部423は、入力された匿名用ユーザ公開鍵Pと、生成した匿名用コンテンツ公開鍵Pとを用いて鍵集約(P= P+P)を行う。σは、メッセージmを匿名用コンテンツ秘密鍵sで署名した署名値である。すなわち、σ=sH(m)である。
 署名用のメッセージmは、(P,C)のペア毎(つまり、ユーザとコンテンツの組み合わせ毎)に、異なるmが生成できれば良い。例えば、集約署名Pにコンテンツ識別子Cを結合したデータをmとしても良い。その場合、PとCによりmが決定されるため、敢えてmを指定せずに、認証要素セットとして(P, σ)を出力しても良い。生成部423が生成した匿名用コンテンツ秘密鍵sは、鍵管理データ413として記憶装置41に格納される。
 登録部424は、生成部423で生成したアクセス情報を、ブロックチェーン上に登録する。登録部424は、通信制御装置43を介してブロックチェーンネットワーク21にトランザクションを発行することにアクセス情報をブロックチェーン上に登録する。本実施形態では、登録部424は、コンテンツ識別子Cに対して認証要素セット(P,m,σ)または(P,σ)を対応する値として紐づけて登録するためのトランザクションを発行する。
 共有制御部425は、コンテンツ要求に応じて、当該コンテンツに対応する認証要素セット(P,m,σ)(すなわち、アクセス情報)をブロックチェーンから取得し、認証要素セットのコンテンツ署名σと、コンテンツ要求に含まれるユーザ署名σとを集約した集約署名σを認証要素セットの集約公開鍵Pで検証し、コンテンツ要求を許諾するか否かを判定する。
 具体的には、共有制御部425は、許諾者が自端末に登録したコンテンツを、他端末からの共有の要求を受けた際に、要求元にアクセス権があるか否かを判定し、アクセス権がある場合に、共有する。例えばここで、閲覧端末5からファイル管理システム3を介し、コンテンツ識別子を指定してコンテンツ共有の要求があるとする。閲覧端末5は、コンテンツ識別子に対応する、閲覧者の匿名用署名σを添付して要求を行う。要求を受けた共有制御部425は、ブロックチェーンからアクセス情報を取得し、閲覧者にアクセス権があるか否かを判定する。
 判定は以下の手順で行われる。まず、共有制御部425は、コンテンツ識別子に対応する認証要素セット(P,m,σ)に対して、集約署名σ=σ+σを算出する。次に,共有制御部425は、集約署名σを集約公開鍵Pで検証する。即ち、共有制御部425は、e(H(m),P)=e(σ,Q)が成り立つか否かにより、閲覧者の署名σを検証する。共有制御部425は、前記式が成り立つ場合、コンテンツ識別子に対応するコンテンツを共有する。
 (閲覧端末)
 図4を参照して、本実施形態の閲覧端末5を説明する。閲覧端末5は、記憶装置51と、処理装置52と、通信制御装置53とを備える。
 記憶装置51には、処理装置52が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置52は、記憶装置51に記録されたデータを読み書きし、通信制御装置53とデータを入出力して、閲覧端末5における処理を実行する。通信制御装置53は、閲覧端末5がブロックチェーンシステム2のネットワーク21またはファイル管理システムのネットワーク31に属する端末と通信可能に接続するためのインタフェースである。
 記憶装置51は、ブロックチェーン511と、コンテンツデータ512と、鍵管理データ513と、閲覧端末5の各機能を実行するための閲覧端末用プログラム514とを記憶する。ブロックチェーン511は、許諾装置4のブロックチェーン411と同様であるため、ここでは説明を省略する。
 コンテンツデータ512は、閲覧端末5が有するコンテンツの本体であるコンテンツファイルと、当該コンテンツをファイル管理システム3で動作させるために必要な管理データ(ルーティング情報等)と含む。
 鍵管理データ513は、本実施形態で使用する署名用の秘密鍵を保管する。第1の鍵は、ブロックチェーンのトランザクションを生成するための秘密鍵(ブロックチェーン用秘密鍵)である。第2の鍵は、匿名用秘密鍵である。匿名用秘密鍵には、ユーザに関する秘密鍵(匿名用ユーザ秘密鍵)を含む。
 処理装置52は、ブロックチェーン制御部521と、鍵管理部522と、確認部523と、要求部524と、同期部525とを備える。ブロックチェーン制御部521は、許諾装置4のブロックチェーン制御部421と同様であるため、ここでは説明を省略する。
 鍵管理部522は、閲覧者(ユーザ)からの指示に基づいて、匿名用ユーザ鍵ペア(P, s)を生成する。許諾端末4と共有する公開パラメータQにより、P=sQが成り立つ。生成した秘密鍵sは、鍵管理データ513として記憶装置51に格納される。
 確認部523は、コンテンツ識別子Cで識別されるコンテンツに対して、ブロックチェーン上でアクセス権が設定されているか否かを確認する。具体的には、確認部523は、要求するコンテンツのアクセス情報(認証要素セット(P,m,σ))をブロックチェーンから取得し、アクセス情報のメッセージmをユーザ秘密鍵sで署名したユーザ署名σと、アクセス情報のコンテンツ署名σとを集約した集約署名σを、アクセス情報の集約公開鍵Pで検証する。
 ここで、閲覧端末5は、事前に許諾端末4に匿名用ユーザ公開鍵Pを共有し、許諾端末4によってブロックチェーン上に,コンテンツ識別子Cに対する匿名用ユーザ公開鍵Pに係るアクセス権が設定されているとする。この場合、確認部523は、コンテンツ識別子Cをクエリとしてブロックチェーン上のスマートコントラクトに問い合わせ、認証要素セット(P,m,σ)を取得する。認証要素セットには、mが明示的に含まれず、PとCを結合して一意に算出される値をmとしても良い。
 確認部523は、メッセージmに対する閲覧者の署名σを生成する。閲覧者の署名σは、σ=sH(m)となる。確認部523は、集約署名σ=σ+σを算出する。そして、確認部523は、集約公開鍵Pと、算出した集約署名σとを用いて、e(H(m),P)=e(σ,Q)が成り立つか否かにより、閲覧者の署名σを検証する。確認部523は、前記式が成り立つ場合、署名検証に成功したことと、検証に用いた閲覧者の署名σとを出力する。
 要求部524は、検証に成功した場合、ユーザ署名σを含むコンテンツ要求を送信する。具体的には、要求部524は、閲覧者(ユーザ)からの指示に基づいて、任意のコンテンツの取得をファイル管理システム3に要求する。要求には、コンテンツ識別子Cおよび閲覧者のユーザ署名σが必要である。要求部524は、確認部523を用いて、コンテンツのアクセス権を確認し、閲覧者の署名σを取得する。そして、要求部524はコンテンツ識別子Cおよび閲覧者の署名σと含むコンテンツ要求をファイル管理システム3に送信する。ファイル管理システム3は、コンテンツ識別子Cをキーとして、実体となるファイルを所有する許諾端末4にアクセスし、許諾端末4の共有制御部425に対してコンテンツ識別子Cおよび閲覧者の署名σを含むコンテンツ要求を送信する。
 同期部525は、コンテンツ要求に対して、許諾端末4からコンテンツの共有が許諾された場合に、ファイル管理システム3を介してコンテンツファイルを閲覧端末5に同期する。同期されたコンテンツファイルは記憶装置51に格納される。
 (コンテンツ利用システムの動作)
 次に、本実施形態のコンテンツ利用システムの動作について説明する。
 図5および図6は、コンテンツ利用システムの動作を示すシーケンス図である。S11からS16は、許諾端末4がコンテンツを登録した際に、ブロックチェーン上に対応する認証要素セット(P,m,σ)を登録する処理である。S21からS28は、ブロックチェーン上に登録された(P,m,σ)を閲覧端末5が取得し、コンテンツファイルの共有を閲覧者の署名σを添えて要求する処理である。S29からS34は、要求を受信した許諾端末4が集約署名を検証し、コンテンツファイルを送信する処理である。以下に、図5および図6を参照して具体的に説明する。
 許諾端末4は、許諾者からの指示に基づいて、任意のコンテンツをファイル管理システム3に登録する(S11)。ファイル管理システム3がIPFSなどの分散ファイル管理システムの場合、S11でファイル管理システム3に登録されるのは、端末のネットワークアドレス、コンテンツの場所などを示すルーティング情報であり、コンテンツ本体(コンテンツファイル)は許諾者端末4自身が保持する。なお、ファイル管理システム3が中央集権的なクラウドサーバ等の場合は、S11でコンテンツ本体がファイル管理システム3に登録される。
 許諾端末4は、ファイル管理システム3から当該コンテンツに対するコンテンツ識別子Cを取得する(S12)。許諾端末4(生成部423)は、アクセス情報を生成する。具体的には、許諾端末4は、コンテンツへのアクセスを許諾する閲覧者(ユーザ)の匿名用ユーザ公開鍵Pと、コンテンツ識別子Cとのペアを入力として、匿名用コンテンツ鍵ペア(Pc,)を生成する(S13)。
 そして、許諾端末4は、匿名用ユーザ公開鍵Pと、生成した匿名用コンテンツ公開鍵Pとを用いて鍵集約(P= P+P)を行う(S14)。また、許諾端末4は、匿名用コンテンツ鍵ペア(Pc,)の秘密鍵sを用いて所定のメッセージmに署名し、署名値σ=sH(m)を生成する(S15)。
 そして、許諾端末4は、アクセス情報として、コンテンツ識別子Cと、認証要素セット(P,m,σ)とを、ブロックチェーン上に登録する(S16)。具体的には、許諾端末4は、アクセス情報を登録するトランザクションを生成し、当該トランザクションをブロックチェーンのネットワーク21に発行する。これにより、コンテンツ識別子Cの認証要素セット(P,m,σ)が、ネットワーク21に接続された端末の記憶装置に、ブロックチェーンデータとして登録される。
 閲覧端末5は、閲覧者からの指示に基づいて、匿名用ユーザ鍵ペア(P, s)を生成する(S21)。なお、許諾端末4と共有する公開パラメータQにより、P=sQが成り立つ。
 そして、閲覧端末5は、コンテンツ識別子Cのコンテンツを要求するために、当該コンテンツに対して、ブロックチェーン上でアクセス権が設定されているか否かを確認する。具体的には、閲覧端末5は、コンテンツ識別子Cをクエリとして、自身の閲覧端末5のブロックチェーン511上のスマートコントラクトに問い合わせ(S22)、コンテンツ識別子Cに対応する認証要素セット(P,m,σ)を取得する(S23)。
 そして、閲覧端末5は、メッセージmに対する閲覧者の署名σ=sH(m)を生成する(S24)。また、閲覧端末5は、集約署名σ=σ+σを算出し、集約公開鍵Pと、算出した集約署名σとを用いて、e(H(m),P)=e(σ,Q)が成り立つか否かにより、閲覧者の署名σを検証する(S25)。閲覧端末5は、前記式が成り立つ場合、署名検証に成功したことと、検証に用いた閲覧者の署名σとを出力する(S26)。
 そして、閲覧端末5は、閲覧者からの指示に基づいて、コンテンツをファイル管理システム3に要求する(S27)。すなわち、閲覧端末5は、コンテンツ識別子Cと閲覧者の署名σとを含むコンテンツ要求をファイル管理システム3に送信する。ファイル管理システム3は、コンテンツ識別子Cをキーとして、コンテンツファイルを所有する許諾端末4にアクセスし、許諾端末4に対してコンテンツ識別子Cおよび閲覧者の署名σを含むコンテンツ要求を送信する(S28)。
 許諾端末4は、許諾者が自端末5に登録したコンテンツを、閲覧端末5からの要求を受けた際に、閲覧端末5にアクセス権があるか否かを判定する。具体的には、許諾端末4は、自端末のブロックチェーン511にアクセスし、コンテンツ識別子Cに対応する認証要素セット(P,m,σ)を、ブロックチェーン511から取得する(S29、S30)。
 許諾端末4は、取得した認証要素セット(P,m,σ)に対して、集約署名σ=σ+σを算出する(S31)。そして、許諾端末4は、集約署名σを集約公開鍵Pで検証する。即ち、許諾端末4は、e(H(m),P)=e(σ,Q)が成り立つか否かを判定し、成り立つ場合、閲覧者にアクセス権があると判定し、コンテンツ識別子Cに対応するコンテンツを閲覧端末5と共有する(S32)。
 許諾端末4は、コンテンツを共有する場合、S28のコンテンツ要求に対して許諾する旨の応答と、コンテンツ識別子Cに対応するコンテンツファイルとを、ファイル管理システム3に送信する(S33)。ファイル管理システム3は、S33で受信したコンテンツファイルを要求元の閲覧端末5に送信する(S34)。閲覧端末5は、コンテンツファイルを受信し、は記憶装置51に格納する。
 なお、本実施形態において、図2Bに示すように、一つのコンテンツ識別子に対し、複数のユーザが設定されている場合について説明する。コンテンツ識別子Cに対してi=1で、複数のユーザ(j=1,2,3,・・・,n)に対するアクセス権が設定されている場合、許諾端末4および閲覧端末5は、全ての認証要素セット(P1,j,m1,j 1,j)に対して、総当り的に署名検証を行う(図5:S24、S25、図6:S31、S32)。後述する、第2の実施形態でも同様である。
 以上説明した本実施形態では、許諾端末4は、コンテンツ公開鍵Pとユーザ公開鍵Pとを集約した集約公開鍵Pと、メッセージmと、メッセージmをコンテンツ公開鍵Pに対応するコンテンツ秘密鍵sで署名したコンテンツ署名σとを含む認証要素セット(アクセス情報)を、ブロックチェーンに登録する。
 これにより、本実施形態では、ブロックチェーンで管理される権限(ここでは、コンテンツへのアクセス権限)を示すアクセス情報の匿名化を確保することができる。したがって、閲覧者(権限を設定される者)が複数のコンテンツに対して固定のユーザ公開鍵を使い回していたとしても、ブロックチェーンに登録されるアクセス情報には、集約公開鍵が設定される。集約公開鍵は、ユーザ公開鍵と、コンテンツ毎に異なるコンテンツ公開鍵とが、許諾者(権限を設定する者)によって集約された公開鍵である。すなわち、本実施形態では、ユーザ公開鍵はブロックチェーンに登録されず、ユーザ公開鍵を匿名化することができる。ブロックチェーンで公開されるアクセス情報(認証要素セット)は、集約公開鍵Pと、メッセージmと、コンテンツ署名σであるため、第三者は匿名用に用いたユーザ公開鍵Pを取得することができない。
 本実施形態では、ブロックチェーンに公開されたアクセス情報を用いて、アクセス権を与える許諾者、および、アクセス権を持つ閲覧者は、当該閲覧者がアクセス権を持つことを判別可能であるが、関係者(許諾者、閲覧者)以外の第三者からは、どのユーザがアクセス可能かを容易に判別できない仕組みを提供することができる。
 また、本実施形態では、コンテンツごとに異なるユーザ公開鍵を使用し、ユーザ公開鍵を使い捨てる方式ではなく、固定された特定のユーザ公開鍵を用いることができる。これにより、本実施形態では、複数のユーザ公開鍵の各々の秘密鍵を生成および管理する必要が生じないため、ユーザビリティの低下を回避することができる。
 [第2の実施形態]
 以下に本発明の第2の実施形態について説明する。本実施形態は、コンテンツの配布が許諾端末以外からも行われる実施形態である。
 (コンテンツ利用システムの全体構成)
 図7は、第2の実施形態に係るコンテンツ利用システムの全体構成を示す図である。図示するコンテンツ利用システム1Aは、配布端末6を備える点において、図1に示す第1の実施形態のコンテンツ利用システム1と異なり、その他は第1の実施形態のコンテンツ利用システム1と同様である。
 本実施形態において、コンテンツの実体であるコンテンツファイルは、許諾端末4だけでなく配布端末6からも配布される。配布端末6は、コンテンツの共用を閲覧者に許諾する権限を持たないが、コンテンツの実体を保持し、ブロックチェーン上に登録されたアクセス情報に従って、閲覧端末5にコンテンツを共有させる権限を有する。
 配布端末6の役割は、まず許諾端末4にコンテンツを要求し、取得したコンテンツを閲覧端末5に再配布することである。これにより、許諾端末4がコンテンツを集中管理することなく、分散して緩やかにコンテンツを流通させることができる。コンテンツの再配布については、アクセス情報に従って、限られたユーザのみに配布される。以下に、配布端末6について説明する。
 (配布端末)
 図8を参照して、本実施形態の配布端末6を説明する。配布端末6は、記憶装置61と、処理装置62と、通信制御装置63とを備える。
 記憶装置61には、処理装置62が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置62は、記憶装置61に記録されたデータを読み書きし、通信制御装置63とデータを入出力して、配布端末6における処理を実行する。通信制御装置63は、配布端末6がブロックチェーンのネットワーク21またはファイル管理のネットワーク31に属する端末と通信可能に接続するためのインタフェースである。
 記憶装置61は、ブロックチェーン611と、コンテンツデータ612と、鍵管理データ613と、配布端末6の各機能を実行するための配布端末用プログラム614とを記憶する。ブロックチェーン611は、許諾装置4のブロックチェーン411と同様であるため、ここでは説明を省略する。
 コンテンツデータ612は、配布端末6が有するコンテンツの本体であるコンテンツファイルと、当該コンテンツをファイル管理システム3で動作させるために必要な管理データ(ルーティング情報等)と含む。
 鍵管理データ613は、本実施形態で使用する署名用の秘密鍵を保管する。第1の鍵は、ブロックチェーンのトランザクションを生成するための秘密鍵(ブロックチェーン用秘密鍵)である。第2の鍵は、匿名用秘密鍵である。匿名用秘密鍵には、配信者の匿名用ユーザ秘密鍵を含む。
 処理装置62は、ブロックチェーン制御部621と、鍵管理部622と、確認部623と、要求部624と、同期部625と、共有制御部626とを備える。ブロックチェーン制御部621は、図3に示す許諾装置4のブロックチェーン制御部421と同様であるため、ここでは説明を省略する。
 鍵管理部522は、配布者(ユーザ)からの指示に基づいて、匿名用ユーザ鍵ペア(P, s)を生成する。許諾端末4と共有する公開パラメータQにより、P=sQが成り立つ。生成した秘密鍵sは、鍵管理データ613として記憶装置61に格納される。
 許諾端末4は、配布者の匿名用ユーザ公開鍵Pと、閲覧者の匿名用ユーザ公開鍵Pとを、それぞれ事前に取得している(許諾端末4がこれらの公開鍵を取得する方法および経路は問わない)。許諾端末4が、コンテンツ識別子Cのコンテンツのアクセス権を、配布者および閲覧者に対して設定している場合、それぞれ異なる認証要素セット(P,m,σ)が生成される。ここでは、配布者の認証要素セットをEとし、閲覧者の認証要素セットをEと記載する。本実施形態では、認証要素セットEおよびEが、ブロックチェーンに登録されている。
 確認部623は、コンテンツ識別子Cで識別されるコンテンツに対して、ブロックチェーン上でアクセス権が設定されているか否かを確認する。具体的には、確認部623は、要求するコンテンツのアクセス情報(認証要素セット(P,m,σ))をブロックチェーンから取得し、アクセス情報のメッセージmをユーザ秘密鍵で署名したユーザ署名と、アクセス情報のコンテンツ署名σとを集約した集約署名σを、アクセス情報の集約公開鍵Pで検証する。
 ここでは、配布端末6は、事前に許諾端末4に匿名用ユーザ公開鍵Pを共有し、許諾端末4によって,ブロックチェーン上にコンテンツ識別子Cに対する匿名用ユーザ公開鍵Pに係るアクセス権が設定されているとする。この場合、確認部623は、コンテンツ識別子Cをクエリとしてブロックチェーン上のスマートコントラクトに問い合わせ、全ての認証要素セット(P,m,σ)を取得する。認証要素セットには、mが明示的に含まれず、PとCを結合して一意に算出される値をmとしても良い。また、本実施形態では、配布端末6と閲覧端末5の各認証要素セットE、Eが取得されるが、その他のユーザに対する認証要素セットが含まれていても良い。
 確認部623は、E、Eを含む全ての認証要素セットに対して、次の処理を繰り返し、いずれかの認証要素セットで下記の式が成り立つ場合、署名検証に成功したと判定する。例えば、認証要素セットEについて、確認部623は、メッセージmに対する配布者の署名σを生成する。閲覧者の署名σは、σ=sH(m)となる。確認部623は、集約署名σ=σ+σを算出する。そして、確認部623は、集約公開鍵Pと、算出した集約署名σとを用いて、e(H(m),P)=e(σ,Q)が成り立つか否かにより、配布者の署名σを検証する。確認部623は、前記式が成り立つ場合、署名検証に成功したことと、検証に用いた配布者の署名σとを出力する。確認部623は、認証要素セットEの署名検証に成功した場合は、他の認証要素セットEの署名検証を行わず、認証要素セットEの署名検証に失敗した場合は、他の認証要素セットEについて、同様の処理を繰り返す。
 要求部624は、検証に成功した場合、配布者のユーザ署名σを含むコンテンツ要求を送信する。具体的には、要求部624は、配布者からの指示に基づいて、任意のコンテンツをファイル管理システム3に要求する。要求には、コンテンツ識別子Cおよび配布者の署名σが必要である。要求部624は、確認部623を用いて、コンテンツのアクセス権を確認し、配布者の署名σを取得する。そして、要求部624はコンテンツ識別子Cおよび配布者の署名σと含むコンテンツ要求をファイル管理システム3に送信する。
 ファイル管理システム3は、コンテンツ識別子Cをキーとして、コンテンツを所有する許諾端末4にアクセスし、許諾端末4の共有制御部425に対してコンテンツ識別子Cおよび配布者の署名σを含むコンテンツ要求を送信する。なお、要求部624は、この要求の際にコンテンツ識別子Cと、署名σに加えて、この署名σが、いづれの認証要素セットに対する署名かを示すインデックス情報を追加してもよい。
 同期部625は、コンテンツ要求に対して、許諾端末4からコンテンツの共有が許諾された場合に、ファイル管理システム3を介してコンテンツファイルを配布端末6に同期する。同期されたコンテンツファイルは記憶装置61に格納される。
 共有制御部626は、配布者が自端末に登録したコンテンツを、他端末からの共有の要求を受けた際に、要求元にアクセス権があるか否かを判定し、アクセス権がある場合に、共有する。具体的には、共有制御部626は、コンテンツ要求に応じて、当該コンテンツに対応する閲覧端末5の認証要素セットE(P,m,σ)(すなわち、アクセス情報)をブロックチェーンから取得し、認証要素セットのコンテンツ署名σと、コンテンツ要求に含まれるユーザ署名σとを集約した集約署名σを認証要素セットの集約公開鍵Pで検証し、コンテンツ要求を許諾するか否かを判定する。
 例えばここで、閲覧端末5からファイル管理システム3を介し、コンテンツ識別子を指定してコンテンツの要求があるとする。閲覧端末5は、コンテンツ識別子に対応する、閲覧者の匿名用署名σを添付してコンテンツを要求する。要求を受けた共有制御部626は、ブロックチェーンからアクセス情報を取得し、閲覧者にアクセス権があるか否かを判定する。
 判定はコンテンツ識別子に対応する全ての認証要素セット(P,m,σ)に対して次の署名検証を繰り返し、いずれかの認証要素セットで署名検証に成功した場合、閲覧者にアクセス権があると判定する。まず、共有制御部626は、コンテンツ識別子に対応する認証要素セット(P,m,σ)に対して、集約署名σ=σ+σを計算する。次に,共有制御部425は、集約署名σを集約公開鍵Pで検証する。即ち、共有制御部626は、e(H(m),P)=e(σ,Q)が成り立つか否かにより、閲覧者の署名σを検証する。共有制御部626は、前記式が成り立つ場合、コンテンツ識別子に対応するコンテンツを共有する。
 (コンテンツ利用システムの動作)
 次に、本実施形態のコンテンツ利用システムの動作について説明する。
 図9および図10は、コンテンツ利用システムの動作を示すシーケンス図である。ここでは、第1の実施形態と異なる点を中心に記載し、第1の実施形態と同じ処理については簡略化して記載する。
 許諾端末4は、許諾者からの指示に基づいて、任意のコンテンツをファイル管理システム3に登録し、ファイル管理システム3から当該コンテンツに対するコンテンツ識別子Cを取得する(S41)。
 許諾端末4は、アクセス情報を生成する(S42)。許諾端末4は、配布者の匿名用ユーザ公開鍵Pと閲覧者の匿名用ユーザ公開鍵Pとを、事前に取得済みであるものとする。許諾端末4は、配布者の匿名用ユーザ公開鍵Pを用いて、コンテンツ識別子Cのコンテンツに対応する配布者への認証要素セットE(P,m,σ)を生成する。また、許諾端末4は、閲覧者の匿名用ユーザ公開鍵Pを用いて、コンテンツ識別子Cのコンテンツに対応する閲覧者への認証要素セットE(P,m,σ)を生成する。なお、認証要素セットの生成については、第1の実施形態と同様である。
 そして、許諾端末4は、アクセス情報(コンテンツ識別子Cの認証要素セットE、E)を、ブロックチェーン上に登録する(S43)。
 配布端末6は、配布者からの指示に基づいて、匿名用ユーザ鍵ペア(P, s)を生成する(S51)。なお、許諾端末4と共有する公開パラメータQにより、P=sQが成り立つ。生成した秘密鍵sは、記憶装置61に格納される。
 そして、配布端末6は、コンテンツ識別子Cのコンテンツを要求するために、当該コンテンツに対して、ブロックチェーン上でアクセス権が設定されているか否かを確認する。具体的には、配布端末6は、コンテンツ識別子Cをクエリとして、自身の配布端末6のブロックチェーン611上のスマートコントラクトに問い合わせ(S52)、コンテンツ識別子Cに対応する認証要素セットE、Eを取得する(S53)。
 そして、配布端末6は、各認証要素セットE(ここでは、認証要素セットE、E)について、S54~S56の処理をそれぞれ行う。例えば認証要素セットEの場合、配布端末6は、メッセージmに対する閲覧者の署名σ=sH(m)を生成する(S54)。また、閲覧端末5は、集約署名σ=σ+σを算出し、集約公開鍵Pと、算出した集約署名σとを用いて、e(H(m),P)=e(σ,Q)が成り立つか否かにより、配布者の署名σを検証する(S55)。配布端末6は、前記式が成り立つ場合、署名検証に成功したことと、検証に用いた配布者の署名σとを出力する(S56)。
 配布端末6は、1つの認証要素セットEの署名検証に成功した場合は、残りの認証要素セットEの署名検証を行わない。すなわち、配布端末6は、署名検証に成功するまで、取得した各認証要素セットEの署名検証(S54~S56)を繰り返し行う。
 そして、配布端末6は、配布者からの指示に基づいて、コンテンツ識別子Cと配布者の署名σとを含むコンテンツ要求をファイル管理システム3に送信する(S57)。ファイル管理システム3は、コンテンツ識別子Cをキーとして、コンテンツファイルを所有する許諾端末4にアクセスし、許諾端末4に対してコンテンツ識別子Cおよび配布者の署名σを含むコンテンツ要求を送信する(S58)。
 許諾端末4は、配布端末6からの要求に応じて、自端末4のコンテンツに対して、配布端末6にアクセス権があるか否かを判定する。具体的には、許諾端末4は、コンテンツ識別子Cに対応する全ての認証要素セットE(P,m,σ)をブロックチェーン411から取得する(S59)。
 許諾端末4は、取得した各認証要素セットEを用いて配布者の署名σを検証する(S60)。例えば認証要素セットE(P,m,σ)の場合、許諾端末4は、集約署名σ=σ+σを算出し、集約署名σを集約公開鍵Pで検証する。すなわち、許諾端末4は、e(H(m),P)=e(σ,Q)が成り立つか否かを判定し、成り立つ場合、コンテンツ識別子Cのコンテンツに対して配布端末6にアクセス権があると判定し、コンテンツを配布端末6と共有する。許諾端末4は、署名検証に成功するまで、取得した各認証要素セットEの署名検証を行う。
 許諾端末4は、アクセス権がある場合、S58のコンテンツ要求に対して許諾する旨の応答と、コンテンツ識別子Cのコンテンツファイルとを、ファイル管理システム3に送信する(S61)。ファイル管理システム3は、受信したコンテンツファイルを要求元の配布端末6に送信する(S62)。配布端末6は、コンテンツファイルを受信し、記憶装置61に格納する。
 閲覧端末5は、閲覧者からの指示に基づいて、匿名用ユーザ鍵ペア(P, s)を生成する(S71)。許諾端末4と共有する公開パラメータQにより、P=sQが成り立つ。そして、閲覧端末5は、コンテンツ識別子Cで識別されるコンテンツに対して、ブロックチェーン上でアクセス権が設定されているか否かを確認する。具体的には、閲覧端末5は、コンテンツ識別子Cをクエリとして、自身の閲覧端末5のブロックチェーン511上のスマートコントラクトに問い合わせ、コンテンツ識別子Cに対応する全ての認証要素セットE(P,m,σ)を取得する(S72)。
 そして、閲覧端末5は、取得した各認証要素セットEを用いて閲覧者の署名σを検証する(S73)。例えば認証要素セットE(P,m,σ)の場合、閲覧端末5は、メッセージmに対する閲覧者の署名σ=sH(m)を生成すし、集約署名σ=σ+σを算出する。そして、閲覧端末5は、集約公開鍵Pと、集約署名σとを用いて、e(H(m),P)=e(σ,Q)が成り立つか否かにより、閲覧者の署名σを検証する。閲覧端末5は、前記式が成り立つ場合、署名検証に成功したことと、検証に用いた閲覧者の署名σとを出力する。閲覧端末5は、署名検証に成功するまで、取得した各認証要素セットEの署名検証を行う。
 そして、閲覧端末5は、閲覧者からの指示に基づいて、コンテンツ識別子Cと閲覧者の署名σとを含むコンテンツ要求をファイル管理システム3に送信する(S74)。ファイル管理システム3は、コンテンツ識別子Cをキーとして、コンテンツファイルを所有する配布端末6にコンテンツ識別子Cおよび閲覧者の署名σを含むコンテンツ要求を送信する(S75)。
 配布端末6は、閲覧端末5からの要求に応じて、自端末6で保持するコンテンツのアクセス権が閲覧端末5にあるか否かを判定する。具体的には、配布端末6は、自端末6のブロックチェーン611にアクセスし、コンテンツ識別子Cに対応する全ての認証要素セットE、Eを、ブロックチェーン611から取得する(S76)。
 配布端末6は、取得した全ての認証要素セットE、Eを用いて、閲覧者の署名σを検証する(S77)。署名σを検証はS60と同様である。配布端末6は、取得した認証要素セットE、Eのいずれかを用いた署名σの検証に成功した場合、コンテンツに対して閲覧端末5にアクセス権があると判定し、コンテンツを閲覧端末5と共有する。
 配布端末6は、アクセス権がある場合、S75のコンテンツ要求に対して許諾する旨の応答と、コンテンツ識別子Cのコンテンツファイルとを、ファイル管理システム3に送信する(S78)。ファイル管理システム3は、コンテンツファイルを要求元の閲覧端末5に送信する(S79)。閲覧端末5は、コンテンツファイルを受信し、記憶装置51に格納する。
 以上説明した本実施形態の配布端末6は、匿名用コンテンツ鍵Pを保管する必要はなく、コンテンツを要求された際に、要求元の閲覧端末5が送付したユーザ署名σと、ブロックチェーンで公開されている認証要素セット(P,m,σ)とを用いて要求元にアクセス権限があるかを判定することができる。
 また、本実施形態の配布端末6は、閲覧端末5に匿名用ユーザ公開鍵Pを要求しない。配布端末6が知り得る情報は、認証要素セット(P,m,σ)およびユーザ署名σのみであり、配布端末6は、これらのデータからは閲覧者の匿名用ユーザ公開鍵Pを取得することはできない。よって、本実施形態では、コンテンツを中継して配布する配布端末6にも、匿名用ユーザ公開鍵Pを知られることなく、閲覧端末5はコンテンツを取得することができる。
 なお、上記説明した許諾端末4、閲覧端末5および配布端末6には、例えば、図11に示すような汎用的なコンピュータシステムを用いることができる。図示するコンピュータシステムは、CPU(Central Processing Unit、プロセッサ)901と、メモリ902と、ストレージ903(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置904と、入力装置905と、出力装置906とを備える。メモリ902およびストレージ903は、記憶装置である。このコンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。
 なお、許諾端末4、閲覧端末5および配布端末6は、1つのコンピュータで実装されてもよく、あるいは複数のコンピュータで実装されても良い。また、許諾端末4、閲覧端末5および配布端末6は、コンピュータに実装される仮想マシンであっても良い。
 許諾端末4用のプログラム、閲覧端末5用のプログラム、および、配布端末6用のプログラムは、HDD、SSD、USB(Universal Serial Bus)メモリ、CD (Compact Disc)、DVD (Digital Versatile Disc)などのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
 また、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、以下のような変形例がある。
 (変形例1)
 BLS署名を使った鍵集約においては、Rouge-key攻撃などの不正な鍵交換の攻撃を防ぐために、署名値や鍵に特定の数を掛けてから集約する対策が行われることがある。本実施形態においても同様の対策を行うことで、より強度の高く匿名性を保つことが可能になる。
 この変形例においては、許諾者と閲覧者の間で決定論的に定められた二つの秘密の値t,tを用意する。例えば、加法巡回群Gからそれぞれ一意の数値を出力するハッシュ関数Hを匿名用コンテンツ公開鍵Pcと匿名用ユーザ公開鍵Puに適用し、t,tとしてもよい。ここで、集約公開鍵を下記のように定義する。
Figure JPOXMLDOC01-appb-M000014
 その場合、対応する集約署名は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000015
 署名検証では、e(H(m),P')=e(σ',Q)が成り立つか否かを検証し、成り立つ場合に正当な署名であることが確認される。この場合、上記実施形態で記載していたコンテンツ署名σは、そのt倍してコンテンツ署名tcσcと置き換えられ、アクセス情報に含まれる認証要素セットは(P',m,tσ)となる。また閲覧端末5がコンテンツ要求時に添付する閲覧者の情報はtu倍して、tσとなる。
 (変形例2)
 上記実施形態では、閲覧端末5は、コンテンツを要求する際に閲覧者の匿名用ユーザ署名σを添付しているが、閲覧端末5側で集約署名σ=σ+σを算出し、集約署名σを添付しても良い。すなわち、閲覧端末5の確認部523は、匿名用ユーザ署名σの代わりに、集約署名σを含むコンテンツ要求を送信してもよい。この場合、許諾端末4の共有制御部425は、コンテンツ要求に含まれる集約署名σを認証要素セット(アクセス情報)の集約公開鍵で検証し、コンテンツ要求を許諾するか否かを判定する。
 具体的には、図6のS26においては、「集約署名の検証が成功したら、閲覧者のユーザ署名σを出力」とあるが、この「ユーザ署名σ」を既に集約された「集約署名σ=σ+σ」と置き換えても良い。この場合、S27およびS28で送信されるコンテンツ要求には、ユーザ署名σの代わりに集約署名σが含まれる。許諾端末4は、コンテンツ要求に含まれる集約署名σを集約公開鍵Pで検証する。したがって、許諾端末4は、S31の署名集約を計算する必要はなく、演算負荷を低減することができる。
 第2の実施形態においても同様である。すなわち、第2の実施形態の閲覧端末5および配布端末6は、匿名用ユーザ署名σ、σの代わりに、集約署名σを含むコンテンツ要求を送信してもよい(図9、図10:S56-S58、S73-S75)。この場合、第2の実施形態の許諾端末4および配布端末6は、コンテンツ要求に含まれる集約署名σを認証要素セットの集約公開鍵で検証し、コンテンツ要求を許諾するか否かを判定する(図10:S60、S77)。
 1、1A:コンテンツ利用システム
 2 :ブロックチェーンシステム
 3 :ファイル管理システム
 4 :許諾端末
 421:ブロックチェーン制御部
 422:ファイル管理部
 423:生成部
 424:登録部
 425:共有制御部
 5 :閲覧端末
 521:ブロックチェーン制御部
 522:鍵管理部
 523:確認部
 524:要求部
 525:同期部
 6 :配布端末
 621:ブロックチェーン制御部
 622:鍵管理部
 623:確認部
 624:要求部
 625:同期部
 626:共有制御部
 411、511、611:ブロックチェーン
 412、512、612:コンテンツデータ
 413、513、613:鍵管理データ
 414、514、614:プログラム
  

Claims (10)

  1.  許諾端末と閲覧端末とを備えるコンテンツ利用システムであって、
     前記許諾端末は、
      コンテンツのコンテンツ公開鍵と、前記コンテンツの閲覧者のユーザ公開鍵とを用いて、前記コンテンツに対するアクセス情報を生成する生成部と、
      前記アクセス情報をブロックチェーンに登録する登録部と、を備え、
      前記アクセス情報は、前記コンテンツ公開鍵と前記ユーザ公開鍵とを集約した集約公開鍵と、前記コンテンツ用のメッセージと、前記メッセージを前記コンテンツ公開鍵に対応するコンテンツ秘密鍵で署名したコンテンツ署名とを含み、
     前記閲覧端末は、
      要求するコンテンツのアクセス情報を前記ブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、
      検証に成功した場合、前記ユーザ署名または前記集約署名を含むコンテンツ要求を送信する要求部と、を備えるコンテンツ利用システム。
  2.  コンテンツのコンテンツ公開鍵と、前記コンテンツの閲覧者のユーザ公開鍵とを用いて、前記コンテンツに対するアクセス情報を生成する生成部と、
     前記アクセス情報をブロックチェーンに登録する登録部と、を備え、
     前記アクセス情報は、前記コンテンツ公開鍵と前記ユーザ公開鍵とを集約した集約公開鍵と、前記コンテンツ用のメッセージと、前記メッセージを前記コンテンツ公開鍵に対応するコンテンツ秘密鍵で署名したコンテンツ署名とを含む許諾端末。
  3.  コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記アクセス情報のコンテンツ署名と、前記コンテンツ要求に含まれるユーザ署名とを集約した集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部を備える
     請求項2に記載の許諾端末。
  4.  コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記コンテンツ要求に含まれる集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部を備える
     請求項2に記載の許諾端末。
  5.  要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、
     検証に成功した場合、前記ユーザ署名または前記集約署名を含むコンテンツ要求を送信する要求部と、
     を備える閲覧端末。
  6.  要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、
     検証に成功した場合、前記ユーザ署名を含むコンテンツ要求を、許諾端末に送信する要求部と、
     コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記アクセス情報のコンテンツ署名と、前記コンテンツ要求に含まれるユーザ署名とを集約した集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部と、
     を備える配信端末。
  7.  要求するコンテンツのアクセス情報をブロックチェーンから取得し、前記アクセス情報のメッセージをユーザ秘密鍵で署名したユーザ署名と、前記アクセス情報のコンテンツ署名とを集約した集約署名を、前記アクセス情報の集約公開鍵で検証する確認部と、
     検証に成功した場合、前記集約署名を含むコンテンツ要求を、許諾端末に送信する要求部と、
     コンテンツ要求に応じて、当該コンテンツに対応するアクセス情報を前記ブロックチェーンから取得し、前記コンテンツ要求に含まれる前記集約署名を前記アクセス情報の集約公開鍵で検証し、前記コンテンツ要求を許諾するか否かを判定する共有制御部と、
     を備える配信端末。
  8.  請求項2から4のいずれか1項に記載の許諾端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラム。
  9.  請求項5に記載の閲覧端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラム。
  10.  請求項6または7に記載の配信端末として、コンピュータを機能させることを特徴とするコンテンツ利用プログラム。
PCT/JP2019/023904 2019-06-17 2019-06-17 コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム WO2020255207A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/617,838 US20220247570A1 (en) 2019-06-17 2019-06-17 Content use system, permission terminal, browsing terminal, distribution terminal, and content use program
JP2021528059A JP7174300B2 (ja) 2019-06-17 2019-06-17 コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム
PCT/JP2019/023904 WO2020255207A1 (ja) 2019-06-17 2019-06-17 コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/023904 WO2020255207A1 (ja) 2019-06-17 2019-06-17 コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム

Publications (1)

Publication Number Publication Date
WO2020255207A1 true WO2020255207A1 (ja) 2020-12-24

Family

ID=74040175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/023904 WO2020255207A1 (ja) 2019-06-17 2019-06-17 コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム

Country Status (3)

Country Link
US (1) US20220247570A1 (ja)
JP (1) JP7174300B2 (ja)
WO (1) WO2020255207A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022153452A1 (ja) * 2021-01-14 2022-07-21 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11588645B1 (en) * 2019-09-06 2023-02-21 University Of South Florida Systems and methods for compromise resilient and compact authentication for digital forensics

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005522968A (ja) * 2002-04-15 2005-07-28 ドコモ コミュニケーションズ ラボラトリーズ ユー・エス・エー インコーポレーティッド バイリニアマッピングを使用する署名スキーム
US20180294957A1 (en) * 2017-04-07 2018-10-11 Walmart Apollo, Llc System for Recording Ownership of Digital Works and Providing Backup Copies
US20180343126A1 (en) * 2017-05-24 2018-11-29 NXM Labs Inc. System and method for utilizing connected devices to enable secure and anonymous electronic interaction in a decentralized manner
JP2019500799A (ja) * 2015-12-23 2019-01-10 ソニー株式会社 許可アクセスのためのクライアント装置、サーバー装置及びアクセス制御システム
US20190050854A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Blockchain-based digital data exchange

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220053041A1 (en) * 2016-03-08 2022-02-17 Eagle Eye Networks, Inc. Methods for sharing private video streams with first responders under facility administrator control
US20200175590A1 (en) * 2018-11-29 2020-06-04 Shu Ya Huo Method to turn digital rental buyer into subscriber and an apparatus to secure access & trade the rental item

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005522968A (ja) * 2002-04-15 2005-07-28 ドコモ コミュニケーションズ ラボラトリーズ ユー・エス・エー インコーポレーティッド バイリニアマッピングを使用する署名スキーム
JP2019500799A (ja) * 2015-12-23 2019-01-10 ソニー株式会社 許可アクセスのためのクライアント装置、サーバー装置及びアクセス制御システム
US20180294957A1 (en) * 2017-04-07 2018-10-11 Walmart Apollo, Llc System for Recording Ownership of Digital Works and Providing Backup Copies
US20180343126A1 (en) * 2017-05-24 2018-11-29 NXM Labs Inc. System and method for utilizing connected devices to enable secure and anonymous electronic interaction in a decentralized manner
US20190050854A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Blockchain-based digital data exchange

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG, S. ET AL.: "A Blockchain- Based Framework for Data Sharing With Fine-Grained Access Control in Decentralized Storage Systems", IEEE ACCESS, vol. 6, 30 July 2018 (2018-07-30), pages 38437 - 38450, XP055773167, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/document/8400511> [retrieved on 20190827], DOI: 10.1109/ACCESS.2018.2851611 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022153452A1 (ja) * 2021-01-14 2022-07-21 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Also Published As

Publication number Publication date
JP7174300B2 (ja) 2022-11-17
JPWO2020255207A1 (ja) 2020-12-24
US20220247570A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
US20220207159A1 (en) Systems and methods for privacy management using a digital ledger
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
JP6370016B2 (ja) 階層型ネットワークシステム、これに用いられるノード及びプログラム
US20230070963A1 (en) Blockchain-implemented method for control and distribution of digital content
WO2020192743A1 (zh) 权限管理方法、权限验证方法和相关装置
CN109144961B (zh) 授权文件共享方法及装置
KR101974060B1 (ko) 분산 해시 테이블과 피어투피어 분산 대장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템
KR102034449B1 (ko) 콘텐츠 블록체인에서의 콘텐츠 암호키 관리 및 배포 방법
KR102025409B1 (ko) 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
EP3404891A1 (en) Method and system for distributing digital content in peer-to-peer network
CN107332858B (zh) 云数据存储方法
CN115176441A (zh) 基于身份的公钥生成协议
Abadi et al. Anylog: a grand unification of the internet of things
TW202131659A (zh) 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統
US11418342B2 (en) System and methods for data exchange using a distributed ledger
JP7174300B2 (ja) コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム
CN117043772A (zh) 区块链数据分离
Sharma et al. Blockchain-based distributed application for multimedia system using Hyperledger Fabric
Verma et al. Secure document sharing model based on blockchain technology and attribute-based encryption
CN107395609B (zh) 数据加密方法
US20230421543A1 (en) Method, apparatus, and computer-readable medium for secured data transfer over a decentrlaized computer network
Mejri HealthBlock: A Modular Framework for a Collaborative Sharing of Electronic Health Records Based on Blockchain
JP2019068327A (ja) ユーザ管理装置、ユーザ管理システム
US20230403161A1 (en) Aggregate anonymous credentials for decentralized identity in blockchain
CN117457133A (zh) 支持动态访问的去中心化电子病历共享方法及***

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021528059

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19933587

Country of ref document: EP

Kind code of ref document: A1