(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110497
(43)【公開日】2024-08-16
(54)【発明の名称】情報処理システム、情報処理方法、およびプログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20240808BHJP
H04L 9/14 20060101ALI20240808BHJP
G06F 21/60 20130101ALI20240808BHJP
G06F 21/10 20130101ALI20240808BHJP
H04L 67/568 20220101ALI20240808BHJP
G06F 16/903 20190101ALI20240808BHJP
【FI】
G06F21/62 309
H04L9/14
G06F21/60 360
G06F21/60 320
G06F21/10
H04L67/568
G06F16/903
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023015081
(22)【出願日】2023-02-03
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(71)【出願人】
【識別番号】514020389
【氏名又は名称】TIS株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】江村 恵太
(72)【発明者】
【氏名】吉見 真聡
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175DA10
5B175KA11
(57)【要約】 (修正有)
【課題】ユーザが暗号化されたデジタルコンテンツを復号可能な期間を適切に制限するシステムを提供する。
【解決手段】情報処理システム10において、情報処理装置は、第1時間情報をユーザ端末から取得する時間情報取得部、第2時間情報が割り当てられた木構造において、第1時間情報と第2時間情報とに基づき特定される木構造の所定の深さの特定ノードから、ルートに至る経路に含まれるノードの夫々に割り当てられ、ユーザ端末に送信される第1共通鍵セットと、所定の時間において、所定のデジタルコンテンツを利用する利用要求と、をユーザ端末から取得した場合、共通鍵である第2共通鍵セットを特定する第2共通鍵セット特定部、第2共通鍵セットに含まれる特定共通鍵が特定可能か否かを判定する特定共通鍵判定部及びキャッシュ装置から、キャッシュ暗号コンテンツを取得するための第1タグデータを、ユーザ端末に送信するタグデータ送信部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1時間を示す第1時間情報をユーザ端末から取得する時間情報取得部と、
ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造
において、
前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、
所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、
前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定する第2共通鍵セット特定部と、
前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定する特定共通鍵判定部と、
前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信するタグデータ送信部と、
を備える情報処理システム。
【請求項2】
前記キャッシュ装置において、前記ユーザ端末から送信された前記第1タグデータと一致するタグデータが前記キャッシュデータベースに存在しないと判定される場合、前記キャッシュ装置から前記第1タグデータを取得するタグデータ取得部と、
デジタルコンテンツと、デジタルコンテンツのメッセージ認証のためのタグデータと、を関連づけて格納するデータベースに基づき特定される、前記第1タグデータに関連するデジタルコンテンツを前記特定共通鍵で復号可能に暗号化して前記キャッシュ暗号コンテンツを生成する暗号コンテンツ生成部と、
前記キャッシュ暗号コンテンツを、前記第1タグデータと一致するタグデータに関連づけて前記キャッシュデータベースに格納させる記憶実行部と、
をさらに備える請求項1に記載の情報処理システム。
【請求項3】
前記ユーザ端末において前記特定共通鍵で前記キャッシュ暗号コンテンツの復号が不可能であった場合、前記キャッシュ暗号コンテンツのハッシュ値である第1ハッシュ値と、前記第1タグデータと、を前記キャッシュ装置から取得するハッシュ取得部と、
前記第1ハッシュ値および前記第1タグデータを取得した場合、デジタルコンテンツと、デジタルコンテンツのメッセージ認証のためのタグデータと、を関連づけて格納するデータベースに基づき特定される、前記第1タグデータに関連するデジタルコンテンツである第1デジタルコンテンツを、前記特定共通鍵と一致する共通鍵で暗号化した暗号コンテンツのハッシュ値である第2ハッシュ値を算出するハッシュ算出部と、
前記第1ハッシュ値と、前記第2ハッシュ値と、が一致するか否かを判定するハッシュ判定部と、
前記第1ハッシュ値と前記第2ハッシュ値とが一致しないと判定された場合、前記第1デジタルコンテンツを前記特定共通鍵と一致する共通鍵で暗号化した暗号コンテンツを前記キャッシュ装置および前記ユーザ端末の少なくともいずれかに送信するコンテンツ送信部と、
をさらに備える請求項1または請求項2に記載の情報処理システム。
【請求項4】
前記キャッシュ装置は、前記キャッシュデータベースを有する第1キャッシュ装置と、前記キャッシュデータベースを有する第2キャッシュ装置と、を含み、
前記情報処理システムは、
前記第1キャッシュ装置と、前記第2キャッシュ装置と、の少なくともいずれかに、前記所定のデジタルコンテンツに対する前記利用要求の回数に基づいて、前記所定のデジタルコンテンツを暗号化した前記暗号コンテンツを前記タグデータに関連づけて記憶させる記憶実行部をさらに備え、
前記タグデータ送信部は、前記第1キャッシュ装置および前記第2キャッシュ装置のいずれかから、前記キャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記第1タグデータを前記ユーザ端末に送信する、
請求項1に記載の情報処理システム。
【請求項5】
コンピュータが、
第1時間を示す第1時間情報をユーザ端末から取得することと、
ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造
において、
前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、
所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、
前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定することと、
前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定することと、
前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信することと、
を実行する情報処理方法。
【請求項6】
コンピュータに、
第1時間を示す第1時間情報をユーザ端末から取得することと、
ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造
において、
前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、
所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、
前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定することと、
前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定することと、
前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
例えば、コンテンツ配信サービスにおいて、サービスプロバイダが当該コンテンツをユーザに送信するとき、キャッシュ装置を介して暗号化したコンテンツをユーザ端末に送信する技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のシステムでは、ユーザ端末が暗号化されたデータ(例えば動画などのデジタルコンテンツ)をキャッシュ装置から取得するために、当該データを識別する識別情報をキャッシュ装置に送信する。そして、当該識別情報に基づき、キャッシュ装置からユーザ端末に暗号化されたデータが送信された後、当該データを復号するための共通鍵が配信サーバからユーザ端末に送信される。このとき、特許文献1に記載のシステムでは、識別情報に有効期限を設定することによって、当該データを復号するための共通鍵をユーザ端末が取得可能な期間を制限している。しかし、当該システムでは、共通鍵が当該有効期限と関連づけられていないため、ユーザ端末が共通鍵を取得した後において、ユーザ端末は期間的な制限を受けずにデータを復号することが可能になるという問題が生じる。
【0005】
そこで、本発明は、上記事情に鑑み、ユーザが暗号化されたデジタルコンテンツを復号可能な期間を適切に制限可能なシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る情報処理システムは、第1時間を示す第1時間情報をユーザ端末から取得する時間情報取得部と、ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造において、前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定する第2共通鍵セット特定部と、前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定する特定共通鍵判定部と、前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信するタグデータ送信部と、を備える。
【0007】
本発明の一態様に係る情報処理方法は、コンピュータが、第1時間を示す第1時間情報をユーザ端末から取得することと、ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造において、前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定することと、前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定することと、前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信することと、を含む。
【0008】
本発明の一態様に係るプログラムは、コンピュータに、第1時間を示す第1時間情報をユーザ端末から取得することと、ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、前記所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造において、前記第1時間情報と前記第2時間情報とに基づき特定される前記木構造の前記所定の深さのノードである特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた前記共通鍵である第1共通鍵セットが前記ユーザ端末に送信され、所定の時間において、前記第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、を前記ユーザ端末から取得した場合、前記第2時間のうちの前記所定の時間より前の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含まず、前記所定の時間以降の時間を示す前記第2時間情報が割り当てられた前記所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた前記共通鍵である第2共通鍵セットを特定することと、前記第1共通鍵情報に基づいて、前記第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、前記第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定することと、前記特定共通鍵を特定可能と判定された場合、前記木構造のノードに割り当てられた前記共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、前記暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置から、前記所定のデジタルコンテンツが前記特定共通鍵と一致する共通鍵で暗号化された前記暗号コンテンツであるキャッシュ暗号コンテンツを前記ユーザ端末が取得するための前記タグデータである第1タグデータを、前記ユーザ端末に送信することと、を実行させる。
【発明の効果】
【0009】
本発明によれば、ユーザが暗号化されたデジタルコンテンツを復号可能な期間を適切に制限可能なシステムを提供することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】情報処理システムの構成の一例を示す図である。
【
図3A】時間木構造を用いた処理を説明するための図である。
【
図3B】時間木構造を用いた処理を説明するための図である。
【
図4】時間木構造データベースD101を示す図である。
【
図5】コンテンツデータベースD102を示す図である。
【
図6】情報処理システムにおける第1共通鍵セット送信処理およびコンテンツ送信処理を含む処理手順を示すフロー図である。
【
図7】情報処理システムにおけるキャッシュ処理および再送信処理を含む処理手順のフロー図である。
【
図8】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
===本実施形態に係る情報処理システム10===
図1を参照して、本実施形態に係る情報処理システム10の概要について説明する。
図1は、本実施形態に係る情報処理システム10の構成の一例を示す図である。
【0012】
情報処理システム10は、キャッシュ装置を介して暗号化された情報をやり取りする際に、共通鍵の配布に用いられるCS(Complete Subtree)法によって、時間を示す情報が設定された木構造を用いて、所定のユーザに適切な共通鍵を配布するシステムである。これにより、情報処理システム10は、暗号化された所定の情報をユーザが取得することについて、時間的な制限が可能となる。
【0013】
共通鍵は、共通鍵暗号方式においてデータの暗号化と復号に用いられる鍵である。共通鍵暗号方式は、例えば、AES(Advanced Encryption Standard)のアルゴリズムを用いてもよい。以下では、一例として、共通鍵はデジタルコンテンツの暗号化、および復号に用いられるものとする。デジタルコンテンツは、例えば、写真、動画、音楽などである。
【0014】
<<構成の概要>>
図1を参照して、情報処理システム10の構成の概要について説明する。
図1に示すように、情報処理システム10は、例えば、情報処理装置100と、ユーザ端末200と、キャッシュ装置300とを含む。
【0015】
情報処理システム10を構成する各装置は、通信ネットワークにより互いに通信可能に接続されている。通信ネットワークは、有線ネットワークまたは無線ネットワークである。なお、図示の都合により、情報処理装置100、ユーザ端末200、キャッシュ装置300は1つしか示されていないが、情報処理システム10は、情報処理装置100と、ユーザ端末200と、キャッシュ装置300とのそれぞれを複数含んで構成されていてもよい。
【0016】
情報処理装置100は、各ノードに共通鍵が割り当てられている木構造に時間を示す情報(以下、「時間情報」という。)を設定する。時間情報は、例えば、木構造における末端のノード(葉ノード)に設定することができる。情報処理装置100は、当該木構造を用いて、ユーザに適切に共通鍵を送信する装置である。
【0017】
上述した、情報処理システム10で用いる時間情報が設定された木構造(以下、「時間木構造」という。)について説明する。
図2は、時間木構造の一例を示す図である。時間木構造は多分木で構成される。
図2では、一例として、時間木構造は2分木で構成されているものとして説明する。また、
図2(a)に示すように、時間木構造は、一例として、15個のノード(ノードN1~ノードN15)を有し、4つの階層(深さ1~深さ4)で構成されることとして説明する。
図2(a)に示す時間木構造は、8個の葉ノード(ノードN8~ノードN15)を有する。
【0018】
時間木構造は、ノードN1~ノードN15のそれぞれに異なる共通鍵が割り当てられる。具体的には、
図2(a)に示すように、ノードN1~ノードN15のそれぞれに共通鍵k1~共通鍵k15のそれぞれが割り当てられる。また、時間木構造は、葉ノードのそれぞれ(ノードN8~ノードN15)に時間情報が設定される。具体的には、
図2(a)に示すように、ノードN8からノードN15に向かって時間が経過するように時間情報が設定される。例えば、ノードN8には時間情報として「2022年1月31日」が設定され、ノードN8のノードN15側で隣り合うノードN9には時間情報として「2022年2月28日」が設定される。
【0019】
情報処理装置100は、時間木構造を用いて適切な共通鍵をユーザに提供する。具体的には、
図2(b)に示すように、情報処理装置100は、例えば、ユーザ端末200から取得する時間情報に基づき、当該時間情報に対応する時間木構造における葉ノード(以下、「第1特定ノード」という。)を特定する。情報処理装置100は、第1特定ノードからルートに至る経路に含まれるノードに割り当てられている共通鍵(以下、「第1共通鍵セット」という。)を特定する。情報処理装置100は、第1共通鍵セットをユーザ端末200に送信する。すなわち、第1共通鍵セットは、時間情報が示す時間が経過するまでの間、所定のデジタルコンテンツの復号に用いることができる共通鍵を含む、共通鍵の集合である。これにより、情報処理装置100は、時間木構造を用いて、デジタルコンテンツを所定の期間だけ復号可能な共通鍵をユーザ端末200に送信することができる。
【0020】
情報処理装置100は、例えば、クラウドコンピュータ、サーバコンピュータ、パーソナルコンピュータ(例えば、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットフォーム(例えば、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(例えば、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、またはコミュニケーションプラットフォームであってもよい。
【0021】
ユーザ端末200は、例えば、第1共通鍵セットを用いて暗号化されたデジタルコンテンツ(以下、「暗号コンテンツ」という。)を復号してユーザに提供する端末である。
【0022】
ユーザ端末200は、例えば、スマートフォン、携帯電話(フィーチャーフォン)、パーソナルコンピュータ(例えば、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットフォーム(例えば、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(例えば、PDA(Personal Digital Assistant)、電子メールクライアントなど)、ウェアラブル端末(メガネ型デバイス、時計型デバイスなど)、他種のコンピュータ、またはコミュニケーションプラットフォームであってもよい。
【0023】
キャッシュ装置300は、例えば、ユーザ端末200に送信する暗号コンテンツをデータベース(以下、「キャッシュデータベース」という。)にキャッシュし、暗号コンテンツをユーザ端末200に送信する装置である。また、キャッシュ装置300は、データの完全性を確認するためのメッセージ認証を用いて、暗号コンテンツをユーザ端末200に送信する。完成性とは、例えば、データが改ざんされていない状態であることや、データに欠損がないことをいう。メッセージ認証では、タグデータ(「署名データ」、「MAC値」と呼ばれることもある。)を算出し、当該タグデータを用いて、データの完全性を確認する。
【0024】
キャッシュ装置300は、例えば、クラウドコンピュータ、サーバコンピュータ、パーソナルコンピュータ(例えば、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットフォーム(例えば、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(例えば、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、またはコミュニケーションプラットフォームであってもよい。
【0025】
<<処理の概要>>
次に、
図1、
図2、
図3A、
図3Bを参照しつつ、情報処理システム10の処理の概要について説明する。
図3A、
図3Bは、一例として、時間木構造を用いた処理を説明するための図である。
【0026】
以下では、まず、ユーザ端末200がキャッシュ装置300から暗号コンテンツを取得するまでの処理の概要について説明する。具体的には、情報処理装置100が第1共通鍵セットをユーザ端末200に送信する処理(以下、「第1共通鍵セット送信処理」という。)と、キャッシュ装置300から暗号コンテンツをユーザ端末200に送信する処理(以下、「コンテンツ送信処理」という。)の概要について説明する。
【0027】
まず、第1共通鍵セット送信処理の概要について説明する。
【0028】
図1に示すように、ステップS10において、ユーザ端末200は、デジタルコンテンツの利用を所望するユーザの操作入力を受け付けて、デジタルコンテンツを利用可能な時間(以下、「第1時間」という)を示す情報(以下、「第1時間情報」という。)を情報処理装置100に送信する。第1時間は、例えば、デジタルコンテンツを提供する事業者とユーザとの間の契約で定められた期間であって、ユーザがデジタルコンテンツを利用可能な期間である。
【0029】
そして、情報処理装置100は、時間木構造の葉ノードに割り当てられている時間情報のうち、第1時間に相当する時間(以下、「第2時間」という。)を示す時間情報(以下、「第2時間情報」という。)を特定する。情報処理装置100は、第2時間情報が割り当てられたノードである第1特定ノードを特定する。以下、第1特定ノードが
図2(b)に示すノードN12であるものとして説明する。
【0030】
ステップS11において、情報処理装置100は、第1特定ノード(ノードN12)からルート(ノードN1)に至る経路に含まれるノードN12,N6,N3、N1のそれぞれに割り当てられた共通鍵を特定する。
図2(b)に示すように、情報処理装置100は、共通鍵k12、k6、k3、k1を第1共通鍵セットとして特定する。情報処理装置100は、第1共通鍵セットをユーザ端末200に送信する。
【0031】
次に、コンテンツ送信処理の概要について説明する。以下では、一例として現在の時間を「2022年2月2日」とし、現在の時間を示す時間情報を「現在時間情報」として説明する。また、一例として、ユーザがデジタルコンテンツを利用可能な期間である第1時間を「2022年5月31日」とする。
【0032】
図1に示すように、ステップS20において、ユーザ端末200は、現在の時間において、デジタルコンテンツの利用の要求(以下、「利用要求」という。)とともに、第1共通鍵セットに関する情報(以下、「第1共通鍵情報」という。)を情報処理装置100に送信する。
【0033】
ステップS21において、情報処理装置100は、現在の時間において暗号コンテンツを復号可能な共通鍵(以下、「第2共通鍵セット」という。)を特定する。具体的には、情報処理装置100は、時間木構造に含まれるノードのうち、現在の時間よりも直近で遅い時間を示す時間情報が割り当てられたノード(
図3A(a)のノードN9)を特定する。情報処理装置100は、特定したノードが割り当てられた時間以降の時間が割り当てられているノード(
図3A(a)のノードN9~ノードN15)を特定する。
【0034】
そして、情報処理装置100は、特定されたノード以外のノードを含まず、特定されたノードを含む部分木(
図3A(b)の部分木ST1,ST2,ST3)の頂点のノード(
図3A(b)のノードN3,ノードN5,ノードN9)を特定する。以下、特定された部分木の頂点のノードを「第2特定ノード」という。情報処理装置100は、第2特定ノードに割り当てられている共通鍵を第2共通鍵セット(
図3A(b)の共通鍵k3、k5、k9)として特定する。
【0035】
ステップS22において、情報処理装置100は、第1共通鍵セットに含まれる共通鍵のいずれかと、第2共通鍵セットに含まれる共通鍵のいずれかとが一致するか否かを判定する。ここでは、情報処理装置100は、
図3B(c)の時間木構造において共通鍵k3が一致していると判定する。以下、一致すると判定された共通鍵を「特定共通鍵」という。
【0036】
ステップS23において、情報処理装置100は、特定共通鍵が特定されると判定される場合、取得した利用要求が示すデジタルコンテンツに関連するタグデータ(以下、「第1タグデータ」という。)をユーザ端末200に送信する。以下では、各装置で送受信される第1タグデータは特定共通鍵で暗号化されているものとする。
【0037】
ステップS24において、ユーザ端末200は、第1タグデータをキャッシュ装置300に送信する。
【0038】
ステップS25において、キャッシュ装置300は、後述するキャッシュデータベースD301に格納されている、第1タグデータに関連する暗号コンテンツ(以下、「キャッシュ暗号コンテンツ」という。)を、ユーザ端末200に送信する。ユーザ端末200は、第1共通鍵セットのうち特定共通鍵と同じ共通鍵でキャッシュ暗号コンテンツを復号する。
【0039】
これにより、例えば、ユーザは所有する第1共通鍵セットに含まれる共通鍵で暗号コンテンツを復号して利用することができる。また、情報処理システム10は、ユーザ端末200に対するデジタルコンテンツの送信処理をキャッシュ装置300に実行させることで、ネットワークのデータ通信を効率化したシステムを提供することができる。
【0040】
なお、ステップS22において、第1共通鍵セットに含まれる共通鍵のいずれかと、第2共通鍵セットに含まれる共通鍵のいずれかとが一致しないと判定した場合(例えば
図3B(d)の状況)、情報処理装置100は、デジタルコンテンツが利用できないことを示す情報(以下、「コンテンツ利用不可情報」という。)をユーザに送信する。これにより、現在時間情報が示す時間が第1時間を経過した場合、ユーザ端末200は第1タグデータを取得できず、コンテンツの復号ができない。
【0041】
このように、情報処理システム10は、時間木構造を用いて、時間に応じて異なる共通鍵をユーザ端末に配布する仕組みと、復号可能な共通鍵が時間に応じて変動する仕組みとを組み合わせて、適切なユーザにデジタルコンテンツを利用可能にさせる。
【0042】
次に、キャッシュ装置300またはユーザ端末200において、暗号コンテンツに関する異常が生じた場合の処理の概要について説明する。具体的には、キャッシュ装置300にユーザが所望する暗号コンテンツが存在しない状態がある場合に、キャッシュ装置300に暗号コンテンツをキャッシュする処理(以下、「キャッシュ処理」という)と、ユーザ端末200において暗号コンテンツが復号できない場合に、キャッシュ装置300からユーザ端末200に暗号コンテンツを再度送信する処理(以下、「再送信処理」という。)の概要について説明する。
【0043】
まず、キャッシュ処理の概要について説明する。
【0044】
図1に示すように、ステップS30において、キャッシュ装置300は、第1タグデータと一致するタグデータが、キャッシュデータベースD301に存在しない場合、当該第1タグデータを情報処理装置100に送信する。
【0045】
ステップS31において、情報処理装置100は、第1タグデータと関連する暗号コンテンツを特定し、当該暗号コンテンツをキャッシュ暗号コンテンツとしてキャッシュ装置300に送信する。キャッシュ装置300は、取得したキャッシュ暗号コンテンツをキャッシュデータベースD301に格納する。
【0046】
これにより、情報処理システム10は、キャッシュ装置300においてキャッシュしていない暗号コンテンツを特定し、キャッシュ装置300にキャッシュさせることができ、キャッシュデータベースに所定の暗号コンテンツを有していないキャッシュ装置300が、ユーザへデジタルコンテンツを提供できない事象の再発を防止できる。
【0047】
次に、再送信処理の概要について説明する。
【0048】
ステップS40において、ユーザ端末200は、特定共通鍵でキャッシュ暗号コンテンツの復号が不可能であったことを示す情報(以下、「エラー情報」という。)をキャッシュ装置300に送信する。
【0049】
ステップS41において、キャッシュ装置300は、エラー情報を取得した場合、ユーザ端末200に送信したキャッシュ暗号コンテンツのハッシュ値(以下、「第1ハッシュ値」という。)を、情報処理装置100に送信する。ハッシュ値は、元データに基づき所定の計算手順(例えばハッシュ関数)によって算出される値である。
【0050】
ステップS42において、情報処理装置100は、第1ハッシュ値を用いてキャッシュ装置300から取得したキャッシュ暗号コンテンツの完全性を判定する。
【0051】
ステップS43において、情報処理装置100は、キャッシュ暗号コンテンツの完全性がないと判定した場合、特定共通鍵と一致する共通鍵で暗号化した暗号コンテンツ(以下、「再暗号コンテンツ」という。)を、ユーザ端末200に送信する。
【0052】
これにより、情報処理システム10は、例えばユーザ端末200が取得したキャッシュ暗号コンテンツの復号に失敗した場合に、キャッシュ暗号コンテンツを適切にユーザ端末200に再送信する仕組みを提供することができる。
【0053】
===情報処理装置100===
情報処理装置100の構成について説明する。
図1は、情報処理装置100に含まれる各装置の機能構成の一例を示す図である。
図1に示すように、情報処理装置100は、時間情報取得部101、記憶部102、第1共通鍵セット特定部103、鍵送信部104、第1共通鍵情報取得部105、第2共通鍵セット特定部106、特定共通鍵判定部107、暗号コンテンツ生成部108、コンテンツ特定部109、タグデータ送信部110、タグデータ取得部111、記憶実行部112、ハッシュ取得部113、ハッシュ算出部114、ハッシュ判定部115、コンテンツ送信部116を含む。これら各部の機能は、例えば、
図8に示すメモリ1002等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサ1001が実行したりすることにより実現される。
【0054】
時間情報取得部101は、例えば、ユーザ端末200から第1時間情報を取得する。なお、時間情報取得部101は、例えば、ユーザ端末200から所定の事業者の情報処理装置を通じて第1時間情報を取得してもよい。
【0055】
記憶部102は、例えば、時間木構造データベースD101と、コンテンツデータベースD102とを含む。
【0056】
時間木構造データベースD101について説明する。
図4は、時間木構造データベースD101を示す図である。時間木構造データベースD101は、例えば、時間木構造に含まれるノードおよび共通鍵に関する情報を格納するデータベースである。なお、時間木構造データベースD101は、情報処理装置100が記憶していてもよいし、他の装置(不図示)が記憶していてもよい。
【0057】
図4に示すように、時間木構造データベースD101は、例えば、[ノードID]、[共通鍵]、[深さ]、[第2時間情報]、[親ノードID]の項目を含む。[ノードID]は、時間木構造に含まれるノードを一意に識別可能な識別符号が格納される項目である。[共通鍵]は、ノードに割り当てられた共通鍵が格納される項目である。[深さ]は、時間木構造におけるノードの深さを示す項目である。[第2時間情報]は、時間木構造における葉ノードに割り当てられた第2時間情報が格納される項目である。[親ノードID]は、ノードの親ノードのノードIDが格納される項目である。
【0058】
コンテンツデータベースD102について説明する。
図5は、コンテンツデータベースD102を示す図である。コンテンツデータベースD102は、例えばデジタルコンテンツに関する情報を格納するデータベースである。なお、情報処理装置100は、コンテンツデータベースD102を記憶していなくてもよく、コンテンツデータベースD102は他の装置(不図示)が記憶していてもよい。この場合、情報処理装置100は、他の装置のコンテンツデータベースD102を参照するように構成することができる。
【0059】
図5に示すように、コンテンツデータベースD102は、例えば、[コンテンツID]、[コンテンツ名]、[デジタルコンテンツ]、[共通鍵]、[暗号コンテンツ]、[タグデータ]の項目を含む。[コンテンツID]は、デジタルコンテンツを一意に識別可能な識別符号が格納される項目である。[コンテンツ名]は、デジタルコンテンツの名称が格納される項目である。[デジタルコンテンツ]は、デジタルコンテンツのデータが格納される項目である。[共通鍵]は、デジタルコンテンツの暗号化および復号に用いられる共通鍵が格納される項目である。[暗号コンテンツ]は、デジタルコンテンツが共通鍵で暗号化された暗号コンテンツが格納される項目である。[タグデータ]は、暗号コンテンツのそれぞれに関連するタグデータが格納される項目である。コンテンツデータベースD102は、アクセス頻度が高い順に暗号コンテンツが格納されていてもよい。これにより、暗号コンテンツのアクセス効率を向上できる。
【0060】
第1共通鍵セット特定部103は、第1共通鍵セットを特定する。具体的には、第1共通鍵セット特定部103は、例えば、時間木構造の葉ノードのうち、第1時間に相当する時間を示す第2時間情報が割り当てられた葉ノード(例えば、
図2(b)の「ノードN12」)を第1特定ノードとして特定する。そして、第1共通鍵セット特定部103は、第1特定ノードからルート(
図2(b)の「ノードN1」)に至る経路に含まれるノード(
図2(b)の「ノードN1,N3,N6,N12」)のそれぞれに割り当てられている共通鍵(
図2(b)の「共通鍵k1、k3、k6、k12」)を第1共通鍵セットとして特定する。
【0061】
鍵送信部104は、第1共通鍵セットをユーザ端末200に送信する。
【0062】
第1共通鍵情報取得部105は、例えば、現在の時間において、所定のデジタルコンテンツの利用要求(例えばデジタルコンテンツの名称を示す情報を含む。)とともに、第1共通鍵情報をユーザ端末200から取得する。第1共通鍵情報は、例えば、第1共通鍵セットに含まれる共通鍵そのものであってもよいし、第1共通鍵セットに含まれる共通鍵を識別可能な情報であってもよい。
【0063】
第2共通鍵セット特定部106は、第2共通鍵セットを特定する。第2共通鍵セット特定部106は、例えば、第2時間のうちの現在の時間より前の時間を示す第2時間情報が割り当てられた葉ノードを含まず、現在の時間以降の時間を示す第2時間情報が割り当てられた葉ノードを含む部分木を特定する。第2共通鍵セット特定部106は、当該部分木における頂点のノードに割り当てられた共通鍵を第2共通鍵セットとして特定する。
【0064】
具体的には、
図3A(a)において、第2共通鍵セット特定部106は、現在の時間が「2022年2月2日」である場合、現在の時間より前の時間を示す第2時間情報が割り当てられた葉ノードN8を特定する。第2共通鍵セット特定部106は、
図3A(b)において、葉ノードN8を含まず、葉ノードN9以降の葉ノードN9~N15を含む部分木の頂点のノードN3,N5,N9である第2特定ノードを特定する。第2共通鍵セット特定部106は、第2特定ノードのそれぞれに割り当てられた共通鍵k3,k5,k9を第2共通鍵セットとして特定する。
【0065】
特定共通鍵判定部107は、第1共通鍵情報取得部105で取得された第1共通鍵情報に基づいて、第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵と、第2共通鍵セットに含まれる共通鍵とが一致するか否かを判定する。具体的には、
図3B(c)において、特定共通鍵判定部107は、第1共通鍵セットに共通鍵k1、k3、k6、k12が含まれ、第2共通鍵セットに共通鍵k3、k5、k9が含まれる場合、共通鍵k3(特定共通鍵)が一致すると判定する。
【0066】
暗号コンテンツ生成部108は、時間木構造のノードに割り当てられた共通鍵のそれぞれを用いて暗号コンテンツを生成する。暗号コンテンツ生成部108は、暗号コンテンツを記憶部102に記憶する。
【0067】
コンテンツ特定部109は、特定共通鍵で復号可能な暗号コンテンツを特定する。具体的には、コンテンツ特定部109は、コンテンツデータベースD102を参照して、暗号コンテンツ生成部108で生成された暗号コンテンツのうち、特定共通鍵で復号可能な暗号コンテンツ(以下、「特定暗号コンテンツ」という。)を特定する。
【0068】
なお、上記において、暗号コンテンツ生成部108は、時間木構造のノードに割り当てられた共通鍵のそれぞれを用いて暗号コンテンツを生成するとして説明したがこれに限定されない。例えば、暗号コンテンツ生成部108は、特定共通鍵のみを用いて暗号コンテンツを生成してもよい。これにより、情報処理システム10は、生成する暗号コンテンツの数の増加を抑制することができる。
【0069】
タグデータ送信部110は、ユーザ端末200から利用要求を取得した場合、第1タグデータをユーザ端末200に送信する。利用要求は、例えば、特定暗号コンテンツを特定可能な情報を含む。具体的には、タグデータ送信部110は、コンテンツ特定部109においてコンテンツデータベースD102を参照して特定された特定暗号コンテンツに関連する第1タグデータを取得し、第1タグデータをユーザ端末200に送信する。
【0070】
タグデータ取得部111は、キャッシュ装置300において、ユーザ端末200から送信された第1タグデータと一致するタグデータがキャッシュデータベースD301に存在しないと判定される場合に実行されるキャッシュ処理において、当該第1タグデータをキャッシュ装置300から取得する。
【0071】
記憶実行部112は、例えば、コンテンツデータベースD102における[暗号コンテンツ]および[タグデータ]の項目に格納されているデータを、キャッシュ装置300に記憶させる。
【0072】
なお、記憶実行部112は、例えば、利用要求が示す特定暗号コンテンツおよび第1タグデータのみを、キャッシュ装置300に記憶させてもよい。これにより、情報処理システム10は、必要最低限の暗号コンテンツをキャッシュ装置300に記憶させることによって、記憶容量を有効活用できる。
【0073】
また、記憶実行部112は、タグデータ取得部111において第1タグデータを取得した場合、第1タグデータと、第1タグデータに関連する暗号コンテンツとをキャッシュ装置300に記憶させる。これにより、情報処理装置100は、キャッシュミスが発生した場合、特定共通鍵で復号可能に暗号化された暗号コンテンツを特定し、キャッシュ暗号コンテンツとしてキャッシュ装置300にキャッシュさせることができる。
【0074】
ハッシュ取得部113は、キャッシュ暗号コンテンツの復号がユーザ端末200で不可能である場合に実行される再送信処理において、第1ハッシュ値をキャッシュ装置300から取得する。具体的には、まず、ユーザ端末200は、特定共通鍵でキャッシュ暗号コンテンツを復号するための処理を実行する。キャッシュ装置300は、ユーザ端末200において特定共通鍵でキャッシュ暗号コンテンツの復号が不可能であったことを示すエラー情報を、ユーザ端末200から取得する。ハッシュ取得部113は、エラー情報をキャッシュ装置300から取得する。エラー情報には、例えば第1ハッシュ値および第1タグデータが含まれていてもよい。
【0075】
ハッシュ算出部114は、再送信処理においてハッシュ取得部113でエラー情報を取得した場合、特定共通鍵で暗号化した暗号コンテンツのハッシュ値(以下、「第2ハッシュ値」という。)を算出する。具体的には、ハッシュ算出部114は、コンテンツデータベースD102を参照して、エラー情報に含まれる第1タグデータに関連する暗号コンテンツ(特定共通鍵で暗号化されている特定暗号コンテンツ)を特定する。ハッシュ算出部114は、特定した暗号コンテンツにハッシュ関数を適用して第2ハッシュ値を算出する。
【0076】
ハッシュ判定部115は、第1ハッシュ値と第2ハッシュ値とが一致するか否かを判定する。すなわち、ハッシュ判定部115は、コンテンツデータベースD102に格納されている暗号コンテンツと、特定共通鍵で復号が不可能であったキャッシュ暗号コンテンツとを比較することによって、キャッシュ暗号コンテンツの完全性を判定する。これにより、情報処理システム10は、ユーザ端末200に送信したキャッシュ暗号コンテンツの完全性を適切に確認することができる。
【0077】
コンテンツ送信部116は、例えば暗号コンテンツをユーザ端末200に送信する。具体的には、コンテンツ送信部116は、ハッシュ判定部115において第1ハッシュ値と第2ハッシュ値とが一致しないと判定された場合(キャッシュ暗号コンテンツの完全性がない場合)、コンテンツ送信部116は、再暗号コンテンツをユーザ端末200に送信する。すなわち、情報処理装置100は、キャッシュ暗号コンテンツが完全性を充たさず、キャッシュ暗号コンテンツの復号が不可能であると判定した場合、特定共通鍵で復号可能な暗号コンテンツ(再暗号コンテンツ)を再度送信する。
【0078】
また、コンテンツ送信部116は、ハッシュ判定部115において第1ハッシュ値と第2ハッシュ値とが一致しないと判定された場合、記憶実行部112は、再暗号コンテンツと、再暗号コンテンツに関連するタグデータとをキャッシュ装置300に送信する。すなわち、情報処理装置100は、キャッシュ暗号コンテンツの完全性がない場合、特定共通鍵で復号可能な暗号コンテンツをキャッシュ装置300に再度キャッシュする。これにより、情報処理システム10は、ユーザ端末200が完全性を充たすキャッシュ暗号コンテンツをキャッシュ装置300から適切に取得する仕組みを提供することができる。
【0079】
===ユーザ端末200===
ユーザ端末200の構成について説明する。
図1に示すように、ユーザ端末200は、例えば、情報送受信部201、記憶部202を含む。これら各部の機能は、例えば、
図8に示すメモリ1002等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサ1001が実行したりすることにより実現される。
【0080】
情報送受信部201は、情報処理装置100およびキャッシュ装置300との間で各種情報を送受信する。情報送受信部201は、例えば、ユーザの操作入力を受け付けて、第1共通鍵セットを取得するための第1時間情報を送信する。情報送受信部201は、例えば、特定暗号コンテンツを取得するための利用要求および第1共通鍵情報を情報処理装置100に送信する。情報送受信部201は、例えば、情報処理装置100から第1共通鍵セットを取得する。情報送受信部201は、例えば、特定共通鍵を特定可能であった場合、情報処理装置100から送付される特定暗号コンテンツを取得する。また、情報送受信部201は、例えば、特定共通鍵を特定不可であった場合、情報処理装置100から、コンテンツ利用不可情報を取得する。情報送受信部201は、例えば、エラー情報をキャッシュ装置300に送信する。情報送受信部201は、情報処理装置100およびキャッシュ装置300から各種情報を取得する。例えば、情報送受信部201は、第1タグデータおよび再暗号コンテンツを情報処理装置100から取得し、キャッシュ暗号コンテンツをキャッシュ装置300から取得する。
【0081】
記憶部202は、各種情報を記憶する。例えば第1共通鍵セットを記憶する。
【0082】
===キャッシュ装置300===
キャッシュ装置300の構成について説明する。キャッシュ装置300は、情報処理装置100の情報処理量および記憶容量の増加を抑制するための装置である。
図1に示すように、キャッシュ装置300は、例えば、情報送受信部301、記憶部302、キャッシュ特定部303、ハッシュ算出部304を含む。これら各部の機能は、例えば、
図8に示すメモリ1002等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサ1001が実行したりすることにより実現される。
【0083】
情報送受信部301は、情報処理装置100およびユーザ端末200との間で各種情報を送受信する。例えば、情報送受信部301は、第1タグデータやエラー情報をユーザ端末200から取得し、コンテンツデータベースD102の各種データ(キャッシュ暗号コンテンツ、再暗号コンテンツを含む)を情報処理装置100から取得する。情報送受信部301は、例えば、キャッシュ処理において、第1タグデータを情報処理装置100に送信する。情報送受信部301は、再送信処理において、第1ハッシュ値を含むエラー情報を情報処理装置100に送信する。
【0084】
記憶部302は、キャッシュデータベースD301を含む。キャッシュデータベースD301は、情報処理装置100から取得する各種情報を格納する。キャッシュデータベースD301は、コンテンツデータベースD102と同様のため、その説明を省略する。なお、キャッシュデータベースD301には、アクセス頻度が高い順に暗号コンテンツが格納されていてもよい。これにより、暗号コンテンツのアクセス効率を向上できる。
【0085】
キャッシュ特定部303は、ユーザ端末200から第1タグデータを取得した場合、キャッシュデータベースD301を参照して、第1タグデータに関連するキャッシュ暗号コンテンツを特定する。特定できる場合、情報送受信部301は、当該キャッシュ暗号コンテンツをユーザ端末200に送信する。特定できない場合、情報送受信部301は、当該第1タグデータを情報処理装置100に送信する。
【0086】
ハッシュ算出部304は、ユーザ端末200から取得したエラー情報を取得した場合、キャッシュ暗号コンテンツの第1ハッシュ値を算出する。なお、キャッシュ装置300はハッシュ算出部304を有していなくてもよい。この場合、情報処理装置100のハッシュ算出部114がキャッシュ暗号コンテンツの第1ハッシュ値を算出してもよい。
【0087】
===処理手順===
図3B、
図6、
図7を参照して、本実施形態に係る情報処理システム10の処理手順について説明する。
図6は、情報処理システム10における第1共通鍵セット送信処理およびコンテンツ送信処理を含む処理手順を示すフロー図である。
図7は、情報処理システム10におけるキャッシュ処理および再送信処理を含む処理手順のフロー図である。
【0088】
<<第1共通鍵セット送信処理>>
まず、
図6を参照して、第1共通鍵セット送信処理について説明する。以下では、一例として、ユーザがコンテンツを提供する事業者との間で、所定のデジタルコンテンツを現在の「2022年2月2日」から「2022年5月31日」まで利用可能である契約を締結しているものとして説明する。すなわち、ユーザは「2022年5月31日」までは所望のデジタルコンテンツを利用することができるものとする。
【0089】
ステップS100において、ユーザ端末200は、デジタルコンテンツの利用を所望するユーザの操作入力に基づき、第1時間情報を情報処理装置100に送信する。ここでは、第1時間情報は、「2022年5月31日」の時間を示す情報である。
【0090】
ステップS101において、情報処理装置100は、第1時間情報に基づき、
図4に示す時間木構造データベースD101を参照して、第1時間に相当する時間を示す第2時間情報が割り振られている第1特定ノードを特定する。ここでは、情報処理装置100は、
図3B(c)に示す葉ノードN12を第1特定ノードとして特定する。
【0091】
ステップS102において、情報処理装置100は、時間木構造データベースD101を参照して、第1特定ノードからルートに至る経路に含まれる第1共通鍵セットを特定する。ここでは、情報処理装置100は、
図3B(c)に示す共通鍵k1,k3,k6,k12を第1共通鍵セットとして特定する。そして、情報処理装置100は、第1共通鍵セットをユーザ端末200に送信する。
【0092】
<<コンテンツ送信処理>>
次に、
図6を参照して、コンテンツ送信処理について説明する。以下では、一例として、現在の時間「2022年2月2日」とし、時間木構造に含まれる共通鍵のそれぞれでデジタルコンテンツを暗号化した暗号コンテンツが
図5に示すコンテンツデータベースD102に格納されているものとして説明する。
【0093】
ステップS200において、ユーザ端末200は、現在の時間においてデジタルコンテンツの利用要求を情報処理装置100に送信する。利用要求は、例えば、デジタルコンテンツを特定可能な情報(例えばデジタルコンテンツの名称など)および第1共通鍵情報を含む。
【0094】
ステップS201において、情報処理装置100は、第1共通鍵情報に基づき第2特定ノードを特定する。具体的には、情報処理装置100は、時間木構造データベースD101を参照して、現在の時間に相当する第2時間を示す第2時間情報(2022年2月28日)を特定する。そして、時間木構造データベースD101における、現在の時間よりも前の「2022年1月31日」を特定する。なお、情報処理装置100は、現在の時間よりも後の「2022年3月31日」を特定してもよい。
【0095】
情報処理装置100は、時間木構造データベースD101を参照して、「2022年1月31日」以前の時間に関連するノードN8を含まず、ノードN8よりも後の「2022年2月28日」以降の時間に関連するノードN9,N10,N11,N12,N13,N14,N15を特定する。情報処理装置100は、ノードN9,N10,N11,N12,N13,N14,N15を含む部分木の頂点のノードを第2特定ノードとして特定する。ここでは、情報処理装置100は、
図3B(c)に示すノードN3,N5,N9を第2特定ノードとして特定する。
【0096】
ステップS202において、情報処理装置100は、時間木構造データベースD101を参照して、第2特定ノードに基づき第2共通鍵セットを特定する。ここでは、情報処理装置100は、
図3B(c)の共通鍵k3,k5,k9を第2共通鍵セットとして特定する。
【0097】
ステップS203において、情報処理装置100は、ユーザがデジタルコンテンツを復号するための特定共通鍵が特定されるか否かを判定する。具体的には、情報処理装置100は、時間木構造データベースD101を参照して、第1共通鍵セットに含まれる共通鍵k1、k3、k6、k12のうちのいずれかの共通鍵と、第2共通鍵セットに含まれる共通鍵k3,k5,k9とが一致するか否かを判定する。ここでは、情報処理装置100は、共通鍵k3が一致すると判定し、共通鍵k3を特定共通鍵として特定する。
【0098】
ステップS204において、特定共通鍵が特定されると判定される場合(ステップS203:YES)、情報処理装置100は、コンテンツデータベースD102を参照して、特定共通鍵(共通鍵k3)に関連づく暗号コンテンツを特定暗号コンテンツとして特定する。
図5において、ここでは、情報処理装置100は、特定共通鍵に関連づく「xxx.mp4.enck3」を特定暗号コンテンツとして特定する。
【0099】
ステップS205において、特定共通鍵が特定されないと判定される場合(ステップS203:NO)、情報処理装置100は、コンテンツ利用不可情報をユーザ端末200に送信する。これにより、情報処理システム10は、契約の期間外において、ユーザが復号可能なデジタルコンテンツを送信しない仕組みを実現できる。
【0100】
ステップS206において、情報処理装置100は、コンテンツデータベースD102を参照して、
図6のステップS204で特定された特定暗号コンテンツに関連する第1タグデータを特定して、第1タグデータをユーザ端末200に送信する。
【0101】
ステップS207において、ユーザ端末200は、例えば、第1タグデータを暗号化して、キャッシュ装置300に送信する。
【0102】
ステップS208において、キャッシュ装置300は、キャッシュデータベースD301を参照して、当該第1タグデータと一致するタグデータが存在するか否かを判定する。
【0103】
ステップS209において、第1タグデータと一致するタグデータがキャッシュデータベースD301に存在すると判定できた場合(ステップS208:YES)、キャッシュ装置300は、第1タグデータと一致するタグデータに関連づけて格納されているキャッシュ暗号コンテンツを特定し、ユーザ端末200に送信する。
【0104】
<<キャッシュ処理>>
次に、キャッシュ処理について説明する。
【0105】
ステップS300において、第1タグデータと一致するタグデータがキャッシュデータベースD301に存在せず、キャッシュ暗号コンテンツが特定できない場合(ステップS208:NO)、情報処理装置100は、キャッシュ装置300から第1タグデータを取得する。
【0106】
ステップS301において、コンテンツデータベースD102を参照して、取得した第1タグデータと関連付けて格納されている特定暗号コンテンツを特定し、キャッシュ装置300に送信する。
【0107】
ステップS302において、キャッシュ装置300は、取得した特定暗号コンテンツを、キャッシュ暗号コンテンツとして第1タグデータに関連付けてキャッシュデータベースD301に格納する。そして、キャッシュ装置300は、当該キャッシュ暗号コンテンツをユーザ端末200に送信する。
【0108】
なお、ステップS301において、情報処理装置100は、キャッシュ装置300にキャッシュ暗号コンテンツをキャッシュさせる時に、ユーザ端末200に対して、当該キャッシュ暗号コンテンツ送信してもよい。これにより、情報処理システム10は、キャッシュ装置300に対するキャッシュ暗号コンテンツの送信と、ユーザ端末200に対するキャッシュ暗号コンテンツの送信を同時に行うことができる。
【0109】
<<再送信処理>>
次に、再送信処理について説明する。
図7は、情報処理システム10におけるキャッシュ送信処理および再送信処理を含むフローを示す図である。
図7では、
図6に示すステップS100~S209の処理が実行されて情報処理装置100よって特定暗号コンテンツが特定された場合のフローを示す。すなわち、
図7では、S100~S209についての説明を省略する。
【0110】
ステップS400において、ユーザ端末200においてキャッシュ暗号コンテンツの復号が不可能である場合、ユーザ端末200は、エラー情報をキャッシュ装置300に送信する。
【0111】
ステップS401において、キャッシュ装置300は、エラー情報に基づき、キャッシュ暗号コンテンツの第1ハッシュ値を算出する。
【0112】
ステップS402において、キャッシュ装置300は、エラー情報および第1ハッシュ値を情報処理装置100に送信する。
【0113】
ステップS403において、情報処理装置100は、第1タグデータに関連する暗号コンテンツを特定して、当該暗号コンテンツの第2ハッシュ値を算出する。
【0114】
ステップS404において、情報処理装置100は、第1ハッシュ値と第2ハッシュ値とが一致するか否かを判定する。
【0115】
ステップS405において、第1ハッシュ値と第2ハッシュ値とが一致しない場合(ステップS404:YES)、情報処理装置100は、キャッシュ装置300およびユーザ端末200に再暗号コンテンツを送信する。
【0116】
第1ハッシュ値と第2ハッシュ値とが一致する場合(ステップS404:NO)、キャッシュ暗号コンテンツの完全性の欠如以外の理由によってキャッシュ暗号コンテンツを復号できないと判定して、情報処理装置100は、例えば原因調査依頼をユーザ端末200に送信する。
【0117】
ステップS406において、キャッシュ装置300は、再暗号コンテンツを第1タグデータに関連付けてキャッシュデータベースD301に格納する。
【0118】
ステップS407において、ユーザ端末200は、再暗号コンテンツを特定共通鍵で復号してユーザにデジタルコンテンツを提供する。
【0119】
===変形例===
<<第1の変形例>>
情報処理システム10の第1の変形例について説明する。なお、以下では、上述した情報処理システム10の構成と異なる構成についてのみ説明することとし、特に言及しない場合は上述した情報処理システム10と同様であるとする。
【0120】
第1の変形例に係る情報処理システム10で用いる時間木構造は、所定の深さにおけるノードのそれぞれに、時間情報が設定される。すなわち、上述した情報処理システム10では、第2時間を示す第2時間情報が時間木構造における葉ノードのそれぞれに設定されると説明したが、これに限定されない。
【0121】
例えば、
図2(a)に示す時間木構造において、深さが3のノードのそれぞれ(ノードN4,N5,N6,N7)に対して、第2時間情報が設定されてもよい。具体的には、ノードN4には第2時間情報として「2022年2月28日」が設定され、ノードN5には第2時間情報として「2022年4月30日」が設定される。
【0122】
この場合、情報処理装置100は、例えば、ユーザ端末200から取得される第1時間情報に基づき、第1時間に相当する第2時間を示す第2時間情報が割り当てられたノードである第1特定ノード(
図2の「ノードN5」)を特定する。そして、情報処理装置100は、第1特定ノード(ノードN5)からルート(ノードN1)に至る経路に含まれるノードの共通鍵である第1共通鍵セットを特定する(
図2(a)の「k5,k2,k1」)。情報処理装置100は、第1共通鍵セットをユーザ端末200に送信する。
【0123】
このように、第1の変形例に係る情報処理システム10は、時間木構造において、第2時間情報を割り当てるノードの深さを設定することができる。すなわち、特定される第1特定ノードに基づいてユーザに送信する第1共通鍵セットの共通鍵の数を少なくするように構成することができる。
【0124】
これにより、変形例に係る情報処理システム10は、必要に応じてユーザに送信する共通鍵の数を調整することができ、ユーザの数や設定する時間情報に応じて共通鍵を送信するシステムを提供することができる。
【0125】
<<第2の変形例>>
次に、情報処理システム10の第2の変形例について説明する。情報処理システム10のキャッシュ装置300は複数で構成されていてもよい。この場合、情報処理システム10は、例えばデジタルコンテンツに対するユーザの利用要求の回数に基づき、暗号コンテンツのそれぞれを記憶させるキャッシュ装置を決定してもよい。
【0126】
例えば、情報処理システム10は、情報処理装置100の記憶実行部112において、ユーザのコンテンツの利用要求の回数が多ければ多いほど、多くのキャッシュ装置300のそれぞれに記憶させてもよい。これにより、アクセス頻度が高いデジタルコンテンツのヒット率を向上できる。また、例えば、情報処理システム10は、情報処理装置100の記憶実行部112において、コンテンツの利用要求の回数が多いデジタルコンテンツを特定のキャッシュ装置300に記憶させてもよい。これにより、情報処理システム10はコンテンツの利用要求の回数に基づきデジタルコンテンツが格納されているキャッシュ装置300を特定することができるため、デジタルコンテンツのヒット率を向上できる。
【0127】
===ハードウェア構成===
図8を参照して、情報処理装置100、ユーザ端末200、キャッシュ装置300をコンピュータ1000により実現する場合のハードウェア構成の一例について説明する。なお情報処理装置100、ユーザ端末200、キャッシュ装置300の各種機能は、複数台の装置に分けて実現できる。
【0128】
図8は、コンピュータのハードウェア構成の一例を示す図である。
図8に示すように、コンピュータ1000は、例えば、プロセッサ1001と、メモリ1002と、記憶装置1003と、入力I/F部1004と、データI/F部1005と、通信I/F部1006および表示部1007を含む。
【0129】
プロセッサ1001は、メモリ1002に記憶されているプログラムを実行することによりコンピュータ1000における各種の処理を制御する制御部である。
【0130】
メモリ1002は、例えば、RAM(Random Access Memory)等の記憶媒体である。メモリ1002は、プロセッサ1001によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
【0131】
記憶装置1003は、例えば、ハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置1003は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。
【0132】
入力I/F部1004は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部1004の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等である。入力I/F部1004は、例えばUSB(Universal Serial Bus)等のインタフェースを介してコンピュータ1000に接続されてもよい。
【0133】
データI/F部1005は、コンピュータ1000の外部からデータを入力するためのデバイスである。データI/F部1005の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F部1005は、コンピュータ1000の外部に設けられることも考えられる。その場合、データI/F部1005は、例えばUSB等のインタフェースを介してコンピュータ1000へと接続される。
【0134】
通信I/F部1006は、コンピュータ1000の外部の装置と有線又は無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信I/F部1006は、コンピュータ1000の外部に設けられることも考えられる。その場合、通信I/F部1006は、例えばUSB等のインタフェースを介してコンピュータ1000に接続される。
【0135】
表示部1007は、各種情報を表示するためのデバイスである。表示部1007の具体例としては、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示部1007は、コンピュータ1000の外部に設けられてもよい。その場合、表示部1007は、例えばディスプレイケーブル等を介してコンピュータ1000に接続される。また、入力I/F部1004としてタッチパネルが採用される場合には、表示部1007は、入力I/F部1004と一体化して構成することが可能である。
【0136】
===まとめ===
情報処理システム10は、第1時間を示す第1時間情報をユーザ端末200から取得する時間情報取得部101と、ノードのそれぞれに異なる共通鍵が割り当てられた木構造であって、所定の深さにおけるノードのそれぞれに、所定の深さにおける一端のノードから他端のノードに向かって時間が経過するように設定される第2時間を示す第2時間情報が割り当てられた木構造(時間木構造)において、第1時間情報と前記第2時間情報とに基づき特定される時間木構造の所定の深さのノードである第1特定ノードから、ルートに至る経路に含まれるノードのそれぞれに割り当てられた共通鍵である第1共通鍵セットがユーザ端末200に送信され、所定の時間において、第1共通鍵セットに関する第1共通鍵情報と、所定のデジタルコンテンツを利用するための利用要求と、をユーザ端末200から取得した場合、第2時間のうちの所定の時間より前の時間を示す第2時間情報が割り当てられた所定の深さのノードを含まず、所定の時間以降の時間を示す第2時間情報が割り当てられた所定の深さのノードを含む部分木であって、当該部分木における頂点のノードに割り当てられた共通鍵である第2共通鍵セットを特定する第2共通鍵セット特定部106と、第1共通鍵情報に基づいて、第1共通鍵セットに含まれる共通鍵のうちのいずれかの共通鍵であって、第2共通鍵セットに含まれる共通鍵である特定共通鍵が特定可能か否かを判定する特定共通鍵判定部107と、特定共通鍵を特定可能と判定された場合、時間木構造のノードに割り当てられた共通鍵を用いて復号可能に暗号化されたデジタルコンテンツである暗号コンテンツと、暗号コンテンツのメッセージ認証のためのタグデータと、が関連づいて格納されるデータベースであるキャッシュデータベースを有するキャッシュ装置300から、所定のデジタルコンテンツが特定共通鍵と一致する共通鍵で暗号化された暗号コンテンツであるキャッシュ暗号コンテンツをユーザ端末200が取得するためのタグデータである第1タグデータを、ユーザ端末200に送信するタグデータ送信部110と、を備える。これにより、例えば、ユーザは所有する第1共通鍵セットに含まれる共通鍵で暗号コンテンツを復号して利用することができる。また、情報処理システム10は、ユーザ端末200に対するデジタルコンテンツの送信処理をキャッシュ装置300に実行させることで、ネットワークのデータ通信を効率化したシステムを提供することができる。
【0137】
また、情報処理システム10は、キャッシュ装置300において、ユーザ端末200から送信された第1タグデータと一致するタグデータがキャッシュデータベースに存在しないと判定される場合、キャッシュ装置300から第1タグデータを取得するタグデータ取得部111と、デジタルコンテンツと、デジタルコンテンツのメッセージ認証のためのタグデータと、を関連づけて格納するデータベーに基づき特定される、第1タグデータに関連するデジタルコンテンツを特定共通鍵で復号可能に暗号化してキャッシュ暗号コンテンツを生成する暗号コンテンツ生成部108と、キャッシュ暗号コンテンツを、第1タグデータと一致するタグデータに関連づけてキャッシュデータベースに格納させる記憶実行部112と、をさらに備える。これにより、情報処理システム10は、キャッシュ装置300においてキャッシュしていない暗号コンテンツを特定し、キャッシュ装置300にキャッシュさせることができ、キャッシュデータベースに所定の暗号コンテンツを有していないキャッシュ装置300が、ユーザへデジタルコンテンツを提供できない事象の再発を防止できる。
【0138】
また、情報処理システム10は、ユーザ端末200において特定共通鍵でキャッシュ暗号コンテンツの復号が不可能であった場合、キャッシュ暗号コンテンツのハッシュ値である第1ハッシュ値と、第1タグデータと、をキャッシュ装置300から取得するハッシュ取得部113と、第1ハッシュ値および第1タグデータを取得した場合、デジタルコンテンツと、デジタルコンテンツのメッセージ認証のためのタグデータと、を関連づけて格納するデータベースに基づき特定される、第1タグデータに関連するデジタルコンテンツである第1デジタルコンテンツを、特定共通鍵と一致する共通鍵で暗号化した暗号コンテンツのハッシュ値である第2ハッシュ値を算出するハッシュ算出部114と、第1ハッシュ値と、前記第2ハッシュ値と、が一致するか否かを判定するハッシュ判定部115と、第1ハッシュ値と第2ハッシュ値とが一致しないと判定された場合、第1デジタルコンテンツを特定共通鍵と一致する共通鍵で暗号化した暗号コンテンツをキャッシュ装置300およびユーザ端末200の少なくともいずれかに送信するコンテンツ送信部116と、をさらに備える。これにより、情報処理システム10は、例えばユーザ端末200が取得したキャッシュ暗号コンテンツの復号に失敗した場合に、キャッシュ暗号コンテンツを適切にユーザ端末200に再送信する仕組みを提供することができる。
【0139】
また、情報処理システム10のキャッシュ装置300は、キャッシュデータベースを有する第1キャッシュ装置と、キャッシュデータベースを有する第2キャッシュ装置と、を含み、情報処理システム10は、第1キャッシュ装置と、第2キャッシュ装置と、の少なくともいずれかに、所定のデジタルコンテンツに対する利用要求の回数に基づいて、所定のデジタルコンテンツを暗号化した暗号コンテンツをタグデータに関連づけて記憶させる記憶実行部112をさらに備え、タグデータ送信部110は、第1キャッシュ装置および第2キャッシュ装置のいずれかから、キャッシュ暗号コンテンツをユーザ端末が200取得するための第1タグデータをユーザ端末200に送信する。これにより、情報処理システム10は、コンテンツの利用要求の回数に基づきデジタルコンテンツが格納されているキャッシュ装置300を特定することができるため、デジタルコンテンツのヒット率を向上できる。
【0140】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素ならびにその配置、材料、条件、形状およびサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換しまたは組み合わせることが可能である。
【符号の説明】
【0141】
10…情報処理システム、100…情報処理装置、101…時間情報取得部、102…記憶部、103…第1共通鍵セット特定部、104…鍵送信部、105…第1共通鍵情報取得部、106…第2共通鍵セット特定部、107…特定共通鍵判定部、108…暗号コンテンツ生成部、109…コンテンツ特定部、110…タグデータ送信部、111…タグデータ取得部、112…記憶実行部、113…ハッシュ取得部、114…ハッシュ算出部、115…ハッシュ判定部、116…コンテンツ送信部、200…ユーザ端末、300…キャッシュ装置。