(57)【特許請求の範囲】
【請求項１】
連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置であって、
前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵を利用して復号処理を施す復号手段と、
前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段と
を備え、
前記更新情報は、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、
前記各単位更新情報は、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、
前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、
複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、
前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれており、
前記メタデータ取得手段は、
前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していると判定した場合、前記第１の更新値を補正する第１の補正手段を
有する情報処理装置。
【請求項２】
前記当該単位データについての前記Meta packet3における前記Key Changing Timingの値である前記第１の更新値は、
前記当該単位データ自身が前記次の鍵の更新タイミングであることを示す第０の値、
前記当該単位データの次の単位データが前記次の鍵の更新タイミングであることを示す第１の値、
前記当該単位データの２個先の単位データが前記次の鍵の更新タイミングであることを示す第２の値、
および、
前記当該単位データの３個先以降の単位データが前記次の鍵の更新タイミングであることを示す第３の値
のうちの何れかの値であり、
前記第２の更新値から前記第１の更新値への推移パターンのうちの、
前記第３の値から前記第３の値または前記第２の値への第１の推移パターン、
前記第２の値から前記第１の値への第２の推移パターン、
前記第１の値から前記第０の値への第３の推移パターン、
および、
前記第０の値から前記第３の値への第４の推移パターン
を正常推移パターンとして、
それ以外の推移パターンを異常推移パターンとして、
前記第１の補正手段は、前記第２の更新値から前記第１の更新値への推移パターンが、前記正常推移パターンであるのか、或いは、前記異常推移パターンであるのかを判定し、前記異常推移パターンであると判定した場合、前記第１の更新値にエラーが発生していると判定して、前記第１の更新値を補正する
請求項１に記載の情報処理装置。
【請求項３】
前記第１の補正手段は、前記異常推移パターンであると判定した場合、前記第２の更新値から前記第１の更新値への推移パターンが前記正常推移パターンのうちの何れかとなるように、前記第１の更新値を補正する
請求項２に記載の情報処理装置。
【請求項４】
前記第１の補正手段は、さらに、前記当該単位データの２つ前の単位データについての第３の更新値から、前記第２の更新値への推移パターンが、前記正常推移パターンであるのか、或いは、前記異常推移パターンであるのかを判定し、前記第３の更新値から前記第２の更新値への推移パターンが前記異常推移パターンであり、かつ、前記第２の更新値から前記第１の更新値への推移パターンが前記異常推移パターンであると判定した場合、前記第１の更新値の補正を禁止する
請求項２に記載の情報処理装置。
【請求項５】
前記当該単位データの直前の単位データについての前記Meta packet3におけるCurrent Frame Countの第１のカウント値から、前記当該単位データについての前記Meta packet3における前記Current Frame Countの第２のカウント値への推移パターンが異常であるか否かを判定し、異常であると判定した場合、前記第２のカウント値を補正する第２の補正手段
をさらに備える請求項２に記載の情報処理装置。
【請求項６】
前記第２の補正手段は、
前記第１のカウント値から前記第２のカウント値への推移パターンが異常であると判定した場合、前記当該単位データについての前記第１の更新値が前記第０の値のときには、前記第０の値である前記第１の更新値に基づいて、前記第２のカウント値を補正し、前記当該単位データについての前記第１の更新値が前記第０の値以外のときには、前記第１のカウント値に基づいて、前記第２のカウント値を補正する
請求項５に記載の情報処理装置。
【請求項７】
連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置であって、
前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵を利用して復号処理を施す復号手段と、
前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段と
を備え、
前記更新情報が、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、
前記各単位更新情報が、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、
前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、
複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、
前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれている前記情報処理装置の、
前記メタデータ取得手段が、
前記メタデータを取得して、
前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、
エラーが発生していないと判定した場合には前記メタデータに含まれる前記第１の更新値に従って、エラーが発生していると判定した場合には前記第１の更新値を補正し、補正後の前記第１の更新値に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供する
ステップを含む情報処理方法。
【請求項８】
コンピュータを、
連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置の、
前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵を利用する復号処理を施す復号手段、
前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段
として機能させるためのプログラムであって、
前記更新情報は、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、
前記各単位更新情報は、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、
前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、
複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、
前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれており、
前記メタデータ取得手段は、
前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していると判定した場合、前記第１の更新値を補正する補正手段を含む
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法並びにプログラムに関し、特に、暗号化装置から復号装置にメタデータが伝送される際にエラーが発生しても、復号装置が、そのメタデータを利用する復号処理を正常に実行できるようにする情報処理装置および方法並びにプログラムに関する。
【背景技術】
【０００２】
近年、連続する複数の単位データから構成されるストリームデータが単位データ毎に順次暗号化されていく場合、複数の単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている暗号化手法が存在し、その利用が検討されている（例えば特許文献１参照）。
【０００３】
また、このような暗号化手法に従ってストリームデータを暗号化するとともに、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを生成する暗号化装置の実現化も検討されている。
【０００４】
そして、このような暗号化装置により暗号化された暗号化データに対して、その暗号化装置により生成されたメタデータを利用して復号処理を施す復号装置の実現化も検討されている。
【特許文献１】特開2003-143548号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、暗号化装置から復号装置にメタデータが伝送される際にエラーが発生してしまうと、復号装置は、そのメタデータを利用する復号処理を正常に実行できなくなる、という問題があった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、暗号化装置から復号装置にメタデータが伝送される際にエラーが発生しても、復号装置が、そのメタデータを利用する復号処理を正常に実行することを可能にするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の情報処理装置は、連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置であって、前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵を利用して復号処理を施す復号手段と、前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段とを備え、前記更新情報は、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、前記各単位更新情報は、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれており、前記メタデータ取得手段は、前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していると判定した場合、前記第１の更新値を補正する第１の補正手段を備える。
【００１１】
前記当該単位データについての前記Meta packet3における前記Key Changing Timingの値である前記第１の更新値は、前記当該単位データ自身が前記次の鍵の更新タイミングであることを示す第０の値、前記当該単位データの次の単位データが前記次の鍵の更新タイミングであることを示す第１の値、前記当該単位データの２個先の単位データが前記次の鍵の更新タイミングであることを示す第２の値、および、前記当該単位データの３個先以降の単位データが前記次の鍵の更新タイミングであることを示す第３の値のうちの何れかの値であり、前記第２の更新値から前記第１の更新値への推移パターンのうちの、前記第３の値から前記第３の値または前記第２の値への第１の推移パターン、前記第２の値から前記第１の値への第２の推移パターン、前記第１の値から前記第０の値への第３の推移パターン、および、前記第０の値から前記第３の値への第４の推移パターンを正常推移パターンとして、それ以外の推移パターンを異常推移パターンとして、前記第１の補正手段は、前記第２の更新値から前記第１の更新値への推移パターンが、前記正常推移パターンであるのか、或いは、前記異常推移パターンであるのかを判定し、前記異常推移パターンであると判定した場合、前記第１の更新値にエラーが発生していると判定して、前記第１の更新値を補正することができる。
【００１２】
前記第１の補正手段は、前記異常推移パターンであると判定した場合、前記第２の更新値から前記第１の更新値への推移パターンが前記正常推移パターンのうちの何れかとなるように、前記第１の更新値を補正することができる。
【００１３】
前記第１の補正手段は、さらに、前記当該単位データの２つ前の単位データについての第３の更新値から、前記第２の更新値への推移パターンが、前記正常推移パターンであるのか、或いは、前記異常推移パターンであるのかを判定し、前記第３の更新値から前記第２の更新値への推移パターンが前記異常推移パターンであり、かつ、前記第２の更新値から前記第１の更新値への推移パターンが前記異常推移パターンであると判定した場合、前記第１の更新値の補正を禁止することができる。
【００１４】
前記当該単位データの直前の単位データについての前記Meta packet3におけるCurrent Frame Countの第１のカウント値から、前記当該単位データについての前記Meta packet3における前記Current Frame Countの第２のカウント値への推移パターンが異常であるか否かを判定し、異常であると判定した場合、前記第２のカウント値を補正する第２の補正手段をさらに備えることができる。
【００１５】
前記第２の補正手段は、前記第１のカウント値から前記第２のカウント値への推移パターンが異常であると判定した場合、前記当該単位データについての前記第１の更新値が前記第０の値のときには、前記第０の値である前記第１の更新値に基づいて、前記第２のカウント値を補正し、前記当該単位データについての前記第１の更新値が前記第０の値以外のときには、前記第１のカウント値に基づいて、前記第２のカウント値を補正することができる。
【００１６】
本発明の一側面の情報処理方法は、次の情報処理装置の情報処理方法である。即ち、連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置であって、前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの、暗号化されたときに利用された鍵を利用して復号処理を施す復号手段と、前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段とを備え、前記更新情報が、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、前記各単位更新情報が、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれている前記情報処理装置の、前記メタデータ取得手段が、前記メタデータを取得して、前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していないと判定した場合には前記メタデータに含まれる前記第１の更新値に従って、エラーが発生していると判定した場合には前記第１の更新値を補正し、補正後の前記第１の更新値に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するステップを含む。
【００１７】
本発明の一側面のプログラムは、コンピュータを、連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置の、前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの、暗号化されたときに利用された鍵を利用する復号処理を施す復号手段、前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段として機能させるためのプログラムであって、前記更新情報は、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、前記各単位更新情報は、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれており、前記メタデータ取得手段は、前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していると判定した場合、前記第１の更新値を補正する補正手段を含むものである。
【００１８】
本発明の一側面においては、次のような復号処理が実行される。即ち、連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている第１の暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用する復号処理であって、前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの、暗号化されたときに利用された鍵を利用する前記復号処理が施され、前記更新情報が、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、前記各単位更新情報が、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、前記メタデータが、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3から構成され、複数の前記鍵が、前記第１の暗号化手法とは異なる第２の暗号化手法によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており、前記各更新値のそれぞれが、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれている場合に、前記メタデータが取得されて、前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かが、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定され、エラーが発生していないと判定した場合には前記メタデータに含まれる前記第１の更新値に従って、エラーが発生していると判定した場合には前記第１の更新値を補正し、補正後の前記第１の更新値に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つが、前記復号処理用の鍵として提供される。
【発明の効果】
【００１９】
以上のごとく、本発明の一側面によれば、メタデータを利用する復号処理を実現できる。特に、暗号化装置から復号装置にメタデータが伝送される際にエラーが発生しても、復号処理装置側で、そのメタデータを利用する復号処理を正常に実行できる。
【発明を実施するための最良の形態】
【００２０】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２１】
本発明の一側面の情報処理装置（例えば図１の復号装置２）は、
連続する複数の単位データから構成されるストリームデータ（例えば図１のAVデータ。この例の場合、単位データとは、後述するフレーム（データ）をいう）が前記単位データ毎に順次暗号化されていく場合、鍵が所定の規則で更新されていき、複数の前記単位データのそれぞれが暗号化されるとき、その時点で存在する鍵を利用することが規定されている第１の暗号化手法に従って（例えば、図６に示されるAES暗号を利用する暗号化手法に従って）、そのストリームデータが暗号化された結果得られる暗号化データ（例えば図１の暗号化部１１のAVデータ暗号化部３２から出力される、後述する暗号化AVデータ）に対して、そのストリームデータの暗号化に利用された複数の鍵（例えば、図１のLE Key６１−Ｅであって、後述する例では、それがさらにRSA暗号により暗号化されたもの）およびそれらの複数の鍵の更新タイミングを特定する更新情報（例えば図４のKey Change Timing）を含むメタデータ（例えば図４のメタデータ６４−３等を含む図１のメタデータ６４）を利用して復号処理を施す情報処理装置であって、
前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵（例えば図１のLE Key６１−Ｄ）を利用して復号処理を施す復号手段（例えば図１の復号部２２）と、
前記メタデータを取得して、前記メタデータに含まれる前記更新情報に従って、前記メタデータに含まれる複数の前記鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段（例えば図５の構成を有する図１のメタデータ抽出部２１）と
を備え、
前記更新情報は、前記ストリームデータを構成する複数の前記単位データのそれぞれについて生成された各単位更新情報から構成され、
前記各単位更新情報は、複数の前記単位データのそれぞれについて、次の鍵の更新タイミングが、自身の単位データから何個先の単位データに相当するのかを示す各更新値として構成され、
前記メタデータは、複数の前記単位データ毎に生成される、SMPTE（Society of Motion Picture and Television Engineers）291Mに準拠したMeta packet1，2，3（例えば図２のMeta packet1であるメタデータ６４−１、図３のMeta packet2であるメタデータ６４−２、図４のMeta packet3であるメタデータ６４−３）から構成され、
複数の前記鍵は、前記第１の暗号化手法とは異なる第２の暗号化手法（例えば後述するRSA暗号を利用する暗号化手法）によって暗号化されており、暗号化された複数の前記鍵のうちの所定の１つが、所定の単位データについての前記Meta packet1，2に含まれており（例えば図２と図３のElekp dataとして含まれており）、
前記各更新値のそれぞれは、対応する単位データについての前記Meta packet3におけるKey Changing Timingの値として含まれており、
前記メタデータ取得手段は、
前記各更新値のうちの、前記復号手段による復号処理の対象に該当している当該単位データについての第１の更新値にエラーが発生しているか否かを、前記当該単位データの直前の単位データについての第２の更新値から前記第１の更新値への推移パターンに基づいて判定し、エラーが発生していると判定した場合、前記第１の更新値を補正する第１の補正手段（例えば図５のキーチェンジグタイミング補正部１１１）を
有する。
【００２３】
本発明の一側面の情報処理装置において、
前記当該単位データについての前記Meta packet3における前記Key Changing Timingの値である前記第１の更新値は、
前記当該単位データ自身が前記次の鍵の更新タイミングであることを示す第０の値（例えば0=2'b00）、
前記当該単位データの次の単位データが前記次の鍵の更新タイミングであることを示す第１の値（例えば１=2'b01）、
前記当該単位データの２個先の単位データが前記次の鍵の更新タイミングであることを示す第２の値（例えば2=2'b10）、
および、
前記当該単位データの３個先以降の単位データが前記次の鍵の更新タイミングであることを示す第３の値（例えば3=2'b11）
のうちの何れかの値であり、
前記第２の更新値から前記第１の更新値への推移パターンのうちの、
前記第３の値から前記第３の値または前記第２の値への第１の推移パターン（例えば図７のパターン１）、
前記第２の値から前記第１の値への第２の推移パターン（例えば図７のパターン２）、
前記第１の値から前記第０の値への第３の推移パターン（例えば図７のパターン３）、
および、
前記第０の値から前記第３の値への第４の推移パターン（例えば図７のパターン４）
を正常推移パターンとして、
それ以外の推移パターンを異常推移パターンとして、
前記第１の補正手段は、前記第２の更新値から前記第１の更新値への推移パターンが、前記正常推移パターンであるのか、或いは、前記異常推移パターンであるのかを判定し、前記異常推移パターンであると判定した場合、前記第１の更新値にエラーが発生していると判定して、前記第１の更新値を補正する。
【００２４】
本発明の一側面の情報処理装置は、
前記当該単位データの直前の単位データについての前記Meta packet3におけるCurrent Frame Countの第１のカウント値から、前記当該単位データについての前記Meta packet3における前記Current Frame Countの第２のカウント値への推移パターンが異常であるか否かを判定し、異常であると判定した場合、前記第２のカウント値を補正する第２の補正手段（例えば図５のLE FRAMEカウント値補正部１１２）
をさらに備える。
【００２６】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２７】
図１は、本発明を適用した暗号化装置と復号装置（本発明を適用した情報処理装置の一実施の形態）とからなるシステム（以下、暗号復号システムと称する）の構成例を示す図である。
【００２８】
なお、図１において、実線で囲まれた四角は、装置の構成要素としてのブロックを示し、点線で囲まれた四角は、所定の情報を示している。このような実線と点線の使い分け方は、後述する他の図においても同様とされる。
【００２９】
図１の例では、暗号復号システムは、例えばフレーム単位で構成されるコンテンツ（映画等）に対応するストリームデータ（以下、AVデータと称する）を暗号化する暗号化装置１と、暗号化装置１により暗号化されたAVデータを復号する復号装置２とから構成されている。
【００３０】
図１の例では、暗号化装置１は、共通鍵暗号方式の一つのAES(Advanced Encryption Standard)暗号を利用してAVデータを暗号化する。このため、暗号化装置１は、暗号化部１１、メタデータ生成部１２、および、重畳部１３から構成されている。また、暗号化部１１は、AES暗号データ生成部３１とAVデータ暗号化部３２とから構成されている。
【００３１】
AES暗号データ生成部３１は、AES暗号を利用してAVデータを暗号化するための共通鍵（AES Keyと称される場合もあるが、本明細書ではLE Keyと称する）６１−Ｅと、AES Input６２−Ｅとを用いて、AVデータを直接暗号化するためのデータ（以下、AES暗号データと称する）６５を生成し、AVデータ暗号化部３２に提供する。なお、AES Input６２−Eについては後述する。
【００３２】
AVデータ暗号化部３２は、AES暗号データ生成部３１から提供されたAES暗号データ６５を用いて、AVデータを暗号化し、重畳部１３に提供する。その際、AVデータ暗号化部３２は、メタデータ生成部１２から供給されるFrame reset６３−Ｅを利用して、フレーム単位でAVデータを暗号化する。
【００３３】
具体的には例えば、本実施の形態のAVデータは、HD-SDIのデータであって、１以上のフレームデータから構成されているとする。また、フレームデータは、そのフレームを構成する各画素の輝度を示すデータY、および、そのフレームを構成する各画素の色を示すデータCb/Crから構成されているとする。また、例えばLE Key６１−Ｅと、AES Input６２−Ｅとのそれぞれは、128ビットで構成されているとする。
【００３４】
この場合、例えば、AES暗号データ生成部３１は、128ビットのLE Key６１−Ｅと、128ビットのAES Input６２−Ｅとの総計256ビットの入力データから、128ビットのAES暗号データ６５を生成し、AVデータ暗号化部３２に供給する。より詳細には例えば、AES暗号データ生成部３１は、AES暗号データ６５を構成する128ビットのうち下位120ビットだけを、AVデータの暗号化に実際使用するデータとして10ビット毎に切り出して、AVデータ暗号化部３２にそれぞれ提供する。
【００３５】
AVデータ暗号化部３２は、10ビット毎のデータの１つずつを利用して、データYとデータCb/Crとのそれぞれをリアルタイムに暗号化し、それぞれ個別に重畳部１３に提供する。
【００３６】
ただし、以下の説明においては、特に説明が必要な場合を除いて、データYとデータCb/Crとをまとめて、単にAVデータとして説明していく。
【００３７】
メタデータ生成部１２は、暗号化部１１の暗号化処理で必要となる各種情報（換言すると、復号装置２の復号処理で必要となる各種情報）、例えば上述したように、LE Key６１−Ｅ、AES input６２−Ｅ、および、Frame reset６３−Ｅ等を生成する。さらに、メタデータ生成部１２は、LE Key６１-Ｅに、これらの各種情報のうちの幾つかの補足情報を付加し、その結果得られるデータ（以下、LEKP:Link:Encryption Key Payloadと称する）に対して、例えば復号装置２側の公開鍵を利用するRSA（R. Rivest、A. Shamir、L. Adelman）2048bitの暗号方式（以下、RSA暗号と称する）による暗号化処理を施す。なお、以下、LEKPがRSA暗号により暗号化された結果得られるデータを、ELEKPと称する。即ち、メタデータ生成部１２は、ELEKPを生成する。そして、メタデータ生成部１２は、ELEKPの他、AES input６２−Ｅの一構成要素（後述するLe_attribute_data）等から構成されるメタデータ６４を生成し、重畳部１３に提供する。なお、メタデータ６４の具体例については、図２乃至図４を参照して後述する。
【００３８】
重畳部１３は、HD-SDIであるAVデータがAVデータ暗号化部３２により暗号化された結果得られるデータ（以下、暗号化AVデータと称する）のうちの、例えばV-Blanking期間に、メタデータ生成部１２により生成されたメタデータ６４を重畳（挿入）して、その結果得られるデータ（以下、メタデータ重畳暗号化AVデータと称する）を、復号装置２に出力する（伝送する）。即ち、メタデータ６４はフレーム単位で挿入される。
【００３９】
ところで、本実施の形態では、１つのAVデータ（ストリームデータ全体）に対して、LE Key６１−Ｅは１つのみが使用される訳ではなく、随時更新される。即ち、１つのAVデータに対して、LE Key６１−Ｅは複数使用される。その理由は次の通りである。
【００４０】
即ち、悪意を持つ第三者が、AES暗号が掛かったコンテンツ（ここではAVデータ暗号化部３２から出力される暗号化AVデータ等）を盗んだと仮定した場合、１種類のAES鍵（ここではLE Key６１−Ｅ）でコンテンツが暗号化されていると、AES鍵が直接的に解読される危険性が増す、という問題点が発生する。そこで、この問題点を解決すべく、本実施の形態のメタデータ生成部１２は、このような第三者がコンテンツを直接的に解読することをより困難となるように、AES暗号で使う鍵（ここではLE Key６１−Ｅ）を周期的に変化させる（随時更新する）ようにしているのである。
【００４１】
ただし、本実施の形態では、上述したように、メタデータ生成部１２が、LE Key６１−Ｅを復号装置２に直接送信せず、そのLE Key６１−Ｅと補足データとを合わせたLEKPを生成し、そのLEKPに対してRSA暗号による暗号化処理を施し、その結果得られるELEKPを含むメタデータ６４を生成する。そして、重畳部１３が、このメタデータ６４を暗号化AVデータとともに（即ち、メタデータ重畳暗号化AVデータとして）、復号装置２に提供（送信）している。即ち、本実施の形態では、暗号化装置１は、複数のLE Key６１−Ｅのそれぞれに対してRSA暗号による一度の暗号化処理をそれぞれ施し、複数のRSA暗号がかけられたLE Key６１−Ｅのそれぞれを個別に（生成順に）復号装置２に送信している。このため、後述するように、復号装置２側でも、複数のRSA暗号がかけられたLE Key６１−Ｅのそれぞれに対して、RSA暗号に対応する復号処理をそれぞれ施す必要がある。
【００４２】
従って、メタデータ生成部１２によるLE Key６１−Ｅの更新周期は、RSA暗号による暗号化処理と復号処理の処理時間に依存する。即ち、RSA暗号による暗号化処理と復号処理の処理時間に従って、LE Key６１−Ｅの更新周期の最短周期も自ずと決定される。例えば本実施の形態では、この最短周期は1minとされている。
【００４３】
このように、本実施の形態では、１つのAVデータに対して、LE Key６１−Ｅは１つのみが使用される訳ではなく複数使用される（随時更新される）。即ち、１つのAVデータを構成する各フレームのそれぞれの暗号化に利用されるLE Key６１−Ｅは１つのみが使用される訳ではなく、何枚かのフレーム毎に更新されて別のLE Key６１−Ｅが使用される。
【００４４】
このため、本実施の形態では、メタデータ生成部１２は、これらの複数のLE Key６１−Ｅのそれぞれを生成する度に、それらを特定するための識別子（以下、Key IDと称する）をそれぞれ付し、後述するように、このKey IDもメタデータ６４に含めるとする。
【００４５】
また、AVデータを暗号化するためのLE Key６１−Ｅは、AVデータ暗号化部３２がそのAVデータに対して暗号化処理を施す前に生成されている必要がある。即ち、暗号化AVデータと、それを暗号化するためのLE Key６１−Ｅとの生成タイミングにはタイムラグがある。その結果、重畳部１３において、暗号化AVデータのうちの所定のフレーム（データ）に重畳されるメタデータ６４に含まれる（より正確にはRSA暗号がかけられる前のLEKPに含まれる）LE Key６１−Ｅは、その所定のフレーム（データ）を暗号化した際に利用されたものではなく、その所定のフレームよりも前のフレーム（データ）を暗号化した際に利用されたものである。
【００４６】
ここで、復号装置２の構成例を説明する前に、図２乃至図４を参照して、メタデータ生成部１２により生成されるメタデータの具体例について説明する。
【００４７】
即ち、図２と図３のそれぞれは、上述したELEKP（RSA で暗号化されたLE Key６１−Ｅ等）を含むメタデータ６４−１，６４−２のそれぞれの構成例を示している。また、図４は、AES input６２−Ｅを含むメタデータ６４−３のそれぞれの構成例を示している。
【００４８】
本実施の形態で採用されているメタデータ６４−１，６４−２，６４−３のそれぞれのパケット構造は、SMPTE（Society of Motion Picture and Television Engineers）291M(Proposal SMPTE STANDARD for Television-Ancillary Data Packet and Space Formatting)に準拠しており、一般的にはMeta packet1，2，3のそれぞれと称されている。即ち、SMPTE291Mでは、例えば図２乃至図４に示されるように、ADF(Ancillary Data Flag：コンポーネントのとき000,3FF,3FF,コンポジットのとき3FC) , DID（Data ID） , SDID(Secondary Data ID) , DC(Data Count) ， User Data , CS(Check Sum)といった情報がその順番で配置されるパケット構造が定義されている。メタデータ６４−１，６４−２，６４−３のそれぞれは、このパケット構造を有し、そのUser dataとして、例えば本実施の形態では次のような情報をそれぞれ格納している。
【００４９】
即ち、メタデータ６４−１のUser dataには、Key ID , Type , SHA1 digest , Lekp length , Elekp length , Elekp dataが格納されており、メタデータ６４−２のUser dataには、Elekp dataが格納されている。
【００５０】
順不同に説明するが、Elekp dataは、上述したように、LE Key６１−Ｅ等からなるLEKPが、RSA暗号による暗号化処理が施された結果得られるデータ、即ち、ELEKPのことである。KeyIDは、上述したように、そのELEKPに暗号化されて含まれているLE Key６１−Ｅの識別子である。Elekp lengthは、そのELEKPのデータ長であり、Lekp lengthは、そのLEKPのデータ長である。
【００５１】
Typeは、LEKPが暗号化された際の暗号化方式（アルゴリズムのタイプ）である。本実施の形態では、RSA暗号を示す0がTypeとして代入される。SHA1 digestは、そのELEKPが生成された際（LEKPがRSA暗号により暗号化された際）に使用された公開鍵の識別子である。
【００５２】
なお、以上説明したような各種情報により構成されるメタデータ６４−１とメタデータ６４−２のUser dataを、以下、LEKM(Link Encryption Key Message)と称する。
【００５３】
このようなLEKM（メタデータ６４−１とメタデータ６４−２のUser data）に対して、メタデータ６４−３のUser dataには、Next Key ID , Current Key ID , Current Frame Count , Key Changing Timing , HD-SDI Link Numberが格納されている。
【００５４】
ここで、対象とするメタデータ６４−３が挿入されるフレームを、当該フレームと称することにする。また、当該フレーム（AVデータのうちの当該フレームに対応する部分のデータ）の暗号化開始直前等を現時点として、現時点のLE Key６１−Ｅを、Current LE Key６１−Ｅと称することにする。そして、Current LE Key６１−Ｅの次に生成される（次の更新タイミングでメタデータ生成部１２により生成される）LE Key６１−Ｅを、Next LE Key６１−Ｅと称し、一方、Current LE Key６１−Ｅの直前に生成された（直前の更新タイミングでメタデータ生成部１２により生成された）LE Key６１−Ｅを、Previos LE Key６１−Ｅと称することにする。
【００５５】
この場合、当該フレームに挿入されるメタデータ６４−３における、Next Key ID , Current Key ID , Current Frame Count , Key Changing Timing , HD-SDI Link Numberは、次のような情報となる。
【００５６】
即ち、Next Key IDは、Next LE Key６１−ＥのKey IDであり、Current Key IDは、Current LE Key６１−ＥのKey IDである。
【００５７】
Current Frame Countは、当該フレームが、Previos LE Key６１−ＥからCurrent LE Key６１−Ｅに更新された時点（以下、このような時点をKey Change Timingと称する）のフレームから数えて（そのフレームを０番目として）何番目のフレームであるのかを示す値である。
【００５８】
Key Changing Timingには、2'b11，2'b10，2'b01，2'b00のうちの何れかの値が代入される。これらの値は、次のKey Changing Timingはどのフレームであるのかをそれぞれ示している。具体的には、2'b11（＝３）は、当該フレームから３フレーム先以降がKey Changing Timingであることを示している。2'b10（＝２）は、当該フレームから２フレーム先がKey Changing Timingであることを示している。2'b01（＝１）は、当該フレームから１フレーム先（即ち、次のフレーム）がKey Changing Timingであることを示している。2'b00（＝０）は、当該フレームがKey Changing Timingであることを示している。
【００５９】
HD-SDI Link Numberは、暗号化装置１と復号装置２との間のHD-SDI信号の伝送形態（本実施の形態では、メタデータ重畳暗号化AVデータの伝送形態）を示す値である。即ち、例えばHD-SDI Link Numberとして０が代入されていた場合、その０は、シングルリンク（１つのHD-SDIインタフェースによる伝送形態）か、或いは、デュアルリンク（２つのHD-SDIインタフェースによる形態）のLink-Aであることを示す。また例えば、HD-SDI Link Numberとして１が代入されていた場合、その１は、デュアルリンクのLink-Bであることを示す。
【００６０】
なお、当該フレームに挿入されたメタデータ６４−１，６４−２のELEKPに含まれる（より正確には、暗号化前のLEKPに含まれる）LE Key６１−Ｅは、当該フレームよりも後のフレームの暗号化に利用されるものである。即ち、当該フレームに利用されるLE Key６１−Ｅは、当該フレームよりも前のフレームに挿入されたメタデータ６４−１，６４−２のELEKPに含まれる（より正確には、暗号化前のLEKPに含まれる）。
【００６１】
図１に戻り、以上説明したように、本実施の形態では、メタデータ６４−１乃至６４−３が重畳された暗号化AVデータ（メタデータ重畳暗号化AVデータ）が、暗号化装置１により生成され、復号装置２に伝送（提供）される。
【００６２】
かかる復号装置２は、図１の例では、メタデータ抽出部２１と復号部２２とから構成される。
【００６３】
メタデータ抽出部２１は、暗号化装置１から提供されたメタデータ重畳暗号化AVデータから、メタデータ６４（本実施の形態では、メタデータ６４−１乃至６４−３）等の情報を抽出する。そして、メタデータ抽出部２１は、それらの抽出情報から、LE Key６１−Ｄ、AES input６２−Ｄ、Frame reset６３−Ｄを生成し、それらを復号部２２に提供する。LE Key６１−Ｄ、AES input６２−Ｄ、Frame reset６３−Ｄのそれぞれは、暗号化装置１で暗号化AVデータが生成される際に利用された、LE Key６１−Ｅ、AES input６２−Ｅ、Frame reset６３−Ｅのそれぞれが復元されたものである。従って、メタデータ抽出部２１は、LE Key６１−Ｅ、AES input６２−Ｅ、Frame reset６３−Ｅのそれぞれを復元して復号部２２に提供している、と捉えることもできる。
【００６４】
なお、メタデータ抽出部２１の詳細については、図５を参照して後述する。
【００６５】
復号部２２は、図１の例では、AES復号データ生成部４１とAVデータ復号部４２とから構成されている。
【００６６】
AES復号データ生成部４１は、メタデータ抽出部２１から提供されたLE Key６１−ＤとAES Input６２−Ｄとを用いて、暗号化AVデータ（AES暗号を利用して暗号化されたAVデータ）を直接復号するためのデータ（以下、AES復号データと称する）６６を生成し、AVデータ復号部４２に提供する。即ち、AES復号データ６６は、AES暗号データ６５に対応する復号用のデータである。
【００６７】
AVデータ復号部４２は、AES復号データ生成部４１から提供されたAES復号データを用いて、暗号化AVデータに対して復号処理を施し、その結果得られるAVデータ（復元されたAVデータ）を外部に出力する。その際、AVデータ復号部４２は、メタデータ抽出部２１から供給されるFrame reset６３−Ｄを利用して、暗号化AVデータをフレーム単位で復号する。
【００６８】
ここで、図５を参照して、メタデータ抽出部２１の詳細について説明する。即ち、図５は、メタデータ抽出部２１の詳細な構成例を示している。
【００６９】
図５の例では、メタデータ抽出部２１は、メタデータ抽出分離部１０１乃至LEFLAMEカウント値補正部１１２から構成されている。
【００７０】
メタデータ抽出分離部１０１は、暗号化装置１から提供されたメタデータ重畳暗号化AVデータから、メタデータ６４（本実施の形態では、図２乃至図４のメタデータ６４−１乃至６４−３）等の情報を抽出する。さらに、メタデータ抽出分離部１０１は、メタデータ６４を構成する各種情報を分離する。
【００７１】
具体的には例えば、図５の例では、LEKM１２１、Current LE_Key ID１２２、Next LE_Key ID１２３、Key Change Timing１２４、Frame/line reset１２９、HD-SDI Link number１３３、および、Current Frame Count１３４が、メタデータ抽出分離部１０１により抽出または分離される。
【００７２】
なお、Frame/line reset１２９は、Frame reset１３０とline reset１３１とから構成されている。また、上述したように、LEKM１２１とは、メタデータ６４−１，６４−２のUser dataの記述値のことであり、Current LE_Key ID１２２とは、メタデータ６４−３のCurrent Key IDの記述値のことであり、Next LE_Key ID１２３とは、メタデータ６４−３のNext Key IDの記述値のことであり、Key Change Timing１２４とは、メタデータ６４−３のKey Change Timingの記述値のことであり、HD-SDI Link number１３３とは、メタデータ６４−３のHD-SDI Link numberの記述値のことであり、Current Frame Count１３４とは、メタデータ６４−３のCurrent Frame Countの記述値のことである。
【００７３】
そして、LEKM１２１は、LEKP復元部１０２に提供される。Current LE_Key ID１２２とNext LE_Key ID１２３は、LEKPテーブル１０３に提供される。Key Change Timing１２４は、キーチェンジトリガ生成部１０４、キーチェンジタイミング補正部１１１、および、LEFLAMEカウント値補正部１１２のそれぞれに提供される。Frame reset１３０は、キーチェンジトリガ生成部１０４、および、LEFLAMEカウント値補正部１１２のそれぞれに提供される。line reset１３１は、カウンタ１０８に提供される。Frame reset１３０とline reset１３１からなるFrame/line reset１２９は（図１でいうFrame reset６３−Ｄとして）、復号部２２に提供される。HD-SDI Link number１３３は、レジスタ１０９に提供される。Current Frame Count１３４は、LEFLAMEカウント値補正部１１２に提供される。
【００７４】
LEKP復元部１０２は、LEKM１２１からLEKPを復元し、そのKey ID等と対応付けてLEKPテーブル１０３に格納する。即ち、LEKM１２１とは、上述したように、図２のメタデータ６４−１と図３のメタデータ６４−２のUser Dataの記述値のことである。このUser Dataには、ELEKP（図２と図３には、Elekp dataと記述されている）が含まれている。このELEKPは、上述したように、RSA暗号による暗号化処理をLEKPに対して施した結果得られるデータである。従って、LEKP復元部１０２は、LEKM１２１に含まれるELEKPに対して、その生成用の公開鍵のペア鍵（秘密鍵）を利用する復号処理を施し、その結果得られるLEKP（復元されたLEKP）を、そのKey ID等と対応付けてLEKPテーブル１０３に格納する。
【００７５】
このように、LEKPテーブル１０３には、１以上のLEKPのそれぞれが、自身を特定するKey ID等と対応付けられて格納される。LEKPテーブル１０３に格納されるLEKPは、上述したように、LE Key６１−Ｄ（復元された図１のLE Key６１-Ｅ）と、幾つかの補足情報とから構成されている。本実施の形態では、この補足情報には、図１のAES input６２−Ｅの構成要素のひとつであるLe_attribute_data１２６が含まれているとする。そこで、LEKPテーブル１０３は、レジスタ１０５から要求があったとき（後述するキーチェンジの指令後の所定のタイミングで）、Current LE_Key ID１２２と同一のKey IDを有するLEKPに含まれるLE Key６１−Ｄ（以下、Current LE Key６１−Ｄと称する）とLe_attribute_data１２６（以下、Current Le_attribute_data１２６と称する）、または、Next LE_Key ID１２３と同一のKey IDを有するLEKPに含まれるLE Key６１−Ｄ（以下、Next LE Key６１−Ｄと称する）とLe_attribute_data１２６（以下、Next Le_attribute_data１２６と称する）をレジスタ１０５に格納させる。
【００７６】
キーチェンジトリガ生成部１０４は、Frame reset１３０が提供される毎に、キーチェンジトリガ１２７をレジスタ１０５に提供する。具体的には例えば、このキーチェンジトリガ１２７として、キーチェンジの指令とキーチェンジの禁止の指令とが存在し、これらの指令のうちの何れか一方が、レジスタ１０５に提供されるとする。この場合、キーチェンジトリガ生成部１０４は、Key Change Timing１２４の値を監視し、その値が2'b00（＝０）となったときには、即ち、当該フレームがKey Change Timingとなったときには、キーチェンジトリガ１２７としてキーチェンジの指令をレジスタ１０５に提供し、それ以外の値のときは、キーチェンジトリガ１２７としてキーチェンジ禁止の指令をレジスタ１０５に提供する。
【００７７】
レジスタ１０５には、通常、Current LE Key６１−ＤおよびCurrent Le_attribute_data１２６が格納されている。
【００７８】
キーチェンジトリガ１２７としてキーチェンジの禁止の指令が提供されている限り、レジスタ１０５は、Current LE Key６１−Ｄを復号部２２に提供し、Current Le_attribute_data１２６をAES input生成部１１０に提供する。これにより、復号部２２においては、Current LE Key６１−Ｄが使用されて、当該フレーム（AES暗号により暗号化されたフレームデータ）が復号されることになる。
【００７９】
これに対して、キーチェンジトリガ１２７としてキーチェンジの指令が提供されると、レジスタ１０５は、記憶内容の更新をLEKPテーブル１０３に要求する。すると、上述したように、LEKPテーブル１０３は、レジスタ１０５から要求があった時点のNext LE Key６１−ＤとNext Le_attribute_data１２６をレジスタ１０５に格納させる。即ち、Next LE Key６１−ＤとNext Le_attribute_data１２６とのそれぞれが、キーチェンジ後における新たなCurrent LE Key６１―ＤとCurrent Le_attribute_data１２６とのそれぞれとしてレジスタ１０５に格納され、そして、Current LE Key６１−Ｄ（これまでNext LE Key６１−Ｄであったもの）が復号部２２に提供され、Current Le_attribute_data１２６（これまでNext Le_attribute_data１２６であったもの）がAES input生成部１１０に提供される。これにより、復号部２２においては、復号用のLE Key６１−ＤがこれまでのCurrent LE Key６１−ＤからNext LE Key６１−Ｄ（新たなCurrent LE Key６１−Ｄ）に更新されて、当該フレーム（AES暗号により暗号化されたフレームデータ）が復号されることになる。
【００８０】
カウンタ１０８は、line reset１３１が供給される毎に、カウント値を１ずつインクリメントし、そのカウント値をAES input生成部１１０に提供する。
【００８１】
レジスタ１０９は、HD-SDI Link Number１３３を保持し、適宜AES input生成部１１０に提供する。
【００８２】
このようにして、AES input生成部１１０には、レジスタ１０５からのLe_attribute_data１２６、後述するLEFLAMEカウント値補正部１１２からの補正後Current Frame Count１３５、メタデータ抽出分離部１０１からのLine number of HD SDI１３２、カウンタ１０８のカウント値、および、レジスタ１０９からのHD-SDI Link Number１３３が入力される。そこで、AES input生成部１１０は、Le_attribute_data１２６、補正後Current Frame Count１３５、Line number of HD SDI１３２、カウンタ１０８のカウント値、および、HD-SDI Link Number１３３を少なくとも含むAES input６２−Ｄを生成し（図１のAES input６２−Ｅを復元し）、復号部２２に提供する。
【００８３】
キーチェンジタイミング補正部１１１は、Key Change Timing１２４の推移パターンを監視し、その推移パターンが正常であるか否かを判定し、異常である（正常ではない）と判定した場合（かつ補正可能な場合）、Key Change Timingの補正指令を、キーチェンジトリガ生成部１０４に出力する。すると、キーチェンジトリガ生成部１０４は、Key Change Timingの補正を行う。
【００８４】
なお、キーチェンジグタイミング補正部１１１の詳細（その動作等）については、図６乃至図１９を参照して後述する。
【００８５】
LEFLAMEカウント値補正部１１２は、Key Change Timing１２４を参照しつつ、メタデータ抽出分離部１０１からのCurrent Frame Count１３４の推移パターンを監視し、その推移パターンが正常であるか否かを判定し、異常である（正常ではない）と判定した場合（かつ補正可能な場合）、Current Frame Count１３４の値を補正した後AES input生成部１１０に出力し、正常であると判定した場合、Current Frame Count１３４の値をそのまま（補正せずに）AES input生成部１１０に出力する。
【００８６】
ただし、以下、LE FRAMEカウント値補正部１１２からAES input生成部１１０へ出力される情報を、補正の有無を問わず、補正後Current Frame Count１３５と称する。換言すると、補正が行われないことを０補正であるとして、LE FRAMEカウント値補正部１１２からAES input生成部１１０へ出力される情報は全て、Current Frame Count１３４の値が補正された情報であると捉え、それゆえ、補正後Current Frame Count１３５と称する。即ち、上述したように、補正後Current Frame Count１３５が、LE FRAMEカウント値補正部１１２からAES input生成部１１０に提供される。
【００８７】
なお、LEFLAMEカウント値補正部１１２の詳細（その動作等）については、図２０乃至図２３を参照して後述する。
【００８８】
以上、本発明を適用した暗号復号システムの構成例について説明した。
【００８９】
ところで、図１の暗号復号システムにおいて、暗号化装置１により生成されたメタデータ重畳暗号化AVデータが、復号装置２に伝送される際に、例えば、メタデータ重畳暗号化AVデータのうちの、図４のメタデータ６４−３に伝送エラーが発生する恐れがある。
【００９０】
このような伝送エラーが発生した場合、図５のキーチェンジタイミング補正部１１１やLEFLAMEカウント値補正部１１２が復号装置２のメタデータ抽出部２１に設けられていないと、図６に示されるような問題点が発生してしまう。
【００９１】
即ち、本実施の形態では、上述したように、AES暗号によるAVデータの暗号化処理に使用されているLE Key(AES 鍵)６１−Ｅは、所定の更新間隔（ただし、最小更新間隔は1分)で更新される。この更新の様子の例が、図６に示されている。即ち、図６の例では、時刻t0eから、Key Change Timing-1の時刻t1eまでの間は、Key ID=XのLE Key６１−ＥでAVデータが暗号化され、時刻t1eになると、それ以降、次のKey Change Timing-2の時刻t2eまでの間は、Key ID=YのLE Key６１−ＥでAVデータが暗号化され、そして、時刻t2eになると、それ以降、Key ID=ZのLE Key６１−ＥでAVデータが暗号化されている。
【００９２】
この場合、復号装置２側では、時刻t0dから、Key ID=XのLE Key６１−Ｄで暗号化AVデータが復号されるとすると、Key Change Timing-1である時刻t1dまでに、Key ID=YのLE Key６１−Ｄが準備されつ。即ち、Key Change Timing-1である時刻t1dまでに、図５のLEKPテーブル１０３にKey ID=YのLE Key６１−Ｄが、Next LE Key６１-Ｄとして格納される。そして、時刻t1dになると、通常（伝送エラーが無い場合には）、Key ID=YのLE Key６１−Ｄが、LEKPテーブル１０３からレジスタ１０５に転送され、さらに、レジスタ１０５から復号部２２に提供される。これにより、復号部２２は、Key ID=YのLE Key６１−Ｄを利用して暗号化AVデータを復号することが可能になる。
【００９３】
このとき、Key Change Timing-1となったか否かの判定は、上述したように、キーチェンジトリガ生成部１０４により実行される。即ち、キーチェンジトリガ生成部１０４は、Key Change Timing１２４の値を監視し、その値が2'b00（＝０）となったとき、当該フレームがKey Changing Timingとなったと判定し、キーチェンジトリガ１２７としてキーチェンジの指令をレジスタ１０５に提供する。
【００９４】
このように、キーチェンジ（LE Key６１−Ｄの更新）は、Key Change Timing１２４の値が2'b00 となるフレーム（Key Change Timing１２４の値が2'b00であるメタデータ６４−３が重畳されたフレーム）でしか発生しない。
【００９５】
従って、メタデータ６４−３に伝送エラーが発生してしまい、キーチェンジトリガ生成部１０４がこの2'b00 という値を検出できなかった場合には、即ち、本来、Key Change Timing１２４の値が2'b00であるところ伝送エラーのためにそれとは別の値となり、その別の値が検出されてしまった場合には、キーチェンジトリガ生成部１０４は、キーチェンジトリガ１２７としてキーチェンジの指令をレジスタ１０５に提供することはできない。即ち、キーチェンジトリガ生成部１０４は、時刻t1dになっても、依然として、キーチェンジトリガ１２７としてキーチェンジ禁止の指令をレジスタ１０５に提供し続けることになる。これに伴い、図６に示されるように、次のKey Change Timing-2である時刻t2dまでの間、Key ID=XのLE Key６１−Ｄがレジスタ１０５から出力され続け、復号部２２に提供される続けることになる。その結果、復号部２２は、Key ID=YのLE Key６１−Ｅを利用して暗号化された結果得られる暗号化AVデータ（フレーム）を、Key ID=XのLE Key６１−Ｄというまったく別のAES鍵で復号してしまうことになり、その暗号化AVデータを正しく復号できなくなってしまう、という問題点が発生してしまう。
【００９６】
そこで、本発明人は、かかる問題点を解決すべく、次のような手法を発明した。即ち、本発明人が発明した手法とは、直前のフレームにおけるKey Change Timing１２４の値と、当該フレームにおける Key Change Timing１２４の値との推移パターン（連続性）が、正常なパターンであるか異常なパターンであるのかを判定し、異常なパターンであると判定した場合（かつ補正が可能な場合）、Key Change Timing１２４の値の補間を行うことで、LE Key６１−Ｄの更新タイミングを補正する、という手法である。
【００９７】
ここで、正常なパターンとは、図７に示されるパターン１乃至パターン４を言う。以下、直前のフレームにおけるKey Change Timing１２４の値と、当該フレームにおける Key Change Timing１２４の値との推移パターンを、（直前のフレームにおけるKey Change Timing１２４の値，当該フレームにおける Key Change Timing１２４の値）という形式で記述するとすると、パターン１乃至パターン４は次の通りとなる。即ち、（2'b11(=3) , 2'b11(=3) or 2'b10(=2)）がパターン１である。（2'b10(=2) , 2'b01(=1)）がパターン２である。（2'b01(=1) , 2'b00(=0)）がパターン３である。（2'b00(=0) , 2'b11(=3)）がパターン４である。
【００９８】
本実施の形態では、かかる手法がキーチェンジタイミング補正部１１１に適用されており、それゆえ、キーチェンジタイミング補正部１１１は、例えば図８と図９のフローチャートに従った処理を実行する。即ち、図８と図９は、かかる手法を実現させる処理の一例であって、キーチェンジタイミング補正部１１１の処理の一例を示すフローチャートである。
【００９９】
ただし、図８と図９の処理は、当該フレームについての処理である。即ち、図８と図９の処理は、暗号化AVデータを構成する各フレーム（データ）毎に１回ずつ実行される。具体的には、第１のフレームが当該フレームとなったときに、図８と図９の処理が１回実行され、その後、第１のフレームの次の第２のフレームが当該フレームとなったときに、図８と図９の処理が１回実行される。
【０１００】
図８のステップＳ１において、キーチェンジタイミング補正部１１１は、当該フレームのKey Change Timing１２４の値が2'b11(=3)であるか否かを判定する。
【０１０１】
ステップＳ１において、当該フレームのKey Change Timing１２４の値が2'b11(=3)であると判定された場合、処理はステップＳ２に進む。ステップＳ２において、キーチェンジタイミング補正部１１１は、直前フレームのKey Change Timing１２４の値が2'b11(=3) or 2'b00(=0)であるか否かを判定する。
【０１０２】
ステップＳ２において、直前フレームのKey Change Timing１２４の値が2'b11(=3) or 2'b00(=0)であると判定された場合、処理は図９のステップＳ９に進む。ステップＳ９において、キーチェンジタイミング補正部１１１は、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、正常パターンである（いまの場合、図７のパターン１またはパターン４である）と判定する。これにより、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１０３】
これに対して、図８のステップＳ２において、直前フレームのKey Change Timing１２４の値が2'b11(=3) or 2'b00(=0)ではないと判定された場合、即ち、2'b10(=2) or 2'b01(=1)と判定された場合、処理は図９のステップＳ８に進む。ステップＳ８において、キーチェンジタイミング補正部１１１は、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターン（直前フレームが当該フレームであったときのキーチェンジタイミング補正部１１１の処理、即ち、前回の処理で判定された推移パターン）が異常であったか否かを判定する。
【０１０４】
ステップＳ８において、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが異常であったと判定された場合、処理はステップＳ１０に進む。ステップＳ１０において、キーチェンジタイミング補正部１１１は、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定する。これにより、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１０５】
これに対して、ステップＳ８において、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが正常であった（異常ではなかった）と判定された場合、処理はステップＳ１１に進む。ステップＳ１１において、キーチェンジタイミング補正部１１１は、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、異常パターンであり（図７のパターン１乃至４の何れにも該当せず）、かつ、補正可能であると判定し、ステップＳ１２において、当該フレームのKey Changing Timing１２４の値を補間する。これにより、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。なお、ステップＳ１２の処理でどのような値に補間するのかについては、図１０乃至図１８を参照して後述する。
【０１０６】
図８に戻り、当該フレームのKey Change Timing１２４の値が2'b10(=2)，2'b01(=1)，2'b00(=0)のうちの何れかの場合、ステップＳ１においてＮＯであると判定されて、処理はステップＳ３に進む。ステップＳ３において、キーチェンジタイミング補正部１１１は、当該フレームのKey Change Timing１２４の値が2'b10(=2)であるか否かを判定する。
【０１０７】
ステップＳ３において、当該フレームのKey Change Timing１２４の値が2'b10(=2)であると判定された場合、処理はステップＳ４に進む。ステップＳ４において、キーチェンジタイミング補正部１１１は、直前フレームのKey Change Timing１２４の値が2'b11(=3)であるか否かを判定する。
【０１０８】
ステップＳ４において、直前フレームのKey Change Timing１２４の値が2'b11(=3)であると判定された場合、図９のステップＳ９において、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、正常パターンである（いまの場合、図７のパターン１である）と判定される。これにより、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１０９】
これに対して、直前フレームのKey Change Timing１２４の値が2'b10(=2),2'b01(=1),2'b00(=0)のうちの何れかの場合、ステップＳ４においてＮＯである（直前フレームのKey Change Timing１２４の値が2'b11(=3)ではない）と判定されて、処理は図９のステップＳ８に進み、それ以降の処理が繰り返される。即ち、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが異常であった場合、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。これに対して、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが正常であった場合、当該フレームのKey Changing Timing１２４の値が補間された後、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１１０】
また、当該フレームのKey Change Timing１２４の値が2'b01(=1)，2'b00(=0)のうちの何れかの場合、図８のステップＳ３においてＮＯであると判定されて、処理はステップＳ５に進む。ステップＳ５において、キーチェンジタイミング補正部１１１は、当該フレームのKey Change Timing１２４の値が2'b01(=1)であるか否かを判定する。
【０１１１】
ステップＳ５において、当該フレームのKey Change Timing１２４の値が2'b01(=1)であると判定された場合、処理はステップＳ６に進む。ステップＳ６において、キーチェンジタイミング補正部１１１は、直前フレームのKey Change Timing１２４の値が2'b10(=2)であるか否かを判定する。
【０１１２】
ステップＳ６において、直前フレームのKey Change Timing１２４の値が2'b10(=2)であると判定された場合、図９のステップＳ９において、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、正常パターンである（いまの場合、図７のパターン２である）と判定される。これにより、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１１３】
これに対して、直前フレームのKey Change Timing１２４の値が2'b11(=3),2'b01(=1),2'b00(=0)のうちの何れかの場合、図８のステップＳ６においてＮＯである（直前フレームのKey Change Timing１２４の値が2'b10(=2)ではない）と判定されて、処理は図９のステップＳ８に進み、それ以降の処理が繰り返される。即ち、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが異常であった場合、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。これに対して、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが正常であった場合、当該フレームのKey Changing Timing１２４の値が補間された後、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１１４】
また、当該フレームのKey Change Timing１２４の値が2'b00(=0)である場合、ステップＳ５においてＮＯであると判定されて、処理はステップＳ７に進む。ステップＳ７において、キーチェンジタイミング補正部１１１は、直前フレームのKey Change Timing１２４の値が2'b01(=1)であるか否かを判定する。
【０１１５】
ステップＳ７において、直前フレームのKey Change Timing１２４の値が2'b01(=1)であると判定された場合、図９のステップＳ９において、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは、正常パターンである（いまの場合、図７のパターン３である）と判定される。これにより、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１１６】
これに対して、直前フレームのKey Change Timing１２４の値が2'b11(=3),2'b10(=2),2'b00(=0)のうちの何れかの場合、図８のステップＳ７においてＮＯである（直前フレームのKey Change Timing１２４の値が2'b01(=1)ではない）と判定されて、処理は図９のステップＳ８に進み、それ以降の処理が繰り返される。即ち、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが異常であった場合、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。これに対して、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが正常であった場合、当該フレームのKey Changing Timing１２４の値が補間された後、当該フレームについてのキーチェンジタイミング補正部１１１の処理は終了となる。
【０１１７】
以下、図１０乃至図１９の具体例を参照して、当該フレームについてのキーチェンジタイミング補正部１１１の処理についてさらに説明する。
【０１１８】
即ち、図１０乃至図１９のそれぞれは、当該フレームについてのキーチェンジタイミング補正部１１１の処理結果の具体例を示している。ただし、図１０乃至図１８のそれぞれは、上述した図８と図９のフローチャートに従ったキーチェンジタイミング補正部１１１の処理結果の具体例を示しているが、図１９は、図８と図９のフローチャートとは異なる手法に従ったキーチェンジタイミング補正部１１１の処理結果の具体例を示している。なお、図８と図９のフローチャートとは異なる手法については、後述する図１９の説明の際に併せて説明する。
【０１１９】
図１０乃至図１９において、上の図は、各フレームのKey Change Timing１２４のそれぞれの値の時間推移を示している。図１０乃至図１９の上の図において、×（バツ印）がされている値が、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンが正常時の値（正常な値）を示しているが、各例の場合、伝送エラーにより、Key Change Timing１２４の値がその×（バツ印）の上に記述される値になってしまったことを意味している。そして、その×（バツ印）の下の値が、キーチェンジタイミング補正部１１１のステップＳ１２（図９）の処理で補間される値を示している。
【０１２０】
また、図１０乃至図１９において、下の図は、エラーフラグのタイミングチャートを示している。エラーフラグとは、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンが異常であるか否かを示すフラグであって、異常な場合には１となり正常な場合には０となるフラグである。即ち、当該フレームにおいてエラーフラグが立っていること（1であること）は、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常である（図７のパターン１乃至４の何れにも該当しない）ことを示す。従って、直前フレームにおいてエラーフラグが立っている場合（1である場合）、図９のステップＳ８の処理では、２つ前のフレームと直前フレームとのKey Change Timing１２４の推移パターンが異常であった（ＹＥＳである）と判定されて、処理はステップＳ１０に進むことになる。
【０１２１】
図１０は、直前フレームのKey Change Timing１２４の値は0(2'b00)とされており、当該フレームのKey Change Timing１２４の値は、正常であれば3(2'b11)であるところ（図７のパターン４参照）、伝送エラーのために2(2'b10)，1(2'b01)，0(2'b00)のうちの何れかになってしまった例を示している。
【０１２２】
図１０の例の場合、ステップＳ１でＮＯであると判定されて、その後、ステップＳ３ＹＥＳ，Ｓ４ＮＯを経由してステップＳ８に進むか、ステップＳ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が３に補間される。即ち、図１０の例の場合、直前フレームのKey Changing Timing１２４の値0(2'b00)が信用されて、図７のパターン４となるように、当該フレームのKey Changing Timing１２４の値が3(2'b11)に補間されるのである。
【０１２３】
図１１は、（１回目に対する）直前フレームのKey Change Timing１２４の値が、正常であれば3(2'b11)であるところ、伝送エラーのために2(2'b10)になってしまい、その後伝送エラーが解消し、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常な3(2'b11)に戻った例を示している。
【０１２４】
図１１の例の場合、（１回目に対する）２つ前のフレームと直前フレームのKey Change Timing１２４の推移パターンは（3(2'b11) ， 2(2'b10)）であり、この推移パターンは図７の正常パターンのうちのパターン１に該当するため、正常であると判定されることになる。
【０１２５】
従って、（１回目に対する）当該フレームについてのキーチェンジタイミング補正部１１１の処理の際にはじめて、（１回目に対する）直前フレームと当該フレームのKey Change Timing１２４の推移パターンは異常であると判定されることになる。
【０１２６】
具体的には、１回目のキーチェンジタイミング補正部１１１の処理では、ステップＳ１ＹＥＳ，Ｓ２ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が１に補間される。即ち、図１１の例の場合、直前フレームのKey Changing Timing１２４の値2(2'b10)が信用されて（実際には伝送エラーのため異常な値であるが）、図７のパターン２となるように、当該フレームのKey Changing Timing１２４の値が1(2'b01)に補間されるのである。
【０１２７】
その後、次のフレームが当該フレームとなり、２回目のキーチェンジタイミング補正部１１１の処理として次のような処理が実行される。即ち、ステップＳ１ＹＥＳ，Ｓ２ＮＯを経由してステップＳ８に進む。今度は、ステップＳ８でＹＥＳと判定されて、ステップＳ１０の処理で、（２回目に対する）直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定され、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに3(2'b11)がそのまま採用されることになる。
【０１２８】
なお、この場合、補間された結果は間違っているが、Key Change Timing１２４の値が０(2'b00)となること、即ち、Key Change Timingであるとして復号用のLE Key６１−Ｄが更新されることとは無関係であるため特に問題は生じない。なお、ここで言う無関係とは、Key Change Timing１２４の値を間違って0(2'b00)に補間することはないという意味であり、Key Change Timing１２４の値として0(2'b00)を検出できないという意味ではない。
【０１２９】
図１２は、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常であれば3(2'b11)であるところ、伝送エラーのために1(2'b01) or 0(2'b00)になってしまった例を示している。
【０１３０】
図１２の例の場合、１回目のキーチェンジタイミング補正部１１１の処理では、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。即ち、図１２の例の場合、直前フレームのKey Changing Timing１２４の値3(2'b11)が信用されて、図７のパターン１のうちの(3(2'b11),2(2'b10))のパターンとなるように、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。
【０１３１】
その後、次のフレームが当該フレームとなり、２回目のキーチェンジタイミング補正部１１１の処理として次のような処理が実行される。即ち、ステップＳ１ＹＥＳ，Ｓ２ＮＯを経由してステップＳ８に進む。今度は、ステップＳ８でＹＥＳと判定されて、ステップＳ１０の処理で、（２回目に対する）直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定され、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに3(2'b11)がそのまま採用されることになる。
【０１３２】
なお、この場合、補間された結果は間違っているが、Key Change Timing１２４の値が０(2'b00)となること、即ち、Key Change Timingであるとして復号用のLE Key６１−Ｄが更新されることとは無関係であるため特に問題は生じない。なお、ここで言う無関係とは、Key Change Timing１２４の値を間違って０(2'b00)に補間することはないという意味であり、Key Change Timing１２４の値として０(2'b00)を検出できないという意味ではない。
【０１３３】
図１３は、（１回目に対する）直前フレームのKey Change Timing１２４の値が、正常であれば3(2'b11)であるところ、伝送エラーのために2(2'b10)になってしまい、その後伝送エラーが解消し、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常な2(2'b10)に戻った例を示している。
【０１３４】
図１３の例の場合、（１回目に対する）２つ前のフレームと直前フレームのKey Change Timing１２４の推移パターンは（3(2'b11) ， 2(2'b10)）であり、この推移パターンは図７の正常パターンのうちのパターン１に該当するため、正常であると判定されることになる。
【０１３５】
従って、（１回目に対する）当該フレームについてのキーチェンジタイミング補正部１１１の処理の際にはじめて、（１回目に対する）直前フレームと当該フレームのKey Change Timing１２４の推移パターンは異常であると判定されることになる。
【０１３６】
具体的には、１回目のキーチェンジタイミング補正部１１１の処理では、ステップＳ１ＮＯ，Ｓ３ＹＥＳ，Ｓ４ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が１(2'b01)に補間される。即ち、図１３の例の場合、直前フレームのKey Changing Timing１２４の値2(2'b10)が信用されて（実際には補間された値が間違っているが）、図７のパターン２となるように、当該フレームのKey Changing Timing１２４の値が1(2'b01)に補間される。
【０１３７】
その後、次のフレームが当該フレームとなり、２回目のキーチェンジタイミング補正部１１１の処理として次のような処理が実行される。即ち、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進む。今度は、ステップＳ８でＹＥＳと判定されて、ステップＳ１０の処理で、（２回目に対する）直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定され、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに1(2'b01)がそのまま採用されることになる。
【０１３８】
なお、この場合、補間された結果は間違っているが、Key Change Timing１２４の値が０(2'b00)となること、即ち、Key Change Timingであるとして復号用のLE Key６１−Ｄが更新されることとは無関係であるため特に問題は生じない。なお、ここで言う無関係とは、Key Change Timing１２４の値を間違って０(2'b00)に補間することはないという意味であり、Key Change Timing１２４の値として０(2'b00)を検出できないという意味ではない。
【０１３９】
図１４は、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常であれば3(2'b11)であるところ、伝送エラーのために1(2'b01) or 0(2'b00)になってしまった例を示している。
【０１４０】
図１４の例の場合、１回目のキーチェンジタイミング補正部１１１の処理では、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。即ち、図１４の例の場合、直前フレームのKey Changing Timing１２４の値3(2'b11)が信用されて、図７のパターン１のうちの(3(2'b11),2(2'b10))のパターンとなるように、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。
【０１４１】
その後、次のフレームが当該フレームとなり、２回目のキーチェンジタイミング補正部１１１の処理として次のような処理が実行される。即ち、ステップＳ１ＮＯ，Ｓ３ＹＥＳ，Ｓ４ＮＯを経由してステップＳ８に進む。今度は、ステップＳ８でＹＥＳと判定されて、ステップＳ１０の処理で、（２回目に対する）直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定され、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに2(2'b10)がそのまま採用されることになる。
【０１４２】
なお、この場合、補間された結果は間違っているが、Key Change Timing１２４の値が０(2'b00)となること、即ち、Key Change Timingであるとして復号用のLE Key６１−Ｄが更新されることとは無関係であるため特に問題は生じない。なお、ここで言う無関係とは、Key Change Timing１２４の値を間違って０(2'b00)に補間することはないという意味であり、Key Change Timing１２４の値として０(2'b00)を検出できないという意味ではない。
【０１４３】
図１５は、（１回目に対する）直前フレームのKey Change Timing１２４の値が、正常であれば2(2'b01)であるところ、伝送エラーのために3(2'b11)になってしまい、その後伝送エラーが解消し、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常な1(2'b01)に戻った例を示している。
【０１４４】
図１５の例の場合、（１回目に対する）２つ前のフレームと直前フレームのKey Change Timing１２４の推移パターンは（3(2'b11) ， 3(2'b11)）であり、この推移パターンは図７の正常パターンのうちのパターン１に該当するため、正常であると判定されることになる。
【０１４５】
従って、（１回目に対する）当該フレームについてのキーチェンジタイミング補正部１１１の処理の際にはじめて、（１回目に対する）直前フレームと当該フレームのKey Change Timing１２４の推移パターンは異常であると判定されることになる。
【０１４６】
具体的には、１回目のキーチェンジタイミング補正部１１１の処理では、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。即ち、図１５の例の場合、直前フレームのKey Changing Timing１２４の値3(2'b11)が信用されて（実際には伝送エラーのため異常な値であるが）、図７のパターン１のうちの(3(2'b11),2(2'b10))のパターンとなるように、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。
【０１４７】
その後、次のフレームが当該フレームとなり、２回目のキーチェンジタイミング補正部１１１の処理として次のような処理が実行される。即ち、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。今度は、ステップＳ８でＹＥＳと判定されて、ステップＳ１０の処理で、（２回目に対する）直前フレームと当該フレームとのKey Change Timing１２４の推移パターンは異常パターンであるが（図７のパターン１乃至４の何れにも該当しないが）、補正不可能であると判定され、当該フレームのKey Changing Timing１２４の値は補間（補正）されずに0(2'b00)がそのまま採用されることになる。
【０１４８】
なお、この場合、補間された結果は間違っているが、Key Change Timing１２４の値が０(2'b00)となること、即ち、Key Change Timingであるとして復号用のLE Key６１−Ｄが更新されることとは無関係であるため特に問題は生じない。なお、ここで言う無関係とは、Key Change Timing１２４の値を間違って０(2'b00)に補間することはないという意味であり、Key Change Timing１２４の値として０(2'b00)を検出できないという意味ではない。
【０１４９】
図１６は、直前フレームのKey Change Timing１２４の値は3(2'b11)とされており、当該フレームのKey Change Timing１２４の値は、正常であれば2(2'b10)であるところ（図７のパターン１参照）、伝送エラーのために1(2'b01) or 0(2'b00)となってしまった例を示している。
【０１５０】
図１６の例の場合、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間される。即ち、図１６の例の場合、直前フレームのKey Changing Timing１２４の値3(2'b11)が信用されて、図７のパターン１のうちの(3(2'b11),2(2'b10))のパターンとなるように、当該フレームのKey Changing Timing１２４の値が2(2'b10)に補間されるのである。
【０１５１】
図１７は、直前フレームのKey Change Timing１２４の値は2(2'b10)とされており、当該フレームのKey Change Timing１２４の値は、正常であれば1(2'b01)であるところ（図７のパターン２参照）、伝送エラーのために3(2'b11) , 2(2'b10) , ０(2'b00)のうちの何れかとなってしまった例を示している。
【０１５２】
図１７の例の場合、ステップＳ１ＹＥＳ，Ｓ２ＮＯを経由してステップＳ８に進むか、Ｓ１ＮＯ，Ｓ３ＹＥＳ，Ｓ４ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＮＯ，Ｓ７ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が１(2'b01)に補間される。即ち、図１７の例の場合、直前フレームのKey Changing Timing１２４の値2(2'b10)が信用されて、図７のパターン２となるように、当該フレームのKey Changing Timing１２４の値が1(2'b01)に補間されるのである。
【０１５３】
図１８は、直前フレームのKey Change Timing１２４の値は1(2'b01)とされており、当該フレームのKey Change Timing１２４の値は、正常であれば0(2'b00)であるところ（図７のパターン３参照）、伝送エラーのために3(2'b11) , 2(2'b10) , 1(2'b10)のうちの何れかとなってしまった例を示している。
【０１５４】
図１８の例の場合、ステップＳ１ＹＥＳ，Ｓ２ＮＯを経由してステップＳ８に進むか、Ｓ１ＮＯ，Ｓ３ＹＥＳ，Ｓ４ＮＯを経由してステップＳ８に進むか、或いは、ステップＳ１ＮＯ，Ｓ３ＮＯ，Ｓ５ＹＥＳ，Ｓ６ＮＯを経由してステップＳ８に進む。そして、ステップＳ８でＮＯと判定されて、ステップＳ１１の処理後、ステップＳ１２の処理で、当該フレームのKey Changing Timing１２４の値が0(2'b00)に補間される。即ち、図１８の例の場合、直前フレームのKey Changing Timing１２４の値1(2'b01)が信用されて、図７のパターン３となるように、当該フレームのKey Changing Timing１２４の値が０に補間されるのである。
【０１５５】
ところで、伝送エラーによるKey Changing Timing１２４の値の補間は、本実施の形態では、当該フレームと直前フレームとにおけるKey Changing Timing１２４の推移パターン（相関）を利用しているが、本実施の形態に限定されず、さらに長期の推移パターン（さらに複数のフレームにまたがるKey Changing Timing１２４推移パターン）を利用することもできる。
【０１５６】
しかしながら、かかる長期の推移パターンを利用しても、伝送エラーに対する補間能力が上がるわけではない。
【０１５７】
そればかりか、かかる長期の推移パターンを利用すると、Key Change Timing１２４の値が本来0（2'b00）となるはずのフレームが当該フレームとなったときに、その当該フレームのKey Change Timing１２４の値を誤訂正してしまう（０以外の値に補間してしまう）可能性がある、という問題が発生してしまう。この問題が発生すると、復号用のLE Key６１−Ｄの更新タイミングを逸し、次のLE Key６１−Ｄの更新タイミングまで( min 1分)の間コンテンツの復号を正しく行うことができなくなってしまうという重大事故につながる。
【０１５８】
従って、伝送エラーによるKey Changing Timing１２４の値の補間として、本実施の形態以上に、即ち、当該フレームと直前のフレームとの２フレーム以上に、Key Change Timing１２４の値の相関（推移パターン）を利用することは無意味である。
【０１５９】
ここで、さらに長期の推移パターンを利用すると発生してしまう上述した問題について、図１９を参照してさらに説明する。
【０１６０】
即ち、図１９は、２つ前のフレーム、直前フレーム、および当該フレームといった連続する３つのフレームにおけるKey Changing Timing１２４の値の推移パターンを利用して、当該フレームにおけるKey Changing Timing１２４の値を補間する例を示している。
【０１６１】
具体的には、図１９は、（１回目に対する）直前フレームのKey Change Timing１２４の値が、正常であれば2(2'b10)であるところ、伝送エラーのために3(2'b11)になってしまい、また、（１回目に対する）当該フレームのKey Change Timing１２４の値が、正常であれば1(2'b01)であるところ、伝送エラーのために0(2'b00)になってしまった例を示している。
【０１６２】
なお、以下、２つ前のフレーム、直前フレーム、および当該フレームといった連続する３つのフレームにおけるKey Changing Timing１２４の値の推移パターンを、当該フレームにおける推移パターンと称し、また、（２つ前のフレームにおけるKey Changing Timing１２４の値  ，  直前フレームにおけるKey Changing Timing１２４の値  ，  当該フレームにおけるKey Changing Timing１２４の値）と記述する。
【０１６３】
この場合、次のステップＳａ乃至Ｓｉの一連の処理が実行される。
【０１６４】
ステップＳａとは、連続性チェックを行う処理、即ち、（１回目に対する）当該フレームにおける推移パターンが正常であるか否かを判定する処理である。図１９の例では、（１回目に対する）当該フレームにおける推移パターンは(3,3,0)であることから、このステップＳａの処理で、エラーと判定される。
【０１６５】
ステップＳｂとは、（１回目に対する）２つ前のフレーム（が当該フレームだったとき）における推移パターンがエラーであったか否かを判定する処理である。図１９の例では、（１回目に対する）２つ前のフレームにおけるエラーフラグは立っていない（０である）ので、エラーはなかったと判定される処理である。
【０１６６】
ステップＳｃとは、連続性チェックでエラーであると判定され、かつ、２つ前のフレームにおける推移パターンがエラーでなかったと判定されたことから、補正可能と判定して（図９のステップＳ１１に相当する処理）、当該フレームのKey Changing Timing１２４の値を補間する（図９のステップＳ１２に相当する処理）処理である。図１９の例では、２つ前のフレームと直前フレームとのKey Changing Timing１２４の値がそれぞれ信用されて（実際には直前フレームの値は伝送エラーのため異常な値であるが）、Key Changing Timing１２４の値が２（2'b10）に補間される。
【０１６７】
ステップＳｄとは、連続性チェックを行う処理、即ち、（２回目に対する）当該フレームにおける推移パターンが正常であるか否かを判定する処理である。図１９の例では、（２回目に対する）当該フレームにおける推移パターンは(3,2,0)であることから、このステップＳｄの処理で、エラーと判定される。
【０１６８】
ステップＳｅとは、（２回目に対する）２つ前のフレーム（が当該フレームだったとき）における推移パターンがエラーであったか否かを判定する処理である。図１９の例では、（２回目に対する）２つ前のフレームにおけるエラーフラグは立っていない（０である）ので、エラーはなかったと判定される処理である。
【０１６９】
ステップＳｆとは、連続性チェックでエラーであると判定され、かつ、２つ前のフレームにおける推移パターンがエラーでなかったと判定されたことから、補正可能と判定して（図９のステップＳ１１に相当する処理）、当該フレームのKey Changing Timing１２４の値を補間する（図９のステップＳ１２に相当する処理）処理である。図１９の例では、２つ前のフレームと直前フレームとのKey Changing Timing１２４の値がそれぞれ信用されて（実際には２つ前のフレームの値は伝送エラーのため異常な値であり、直前フレームの値は誤訂正された値であるが）、Key Changing Timing１２４の値が１（2'b01）に補間されてしまう。
【０１７０】
ステップＳｇとは、連続性チェックを行う処理、即ち、（３回目に対する）当該フレームにおける推移パターンが正常であるか否かを判定する処理である。図１９の例では、（３回目に対する）当該フレームにおける推移パターンは(2,1,3)であることから、このステップＳｇの処理で、エラーと判定される。
【０１７１】
ステップＳｈとは、（３回目に対する）２つ前のフレーム（が当該フレームだったとき）における推移パターンがエラーであったか否かを判定する処理である。図１９の例では、（３回目に対する）２つ前のフレームにおけるエラーフラグは立っている（１である）ので、エラーであったと判定される処理である。
【０１７２】
ステップＳｉとは、連続性チェックでエラーであると判定され、かつ、２つ前のフレームにおける推移パターンがエラーであったと判定されたことから、補正不可能と判定して、当該フレームのKey Changing Timing１２４の値を補間せずにそのまま値を採用する（図９のステップＳ１０に相当する処理）処理である。図１９の例では、Key Changing Timing１２４の値は３（2'b11）がそのまま採用される。
【０１７３】
以上説明したように、Key Change Timing１２４の値が本来0（2'b00）でなければいけいないフレームが当該フレームとなったとき（図１９の例では２回目のとき）に、その当該フレームのKey Change Timing１２４の値を誤訂正をしてしまう（図１９の例では１（2'b01）に補間してしまう）、という上述した問題が発生してしまう。この問題が発生すると、上述したように、それ以降、復号用のLE Key６１−Ｄの更新タイミングを逸し（Key Change Timing１２４の値が0（2'b00）とならずに）、次のLE Key６１−Ｄの更新タイミングまで( min 1分)の間コンテンツの復号を正しく行うことができなくなってしまうという重大事故につながってしまうのである。
【０１７４】
以上、キーチェンジタイミング補正部１１１（図５）の処理例について説明した。
【０１７５】
ところで、図５のKey Change Timing１２４の値とCurrent Frame Count１３４（Count Link Encryption Frame Count１３４）の値との間には、図２０に示される関係が存在する。即ち、図２０は、Key Change Timing１２４とCurrent Frame Count１３４との関係を示す図である。
【０１７６】
図２０に示されるように、Current Frame Count１３４の値は、Key Change Timing１２４の値が0(2'b00)となるフレームが当該フレームとなったときに、0にリセットされ、以降 フレーム毎に 1 ずつインプリメントされていく。
【０１７７】
また、メタデータ重畳暗号化AVデータのうちの、図４のメタデータ６４−３に伝送エラーが発生した場合、メタデータ６４−３には、Key Change Timing１２４とともに、Current Frame Count１３４も存在するため、Current Frame Count１３４の値が異常となることもある。
【０１７８】
従って、本実施の形態では、上述したキーチェンジタイミング補正部１１１（図５）の処理によってKey Change Timing１２４の値が補間されるのと同様に、Current Frame Count１３４の値の補間も必要になる。
【０１７９】
そこで、本発明人は、上述したKey Change Timing１２４の値の補間の手法に加えて、さらに、Current Frame Count１３４の値の補間の手法として、次のような手法を発明した。即ち、本発明人が発明したCurrent Frame Count１３４の値の補間の手法とは、Key Change Timing１２４の値が0(2'b00)となるフレームが当該フレームの場合に伝送エラーが発生したと判定されるときには、当該フレームのCurrent Frame Count１３４の補間する値を、Key Change Timing１２４の値から決定し、Key Change Timing１２４の値が0(2'b00)でないフレームが当該フレームの場合に伝送エラーが発生したと判定されるときには、Current Frame Count１３４の補間する値を、直前フレームのCurrent Frame Count１３４の値から決定する、という手法である。
【０１８０】
本実施の形態では、かかる手法がLEFLAMEカウント値補正部１１２（図５）に適用されており、それゆえ、LEFLAMEカウント値補正部１１２は、例えば図２１のフローチャートに従った処理を実行する。即ち、図２１は、かかる手法を実現させる処理の一例であって、LEFLAMEカウント値補正部１１２の処理の一例を示すフローチャートである。
【０１８１】
ただし、図２１の処理は、当該フレームについての処理である。即ち、図２１の処理は、暗号化AVデータを構成する各フレーム（データ）毎に１回ずつ実行される。具体的には、第１のフレームが当該フレームとなったときに、図２１の処理が１回実行され、その後、第１のフレームの次の第２のフレームが当該フレームとなったときに、図２１の処理が１回実行される。
【０１８２】
ステップＳ２１において、LEFLAMEカウント値補正部１１２は、当該フレームのCurrent Frame Count１３４の値が0であるか否かを判定する。
【０１８３】
ステップＳ２１において、当該フレームのCurrent Frame Count１３４の値が0ではない（それ以外の値である）と判定された場合、処理はステップＳ２２に進む。ステップＳ２２において、LEFLAMEカウント値補正部１１２は、直前フレームのCurrent Frame Count１３４の値  ＝  当該フレームのCurrent Frame Count１３４の値  −  １であるか否か、即ち、直前フレームのCurrent Frame Count１３４の値が、当該フレームのCurrent Frame Count１３４の値より１小さい値となっているか否かを判定する。
【０１８４】
ステップＳ２２において、直前フレームのCurrent Frame Count１３４の値  ＝  当該フレームのCurrent Frame Count１３４の値  −  １である、即ち、直前フレームのCurrent Frame Count１３４の値が、当該フレームのCurrent Frame Count１３４の値より１小さい値となっていると判定された場合、処理はステップＳ２８に進む。
【０１８５】
ステップＳ２８において、LEFLAMEカウント値補正部１１２は、直前フレームと当該フレームとのCurrent Frame Count１３４の推移パターンは、正常パターンであると判定する。これにより、当該フレームのCurrent Frame Count１３４はそのまま（０補正されて）、補正後Current Frame Count１３５としてAES Input生成部１１０に提供されて、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。
【０１８６】
これに対して、ステップＳ２２において、直前フレームのCurrent Frame Count１３４の値  ＝  当該フレームのCurrent Frame Count１３４の値  −  １ではない、即ち、直前フレームのCurrent Frame Count１３４の値が、当該フレームのCurrent Frame Count１３４の値より１小さい値とは別の値となっていると判定された場合、処理はステップＳ２４に進む。
【０１８７】
ステップＳ２４において、LEFLAMEカウント値補正部１１２は、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターン（直前フレームが当該フレームであったときのLEFLAMEカウント値補正部１１２の処理、即ち、前回の処理で判定された推移パターン）は、異常であったか否かを判定する。
【０１８８】
ステップＳ２４において、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターンは異常であったと判定された場合、処理はステップＳ２５に進む。ステップＳ２５において、LEFLAMEカウント値補正部１１２は、直前フレームと当該フレームとのCurrent Frame Count１３４の推移パターンは異常であるが、補正不可能であると判定する。これにより、当該フレームのCurrent Frame Count１３４の値はそのまま（０補正されて）、補正後Current Frame Count１３５としてAES Input生成部１１０に提供されて、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。
【０１８９】
これに対して、ステップＳ２４において、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターンは正常であった（異常ではなかった）と判定された場合、処理はステップＳ２６に進む。ステップＳ２６において、LEFLAMEカウント値補正部１１２は、直前フレームと当該フレームとのCurrent Frame Count１３４の推移パターンは異常であって、補正可能であると判定する。そして、ステップＳ２７において、LEFLAMEカウント値補正部１１２は、当該フレームのCurrent Frame Count１３４の値を補間する。なお、ステップＳ２７の処理でどのような値に補間するのかについては、基本的に上述した手法に従うが、その具体例については図２２と図２３を参照して後述する。
【０１９０】
ステップＳ２７の処理結果、即ち、当該フレームのCurrent Frame Count１３４の補間後の値は、補正後Current Frame Count１３５としてAES Input生成部１１０に提供される。これにより、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。
【０１９１】
また、ステップＳ２１において、当該フレームのCurrent Frame Count１３４の値が0であると判定された場合、処理はステップＳ２３に進む。ステップＳ２３において、LEFLAMEカウント値補正部１１２は、当該フレームのKey Change Timing１２４の値が0(2'b00)であるか否かを判定する。
【０１９２】
ステップＳ２３において、当該フレームのKey Change Timing１２４の値が0(2'b00)であると判定された場合、処理はステップＳ２８に進む。すると、上述したように、ステップＳ２８の処理が実行されて、当該フレームのCurrent Frame Count１３４はそのまま（０補正されて）、補正後Current Frame Count１３５としてAES Input生成部１１０に提供されて、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。
【０１９３】
これに対して、ステップＳ２４において、当該フレームのKey Change Timing１２４の値が0(2'b00)ではないと判定された場合、即ち、3(2'b11),2(2'b10),1(2'b01)のうちの何れかであると判定された場合、処理はステップＳ２４に進み、それ以降の処理が繰り返される。
【０１９４】
即ち、この場合、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターンが異常であったときには、当該フレームのCurrent Frame Count１３４はそのまま（０補正されて）、補正後Current Frame Count１３５としてAES Input生成部１１０に提供されて、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。これに対して、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターンが正常であったときには、当該フレームのCurrent Frame Count１３４の値は補間され、その補間後の値が補正後Current Frame Count１３５としてAES Input生成部１１０に提供されて、当該フレームについてのLEFLAMEカウント値補正部１１２の処理は終了となる。
【０１９５】
以下、図２２と図２３の具体例を参照して、当該フレームについてのLEFLAMEカウント値補正部１１２の処理についてさらに説明する。
【０１９６】
即ち、図２２と図２３のそれぞれは、当該フレームについてのLEFLAMEカウント値補正部１１２の具体例を示している。
【０１９７】
図２２と図２３において、上の図は、各フレームのKey Change Timing１２４のそれぞれの値とエラーフラグとのそれぞれの時間推移を示している。
【０１９８】
また、図２２と図２３において、上の図は、各フレームのCurrent Frame Count１３４のそれぞれの値とエラーフラグとのそれぞれの時間推移を示している。
【０１９９】
図２２と図２３のCurrent Frame Count１３４の時間推移の図において、×（バツ印）がされている値が、直前フレームと当該フレームとのKey Change Timing１２４の推移パターンが正常時の値（正常な値）を示しているが、各例の場合、伝送エラーにより、Current Frame Count１３４の値がその×（バツ印）の上に記述される値になってしまったことを意味している。そして、その×（バツ印）の下の値が、LEFLAMEカウント値補正部１１２のＳ２７（図２１）の処理で補間される値を示している。
【０２００】
また、図２２と図２３において、Current Frame Count１３４のエラーフラグとは、直前フレームと当該フレームとのCurrent Frame Count１３４の推移パターンが異常であるか否かを示すフラグであって、異常な場合には１となり正常な場合には０となるフラグである。即ち、当該フレームにおいてエラーフラグが立っていること（1であること）は、直前フレームと当該フレームとのCurrent Frame Count１３４の推移パターンは異常であることを示す。従って、直前フレームにおいてエラーフラグが立っている場合（1である場合）、図２１のステップＳ２４の処理では、２つ前のフレームと直前フレームとのCurrent Frame Count１３４の推移パターンが異常であった（ＹＥＳである）と判定されて、処理はステップＳ２５に進むことになる。
【０２０１】
図２２は、当該フレームのCurrent Frame Count１３４の値は、正常であれば0であるところ、伝送エラーのために０以外になってしまった例を示している。
【０２０２】
図２２の例の場合、ステップＳ２１ＮＯ，Ｓ２２ＮＯを経由してステップＳ２４に進む。そして、ステップＳ２４でＮＯと判定されて、ステップＳ２６の処理後、ステップＳ２７の処理で、当該フレームのCurrent Frame Count１３４の値が０に補間される。
【０２０３】
即ち、図２２は、Key Change Timing１２４の値が0(2'b00)となるフレームが当該フレームの場合の例を示している。この場合、上述した手法によれば、当該フレームのCurrent Frame Count１３４の補間する値は、Key Change Timing１２４の値から決定される。従って、図２２の例では、Key Change Timing１２４の値が0(2'b00)であることから（図１の復号用のLE Key６１−Ｄの更新タイミングであることから）、当該フレームのCurrent Frame Count１３４の値が０に補間されるのである。
【０２０４】
図２３は、当該フレームのCurrent Frame Count１３４の値は、正常であれば2であるところ、伝送エラーのために2以外になってしまった例を示している。
【０２０５】
図２３の例の場合、ステップＳ２１ＮＯ，Ｓ２２ＮＯを経由してステップＳ２４に進む。そして、ステップＳ２４でＮＯと判定されて、ステップＳ２６の処理後、ステップＳ２７の処理で、当該フレームのCurrent Frame Count１３４の値が２に補間される。
【０２０６】
即ち、図２３は、Key Change Timing１２４の値が0(2'b00)ではないフレームが当該フレームの場合の例を示している。この場合、上述した手法によれば、当該フレームのCurrent Frame Count１３４の補間する値は、直前フレームのCurrent Frame Count１３４の値から決定される。従って、図２３の例では、直前フレームのCurrent Frame Count１３４の値が１であり、Current Frame Count１３４の値はフレーム毎に１ずつインクリメントされることから（図２０参照）、当該フレームのCurrent Frame Count１３４の値が２に補間されるのである。
【０２０７】
なお、伝送エラーによるCurrent Frame Count１３４の値の補間は、本実施の形態では、当該フレームと直前フレームとにおけるCurrent Frame Count１３４の推移パターン（相関）を利用しているが、本実施の形態に限定されず、さらに長期の推移パターン（さらに複数のフレームにまたがるCurrent Frame Count１３４の推移パターン）を利用することもできる。
【０２０８】
しかしながら、基準となる Key Change Timing１２４の値の補間が、上述したように１フレーム単独の伝送エラーしか対応せず、かつ、Key Change Timing１２４とCurrent Frame Count１３４（Current Link Encryption Frame Count１３４）は同一のメタデータ６４−３（図４）に含まれていることを考慮すると、Current Frame Count１３４にのみ連続フレームの伝送エラーが発生する確率はきわめて低い。従って、かかる長期の推移パターンを利用してもそのハードウエアの負担の割にはその効果は小さく、本実施の形態の推移パターン、即ち、当該フレームと直前フレームとにおけるCurrent Frame Count１３４の推移パターンを利用する方が好適である。
【０２０９】
以上、本発明が適用される情報処理装置の一実施の形態として、図１の構成の復号装置２（図５の構成のメタデータ抽出部２１を含む復号装置２）について説明した。
【０２１０】
しかしながら、本発明が適用される情報処理装置は、上述した復号装置に限定されず、様々な実施の形態を取ることができる。
【０２１１】
具体的には、本発明が適用される情報処理装置は、次のような情報処理装置であれば足り、その実施の形態は特に問わない。
【０２１２】
即ち、連続する複数の単位データから構成されるストリームデータが前記単位データ毎に順次暗号化されていく場合、複数の前記単位データのそれぞれが暗号化されるときに利用される鍵が所定の規則で更新されていくことが規定されている暗号化手法に従って、そのストリームデータが暗号化された結果得られる暗号化データに対して、そのストリームデータの暗号化に利用された複数の鍵およびそれらの複数の鍵の更新タイミングを特定する更新情報を含むメタデータを利用して、復号処理を施す情報処理装置であって、前記暗号化データを取得して、その暗号化データを構成する、複数の暗号化された前記単位データのそれぞれに対して、複数の前記鍵のうちの暗号化されたときに利用された鍵を利用して復号処理を施す復号手段と、前記メタデータを取得して、前記メタデータに含まれる複数の前記鍵のそれぞれに対応する複数の復号鍵のそれぞれを生成し、前記メタデータに含まれる前記更新情報に従って、複数の前記復号鍵のうちの対応する１つを前記復号手段に提供するメタデータ取得手段とを備え、前記メタデータ取得手段は、前記更新情報にエラーが発生しているか否かを判定し、エラーが発生していると判定した場合、前記更新情報のうちの少なくとも一部を補正する補正手段を有する情報処理装置であれば、本発明が適用される情報処理装置として足り、その実施の形態は問わない。
【０２１３】
即ち、復号手段、メタデータ取得手段、および、補正手段のそれぞれは、上述した機能を有していれば、その実施の形態は問わない。
【０２１４】
このような本発明が適用される情報処理装置は、かかる特徴的構成を有しているので、暗号化装置から復号装置にメタデータが伝送される際にエラーが発生しても、復号処理装置がそのメタデータを利用する復号処理を正常に実行できる、という効果を奏することが可能になる。
【０２１５】
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２１６】
図２４は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。即ち、例えば上述した一連の処理をプログラムにより実行する場合には、メタデータ抽出部２１等は、図２４の構成のパーソナルコンピュータまたはその一部で構成することも可能である。
【０２１７】
図２４において、CPU（Central Processing Unit）２０１は、ROM（Read Only Memory）２０２、または記憶部２０８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）２０３には、CPU２０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU２０１、ROM２０２、およびRAM２０３は、バス２０４により相互に接続されている。
【０２１８】
CPU２０１にはまた、バス２０４を介して入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。CPU２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、CPU２０１は、処理の結果を出力部２０７に出力する。
【０２１９】
入出力インタフェース２０５に接続されている記憶部２０８は、例えばハードディスクからなり、CPU２０１が実行するプログラムや各種のデータを記憶する。通信部２０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０２２０】
また、通信部２０９を介してプログラムを取得し、記憶部２０８に記憶してもよい。
【０２２１】
入出力インタフェース２０５に接続されているドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２０８に転送され、記憶される。
【０２２２】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２４に示されるように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１、または、プログラムが一時的もしくは永続的に格納されるROM２０２や、記憶部２０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部２０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２２３】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２２５】
さらにまた、本発明は、上述した図１のシステムだけではなく、様々なシステムに適用することができる。例えば、上述した図１の例では、メタデータ６４と、AVデータ暗号化部３２によりAVデータが暗号化された結果得られる暗号化AVデータは一緒に、即ち、メタデータ重畳暗号化AVデータとして、送信側である暗号化装置１から受信側である復号装置２に送信されているが、メタデータ６４と暗号化AVデータとは必ずしも一緒に送信する必要はない。即ち、メタデータを、暗号化AVデータとは別の伝送経路で送信側から受信側に伝送するシステムに対しても、本発明を適用することが可能である。
【図面の簡単な説明】
【０２２６】
【図１】本発明が適用される暗号復号システムの構成例を示す図である。
【図２】図１の暗号化装置による暗号化処理で利用されたデータであって、復号装置による復号処理で利用されるデータを含むメタデータの構造例を示す図である。
【図３】図１の暗号化装置による暗号化処理で利用されたデータであって、復号装置による復号処理で利用されるデータを含むメタデータの構造例を示す図である。
【図４】図１の暗号化装置による暗号化処理で利用されたデータであって、復号装置による復号処理で利用されるデータを含むメタデータの構造例を示す図である。
【図５】図１の復号装置のメタデータ抽出部の詳細な構成例を示すブロック図である。
【図６】AES暗号によるAVデータの暗号化処理に使用されているLE Key(AES 鍵)の更新の様子の例を示す図である。
【図７】直前のフレームにおける図４のメタデータに含まれるKey Change Timingの値と、当該フレームにおける図４のメタデータに含まれるKey Change Timingの値との正常な推移パターンを示す図である。
【図８】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理例を説明するフローチャートである。
【図９】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理例を説明するフローチャートである。
【図１０】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１１】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１２】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１３】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例を示す図である。
【図１４】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１５】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１６】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１７】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１８】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、図８と図９のフローチャートに従った処理結果の具体例を示す図である。
【図１９】図５のメタデータ抽出部のキーチェンジタイミング補正部の処理結果の具体例であって、２つ前のフレーム、直前フレーム、および当該フレームといった連続する３つのフレームにおけるKey Changing Timingの値の推移パターンを利用して、当該フレームにおけるKey Changing Timingの値を補間する具体例を示す図である。
【図２０】図４のメタデータに含まれるKey Change Timingの値とCurrent Frame Count１３４の値との関係性を説明する図である。
【図２１】図５のメタデータ抽出部のLEFLAMEカウント値補正部の処理例を説明するフローチャートである。
【図２２】図５のメタデータ抽出部のLEFLAMEカウント値補正部の処理結果の具体例であって、図２１のフローチャートに従った処理結果の具体例を示す図である。
【図２３】図５のメタデータ抽出部のLEFLAMEカウント値補正部の処理結果の具体例であって、図２１のフローチャートに従った処理結果の具体例を示す図である。
【図２４】本発明が適用されるプログラムを実行するパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０２２７】
１  暗号化装置，  ２  復号装置，  １１  暗号化部，  １２  メタデータ生成部，  １３  重畳部，  ２１  メタデータ抽出部，  ２２  復号部，  ３１  AES暗号データ生成部，  ３２  AVデータ暗号化部  ，  ４１AES復号データ生成部，  ４２  AVデータ復号部，  ６１−Ｄ，６１−Ｅ  LE Key，  ６２−Ｄ，６２−Ｅ  AES input，  ６３−Ｄ，６３−Ｅ  Frame reset，  ６４，６４−１乃至６４−３  メタデータ，  ６５  AES暗号データ，  ６６  AES復号データ，  １０１  メタデータ抽出分離部，  １０２  LEKP復元部，  １０３  LEKPテーブル，  １０４  キーチェンジトリガ生成部，  １０５  レジスタ，  １０８  カウンタ，  １０９  レジスタ，  １１０  AES Input生成部，  １１１  キーチェンジングタイミング補正部，  １１２  LE Frameカウント値補正部，  １２１  LEKM，  １２２  Current LE_Key ID，  １２３  Next LE_Key ID，  １２４  Key Change Timing，  １２６  LE_attribute_data，  １２７  キーチェンジトリガ，  １２９  Frame/line reset，  １３０  Frame reset，  １３１  line reset，  １３２  Line number of HD SDI，  １３３  HD-SDI Link Number，  １３４  Current Frame Count，  １３５  補正後Current Frame Count，  ２０１  CPU，  ２０２  ROM，  ２０８  記憶部，  ２１１  リムーバブルメディア
【図１】
0004582411.tif 000002
【図２】
0004582411.tif 000003
【図３】
0004582411.tif 000004
【図４】
0004582411.tif 000005
【図５】
0004582411.tif 000006
【図６】
0004582411.tif 000007
【図７】
0004582411.tif 000008
【図８】
0004582411.tif 000009
【図９】
0004582411.tif 000010
【図１０】
0004582411.tif 000011
【図１１】
0004582411.tif 000012
【図１２】
0004582411.tif 000013
【図１３】
0004582411.tif 000014
【図１４】
0004582411.tif 000015
【図１５】
0004582411.tif 000016
【図１６】
0004582411.tif 000017
【図１７】
0004582411.tif 000018
【図１８】
0004582411.tif 000019
【図１９】
0004582411.tif 000020
【図２０】
0004582411.tif 000021
【図２１】
0004582411.tif 000022
【図２２】
0004582411.tif 000023
【図２３】
0004582411.tif 000024
【図２４】
0004582411.tif 000025