(57)【要約】【課題】契約期間中にユーザが参照できていたコンテンツを契約解除後も参照できるようにする。【解決手段】コンテンツ配信システム１０は、コンテンツ５を共通鍵６で暗号化する。次にコンテンツ配信システム１０は、共通鍵６を複数の契約ユーザのそれぞれに割り当てられた公開鍵３ａ，３ｂ，３ｃのそれぞれで暗号化する。次にコンテンツ配信システム１０は、暗号化されたコンテンツ５ａと暗号化された共通鍵６ａ，６ｂ，６ｃのそれぞれとをブロックチェーン１８に登録する。その後、コンテンツ配信システム１０は、契約ユーザの情報を更新する。次にコンテンツ配信システム１０は、共通鍵６を更新し、共通鍵６の更新に応じて、更新後の共通鍵を複数の契約ユーザのそれぞれに割り当てられた公開鍵のそれぞれで暗号化する。そしてコンテンツ配信システム１０は、暗号化された更新後の共通鍵のそれぞれをブロックチェーン１８に登録する。【選択図】図１
2019029933.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザのそれぞれに公開鍵を生成する鍵生成部と、
前記公開鍵に対応する秘密鍵を複数の前記契約ユーザのそれぞれに配布する鍵配布部と、
前記コンテンツを共通鍵で暗号化し、複数の前記契約ユーザの情報を保有するユーザデータベースを記憶する記憶部を参照し、該共通鍵を前記ユーザデータベースに記憶された複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化する暗号化部と、
前記共通鍵で暗号化されたコンテンツと暗号化された前記共通鍵のそれぞれとをブロックチェーンに登録する登録部と、
前記共通鍵を更新する鍵更新部と、
を有し、
前記暗号化部は、前記共通鍵の更新に応じて、前記登録部による前記登録する処理が実行された後に前記契約ユーザの情報が更新された前記記憶部を参照し、更新後の共通鍵を前記ユーザデータベースから取得した複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
前記登録部は、暗号化された更新後の共通鍵のそれぞれを前記ブロックチェーンに登録する、
ことを特徴とするコンテンツ配信装置。
【請求項２】
前記鍵更新部は、定期的に前記共通鍵を更新することを特徴とする請求項１記載のコンテンツ配信装置。
【請求項３】
前記鍵更新部は、前記記憶部に記憶された前記契約ユーザの情報が更新された場合、前記共通鍵を更新することを特徴とする請求項１記載のコンテンツ配信装置。
【請求項４】
前記コンテンツは、他のコンテンツの格納場所を示す位置情報であることを特徴とする請求項１ないし３のいずれかに記載のコンテンツ配信装置。
【請求項５】
一端末装置から一コンテンツの提供要求を受信すると、前記一端末装置を使用する一ユーザの仮想通貨に対して課金処理を行う課金部をさらに有し、
前記暗号化部は、前記課金処理が正常に完了した場合に、前記一ユーザに割り当てられた前記公開鍵で前記共通鍵を暗号化し、
前記登録部は、前記一ユーザに割り当てられた前記公開鍵で暗号化された前記共通鍵を、前記ブロックチェーンに登録する、
ことを特徴とする請求項１ないし４のいずれかに記載のコンテンツ配信装置。
【請求項６】
コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザの情報を保有するユーザデータベースを記憶する記憶部と、
複数の前記契約ユーザのそれぞれに公開鍵を生成する鍵生成部と、
前記公開鍵に対応する秘密鍵を複数の前記契約ユーザのそれぞれに配布する鍵配布部と、
前記コンテンツを共通鍵で暗号化し、該共通鍵を前記ユーザデータベースに記憶された複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化する暗号化部と、
前記共通鍵で暗号化されたコンテンツと暗号化された前記共通鍵のそれぞれとをブロックチェーンに登録する登録部と、
前記登録部による前記登録する処理が実行された後に、前記記憶部に記憶された前記契約ユーザの情報を更新するユーザ更新部と、
前記共通鍵を更新する鍵更新部と、
を有し、
前記暗号化部は、前記共通鍵の更新に応じて、前記記憶部を参照し、更新後の前記共通鍵を前記ユーザデータベースから取得した複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
前記登録部は、暗号化された更新後の共通鍵のそれぞれを前記ブロックチェーンに登録する、
ことを特徴とするコンテンツ配信システム。
【請求項７】
前記記憶部は、前記ユーザデータベースを、ユーザ管理用ブロックチェーンによって実現し、
前記ユーザ更新部は、前記コンテンツの配信を受けるための契約を締結したユーザを示すユーザ情報を、前記契約ユーザの情報として前記ユーザ管理用ブロックチェーンに登録し、前記コンテンツの配信を受けるための契約を解除した前記契約ユーザの情報を、前記ユーザ管理用ブロックチェーンから削除することを特徴とする請求項６記載のコンテンツ配信システム。
【請求項８】
コンピュータに、
コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザのそれぞれに公開鍵を生成し、
前記公開鍵に対応する秘密鍵を複数の前記契約ユーザのそれぞれに配布し、
前記コンテンツを共通鍵で暗号化し、
複数の前記契約ユーザの情報を保有するユーザデータベースを記憶する記憶部を参照し、該共通鍵を前記ユーザデータベースに記憶された複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
前記共通鍵で暗号化されたコンテンツと暗号化された前記共通鍵のそれぞれとをブロックチェーンに登録し、
前記共通鍵を更新し、
前記共通鍵の更新に応じて、前記登録する処理が実行された後に前記契約ユーザの情報が更新された前記記憶部を参照し、更新後の共通鍵を前記ユーザデータベースから取得した複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
暗号化された更新後の共通鍵のそれぞれを前記ブロックチェーンに登録する、
処理を実行させることを特徴とするコンテンツ配信プログラム。
【請求項９】
コンピュータが、
コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザのそれぞれに公開鍵を生成し、
前記公開鍵に対応する秘密鍵を複数の前記契約ユーザのそれぞれに配布し、
前記コンテンツを共通鍵で暗号化し、
複数の前記契約ユーザの情報を保有するユーザデータベースを記憶する記憶部を参照し、該共通鍵を前記ユーザデータベースに記憶された複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
前記共通鍵で暗号化されたコンテンツと暗号化された前記共通鍵のそれぞれとをブロックチェーンに登録し、
前記共通鍵を更新し、
前記共通鍵の更新に応じて、前記登録する処理が実行された後に前記契約ユーザの情報が更新された前記記憶部を参照し、更新後の共通鍵を前記ユーザデータベースから取得した複数の前記契約ユーザのそれぞれに割り当てられた前記公開鍵のそれぞれで暗号化し、
暗号化された更新後の共通鍵のそれぞれを前記ブロックチェーンに登録する、
ことを特徴とするコンテンツ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法に関する。
【背景技術】
【０００２】
コンピュータネットワークを介してコンテンツを提供するサービスがある。提供されるコンテンツは、例えばメールマガジンやビデオ情報など様々である。コンテンツの配信サービスでは、サービス提供者が管理するサーバは、コンテンツの送信先の端末装置を使用するユーザが、サービスの契約者であることを確認した後、その端末装置にコンテンツを送信する。例えばビデオ配信サービスの場合、ユーザは、端末装置を用いてサービス提供者のサーバにネットワーク経由でアクセスし、そのサーバにログインする。サーバでは、ログインしたユーザについては、コンテンツ配信の契約が締結されていると認識し、そのユーザの使用する端末装置にコンテンツを送信する。
【０００３】
なお、配信したコンテンツに対する課金に関する技術としては、例えば投稿者がコンテンツの投稿により簡易に、且つ効率良く収入を得ることを可能とする情報処理装置が考えられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１６２４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ユーザは、コンテンツ配信サービスの契約を解除するとサーバへのログイン資格を失い、以後、サーバへの端末装置からのアクセスができなくなる。すなわち、契約を解除すると、ユーザは、契約解除後に配信されるコンテンツのみならず、契約期間中に配信されていたコンテンツについても参照できなくなる。
【０００６】
ユーザの契約期間中に配信されていたコンテンツを参照するための適切な対価をユーザが支払い済みの場合、契約を解除したからといって、契約期間中に配信されていた、対価支払い済みのコンテンツまでも参照できなくなると、ユーザの不利益が大きすぎる。しかし、従来のコンテンツ配信技術では、ユーザの契約解除後に、新たに配信するコンテンツへのそのユーザによる参照を抑止しつつ、そのユーザの契約期間中に配信されていたコンテンツに対するそのユーザによる参照を許容することができない。
【０００７】
１つの側面では、本件は、契約期間中にユーザが参照できていたコンテンツを契約解除後も参照できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、鍵生成部、鍵配布部、暗号化部、登録部、および鍵更新部を有するコンテンツ配信装置が提供される。
鍵生成部は、コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザのそれぞれに公開鍵を生成する。鍵配布部は、公開鍵に対応する秘密鍵を複数の契約ユーザのそれぞれに配布する。暗号化部は、コンテンツを共通鍵で暗号化し、複数の契約ユーザの情報を保有するユーザデータベースを記憶する記憶部を参照し、該共通鍵をユーザデータベースに記憶された複数の契約ユーザのそれぞれに割り当てられた公開鍵のそれぞれで暗号化する。登録部は、共通鍵で暗号化されたコンテンツと暗号化された共通鍵のそれぞれとをブロックチェーンに登録する。鍵更新部は、共通鍵を更新する。
【０００９】
なお暗号化部は、共通鍵の更新に応じて、登録部による登録する処理が実行された後に契約ユーザの情報が更新された記憶部を参照し、更新後の共通鍵をユーザデータベースから取得した複数の契約ユーザのそれぞれに割り当てられた公開鍵のそれぞれで暗号化する。また登録部は、暗号化された更新後の共通鍵のそれぞれをブロックチェーンに登録する。
【発明の効果】
【００１０】
１態様によれば、契約期間中に登録されたコンテンツを契約解除後も参照できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るコンテンツ配信システムの一例を示す図である。
【図２】第２の実施の形態のネットワークシステムの構成の一例を示す図である。
【図３】第２の実施の形態に用いるブロックチェーンノードのハードウェアの一構成例を示す図である。
【図４】ブロックチェーンネットワークの例を示す図である。
【図５】各装置の機能の一例を示すブロック図である。
【図６】配布された鍵とコンテンツとの対応関係の一例を示す図である。
【図７】契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図８】一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図９】鍵配布エージェントが実行する処理の手順の一例を示すフローチャートである。
【図１０】コンテンツ管理エージェントが実行する処理の手順の一例を示すフローチャートである。
【図１１】入退会管理システムが実行する処理の手順の一例を示すフローチャートである。
【図１２】コンテンツリーダが実行する処理の手順の一例を示すフローチャートである。
【図１３】第３の実施の形態における契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図１４】第３の実施の形態において一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図１５】第３の実施の形態におけるコンテンツ管理エージェントの処理の手順の一例を示すフローチャートである。
【図１６】メーラが実行する処理の手順の一例を示すフローチャートである。
【図１７】第４の実施の形態における各装置の機能の一例を示すブロック図である。
【図１８】第４の実施の形態における契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図１９】第４の実施の形態において一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。
【図２０】第４の実施の形態におけるコンテンツ管理エージェントの処理の手順の一例を示すフローチャートである。
【図２１】再生アプリケーションが実行する処理の手順の一例を示すフローチャートである。
【図２２】コンテンツサーバが実行する処理の手順の一例を示すフローチャートである。
【図２３】第５の実施の形態における各装置の機能の一例を示すブロック図である。
【図２４】ユーザの入会処理の一例を示す図である。
【図２５】入会エージェントが実行する処理の手順の一例を示すフローチャートである。
【図２６】ユーザの退会処理の一例を示す図である。
【図２７】退会エージェントが実行する処理の手順の一例を示すフローチャートである。
【図２８】課金処理の一例を示す図である。
【図２９】自動課金を用いたコンテンツ提供処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１３】
図１は、第１の実施の形態に係るコンテンツ配信システムの一例を示す図である。コンテンツ配信システム１０は、例えば複数のコンテンツ配信装置１０ａ，１０ｂ，１０ｃ，・・・を連携して動作させることで実現される。複数のコンテンツ配信装置１０ａ，１０ｂ，１０ｃ，・・・それぞれは、例えばコンピュータである。
【００１４】
コンテンツ配信システム１０は、記憶部１１、鍵生成部１２、鍵配布部１３、暗号化部１４、登録部１５、ユーザ更新部１６、および鍵更新部１７を有する。記憶部１１は、例えば複数のコンテンツ配信装置１０ａ，１０ｂ，１０ｃ，・・・のうちの少なくとも１台が有するメモリ、またはストレージ装置である。また鍵生成部１２、鍵配布部１３、暗号化部１４、登録部１５、ユーザ更新部１６、および鍵更新部１７それぞれは、例えば複数のコンテンツ配信装置１０ａ，１０ｂ，１０ｃ，・・・のうちの少なくとも１台が有するプロセッサ、または演算回路である。
【００１５】
記憶部１１は、コンテンツの配信を受けるための契約について契約中のユーザである複数の契約ユーザの情報を保有するユーザデータベース（ＤＢ）１１ａを記憶する。
鍵生成部１２は、複数の契約ユーザのそれぞれに対応する公開鍵を生成する。例えば鍵生成部１２は、複数の契約ユーザのそれぞれに対応する鍵ペア１２ａ，１２ｂ，１２ｃを生成する。鍵ペア１２ａ，１２ｂ，１２ｃは、それぞれ公開鍵３ａ，３ｂ，３ｃと秘密鍵４ａ，４ｂ，４ｃとのペアである。図１の例では、３人のユーザ１ａ，１ｂ，１ｃが契約ユーザであり、ユーザ１ａ，１ｂ，１ｃそれぞれの鍵ペア１２ａ，１２ｂ，１２ｃが生成されている。１つの鍵ペアに含まれる公開鍵を暗号鍵として用いて暗号化した暗号データは、その鍵ペアに含まれる秘密鍵を復号鍵として用いることで復号できる。
【００１６】
鍵配布部１３は、公開鍵３ａ，３ｂ，３ｃに対応する秘密鍵４ａ，４ｂ，４ｃを、契約中の複数のユーザ１ａ，１ｂ，１ｃのそれぞれに配布する。例えば鍵配布部１３は、複数のユーザ１ａ，１ｂ，１ｃのそれぞれが使用している端末装置２ａ，２ｂ，２ｃに、使用しているユーザ１ａ，１ｂ，１ｃそれぞれの秘密鍵４ａ，４ｂ，４ｃを送信する。
【００１７】
暗号化部１４は、コンテンツ５を共通鍵６で暗号化する。これにより暗号化されたコンテンツ５ａ（暗号データ）が生成される。なおコンテンツ５は、例えばユーザ１ａ，１ｂ，１ｃに提供する文書、写真、動画などである。またコンテンツ５は、他のコンテンツの格納場所を示す位置情報であってもよい。暗号化部１４は、さらに、共通鍵６を、ユーザＤＢ１１ａに記憶された複数の契約ユーザ（ユーザ１ａ，１ｂ，１ｃ）のそれぞれに割り当てられた公開鍵３ａ，３ｂ，３ｃのそれぞれで暗号化する。これによりユーザ１ａの公開鍵３ａで暗号化された共通鍵６ａ（暗号データ）、ユーザ１ｂの公開鍵３ｂで暗号化された共通鍵６ｂ（暗号データ）、およびユーザ１ｃの公開鍵３ｃで暗号化された共通鍵６ｃ（暗号データ）が生成される。
【００１８】
登録部１５は、共通鍵６で暗号化されたコンテンツ５ａと暗号化された共通鍵６ａ，６ｂ，６ｃのそれぞれとをブロックチェーン１８に登録する。登録部１５は、コンテンツ５ａと共通鍵６ａ，６ｂ，６ｃのそれぞれとを、まとめて１つのブロックでブロックチェーン１８に登録してもよく、複数のブロックに分けてブロックチェーン１８に登録してもよい。例えば登録部１５は、複数の共通鍵６ａ，６ｂ，６ｃを含む１つのブロックをブロックチェーン１８に登録する。そして登録部１５は、コンテンツ５ａを含む１つのブロックを、ブロックチェーン１８に登録する。
【００１９】
ユーザ更新部１６は、登録部１５による登録する処理が実行された後に、記憶部１１に記憶された契約ユーザの情報を更新する。例えばユーザ更新部１６は、契約を解除したユーザがいる場合、そのユーザの情報を、ユーザＤＢ１１ａから削除する。
【００２０】
鍵更新部１７は、共通鍵６を更新する。例えば鍵更新部１７は、定期的に共通鍵６を更新する。また鍵更新部１７は、ユーザ更新部１６により、ユーザＤＢ１１ａから契約ユーザの削除処理が行われたとき、共通鍵６を更新する。
【００２１】
なお、暗号化部１４は、鍵更新部１７による共通鍵６の更新に応じて、記憶部１１を参照し、更新後の共通鍵をユーザデータベース１１ａから取得した複数の契約ユーザのそれぞれに割り当てられた公開鍵のそれぞれで暗号化する。すると登録部１５は、暗号化された更新後の共通鍵のそれぞれをブロックチェーン１８に登録する。
【００２２】
このようなコンテンツ配信システム１０によれば、３人のユーザ１ａ，１ｂ，１ｃのいずれもが契約期間中であれば、ユーザ１ａ，１ｂ，１ｃそれぞれの端末装置２ａ，２ｂ，２ｃに秘密鍵４ａ，４ｂ，４ｃが配布される。そして暗号化されたコンテンツ５ａと、ユーザ１ａ，１ｂ，１ｃそれぞれの公開鍵３ａ，３ｂ，３ｃで暗号化された共通鍵６ａ，６ｂ，６ｃがブロックチェーン１８に登録される。この場合、例えばユーザ１ａは、自身の使用する端末装置２ａにより、ブロックチェーン１８からコンテンツ５ａと共通鍵６ａとを取得する。端末装置２ａは、秘密鍵４ａを用いて、共通鍵６ａを復号し、平文の共通鍵６を得る。さらに端末装置２ａは、共通鍵６を用いて、コンテンツ５ａを復号し、平文のコンテンツ５を得る。そして端末装置２ａは、コンテンツ５をモニタに表示する。これによりユーザ１ａは、コンテンツ５を参照することができる。同様にユーザ１ｂは、端末装置２ｂを用いてブロックチェーン１８からコンテンツ５ａと共通鍵６ｂとを取得することで、コンテンツ５を参照することができる。ユーザ１ｃは、端末装置２ｃを用いてブロックチェーン１８からコンテンツ５ａと共通鍵６ｃとを取得することで、コンテンツ５を参照することができる。
【００２３】
その後、例えばユーザ１ｃがコンテンツの提供を受けるための契約が解除されたものとする。契約の解除には、ユーザ１ｃが契約解除手続きを行った場合や、契約が延長されることなく契約期間が満了した場合が含まれる。ユーザ１ｃの契約が解除されたことは、例えばコンテンツ配信の管理者により、ユーザ更新部１６に入力される。するとユーザ更新部１６は、ユーザＤＢ１１ａにおける契約ユーザの情報からユーザ１ｃの情報を削除する。例えばユーザ更新部１６は、ユーザＤＢ１１ａ内のユーザ１ｃの情報に対して契約の無効を示すフラグを設定する。これにより、ユーザ１ｃの情報は、契約ユーザの情報ではなくなる。すなわち契約ユーザの情報から、ユーザ１ｃの情報が削除されたこととなる。
【００２４】
ユーザ更新部１６によりユーザＤＢ１１ａが更新された後、鍵更新部１７により共通鍵６が更新される。そして暗号化部１４により、契約を解除したユーザ１ｃを除くユーザ１ａ，１ｂの公開鍵３ａ，３ｂにより、更新後の共通鍵が暗号化される。そして登録部１５により、ユーザ１ａ，１ｂそれぞれの公開鍵３ａ，３ｂで暗号化された更新後の共通鍵が、ブロックチェーン１８に登録される。その後配信されるコンテンツは、暗号化部１４により更新後の共通鍵で暗号化され、暗号化されたコンテンツが、登録部１５によりブロックチェーン１８に登録される。
【００２５】
この場合、契約期間中のユーザ１ａは、端末装置２ａを用いて、ユーザ１ａの公開鍵３ａで暗号化された更新後の共通鍵と、更新後の共通鍵で暗号化されたコンテンツとを、ブロックチェーン１８から取得することで、そのコンテンツを参照できる。同様に契約期間中のユーザ１ｂは、端末装置２ｂを用いて、ユーザ１ｂの公開鍵３ｂで暗号化された更新後の共通鍵と、更新後の共通鍵で暗号化されたコンテンツとを、ブロックチェーン１８から取得することで、そのコンテンツを参照できる。それに対して、契約が解除されたユーザ１ｃは、ユーザ１ｃの公開鍵３ｃで暗号化した更新後の共通鍵を取得することができず、更新後の共通鍵で暗号化されたコンテンツを参照することができない。
【００２６】
なお、ブロックチェーン１８には、一度登録されたブロックは、その後に新たなブロックが登録されても、ブロックチェーン１８の一部として保持される。従って、ユーザ１ｃの契約期間中に登録されたコンテンツ５ａは、ユーザ１ｃの契約解除後もブロックチェーン１８に登録されている。したがって、ユーザ１ｃは、端末装置２ｃにより、契約解除後であっても、契約期間中に提供されたコンテンツ５ａと共通鍵６ｃとをブロックチェーン１８から取得することができる。そしてユーザ１ｃは、端末装置２ｃに、更新前の共通鍵６を用いてコンテンツ５ａを復号させ、復号により得られたコンテンツ５を表示させることができる。すなわち、ユーザ１ｃは、契約期間中に提供されたコンテンツ５を、契約解除後も参照することができる。
【００２７】
このように第１の実施の形態によれば、ユーザにログインページにログインさせなくとも、コンテンツの配信を行う際、時間的に継続したコンテンツを契約ユーザのみに配信することができる。そして契約を解約し資格を失ったユーザは、解約以降のコンテンツを参照できなくすることができる。ただし、解約したユーザであっても、契約していた間のコンテンツの情報はブロックチェーンに保存されているので再配信することなく、参照することができる。
【００２８】
なお記憶部１１は、ユーザＤＢ１１ａを、ユーザ管理用ブロックチェーンによって実現することもできる。この場合、ユーザ更新部１６は、コンテンツの配信を受けるための契約を締結したユーザを示すユーザ情報を、契約ユーザの情報としてユーザ管理用ブロックチェーンに登録する。またユーザ更新部１６は、コンテンツの配信を受けるための契約を解除した契約ユーザの情報を、ユーザ管理用ブロックチェーンから削除する。このように、ユーザＤＢ１１ａをユーザ管理用ブロックチェーンで実現することで、契約ユーザを管理するためのコンピュータを、特別に用意せずにすみ、コンテンツ配信システム１０の運用コストを低減することができる。
【００２９】
また、コンテンツ配信システム１０では、提供するコンテンツごとに、そのコンテンツを参照するユーザにそのコンテンツの代金の課金を行い、課金が完了したユーザのみ、そのコンテンツを参照できるようにすることもできる。この場合、コンテンツ配信システム１０は、例えば、一端末装置から一コンテンツの提供要求を受信すると、一端末装置を使用する一ユーザの仮想通貨に対して課金処理を行う課金部をさらに有する。暗号化部１４は、課金処理が正常に完了した場合に、一ユーザに割り当てられた公開鍵で共通鍵を暗号化する。そして登録部１５は、一ユーザに割り当てられた公開鍵で暗号化された共通鍵を、ブロックチェーン１８に登録する。これにより、コンテンツ配信サービスの課金をコンテンツ単位で行うことができる。コンテンツ配信サービスの課金をコンテンツ単位で行う場合であっても、各ユーザは、その後、ユーザのコンテンツの配信の契約が解除されたとしても、代金を一度支払ったコンテンツについては、契約解除後も継続して参照することができる。
【００３０】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。
図２は、第２の実施の形態のネットワークシステムの構成の一例を示す図である。第２の実施の形態のネットワークシステムでは、ネットワークスイッチ３１〜３５を介して、複数のブロックチェーンノード１００，１００ａ〜１００ｆが接続されている。ブロックチェーンノード１００，１００ａ〜１００ｆそれぞれは、ブロックチェーン上の１ノードとして機能するコンピュータである。
【００３１】
またネットワークには、コンテンツ提供サーバ２００と複数の端末装置３００，３００ａ，３００ｂとが接続されている。コンテンツ提供サーバ２００は、コンテンツの配信サービスを行うサービス提供業者が管理するコンピュータである。コンテンツ提供サーバ２００では、配信するコンテンツを含むブロックのブロックチェーンへの登録、および配信対象のユーザの管理が行われる。複数の端末装置３００，３００ａ，３００ｂは、ネットワークを介した取引を行うユーザ４１〜４３が使用するコンピュータである。なおユーザ４１の名は「Ａ氏」であり、ユーザ４２の名は「Ｂ氏」であり、ユーザ４３の名は「Ｃ氏」であるものとする。
【００３２】
なお第２の実施の形態のネットワークシステムには、図示したブロックチェーンノード１００，１００ａ〜１００ｆ以外にも、図示していない多数のブロックチェーンノードが接続されている。同様に第２の実施の形態のネットワークシステムには、図示した端末装置３００，３００ａ，３００ｂ以外にも、図示していない多数の端末装置が接続されている。
【００３３】
図３は、第２の実施の形態に用いるブロックチェーンノードのハードウェアの一構成例を示す図である。ブロックチェーンノード１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３４】
メモリ１０２は、ブロックチェーンノード１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３５】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８ａ，１０８ｂがある。
【００３６】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３７】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３８】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３９】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４０】
機器接続インタフェース１０７は、ブロックチェーンノード１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４１】
ネットワークインタフェース１０８ａ，１０８ｂは、それぞれネットワークスイッチ３１，３３に接続されている。ネットワークインタフェース１０８ａは、ネットワークスイッチ３１介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース１０８ｂは、ネットワークスイッチ３３を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４２】
以上のようなハードウェア構成によって、ブロックチェーンノード１００における第２の実施の形態の処理機能を実現することができる。他のブロックチェーンノード１００ａ〜１００ｆも、ブロックチェーンノード１００と同様のハードウェアにより実現することができる。
【００４３】
なお、第１の実施の形態に示したコンテンツ配信装置１０ａ，１０ｂ，１０ｃ，・・・も、図３に示したブロックチェーンノード１００と同様のハードウェアにより実現することができる。
【００４４】
ブロックチェーンノード１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。ブロックチェーンノード１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ブロックチェーンノード１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またブロックチェーンノード１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４５】
次に、ブロックチェーンノード１００，１００ａ〜１００ｆによるブロックチェーンネットワークについて説明する。
図４は、ブロックチェーンネットワークの例を示す図である。ブロックチェーンノード１００，１００ａ〜１００ｆは、互いに通信して、３つのブロックチェーンを実現している。コンテンツ管理ブロックチェーン５１は、ユーザ鍵とコンテンツの管理に使用するブロックチェーンである。仮想通貨ブロックチェーン５２は、課金の管理に使用するブロックチェーンである。ユーザ管理ブロックチェーン５３は、ユーザ情報管理に使用するブロックチェーンである。ユーザ管理ブロックチェーン５３は、図１に示すユーザＤＢ１１ａの一例である。すなわち第２の実施の形態では、図１に示したユーザＤＢ１１ａ内の契約ユーザの情報が、ユーザ管理ブロックチェーン５３によって管理される。
【００４６】
次に、各装置が有する機能について説明する。
図５は、各装置の機能の一例を示すブロック図である。コンテンツ提供サーバ２００は、ＯＳ２１０と、ＯＳ２１０上で動作する入退会管理システム２２０とを有している。入退会管理システム２２０は、コンテンツの配信サービスに対する入会（契約）と退会（解約の解除）とを管理すると共に、提供するコンテンツのブロックチェーンへの登録を行う。例えば入退会管理システム２２０は、入退会の管理のために、ユーザ管理部２２２と課金管理部２２３とを有する。ユーザ管理部２２２は、ユーザの入会処理を行い、入会したユーザのユーザ情報を、ユーザ管理ブロックチェーン５３に格納する。またユーザ管理部２２２は、ユーザの退会処理を行い、退会したユーザのユーザ情報をユーザ管理ブロックチェーン５３から削除する。課金管理部２２３は、入会したユーザに対する課金処理を行う。
【００４７】
また入退会管理システム２２０は、コンテンツのブロックチェーンへの登録のために、メール管理部２２４を有する。メール管理部２２４は、ユーザに提供するコンテンツが入力された場合、電子メールを用いて、コンテンツ管理ブロックチェーン５１に、入力されたコンテンツを含むブロックを登録する。
【００４８】
ブロックチェーンノード１００は、ＯＳ１１０、ブロックチェーンサブシステム１２０、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ１３０、鍵配布エージェント１４０、およびコンテンツ管理エージェント１５０を有する。ブロックチェーンサブシステム１２０、ＳＭＴＰサーバ１３０、鍵配布エージェント１４０、およびコンテンツ管理エージェント１５０は、ＯＳ１１０上で動作する。
【００４９】
ブロックチェーンサブシステム１２０は、他のブロックチェーンノード１００ａ，１００ｂ，・・・と連携して、ブロックチェーンへのブロックの登録や、ブロック内のコンテンツなどの情報の提供を行う。ＳＭＴＰサーバ１３０は、コンテンツ提供サーバ２００から、配信するコンテンツを含む電子メールを受信する。またＳＭＴＰサーバ１３０は、受信した電子メールをブロックチェーンサブシステム１２０に転送する。鍵配布エージェント１４０は、コンテンツの暗号化および復号を行うための鍵（共通鍵）を管理する。コンテンツ管理エージェント１５０は、ユーザ４１〜４３が使用する端末装置３００，３００ａ，３００ｂへ配信するコンテンツを管理する。鍵配布エージェント１４０とコンテンツ管理エージェント１５０とは、いずれも、例えばブロックチェーンにおけるチェーンコードをブロックチェーンノード１００が実行することで実現される。
【００５０】
ブロックチェーンノード１００ａは、ＯＳ１１０ａ、ブロックチェーンサブシステム１２０ａ、ＨＴＴＰ（HyperText Transfer Protocol）サーバ１３０ａ、鍵配布エージェント１４０ａ、およびコンテンツ管理エージェント１５０ａを有する。ブロックチェーンサブシステム１２０ａ、ＨＴＴＰサーバ１３０ａ、鍵配布エージェント１４０ａ、およびコンテンツ管理エージェント１５０ａは、ＯＳ１１０ａ上で動作する。
【００５１】
ブロックチェーンサブシステム１２０ａは、他のブロックチェーンノード１００，１００ｂ，・・・と連携して、ブロックチェーンへのブロックの登録や、ブロック内のコンテンツなどの情報の提供を行う。ＨＴＴＰサーバ１３０ａは、端末装置３００，３００ａ，３００ｂに対して、コンテンツ管理ブロックチェーン５１に登録されたコンテンツを提供する。鍵配布エージェント１４０ａは、コンテンツの暗号化および復号を行うための共通鍵を管理する。コンテンツ管理エージェント１５０ａは、ユーザ４１〜４３が使用する端末装置３００，３００ａ，３００ｂへ配信するコンテンツを管理する。
【００５２】
ブロックチェーンノード１００，１００ａ以外のブロックチェーンノード１００ｂ，・・・は、ブロックチェーンノード１００ａと同様の機能を有している。
端末装置３００は、ＯＳ３１０、Ｗｅｂブラウザ３２０、鍵管理エージェント３３０、およびコンテンツリーダ３４０を有する。Ｗｅｂブラウザ３２０、鍵管理エージェント３３０、およびコンテンツリーダ３４０は、ＯＳ３１０上で動作する。
【００５３】
Ｗｅｂブラウザ３２０は、ブロックチェーンノード１００ａ，１００ｂ，・・・からコンテンツを取得する。Ｗｅｂブラウザ３２０は、取得したコンテンツをコンテンツリーダ３４０に送信する。鍵管理エージェント３３０は、暗号化したコンテンツを復号するための共通鍵を管理する。コンテンツリーダ３４０は、取得したコンテンツをモニタに表示する。
【００５４】
図４に示した３つのブロックチェーンは、ブロックチェーンサブシステム１２０，１２０ａ，・・・が連係動作することで管理される。ブロックチェーンのそれぞれに含まれるブロックは、同じ内容のブロックが、ブロックチェーンサブシステム１２０，１２０ａ，・・・それぞれで保持される。例えばブロックチェーンサブシステム１２０，１２０ａ，・・・のうちの１つに登録されたブロックは、他のブロックチェーンサブシステムに転送され、ブロックチェーンサブシステムそれぞれで保持される。ユーザ４１〜４３は、端末装置３００，３００ａ，３００ｂを用いて、複数のブロックチェーンノード１００，１００ａ，１００ｂ，・・・のいずれかから、共通鍵またはコンテンツを含むブロックを取得することができる。
【００５５】
なお、図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図５に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００５６】
第２の実施の形態では、提供されるコンテンツが、暗号化してコンテンツ管理ブロックチェーン５１に登録される。コンテンツの暗号化に使用される共通鍵は、所定のタイミングで変更される。例えば、定期的に共通鍵が変更される。またユーザの退会手続きが行われるごとに、共通鍵が変更される。各ユーザ４１〜４３は、端末装置３００，３００ａ，３００ｂを用いて、契約期間中は、その期間中に配信されたコンテンツの暗号化に使用された共通鍵を受け取ることができる。これにより各ユーザ４１〜４３は、退会後であっても、契約期間中に取得した共通鍵を用いて、契約期間中に提供されたコンテンツを参照することが可能となる。
【００５７】
図６は、配布された鍵とコンテンツとの対応関係の一例を示す図である。図６の例では、ユーザ４１〜４３が、コンテンツの提供を受ける契約期間中であるものとする。この場合、ユーザ４１〜４３それぞれに共通鍵「ｓｋ１」が配布される。例えば、共通鍵「ｓｋ１」は、ユーザ４１〜４３それぞれの公開鍵で暗号化して配布される。そしてコンテンツ提供者は、コンテンツ提供サーバ２００を用いて、コンテンツ管理ブロックチェーン５１に、共通鍵「ｓｋ１」で暗号化したコンテンツ６１ａを含むブロック６１を登録する。ブロック６１には、例えばコンテンツ管理ブロックチェーン５１に対してブロック６１の直前に登録されたブロックのハッシュ値が含まれる。コンテンツ６１ａには、文書や画像が含まれる。
【００５８】
ユーザ４１〜４３それぞれは、端末装置３００，３００ａ，３００ｂを用いて、コンテンツ管理ブロックチェーン５１に登録されたブロック６１内のコンテンツ６１ａを、複数のブロックチェーンノード１００，１００ａ〜１００ｆのうちの１台から取得する。端末装置３００，３００ａ，３００ｂは、ユーザ４１〜４３それぞれの公開鍵で暗号化された共通鍵「ｓｋ１」を、ユーザ４１〜４３それぞれの秘密鍵で復号する。端末装置３００，３００ａ，３００ｂは、復号した共通鍵「ｓｋ１」を用いてコンテンツ６１ａを復号し、コンテンツ６１ａに含まれる文書や画像を表示する。
【００５９】
その後、退会するユーザがいなければ、コンテンツ提供者は、コンテンツ提供サーバ２００を用いて、コンテンツ管理ブロックチェーン５１に、以前と同じ共通鍵「ｓｋ１」で暗号化したコンテンツ６２ａを含むブロック６２を登録する。ユーザ４１〜４３それぞれは、端末装置３００，３００ａ，３００ｂを用いて、ブロック６２内のコンテンツ６２ａを取得する。そして端末装置３００，３００ａ，３００ｂは、ユーザ４１〜４３それぞれの秘密鍵で復号した共通鍵「ｓｋ１」を用いてコンテンツ６２ａを復号し、コンテンツ６２ａに含まれる文書や画像を表示する。
【００６０】
その後、ユーザ４３（Ｃ氏）が退会したものとする。すると退会していないユーザ４１，４２には、新たな共通鍵「ｓｋ２」が配布される。例えば、共通鍵「ｓｋ２」は、ユーザ４１，４２それぞれの公開鍵で暗号化して配布される。コンテンツ提供者は、コンテンツ提供サーバ２００を用いて、コンテンツ管理ブロックチェーン５１に、新たな共通鍵「ｓｋ２」で暗号化したコンテンツ６３ａを含むブロック６３を登録する。ユーザ４１，４２それぞれは、端末装置３００，３００ａを用いて、ブロック６３内のコンテンツ６３ａを取得する。端末装置３００，３００ａは、ユーザ４１，４２それぞれの公開鍵で暗号化された共通鍵「ｓｋ２」を、ユーザ４１，４２それぞれの秘密鍵で復号する。そして端末装置３００，３００ａは、復号した共通鍵「ｓｋ２」を用いてコンテンツ６３ａを復号し、コンテンツ６３ａに含まれる文書や画像を表示する。
【００６１】
他方、ユーザ４３は、端末装置３００ｂを用いて、ブロック６３内のコンテンツ６３ａを取得したとしても、ユーザ４３の公開鍵で暗号化された共通鍵「ｓｋ２」を有していないため、端末装置３００ｂにコンテンツ６３ａを復号させることができない。なおユーザ４３は、退会後であっても、契約期間中に配布された、ユーザ４３の公開鍵で暗号化された共通鍵「ｓｋ１」を有している。そのためユーザ４３は、その共通鍵「ｓｋ１」をユーザ４３の秘密鍵で復号し、復号した共通鍵「ｓｋ１」用いて、退会後に、契約期間中に提供されたコンテンツ６１ａまたはコンテンツ６２ａを参照することは可能である。
【００６２】
第２の実施の形態では、ユーザ４１〜４３それぞれへの共通鍵の配布も、コンテンツ管理ブロックチェーン５１を用いて行われる。以下、図７、図８を参照し、共通鍵の配布およびコンテンツの提供の方法について説明する。
【００６３】
図７は、契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。図７の例では、３人のユーザ４１〜４３がコンテンツ提供者との間で、コンテンツの提供を受けるための契約を締結している。ユーザ４１〜４３は、それぞれ、契約と同時に、契約者用の鍵ペア（公開鍵、秘密鍵）を、コンテンツ提供者から受け取る。入退会管理システム２２０は、ユーザ４１〜４３それぞれの公開鍵「ＰＫA」、「ＰＫB」、「ＰＫC」を、例えば鍵配布エージェント１４０に渡す。例えば入退会管理システム２２０は、ユーザ管理ブロックチェーン５３に、公開鍵「ＰＫA」、「ＰＫB」、「ＰＫC」を含むブロックを登録する。鍵配布エージェント１４０は、そのユーザ管理ブロックチェーン５３から、ユーザ４１〜４３それぞれの公開鍵を取得する。
【００６４】
鍵配布エージェント１４０は、共通鍵「ｓｋ１」を生成し、生成した共通鍵「ｓｋ１」をコンテンツ管理エージェント１５０に送信する。次に鍵配布エージェント１４０は、ユーザ４１〜４３の公開鍵「ＰＫA」、「ＰＫB」、「ＰＫC」それぞれを用いて、共通鍵「ｓｋ１」を暗号化する。これにより、Ａ氏の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ１」、Ｂ氏の公開鍵「ＰＫB」で暗号化された共通鍵「ｓｋ１」、およびＣ氏の公開鍵「ＰＫC」で暗号化された共通鍵「ｓｋ１」が生成される。鍵配布エージェント１４０は、３種類の公開鍵それぞれで暗号化された共通鍵「ｓｋ１」を含むブロック６０を、コンテンツ管理ブロックチェーン５１に登録する。例えば鍵配布エージェント１４０がブロック６０を生成する。そして鍵配布エージェント１４０と他の鍵配布エージェント１４０ａ，・・・との間で、ブロック６０が正当であるとの合意形成を行う。合意形成が正しく行われると、鍵配布エージェント１４０は、ブロック６０を、ブロックチェーンサブシステム１２０で管理されているコンテンツ管理ブロックチェーン５１に登録する。なお、ブロック６０のように、共通鍵を含むブロックを、特に鍵ブロックと呼ぶこととする。
【００６５】
共通鍵「ｓｋ１」を受信したコンテンツ管理エージェント１５０は、ユーザ４１〜４３に提供するコンテンツが入力されると、共通鍵「ｓｋ１」を使ってコンテンツを暗号化する。コンテンツ管理エージェント１５０は、暗号化したコンテンツにコンテンツＩＤ「１」を付与したブロック６１を、コンテンツ管理ブロックチェーン５１に登録する。そしてコンテンツ管理エージェント１５０と他のコンテンツ管理エージェント１５０ａ，・・・との間で、ブロック６１が正当であるとの合意形成が行われる。合意形成が正しく行われると、コンテンツ管理エージェント１５０は、ブロック６１を、ブロックチェーンサブシステム１２０で管理されているコンテンツ管理ブロックチェーン５１に登録する。なお、ブロック６１のように、コンテンツを含むブロックを、特にコンテンツブロックと呼ぶこととする。
【００６６】
コンテンツ管理エージェント１５０は、共通鍵「ｓｋ１」が更新されるまでは、共通鍵「ｓｋ１」を、配布するコンテンツの暗号化に使用する。例えばコンテンツ管理エージェント１５０は、新たに配布するコンテンツを共通鍵「ｓｋ１」で暗号化し、暗号化したコンテンツにコンテンツＩＤ「２」を付与したブロック６２（コンテンツブロック）を、コンテンツ管理ブロックチェーン５１に登録する。
【００６７】
ユーザ４１は、コンテンツリーダ３４０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ１」を、コンテンツ管理ブロックチェーン５１から取得する。例えばユーザ４１は、端末装置３００においてコンテンツリーダ３４０を起動する。コンテンツリーダ３４０は、鍵管理エージェント３３０（図５参照）に共通鍵の取得を依頼する。鍵管理エージェント３３０は、ブロックチェーンノード１００ｂのブロックチェーンサブシステム１２０ａから、ユーザ４１用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ１」を取得する。鍵管理エージェント３３０は、暗号化された共通鍵「ｓｋ１」をコンテンツリーダ３４０に送信する。コンテンツリーダ３４０は、取得した共通鍵「ｓｋ１」を、ユーザ４１の秘密鍵で復号する。
【００６８】
コンテンツリーダ３４０は、ユーザ４１からコンテンツの参照要求の入力を受け取ると、該当するコンテンツをコンテンツ管理ブロックチェーン５１から取得する。そしてコンテンツリーダ３４０は、取得したコンテンツを、共通鍵「ｓｋ１」で復号し、モニタに表示する。これにより、ユーザ４１は、コンテンツを参照することができる。
【００６９】
同様に、他のユーザ４２，４３も、それぞれコンテンツリーダ３４０ａ，３４０ｂを用いてコンテンツを参照することができる。
次に、いずれかのユーザが退会した後のユーザへの共通鍵の配布およびコンテンツの提供の処理について説明する。
【００７０】
図８は、一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。図８の例では、ユーザ４３（Ｃ氏）が退会したものとする。例えば、入退会管理システム２２０は、ユーザ４１とユーザ４２との公開鍵「ＰＫA」、「ＰＫB」を含むブロックをユーザ管理ブロックチェーン５３に登録する。このブロックには、退会したユーザ４３の公開鍵「ＰＫC」は含まれない。鍵配布エージェント１４０は、そのユーザ管理ブロックチェーン５３から、ユーザ４１，４２それぞれの公開鍵を取得する。
【００７１】
鍵配布エージェント１４０は、共通鍵「ｓｋ１」を作成してから所定の有効時間が経過したことを確認すると、新たな共通鍵「ｓｋ２」を生成し、生成した共通鍵「ｓｋ２」をコンテンツ管理エージェント１５０に送信する。次に、鍵配布エージェント１４０は、契約期間中のユーザ４１，４２それぞれの公開鍵「ＰＫA」、「ＰＫB」を使って、新たな共通鍵「ｓｋ２」を暗号化する。そして鍵配布エージェント１４０は、暗号化した共通鍵「ｓｋ２」を含むブロック６３を、コンテンツ管理ブロックチェーン５１に登録する。
【００７２】
共通鍵「ｓｋ２」を受信したコンテンツ管理エージェント１５０は、ユーザ４１，４２に提供するコンテンツが入力されると、共通鍵「ｓｋ２」を使って、新たに提供するコンテンツを暗号化する。コンテンツ管理エージェント１５０は、暗号化したコンテンツにコンテンツＩＤ「３」を付与したブロック６４を、コンテンツ管理ブロックチェーン５１に登録する。
【００７３】
ユーザ４１は、コンテンツリーダ３４０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ２」を、コンテンツ管理ブロックチェーン５１から取得する。コンテンツリーダ３４０は、取得した共通鍵「ｓｋ２」を、ユーザ４１の秘密鍵で復号する。コンテンツリーダ３４０は、ユーザ４１から最新のコンテンツの参照要求の入力を受け取ると、該当するコンテンツ（コンテンツＩＤ：３）をコンテンツ管理ブロックチェーン５１から取得する。そしてコンテンツリーダ３４０は、取得したコンテンツを、共通鍵「ｓｋ２」で復号し、モニタに表示する。これにより、ユーザ４１は、最新のコンテンツを参照することができる。
【００７４】
同様に、ユーザ４２もコンテンツリーダ３４０ａを用いてコンテンツを参照することができる。退会したユーザ４３は、ブロック６３に、ユーザ４３の公開鍵で暗号化した共通鍵「ｓｋ２」が含まれていないため、共通鍵「ｓｋ２」を取得できない。そのため、ユーザ４３は、退会後に提供されたコンテンツを参照することはできない。
【００７５】
このようにして、退会したユーザ４３による、退会後に提供開始されたコンテンツの参照を抑止できると共に、そのユーザ４３の契約期間中に提供開始されたコンテンツについては、退会後でもユーザ４３による参照を可能とすることができる。なお第２の実施の形態に示す方法では、ユーザ数が多くても、そのユーザに提供するコンテンツは、１つだけコンテンツ管理ブロックチェーン５１に登録すればよく、ユーザ数が増加しても、登録するコンテンツ数は増加しない。
【００７６】
また共通鍵の有効時間を設定し、有効時間が経過すると自動的に共通鍵を更新するようにしたことで、鍵配布エージェント１４０において、ユーザの退会の有無の確認処理が不要となる。共通鍵の有効期間は、例えばユーザの契約期間の計算単位に応じて設定される。例えば、ユーザの契約期間の計算を１日単位で行っている場合、共通鍵の有効期間を１日とする。この場合、例えば鍵配布エージェント１４０は、毎日の午前０時に共通鍵を変更する。これにより、退会したユーザが発生するたびに共通鍵を変更しなくても、退会したユーザについては、契約期間満了後に配布したコンテンツを参照できないようにすることができる。
【００７７】
なお、共通鍵の変更を、例えばユーザの退会手続きが行われるごとに行うようにしてもよい。
次に、鍵配布エージェント１４０が実行する処理の手順について具体的に説明する。
【００７８】
図９は、鍵配布エージェントが実行する処理の手順の一例を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］鍵配布エージェント１４０は、コンテンツの暗号化および復号用の共通鍵を生成する。
【００７９】
［ステップＳ１０２］鍵配布エージェント１４０は、コンテンツ管理エージェント１５０に共通鍵を送信する。
［ステップＳ１０３］鍵配布エージェント１４０は、契約期間中のユーザごとに、そのユーザの公開鍵で共通鍵を暗号化する。
【００８０】
［ステップＳ１０４］鍵配布エージェント１４０は、暗号化した共通鍵を、コンテンツ管理ブロックチェーン５１に登録する。
［ステップＳ１０５］鍵配布エージェント１４０は、共通鍵の使用時間の計測を開始する。
【００８１】
［ステップＳ１０６］鍵配布エージェント１４０は、ステップＳ１０５で計測を開始してからの使用時間が、予め設定された共通鍵の有効時間だけ経過したか否かを判断する。鍵配布エージェント１４０は、有効時間が経過した場合、処理をステップＳ１０１に進める。鍵配布エージェント１４０は、有効時間が経過していなければ、ステップＳ１０６の処理を繰り返す。
【００８２】
このような手順で共通鍵が繰り返し生成され、生成された共通鍵が、その時点で契約期間中であるユーザの公開鍵で暗号化され、コンテンツ管理ブロックチェーン５１に登録される。
【００８３】
次に、コンテンツ管理エージェント１５０が実行する処理について具体的に説明する。
図１０は、コンテンツ管理エージェントが実行する処理の手順の一例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
【００８４】
［ステップＳ１１１］コンテンツ管理エージェント１５０は、鍵配布エージェント１４０から共通鍵を取得する。
［ステップＳ１１２］コンテンツ管理エージェント１５０は、共通鍵を暗号鍵として使用して、コンテンツを暗号化する。
【００８５】
［ステップＳ１１３］コンテンツ管理エージェント１５０は、暗号化したコンテンツを含むブロックを、コンテンツ管理ブロックチェーン５１に登録する。
図１０に示す処理は、例えばコンテンツ提供サーバ２００の入退会管理システム２２０から、提供するコンテンツがブロックチェーンノード１００に入力されるごとに実行される。これにより、最新の共通鍵で暗号化したコンテンツが、コンテンツ管理ブロックチェーン５１に追加される。
【００８６】
次に、入退会管理システム２２０が実行する処理について具体的に説明する。
図１１は、入退会管理システムが実行する処理の手順の一例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
【００８７】
［ステップＳ１２１］入退会管理システム２２０は、ユーザからの退会要求を受け付ける。
［ステップＳ１２２］入退会管理システム２２０は、退会を希望するユーザのレコードに削除フラグを立てたユーザ管理情報を、ユーザ管理ブロックチェーン５３に登録する。
【００８８】
これにより、ユーザ管理ブロックチェーン５３の最新のブロックを取得することで、最新のユーザ管理情報が参照可能となる。例えば鍵配布エージェント１４０は、共通鍵を更新した際に、ユーザ管理ブロックチェーン５３から最新のブロックに含まれるユーザ管理情報取得する。ユーザ管理情報には、退会したユーザも含め、ユーザの管理情報を示すレコードが登録されている。ユーザのレコードには、そのユーザの公開鍵が含まれる。また退会したユーザのレコードには、削除フラグが含まれる。鍵配布エージェント１４０は、削除フラグが含まれないレコードの公開鍵を用いて、共通鍵の暗号化を行う。
【００８９】
次に、コンテンツリーダ３４０が実行する処理について具体的に説明する。
図１２は、コンテンツリーダが実行する処理の手順の一例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【００９０】
［ステップＳ１３１］コンテンツリーダ３４０は、コンテンツ管理ブロックチェーン５１から、端末装置３００を使用しているユーザ４１の公開鍵で暗号化された共通鍵を取得する。
【００９１】
［ステップＳ１３２］コンテンツリーダ３４０は、取得した共通鍵を、ユーザ４１の秘密鍵で復号する。コンテンツリーダ３４０は、復号した共通鍵を、ストレージ装置などの記憶媒体に格納する。
【００９２】
［ステップＳ１３３］コンテンツリーダ３４０は、ユーザ４１からの閲覧対象のコンテンツの指定入力に応じ、指定されたコンテンツのコンテンツＩＤを指定して、コンテンツ管理ブロックチェーン５１からコンテンツを取得する。例えばコンテンツリーダ３４０は、最後に提供されたコンテンツではなく、そのコンテンツよりも前に提供された古いコンテンツのコンテンツＩＤを指定することで、古いコンテンツを取得することができる。
【００９３】
［ステップＳ１３４］コンテンツリーダ３４０は、取得したコンテンツを共通鍵で復号する。なおコンテンツリーダ３４０が古いコンテンツを取得した場合、そのコンテンツの暗号化に用いた共通鍵が、最新のものではない可能性がある。コンテンツリーダ３４０は、古い共通鍵で暗号化された古いコンテンツを取得した場合、以前に取得して格納した、そのコンテンツに対応する共通鍵を用いてコンテンツを復号する。
【００９４】
［ステップＳ１３５］コンテンツリーダ３４０は、復号したコンテンツをモニタに表示する。
これにより、ユーザ４１は、閲覧対象として指定したコンテンツを閲覧することができる。すなわちユーザ４１は、最新のコンテンツに限らず、ユーザ４１の契約期間中に提供されたコンテンツを任意に指定して、そのコンテンツを閲覧できる。ユーザ４１のコンテンツの提供を受ける契約が解除された場合であっても、ユーザ４１は、契約解除前に提供されていたコンテンツについて、自由に閲覧可能である。
【００９５】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、メールマガジンをコンテンツとして提供する場合の例である。以下、第３の実施の形態における第２の実施の形態との相違点について説明する。
【００９６】
図１３は、第３の実施の形態における契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。図１３において、第２の実施の形態の要素と同じ機能を有する要素には、第２の実施の形態の対応する要素と同じ符号を付している。
【００９７】
第３の実施の形態では、コンテンツ管理エージェント１５０から提供されるコンテンツには、メールマガジンが含まれる。またコンテンツ管理エージェント１５０は、提供するメールマガジンの価格を示す価格情報を有している。
【００９８】
図１３の例では、ユーザ４１〜４３がいずれも契約期間中である。ユーザ４１〜４３が契約期間中の場合、入退会管理システム２２０は、仮想通貨ブロックチェーン５２から、ユーザ４１〜４３からコンテンツの代金を引き落とすことができる。また入退会管理システム２２０は、ユーザ４１〜４３が契約期間中であることを示すユーザ管理情報を、ユーザ管理ブロックチェーン５３に登録する。鍵配布エージェント１４０は、ユーザ管理ブロックチェーン５３からユーザ管理情報を所得して、ユーザ４１〜４３が契約期間中であることを認識する。
【００９９】
ユーザ４１〜４３それぞれが使用する端末装置は、メーラ３５０，３５０ａ，３５０ｂを有している。ユーザ４１〜４３が、いずれも契約期間中の場合、鍵配布エージェント１４０は、共通鍵「ｓｋ１」を生成し、生成した共通鍵「ｓｋ１」をコンテンツ管理エージェント１５０に送信する。次に、鍵配布エージェント１４０は、ユーザ４１〜４３それぞれの公開鍵「ＰＫA」、「ＰＫB」、「ＰＫC」を使って共通鍵「ｓｋ１」を暗号化する。そして鍵配布エージェント１４０は、暗号化した共通鍵「ｓｋ１」を含むブロック７０を、コンテンツ管理ブロックチェーン５１に登録する。
【０１００】
共通鍵「ｓｋ１」を受信したコンテンツ管理エージェント１５０は、ユーザ４１〜４３に提供するコンテンツとしてメールマガジンが入力されるごとに、共通鍵「ｓｋ１」を使って、提供するコンテンツを暗号化する。コンテンツ管理エージェント１５０は、コンテンツＩＤ「１」、「２」が付与された暗号化済みのコンテンツと価格情報とを含むブロック７１，７２を、コンテンツ管理ブロックチェーン５１に登録する。
【０１０１】
ユーザ４１は、メーラ３５０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ１」を、コンテンツ管理ブロックチェーン５１から取得する。メーラ３５０は、取得した共通鍵「ｓｋ１」を、ユーザ４１の秘密鍵で復号する。メーラ３５０は、ユーザ４１からコンテンツの参照要求の入力を受け取ると、該当するコンテンツ（コンテンツＩＤ「１」，「２」)と価格情報とをコンテンツ管理ブロックチェーン５１から取得する。そしてメーラ３５０は、価格情報をモニタに表示する。メーラ３５０は、ユーザ４１により、価格情報に示される価格を承認する入力が行われると、取得したコンテンツを共通鍵「ｓｋ１」で復号し、メールマガジンをモニタに表示する。これにより、ユーザ４１は、メールマガジンを参照することができる。他のユーザ４２，４３も同様に、それぞれメーラ３５０ａ，３５０ｂを用いて、メールマガジンを読むことができる。
【０１０２】
図１４は、第３の実施の形態において一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。図１４の例では、ユーザ４３（Ｃ氏）が退会したものとする。
【０１０３】
鍵配布エージェント１４０は、公開鍵「ｓｋ１」を作成してから所定の有効時間が経過したことを確認すると、新たな共通鍵「ｓｋ２」を生成し、生成した共通鍵「ｓｋ２」をコンテンツ管理エージェント１５０に送信する。次に、鍵配布エージェント１４０は、契約期間中のユーザ４１，４２それぞれの公開鍵「ＰＫA」、「ＰＫB」を使って、新たな共通鍵「ｓｋ２」を暗号化する。そして鍵配布エージェント１４０は、暗号化した共通鍵「ｓｋ２」を含むブロック７３を、コンテンツ管理ブロックチェーン５１に登録する。
【０１０４】
共通鍵「ｓｋ２」を受信したコンテンツ管理エージェント１５０は、ユーザ４１，４２に提供するメールマガジンが入力されると、共通鍵「ｓｋ２」を使って、新たに提供するメールマガジンを暗号化する。コンテンツ管理エージェント１５０は、コンテンツＩＤ「３」を付与した暗号化済みのコンテンツと価格情報とを含むブロック７４を、コンテンツ管理ブロックチェーン５１に登録する。
【０１０５】
ユーザ４１は、メーラ３５０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ２」を、コンテンツ管理ブロックチェーン５１から取得する。メーラ３５０は、取得した共通鍵「ｓｋ２」を、ユーザ４１の秘密鍵で復号する。メーラ３５０は、ユーザ４１からコンテンツの参照要求の入力を受け取ると、該当するコンテンツ（コンテンツＩＤ「３」）と価格情報とをコンテンツ管理ブロックチェーン５１から取得する。そしてメーラ３５０は、価格情報をモニタに表示する。メーラ３５０は、ユーザ４１により、価格情報に示される価格を承認する入力が行われると、取得したコンテンツを共通鍵「ｓｋ２」で復号し、メールマガジンをモニタに表示する。これにより、ユーザ４１は、最新のメールマガジンを参照することができる。
【０１０６】
同様に、ユーザ４２もメーラ３５０ａを用いてメールマガジンを参照することができる。退会したユーザ４３は、ブロック７３に、ユーザ４３の公開鍵で暗号化した共通鍵「ｓｋ２」が含まれていないため、共通鍵「ｓｋ２」を取得できない。すなわち、ユーザ４３は、退会後に提供されたメールマガジンを参照することはできない。
【０１０７】
第３の実施の形態における各要素の処理のうち、鍵配布エージェント１４０の処理は、図９に示した第２の実施の形態の処理と同じである。また入退会管理システム２２０の処理は、図１１に示した第２の実施の形態の処理と同じである。以下、第２の実施の形態と異なる処理を実行する要素について、実行する処理の手順を具体的に説明する。
【０１０８】
図１５は、第３の実施の形態におけるコンテンツ管理エージェントの処理の手順の一例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１０９】
［ステップＳ２０１］コンテンツ管理エージェント１５０は、鍵配布エージェント１４０から共通鍵を取得する。
［ステップＳ２０２］コンテンツ管理エージェント１５０は、共通鍵を暗号鍵として使用して、メールマガジンを含むコンテンツを暗号化する。
【０１１０】
［ステップＳ２０３］コンテンツ管理エージェント１５０は、暗号化したコンテンツと価格情報とを含むブロックを、コンテンツ管理ブロックチェーン５１に登録する。
次に、メーラ３５０が実行する処理について具体的に説明する。
【０１１１】
図１６は、メーラが実行する処理の手順の一例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ２１１］メーラ３５０は、コンテンツ管理ブロックチェーン５１から、端末装置３００を使用しているユーザ４１の公開鍵で暗号化された共通鍵を取得する。
【０１１２】
［ステップＳ２１２］メーラ３５０は、取得した共通鍵を、ユーザ４１の秘密鍵で復号する。メーラ３５０は、復号した共通鍵を、ストレージ装置などの記憶媒体に格納する。
［ステップＳ２１３］メーラ３５０は、ユーザ４１からの閲覧対象のコンテンツの指定入力に応じ、指定されたコンテンツのコンテンツＩＤを指定して、コンテンツ管理ブロックチェーン５１から該当コンテンツの価格情報を取得する。そしてメーラ３５０は、価格情報に示されるメールマガジンの価格を表示し、価格に対するユーザ４１の承認入力を受け付ける。
【０１１３】
［ステップＳ２１４］メーラ３５０は、ユーザ４１の承認入力に応じ、指定されたコンテンツのコンテンツＩＤを指定して、コンテンツ管理ブロックチェーン５１からメールマガジンを取得する。
【０１１４】
［ステップＳ２１５］メーラ３５０は、取得したメールマガジンを共通鍵で復号する。
［ステップＳ２１６］メーラ３５０は、復号したメールマガジンをモニタに表示する。
これにより、ユーザ４１は、閲覧対象として指定したメールマガジンを閲覧することができる。
【０１１５】
〔第４の実施の形態〕
次に第４の実施の形態について説明する。第４の実施の形態は、共通鍵はコンテンツ管理ブロックチェーン５１で管理するが、コンテンツはコンテンツ管理ブロックチェーン５１以外で管理するものである。例えば、コンテンツが動画データの場合、１つのコンテンツのデータ量が大きく、コンテンツをブロックチェーンで管理すると、ブロックチェーンノード１００，１００ａ，１００ｂ・・・のリソースの消費が激しくなる。そこで第４の実施の形態では、コンテンツを、コンテンツ管理ブロックチェーン５１とは別に管理できるようにしている。
【０１１６】
図１７は、第４の実施の形態における各装置の機能の一例を示すブロック図である。図１７では、第２の実施の形態と同様の機能を有する要素には第２の実施の形態と同じ符号を付している。
【０１１７】
第４の実施の形態では、コンテンツを記憶するコンテンツサーバ４００が設けられている。コンテンツサーバ４００は、動画データなどのコンテンツを保持するコンピュータである。コンテンツサーバ４００は、例えばコンテンツ提供サービスの契約者であることの署名を検証し、契約者であることが確認できたユーザが使用する端末装置にコンテンツを送信する。
【０１１８】
第４の実施の形態では、コンテンツ提供サーバ２００は、コンテンツサーバ４００に格納されたコンテンツの位置情報を、共通鍵で暗号化して、ブロックチェーンノード１００を介して、コンテンツ管理ブロックチェーン５１に登録する。位置情報は、例えばＵＲＬ（Uniform Resource Locator）である。端末装置３００は、再生アプリケーション３６０を有している。再生アプリケーション３６０は、ブロックチェーンノード１００ａから、コンテンツ管理ブロックチェーン５１に登録された位置情報を取得し、取得した位置情報を共通鍵で復号する。そして再生アプリケーション３６０は、位置情報に基づいてコンテンツサーバ４００内のコンテンツにアクセスし、該当コンテンツを再生する。
【０１１９】
図１８は、第４の実施の形態における契約期間中のユーザへの共通鍵の配布およびコンテンツ提供の一例を示す図である。第４の実施の形態では、コンテンツ管理エージェント１５０から提供されるコンテンツには、コンテンツの位置情報としてＵＲＬが含まれる。
【０１２０】
コンテンツ管理ブロックチェーン５１には、ユーザ４１〜４３それぞれの公開鍵を含むブロック８０が登録されている。
ユーザ４１〜４３それぞれが使用する端末装置３００，３００ａ，３００ｂは、再生アプリケーション３６０，３６０ａ，３６０ｂを有している。ユーザ４１〜４３が、いずれも契約期間中の場合、鍵配布エージェント１４０は、共通鍵「ｓｋ１」を生成し、生成した共通鍵「ｓｋ１」をコンテンツ管理エージェント１５０に送信する。次に、鍵配布エージェント１４０は、ユーザ４１〜４３それぞれの公開鍵「ＰＫA」、「ＰＫB」、「ＰＫC」を使って共通鍵「ｓｋ１」を暗号化する。そして鍵配布エージェント１４０は、暗号化した共通鍵「ｓｋ２」を含むブロック８１を、コンテンツ管理ブロックチェーン５１に登録する。
【０１２１】
共通鍵「ｓｋ１」を受信したコンテンツ管理エージェント１５０は、ユーザ４１〜４３に提供するコンテンツのＵＲＬが入力されると、共通鍵「ｓｋ１」を使って、提供するコンテンツのＵＲＬを暗号化する。コンテンツ管理エージェント１５０は、コンテンツＩＤ「１」が付与された暗号化済みのＵＲＬと、コンテンツの価格情報とを含むブロック８２を、コンテンツ管理ブロックチェーン５１に登録する。
【０１２２】
ユーザ４１は、再生アプリケーション３６０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ１」を、コンテンツ管理ブロックチェーン５１から取得する。再生アプリケーション３６０は、取得した共通鍵「ｓｋ１」を、ユーザ４１の秘密鍵で復号する。再生アプリケーション３６０は、ユーザ４１からコンテンツの参照要求の入力を受け取ると、該当するコンテンツ（コンテンツＩＤ「１」）のＵＲＬと価格情報とをコンテンツ管理ブロックチェーン５１から取得する。そして再生アプリケーション３６０は、価格情報をモニタに表示する。再生アプリケーション３６０は、ユーザ４１により、価格情報に示される価格を承認する入力が行われると、取得したＵＲＬを共通鍵「ｓｋ１」で復号する。再生アプリケーション３６０は、復号して得られたＵＲＬに、ユーザの秘密鍵の署名を添付したアクセス要求をコンテンツサーバ４００に送信する。
【０１２３】
コンテンツサーバ４００は、アクセス要求を送信した端末装置３００を使用しているユーザ４１の公開鍵を、コンテンツ管理ブロックチェーン５１から取得し、その公開鍵を用いて署名の正当性を確認する。署名が正当であるとコンテンツサーバ４００で認められると、再生アプリケーション３６０は、送信したＵＲＬに示される位置にあるコンテンツをコンテンツサーバ４００から取得する。再生アプリケーション３６０は、取得したコンテンツ（例えば動画データ）を再生し、再生結果をモニタに表示する。これにより、ユーザ４１は、コンテンツサーバ４００に格納されているコンテンツを閲覧することができる。他のユーザ４２，４３も同様に、それぞれ再生アプリケーション３６０ａ，３６０ｂを用いて、コンテンツを閲覧することができる。
【０１２４】
図１９は、第４の実施の形態において一部のユーザが退会した後の共通鍵の配布およびコンテンツ提供の一例を示す図である。図１９の例では、ユーザ４３（Ｃ氏）が退会したものとする。
【０１２５】
鍵配布エージェント１４０は、共通鍵「ｓｋ１」を作成してから所定の有効時間が経過したことを確認すると、新たな共通鍵「ｓｋ２」を生成し、生成した共通鍵「ｓｋ２」をコンテンツ管理エージェント１５０に送信する。次に、鍵配布エージェント１４０は、契約期間中のユーザ４１，４２それぞれの公開鍵「ＰＫA」、「ＰＫB」を使って、新たな共通鍵「ｓｋ２」を暗号化する。そして鍵配布エージェント１４０は、暗号化した共通鍵「ｓｋ２」を含むブロック８３を、コンテンツ管理ブロックチェーン５１に登録する。
【０１２６】
共通鍵「ｓｋ２」を受信したコンテンツ管理エージェント１５０は、ユーザ４１，４２に提供するコンテンツのＵＲＬが入力されると、共通鍵「ｓｋ２」を使って、新たに提供するコンテンツのＵＲＬを暗号化する。コンテンツ管理エージェント１５０は、コンテンツＩＤ「３」を付与した暗号化済みのＵＲＬと価格情報とを含むブロック８４を、コンテンツ管理ブロックチェーン５１に登録する。
【０１２７】
ユーザ４１は、再生アプリケーション３６０を用いて、自分用の公開鍵「ＰＫA」で暗号化された共通鍵「ｓｋ２」を、コンテンツ管理ブロックチェーン５１から取得する。再生アプリケーション３６０は、取得した共通鍵「ｓｋ２」を、ユーザ４１の秘密鍵で復号する。再生アプリケーション３６０は、ユーザ４１からコンテンツの参照要求の入力を受け取ると、該当するコンテンツ（コンテンツＩＤ「３」）のＵＲＬと価格情報とをコンテンツ管理ブロックチェーン５１から取得する。そして再生アプリケーション３６０は、価格情報をモニタに表示する。再生アプリケーション３６０は、ユーザ４１により、価格情報に示される価格を承認する入力が行われると、取得したＵＲＬを共通鍵「ｓｋ２」で復号する。再生アプリケーション３６０は、復号して得られたＵＲＬに、ユーザの秘密鍵の署名を添付したアクセス要求をコンテンツサーバ４００に送信する。
【０１２８】
署名が正当であるとコンテンツサーバ４００で認められると、再生アプリケーション３６０は、送信したＵＲＬに示される位置にあるコンテンツをコンテンツサーバ４００から取得する。再生アプリケーション３６０は、取得したコンテンツ（例えば動画データ）を再生し、再生結果をモニタに表示する。これにより、ユーザ４１は、コンテンツサーバ４００に格納されているコンテンツを閲覧することができる。
【０１２９】
同様に、ユーザ４２も再生アプリケーション３６０ａを用いてコンテンツを参照することができる。退会したユーザ４３は、ブロック８３に、ユーザ４３の公開鍵で暗号化した共通鍵「ｓｋ２」が含まれていないため、共通鍵「ｓｋ２」を取得できない。すなわち、ユーザ４３は、退会後に提供されたコンテンツを参照することはできない。
【０１３０】
第４の実施の形態における各要素の処理のうち、鍵配布エージェント１４０の処理は、図９に示した第２の実施の形態の処理と同じである。また入退会管理システム２２０の処理は、図１１に示した第２の実施の形態の処理と同じである。以下、第４の実施の形態における第２の実施の形態と異なる処理を実行する要素について、実行する処理の手順を具体的に説明する。
【０１３１】
図２０は、第４の実施の形態におけるコンテンツ管理エージェントの処理の手順の一例を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
【０１３２】
［ステップＳ３０１］コンテンツ管理エージェント１５０は、鍵配布エージェント１４０から共通鍵を取得する。
［ステップＳ３０２］コンテンツ管理エージェント１５０は、共通鍵を暗号鍵として使用して、コンテンツのＵＲＬを暗号化する。
【０１３３】
［ステップＳ３０３］コンテンツ管理エージェント１５０は、暗号化したＵＲＬと価格情報とを含むブロックを、コンテンツ管理ブロックチェーン５１に登録する。
次に、再生アプリケーション３６０が実行する処理について具体的に説明する。
【０１３４】
図２１は、再生アプリケーションが実行する処理の手順の一例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
［ステップＳ３１１］再生アプリケーション３６０は、コンテンツ管理ブロックチェーン５１から、端末装置３００を使用しているユーザ４１の公開鍵で暗号化された共通鍵を取得する。
【０１３５】
［ステップＳ３１２］再生アプリケーション３６０は、取得した共通鍵を、ユーザ４１の秘密鍵で復号する。再生アプリケーション３６０は、復号した共通鍵を、ストレージ装置などの記憶媒体に格納する。
【０１３６】
［ステップＳ３１３］再生アプリケーション３６０は、ユーザ４１からの閲覧対象のコンテンツの指定入力に応じ、指定されたコンテンツのコンテンツＩＤを指定して、コンテンツ管理ブロックチェーン５１から該当コンテンツの価格情報を取得する。そして再生アプリケーション３６０は、価格情報に示されるコンテンツの価格を表示し、価格に対するユーザ４１の承認入力を受け付ける。
【０１３７】
［ステップＳ３１４］再生アプリケーション３６０は、ユーザ４１の承認入力に応じ、指定されたコンテンツのコンテンツＩＤを指定して、コンテンツ管理ブロックチェーン５１から該当コンテンツのＵＲＬを取得する。
【０１３８】
［ステップＳ３１５］再生アプリケーション３６０は、取得したＵＲＬを共通鍵で復号する。
［ステップＳ３１６］再生アプリケーション３６０は、復号したＵＲＬにユーザ４１に署名を添付したアクセス要求を、コンテンツサーバ４００に送信する。例えば再生アプリケーション３６０は、ＵＲＬのハッシュ値を、ユーザ４１の秘密鍵で暗号化し、そのＵＲＬの署名とする。
【０１３９】
［ステップＳ３１７］再生アプリケーション３６０は、コンテンツサーバ４００においてアクセスが許可された場合、復号したＵＲＬにあるコンテンツにアクセスし、このコンテンツを再生、および表示する。
【０１４０】
これにより、ユーザ４１は、閲覧対象として指定したコンテンツを閲覧することができる。
次に、コンテンツサーバ４００が実行する処理について説明する。
【０１４１】
図２２は、コンテンツサーバが実行する処理の手順の一例を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
［ステップＳ３２１］コンテンツサーバ４００は、コンテンツアクセス用のＵＲＬと契約者の署名とを含むアクセス要求を受け付ける。
【０１４２】
［ステップＳ３２２］コンテンツサーバ４００は、契約者の署名の検証のため、アクセス要求の送信元のユーザの公開鍵を、コンテンツ管理ブロックチェーン５１から取得する。
【０１４３】
［ステップＳ３２３］コンテンツサーバ４００は、アクセス要求に添付された署名が有効か否かを判断する。例えばコンテンツサーバ４００は、署名をユーザの公開鍵で復号すると共に、ＵＲＬのハッシュ値を算出する。コンテンツサーバ４００は、復号して得られた値と、算出したハッシュ値とが同一であれば、有効な署名であると判断する。コンテンツサーバ４００は、署名が有効であれば、処理をステップＳ３２４に進める。またコンテンツサーバ４００は、署名が無効であれば、処理をステップＳ３２５に進める。
【０１４４】
［ステップＳ３２４］コンテンツサーバ４００は、コンテンツへのアクセスを許可し、アクセス要求に示されるＵＲＬのコンテンツを、アクセス要求の送信元の端末装置に送信する。コンテンツサーバ４００は、その後、アクセス要求に応じた処理を終了する。
【０１４５】
［ステップＳ３２５］コンテンツサーバ４００は、コンテンツ要求を送信した端末装置からのコンテンツへのアクセスを拒否する。アクセスを拒否した場合、例えばコンテンツサーバ４００は、アクセス要求の送信元の端末装置へ、アクセス拒否の応答を送信する。
【０１４６】
このようにして、ブロックチェーンとは別の場所にコンテンツを保存した場合であっても、コンテンツに対する閲覧の管理を、ブロックチェーンを用いて適切に行うことができる。
【０１４７】
〔第５の実施の形態〕
次に第５の実施の形態について説明する。第５の実施の形態は、第４の実施の形態における入退会管理システム２２０に代えて、ブロックチェーンを用いてユーザの入退会や課金処理を実現するものである。また第５の実施の形態では、ユーザが閲覧を希望するコンテンツの代金を、仮想通貨によって課金し、課金が正常に完了した場合にのみ、ユーザがコンテンツを閲覧できるようにする。
【０１４８】
図２３は、第５の実施の形態における各装置の機能の一例を示すブロック図である。図２３では、第４の実施の形態と同様の機能を有する要素には第４の実施の形態と同じ符号を付している。
【０１４９】
第５の実施の形態では、ブロックチェーンノード１００に、入会エージェント１６０、退会エージェント１７０、および課金エージェント１８０が追加されている。入会エージェント１６０は、会員の入会処理を行う。退会エージェント１７０は、会員の退会処理を行う。課金エージェント１８０は、会員がコンテンツを参照するごとに、仮想通貨による課金処理を行う。入会エージェント１６０、退会エージェント１７０、および課金エージェント１８０は、例えばチェーンコードをブロックチェーンノード１００に実行させることで実現される。同様に、ブロックチェーンノード１００ａも入会エージェント１６０ａ、退会エージェント１７０ａ、課金エージェント１８０ａを有する。他のブロックチェーンノード１００ｂ，・・・は、ブロックチェーンノード１００ａと同様の要素を有している。
【０１５０】
なお課金エージェントは、第１の実施の形態で説明した課金部の一例である。
図２４は、ユーザの入会処理の一例を示す図である。入会エージェント１６０は、例えばユーザ４１が使用する端末装置３００のＷｅｂブラウザ３２０からユーザ情報を取得する。例えばユーザ４１は、Ｗｅｂブラウザ３２０により、ブロックチェーンノード１００の入会エージェント１６０にアクセスし、コンテンツサービスへの入会画面のデータを取得する。ユーザ４１は、Ｗｅｂブラウザ３２０によって表示された入会画面に、ログインＩＤ、パスワード、ワレットＩＤなどのユーザ情報を入力する。なお入会画面では、閲覧するコンテンツを選択することができ、選択したコンテンツのコンテンツＩＤや代金が入会画面に表示される。ユーザ４１が入力したユーザ情報は、Ｗｅｂブラウザ３２０から入会エージェント１６０に送信される。
【０１５１】
入会エージェント１６０は、ユーザ管理ブロックチェーン５３からユーザ登録用公開鍵５０１を取得し、Ｗｅｂブラウザ３２０から送られたユーザ情報を、ユーザ登録用公開鍵５０１で暗号化する。次に入会エージェント１６０は、ユーザ４１のワレット（電子財布）の有効性を検証する。例えば入会エージェント１６０は、仮想通貨ブロックチェーン５２から、ユーザ４１のワレットＩＤに対応するワレットの情報を取得し、仮想通貨ブロックチェーン５２の仕組みを用いてワレットが有効であることの検証を行う。
【０１５２】
次に入会エージェント１６０は、ユーザ鍵（秘密鍵５０２と公開鍵５０３とのペア）を生成する。入会エージェント１６０は、生成した秘密鍵５０２を、ユーザ４１が使用している端末装置３００内の再生アプリケーション３６０に送信する。また入会エージェント１６０は、生成した公開鍵５０３を含むブロック９０（鍵ブロック）を、コンテンツ管理ブロックチェーン５１に登録する。
【０１５３】
次に入会エージェント１６０は、暗号化されたユーザ情報に、ユーザ４１のログインＩＤと、ユーザ情報を有効であることを示す有効フラグ「１」を付与する。そして入会エージェント１６０は、ログインＩＤと有効フラグを付与したユーザ情報をユーザ管理ブロックチェーン５３に登録する。
【０１５４】
ユーザ管理ブロックチェーン５３に登録されたユーザ情報を復号するためのユーザ登録用秘密鍵は、退会エージェント１７０と課金エージェント１８０とのそれぞれで管理されている。退会エージェント１７０と課金エージェント１８０は、それぞれ、暗号化されたユーザ情報を復号できる。
【０１５５】
次に、入会エージェント１６０が実行する処理について具体的に説明する。
図２５は、入会エージェントが実行する処理の手順の一例を示すフローチャートである。以下、図２５に示す処理をステップ番号に沿って説明する。
【０１５６】
［ステップＳ４０１］入会エージェント１６０は、ユーザが使用する端末装置に入会画面データを送信し、端末装置に入会画面を表示させる。
［ステップＳ４０２］入会エージェント１６０は、ユーザによって入会画面に入力されたログインＩＤ、パスワード、ワレットＩＤを、ユーザ情報として端末装置から取得する。
【０１５７】
［ステップＳ４０３］入会エージェント１６０は、ユーザ管理ブロックチェーン５３からユーザ登録用公開鍵５０１を取得する。そして入会エージェント１６０は、取得したユーザ登録用公開鍵５０１を暗号鍵として用いて、端末装置から取得したユーザ情報を暗号化する。
【０１５８】
［ステップＳ４０４］入会エージェント１６０は、仮想通貨ブロックチェーン５２にアクセスし、ユーザ情報に示されるワレットＩＤに対するワレットの有効性を確認する。
［ステップＳ４０５］入会エージェント１６０は、ワレットが有効であれば、処理をステップＳ４０６に進める。また入会エージェント１６０は、ワレットが有効でなければ、処理をステップＳ４０１に進める。
【０１５９】
［ステップＳ４０６］入会エージェント１６０は、ユーザの鍵ペア（公開鍵＋秘密鍵）を生成する。
［ステップＳ４０７］入会エージェント１６０は、生成した鍵ペアを、ユーザが使用する端末装置に送信し、その端末装置に、実装されている再生アプリケーションへの秘密鍵の登録処理を実行させる。
【０１６０】
［ステップＳ４０８］入会エージェント１６０は、ユーザの公開鍵を、コンテンツ管理ブロックチェーン５１に登録する。
［ステップＳ４０９］入会エージェント１６０は、暗号化したユーザ情報に、ログインＩＤと「有効（１）」を示す有効フラグとを付与し、ユーザ情報を、ユーザ管理ブロックチェーン５３に登録する。
【０１６１】
このようにして、ユーザの入会処理が完了する。次にユーザの退会処理について説明する。
図２６は、ユーザの退会処理の一例を示す図である。例えばユーザ４１が端末装置３００のＷｅｂブラウザ３２０を介して退会エージェント１７０にアクセスし、退会画面からログインＩＤとパスワードとを含む退会要求を入力する。退会要求は、Ｗｅｂブラウザ３２０から退会エージェント１７０に送信される。退会エージェント１７０は、退会要求を受信すると、退会要求に示されるログインＩＤに対応するユーザ情報を、ユーザ管理ブロックチェーン５３から取得する。この時点では、取得したユーザ情報には、「有効」を示す有効フラグ「１」が付与されている。退会エージェント１７０は、ユーザ登録用秘密鍵５０４を用いて、ユーザ情報を復号する。
【０１６２】
次に退会エージェント１７０は、パスワードの有効性を検証し、パスワードが有効であれば、ユーザ管理ブロックチェーン５３から、退会するユーザ４１のユーザ情報を削除する。例えば退会エージェント１７０は、ユーザ４１のログインＩＤと、ユーザ情報が無効であることを示す有効フラグ「０」との組をユーザ管理ブロックチェーン５３に登録する。さらに退会エージェント１７０は、ユーザ４１の公開鍵を削除したブロック９９を、コンテンツ管理ブロックチェーン５１に登録する。
【０１６３】
次に、退会エージェント１７０が実行する処理について具体的に説明する。
図２７は、退会エージェントが実行する処理の手順の一例を示すフローチャートである。以下、図２７に示す処理をステップ番号に沿って説明する。
【０１６４】
［ステップＳ４１１］退会エージェント１７０は、ユーザが使用する端末装置から、ログインＩＤとパスワードとの組を含む退会要求を受信する。
［ステップＳ４１２］退会エージェント１７０は、ユーザ管理ブロックチェーン５３から、退会要求に示されるログインＩＤに対応する有効なユーザ情報を取得する。
【０１６５】
［ステップＳ４１３］退会エージェント１７０は、ユーザ登録用秘密鍵を復号鍵として使用し、取得したユーザ情報を復号する。
［ステップＳ４１４］退会エージェント１７０は、退会要求に含まれるログインＩＤとパスワードとの組に基づいて、パスワードが有効か否かを判断する。例えば退会エージェント１７０は、復号したユーザ情報に含まれるパスワードと、退会要求に含まれるパスワードとが一致した場合、パスワードが有効であると判断する。退会エージェント１７０は、パスワードが有効な場合、処理をステップＳ４１５に進める。また退会エージェント１７０は、パスワードが有効でなければ、処理をステップＳ４１１に進める。
【０１６６】
［ステップＳ４１５］退会エージェント１７０は、ユーザ管理ブロックチェーン５３に、退会するユーザのログインＩＤと有効フラグ「０」（削除）との組を登録する。
［ステップＳ４１６］退会エージェント１７０は、退会するユーザの公開鍵を削除したブロックを、コンテンツ管理ブロックチェーン５１に登録する。
【０１６７】
このようにしてユーザの退会処理が行われる。次に課金エージェント１８０によるコンテンツごとの課金処理について説明する。
図２８は、課金処理の一例を示す図である。図２８の例では、コンテンツ管理ブロックチェーン５１には、予め会員登録しているユーザの公開鍵を含むブロック９０と、共通鍵「ｓｋ１」で暗号化したＵＲＬおよび価格情報を含むブロック９１とが登録されているものとする。
【０１６８】
ここで、例えばユーザ４１がコンテンツを閲覧する場合、Ｗｅｂブラウザ３２０を用いて課金エージェント１８０にアクセスし、コンテンツ入手画面を表示させる。ユーザ４１は、コンテンツ入手画面で閲覧するコンテンツを選択し、ログインＩＤとパスワードとを入力する。Ｗｅｂブラウザ３２０は、入力されたコンテンツＩＤとユーザ情報（ログインＩＤとパスワード）とを課金エージェント１８０に送信する。
【０１６９】
課金エージェント１８０は、ユーザ管理ブロックチェーン５３からユーザ４１のユーザ情報を取得する。そして課金エージェント１８０は、ユーザ登録用秘密鍵５０４を復号鍵として用いて、ユーザ管理ブロックチェーン５３から取得したユーザ情報を復号する。次に課金エージェント１８０は、Ｗｅｂブラウザ３２０から送られたコンテンツＩＤに対応するコンテンツの価格情報を、コンテンツ管理ブロックチェーン５１から取得する。そして課金エージェント１８０は、仮想通貨ブロックチェーン５２を介して、ユーザ４１のワレットに対して、コンテンツの価格分の課金処理を行う。例えば課金エージェント１８０は、ユーザ４１のワレットからコンテンツの価格分の金額を、コンテンツ提供者のワレットに送金することを示すブロックを、仮想通貨ブロックチェーン５２に登録する。
【０１７０】
課金処理後、課金エージェント１８０は、ユーザ４１の端末装置３００によるコンテンツ復号用の共通鍵の登録指示を、鍵配布エージェント１４０に送信する。鍵配布エージェント１４０は、共通鍵の登録指示に応じて、ユーザ４１の公開鍵「ＰＫX」で暗号化した共通鍵「ｓｋ１」を含むブロック９２を、コンテンツ管理ブロックチェーン５１に登録する。
【０１７１】
再生アプリケーション３６０は、コンテンツ管理ブロックチェーン５１から、ユーザ４１の公開鍵「ＰＫX」で暗号化した共通鍵「ｓｋ１」を取得し、その共通鍵「ｓｋ１」をユーザ４１の秘密鍵で復号する。次に再生アプリケーション３６０は、コンテンツ管理ブロックチェーン５１から共通鍵「ｓｋ１」で暗号化されたコンテンツのＵＲＬを取得し、そのＵＲＬを共通鍵「ｓｋ１」で復号する。再生アプリケーション３６０は、復号により得られたＵＲＬを指定して、ユーザ４１の署名付きのアクセス要求をコンテンツサーバ４００に送信する。コンテンツサーバ４００は、コンテンツ管理ブロックチェーン５１からユーザ４１の公開鍵を取得して、署名の正当性を確認し、署名が正当であれば、コンテンツへのアクセスを許可する。コンテンツへのアクセスが許可された再生アプリケーション３６０は、コンテンツサーバ４００に格納されているコンテンツを取得し、再生および表示する。
【０１７２】
次に自動課金を用いたコンテンツの提供処理について具体的に説明する。
図２９は、自動課金を用いたコンテンツ提供処理の手順の一例を示すフローチャートである。以下、ユーザ４１が端末装置３００を用いてコンテンツを参照する場合を想定し、図２９に示す処理をステップ番号に沿って説明する。
【０１７３】
［ステップＳ４２１］課金エージェント１８０は、ユーザ４１が使用する端末装置３００からログインＩＤ、パスワード、およびコンテンツＩＤを取得する。
［ステップＳ４２２］課金エージェント１８０は、ユーザ管理ブロックチェーン５３からユーザ情報を取得する。そして課金エージェント１８０は、取得したユーザ情報を、ユーザ登録用秘密鍵５０４で復号する。
【０１７４】
［ステップＳ４２３］課金エージェント１８０は、コンテンツ管理ブロックチェーン５１からコンテンツの価格情報を取得する。
［ステップＳ４２４］課金エージェント１８０は、コンテンツの価格情報に示される金額を、仮想通貨ブロックチェーン５２におけるユーザ４１のワレットに課金する。
【０１７５】
［ステップＳ４２５］課金エージェント１８０は、課金が正常に終了したか否かを判断する。課金エージェント１８０は、課金が正常に終了した場合、処理をステップＳ４２７に進める。また課金エージェント１８０は、ユーザ４１のワレットの残高不足などにより課金が正常に終了できなかった場合、処理をステップＳ４２６に進める。
【０１７６】
［ステップＳ４２６］課金エージェント１８０は、課金の異常終了を、ユーザ４１が使用する端末装置３００に送信し、処理を終了する。
［ステップＳ４２７］課金エージェント１８０は、鍵配布エージェント１４０にユーザの復号用の共通鍵の登録を指示する。
【０１７７】
［ステップＳ４２８］鍵配布エージェント１４０が、ユーザ４１の公開鍵で暗号化した共通鍵を、コンテンツ管理ブロックチェーン５１に登録する。
［ステップＳ４２９］再生アプリケーション３６０は、ユーザ４１の公開鍵で暗号化した共通鍵をコンテンツ管理ブロックチェーン５１から取得し、ユーザ４１の秘密鍵で共通鍵を復号する。さらに再生アプリケーション３６０は、コンテンツ管理ブロックチェーン５１からコンテンツの暗号化されたＵＲＬを取得し、共通鍵でＵＲＬを復号する。
【０１７８】
［ステップＳ４３０］再生アプリケーション３６０は、ＵＲＬにユーザ４１の署名を添付したアクセス要求を、コンテンツサーバ４００に送信する。
［ステップＳ４３１］再生アプリケーション３６０は、コンテンツサーバ４００においてアクセスが許可されると、コンテンツサーバ４００からコンテンツを取得し、そのコンテンツの再生および表示を行う。
【０１７９】
このようにして、コンテンツごとの自動課金を行うことができる。そして、課金が完了したユーザのみ、コンテンツを復号するための共通鍵を取得し、コンテンツを参照することができる。第５の実施の形態においても、各ユーザは、代金を支払い済みのコンテンツについては、そのコンテンツの暗号化に用いた共通鍵を有しているため、退会後もそのコンテンツを参照可能である。
【０１８０】
〔その他の実施の形態〕
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１８１】
１ａ，１ｂ，１ｃ  ユーザ
２ａ，２ｂ，２ｃ  端末装置
３ａ，３ｂ，３ｃ  公開鍵
４ａ，４ｂ，４ｃ  秘密鍵
５，５ａ  コンテンツ
６，６ａ，６ｂ，６ｃ  共通鍵
１０  コンテンツ配信システム
１０ａ，１０ｂ，１０ｃ，・・・  コンテンツ配信装置
１１  記憶部
１１ａ  ユーザＤＢ
１２  鍵生成部
１２ａ，１２ｂ，１２ｃ  鍵ペア
１３  鍵配布部
１４  暗号化部
１５  登録部
１６  ユーザ更新部
１７  鍵更新部
１８  ブロックチェーン
【図１】
2019029933.tif 000003
【図２】
2019029933.tif 000004
【図３】
2019029933.tif 000005
【図４】
2019029933.tif 000006
【図５】
2019029933.tif 000007
【図６】
2019029933.tif 000008
【図７】
2019029933.tif 000009
【図８】
2019029933.tif 000010
【図９】
2019029933.tif 000011
【図１０】
2019029933.tif 000012
【図１１】
2019029933.tif 000013
【図１２】
2019029933.tif 000014
【図１３】
2019029933.tif 000015
【図１４】
2019029933.tif 000016
【図１５】
2019029933.tif 000017
【図１６】
2019029933.tif 000018
【図１７】
2019029933.tif 000019
【図１８】
2019029933.tif 000020
【図１９】
2019029933.tif 000021
【図２０】
2019029933.tif 000022
【図２１】
2019029933.tif 000023
【図２２】
2019029933.tif 000024
【図２３】
2019029933.tif 000025
【図２４】
2019029933.tif 000026
【図２５】
2019029933.tif 000027
【図２６】
2019029933.tif 000028
【図２７】
2019029933.tif 000029
【図２８】
2019029933.tif 000030
【図２９】
2019029933.tif 000031