JP2023130017A - コンテンツ保護システム - Google Patents
コンテンツ保護システム Download PDFInfo
- Publication number
- JP2023130017A JP2023130017A JP2022034444A JP2022034444A JP2023130017A JP 2023130017 A JP2023130017 A JP 2023130017A JP 2022034444 A JP2022034444 A JP 2022034444A JP 2022034444 A JP2022034444 A JP 2022034444A JP 2023130017 A JP2023130017 A JP 2023130017A
- Authority
- JP
- Japan
- Prior art keywords
- content
- key
- connection device
- information
- blockchain network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000008859 change Effects 0.000 claims description 17
- 230000000694 effects Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 abstract description 10
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 60
- 238000000034 method Methods 0.000 description 48
- 238000012508 change request Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 27
- 238000012790 confirmation Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
【課題】集中システムを用いずにコンテンツの安全性を向上させること。
【解決手段】接続装置200Aは、接続装置200Bからブロックチェーンネットワーク100を介して、公開鍵を含む購入希望通知を受信し、その公開鍵を用いてコンテンツ鍵を暗号化した暗号済みコンテンツ鍵を、ブロックチェーンネットワーク100を介して接続装置200Bに送信する。接続装置200Bは、購入希望通知を接続装置200Aに送信し、コンテンツの譲渡先を示す送信元情報をブロックチェーンネットワーク100に送信する。また、接続装置200Bは、接続装置200Aからの暗号済みコンテンツ鍵を保持している秘密鍵で復号化する。ブロックチェーンネットワーク100は、暗号済みコンテンツ鍵を受信した場合、保有者管理情報にて示される保有者を譲渡先に変更する。
【選択図】図1
【解決手段】接続装置200Aは、接続装置200Bからブロックチェーンネットワーク100を介して、公開鍵を含む購入希望通知を受信し、その公開鍵を用いてコンテンツ鍵を暗号化した暗号済みコンテンツ鍵を、ブロックチェーンネットワーク100を介して接続装置200Bに送信する。接続装置200Bは、購入希望通知を接続装置200Aに送信し、コンテンツの譲渡先を示す送信元情報をブロックチェーンネットワーク100に送信する。また、接続装置200Bは、接続装置200Aからの暗号済みコンテンツ鍵を保持している秘密鍵で復号化する。ブロックチェーンネットワーク100は、暗号済みコンテンツ鍵を受信した場合、保有者管理情報にて示される保有者を譲渡先に変更する。
【選択図】図1
Description
本開示は、コンテンツ保護システムに関する。
情報機器で扱うデジタルデータを分散的にかつ改竄が極めて困難な形式で蓄積することが可能なブロックチェーンと呼ばれる技術が注目されている。ブロックチェーンは、従来、ビットコインのような仮想通貨と呼ばれる金銭的価値を表現するトークンである代替性トークン(Fungible Token)が活用されていたが、近年では、非代替性トークン(Non-Fungible Token:NFT)のような金銭的価値とは異なるものが表現されている。ブロックチェーン上で発行するトークンの発行数は発行者にて上限値を設定でき、それらのトークンの正式な保有者を容易に特定できる。このため、デジタルデータに対しても希少性を付与することが可能であるため、ブロックチェーンは、アートなどの分野において注目されている。
しかしながら、動画像データ及び高精細な静止画像データのようなサイズの大きいコンテンツをブロックチェーン上に登録することは、利用コストの観点などから現実的ではない。このため、通常、サイズの大きいコンテンツはブロックチェーンとは別の場所に格納し、ブロックチェーンに格納するNFTには、そのデータの格納先を示すURLなどが登録される。
現在、多くのNFTはパブリックブロックチェーンで使用されているため、誰でもNFTを参照することができる。したがって、NFTを参照することで、誰でもブロックチェーンとは別の場所に格納しているコンテンツにアクセスできてしまうため、コンテンツの秘匿性及び安全性に課題がある。
上記課題に対して、特許文献1には、コンテンツに対してアクセスを要求したユーザが正規のユーザか否かを判定する認証機能を、コンテンツを管理しているサーバに搭載する技術が開示されている。この技術では、アクセスを要求したユーザが正規のユーザである場合に、コンテンツへのアクセスが許可される。
しかしながら、特許文献1に記載の技術では、コンテンツを管理するためのサーバを有する集中システムが採用されているため、そのサーバを運営する管理者が必要となり、コストが高くなるという問題がある。また、ブロックチェーンがそもそも分散環境での動作を意図していること、及び、IPFS(Interplanetary File System)のようなP2P技術を活用した分散システムの活用が普及していることなどからも、コンテンツの管理を特定の事業者に依存する集中システムではない仕組みが望まれている。
本開示の目的は、集中システムを用いずにコンテンツの安全性を向上させることが可能なコンテンツ保護システムを提供することにある。
本開示の一態様に従うコンテンツ保護システムは、複数の計算機で構成されるブロックチェーンネットワークと、前記ブロックチェーンネットワークと接続する複数の接続装置とを有し、コンテンツ復号鍵にて復号可能な形式で暗号化されて所定の格納場所に格納されたコンテンツを管理するコンテンツ保護システムであって、前記複数の接続装置のいずれかである第1の接続装置は、前記コンテンツ復号鍵を保持し、前記第1の接続装置とは異なる前記接続装置である第2の接続装置から、前記コンテンツの利用を要求する利用要求であって、前記第2の接続装置にて管理される秘密鍵に対応する公開鍵を含む利用要求を、前記ブロックチェーンネットワークを介して受信し、前記利用要求に含まれる公開鍵を用いて前記コンテンツ復号鍵を暗号化した暗号済みコンテンツ復号鍵を、前記ブロックチェーンネットワークを経由して前記2の接続装置に送信し、前記第2の接続装置は、前記秘密鍵を保持し、前記利用要求を、前記ブロックチェーンネットワークを経由して前記第1の接続装置に送信し、前記コンテンツの利用権を与える利用権付与者を示す利用者情報を前記ブロックチェーンネットワークに送信し、前記暗号済みコンテンツ復号鍵を、前記ブロックチェーンネットワークを経由して前記第1の接続装置から受信し、当該暗号済みコンテンツ復号鍵を、前記秘密鍵を用いて復号して前記コンテンツ復号鍵を取得し、前記ブロックチェーンネットワークは、前記コンテンツの利用が可能な利用可能者を示す利用者管理情報を格納し、前記暗号済みコンテンツ復号鍵を受信した場合、前記利用者管理情報にて示される利用者を前記利用者情報が示す前記利用権者に変更する、コンテンツ保護システム。
本発明によれば、集中システムを用いずにコンテンツの安全性を向上させることが可能になる。
以下、本開示の実施形態について図面を参照して説明する。本開示は、ブロックチェーンで管理されるコンテンツへのアクセスの可否を、当該コンテンツの使用権を有するユーザが決定できる技術を含む。
図1は、本開示の一実施形態のコンテンツ保護システムの全体構成を示す図である。図1に示すコンテンツ保護システム1は、コンテンツを管理するシステムであり、複数のノード101にて構成されるブロックチェーンネットワーク100と、ブロックチェーンネットワーク100と接続されたブロックチェーンネットワーク接続装置200及びコンテンツサーバ300と、ブロックチェーンネットワーク接続装置200と接続された接続端末400とを備える。ブロックチェーンネットワーク100及びブロックチェーンネットワーク接続装置200は、ブロックチェーンシステムを構成する。ノード101は、サーバのようなコンピュータシステムである。接続端末400は、例えば、PC又はスマートフォンなどである。
コンテンツ保護システム1を利用する利用者2は、ブロックチェーンネットワーク接続装置200を介してブロックチェーンネットワーク100を利用する。利用者2は、自身のブロックチェーンネットワーク接続装置200を直接使用してもよいし、企業などの接続サービス提供者が提供するブロックチェーンネットワーク接続装置200を自身の接続端末400を介して使用してもよい。自身のブロックチェーンネットワーク接続装置200を直接使用する場合、利用者2は、自身のPC又はスマートフォンなどの端末装置に所定のプログラムをインストールすることで、端末装置をブロックチェーンネットワーク接続装置200として使用する。接続サービス提供者のブロックチェーンネットワーク接続装置200は、1以上のサーバで構築され、ブロックチェーンネットワーク100に対する接続サービスを利用者2に提供する。
ブロックチェーンネットワーク100は、ブロックチェーンネットワーク接続装置200からの要求に応じて、利用者2の間の取引対象となるトークンであるNFTが発行され、取引される。本実施形態では、NFTは、画像データ(静止画像データ及び動画像データ)又はゲームに使用されるアイテムなどのコンテンツに対応付けられて発行される。NFTに対応するコンテンツは、NFTに組み込まれるのではなく、外部の格納装置であるコンテンツサーバ300に格納される。なお、NFTはコンテンツと対応付けられているため、取引対象をコンテンツとしてもよい。
図2は、ブロックチェーンネットワーク接続装置200の構成を示す図である。図2に示すようにブロックチェーンネットワーク接続装置200は、メモリ201、CPU202、ストレージインタフェース203、ネットワークインタフェース204、入出力インタフェース205、及び、補助記憶装置206を備え、各部がバス207を介して相互に接続される。なお、図2では、インタフェースをI/Fと表記している。
メモリ201は、CPU202の動作を規定するプログラム211を記憶する。また、メモリ201は、そのプログラムで使用又は生成される種々の情報(図示せず)を記憶する。
CPU202は、メモリ201に記憶されたコンピュータプログラムであるプログラム211を読み取り、その読み取ったプログラム211を実行することで、種々の機能部を実現するプロセッサである。本実施形態では、CPU202は、ブロックチェーンネットワーク100に対して処理を依頼する場合に必要となる暗号処理を実行する暗号処理部500(図3参照)を実現する。
ストレージインタフェース203は、バス207と補助記憶装置206とを接続する。入出力インタフェース205は、モニタ及びキーボードなどの表示・操作機器のような外部デバイス(図示せず)と接続する。ネットワークインタフェース204は、ブロックチェーンネットワーク100又は他のネットワークを介してノード101及びコンテンツサーバ300などの外部装置と接続する。
補助記憶装置206は、SSD(Solid State Drive)又はHDD(Hard Disk Drive)などであり、種々の情報を記憶する。例えば、補助記憶装置206は、暗号処理で使用される鍵情報と利用者に関するユーザ情報とを対応付けて管理するユーザ管理情報212を記憶する。補助記憶装置206は容易に取り外せることが多いため、ユーザ管理情報212は暗号化されて記憶されることが望ましい。
なお、CPU202などには、耐タンパ性を有する領域である耐タンパ領域を備えているものがある。この場合、ユーザ管理情報301の保存及び暗号処理部500による処理が耐タンパ領域内で実行されてもよい。同様に、ハードウェアウォレットのような耐タンパ性を有する外部デバイスである耐タンパデバイスが使用されてもよい。この場合、耐タンパデバイスは、例えば、ストレージインタフェース203、ネットワークインタフェース204又は入出力インタフェース205を介して接続され、ユーザ管理情報301の保存及び暗号処理部500による処理を実行する。
図3は、暗号処理部500の構成を示す図である。図3に示す暗号処理部500は、暗復号処理部510と、鍵乱数生成部520と、鍵管理部530とを有する。暗復号処理部510は、種々の情報の暗号処理及び復号処理を実行する。鍵乱数生成部520は、暗号処理で使用される鍵情報(公開鍵暗号及び共通鍵暗号など)及び乱数を生成する。鍵管理部530は、鍵乱数生成部520にて生成された鍵情報及び乱数を管理する。
ノード101及び接続端末400は、ブロックチェーンネットワーク接続装置200と同様な構成を有する。ノード101のメモリ201に記憶されるプログラム211は、NFTの発行及び登録・管理を行う処理をCPU202に実行させるスマートコントラクト102である。スマートコントラクト102が行う処理は、通常、複数のノード101が協働することで行われる。スマートコントラクト102が恒常的に参照する情報はブロックチェーンネットワーク100を構築する各ノード101にブロックとして登録される。
図4は、本開示の実施例1に係るコンテンツ保護システム1の処理の一例を説明するためのアクティビティ図である。以下では、コンテンツ(より具体的には、コンテンツに対応するNFT)を提供する譲渡元の利用者2をユーザA、そのコンテンツを取得する譲渡先の利用者2、つまりコンテンツの利用権が付与される利用権付与者をユーザBとする。また、ユーザAが利用するブロックチェーンネットワーク接続装置200を接続装置200A、ユーザBが利用するブロックチェーンネットワーク接続装置200を接続装置200Bとする。
ユーザBは、コンテンツを有償で取得してもよいし、無償で取得してもよい。ユーザAは、ユーザBにコンテンツの利用権を付与するだけでもよいし、ユーザBにコンテンツの利用権を付与しつつ、ユーザAの利用権を削除することで、コンテンツをユーザBに譲渡してもよい。以下の説明では、コンテンツをユーザAからユーザBに有償で譲渡した場合(つまり、ユーザBがユーザAからコンテンツを購入した場合)について説明するが、金銭の授受に関する処理については省略する。また、ブロックチェーンネットワーク接続装置200にて生成された種々の情報は、鍵管理部530によって適宜管理(保存など)されるが、以下の説明ではブロックチェーンネットワーク接続装置200において情報を管理する処理の説明については省略することもある。
先ず、コンテンツ提供者であるユーザAは、生成するなどして用意したコンテンツを接続装置200Aに送信する。接続装置200Aの暗号処理部500の鍵乱数生成部520は、そのコンテンツのハッシュ値をコンテンツ確認用ハッシュ値として生成する(ステップS2000)。コンテンツ確認用ハッシュ値は、後述するように、暗号化されたコンテンツを購入したユーザBがそのコンテンツの正当性を確認するために使用される。
鍵乱数生成部520は、コンテンツを暗号化して保護するための暗号鍵であるコンテンツ暗号鍵を生成する(ステップS2010)。暗復号処理部510は、そのコンテンツ暗号鍵を用いてコンテンツを暗号化する(ステップS2020)。コンテンツを暗号化する暗号方式は、コンテンツを保護できるものであれば限定されないが、ここでは共通鍵暗号方式である。つまり、コンテンツ暗号鍵はコンテンツを復号するコンテンツ復号鍵と共通である。以下では、コンテンツ暗号鍵(コンテンツ復号鍵)をコンテンツ鍵と呼ぶこともある。コンテンツ鍵は鍵管理部530にて管理(例えば、保持)される。
暗復号処理部510は、暗号化したコンテンツである暗号コンテンツをコンテンツサーバ300に格納し、そのコンテンツに関するコンテンツ情報の登録を要求する登録要求をノード101のスマートコントラクト102に送信する(ステップS2030)。登録要求は、コンテンツ情報を含む。また、コンテンツ情報は、コンテンツのハッシュ値と、コンテンツの格納場所を示す参照先情報とを含む。
スマートコントラクト102は、登録要求に応じたNFTを発行してブロックチェーンに登録する(ステップS2100)。なお、ユーザAが別のユーザが用意したコンテンツをコンテンツ保護システム1にて取得することでコンテンツを用意した場合、NFTが既に発行されているため、NFTを新たに発行せずに必要な情報のみを登録すればよい。
図5は、NFTに含まれる保有者管理情報の一例を示す図である。図5に示す保有者管理情報600は、コンテンツを保有する(つまり、コンテンツの利用が可能な利用可能者)を示す利用者管理情報であり、フィールド601~604を有する。
フィールド601は、NFTを識別するトークンIDであるIDを格納する。IDの数は、NFTを発行する発行者にて設定可能であり、図5では、一例として100としている。フィールド602は、コンテンツを保有する保有者を示す保有者情報を格納する。保有者は、NFTの登録時には、コンテンツの生成者又はその代理人などであり、取引完了時には、コンテンツの譲渡先となる。保有者情報は、ここでは、個人が保有しているパブリックブロックネットワークチェーンのアドレスであるが、保有者を一意に特定できるものであれば、他の情報でもよい。
フィールド603は、コンテンツ確認用ハッシュ値を格納する。コンテンツ確認用ハッシュ値がコンテンツサーバ300などの他の場所で確認できる場合には、フィールド603はなくてもよい。フィールド604は、参照先情報を格納する。
なお、1つ又は複数のコンテンツを複数の保有者が共有する場合、(複数のNFTが同じコンテンツに対応付けられている場合)などでは、IDごとにハッシュ値及び参照先情報が格納される必要はない。つまり、保有者管理情報はコンテンツの提供方法などに応じて構成が異なり、場合によっては、別表を有してもよい。
以上のように保有者管理情報を含むNFTが登録されることで、他のユーザがNFTを購入できる状態となる。
図4の説明に戻る。コンテンツの購入者であるユーザBは、コンテンツを購入するための準備を接続装置200Bに指示する。接続装置200Bの鍵乱数生成部520は、コンテンツ鍵をロック(アクセス制限)するためのロック情報を生成するためのロック用情報としてロック用乱数を生成する(ステップS2200)。そして、鍵乱数生成部520は、ロック用乱数のハッシュ値をロック情報として生成する(ステップS2210)。なお、ロック用情報は、乱数に限らず、ランダムな文字列のような他の情報でもよい。
また、鍵乱数生成部520は、コンテンツ鍵を取得するための認証処理に使用される公開鍵ペアである認証用公開鍵ペアを生成する(ステップS2220)。なお、公開鍵ペアは、公開鍵及び秘密鍵を含む。
ロック情報と認証用公開鍵ペアは、コンテンツ鍵を取得するための認証処理に使用されるため、1つのユーザ管理情報212で一括管理されるのではなく、それぞれ別デバイス又は紙などにて別々に管理されることが望ましい。ロック情報及び認証用公開鍵ペアの具体的な管理方法は、ユーザBが利便性などを考慮して適宜決定すればよい。また、ロック情報及び認証用公開鍵ペアを他人に提供することで、購入したコンテンツを他人にプレゼントすることもできる。
その後、コンテンツを購入する場合、ユーザBは、そのコンテンツの購入を接続装置200Bに指示する。接続装置200Bは、その指示に応じてコンテンツの利用(譲渡)を要求する利用要求である購入希望通知をスマートコントラクト102に送信する(ステップS2230)
図6は、購入希望通知の一例を示す図である。図6に示す購入希望通知700は、フィールド701~707を有する。
フィールド701は、購入希望通知700の送信先を示す送信先情報を格納する。送信先情報は、本実施例では、送信先としてスマートコントラクト102のアドレスを示す。フィールド702は、購入希望通知700の送信元を示す送信元情報を格納する。送信元情報は、送信者であるユーザBのアドレス(ユーザBが保有しているパブリックブロックチェーンのアドレス)を示す。フィールド703は、購入対象のコンテンツに対応するNFTのIDを格納する。
フィールド704は、購入後のコンテンツの保有者となる保有予定者を示す保有予定者情報を格納する。保有予定者情報は、保有予定者が購入希望通知の送信者であるユーザBの場合、ユーザBのアドレスを示し、保有予定者がユーザBからコンテンツをプレゼントされる別のユーザであるユーザCの場合、ユーザCのアドレスを示す。ただし、ユーザCが購入希望通知700の送信時点でブロックチェーンを利用していない場合、ユーザCのアドレスが存在しない。この場合、フィールド704は、空情報となり、例えば、別途設定するロック情報及び認証用情報を使って正当な購入者であることを確認する。また、保有予定者情報は、ユーザBのアドレスがユーザCのアドレスの代わりに使用されてもよい。この場合、ユーザBは、ユーザCに対してロック情報及び認証用公開鍵ペアだけでなく、ユーザBのアドレスの生成に利用した情報も提供する必要がある。なお、ユーザBがユーザCにプレゼントするのではなく、ユーザBが別のアドレスを用いて、購入したNFTを管理する場合にも同様な方法が採用できる。
フィールド705は、ロック情報を格納する。フィールド706は、ユーザBを認証するための認証用情報を格納する。認証用情報は、本実施例では、認証用公開鍵ペアに含まれる公開鍵である。
フィールド707は、フィールド701~706に格納された情報に基づいて生成される電子署名を示す送信元署名を格納する。送信元署名は、購入希望通知700の送信元の正当性を証明するための情報である。なお、ブロックチェーンに対する要求には、通常、電子署名が付与される。ただし、情報を参照するだけの要求などでは、データの更新が発生しないため、電子署名が付与されないことが多い。
図4の説明に戻る。スマートコントラクト102は、購入希望通知を受信すると、その購入希望通知の電子著名に基づいて、購入希望通知の正当性を確認する。正当性を確認した場合、スマートコントラクト102は、購入希望通知に基づいて、保有予定者に関する保有予定者管理情報を登録する。そして、スマートコントラクト102は、コンテンツ提供者であるユーザAの接続装置200Aに対して、購入希望通知を受信した旨の希望受信通知を送信する(ステップS2110)。なお、スマートコントラクト102が直接通知を行わずに、接続装置200Aがブロックチェーンのログを定期的に確認し、スマートコントラクト102が購入希望通知を受信したことを検出した際に希望受信通知を取得する構成でもよい。
図7は、保有予定者管理情報の一例を示す図である。図7に示す保有予定者管理情報800は、フィールド801~805を有する。
フィールド801は、購入希望通知に含まれるID(購入希望通知にて購入が希望されたコンテンツに対応するNFTのID)を格納する。フィールド802は、購入希望通知に含まれる保有予定者情報を格納する。フィールド803は、購入希望通知に含まれるロック情報を格納する。フィールド804は、購入希望通知に含まれる認証用情報を格納する。フィールド805は、暗号済みコンテンツ鍵を格納する。ただし、ステップ2110の時点では、フィールド805に暗号済みコンテンツ鍵は格納されていない。
図4の説明に戻る。ユーザAのブロックチェーンネットワーク接続装置200の暗復号処理部510は、希望受信通知を受信すると、希望受信通知に含まれる認証用情報である公開鍵を用いて、コンテンツ鍵を暗号化した暗号済みコンテンツ鍵を生成する(ステップS2040)。なお、暗復号処理部510は、保有予定者管理情報800を参照して認証用情報を取得してもよい。この場合、希望受信通知には、認証用情報は含まれなくてもよい。
続いて、暗復号処理部510は、コンテンツの購入を許可する旨の許可通知をスマートコントラクト102に送信する(ステップS2050)。許可通知は、暗号済みコンテンツ鍵を含む。
スマートコントラクト102は、許可通知を受信すると、許可通知に含まれる暗号済みコンテンツ鍵を保有予定者管理情報に登録して、コンテンツの保有者の変更が可能になった状態、つまりコンテンツの購入が可能になった状態に遷移する(ステップS2120)。さらにスマートコントラクト102は、コンテンツの保有者の変更が可能となった旨の保有者変更可能通知を、接続装置200Bに送信する(ステップS2130)。ここでは、暗号済みコンテンツ鍵の登録の有無により、コンテンツの購入可否が示されるが、コンテンツの購入可否を示すフラグが保有予定者管理情報に明示的に含まれてもよい。
ユーザBのブロックチェーンネットワーク接続装置200の鍵乱数生成部520は、保有者変更可能通知を受信すると、購入したコンテンツを復号するためのコンテンツ鍵の取得と保有者情報の変更とを行うための認証情報を生成する(ステップS2240)。具体的には、暗復号処理部510は、スマートコントラクト102にて参照可能な参照可能情報を認証用公開鍵ペアの秘密鍵を使用して暗号化した情報を認証情報として生成する。参照可能情報は、例えば、スマートコントラクト102のアドレス、又は、スマートコントラクト102にて定義されている外部から参照可能な定数又は文字列などである。また、認証情報は、参照可能情報のハッシュ値を暗号化した情報でもよい。つまり、認証情報の生成は、電子署名の生成と同様の処理で行われる。
暗復号処理部510は、コンテンツ鍵の取得と保有者情報の変更とを要求する保有者変更要求としてスマートコントラクト102に送信する(ステップS2250)。保有者変更要求は、認証情報とロック用乱数とを含む。ロック用乱数は、コンテンツ鍵のロックを解除するためのアンロック情報として使用される。
図8は、保有者変更要求の一例を示す図である。図8に示す保有者変更要求900は。フィールド901~906を有する。
フィールド901は、保有者変更要求900の送信先を示す送信先情報を格納する。この送信先情報は、本実施例では、送信先としてスマートコントラクト102のアドレスを示す。フィールド902は、保有者変更要求900の送信元を示す送信元情報を格納する。送信元情報は、送信者であるユーザBのアドレスを示す。フィールド903は、購入対象のコンテンツに対応するNFTのIDを格納する。
フィールド904は、アンロック情報であるロック用乱数を格納する。フィールド905は、認証情報を格納する。フィールド906は、フィールド901~905に格納された情報に基づいて生成される電子署名を示す送信元署名を格納する。
なお、フィールド902に格納された送信元情報及びフィールド906に格納された送信元著名にて特定される送信者は、コンテンツの譲渡先、つまり変更後の保有者(保有予定者)である。したがって、ユーザBがコンテンツをユーザCにプレゼントする場合、保有者変更要求900の送信者は、ユーザCとなる。このため、コンテンツをプレゼントされたユーザCは、ユーザBの接続装置200Bとは異なるブロックチェーンネットワーク接続装置200を用いて保有者変更要求を送信することで、保有者をユーザCに変更する。このため、この時点では、ユーザCはパブリックブロックチェーンアドレスを保持する必要がある。
図4の説明に戻る。スマートコントラクト102は、保有者変更要求を受信すると、その保有者変更要求に基づいて、保有者変更要求の正当性を確認する(ステップS2140)。具体的には、スマートコントラクト102は、保有予定者管理情報から、保有者変更要求に含まれるIDを有する情報(レコード)を対象情報として取得し、その対象情報に基づいて、以下の3つの確認処理を行う。
第1の確認処理では、スマートコントラクト102は、対象情報に含まれる保有者予定情報と保有者変更要求に含まれる送信元情報とが一致するか否かを確認する。なお、ユーザBがアドレスを有していないアドレス未保有者にコンテンツをプレゼントする場合、対象情報に保有者予定情報が含まれていないため、第1の確認処理はスキップされる。
第2の確認処理では、スマートコントラクト102は、保有者変更要求に含まれるアンロック情報のハッシュ値を生成し、そのハッシュ値が対象情報に含まれるロック情報と一致するか否かを確認する。なお、ハッシュ値から元の値を取得することはできないため、ロック用乱数を知っているユーザ以外は、第2の確認処理に成功することができない。また、ブルートフォースのような攻撃にも対応できるように、ロック用乱数における所定の範囲からハッシュ値が算出されてもよい。
第3の確認処理では、スマートコントラクト102は、保有者変更要求に含まれる認証情報を用いて、保有者変更要求が正当性を確認する。この認証情報は電子署名の生成処理と同様な方法で生成されたものであるため、電子署名の検証処理と同様の処理により、保有者変更要求が正当性を確認することができる。つまり、スマートコントラクト102は、保有予定者管理情報に含まれる認証用情報である公開鍵を用いて、保有者変更要求に含まれる認証情報を復号し、その復号した情報が元の参照可能情報と一致するか否かを確認する。
3つの確認処理の全てで成功した場合、スマートコントラクト102は、保有者変更要求を正当な要求と判断する。なお、3つの確認処理を実行する順序は、特に限定されない。また、3つの確認処理のいずれかで失敗した場合、スマートコントラクト102は、保有者変更要求を破棄して、処理を終了する。このとき、スマートコントラクト102は、保有者変更要求の送信元にエラーメッセージを送信したり、エラーログを出力したりするなどして、確認処理が失敗した旨を外部に通知してもよい。
保有者変更要求が正当な要求である場合、スマートコントラクト102は、保有者管理情報の保有者情報を、保有予定者管理情報の保有予定者情報で更新する(ステップS2150)。
そして、スマートコントラクト102は、保有予定者管理情報に含まれる暗号済みコンテンツ鍵を、保有者変更要求の送信元であるユーザBのブロックチェーンネットワーク接続装置200に送信する。ブロックチェーンネットワーク接続装置200の暗復号処理部510は、認証用公開鍵ペアの秘密鍵を用いて、暗号済みコンテンツ鍵を復号化してコンテンツ鍵を取得し(ステップS2260)、処理を終了する。これにより、ユーザBは、保有者管理情報を参照してコンテンツ格納場所から暗号コンテンツを取得し、その暗号コンテンツをコンテンツ鍵で復号することでコンテンツを取得することができる。なお、取得したコンテンツが正しいコンテンツか否かは、取得したコンテンツのハッシュ値と保有者管理情報に格納されているコンテンツ確認用ハッシュ値とが一致するか否かによって確認することができる。
以上の処理により、ブロックチェーンを用いて安全かつ他者を交えることなくコンテンツ鍵の送受が可能となるため、コンテンツを安全に活用することができる。なお、上記の例では、ユーザAがコンテンツを生成して提供したが、コンテンツを購入したユーザBがそのコンテンツを他者に提供してもよい。このとき、コンテンツ鍵を変更する必要はない。この場合、ステップS2000~S2030の処理は行われなくてもよい。ただし、コンテンツ鍵を変更しない場合、ユーザBがコンテンツを購入した後でもユーザAがコンテンツを利用することができる。当然ながらユーザBがコンテンツ鍵を変更してもよい。また、ユーザBはコンテンツの格納場所を変更してもよい。
また、コンテンツの販売形式は、特に限定されず、例えば、オークション形式又は抽選形式などでもよく、また、コンテンツは無料配布されてもよい。また、コンテンツの販売は、別のスマートコントラクト又は外部のアプリケーションプログラムなどの外部プログラムにて行われてもよい。この場合、例えば、購入希望通知は、外部プログラムが実装された販売装置へ送信され、購入者が確定した際に販売装置からスマートコントラクト102に対して購入希望通知が送信される。この場合、購入希望通知の送信元情報及び送信元署名は購入を希望しているユーザのアドレス及び署名ではなく、販売装置のアドレスとそれに対応した署名となる。
また、上記の例では、ユーザBがNFT及びコンテンツ鍵を取得するために、認証用公開鍵ペア及びロック用乱数のハッシュ値の両方が利用されたが、これらの一方のみが利用されてもよいし、両方とも利用されなくてもよい。ただし、認証用公開鍵ペアを生成しない場合、コンテンツ鍵を安全に取得するための仕組みが別途必要となる。例えば、ブロックチェーンネットワーク接続装置200は、ブロックチェーンに処理(トランザクション)を要求する依頼通知に付与された電子署名用の公開鍵ペアを管理しているため、その公開鍵ペアを認証用公開鍵ペアの代わりに用いてコンテンツ鍵を安全に送受させることができる。
認証用公開鍵ペア及びロック用乱数のハッシュ値の少なくとも一方を利用しない場合、それらを保有予定者管理情報にて管理する必要がないため、ブロックチェーンにて保持されるデータ量を減らすことができる。これらを利用しない場合でも、保有者管理情報及び保有予定者管理情報に対するアクセス又は更新する権限を有するユーザをコンテンツの保有者及び保有予定者に限定することで、セキュリティを向上させることができる。
また、上記の例では、ユーザBはステップS2260で取得した暗号済みコンテンツ鍵を管理していたが、暗号済みコンテンツ鍵は、スマートコントラクト102にて保持され、ユーザBによって必要に応じて取得されてもよい。この場合、コンテンツが購入された後も保有予定者管理情報が保持される。ただし、保有予定者情報には、現在の保有者を示す値が格納されるか、別のフィールドにて現在の保有者を示す情報が格納される。また、保有予定者管理情報とは別にコンテンツ鍵を管理する情報がスマートコントラクト102に保持されてもよい。
また、ロック用乱数はステップS2250にて保有者変更依頼のアンロック情報としてスマートコントラクト102に通知されるため、ブロックチェーン全体で共有される。このため、コンテンツを購入したユーザBがそのコンテンツを他者に提供する場合、新たにロック用乱数を生成する必要がある。また、認証情報を更新する場合、ブロックチェーンネットワーク接続装置200とスマートコントラクト102とで同じ値を参照できるようにその更新方法が適宜設定される。これらの場合における鍵取得要求は、例えば、保有者変更要求に新しいロック値と認証情報更新情報とを加えたものとなる。また、鍵取得についても公開鍵ペアとロック情報であるハッシュ値との一方だけが使用されてもよいし、両方使用されなくてもよい。
以上説明したように本実施例によれば、接続装置200Aは、接続装置200Bからブロックチェーンネットワーク100を介して、公開鍵を含む購入希望通知を受信し、その公開鍵を用いてコンテンツ鍵を暗号化した暗号済みコンテンツ鍵を、ブロックチェーンネットワーク100を介して接続装置200Bに送信する。接続装置200Bは、購入希望通知を接続装置200Aに送信し、コンテンツの譲渡先を示す送信元情報をブロックチェーンネットワーク100に送信する。また、接続装置200Bは、接続装置200Aからの暗号済みコンテンツ鍵を保持している秘密鍵で復号化する。ブロックチェーンネットワーク100は、暗号済みコンテンツ鍵を受信した場合、保有者管理情報にて示される保有者を譲渡先に変更する。これにより、コンテンツ鍵を暗号化して譲渡先に渡しつつ、ブロックチェーンネットワーク100にて保有者の変更が可能となるため、集中システムを用いずにコンテンツの安全性を向上させることが可能になる。
また、本実施例では、接続装置200Bは、ロック用乱数のハッシュ値を含む購入希望通知を送信し、保有者変更可能通知を受信すると、ロック用乱数をブロックチェーンネットワーク100に送信する。ブロックチェーンネットワーク100は、暗号済みコンテンツ鍵を受信した場合、保有者変更可能通知を接続装置200Bに送信し、その後、接続装置200Bからのロック用乱数のハッシュ値と購入希望通知のハッシュ値とが一致した場合、保有者を変更し、暗号済みコンテンツ鍵を接続装置200Bに送信する。これにより、コンテンツの安全性をより高くすることが可能となる。
また、本実施例では、接続装置200Bは、ブロックチェーンネットワーク100にて参照可能な参照可能情報を、秘密鍵を用いて暗号化した認証情報をブロックチェーンネットワーク100に送信する。ブロックチェーンネットワーク100は、認証情報を公開鍵で復号した情報が参照可能情報と一致した場合、保有者を変更し、暗号済みコンテンツ鍵を接続装置200Bに送信する。これにより、コンテンツの安全性をより高くすることが可能となる。
また、本実施例では、購入希望通知を送信する接続装置200Bと異なる接続装置から譲渡先を示す送信元情報が送信されてもよい。これにより、購入希望通知を送信する接続装置200Bの利用者が公開鍵ペアなどを第三者に渡すことで、コンテンツを第三者にプレゼントすることが可能になる。
本実施例では、鍵の付け替えが可能な鍵付け替え暗号方式を用いてコンテンツ鍵の送受を行う例について説明する。以下では、公開鍵暗号方式を利用した鍵付け替え暗号方式を例に挙げる。
本鍵付け替え暗号方式では、各ユーザ(各ブロックチェーンネットワーク接続装置200)にて共通に参照可能なパラメータである共通パラメータgが定義される。また、ユーザAの接続装置200Aにて生成される秘密鍵をs_A、公開鍵をh_Aとし、ユーザBの接続装置200B(または、鍵管理をユーザB自身が実施する場合は接続端末400)にて生成される秘密鍵をs_B、公開鍵をh_Bとする。公開鍵は秘密鍵と共通パラメータgとによって定義される。例えば、ユーザAの公開鍵h_Aは、h_A=g^s_Aである。演算子^はべき乗を示す。なお、共通パラメータgは、スマートコントラクト102及びブロックチェーンネットワーク接続装置200などにて参照可能な場所に予め格納されている。
また、暗号化対象のデータをMとした場合、データMを鍵Xにて暗号化した暗号済みデータをENC(X,M)と記載する。また、暗号済みデータENC(X,M)と、暗号済みデータENC(X,M)を復号するために暗号化鍵に付け替えることが可能な付け替え鍵Yとを含む暗号文をC=(Y,ENC(X,M))とする。本実施例では、ユーザAの接続装置200Aの暗号文Cを暗号文C_A、ユーザBの接続装置200Bの暗号文Cを暗号文C_Bとし、暗号文C_AをC_A=(h_A^r,ENC(g^r,M))とする。ここで、rは乱数、演算子^はべき乗を示す。
暗号文C_Aの復号処理は、暗号文C_Aに含まれる付け替え鍵h_A^rから暗号化鍵g^rを導出することで実施される。具体的には、ユーザAの秘密鍵s_Aを用いて、付け替え鍵h_A^rを「(h_A^r)^(1/s_A)=(g^(s_A*r))^(1/s_A)=g^r」と変形することで、暗号文C_Aを暗号化した秘密鍵g^rを取得することができるため、復号処理DECを用いて、DEC(g^r,(ENC(g^r,M))=MとしてメッセージMを平文に戻すことができる。
また、ユーザAからユーザBへの鍵付け替えには、秘密鍵から生成されるパラメータ(s_B/s_A)が利用される。暗号文C_Aに含まれる付け替え鍵h_A^rにパラメータ(s_B/s_A)をべき乗すると、(h_A^r)^(s_B/s_A)=g^(s_A*r*(s_B/s_A))=g^(r*s_B)=h_B^rと変形することができ、ユーザAの暗号文をユーザBの暗号文C_B=(h_B^r,ENC(g^r,M))に変換することができる。したがって、パラメータs_B/s_Aを安全に利用することで、ユーザAからユーザBへの鍵付け替えをデータの漏洩を抑制しつつ実現することが可能となる。また、公開鍵方式を利用していた実施例1では、暗号対象のデータのサイズに上限があるが、本実施例では、コンテンツの暗号化に任意の暗号方式を利用できるため、暗号対象のデータのサイズの上限を解消することが可能となる。
図9及び図10は、実施例2に係るコンテンツ保護システム1の処理を説明するための図である。具体的には、図9は、ユーザAの接続装置200Aに関する処理を説明するためのフロー図であり、図10は、ユーザBの接続装置200B及びスマートコントラクト102に係る処理を説明するためのアクティビティ図である。
コンテンツ提供者であるユーザAは、用意したコンテンツを接続装置200Aに送信する。接続装置200Aの暗号処理部500の鍵乱数生成部520は、そのコンテンツのハッシュ値をコンテンツ確認用ハッシュ値として生成する(ステップS3000)。鍵乱数生成部520は、コンテンツ鍵を生成する(ステップS3010)。暗復号処理部510は、そのコンテンツ鍵を用いてコンテンツを暗号化する(ステップS3020)。
続いて、鍵乱数生成部520は、コンテンツ鍵を暗号化するための鍵暗号用乱数rを生成し(ステップS3030)、その鍵暗号用乱数rと共通パラメータgとを用いて、コンテンツ鍵を暗号化及び復号化するための鍵である鍵暗号鍵(鍵復号鍵)g^rを生成する(ステップS3040)。そして、暗復号処理部510は、鍵暗号鍵g^rを用いてコンテンツ鍵を暗号化した暗号済みコンテンツ鍵を生成する(ステップS3050)。ここでは、コンテンツ鍵をK、暗号済みコンテンツ鍵をENC(g^r,K)とする。なお、コンテンツ鍵に所定の情報を加えたものが暗号化されて暗号済みコンテンツ鍵とされてもよい。
次に、鍵乱数生成部520は、乱数などを使用して秘密鍵s_Aを生成し(ステップS3060)、その秘密鍵s_Aと共通パラメータgとを用いて、公開鍵h_A=g^s_Aを生成する(ステップS3070)。秘密鍵s_Aと公開鍵h_Aとが鍵暗号鍵g^rを付け替えるための付替用公開鍵ペアとなる。また、鍵乱数生成部520は、公開鍵h_Aと鍵暗号用乱数rとを用いて、鍵暗号鍵g^rに付け替えるための鍵付け替え情報h_A^rを生成し(ステップS3080)、さらに、秘密鍵s_Aと補助情報用乱数R_Aとを用いて、鍵の付け替えで使用するユーザAの補助情報R_A*s_Aを生成する(ステップS3090)。そして、鍵乱数生成部520は、鍵付け替え鍵情報h_A^r及び補助情報R_A*s_Aに基づいて、鍵暗号鍵g^rを付け替えるための付け替え鍵(h_A^r)^(1/(R_A*s_A))を生成する(ステップS3100)。
なお、鍵の付け替えには、ユーザA及びユーザBの秘密鍵に基づく情報s_B/s_Aが利用されるが、単純に秘密鍵をユーザA及びBの間で送受されると、自身の秘密鍵が他者に漏洩してしまう。本実施例では、秘密鍵の漏洩を防止するために、補助情報用乱数R_AにユーザAの秘密鍵s_Aを演算(具体的には、乗算)した情報が補助情報R_A*s_Aとして生成される。また、ステップS3000~S3100の処理の実行順序は、各処理の依存関係が維持できれば限定されない。
その後、鍵乱数生成部520は、暗号コンテンツをコンテンツサーバ300に格納し、そのコンテンツに関するコンテンツ情報の登録を要求する登録要求をノード101のスマートコントラクト102に送信する。本実施例のコンテンツ情報は、暗号済みコンテンツ鍵及び付け替え鍵を含む。
図10の説明に移る。スマートコントラクト102は、登録要求に応じたNFTを発行してブロックチェーンに登録する(ステップS3200)。
図11は、本実施例のNFTに含まれる保有者管理情報の一例を示す図である。図11に示す保有者管理情報600Aは、図5に示す実施例1の保有者管理情報のフィールド601~604に加えて、フィールド605及び606を有する。フィールド605は、付け替え鍵を格納し、フィールド606は、暗号済みコンテンツ暗号を格納する
図10の説明に戻る。購入者であるユーザBの接続装置200Bでは、実施例1と同様に、鍵乱数生成部520は、ロック用乱数を生成し(ステップS3330)、さらに、ロック用乱数のハッシュ値をロック情報としてを生成する(ステップS3340)。
また、鍵乱数生成部520は、コンテンツ鍵を取得するため認証用公開鍵ペアを生成する。ここでは、認証用公開鍵ペアを付け替え鍵の更新に利用する公開鍵ペアと共用されるものとして説明するが、これらの公開鍵ペアは別々に生成されてもよい。
具体的には、鍵乱数生成部520は、ユーザAの接続装置200Aと同様に、乱数などを使用して秘密鍵s_Bを生成し(ステップS3300)、その秘密鍵s_Bと共通パラメータgとを用いて公開鍵h_B=g^s_Bを生成する(ステップS3310)。また、鍵乱数生成部520は、秘密鍵s_Bと補助情報用乱数R_Bとを用いて、ユーザBの補助情報R_B*s_Bを生成する(ステップS3320)。
その後、コンテンツを購入する場合、ユーザBは、そのコンテンツの購入を接続装置200Bに指示する。接続装置200Bは、その指示に応じて購入希望通知をスマートコントラクト102に送信する(ステップS3350)
図12は、本実施例の購入希望通知の一例を示す図である。図12の示す購入希望通知700Aは、図6に示した実施例1の購入希望通知700のフィールド701~707に加えてフィールド708を有する。フィールド708は、補助情報を格納する。
図10の説明に戻る。スマートコントラクト102は、購入希望通知を受信すると、その購入希望通知の電子著名に基づいて、購入希望通知の正当性を確認する。正当性を確認した場合、スマートコントラクト102は、購入希望通知に基づいて、保有予定者管理情報を登録する(ステップS3210)。
図13は、本実施例の保有予定者管理情報の一例を示す図である。図13に示す保有予定者管理情報800Aは、実施例1の保有予定者管理情報800のフィールド801~804を有し、フィールド805の代わりに、フィールド806及び807を有する。フィールド806は、購入希望通知に含まれる保有予定者(ユーザB)の補助情報を格納し、フィールド807は、保有予定者の付け替え鍵を格納する。なお、保有予定者の付け替え鍵は、ステップS3210では登録されていない。
図10の説明に戻る。スマートコントラクト102は、保有者管理情報に含まれるユーザAの付け替え鍵をユーザBの補助情報に基づいて更新した更新付け替え鍵を生成し、その更新付け替え鍵を含む購入希望通知をユーザAの接続装置200Aに送信する(ステップS3220)。更新付け替え鍵は、具体的には、ユーザAの付け替え鍵をユーザBの補助情報でべき乗した情報である。つまり、更新付け替え鍵は、((h_A^r)^(1/(R_A*s_A)))^(R_B*s_B)=(h_A^r)^((R_B*s_B)/(R_A*s_A))である。
図9の説明に移り、接続装置200Aの暗復号処理部510は、購入希望通知を受信すると、その購入希望通知に含まれる更新付け替え鍵を、ユーザBの更新付け替え鍵に付け替える(ステップS3120)。
具体的には、暗復号処理部510は、更新付け替え鍵を、ステップS3090で生成された補助情報用乱数R_Aでべき乗する。つまり、暗復号処理部510は、((h_A^r)^((R_B*s_B)/(R_A*s_A)))^R_Aを計算する。これを計算すると、
((h_A^r)^((R_B*s_B)/(R_A*s_A)))^R_A
=(h_A^r)^((R_B*s_B)/s_A)
=(g^s_A)^r*((R_B*s_B)/s_A)
=g^(s_A*r*((R_B*s_B)/s_A)
=g^(r*R_B*s_B)
=(g^s_B)^(r*R_B)
=(h_B^r)^R_B
となり、ユーザAの鍵からユーザBの鍵に付け替えることができる。
((h_A^r)^((R_B*s_B)/(R_A*s_A)))^R_A
=(h_A^r)^((R_B*s_B)/s_A)
=(g^s_A)^r*((R_B*s_B)/s_A)
=g^(s_A*r*((R_B*s_B)/s_A)
=g^(r*R_B*s_B)
=(g^s_B)^(r*R_B)
=(h_B^r)^R_B
となり、ユーザAの鍵からユーザBの鍵に付け替えることができる。
暗復号処理部510は、付け替えたユーザBの鍵を含む購入許可通知をスマートコントラクト102に通知する(ステップS3130)。
図10の説明に戻る。スマートコントラクト102は、購入許可通知を受信すると、保有予定者管理情報に保有者の付け替え鍵として、購入許可通知に含まれる付け替えたユーザBの鍵を格納する。そして、スマートコントラクト102は、購入処理を完了し、コンテンツの保有者の変更が可能となった旨の保有者変更可能通知を、ユーザBの接続装置200Bに送信する(ステップS3230)。
ユーザBの接続装置200Bの暗復号処理部510は、保有者変更可能通知を受信すると、実施例1と同様に認証情報を生成し(ステップS3360)、補助情報用乱数R_Bと秘密鍵s_Bで復号できるようになった付け替え鍵の取得を依頼する保有者変更要求をスマートコントラクト102に送信する(ステップS3370)。
スマートコントラクト102は、保有者変更要求を受信すると、実施例1と同様に保有者変更要求が正当な要求か否かを確認し(ステップS3240)、保有者変更要求が正当な要求である場合、保有者管理情報の保有者情報を、保有予定者管理情報の保有予定者情報で更新する(ステップS3250)。
そして、スマートコントラクト102は、保有予定者管理情報に含まれる保有予定者の付け替え鍵と保有者管理情報に含まれる暗号済みコンテンツ鍵とを、保有者変更要求の送信元であるユーザBの接続装置200Bに送信する。接続装置200Bの暗復号処理部510は、付け替え鍵及び暗号済みコンテンツ鍵を受信し、その付け替え鍵に基づいて、暗号済みコンテンツ鍵を復号してコンテンツ鍵を取得するステップS3380)。これにより、暗号コンテンツを復号することが可能となる。
コンテンツ鍵の取得方法は、保有予定者の付け替え鍵と接続装置200Bにて保持されている補助情報R_B*s_Bを使って、以下の計算を行うことで得られる。つまり、ユーザBの鍵が
((h_B^r)^R_B)^(1/(R_B*s_B))
=((g^(s_B*r))^R_B)^(1/(R_B*s_B))
=g^((s_B*r*R_B)/(R_B*s_B)
=g^r
と変形でき、ユーザAが設定したコンテンツ暗号化に利用した鍵g^rを取得できる。これにより、暗号コンテンツが復号可能となる。
((h_B^r)^R_B)^(1/(R_B*s_B))
=((g^(s_B*r))^R_B)^(1/(R_B*s_B))
=g^((s_B*r*R_B)/(R_B*s_B)
=g^r
と変形でき、ユーザAが設定したコンテンツ暗号化に利用した鍵g^rを取得できる。これにより、暗号コンテンツが復号可能となる。
以上の処理により、スマートコントラクト102を介して鍵付け替えを実施することが可能となり、分散環境においてもコンテンツを安全に利用することが可能となる。なお、本実施例でも、実施例1と同様な変形例が可能である。例えば、コンテンツの販売方法は、外部プログラムにて実装されてもよい。また、ロック情報及び認証情報の一方のみが利用されてもよいし、両方とも利用されなくてもよい。
また、本実施例では、鍵の付け替えに利用する補助情報は、スマートコントラクト102にて登録されているが、ブロックチェーンネットワーク接続装置200は、ステップS3350で補助情報を通知する代わりに、スマートコントラクト102に登録されている付け替え鍵を読み取り、ユーザBが付け替え情報を使った計算を実施してその計算結果を通知するようにしてもよい。この場合、保有予定者管理情報で補助情報を保持する必要はないため、ステップS3210の処理はなくてもよく、購入希望通知には付け替え情報の代わりに更新した付け替え鍵情報が設定される。
また、実施例1と同様に、図9及び図10で説明した方法を用いてユーザBが購入したコンテンツを販売することができる。その際、コンテンツ暗号鍵を変更しない場合、ステップS3000~S3050の処理は行われなくてもよい。また、公開鍵ペアを変更しない場合、ステップS3060~S3090の処理は行われなくてもよく、ステップS3100にて生成された付け替え鍵(h_B^r)^(1/(R_B*s_B))がステップS3110にて登録されればよい。また、コンテンツの格納場所を変更する場合も同様に、変更した格納場所がスマートコントラクト102に通知されて登録される。
また、コンテンツの保有者が付け替え鍵を登録しないことが「対象のコンテンツは販売可能でない」ことを示してもよいし、コンテンツの保有者が販売の可否を明示的に登録できるものでもよい。この場合、保有者が変更される際に付け替え鍵が自動的に登録されてもよいし、購入希望通知を用いて、(h_A^r)^(1/(R_A*s_A))から(h_B^r)^(1/(R_B*s_B))に変換できるパラメータが登録されてもよい。後者の場合、例えば、ステップS3320でユーザBのブロックチェーンネットワーク接続装置200が補助情報としてR_B*s_Bと(R_B^2)*s_Bとの2つの値を生成し、スマートコントラクト102に登録されている付け替え鍵(h_A^r)^(1/(R_A*s_A))を取得して(h_A^r)^((R_B*s_B)/(R_A*s_A))を計算する。ブロックチェーンネットワーク接続装置200は、ステップS3350で補助情報として(R_B^2)*s_Bをスマートコントラクト102に通知する。スマートコントラクト102は、更新した付け替え鍵(h_A^r)^((R_B*s_B)/(R_A*s_A))をユーザAのブロックチェーンネットワーク接続装置200に送信し(ステップS3220)、ブロックチェーンネットワーク接続装置200は、その付け替え鍵に(R_A)を乗算して鍵の付け替えを実施し(ステップS3120)、その結果として得られる(h_B^r)^R_Bをスマートコントラクト102に通知する(ステップS3130)。スマートコントラクト102は、通知された付け替えられた鍵に対してユーザBから通知された補助情報を適用してべき乗計算を行う。これにより、付け替えらえた鍵を(h_B^r)^R_B^(1/((R_B^2)*s_B))=(h_B^r)^(1/(R_B*s_B)と変形することができる。これにより、コンテンツの購入確定時にユーザBの付け替え鍵に付け替えることができる。この鍵はユーザBのブロックチェーンネットワーク接続装置200にて保有されている情報が使用されているので、この鍵からコンテンツ暗号鍵g^rを取得することができる。
また、(R_B*s_B)と(R_B^2)*s_Bの両方が公開されると、乱数R_Bを算出することが可能となるため、上記の例では、これらが両方ともスマートコントラクト102に通知されることはない。乱数R_Bが算出されると、ユーザBの付け替え鍵(h_B^r)^(1/(R_B*s_B)からユーザBの秘密鍵s_Bが漏洩する恐れがあるからである。
スマートコントラクト102で更新した付け替え鍵を生成する場合、ユーザBのブロックチェーンネットワーク接続装置200が2種類の乱数を生成することで秘密鍵s_Bの漏洩を防ぐことが可能となる。具体的には、ブロックチェーンネットワーク接続装置200は、ステップS3320で2つの乱数R_B1及びR_B2を生成し、付け替え鍵の更新用の値R_B1*s_Bと、付け替え後の鍵をさらにユーザBの付け替え鍵に更新するための値R_B2/((R_B1^2)*s_B)とを生成して、ステップS3350でスマートコントラクト102に送信する。スマートコントラクト102は、ステップS3210で更新用のR_B2/((R_B1^2)*s_B)を登録し、R_B*s_Bを使ってユーザAの付け替え鍵を更新して送信する。ユーザAのブロックチェーンネットワーク接続装置200により、付け替え鍵は(h_B^r)^(R_B1*R_B2)となっているため、これを、(h_B^r)^((R_B1*R_B2)*((R_B2/((R_B1^2)*s_B)))=(h_B^r)^(R_B^2/(R_B1*s_B)に変換する。
ユーザBからコンテンツを購入したユーザCがコンテンツを販売する場合、同様に行うことができる。ただし、同じ乱数が何度も使用されると、暗号強度に問題が生じる恐れもあるため、乱数は適宜生成されることが望ましい。
以上説明したように本実施例でも、コンテンツ鍵を暗号化して譲渡先に渡しつつ、ブロックチェーンネットワーク100にて保有者の変更が可能となるため、集中システムを用いずにコンテンツの安全性を向上させることが可能になる。
本実施例では、乱数とコンテンツ暗号鍵を合成する方法について説明する。処理の流れは、実施例1と似ているため、図4を用いて説明する。
先ず、実施例1と同様にステップS2000~S2030の処理が実行される。ただし、ステップS2010において、鍵乱数生成部520は、コンテンツ鍵とともに、乱数R_Aを生成し、そのコンテンツ鍵に乱数R_Aを合成して付け替え情報付きコンテンツ鍵を生成する。本実施例では、合成には、排他的論理和XORが使用される。つまり、コンテンツ暗号鍵をK_Cとすると、合成により生成される情報は、R_A XOR K_Cとなる。また、ユーザAのブロックチェーンネットワーク接続装置200は、コンテンツの購入者から通知される情報を安全に受け取るための受取用公開鍵ペアを有する。受取用公開鍵ペアは、ユーザBのブロックチェーンネットワーク接続装置200が有する認証情報と同様な情報であり、受取用公開鍵ペアに含まれる公開鍵は登録要求によりスマートコントラクト102に通知される。
スマートコントラクト102は、登録要求に応じたNFTを登録する(ステップS2100)。
図14は、NFTに含まれる保有者管理情報の一例を示す図である。図14に示す保有者管理情報600Bは、図5に示す実施例1の保有者管理情報のフィールド601~604に加えて、フィールド607及び608を有する。フィールド607は、コンテンツの保有者の公開鍵を格納し、フィールド608は、付け替え情報付きコンテンツ暗号鍵を格納する。
図4の説明に戻る。その後、コンテンツの購入者であるユーザBの接続装置200BにてステップS2200~S2230と同様な処理が行われ、購入希望通知がスマートコントラクト102に送信される。
ただし、接続装置200Bは、鍵を付け替えるための鍵付け替え情報をさらに生成して購入希望通知を用いてスマートコントラクト102に通知する。具体的には、接続装置200Bは、ステップS2200にて生成したロック用乱数とは別に、ユーザB向けの暗号鍵として利用する乱数R_Bを生成する。そして、ブロックチェーンネットワーク接続装置200は、スマートコントラクト102にて管理されている保有者管理情報における購入対象のNFTのレコードに含まれる保有者の公開鍵を用いて、乱数R_Bを暗号化した暗号済み乱数ENC_A(R_B)を付け替え情報として生成する。本実施例の購入希望通知は、図12に示す実施例2の購入希望通知700Aと同様であるが、フィールド708には、暗号済み乱数ENC_A(R_B)が格納される。
スマートコントラクト102は、購入希望通知を受信すると、実施例1と同様に、保有予定者管理情報を登録し、希望受信通知をユーザAの接続装置200Aに送信する(ステップS2110)。本実施例の保有予定者管理情報は、図13に示す実施例2の保有予定者管理情報800Aと同様であるが、フィールド806には、暗号済み乱数ENC_A(R_B)が格納される。
ユーザAの接続装置200Aの暗復号処理部510は、希望受信通知を受信すると、実施例1では、ユーザBにて生成された公開鍵でコンテンツ暗号鍵を暗号化するが、本実施例では、コンテンツ暗号鍵を暗号化する代わりに、以下の処理を実行する。つまり、暗復号処理部510は、保有予定者管理情報800Aを参照して、鍵付け替え情報である暗号済み乱数ENC_A(R_B)を取得し、その暗号済み乱数ENC_A(R_B)を上記の受取用公開鍵ペアに含まれる秘密鍵で復号して乱数R_Bを取得する。暗復号処理部510は、取得した乱数R_Bと上記の乱数R_Aとを合成した情報を付け替え鍵として生成する。本実施例では、合成には排他的論理和XORが使用されるため、付け替え鍵は、R_B XOR R_Aである。暗復号処理部510は、付け替え鍵を含む許可通知をスマートコントラクト102に送信する(ステップS2040~S2050)。
スマートコントラクト102は、許可通知を受信すると、許可通知に含まれる付け替え鍵を保有予定者管理情報に登録し(ステップS2120)、保有者変更可能通知をユーザBのブロックチェーンネットワーク接続装置200に送信する(ステップS2130)。
その後、実施例1と同様に、ステップS2240、S2250、S2140、S2150及びS2260の処理が実行される。ただし、保有者管理情報を更新するステップS2150の処理では、スマートコントラクト102は、ユーザB用の鍵を生成して保有者管理情報に登録する。具体的には、スマートコントラクト102は、保有者管理情報に含まれる付け替え情報付きコンテンツ暗号鍵と、ステップS2240で保有予定者管理情報に登録した保有予定者用付け替え鍵とを合成してユーザB用の鍵として登録する。つまり、スマートコントラクト102は、ユーザB用の鍵として、(R_A XOR K_C) XOR (R_B XOR R_A)=R_B XOR K_Cを導出して登録する。このように付け替え鍵同士で合成することにより、乱数R_Aを含まない鍵を生成することができる。また、乱数R_Bを知っているユーザだけがコンテンツ暗号鍵K_Cを取得できる。つまりユーザB又はユーザBから乱数R_Bが提供されたユーザだけがコンテンツ暗号鍵K_Cを取得できる。したがって、本実施例では、乱数を暗号鍵と組み合わせても安全に鍵付け替えを実施することができる。
なお、本実施例でも、実施例1及び2と同様な変形例が可能である。例えば、コンテンツの販売方法は、外部プログラムにて実装されてもよい。また、ロック情報及び認証情報の一方のみが利用されてもよいし、両方とも利用されなくてもよい。
また、実施例2では、鍵付け替えに必要なパラメータを乱数と組み合わせ、実施例3では、保有者の公開鍵で暗号化した。これらの処理は、信頼できる第三者装置に依頼して実行されてもよい。この第三者装置は、恒常的にサービスを提供してもよいし、クラウドサービスなどを用いて必要な期間だけサービス提供してもよい。例えば、ユーザBの接続装置200Bは、購入希望通知をスマートコントラクト102の代わりに第三者装置に送信する(ステップS2230、S3350参照)。そのとき、実施例2では、接続装置200Bは、秘密鍵S_Bを送信し、実施例3では、乱数R_Bを第三者装置に送信し、さらに、購入希望通知として、スマートコントラクト102に対して第三者装置の接続先情報などを通知する。スマートコントラクト102は、通知された接続先情報をユーザAに通知する。ユーザAの接続装置200Aは、ユーザBと同様に、第三者装置の接続先に必要な情報を送信する。具体的には、接続装置200Aは、実施例2では、秘密鍵s_Aを、実施例3では、乱数R_Aを送信する。第三者装置は、実施例2では、s_B/s_Aを、実施例3では、R_A XOR R_Bを生成してユーザAの接続装置200Aに返す。接続装置200Aは、その情報を受け取り、ユーザAはそれを受け取り、購入許可通知として第三者装置が生成したパラメータを通知する(ステップS2050、S3130)。
なお、ユーザAが第三者装置が提供するサービスを信頼できない場合、購入希望を拒否してもよいし、信頼できる他の第三者装置をユーザBに通知して購入希望通知を再送させてもよい。また、ユーザAが利用を許可するサービスをスマートコントラクト102に登録してよい。また、第三者装置がスマートコントラクト102に対して直接アクセスしてもよい。この場合、ユーザA及びBの接続装置が行う処理を第三者装置に移譲することとなるため、第三者装置にブロックチェーンネットワーク100に接続する基本的な機能が必要となる。
また、ブロックチェーンネットワーク100の接続に必要な鍵管理を委託するサービスがある場合、最初の秘密鍵管理からサービス側に鍵管理・承認系の処理を移譲することも考えられる。このように信頼できる第三者に鍵付け替えパラメータの生成を移譲できるのであれば、実施例2における付け替え補助情報は不要となり、ユーザAの付け替え鍵は「h_A^r」と通常の公開鍵を登録することになる。この場合、付け替え補助情報はサービス側で管理してもよい。
また、以上の各実施例では、NFTの保有者を購入者に変更するという例で説明したが、コンテンツの利用許諾がNFTを用いて管理されてもよい。また、1つのコンテンツを複数人が利用する場合、コンテンツ暗号鍵が複数人で共有される。このとき、コンテンツの暗号鍵が漏洩した場合、コンテンツの安全性を担保できなくなる恐れがある。この場合、コンテンツを別のコンテンツ鍵で暗号化し保有者及び他の利用者に提供する必要がある。これについては、保有者の認証情報及び鍵付け替えの補助情報を保持しておくことで効率よく対応することができる。以下、その方法について説明する。
コンテンツ鍵の漏洩を検出したユーザAの接続装置200Aは、新規にコンテンツ鍵を生成してコンテンツを暗号化した新しい暗号コンテンツを生成して、既に格納されている暗号コンテンツと入れ替える。また、接続装置200Aは、認証情報として登録している保有者の公開鍵(認証情報を利用しない場合は保有者の署名用の公開鍵)を用いて、コンテンツ鍵を暗号化して、保有者管理情報に格納する。また、実施例2又は3において、補助情報又は鍵付け替え情報が登録されていれば、その登録された情報を用いて生成された各利用者向けの付け替え鍵が保有者管理情報に登録されてもよい。
また、各実施例では、購入希望者が保有者に購入希望通知を送信し、保有者が購入を許可し、その後、保有予定者が保有者の変更を行っていた。これは、現在のNFTの取引に合わせたためである。ただし、この手順に限るものではなく、保有者が保有者管理情報の保有者を変更してもよい。この場合、図4及び図10における保有者更新処理はなく、それぞれステップS2120及びS3230で保有者更新処理が実行される。この場合、ユーザBからの参照時においては、保有予定者管理情報が参照されることでロック情報及び認証情報が利用される。
また、各実施例では、コンテンツはブロックチェーンの外部にあるオフチェーンが想定されていたが、コンテンツがブロックチェーン上にあるオンチェーンでもよい。また、コンテンツを購入者が確認してから購入できるように、コンテンツの一部だけを暗号化してもよいし、コンテンツが登録されてから一定期間後に暗号化されてもよい。
また、各実施例では、コンテンツ鍵の送受にロック情報及び認証情報などを利用していたが、これらの情報はコンテンツサーバ300へのアクセスにおいても使用されてよい。例えば、コンテンツ利用者がコンテンツサーバ300にアクセスした場合、コンテンツサーバ300は、スマートコントラクト102に記録したロック情報及び認証情報の少なくとも一方を参照して、コンテンツへのアクセス可否を判断する。なお、ロック情報及び認証情報の両方が登録されていない場合、コンテンツサーバ300は、ブロックチェーンネットワークアドレスの生成に利用した公開鍵を利用してコンテンツへのアクセス可否を判断してもよい。この場合、コンテンツサーバ300においてコンテンツのアクセスを保有者に制限することが可能となる。
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本開示の範囲を逸脱することなしに、他の様々な態様で本開示を実施することができる。
100:ブロックチェーンネットワーク 101:ノード 200、200A、200B:ブロックチェーンネットワーク接続装置 300:コンテンツサーバ 400:接続端末
Claims (9)
- 複数の計算機で構成されるブロックチェーンネットワークと、前記ブロックチェーンネットワークと接続する複数の接続装置とを有し、コンテンツ復号鍵にて復号可能な形式で暗号化されて所定の格納場所に格納されたコンテンツを管理するコンテンツ保護システムであって、
前記複数の接続装置のいずれかである第1の接続装置は、
前記コンテンツ復号鍵を保持し、
前記第1の接続装置とは異なる前記接続装置である第2の接続装置から、前記コンテンツの利用を要求する利用要求であって、前記第2の接続装置にて管理される秘密鍵に対応する公開鍵を含む利用要求を、前記ブロックチェーンネットワークを介して受信し、
前記利用要求に含まれる公開鍵を用いて前記コンテンツ復号鍵を暗号化した暗号済みコンテンツ復号鍵を、前記ブロックチェーンネットワークを経由して前記2の接続装置に送信し、
前記第2の接続装置は、
前記秘密鍵を保持し、
前記利用要求を、前記ブロックチェーンネットワークを経由して前記第1の接続装置に送信し、
前記コンテンツの利用権を与える利用権付与者を示す利用者情報を前記ブロックチェーンネットワークに送信し、
前記暗号済みコンテンツ復号鍵を、前記ブロックチェーンネットワークを経由して前記第1の接続装置から受信し、当該暗号済みコンテンツ復号鍵を、前記秘密鍵を用いて復号して前記コンテンツ復号鍵を取得し、
前記ブロックチェーンネットワークは、
前記コンテンツの利用が可能な利用可能者を示す利用者管理情報を格納し、
前記暗号済みコンテンツ復号鍵を受信した場合、前記利用者管理情報にて示される利用可能者に前記利用者情報が示す前記利用権付与者を追加する、コンテンツ保護システム。 - 前記第2の接続装置は、
所定のロック用情報のハッシュ値を含む前記利用要求を送信し、
前記ブロックチェーンネットワークから前記利用可能者の追加が可能になった旨の変更可能通知を受信した場合、前記ロック用情報を前記ブロックチェーンネットワークに送信し、
前記ブロックチェーンネットワークは、
前記利用要求に含まれるハッシュ値をロック情報として格納し、
前記暗号済みコンテンツ復号鍵を受信した場合、前記変更可能通知を前記第2の接続装置に送信し、
前記ロック用情報を受信し、当該ロック用情報のハッシュ値と前記ロック情報とが一致した場合、前記利用可能者に利用権付与者を追加し、前暗号済みコンテンツ復号鍵を前記第2の接続装置に送信する、請求項1に記載のコンテンツ保護システム。 - 前記第2の接続装置は、
前記変更可能通知を受信した場合、前記ブロックチェーンネットワークにて参照可能な参照可能情報を、前記秘密鍵を用いて暗号化した認証情報を前記ブロックチェーンネットワークに送信し、
前記ブロックチェーンネットワークは、
前記認証情報を受信し、当該認証情報を前記利用要求に含まれる公開鍵で復号した情報が前記参照可能情報と一致した場合、前記利用可能者に利用権付与者を追加し、前暗号済みコンテンツ復号鍵を前記第2の接続装置に送信する、請求項2に記載のコンテンツ保護システム。 - 前記利用者情報は、当該利用者情報を送信する前記第2の接続装置のブロックチェーンネットワークアドレスを示し、
前記利用要求を送信する前記第2の接続装置と前記利用者情報を送信する前記第2の接続装置とが異なる、請求項1に記載のコンテンツ保護システム。 - 前記ブロックチェーンネットワークは、前記利用者管理情報にて示される利用可能者から前記第1の接続装置に対応するユーザである保有者を削除することで、前記コンテンツを前記保有者から前記利用権付与者へ譲渡する、請求項1に記載のコンテンツ保護システム。
- 前記ブロックチェーンネットワークは、前記コンテンツのハッシュ値を保持する、請求項1に記載のコンテンツ保護システム。
- 前記コンテンツの格納場所は、前記ブロックチェーンネットワークの外部に設置された格納装置である、請求項1に記載のコンテンツ保護システム。
- 複数の計算機で構成されるブロックチェーンネットワークと、前記ブロックチェーンネットワークと接続する複数の接続装置とを有し、コンテンツ復号鍵にて復号可能な形式で暗号化されて所定の格納場所に格納されたコンテンツを管理するコンテンツ保護システムであって、
前記複数の接続装置のいずれかである第1の接続装置は、
前記コンテンツ復号鍵を暗号化した暗号済みコンテンツ復号鍵と、前記コンテンツ復号鍵を復号する鍵復号鍵に付け替えるための付け替え鍵とをブロックチェーンネットワークに登録し、
前記ブロックチェーンネットワークから、前記コンテンツの利用を要求する利用要求であって、前記付け替え鍵を更新した第1の更新付け替え鍵を含む利用要求を受信し、
前記利用要求に含まれる第1の更新付け替え鍵を、前記鍵復号鍵への付け替えを補助する第1の補助情報に基づいて更新した第2の更新付け替え鍵を、前記ブロックチェーンネットワークに送信し、
前記第1の接続装置とは異なる第2の接続装置は、
前記鍵復号鍵への付け替えを補助する第2の補助情報を含む前記利用要求を前記ブロックチェーンネットワークに送信し、
前記コンテンツの利用権を与える利用権付与者を示す利用者情報を前記ブロックチェーンネットワークに送信し、
前記第2の更新付け替え鍵及び前記暗号済みコンテンツ復号鍵を、前記ブロックチェーンネットワークから受信し、前記第2の更新付け替え鍵を前記第2の補助情報に基づいて前記鍵復号鍵に付け替え、当該鍵復号鍵を用いて前記暗号済みコンテンツ復号鍵を復号して前記コンテンツ復号鍵を取得し、
前記ブロックチェーンネットワークは、
前記コンテンツの利用権を有する利用可能者を示す利用者管理情報を格納し、
前記第2の接続装置から前記利用要求を受信した場合、前記第1の接続装置から登録された前記付け替え鍵を前記利用要求に含まれる第2の補助情報に基づいて更新した第1の更新付け替え鍵を含む前記利用要求を前記第1の接続装置に送信し、
前記第1の接続装置から前記第2の更新付け替え鍵を受信した場合、前記利用者管理情報にて示される利用可能者に前記利用者情報が示す利用権付与者を追加し、前記第2の更新付け替え鍵と前記第1の接続装置から登録された暗号済みコンテンツ復号鍵とを前記第2の接続装置に送信する、コンテンツ保護システム。 - 複数の計算機で構成されるブロックチェーンネットワークと、前記ブロックチェーンネットワークと接続する複数の接続装置とを有し、コンテンツ復号鍵にて復号可能な形式で暗号化されて所定の格納場所に格納されたコンテンツを管理するコンテンツ保護システムであって、
前記複数の接続装置のいずれかである第1の接続装置は、
前記コンテンツ復号鍵に第1の乱数を合成した第1の付け替え情報付きコンテンツ鍵と公開鍵とを前記ブロックチェーンに登録し、
前記第1の接続装置とは異なる前記接続装置である第2の接続装置から、前記コンテンツの利用を要求する利用要求であって、第2の乱数を前記公開鍵で暗号した暗号済み乱数を含む利用要求を、前記ブロックチェーンネットワークを介して受信し、
前記利用要求に含まれる暗号済み乱数を前記公開鍵に対応する秘密鍵で復号して前記第2の乱数を取得し、前記第2の乱数と前記第1の乱数とを合成した付け替え鍵を、前記ブロックチェーンネットワークに送信し、
前記第2の接続装置は、
前記第2の乱数を保持し、
前記利用要求を、前記ブロックチェーンネットワークを経由して前記第1の接続装置に送信し、
前記コンテンツの利用権を与える利用権付与者を示す利用者情報を前記ブロックチェーンネットワークに送信し、
前記暗号済みコンテンツ復号鍵を前記第2の乱数で合成した第2の付け替え情報付きコンテンツ鍵と前記ブロックチェーンから受信し、前記第2の乱数に基づいて前記第2の付け替え情報付きコンテンツ鍵から前記コンテンツ復号鍵を取得し、
前記ブロックチェーンネットワークは、
前記コンテンツの利用が可能な利用可能者を示す利用者管理情報を格納し、
前記付け替え鍵を受信した場合、前記利用者管理情報にて示される利用可能者に前記利用者情報が示す利用権付与者を追加し、前記第1の接続装置から登録された付け替え情報付きコンテンツ鍵を前記付け替え鍵に基づいて、前記第2の付け替え情報付きコンテンツ鍵を生成して前記第2の接続装置に送信する、コンテンツ保護システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022034444A JP2023130017A (ja) | 2022-03-07 | 2022-03-07 | コンテンツ保護システム |
US17/961,053 US20230283466A1 (en) | 2022-03-07 | 2022-10-06 | Content protection system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022034444A JP2023130017A (ja) | 2022-03-07 | 2022-03-07 | コンテンツ保護システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023130017A true JP2023130017A (ja) | 2023-09-20 |
Family
ID=87850113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022034444A Pending JP2023130017A (ja) | 2022-03-07 | 2022-03-07 | コンテンツ保護システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230283466A1 (ja) |
JP (1) | JP2023130017A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102336068B1 (ko) * | 2020-12-30 | 2021-12-07 | 주식회사 피에스디엘 | 도어락, 도어락 컨트롤 장치, 도어락 컨트롤 프로그램 및 도어락 관리 서버 |
-
2022
- 2022-03-07 JP JP2022034444A patent/JP2023130017A/ja active Pending
- 2022-10-06 US US17/961,053 patent/US20230283466A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230283466A1 (en) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102034449B1 (ko) | 콘텐츠 블록체인에서의 콘텐츠 암호키 관리 및 배포 방법 | |
US6523012B1 (en) | Delegation of permissions in an electronic commerce system | |
JP5680115B2 (ja) | データ・セキュリティ装置のためのトランザクション監査 | |
JP4120125B2 (ja) | 利用許可証発行装置および方法 | |
JP2002073566A (ja) | 個人認証適用データ処理システム、個人認証適用データ処理方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002169719A (ja) | コンテンツ配信システム、コンテンツ配信方法、および情報処理装置、並びにプログラム提供媒体 | |
US11314847B2 (en) | Method for electronically documenting license information | |
KR102148130B1 (ko) | 미디어 블록체인을 위한 접근제어 시스템 및 방법 | |
KR100502580B1 (ko) | 보안성이 향상된 디지털 컨텐츠 유통 방법 | |
BRPI0617490A2 (pt) | sistemas e mÉtodos de mÁquina de gerenciamento de direitos digitais | |
JPWO2004109972A1 (ja) | ライセンス受信用ユーザ端末 | |
JP2002175279A (ja) | 個人認証システム、個人認証方法、および情報処理装置、並びにプログラム提供媒体 | |
KR20080058833A (ko) | 개인 정보 보호 장치 및 방법 | |
JP2007534078A (ja) | コンテンツ保護システムなどにおける高信頼ライセンス削除 | |
JP2023130017A (ja) | コンテンツ保護システム | |
JP3758316B2 (ja) | ソフトウェアライセンス管理装置および方法 | |
EP3455763B1 (en) | Digital rights management for anonymous digital content sharing | |
US11480945B2 (en) | Production device for production of an object for user permitted to print pre-defined number of copies of the object including encrypted token, and decrypted by the production device for determining user access right | |
CN109871678A (zh) | 采购业务数据加密方法、装置、设备及存储介质 | |
JP4245523B2 (ja) | 電子権利譲渡処理方法、電子権利譲渡管理システム及びその装置、並びにプログラム | |
WO2020076234A1 (en) | Apparatus and method for controlling data access | |
JP2008513858A (ja) | 郵便物の料金納付のための方法と装置 | |
WO2021019783A1 (ja) | 所有者同一性確認システム、端末および所有者同一性確認方法 | |
Frattolillo et al. | Designing a DRM system | |
WO2021171640A1 (ja) | 情報流通履歴管理システム、情報流通履歴管理方法、情報流通履歴管理装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240327 |