(57)【要約】      （修正有）【課題】コンテンツサーバと端末装置間のスループットを向上させる通信装置、通信ネットワークシステム、及びコンテンツサーバ選択方法を提供する。【解決手段】暗号化したコンテンツを他の情報通信装置へ送信し、暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を受信した時、前記確認要求に含まれる第１のノンス情報、ノンス管理データに記憶した第２のノンス情報とに含まれる、第１のリンク情報、第２のノンス情報を読み出し、対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行うコンテンツ鍵確認部とを備える。【選択図】図７
2014216707.tif 000002
【特許請求の範囲】
【請求項１】
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う情報通信装置において、
第２のノンス情報を記憶するノンス管理データ記憶部と、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行うコンテンツ鍵確認部と
を備えることを特徴とする情報通信装置。
【請求項２】
前記第１及び第２のリンク情報は、第１のデータ範囲内で変化する値であって、前記第１のリンク情報と前記第２のリンク情報は異なる値を有することを特徴とする請求項１記載の情報通信装置。
【請求項３】
前記コンテンツ鍵確認部は、前記第１のリンク情報に基づいて前記ノンス管理データ記憶部の領域から読み出した第１の署名データと、前記第２のノンス情報に含まれるノンス値と前記第３のノンス情報に含まれるノンス値とに基づいて生成した第２の署名データとを比較してコンテンツ鍵の確認を行うことを特徴とする請求項１記載の情報通信装置。
【請求項４】
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う情報通信装置におけるコンテンツ鍵確認方法であって、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行う
ことを特徴とする情報通信装置。
【請求項５】
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行うコンピュータに対するコンテンツ鍵確認プログラムであって、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行う
ことをコンピュータに実行させるコンテンツ鍵確認プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報通信装置、コンテンツ鍵確認方法、及びコンテンツ鍵確認プログラムに関する。
【背景技術】
【０００２】
現在、ネットワークを経由して映像や音楽などのコンテンツを配信するコンテンツ配信サービスが広く利用されている。このようなコンテンツはデジタルデータであることからコピーや改竄などの不正な操作が行われる場合もある。デジタルコンテンツなどに対しては、著作権保護を目的として多くの技術が議論されている。このような技術として、例えば、ＤＴＣＰ（Digital Transmission Content Protection）がある。
【０００３】
ＤＴＣＰでは、例えば、著作権が保護された形でコンテンツが伝送される仕組みについて規定されている。例えば、ＤＴＣＰでは、ＤＴＣＰ準拠の機器はＭＰＥＧ（Moving Picture Experts Group）などの圧縮コンテンツを非暗号の状態で機器外に送出しないこと、暗号化コンテンツを復号するときに利用される鍵交換を所定の相互認証及び鍵交換（Authentication and Key Exchange :AKE）アルゴリズムに従って行うことなどが規定される。さらに、ＤＴＣＰでは、例えば、ＡＫＥコマンドによる鍵交換を行う機器の範囲を制限することも規定される。
【０００４】
ＤＴＣＰにおいては、例えば、コンテンツの提供元であるサーバ（ＤＴＣＰ＿Ｓｏｕｒｃｅ）とコンテンツの提供先であるクライアント（ＤＴＣＰ＿Ｓｉｎｋ）は、ＡＫＥコマンドの送受信により認証手続きを行い、鍵を共有化する。そして、サーバはその鍵を利用して伝送路を暗号化しコンテンツを送信する。
【０００５】
従って、ＤＴＣＰにおいては、例えば、不正なクライアントはサーバとの認証に成功しないと鍵を取得できず、コンテンツの配信を受けることができない。また、ＤＴＣＰにおいては、例えば、ＡＫＥコマンドを送受信する機器の台数や範囲が制限されることで、コンテンツが使用される範囲を著作権で言うところの個人又は家庭の範囲に抑えることができる。
【０００６】
最近では、ＤＴＣＰをＩＰネットワークへ移植した技術についても議論されている。このような技術として、例えば、ＤＴＣＰ−ＩＰがある。ＩＰネットワーク上にはパーソナルコンピュータなど様々な機器が接続され、このような機器によりデータの改竄などが簡単に行われる場合がある。そのため、ＤＴＣＰ−ＩＰでは、コンテンツを保護しながらコンテンツをネットワークへ伝送するための方法などを規定する。
【０００７】
ＤＴＣＰ−ＩＰにおいては、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器（又はサーバ）とＤＴＣＰ＿Ｓｉｎｋ機器（又はクライアント）との間でＴＣＰ／ＩＰコネクションが確立され、機器同士の認証が行われた後、暗号コンテンツが送受信される。例えば、以下のような処理が行われる。
【０００８】
すなわち、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器は、乱数を用いてノンスＮＣを生成し、ノンスＮｃに基づいてコンテンツ鍵ＫＣを生成する。そして、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器はコンテンツ鍵ＫＣを利用してコンテンツを暗号化し、暗号化コンテンツとノンスＮＣをＰＣＰ（Protected Control Packet）に乗せて、ＤＴＣＰ＿Ｓｉｎｋ機器へ送信する。
【０００９】
ＤＴＣＰ＿Ｓｉｎｋ機器は、ＰＣＰからノンスＮＣを取り出し、ノンスＮＣに基づいてＤＴＣＰ＿Ｓｏｕｒｃｅ機器と同様にコンテンツ鍵ＫＣを算出し、暗号化コンテンツを復号する。
【００１０】
ＤＴＣＰ−ＩＰにおいては、例えば、１２８ＭＢのコンテンツ毎にノンスＮＣ、すなわちコンテンツ鍵ＫＣを更新することが規定される。例えば、長大なＴＣＰストリーム全体に渡り同一のコンテンツ鍵ＫＣが使用されるとコンテンツ鍵ＫＣが解読される可能性があるからである。
【００１１】
また、ＤＴＣＰ−ＩＰでは、ＤＴＣＰ＿Ｓｉｎｋ機器はコンテンツストリーム毎に最も新しく受信したＰＣＰのノンスＮＣの値を確認し、さらに動的に更新される後続のノンスＮＣについても２分間隔で確認することも規定される。
【００１２】
この確認については、例えば、以下のような処理が行われる。すなわち、ＤＴＣＰ＿Ｓｉｎｋ機器は未確認のノンスＮＣ（又は検査用ノンスＮＣ）を、ＣＯＮＴ＿ＫＥＹ＿ＣＯＮＦコマンドを利用してＤＴＣＰ＿Ｓｏｕｒｃｅ機器へ送信する。ＤＴＣＰ＿Ｓｏｕｒｃｅ機器は現在のノンスＮＣと検査用ノンスＮＣとを比較して検査用ノンスＮＣの有効性を確認する。ＤＴＣＰ＿Ｓｉｎｋ機器は、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器から送信された確認結果を受信し、正しいことを確認できたときは受信コンテンツの復号を継続する。一方、ＤＴＣＰ＿Ｓｉｎｋ機器は、正しいことを確認できなかったときは、受信コンテンツの復号を継続できず停止する。
【００１３】
他方、ＤＴＣＰに関連した技術として例えば以下のような技術がある。すなわち、Ｓｏｕｒｃｅ機器はコンテンツ伝送用のＴＣＰコネクションが終了した後もノンスＮＣを即座に削除せず、一定期間ノンスＮＣを保持するようにした技術がある。この技術によれば、例えば、Ｓｏｕｒｃｅ機器はＳｉｎｋ機器側からコンテンツ鍵の確認要求を受けてもコンテンツ鍵の判定を適正に行うことができる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】Digital Transmission Content Protection Specification Volume 1 (Information Version), Revision 1.51, October 1, 2007
【非特許文献２】DTCP Volume 1 Supplement E Mapping DTCP to IP (Informational Version), Revision 1.4, December 12, 2011
【特許文献】
【００１５】
【特許文献１】特開２００７−３６９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述したＳｏｕｒｃｅ機器がＮＣを即座に削除せず一定期間保持するようにした技術は、例えば、一定期間経過後ノンスＮＣは削除される。とくに、ＤＴＣＰ−ＩＰの規格においてはノンスＮＣの終点については記述がなく、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器がノンスＮＣを削除しても規格上、問題はない。ノンスＮＣが削除されることで、例えば、暗号コンテンツの改竄などの不正行為を防止できる。
【００１７】
しかし、ＤＴＣＰ−ＩＰでは、上記したように、ＤＴＣＰ＿Ｓｉｎｋ機器が２分間隔でノンスＮＣの確認を行うことが規定される。ＤＴＣＰ＿Ｓｏｕｒｃｅ機器において生成されたノンスＮＣがＤＴＣＰ＿Ｓｏｕｒｃｅ機器において削除されている場合、ＤＴＣＰ＿Ｓｉｎｋ機器から送信される２分後の検査用ノンスＮＣと同一のノンスＮＣがＤＴＣＰ＿Ｓｏｕｒｃｅ機器においては削除されている場合がある。
【００１８】
従って、上述したＳｏｕｒｃｅ機器がＮＣを即座に削除せず一定期間保持するようにした技術では、検査用ノンスＮＣと現在のノンスＮＣとが一致せず、そのため、ＤＴＣＰ＿Ｓｉｎｋ機器では受信コンテンツを継続して復号することができなくなる場合がある。
【００１９】
他方、上述したＳｏｕｒｃｅ機器がノンスＮＣを即座に削除しないようにした技術では、一定期間ノンスＮＣが保持され、また、保持されるノンスＮＣがどのように保持されるかについての言及はない。そのため、ノンスＮＣが保持される一定期間の間に、ノンスＮＣが改竄される場合がある。
【００２０】
従って、上述したＳｏｕｒｃｅ機器がノンスＮＣを即座に削除しないようにした技術では、例えば、セキュリティが確保されない場合がある。
【００２１】
また、ＤＴＣＰ−ＩＰでは、全てのコマンドの送受信間隔が制限時間内（１秒未満）で終わらせるという規定がある。例えば、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器は、制限時間内において検査用ノンスＮＣを比較して確認結果を応答する。ＤＴＣＰ＿Ｓｏｕｒｃｅ機器が制限時間内に応答しない場合、エラー扱いとなり、ＤＴＣＰ＿Ｓｉｎｋ機器は受信コンテンツを復号できなくなる。
【００２２】
そこで、本発明の一目的は、セキュリティを確保するようにした情報通信装置、コンテンツ鍵確認方法、及びコンテンツ鍵確認プログラムを提供することにある。
【００２３】
また、本発明の一目的は、制限時間内にコンテンツ鍵の確認を行うことができるようにした情報通信装置、コンテンツ鍵確認方法、及びコンテンツ鍵確認プログラムを提供することにある。
【課題を解決するための手段】
【００２４】
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う情報通信装置において、第２のノンス情報を記憶するノンス管理データ記憶部と、前記第１のノンス情報に含まれる第１のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行うコンテンツ鍵確認部とを備える。
【発明の効果】
【００２５】
セキュリティを確保するようにした情報通信装置、コンテンツ鍵確認方法、及びコンテンツ鍵確認プログラムを提供することができる。また、制限時間内にコンテンツ鍵の確認を行うことができるようにした情報通信装置、コンテンツ鍵確認方法、及びコンテンツ鍵確認プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】図１は情報通信ネットワークシステムの構成例を表わす図である。
【図２】図２は情報通信ネットワークシステムの構成例を表わす図である。
【図３】図３はサーバの構成例を表わす図である。
【図４】図４はクライアントの構成例を表わす図である。
【図５】図５はノンスＮＣ管理データ生成処理の例を表わすフローチャートである。
【図６】図６はノンスＮＣ管理データ生成処理の例を表わすフローチャートである。
【図７】図７はノンスＮＣ管理データの例を表わす図である。
【図８】図８はコンテンツ鍵の確認処理の例を表わすフローチャートである。
【図９】図９はコンテンツ鍵の確認処理の例を表わすシーケンスチャートである。
【図１０】図１０はサーバとクライアントの他の構成例を表わす図である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態について説明する。
【００２８】
［第１の実施の形態］
最初に第１の実施の形態について説明する。図１は第１の実施の形態における情報通信システム１０の構成例を表わす図である。情報通信システム１０は、情報通信装置１００と他の情報通信装置２００を備える。
【００２９】
情報通信装置１００は、暗号化したコンテンツを他の情報通信装置２００へ送信する。また、情報通信装置１００は、他の情報通信装置２００において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を他の情報通信装置２００から受信する。情報通信装置１００は、確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う。
【００３０】
例えば、情報通信装置１００はサーバ装置であり、他の情報通信装置２００はクライアント装置でもある。また、例えば、情報通信装置１００はＤＴＣＰによるＳｏｕｒｃｅ機器であり、他の情報通信装置２００はＤＴＣＰによるＳｉｎｋ機器である。
【００３１】
情報通信装置１００は、ノンス管理データ記憶部１６１とコンテンツ鍵確認部１６２を備える。
【００３２】
ノンス管理データ記憶部１６１は、第２のノンス情報を記憶する。
【００３３】
コンテンツ鍵確認部１６２は、第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部１６１から、第１のノンス情報が情報通信装置１００において生成される前に生成された第２のノンス情報を読み出し、第２のノンス情報に含まれる第２のリンク情報に基づいて、ノンス管理データ記憶部１６１から、第１のノンス情報に対応する第３のノンス情報を読み出し、第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行う。
【００３４】
このように、コンテンツ鍵確認部１６２は、確認要求に含まれる第１のノンス情報であって、第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部１６１から、第１のノンス情報に対応する第３のノンス情報を読み出すことができない。
【００３５】
例えば、第１のリンク情報から直接第３のノンス情報を読み出すことができないようになっており、従って、ノンス情報を改竄することもできず、ノンス情報に基づいてコンテンツに暗号化を施す場合に、コンテンツ自体のセキュリティを確保することが可能となる。
【００３６】
また、コンテンツ鍵確認部１６２は、第１のリンク情報に基づいて、ノンス管理データ記憶部１６１から、第１のノンス情報より前に生成された第２のノンス情報を読み出して、第２のノンス情報に含まれるリンク情報に基づいて、第３の情報を読み出している。
【００３７】
従って、コンテンツ鍵確認部１６２は、最も古いノンス情報から順番にノンス情報を読み出して、最後に第３のノンス情報を読み出すようなことを行わないため、かかる場合と比較して、第３のノンス情報を読み出すまでに時間をかけないようにすることができる。
【００３８】
よって、本情報通信装置１００は、このように最初から順番に読み出す場合と比較して、制限時間内で処理を行うことができる。
【００３９】
［第２の実施の形態］
次に第２の実施の形態について説明する。最初に本第２の実施の形態における情報通信システムの構成例について説明する。
【００４０】
＜情報通信システムの構成例＞
図２は情報通信システム１０の構成例を表わす図である。情報通信システム１０は、サーバ装置１００とクライアント装置２００とを備える。
【００４１】
サーバ装置１００は、例えば、映像や音楽などのコンテンツを提供する提供元の情報通信装置である。サーバ装置１００は、例えば、このようなコンテンツをハードディスクなど記憶媒体に記憶し、クライアント装置２００からの要求によりコンテンツを適宜読み出して送信する。サーバ装置１００は、例えば、ＤＴＣＰ−ＩＰの規格に準拠した装置であり、ＤＴＣＰ＿Ｓｏｕｒｃｅ機器に対応する。サーバ装置１００は、以下においては、サーバ１００と称する場合がある。
【００４２】
クライアント装置２００は、例えば、コンテンツの提供を受ける提供先の情報通信装置である。クライアント装置２００は、例えば、サーバ１００に対してコンテンツを要求し、サーバ１００から要求したコンテンツを受信する。クライアント装置２００は、コンテンツを受信すると、例えば、モニタなどにコンテンツに関する映像を表示させたり、スピーカからコンテンツに関する音声を出力することができる。クライアント装置２００は、例えば、ＤＴＣＰ−ＩＰの規格に準拠した装置であり、ＤＴＣＰ＿Ｓｉｎｋ機器に対応する。クライアント装置２００は、以下においては、クライアント２００と称する場合がある。
【００４３】
情報通信システム１０においては、例えば、ＤＴＣＰ−ＩＰによる相互認証及び鍵交換（ＡＫＥ）、コンテンツ伝送、及びコンテンツ鍵確認の各手続きが行われる。情報通信システム１０においては、例えば、このような手続き毎にＴＣＰコネクションを確立し、各手続きに応じたデータなどを含むＴＣＰパケットを送受信する。
【００４４】
なお、情報通信システム１０においては、サーバ１００とクライアント２００によりコンテンツなどの送受信が行われることから、情報通信システム１０はサーバクライアントシステム１０と称される場合もある。
【００４５】
＜サーバ１００とクライアント２００の各構成例＞
次にサーバ１００とクライアント２００の各構成例について説明する。図３はサーバ１００の構成例を含む情報通信システム１０の例、図４はクライアント２００の構成例を含む情報通信システム１０の例をそれぞれ表わす。
【００４６】
サーバ１００は、アプリケーション部１１０、コンテンツ記憶部１２０、ＡＫＥ認証部１３０、コンテンツ管理部１４０、ＴＣＰ制御部１５０を備える。また、コンテンツ管理部１４０は、ノンスＮＣ生成部１４１、ノンスＮＣ保存部１４２、ノンスＮＣ管理データ記憶部１４３、コンテンツ暗号部１４４、コンテンツ送信部１４５、コンテンツ鍵確認部１４６を備える。さらに、ＴＣＰ制御部１５０には第１のインタフェース１５１、第２のインタフェース１５２、第３のインタフェース１５３を備える。
【００４７】
なお、第１の実施の形態におけるノンス管理データ記憶部１６１は、例えば、ノンスＮＣ管理データ記憶部１４３に対応する。また、第１の実施の形態におけるコンテンツ鍵確認部１６２は、例えば、コンテンツ鍵確認部１４６に対応する。
【００４８】
アプリケーション部１１０は、例えば、サーバ１００において各種アプリケーションを実行する。なお、アプリケーション部１１０が起動することで、例えば、ＡＫＥ認証部１３０とコンテンツ管理部１４０とがファームウェアとして起動されてもよい。
【００４９】
コンテンツ記憶部１２０は、例えば、メモリなどであって、コンテンツに関する映画や音楽などのデータ（映像データや音声データなど）を記憶する。コンテンツ記憶部１２０に記憶されたコンテンツはコンテンツ管理部１４０により適宜読み出される。
【００５０】
ＡＫＥ認証部１３０は、例えば、クライアント２００との間でＡＫＥに基づく鍵交換手続きを行い、クライアント２００との間で交換鍵ＫＸを共有する。鍵交換手続きにおいては、例えば、以下の処理が行われる。
【００５１】
すなわち、ＡＫＥ認証部１３０は、サーバ１００に埋め込まれた機器ＩＤや認証鍵ＫＡＵＴＨを用い、ＴＣＰ制御部１５０などを介してクライアント２００との間で互いにＤＴＣＰ準拠の機器であることを確認する。そして、ＡＫＥ認証部１３０は互いにＤＴＣＰ機器であることを確認することで、クライアント２００との間で認証鍵ＫＡＵＴＨを共有でき、認証鍵ＫＡＵＴＨを用いて交換鍵（又は種鍵）ＫＸを生成する。この交換鍵ＫＸは、コンテンツ鍵ＫＣを生成するための種となる鍵である。なお、クライアント２００においても、同様に、共有した認証鍵ＫＡＵＴＨを用いて交換鍵ＫＸを生成するため、サーバ１００と同一のコンテンツ鍵ＫＣを生成できる。ＡＫＥ認証部１３０は、生成した交換鍵ＫＸをコンテンツ暗号部１４４へ出力する。
【００５２】
なお、例えば、ＡＫＥ認証部１３０が起動することでコンテンツ管理部１４０が起動する。
【００５３】
ノンスＮＣ生成部１４１は、例えば、乱数生成部を備え、生成した乱数などを用いてノンスＮＣを生成する。ノンスＮＣには、例えば、不規則値とノンス値とが含まれる。ノンスＮＣ生成部１４１は、例えば、乱数とコンテンツ配信時間を組み合わせた数値として不規則値を生成する。不規則値の詳細は後述する。ノンス値は、例えば、コンテンツ鍵ＫＣを生成するために用いられるものである。以下においては、「ノンスＮＣ」は、例えば、不規則値とノンス値を含み、「ノンス値」そのものについてはノンス値Ａやノンス値Ｂなどと称する場合がある。
【００５４】
なお、ノンスＮＣ生成部１４１の起動によって、例えば、ノンスＮＣ保存部１４２が起動する。
【００５５】
ノンスＮＣ保存部１４２は、例えば、ノンスＮＣ生成部１４１から受け取ったノンスＮＣをノンスＮＣ管理データ記憶部１４３へ保存（又は記憶）する。この場合、ノンスＮＣ保存部１４２は、ノンスＮＣをノンスＮＣ管理データとしてノンスＮＣ管理データ記憶部１４３記憶する。ノンスＮＣ管理データの詳細については、後段の＜ノンスＮＣ管理データ生成処理＞において説明する。
【００５６】
なお、ノンスＮＣ保存部１４２の起動によって、例えば、コンテンツ暗号部１４４が起動する。
【００５７】
ノンスＮＣ管理データ記憶部１４３は、例えば、メモリなどであって、ノンスＮＣ管理データを記憶する。ノンスＮＣ管理データは、コンテンツ暗号化部１４４やコンテンツ鍵確認部１４６から適宜読み出されることが可能である。
【００５８】
コンテンツ暗号部１４４は、ＡＫＥ認証部１３０から受け取った交換鍵ＫＸと、ノンスＮＣ管理データ記憶部１４３から読み出したノンス値に基づいて、コンテンツ鍵ＫＣを生成する。そして、コンテンツ暗号部１４４は、生成したコンテンツ鍵ＫＣを用いて、コンテンツ記憶部１２０から読み出したコンテンツに対して暗号化を施し、暗号化コンテンツをコンテンツ送信部１４５へ出力する。コンテンツ暗号部１４４は、コンテンツ鍵ＫＣの生成に利用したノンスＮＣをノンスＮＣ管理データ記憶部１４３から読み出して、コンテンツ送信部１４５へ出力する。
【００５９】
なお、コンテンツ暗号部１４４の起動によって、例えば、コンテンツ送信部１４５が起動する。
【００６０】
コンテンツ送信部１４５は、コンテンツ暗号部１４４から暗号化コンテンツと、コンテンツ鍵ＫＣとを受け取ると、これらをクライアント２００へ送信するようＴＣＰ制御部１５０へ依頼し、さらに、暗号化コンテンツとコンテンツ鍵ＫＣをＴＣＰ制御部１５０へ出力する。
【００６１】
コンテンツ鍵確認部１４６は、例えば、クライアント２００からコンテンツ鍵の確認要求を受け取ると、ノンスＮＣ管理データ記憶部１４３に記憶されたノンスＮＣ管理データを用いてコンテンツ鍵の確認処理を行う。コンテンツ鍵確認部１４６は、確認結果を、ＴＣＰ制御部１５０を介してクライアント２００へ送信する。なお、コンテンツ鍵の確認処理の詳細は、後段の＜コンテンツ鍵の確認処理＞において説明する。
【００６２】
ＴＣＰ制御部１５０は、例えば、クライアント２００との間でＡＫＥ認証や、コンテンツの伝送、及びコンテンツ確認の各手続きなどにおいてＴＣＰコネクションを設定し、各手続きにおいて送受信されるＴＣＰパケットの生成や終端などを行う。例えば、ＴＣＰ制御部１５０は、コンテンツ送信部１４５から暗号化コンテンツとノンスＮＣを受け取り、ＰＣＰを含むＴＣＰパケットを生成してクライアント２００へ送信する。また、ＴＣＰ制御部１５０は、例えば、ＣＯＮＴ＿ＫＥＹ＿ＣＯＮＦコマンドを含むＴＣＰパケットによりコンテンツ鍵の確認要求を受信し、当該ＴＣＰパケットから検査用ノンスＮＣなどを抽出し、コンテンツ鍵確認部１４６へ出力する。さらに、ＴＣＰ制御部１５０は、例えば、コンテンツ鍵確認部１４６からコンテンツ鍵の確認結果を受け取り、確認結果を含むＣＯＮＴ＿ＫＥＹ＿ＣＯＮＦコマンドを生成し、当該コマンドを含むＴＣＰパケットを生成してクライアント２００へ送信する。
【００６３】
図３の例では、ＴＣＰ制御部１５０には第１〜第３のインタフェース１５１〜１５３が備える。第１のインタフェース１５１はＡＫＥ認証用のＴＣＰパケットを送受信し、第２のインタフェース１５２はコンテンツ伝送用のＰＣＰを送受信し、第３のインタフェース１５３はコンテンツ鍵確認用のＴＣＰパケットを送受信する。第１〜第３のインタフェース１５１〜１５３により、例えば、各々ＴＣＰコネクションが確立される。
【００６４】
なお、図３の例では３つのインタフェース１５１〜１５３が備えられているが、例えば、インタフェースは１つでもよい。この場合、例えば、時分割で各手続きによるＴＣＰコネクションが設定されて、各手続きによるＴＣＰパケット又はＰＣＰの送受信が行われる。
【００６５】
クライアント２００は、図４に示すように、アプリケーション部２１０、コンテンツ記憶部２２０、ＡＫＥ認証部２３０、コンテンツ受信部２４０、受信バッファ２４１、ＰＣＰヘッダ解析部２４２、コンテンツ復号部２４３、コンテンツ鍵確認部２４４、及びＴＣＰ制御部２５０を備える。ＴＣＰ制御部２５０は、第４〜第６のインタフェース２５１〜２５３を備える。
【００６６】
アプリケーション部２１０は、例えば、クライアント２００において各種アプリケーションを実行する。例えば、アプリケーション部２１０の起動により、ＡＫＥ認証部２３０、コンテンツ受信部２４０、ＰＣＰヘッダ解析部２４２、コンテンツ復号部２４３、及びコンテンツ鍵確認部２４４が起動する。
【００６７】
コンテンツ記憶部２２０は、例えば、メモリであって、暗号化コンテンツが復号された後の受信コンテンツを記憶する。
【００６８】
ＡＫＥ認証部２３０は、例えば、サーバ１００との間でＡＫＥに基づく鍵交換手続きを行い、サーバ１００との間で交換鍵ＫＸを共有する。この交換鍵ＫＸもクライアント２００においてコンテンツ鍵ＫＣを生成するための種となる鍵となる。
【００６９】
コンテンツ受信部２４０は、例えば、ＴＣＰ制御部２５０を介してサーバ１００から送信されたＰＣＰを受信する。例えば、受信パケットはＰＣＰ形式となっており、コンテンツ受信部２４０は、ＰＣＰペイロードに含まれる暗号化コンテンツとＰＣＰヘッダに含まれる各データを受信バッファ２４１に記憶する。
【００７０】
受信バッファ２４１は、例えば、サーバ１００から送信された暗号化コンテンツとＰＣＰヘッダに挿入された各データを記憶する。
【００７１】
ＰＣＰヘッダ解析部２４２は、例えば、受信バッファ２４１に記憶されたＰＣＰヘッダを解析し、ＰＣＰヘッダの所定領域に挿入されたノンスＮＣを読み出す。ＰＣＰヘッダ解析部２４２は、読み出したノンスＮＣをコンテンツ復号部２４３へ出力する。
【００７２】
コンテンツ復号部２４３は、ＡＫＥ認証部２３０から受け取った交換鍵ＫＸと、ＰＣＰヘッダ解析部２４２から受け取ったノンスＮＣとを用いて、コンテンツ鍵ＫＣを生成する。そして、コンテンツ復号部２４３は、受信バッファ２４１に格納された暗号コンテンツを読み出し、生成したコンテンツ鍵ＫＣを用いて暗号コンテンツを復号する。コンテンツ復号部２４３は、復号したコンテンツをコンテンツ記憶部２２０へ記憶する。また、コンテンツ復号部２４３は、２分毎に、コンテンツ鍵ＫＣの生成に用いたノンスＮＣをコンテンツ鍵確認部２４４へ出力する。
【００７３】
コンテンツ鍵確認部２４４は、サーバ１００との間でコンテンツ鍵の確認処理を行う。コンテンツ鍵の確認処理では、例えば、以下の処理が行われる。  
【００７４】
すなわち、コンテンツ鍵確認部２４４は、コンテンツ復号部２４３から受け取ったノンス（又は検査用ノンス）ＮＣを、ＴＣＰ制御部２５０を介してサーバ１００へ２分間隔で送信する。その後、コンテンツ鍵確認部２４４は、ＴＣＰ制御部２５０を介してサーバ１００からコンテンツ鍵の確認結果を受け取る。
【００７５】
確認結果が否定結果（例えばＲＥＪＥＣＴＥＤ）のとき、コンテンツ鍵確認部２４４はコンテンツ鍵確認が失敗したとして、クライアント２００をｎｏｎ−ｃｏｎｆｉｒｍａｔｉｏｎ状態にさせ、その旨をコンテンツ復号部２４３へ通知する。コンテンツ復号部２４３は、この通知を受けて、受信コンテンツの復号を停止する。
【００７６】
一方、確認結果が肯定結果（例えばＡＣＣＥＰＴＥＤ）のとき、コンテンツ鍵確認部２４４はコンテンツ鍵の確認を行い、コンテンツ鍵が正しいことを確認すると、クライアント２００をｃｏｎｆｉｒｍｅｄ状態にさせ、その旨をコンテンツ復号部２４３へ通知する。コンテンツ復号部２４３は、この通知を受けて、受信コンテンツの復号を継続する。
【００７７】
また、コンテンツ鍵確認部２４４は、確認結果が肯定応答のときであっても、コンテンツ鍵の確認に失敗したときも、クライアント２００をｎｏｎ−ｃｏｎｆｉｒｍａｔｉｏｎ状態にさせ、その旨をコンテンツ復号部２４３へ通知する。コンテンツ復号部２４３は、この通知を受けて、受信コンテンツの復号を停止する。
【００７８】
ＴＣＰ制御部２５０は、例えば、サーバ１００との間で行われるＡＫＥ認証、コンテンツの伝送、及びコンテンツ鍵の確認などの各手続きにおいてＴＣＰコネクションを確立し、ＴＣＰパケットを生成し、終端する。
【００７９】
ＴＣＰ制御部２５０は第４〜第６のインタフェース２５１〜２５３を備えており、順番に、ＡＫＥ認証用、コンテンツ伝送用、コンテンツ鍵確認用の各ＴＣＰパケットを送受信する。第４〜第６のインタフェース２５１〜２５３は、例えば、１つのインタフェースであってもよい。
【００８０】
＜動作例＞
次に動作例について説明する。サーバ１００ではノンスＮＣ管理データ生成処理を行い、その後、ノンスＮＣ管理データを用いてコンテンツ鍵の確認処理を行う。そこで、本動作例ではノンスＮＣ管理データ生成処理について説明し、次にコンテンツ鍵の確認処理について説明する。
【００８１】
＜ノンスＮＣ管理データ生成処理＞
図５はノンスＮＣ管理データ生成処理の例を表わすフローチャート、図６はノンスＮＣ管理データの例をそれぞれ表わしている。
【００８２】
サーバ１００はノンスＮＣ管理データ生成処理を開始すると（Ｓ１０）、乱数を用いてノンス値を生成する（Ｓ１１）。例えば、ノンスＮＣ生成部１４１がノンス値を生成する。
【００８３】
次に、サーバ１００は不規則値を生成する（Ｓ１２）。不規則値とは、例えば、ノンスＮＣが生成される毎にノンスＮＣ管理データのサイズ範囲内で不規則に変化し、且つこれまで生成された不規則値とは重複しない値である。不規則値は、例えば、乱数の一部とコンテンツ配信時間とが結合されたものである。不規則値は、ノンスＮＣ管理データにおいてインデックス値（又はポインタ値）として利用される。不規則値がどのようにインデックス値として利用されるかは後述する。例えば、ノンスＮＣ生成部１４１が乱数とコンテンツ配信時間とに基づいて不規則値を生成する。
【００８４】
次に、サーバ１００は、ノンス値と不規則値とに基づいてノンスＮＣを生成する（Ｓ１３）。例えば、ノンスＮＣ生成部１４１はノンス値と不規則値とを組み合わせることでノンスＮＣを生成する。
【００８５】
次に、サーバ１００は、ノンスＮＣ管理データ記憶部１４３においてノンスＮＣ管理データとして保存済ノンスＮＣが有るか否かを判別する（Ｓ１４）。例えば、ノンスＮＣ保存部１４２がノンスＮＣ管理データ記憶部１４３にアクセスして、ノンスＮＣ管理データとしてノンスＮＣが記憶されているか否かにより判別する。
【００８６】
図７はノンスＮＣ管理データ記憶部１４３に記憶されるノンスＮＣ管理データの例を表わす図である。ノンスＮＣ管理データは、例えば、ノンスＮＣが一定の規則に従ってノンスＮＣ管理データ記憶部１４３に記憶されたものである。図７の例では、ノンスＮＣ＝Ａ，Ｂ，Ｃ，Ｄ，Ｅの順で記憶されている。
【００８７】
例えば、ノンスＮＣ＝Ａが生成されたときには、ノンスＮＣ管理データ記憶部１４３には保存済みノンスＮＣが記憶されていない。ノンスＮＣ管理データ記憶部１４３にノンスＮＣが何も記憶されていないときは、ノンスＮＣ保存部１４２は保存済ノンスＮＣが無いと判別する。
【００８８】
図６に戻り、サーバ１００は、保存済ノンスＮＣが無いと判別したとき（Ｓ１４でＮｏ）、ノンスＮＣ管理データについて不規則値によりインデックスした「Ｐｒｅｖ  ＮＣ」に「０」を設定する（Ｓ１５）。
【００８９】
図７の例では、ノンスＮＣ保存部１４２は、ノンスＮＣ管理データ記憶部１４３におけるアドレス値「０」を基準にして、ノンスＮＣ＝Ａが生成される際の不規則値によってインデックスした先にあるアドレス領域（Ｘ１領域）に「Ｐｒｅｖ  ＮＣ」を設定する。そして、ノンスＮＣ保存部１４２は、Ｘ１領域の「Ｐｒｅｖ  ＮＣ」に「０」を書き込む。「０」は、例えば、前段へのリンクが無いことを示している。
【００９０】
図６に戻り、次に、サーバ１００はノンスＮＣとノンスＮＣをビット反転させた値とを結合し、交換鍵ＫＸにて署名データを作成する（Ｓ１６）。
【００９１】
例えば、ノンスＮＣ保存部１４２が、ノンスＮＣ＝Ａと、ノンスＮＣをビット反転させた値〜Ａとを結合し、交換鍵ＫＸにて署名データ（ＫＸ［〜Ａ||Ａ］）を作成する。これは、例えば、サーバ１００が検査用ノンスとしてノンスＮＣ＝Ａを受信したとき、ノンスＮＣ＝Ａより一世代前のノンスＮＣがないことに基づいている。この場合、サーバ１００はノンスＮＣ＝Ａを読み出せずに署名データを作成することができないため、この署名データ（ＫＸ［〜Ａ||Ａ］）を用いて、コンテンツ鍵の確認を行うようにしている。なお、署名データを、例えば、起点データと称する場合がある。
【００９２】
次に、サーバ１００は、不規則値によりインデックスした「署名データ」に、Ｓ１６で作成した署名データを設定する（Ｓ２０）。
【００９３】
図７の例では、ノンスＮＣ保存部１４２は、Ｓ１５の処理でインデックスしたＸ１領域において、「Ｐｒｅｖ  ＮＣ」から所定先の領域「起点データ（署名）」に、署名データ（ＫＸ［〜Ａ||Ａ］）を記憶する。
【００９４】
図６に戻り、以降はＳ２１からＳ２５の処理を行うが、これらの処理については後述する。以下において、ノンスＮＣ＝Ｂ，Ｃが生成されたときどのようにノンスＮＣがノンスＮＣ管理データとして記憶されるかについて説明する（Ｓ１７〜Ｓ１９）。
【００９５】
サーバ１００は、Ｓ１１からＳ１３の処理により、例えばノンスＮＣ＝Ｂを生成する。次に、サーバ１００は、ノンスＮＣ管理データとして保存済ノンスＮＣがあるか否かを判別するが（Ｓ１４）、例えば、「Ｐｒｅｖ  ＮＣ」に「０」が設定されているため（Ｓ１５）、ここでは保存済ノンスＮＣがあると判別する（Ｓ１４でＹｅｓ）。
【００９６】
この場合、サーバ１００は、ノンスＮＣ管理データについて不規則値によりインデックスした「Ｐｒｅｖ  ＮＣ」に保存済みノンスＮＣを設定する（Ｓ１７）。
【００９７】
図７の例では、ノンスＮＣ保存部１４２は、ノンスＮＣ＝Ｂが生成される際の不規則値を利用して、当該不規則値によりインデックスした先にあるＸ２領域において所定長の「Ｐｒｅｖ  ＮＣ」を設定し、当該「Ｐｒｅｖ  ＮＣ」に保存済みノンスＮＣ＝Ａを記憶する。
【００９８】
図６に戻り、次に、サーバ１００はノンスＮＣ管理データについて、「Ｐｒｅｖ  ＮＣ」に保存した不規則値によりインデックスした「Ｎｅｘｔ  ＮＣ」にノンスＮＣを設定する（Ｓ１８）。
【００９９】
図７の例では、ノンスＮＣ保存部１４２は、一世代前のノンスＮＣ＝Ａで利用した不規則値によりインデックスしたＸ１領域における「Ｐｒｅｖ  ＮＣ」（「０」が設定）の次の所定長領域「Ｎｅｘｔ  ＮＣ」に、ノンスＮＣ＝Ｂ（ノンスＮＣ＝Ｂ生成時の不規則値とノンスＢの値）を記憶する。
【０１００】
図６に戻り、次に、サーバ１００は、ノンスＮＣと「Ｐｒｅｖ  ＮＣ」を示すノンスＮＣとを結合し、交換鍵ＫＸにて署名データを作成する（Ｓ１９）。
【０１０１】
図７の例では、ノンスＮＣ保存部１４２は、ノンスＮＣ＝Ｂと、Ｘ２領域の「Ｐｒｅｖ  ＮＣ」に設定されたノンスＮＣ＝Ａとを結合し、交換鍵ＫＸにて署名データ（ＫＸ［Ｂ||Ａ］）を生成する。
【０１０２】
図６に戻り、次に、サーバ１００はノンスＮＣ管理データについて、不規則値によってインデックスした領域「起点データ（署名）」に、Ｓ１９で生成した署名データを設定する（Ｓ２０）。
【０１０３】
図７の例では、ノンスＮＣ保存部１４２は、Ｓ１７の処理でインデックスしたＸ２領域における「起点データ（署名）」に署名データ（ＫＸ［Ｂ||Ａ］）を記憶する。
【０１０４】
ノンスＮＣの保存関連処理（Ｓ１４〜Ｓ２０）について、図７の例で処理を続けると、ノンスＮＣ生成部１４１はノンスＮＣ＝Ｃを生成する（Ｓ１１〜Ｓ１３）。そして、ノンスＮＣ保存部１４２は、ノンスＮＣ＝Ｃ生成時に利用した不規則値によりインデックスしたＸ３領域の「Ｐｒｅｖ  ＮＣ」に、保存済みノンスＮＣ＝Ｂを記憶する（Ｓ１７）。また、ノンスＮＣ保存部１４２は、一世代前のノンスＮＣ＝Ｂで利用した不規則値によりインデックスしたＸ２領域における「Ｎｅｘｔ  ＮＣ」にノンスＮＣ＝Ｃ（ＮＣ＝Ｃ生成時の不規則値とノンスＣの値）を記憶する。
【０１０５】
Ｘ１領域に着目すると、Ｘ１領域はノンスＮＣ＝Ａに含まれる不規則値によりインデックスされた領域である。Ｘ１領域には、前段にリンク無しを示す値と、ノンスＮＣ＝Ａに対して次の世代のノンスＮＣ＝Ｂ、及びノンスＮＣ＝Ａに基づく署名データ（ＫＸ［〜Ａ||Ａ］）が記憶される。
【０１０６】
また、Ｘ２領域に着目すると、Ｘ２領域はノンスＮＣ＝Ｂに含まれる不規則値によりインデックスされた領域である。Ｘ２領域には、ノンスＮＣ＝Ｂに対して一つ前の世代のノンスＮＣ＝Ａと、一つ後の世代のＮＣ＝Ｃと、自ノンスＮＣ＝Ｂと一つ前の世代のノンスＮＣ＝Ａとに基づく署名データ（ＫＸ［Ｂ||Ａ］）とが記憶される。
【０１０７】
なお、Ｘ１領域やＸ２領域などの各領域に設定又は記憶されるこれらの情報を、例えば、ノンス情報と称する場合がある。ただし、各領域に記憶される各情報をノンス情報と称したり、各領域において記憶される情報全体をノンス情報と称する場合もある。
【０１０８】
このように、ノンスＮＣ管理データについて、例えば、自ノンスＮＣに含まれる不規則値によりインデックスされた領域には自ノンスＮＣは記憶されておらず、前後の世代のノンスＮＣと、自ノンスＮＣと一つ前の世代のノンスＮＣとに基づく署名データが記憶される。自ノンスＮＣに含まれる不規則値によりインデックスされた領域には自ノンスＮＣが記憶されないことで、例えば、ノンスＮＣが特定されることもなく、当該ノンスＮＣに対して改竄が行われることがないため、コンテンツに対するセキュリティを確保することができる。
【０１０９】
図７に示すように、ノンスＮＣ管理データはインデックス値によるインデックス形式としている。そして、そのインデックス値には不規則値が用いられる。
【０１１０】
例えば、インデックス値がカウンタなどの規則的な数値により構成されて、ノンス情報が規則的な数値によりノンスＮＣ管理データに配置される場合、ノンス情報がメモリ上に規則的に配置される。このような規則にノンス情報が配置されると、ノンス情報が特定されやすくなる。
【０１１１】
これに対して、本第２の実施の形態においては、インデックス値として不規則値が用いられる。これにより、例えば、ノンス情報が不規則に配置させることができる。図７の例では、アドレスの若い順にノンスＮＣ＝Ｄ，Ｂ，Ｃ，Ａ，Ｅが配置される。不規則値がインデックス値に用いられることで、例えば、ノンス情報が特定されにくくなり、従って、改竄などが行われにくく、セキュリティを確保することができる。
【０１１２】
また、ノンスＮＣ管理データにおいては、例えば、過去のノンスと自ノンスとの間で、リンクが形成されている。
【０１１３】
例えば、図７のＸ３領域に着目すると、「Ｐｒｅｖ  ＮＣ」には一世代前（又は過去）のノンスＮＣ＝Ｂが含まれる。そして、一世代前のノンスＮＣ＝Ｂに含まれる不規則値によって、自ノンスＮＣであるノンスＮＣ＝Ｃ（Ｘ２領域の「Ｎｅｘｔ  ＮＣ」）へのリンクが形成されている。すなわち、過去のノンスＮＣ＝Ｂと自ノンスＮＣ＝Ｃとは、不規則値によってリンクされている。そして、「Ｐｒｅｖ  ＮＣ」に記憶される不規則値＋乱数が、リンク先情報として用いられている。
【０１１４】
例えば、リンク先情報がデータアドレス値など、リンク先の領域を直接示す値の場合、データアドレス値によってリンク先が辿られる可能性がある。そのため、リンク先情報が削除される場合もある。しかし、リンク先情報が削除されると、例えば、メモリには”ＦＦＦＦ”や”００００”などといった一定の規則による値が記憶され、改竄などを行う不正者に対しては削除されたことが把握される可能性がある。
【０１１５】
本実施の形態のように、リンク先情報として不規則値＋乱数が用いられることで、ノンスＮＣ管理データ記憶部１４３における当該領域には数字の羅列が記憶され、例えば、不正者はリンク先情報であることを把握されるにくくなる。また、このようなリンク先情報は、例えばコンテンツ鍵確認部１４６によって、ノンスＮＣ管理データ記憶部１４３から削除しないで保持させておくこともできる。
【０１１６】
従って、サーバ１００は、削除する処理もなくなり、不正者に何らかの情報が削除されたことを把握させないようにすることもできる。従って、サーバ１００において保持したノンスＮＣ管理データは、改竄などが行われにくく、セキュリティを確保することができる。
【０１１７】
そして、このようにノンスＮＣはノンスＮＣ管理データとして保持しておき削除されないようにしているため、例えば、ノンスＮＣが削除されることによって検査用ノンスＮＣとが不一致になることもない。従って、本実施の形態におけるノンスＮＣ管理データは、クライアント２００では受信コンテンツの復号停止を防止できる。
【０１１８】
図６に戻り、Ｓ２１からＳ２５までの処理の詳細について説明する。サーバ１００は、Ｓ２１の処理の移行すると、交換鍵ＫＸとノンスＮＣによりコンテンツ鍵ＫＣを生成する。
【０１１９】
例えば、コンテンツ暗号部１４４がノンスＮＣ管理データ記憶部１４３から読み出したノンスＮＣと、ＡＫＥ認証部１３０から受け取った交換鍵ＫＸとに基づいてコンテンツ鍵ＫＣを生成する。
【０１２０】
次に、サーバ１００は、コンテンツ鍵ＫＣにてコンテンツを暗号化する（Ｓ２２）。例えば、コンテンツ暗号部１４４は生成したコンテンツ鍵ＫＣを用いて、コンテンツ記憶部１２０から読み出したコンテンツを暗号化し、暗号コンテンツと暗号に用いたノンスＮＣとをコンテンツ送信部１４５へ出力する。
【０１２１】
次に、サーバ１００は、ＰＣＰヘッダにノンスＮＣを設定する（Ｓ２３）。例えば、コンテンツ送信部１４５は、コンテンツ暗号部１４４から暗号化コンテンツを受け取ると、暗号化コンテンツを送信するようＴＣＰ制御部１５０へ依頼し、さらに、当該暗号コンテンツとノンスＮＣとをＴＣＰ制御部１５０へ出力する。ＴＣＰ制御部１５０は、ＰＣＰヘッダの所定領域にノンスＮＣを挿入する。
【０１２２】
次に、サーバ１００は、暗号コンテンツとＰＣＰヘッダを結合し、クライアント（Ｓｉｎｋ機器）２００へ送信する（Ｓ２４）。例えば、ＴＣＰ制御部１５０は、ＰＣＰのペイロードに暗号コンテンツを挿入し、ＰＣＰペイロードとＰＣＰヘッダとを結合してＰＣＰを生成し、生成したＰＣＰをクライアント２００へ送信する。
【０１２３】
そして、サーバ１００はノンスＮＣ管理データ生成処理を終了させる（Ｓ２５）。
【０１２４】
＜コンテンツ鍵の確認処理＞
次にコンテンツ鍵の確認処理について、図７及び図８を用いて説明する。図８はコンテンツ鍵の確認処理の例を表わすフローチャートである。
【０１２５】
上述したように、クライアント２００はサーバ１００に対して２分間隔でノンスＮＣを送信する。サーバ１００は、例えば、クライアント２００からノンスＮＣを受信したときにコンテンツ鍵の確認処理を開始する。
【０１２６】
サーバ１００はコンテンツ鍵の確認処理を開始すると（Ｓ５０）、クライアント２００から受信したノンスＮＣから不規則値を抽出し、ノンスＮＣ管理データに対して不規則値でインデックスした「Ｐｒｅｖ  ＮＣ」にアクセスする（Ｓ５１）。
【０１２７】
図７の例では、コンテンツ鍵確認部１４６がノンスＮＣ＝Ｃを受信したときは、ノンスＮＣ＝Ｃについてのノンス情報が記憶されたＸ３領域の「Ｐｒｅｖ  ＮＣ」にアクセスする。
【０１２８】
図８に戻り、次に、サーバ１００はインデックスした領域「Ｐｒｅｖ  ＮＣ」にノンスＮＣが格納されている否かを確認する（Ｓ５２）。例えば、コンテンツ鍵確認部１４６は、Ｘ３領域の「Ｐｒｅｖ  ＮＣ」に値が格納されているか否かにより確認する。
【０１２９】
インデックスした領域「Ｐｒｅｖ  ＮＣ」にノンスＮＣが格納されているとき（Ｓ５２でＹｅｓ）、サーバ１００はインデックスした領域「Ｐｒｅｖ  ＮＣ」からノンスＮＣを読み出し、当該ノンスＮＣに含まれる不規則値でノンスＮＣ管理データの領域「Ｐｒｅｖ  ＮＣ」にアクセスする（Ｓ５３）。
【０１３０】
図７の例で説明すると、例えば、以下の処理を行う。すなわち、Ｓ５２の処理でインデックスしたＸ３領域の「Ｐｒｅｖ  ＮＣ」には、ノンスＮＣ＝Ｃに対して一つ前の世代のノンスＮＣ＝Ｂが含まれる。コンテンツ鍵確認部１４６はノンスＮＣ＝Ｂに含まれる不規則値を抽出し、この不規則値によりインデックスしたＸ２領域の「Ｎｅｘｔ  ＮＣ」にアクセスする。当該「Ｎｅｘｔ  ＮＣ」にはクライアント２００から受信したノンスＮＣ＝Ｃが記憶されている。
【０１３１】
図８に戻り、次に、サーバ１００は「Ｎｅｘｔ  ＮＣ」からノンス値を抽出する（Ｓ５４）。図７の例では、コンテンツ鍵確認部１４６は、Ｘ２領域の「Ｎｅｘｔ  ＮＣ」からノンスＮＣ＝Ｃのノンス値Ｃを読み出す。
【０１３２】
図８に戻り、次に、サーバ１００は、Ｓ５１の処理でインデックスした「Ｐｒｅｖ  ＮＣ」からノンスＮＣのノンス値を読み出す（Ｓ５５）。図７の例では、コンテンツ鍵確認部１４６は、Ｘ３領域の「Ｐｒｅｖ  ＮＣ」からノンスＮＣ＝Ｂのノンス値Ｂを読み出す。
【０１３３】
図８に戻り、次に、サーバ１００は、Ｓ５４とＳ５５で読み出したノンス値を結合し、交換鍵ＫＸで署名データを生成する（Ｓ５６）。図７の例では、コンテンツ鍵確認部１４６は、Ｓ５４の処理で読み出したノンス値Ｃと、Ｓ５５の処理で読み出したノンス値Ｂとを結合して、ＡＫＥ認証部１３０から受け取った交換鍵ＫＸで署名データ（ＫＸ［Ｃ||Ｂ］）を生成する。
【０１３４】
図８に戻り、次に、サーバ１００は、クライアント２００から受信したノンスＮＣに含まれる不規則値によりアクセスした領域に含まれる保存済み署名データと、Ｓ５５の処理で生成した署名データとを比較し（Ｓ５７）、一致しているか否かを判別する（Ｓ５８）。
【０１３５】
図７の例では、コンテンツ鍵確認部１４６は、Ｓ５６の処理で生成した署名データ（ＫＸ［Ｃ||Ｂ］）と、Ｘ３領域の保存済み署名データ（ＫＸ［Ｃ||Ｂ］）とを比較することで検証し、一致しているか否かを判別する。
【０１３６】
図７の例において、Ｘ３領域の「Ｐｒｅｖ  ＮＣ」に記憶されたノンスＮＣ＝Ｂについて、例えば、改竄などが施されたとき、ノンスＮＣ＝Ｃとに基づいて生成した署名データと、Ｘ３領域の「起点データ（署名）」に記憶された保存済み署名データとは一致しない。
【０１３７】
起点データ（又は署名データ）は、例えば、ＤＴＣＰ−ＩＰの認証手続きにより得た共通鍵ＫＸと、一世代前のノンスＮＣのノンス値とを用いて、
起点データ＝交換鍵（ＫＸ）［自ノンスＮＣのノンス値||一世代前のノンスＮＣのノンス値］  ・・・（１）
によって生成される。一世代前のノンスＮＣについて改竄などの操作が行われると、式（１）により生成された起点データは本来の起点データ（例えば保存済み署名データ）とは一致しないものとなる。
【０１３８】
このことは、例えば、Ｘ２領域の「Ｎｅｘｔ  ＮＣ」に記憶されたノンスＮＣ＝Ｃについても改竄などが施されたとき、式（１）の［自ノンスＮＣのノンス値］が本来の値とは異なるものとなるため、２つの署名データは一致しない。
【０１３９】
さらに、Ｘ３領域の「起点データ（署名）」に記憶された保存済み署名データも改竄が施されると、式（１）の左式は本来のものと異なる値となり、２つの署名データは一致しない。また、式（１）に示すように起点データは、一世代前のノンスＮＣのノンス値を用いているため、一世代前でノンスＮＣの改竄されていなければ、起点データは改竄されていないことが保証されたものとなる。
【０１４０】
このようなこから、署名データは、例えば、ノンスＮＣに対する正常性の判断の起点となる起点データであるということができる。
【０１４１】
図８に戻り、サーバ１００は２つの署名データが一致しないと（Ｓ５８でＮｏ）、クライアント２００から受信した確認用（又は検査用）のノンスＮＣについては改竄ありと判定し、コンテンツ鍵確認については否定結果を生成する（Ｓ５９）。
【０１４２】
例えば、コンテンツ鍵確認部１４６は、Ｘ３領域から読み出した保存済み署名データと生成した署名データとが一致していないとき、改竄ありと判定し、コンテンツ鍵確認について否定結果（ＲＥＪＥＣＴＥＤ）を示す確認結果を生成する。コンテンツ鍵確認部１４６は、当該確認結果をクライアント２００へ送信する。
【０１４３】
一方、サーバ１００は、２つの署名データが一致するとき（Ｓ５８でＹｅｓ）、クライアントから受信した確認用のノンスＮＣについては改竄がなく正常であると判定し、コンテンツ鍵確認について肯定結果を示す確認結果を生成する（Ｓ６０）。例えば、コンテンツ鍵確認部１４６は、２つの署名データが一致しているとき、肯定結果（ＡＣＣＥＰＴＥＤ）を生成し、クライアント２００へ送信する。
【０１４４】
Ｓ５９及びＳ６０の処理が終了すると、サーバ１００は再びＳ５０へ移行し（Ｓ６１）、上述した処理を繰り返す。
【０１４５】
一方、サーバ１００は、インデックスした領域「Ｐｒｅｖ  ＮＣ」にノンスＮＣが格納されていないとき（Ｓ５２でＮｏ）、一連の処理を行うことなくＳ６１へ移行する。
【０１４６】
なお、コンテンツ鍵確認の処理は、例えば、サーバ１００の電源がオフになったときや、処理終了に関する割込み処理などが行われたときに終了する。
【０１４７】
図９はサーバ（Ｓｏｕｒｃｅ機器）１００とクライアント（Ｓｉｎｋ機器）２００との間で、ＤＴＣＰ−ＩＰによる相互認証及び鍵交換が完了した後において、コンテンツ鍵確認の処理が行われる場合のシーケンス例を表わす図である。
【０１４８】
クライアント２００は、ノンスＮＣに含まれるノンス値（＝Ａ）を抽出してコンテンツ鍵ＫＣを生成し、コンテンツ鍵ＫＣを用いて受信コンテンツを復号する（Ｓ７０）。
【０１４９】
次に、クライアント２００は、当該受信コンテンツを復号後、２分経過すると、コンテンツ鍵確認の処理を行うため、２分経過時において使用されているノンスＮＣ（＝不規則値＋ノンス値Ｃ）をサーバ１００へ送信する（Ｓ７２）。例えば、クライアント２００のコンテンツ鍵確認部２４４は、ＰＣＰヘッダ解析部２４２から２分経過時において（又は現在）使用されるノンスＮＣを受け取り、ノンスＮＣを検査用（又は未確認）のノンスＮＣとしてサーバ１００へ送信する。
【０１５０】
サーバ１００は、クライアント２００からノンスＮＣを受信すると、例えば図８に示すコンテンツ鍵確認の処理を行い、受信したノンスＮＣに含まれる不規則値により、サーバ１００側で保持されたノンス値Ｃを抽出する（Ｓ７３）。例えば、コンテンツ鍵確認部１４６はノンスＮＣ管理データ記憶部１４３に記憶されたノンスＮＣ管理データに含まれるノンス値Ｃを抽出する。
【０１５１】
この場合、最も古く生成されたノンス値Ａから辿ってノンス値を取得する場合と比較すると、本実施の形態では、例えば、一世代前のノンス情報からノンス値を取得しており、そのため、ノンス値Ｃを取得するまでに時間がかからない。従って、本実施の形態におけるノンスＮＣ管理データがノンスＮＣ管理データ記憶部１４３に記憶されることで、例えば、制限時間内（例えば１秒など）に処理を行うことができる。
【０１５２】
次に、サーバ１００は、式（１）で生成した署名データと、ノンスＮＣ管理データとして保持した署名データとが一致しているか否かを確認し（Ｓ７４）、その結果をサーバ１００へ送信する（Ｓ７５）。なお、図９の例では、サーバ１００はＣＯＮＴ＿ＫＥＹ＿ＣＯＮＦコマンドを利用して肯定結果を示すＡＣＣＥＰＴＥＤを送信している。
【０１５３】
クライアント２００は、肯定結果（例えばＡＣＣＥＰＴＥＤ）を受信すると、ノンスＮＣ（＝不規則値＋ノンス値Ｃ）以降の復号を継続し、受信コンテンツに関する映像や音声などの再生を継続する（Ｓ７６）。
【０１５４】
ただし、クライアント２００は、否定結果（例えばＲＥＪＥＣＴＥＤ）を受信すると、ノンスＮＣ（＝不規則値＋ノンス値Ｃ）以降の復号を停止することになる。
【０１５５】
＜サーバ１００とクライアント２００のその他の構成例＞
次に、サーバ１００とクライアント２００のその他の構成例について説明する。図１０はサーバ１００の構成例を表わす図である。図１０に示す例においては、クライアント２００は、サーバ１００と同一構成となっている。図１０に示す構成例は、例えば、サーバ１００やクライアント２００のハードウェアの構成例を表わす図である。
【０１５６】
サーバ１００は、ＣＰＵ（Central Processing Unit）１７０、ＲＯＭ（Read Only Memory）１７１、ＲＡＭ（Random Access Memory）１７２、暗号制御部１７３、乱数生成部１７４、Ｈａｓｈ生成部１７５、タイマー制御部１７６、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）１７７とを備え、内部バス１７８により互いに接続される。
【０１５７】
ＣＰＵ１７０は、ＲＯＭ１７１に格納されたプログラムを読み出して、ＲＡＭ１７２にロードし、ロードしたプログラムを実行する。ＣＰＵ１７０はプログラムを実行することで、例えば、アプリケーション部１１０、ノンスＮＣ保存部１４２、コンテンツ送信部１４５、コンテンツ鍵確認部１４６、及びＴＣＰ制御部１５０の各機能を実現する。従って、ＣＰＵ１７０は、例えば、アプリケーション部１１０、ノンスＮＣ保存部１４２、コンテンツ送信部１４５、コンテンツ鍵確認部１４６、及びＴＣＰ制御部１５０に対応する。
【０１５８】
ＲＡＭ１７２はコンテンツを蓄積することもでき、例えば、ＲＡＭ１７２に代えてハードディスクドライブなどにすることでコンテンツを蓄積することもできる。ＲＡＭ１７２は、例えば、コンテンツ記憶部１２０に対応する。
【０１５９】
暗号制御部１７３は、暗号処理を制御するブロックであり、例えば、ＡＫＥ認証部１４１、コンテンツ暗号部１４４に対応する。
【０１６０】
乱数生成部１７４は、乱数を生成するブロックであり、生成した乱数をＣＰＵ１７０やＲＡＭ１７２などに出力する。乱数生成部１７４は、例えば、ノンスＮＣ生成部１４１に対応する。
【０１６１】
Ｈａｓｈ生成部１７５は、例えば、Ｈａｓｈ値を生成してＣＰＵ１７０に出力する。Ｈａｓｈ値は、例えば、通信経路を流れる送信データに対して、改竄などが行われたかを確認するために用いられる。
【０１６２】
タイマー制御部１７６は、例えば、内部にタイマーなどを備え、タイマーによってカウントしたカウント値をＣＰＵ１７０へ出力する。例えば、タイマー制御部１７６は、コンテンツの配信時間をカウントする。また、タイマー制御部１７６は、ＣＰＵ１７０からの指示に基づいてタイマー値をカウントし、ＣＰＵ１７０によって指示された時間が経過するとその旨をＣＰＵ１７０へ出力する。
【０１６３】
ＥＥＰＲＯＭ１７７は、例えば、サーバ１００の電源がオフとなっても記憶されたデータを保存することができ、ノンスＮＣ管理データを記憶する。ＥＥＰＲＯＭ１７７は、ノンスＮＣ管理データ記憶部１４３に対応する。
【０１６４】
クライアント２００との対応関係では、ＣＰＵ１７０が例えばアプリケーション部２１０、コンテンツ受信部２４０、ＰＣＰヘッダ解析部２４２、コンテンツ鍵確認部２４４、ＴＣＰ制御部２５０に対応する。また、ＲＡＭ１７２は、例えば、コンテンツ記憶部２２０と受信バッファ２４１に対応する。さらに、暗号制御部１７３は、例えば、コンテンツ復号部２４３に対応する。さらに、タイマー制御部１７６は、例えば、コンテンツ鍵確認部２４４にも対応する。
【０１６５】
以上まとめると付記のようになる。
【０１６６】
（付記１）
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う情報通信装置において、
第２のノンス情報を記憶するノンス管理データ記憶部と、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行うコンテンツ鍵確認部と
を備えることを特徴とする情報通信装置。
【０１６７】
（付記２）
前記第１及び第２のリンク情報は、第１のデータ範囲内で変化する値であって、前記第１のリンク情報と前記第２のリンク情報は異なる値を有することを特徴とする付記１記載の情報通信装置。
【０１６８】
（付記３）
前記コンテンツ鍵確認部は、前記第１のリンク情報に基づいて前記ノンス管理データ記憶部の領域から読み出した第１の署名データと、前記第２のノンス情報に含まれるノンス値と前記第３のノンス情報に含まれるノンス値とに基づいて生成した第２の署名データとを比較してコンテンツ鍵の確認を行うことを特徴とする付記１記載の情報通信装置。
【０１６９】
（付記４）
前記コンテンツ鍵確認部は、コンテンツ鍵の確認を行った後、前記ノンス管理データ記憶部に記憶された前記第２のノンス情報を削除することなく保持することを特徴とする付記１記載の情報通信装置。
【０１７０】
（付記５）
前記第１及び第２のリンク情報は、乱数とコンテンツ配信時間とを組み合わせた値であることを特徴とする付記２記載の情報通信装置。
【０１７１】
（付記６）
前記第１、第２、及び第３のノンス情報は乱数により生成された数値であることを特徴とする付記１記載の情報通信装置。
【０１７２】
（付記７）
コンテンツ鍵確認部は、前記他の情報通信装置と共有した交換鍵に基づいて前記第２の署名データを生成し、
前記ノンス管理データ記憶部に記憶された前記第１の署名データは前記交換鍵に基づいて生成されることを特徴とする付記３記載の情報通信装置。
【０１７３】
（付記８）
前記情報通信装置は、前記確認要求を２分毎に受信することを特徴とする付記１記載の情報通信装置。
【０１７４】
（付記９）
前記情報通信装置は、前記第１のノンス情報と前記暗号化したコンテンツを前記他の情報通信装置へ送信することを特徴とする付記１記載の情報通信装置。
【０１７５】
（付記１０）
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行う情報通信装置におけるコンテンツ鍵確認方法であって、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行う
ことを特徴とする情報通信装置。
【０１７６】
（付記１１）
暗号化したコンテンツを他の情報通信装置へ送信し、前記他の情報通信装置において暗号化されたコンテンツを復号する際に用いるコンテンツ鍵に関する確認要求を前記他の情報通信装置から受信し、前記確認要求に含まれる第１のノンス情報に基づいてコンテンツ鍵の確認を行うコンピュータに対するコンテンツ鍵確認プログラムであって、
前記第１のノンス情報に含まれる第１のリンク情報に基づいて、ノンス管理データ記憶部から、前記第１のノンス情報が前記情報通信装置において生成される前に生成された前記第２のノンス情報を読み出し、前記第２のノンス情報に含まれる第２のリンク情報に基づいて、前記ノンス管理データ記憶部から、前記第１のノンス情報に対応する第３のノンス情報を読み出し、前記第１のノンス情報と前記第３のノンス情報とに基づいてコンテンツ鍵の確認を行う
ことをコンピュータに実行させるコンテンツ鍵確認プログラム。
【符号の説明】
【０１７７】
１０：情報通信システム（サーバクライアントシステム）  
１００：サーバ装置（Ｓｏｕｒｃｅ機器）
１１０：アプリケーション部            １２０：コンテンツ記憶部
１３０：ＡＫＥ認証部                  １４０：コンテンツ管理部
１４１：ノンスＮＣ生成部              １４２：ノンスＮＣ保存部
１４３：ノンスＮＣ管理データ記憶部    １４４：コンテンツ暗号部
１４５：コンテンツ送信部              １４６：コンテンツ鍵確認部
１５０：ＴＣＰ制御部                  １５１〜１５３：第１〜第３のインタフェース
１７０：ＣＰＵ
２００：クライアント装置（Ｓｉｎｋ機器）
２１０：アプリケーション部            ２２０：コンテンツ記憶部
２３０：ＡＫＥ認証部                  ２４０：コンテンツ受信部
２４１：受信バッファ                  ２４２：ＰＣＰヘッダ解析部
２４３：コンテンツ復号部              ２４４：コンテンツ鍵確認部
２５０：ＴＣＰ制御部                  ２５１〜２５３：第４〜第６のインタフェース
【図１】
2014216707.tif 000003
【図２】
2014216707.tif 000004
【図３】
2014216707.tif 000005
【図４】
2014216707.tif 000006
【図５】
2014216707.tif 000007
【図６】
2014216707.tif 000008
【図７】
2014216707.tif 000009
【図８】
2014216707.tif 000010
【図９】
2014216707.tif 000011
【図１０】
2014216707.tif 000012