(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する原本検証方法であって、
複数の要素のパケットが多重化された原本のストリームデータにシリアル番号を付与した後にハッシュ値を求めることで算出された署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を取得し、
前記一部のストリームデータの先頭のシリアル番号を始点として、前記一部のストリームデータに含まれる各パケットにシリアル番号を付し、
前記一部のストリームデータのパケットを要素毎に分類し、分類した各パケットのハッシュ値と、前記前後のハッシュ値とを基にして、要素毎のハッシュ値を算出し、
算出したハッシュ値と前記署名データとを基にして、前記一部のストリームデータが前記原本のストリームデータに含まれるデータであるか否かを検証する
各処理を実行することを特徴とする原本検証方法。
【請求項２】
前記シリアル番号を付す処理は、所定の個数のパケット毎にシリアル番号を順次付与することを特徴とする請求項１に記載の原本検証方法。
【請求項３】
コンピュータに、
複数の要素のパケットが多重化された原本のストリームデータにシリアル番号を付与した後にハッシュ値を求めることで算出された署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を取得し、
前記一部のストリームデータの先頭のシリアル番号を始点として、前記一部のストリームデータに含まれる各パケットにシリアル番号を付し、
前記一部のストリームデータのパケットを要素毎に分類し、分類した各パケットのハッシュ値と、前記前後のハッシュ値とを基にして、要素毎のハッシュ値を算出し、
算出したハッシュ値と前記署名データとを基にして、前記一部のストリームデータが前記原本のストリームデータに含まれるデータであるか否かを検証する
各処理を実行させることを特徴とする原本検証プログラム。
【請求項４】
前記シリアル番号を付す処理は、所定の個数のパケット毎にシリアル番号を順次付与することを特徴とする請求項３に記載の原本検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原本検証方法等に関する。
【背景技術】
【０００２】
従来、ストリームデータが各種分野で利用されている。ストリームデータは、映像データ、音声データ、字幕データなど複数のメディアデータを多重化したデータである。ストリームデータを利用する場合に、ストリームデータをそのまま用いずに、一部分のストリームデータのみを切り出して加工したストリームデータを利用するサービスや製品が存在する。一部分のストリームデータを利用する際に、このストリームデータが、原本のストリームデータから本当に切り出されたものなのかを検証する状況が発生し得る。
【０００３】
検証対象のストリームデータが、原本のストリームデータから切り出されたものか否かを検証する従来技術について説明する。従来技術は、検証対象のストリームデータの単一要素に対してハッシュ値を求め、原本のストリームデータのハッシュ値と比較する。従来技術は、検証対象のストリームデータのハッシュ値と、原本のストリームデータのハッシュ値とが一致すれば、検証対象のストリームデータは、原本のストリームデータから切り出されたものであると判定する。なお、単一要素は、ストリームデータに含まれる映像データまたは音声データなど、何れか一種類の要素に対応する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５２７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、検証対象のストリームデータが原本のストリームデータから切り出されたものであるか否かの原本検証を正確に実行できていないという問題があった。
【０００６】
従来技術の問題点について説明する。従来技術は、単一要素に着目して原本検証を行っているが、ストリームデータには、複数の要素が多重化されているものであるため、単一の要素について原本検証を行っても、他の要素については原本検証を行っているわけではない。
【０００７】
ここで、個々の要素について原本検証を行うためには、ストリームデータに含まれる各要素を分離し、各要素について従来技術を適用し、要素毎に原本検証を行うことが考えられる。しかしながら、ストリームデータとして見た場合、各要素が同じであっても、各要素の多重化位置が異なる各ストリームデータは、同一のストリームデータとはみなされない。このため、上記の原本検証方法を行ったとしても、各要素の多重化位置まで検証しているわけではないので、正確に原本検証を行っているとはいえない。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、原本検証を正確に実行することができる原本検証方法および原本検証プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示の原本検証方法は、コンピュータに下記の処理を実行させる。コンピュータに、署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を取得させる。コンピュータに、一部のストリームデータの先頭のシリアル番号を始点として、一部のストリームデータに含まれる各パケットにシリアル番号を付与させる。コンピュータに、ストリームデータのパケットを要素毎に分類し、分類した各パケットのハッシュ値と、前後のハッシュ値とを基にして、要素毎のハッシュ値を算出させる。コンピュータに、算出したハッシュ値と署名データとを基にして、一部のストリームデータが、原本のストリームデータに含まれるデータであるか否かを検証させる。
【発明の効果】
【００１０】
開示の原本検証方法によれば、原本検証を正確に実行できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施例にかかる原本検証システムの構成を示す図である。
【図２】図２は、署名装置の構成を示す機能ブロック図である。
【図３】図３は、原本ストリームデータのデータ構造の一例を示す図である。
【図４】図４は、シリアル番号を付与した原本ストリームデータの一例を示す図である。
【図５】図５は、分割部の処理を説明するための図（１）である。
【図６】図６は、署名データ生成部１３３の処理を説明するための図（１）である。
【図７】図７は、署名データ生成部１３３の処理を説明するための図（２）である。
【図８】図８は、署名データのデータ構造の一例を示す図である。
【図９】図９は、切り出し装置の構成を示す機能ブロック図である。
【図１０】図１０は、分割部の処理を説明するための図（２）である。
【図１１】図１１は、切り出し範囲のＴＳパケットを特定する処理を説明するための図（１）である。
【図１２】図１２は、切り出し範囲のＴＳパケットを特定する処理を説明するための図（２）である。
【図１３】図１３は、切り出し範囲のＴＳパケットを特定する処理を説明するための図（３）である。
【図１４】図１４は、切り出し範囲のＴＳパケットを特定する処理を説明するための図（４）である。
【図１５】図１５は、切り出し範囲のＴＳパケットを特定する処理を説明するための図（５）である。
【図１６】図１６は、ストリームデータを生成する処理を説明するための図（１）である。
【図１７】図１７は、ストリームデータを生成する処理を説明するための図（２）である。
【図１８】図１８は、部分署名データを生成する処理を説明するための図である。
【図１９】図１９は、部分署名データのデータ構造の一例を示す図である。
【図２０】図２０は、原本検証装置の構成を示す機能ブロック図である。
【図２１】図２１は、シリアル番号を付与した部分ストリームデータの一例を示す図である。
【図２２】図２２は、分割部の処理を説明するための図（３）である。
【図２３】図２３は、原本検証部の処理を説明するための図（１）である。
【図２４】図２４は、原本検証部の処理を説明するための図（２）である。
【図２５】図２５は、原本検証部の処理を説明するための図（３）である。
【図２６】図２６は、署名装置の処理手順を示すフローチャートである。
【図２７】図２７は、切り出し装置の処理手順を示すフローチャートである。
【図２８】図２８は、原本検証装置の処理手順を示すフローチャートである。
【図２９】図２９は、原本検証プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する原本検証方法および原本検証プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
本実施例にかかる原本検証システムの構成の一例について説明する。図１は、本実施例にかかる原本検証システムの構成を示す図である。図１に示すように、原本検証システムは、署名装置１００、切り出し装置２００、原本検証装置３００を有する。例えば、署名装置１００、切り出し装置２００、原本検証装置３００は、ネットワーク９５に接続される。
【００１４】
署名装置１００は、ストリームデータの原本から署名データを生成する装置である。署名データは、原本検証を行う場合に利用されるデータである。ストリームデータの原本を原本ストリームデータと表記する。
【００１５】
切り出し装置２００は、切り出し範囲が指定された場合に、原本のストリームデータのうち、切り出し範囲に含まれるストリームデータを切り出す装置である。切り出し装置２００が切り出したストリームデータを、部分ストリームデータと表記する。
【００１６】
原本検証装置３００は、署名データを基にして、部分ストリームデータが、原本ストリームデータから切り出したものであるか否かの原本検証を行う装置である。
【００１７】
署名装置１００の構成について説明する。図２は、署名装置の構成を示す機能ブロック図である。図２に示すように、署名装置１００は、通信部１０１、インターフェース部１１０、記憶部１２０、制御部１３０を有する。
【００１８】
通信部１０１は、他の装置とネットワークを介してデータ通信を行う処理部である。例えば、通信部１０１は、所定の通信プロトコルを用いて通信を行う通信装置に対応する。また、通信部１０１は、署名データ１２３等を、原本検証装置３００に送信してもよい。
【００１９】
インターフェース部１１０は、各種のデータを入出力する入出力装置である。例えば、ユーザは、インターフェース部１１０を介して、署名装置１００に原本ストリームデータを入力してもよい。
【００２０】
記憶部１２０は、原本ストリームデータ１２１、分割データ１２２、署名データ１２３を記憶する記憶部である。記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００２１】
原本ストリームデータ１２１は、映像データ、音声データ等のメディアデータや、ＰＡＴ（Program  Association  Table）、ＰＭＴ（Program  Map  Table）、ＰＣＲ（Program  Clock  Reference）等のデータを含む。また、本実施例では一例として、原本ストリームデータ１２１の形式を、ＭＰＥＧ−２  ＴＳ形式とする。
【００２２】
図３は、原本ストリームデータのデータ構造の一例を示す図である。図３に示すように、この原本ストリームデータ１２１は、複数のＴＳパケット１０〜１８、２０〜２７、３０〜３７、４０〜４７、５０〜５８を含む。ＴＳパケット２０は、ＴＳパケット１８の後方に続くＴＳパケットである。ＴＳパケット３０は、ＴＳパケット２７の後方に続くＴＳパケットである。ＴＳパケット４０は、ＴＳパケット３７の後方に続くＴＳパケットである。ＴＳパケット５０は、ＴＳパケット４７の後方に続くＴＳパケットである。
【００２３】
図３に示す各ＴＳパケットのうち、ＴＳパケット１０、１５〜１７、２０、２１、２６、２７、３０、３１、３６、３７、４０、４１、４６、４７、５０〜５３、５８は、映像データを含むＴＳパケットとする。
【００２４】
図３に示す各ＴＳパケットのうち、ＴＳパケット１１、１８、２２、３２、４２、５４は、音声データを含むＴＳパケットとする。
【００２５】
図３に示す各ＴＳパケットのうち、ＴＳパケット１２、２３、３３、４３、５５は、ＰＡＴを含むＴＳパケットとする。ＴＳパケット１３、２４、３４、４４、５６は、ＰＭＴを含むＴＳパケットとする。ＴＳパケット１４、２５、３５、４５、５７は、ＰＣＲを含むＴＳパケットとする。
【００２６】
図２の説明に戻る。分割データ１２２は、原本ストリームデータ１２１を、ＴＳパケットの種別毎に分割したデータである。署名データ１２３は、署名データ生成部１３３によって生成されるデータである。
【００２７】
制御部１３０は、シリアル番号付与部１３１、分割部１３２、署名データ生成部１３３、署名データ出力部１３４を有する。制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１３０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００２８】
シリアル番号付与部１３１は、原本ストリームデータ１２１の各ＴＳパケットに対して、シリアル番号を付与する処理部である。シリアル番号付与部１３１は、原本ストリームデータ１２１の先頭のＴＳパケットから昇順に、シリアル番号を付与する。
【００２９】
図４は、シリアル番号を付与した原本ストリームデータの一例を示す図である。シリアル番号付与部１３１は、先頭のＴＳパケット１０を開始点として、ＴＳパケット１１〜１８、２０〜２７、３０〜３７、４０〜４７、５０〜５８の順にシリアル番号を付与する。図４に示すように、例えば、ＴＳパケット１０〜１８、２０〜２７、３０〜３７、４０〜４７、５０〜５８の先頭部分に、シリアル番号が付与される。
【００３０】
分割部１３２は、原本ストリームデータ１２１を、ＴＳパケットの種別毎に分割することで、分割データ１２２を生成する処理部である。分割部１３２は、ＴＳパケットのＰＩＤを基にして、ＴＳパケットの種別を判定する。図５は、分割部の処理を説明するための図（１）である。分割部１３２は、原本ストリームデータ１２１に基づいて、映像パケット群１２２ａ、音声パケット群１２２ｂ、ＰＡＴパケット群１２２ｃ、ＰＭＴパケット分１２２ｄ、ＰＣＲパケット群１２２ｅを生成する。
【００３１】
分割部１３２は、原本ストリームデータ１２１に含まれるＴＳパケットのうち、映像データを含むＴＳパケットを抜き出すことで、映像パケット群１２２ａを生成する。図５に示す例では、分割部１３２は、ＴＳパケット１０、１５〜１７を抜き出して、映像パケット群１２２ａに含める。分割部１３２は、原本ストリームデータ１２１に含まれる他のＴＳパケットからも同様に、映像データを含むＴＳパケットを抜き出して、映像パケット群１２２ａに含める。
【００３２】
分割部１３２は、原本ストリームデータ１２１に含まれるＴＳパケットのうち、音声データを含むＴＳパケットを抜き出すことで、音声パケット群１２２ｂを生成する。図５に示す例では、分割部１３２は、ＴＳパケット１１、１８を抜き出して、音声パケット群１２２ｂに含める。分割部１３２は、原本ストリームデータ１２１に含まれる他のＴＳパケットからも同様に、音声データを含むＴＳパケットを抜き出して、音声パケット群１２２ｂに含める。
【００３３】
分割部１３２は、原本ストリームデータ１２１に含まれるＴＳパケットのうち、ＰＡＴを含むＴＳパケットを抜き出すことで、ＰＡＴパケット群１２２ｃを生成する。図５に示す例では、分割部１３２は、ＴＳパケット１２を抜き出して、ＰＡＴパケット群１２２ｃに含める。分割部１３２は、原本ストリームデータ１２１に含まれる他のＴＳパケットからも同様に、ＰＡＴデータを含むＴＳパケットを抜き出して、ＰＡＴパケット群１２２ｃに含める。
【００３４】
分割部１３２は、原本ストリームデータ１２１に含まれるＴＳパケットのうち、ＰＭＴを含むＴＳパケットを抜き出すことで、ＰＭＴパケット群１２２ｄを生成する。図５に示す例では、分割部１３２は、ＴＳパケット１３を抜き出して、ＰＭＴパケット群１２２ｄに含める。分割部１３２は、原本ストリームデータ１２１に含まれる他のＴＳパケットからも同様に、ＰＭＴデータを含むＴＳパケットを抜き出して、ＰＭＴパケット群１２２ｄに含める。
【００３５】
分割部１３２は、原本ストリームデータ１２１に含まれるＴＳパケットのうち、ＰＣＲを含むＴＳパケットを抜き出すことで、ＰＣＲパケット群１２２ｅを生成する。図５に示す例では、分割部１３２は、ＴＳパケット１４を抜き出して、ＰＣＲパケット群１２２ｅに含める。分割部１３２は、原本ストリームデータ１２１に含まれる他のＴＳパケットからも同様に、ＰＣＲデータを含むＴＳパケットを抜き出して、ＰＣＲパケット群１２２ｅに含める。
【００３６】
上記のように、分割部１３２は、原本ストリームデータ１２１に基づいて、映像パケット群１２２ａ、音声パケット群１２２ｂ、ＰＡＴパケット群１２２ｃ、ＰＭＴパケット群１２２ｄ、ＰＣＲパケット群１２２ｅを生成する。分割データ１２２は、映像パケット群１２２ａ、音声パケット群１２２ｂ、ＰＡＴパケット群１２２ｃ、ＰＭＴパケット群１２２ｄ、ＰＣＲパケット群１２２ｅを含む。
【００３７】
署名データ生成部１３３は、分割データ１２２を基にして、署名データ１２３を生成する処理部である。
【００３８】
まず、署名データ生成部１３３は、ハッシュ関数を利用して、ＴＳパケット毎のハッシュ値を求める。図６は、署名データ生成部１３３の処理を説明するための図（１）である。
【００３９】
図６に示すように、署名データ生成部１３３は、映像パケット群１２２ａのＴＳパケット毎にハッシュ値を求める。映像データを含むＴＳパケットのハッシュ値を、Ｖハッシュ値と表記する。例えば、署名データ生成部１３３は、ＴＳパケット１０からＶハッシュ値１０ａを求める。また、署名データ生成部１３３は、ＴＳパケット１５〜１７からそれぞれＶハッシュ値１５ａ〜１７ａを求める。署名データ生成部１３３は、映像パケット群１２２ａに含まれる他のＴＳパケットからも同様にＶハッシュ値を求める。各Ｖハッシュ値を、Ｖハッシュ群１２２ａａとする。
【００４０】
署名データ生成部１３３は、音声パケット群１２２ｂのＴＳパケット毎にハッシュ値を求める。音声データを含むＴＳパケットのハッシュ値を、Ａハッシュ値と表記する。例えば、署名データ生成部１３３は、ＴＳパケット１１からＡハッシュ値１１ａを求める。また、署名データ生成部１３３は、ＴＳパケット１８からＡハッシュ値１８ａを求める。署名データ生成部１３３は、音声パケット群１２２ｂに含まれる他のＴＳパケットからも同様にＡハッシュ値を求める。各Ａハッシュ値を、Ａハッシュ群１２２ｂｂとする。
【００４１】
署名データ生成部１３３は、ＰＡＴパケット群１２２ｃのＴＳパケット毎にハッシュ値を求める。ＰＡＴデータを含むＴＳパケットのハッシュ値を、ＰＡＴハッシュ値と表記する。例えば、署名データ生成部１３３は、ＴＳパケット１２からＰＡＴハッシュ値１２ａを求める。署名データ生成部１３３は、ＰＡＴパケット群１２２ｂに含まれる他のＴＳパケットからも同様にＰＡＴハッシュ値を求める。各ＰＡＴハッシュ値を、ＰＡＴハッシュ群１２２ｃｃとする。
【００４２】
署名データ生成部１３３は、ＰＭＴパケット群１２２ｄのＴＳパケット毎にハッシュ値を求める。ＰＭＴデータを含むＴＳパケットのハッシュ値を、ＰＭＴハッシュ値と表記する。例えば、署名データ生成部１３３は、ＴＳパケット１３からＰＭＴハッシュ値１３ａを求める。署名データ生成部１３３は、ＰＭＴパケット群１２２ｄに含まれる他のＴＳパケットからも同様にＰＭＴハッシュ値を求める。各ＰＭＴハッシュ値を、ＰＭＴハッシュ群１２２ｄｄとする。
【００４３】
署名データ生成部１３３は、ＰＣＲパケット群１２２ｅのＴＳパケット毎にハッシュ値を求める。ＰＣＲデータを含むＴＳパケットのハッシュ値を、ＰＣＲハッシュ値と表記する。例えば、署名データ生成部１３３は、ＴＳパケット１４からＰＣＲハッシュ値１４ａを求める。署名データ生成部１３３は、ＰＣＲパケット群１２２ｅに含まれる他のＴＳパケットからも同様にＰＣＲハッシュ値を求める。各ＰＣＲハッシュ値を、ＰＣＲハッシュ群１２２ｅｅとする。
【００４４】
図７は、署名データ生成部１３３の処理を説明するための図（２）である。署名データ生成部１３３は、各ＴＳパケットのハッシュ値を算出した後に、ＳＨＡ２５６等の二分技法を用いて、ハッシュ値群毎にハッシュ値を求める。二分技法は、例えば、ｎ番目のハッシュ値と、ｎ＋１番目のハッシュ値から、単一のハッシュ値を算出し、算出したハッシュ値とｎ＋２番目のハッシュ値から、単一のハッシュ値を算出するという処理を繰り返し実行する。
【００４５】
署名データ生成部１３３は、Ｖハッシュ群１２２ａａの各Ｖハッシュ値に対して、二分技法を用いることで、原本映像ハッシュ値１２３ａを算出する。署名データ生成部１３３は、Ａハッシュ群１２２ｂｂの各Ａハッシュ値に対して、二分技法を用いることで、原本音声ハッシュ値１２３ｂを算出する。署名データ生成部１３３は、ＰＡＴパケット群１２２ｃｃの各ＰＡＴハッシュ値に対して、二分技法を用いることで、原本ＰＡＴハッシュ値１２３ｃを算出する。署名データ生成部１３３は、ＰＭＴパケット群１２２ｄｄの各ＰＭＴハッシュ値に対して、二分技法を用いることで、原本ＰＭＴハッシュ値１２３ｄを算出する。署名データ生成部１３３は、ＰＣＲパケット群１２２ｅｅの各ＰＣＲハッシュ値に対して、二分技法を用いることで、原本ＰＣＲハッシュ値１２３ｅを算出する。
【００４６】
署名データ生成部１３３は、署名データ１２３を生成する。図８は、署名データのデータ構造の一例を示す図である。図８に示すように、署名データ１２３は、原本映像ハッシュ値１２３ａ、原本音声ハッシュ値１２３ｂ、原本ＰＡＴハッシュ値１２３ｃ、原本ＰＭＴハッシュ値１２３ｄ、原本ＰＣＲハッシュ値１２３ｅを含む。
【００４７】
署名データ出力部１３４は、署名データ１２３を、原本検証装置３００に出力する。
【００４８】
次に、切り出し装置２００の構成について説明する。図９は、切り出し装置の構成を示す機能ブロック図である。図９に示すように、切り出し装置２００は、通信部２０１、インターフェース部２１０、記憶部２２０、制御部２３０を有する。
【００４９】
通信部２０１は、他の装置とネットワークを介してデータ通信を行う処理部である。例えば、通信部２０１は、所定の通信プロトコルを用いて通信を行う通信装置に対応する。また、通信部２０１は、部分ストリームデータ２２３、部分署名データ２２４を、原本検証装置３００に送信してもよい。
【００５０】
インターフェース部２１０は、各種のデータを入出力する入出力装置である。例えば、ユーザは、インターフェース部２１０を介して、切り出し装置２００に原本ストリームデータを入力してもよい。
【００５１】
記憶部２２０は、原本ストリームデータ２２１、分割データ２２２、部分ストリームデータ２２３を記憶する記憶部である。記憶部２２０は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００５２】
原本ストリームデータ２２１は、映像データ、音声データ等のメディアデータや、ＰＡＴ、ＰＭＴ、ＰＣＲ等のデータを含む。原本ストリームデータ２２１は、図２に示した原本ストリームデータ１２１と同一のものとする。原本ストリームデータ２２１のデータ構造は、図３に示すものと同一である。
【００５３】
分割データ２２２は、原本ストリームデータ２２１を、ＴＳパケットの種別毎に分割したデータである。部分ストリームデータ２２３は、原本ストリームデータ２２１から切り出されたストリームデータである。部分署名データ２２４は、ストリームデータ２２１から部分ストリームデータ２２３を切り出した残りのストリームデータから生成されるハッシュ値である。
【００５４】
制御部２３０は、シリアル番号付与部２３１、分割部２３２、切り出し部２３３、部分ストリームデータ出力部２３４を有する。制御部２３０は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部２３０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。
【００５５】
シリアル番号付与部２３１は、原本ストリームデータ２２１の各ＴＳパケットに対して、シリアル番号を付与する処理部である。シリアル番号付与部２３１は、原本ストリームデータ２２１の先頭のＴＳパケットから昇順に、シリアル番号を付与する。シリアル番号付与部２３１が、シリアル番号を付与した原本ストリーム２２１のデータ構造は、図４に示した原本ストリーム１２１と同様である。
【００５６】
分割部２３２は、原本ストリームデータ２２１を、ＴＳパケットの種別毎に分割することで、分割データ２２２を生成する処理部である。図１０は、分割部の処理を説明するための図（２）である。分割部２３２の処理は、上記分割部１３２と同様である。分割部２３２は、原本ストリームデータ２２１に基づいて、映像パケット群２２２ａ、音声パケット群２２２ｂ、ＰＡＴパケット群２２２ｃ、ＰＭＴパケット分２２２ｄ、ＰＣＲパケット群２２２ｅを生成する。分割データ２２２は、映像パケット群２２２ａ、音声パケット群２２２ｂ、ＰＡＴパケット群２２２ｃ、ＰＭＴパケット群２２２ｄ、ＰＣＲパケット群２２２ｅを含む。
【００５７】
切り出し部２３３は、分割データ２２２を基にして、部分ストリームデータを切り出す処理部である。切り出し部２３３は、切り出し範囲に含まれるＴＳパケットを特定する処理、切り出し範囲に含まれるＴＳパケットを基に部分ストリームデータ２２３を生成する処理、部分署名データ２２４を生成する処理を実行する。
【００５８】
切り出し範囲に含まれるＴＳパケットを特定する処理について説明する。切り出し部２３３は、切り出し時刻情報を基にして、ＴＳパケットの種別毎に、切り出し範囲を設定する。この切り出し時刻情報は、切り出しを開始する時刻情報と、切り出しを終了する時刻情報とを含む。例えば、切り出し部２３３は、切り出し時刻情報を、インターフェース部２１０から取得する。図１１〜図１５は、切り出し範囲のＴＳパケットを特定する処理を説明するための図である。
【００５９】
映像パケット群２２２ａ、音声パケット群２２２ｂ、ＰＡＴパケット群２２２ｃ、ＰＭＴパケット群２２２ｄ、ＰＣＲパケット群２２２ｅの順に、切り出し部が、切り出し範囲を設定する処理について説明する。
【００６０】
映像パケット群２２２ａを処理する場合について説明する。映像データのＴＳパケットは、ＰＥＳヘッダの情報を含んでいる。切り出し部２３３は、このＰＥＳヘッダを参照することで、ストリームデータにおける該当ＴＳパケットの時刻を判定できる。切り出し部２３３は、切り出し時刻情報と、映像パケット群２２２ａのＴＳパケットのＰＥＳヘッダとを比較して、切り出し範囲に含まれるＴＳパケットを特定する。
【００６１】
図１１に示す例では、切り出し時間の開始時刻１Ａと終了時刻１Ｂに含まれるＴＳパケットは、映像パケット群２２２ａ中のＴＳパケット１５〜２６である。このため、切り出し部２３３は、映像パケット群２２２ａのＴＳパケット１５〜２６を、切り出し範囲に含まれるＴＳパケットとして特定する。
【００６２】
ところで、映像データは、ＧＯＰ境界でデータを分割することが好ましい。ＧＯＰ境界でデータを分割すると、デコード時に前後のフレームデータを参照しなくても良くなる。このため、図１１において、切り出し部２３３は、前後のＧＯＰ境界が、ＴＳパケット１５、２６にそれぞれ対応している場合には、切り出し範囲に含まれるＴＳパケット１５〜２６を、そのまま切り出し範囲のＴＳパケットとする。
【００６３】
これに対して、前後のＧＯＰ境界が、ＴＳパケット１５、２６にそれぞれ対応していない場合について説明する。図１２に示す例では、ＴＳパケット１５、２６が、ＧＯＰ境界に対応していないものとする。
【００６４】
図１２において、ＧＯＰパケット７０は、このＧＯＰパケット７０の開始位置および終了位置が、ＧＯＰ境界に対応している。ＧＯＰパケット７０は、複数のＰＥＳパケット７０ａ〜７０ｃを含み、各ＰＥＳパケットは、複数のＴＳパケットを含む。例えば、ＰＥＳパケット７０ａは、ＴＳパケット１５〜１７を含む。ＰＥＳパケット７０ｃは、ＴＳパケット２０〜２６を含む。
【００６５】
図１２に示す例では、切り出し部２３３は、ＧＯＰパケット単位で、切り出し時刻の開始時刻１Ａと、切り出し時間の終了時刻１Ｂとを比較する。切り出し部２３３は、切り出し時刻の開始時刻１Ａと、切り出し時間の終了時刻１Ｂに含まれるＧＯＰパケット７０を特定し、ＧＯＰパケット７０に含まれるＴＳパケット１５〜２６を、切り出し範囲のＴＳパケットとする。この場合には、例えば、ＴＳパケットの一部に、切り出し時間情報に含まれない映像データが含まれることになる。図１２に示す例では、ＴＳパケット１５の２Ａ、ＴＳパケット２６の２Ｂが、切り出し時間情報に含まれない映像データとなる。
【００６６】
音声パケット群２２２ｂを処理する場合について説明する。音声データのＴＳパケットは、ＰＥＳヘッダの情報を含んでいる。切り出し部２３３は、このＰＥＳヘッダを参照することで、ストリームデータにおける該当ＴＳパケットの時刻を判定できる。切り出し部２３３は、切り出し時刻情報と、音声パケット群２２２ｂのＴＳパケットのＰＥＳヘッダとを比較して、切り出し範囲に含まれるＴＳパケットを特定する。
【００６７】
図１３に示す例では、切り出し時間の開始時刻１Ａと終了時刻１Ｂに含まれるＴＳパケットは、音声パケット群２２２ｂ中のＴＳパケット１８〜４２である。このため、切り出し部２３３は、音声パケット群２２２ｂのＴＳパケット１８〜４２を、切り出し範囲に含まれるＴＳパケットとして特定する。
【００６８】
ところで、音声データは、ＰＥＳ境界でデータを分割することが好ましい。図１３において、切り出し部２３３は、ＴＳパケット１８、４２が、ＰＥＳ境界に対応している場合には、音声パケット群２２２ｂのＴＳパケット１８〜４２を、そのまま切り出し範囲のＴＳパケットとする。
【００６９】
これに対して、ＴＳパケット１８、４２がＰＥＳ境界にそれぞれ対応していない場合について説明する。図１４に示す例では、ＴＳパケット１８、４２が、ＰＥＳ境界に対応していないものとする。
【００７０】
図１４において、ＰＥＳパケット７０ａの先頭位置が、切り出し時間の開示時刻１Ａに最も近い、ＰＥＳ境界となる。また、ＰＥＳパケット７０ｃの後部位置が、切り出し時間の終了時刻１Ｂに最も近いＰＥＳ境界となる。
【００７１】
切り出し部２３３は、切り出し時刻の開始時刻１Ａと、切り出し時間の終了時刻１Ｂに含まれるＰＥＳパケット７０ａ〜７０ｃを特定し、ＰＥＳパケット７０ａ〜７０ｃに含まれるＴＳパケット１８〜４２を、切り出し範囲のＴＳパケットとする。この場合には、例えば、ＴＳパケットの一部に、切り出し時間情報に含まれない音声データが含まれることになる。図１４に示す例では、ＴＳパケット１８の３Ａ、ＴＳパケット４２の３Ｂが、切り出し時間情報に含まれない音声データとなる。
【００７２】
ＰＡＴパケット群２２２ｃを処理する場合について説明する。切り出し部２３３は、図１１〜図１４において説明した、切り出し範囲に含まれるＴＳパケットを比較し、シリアル番号が最も小さいＴＳパケットと、シリアル番号が最も大きいＴＳパケットを特定する。例えば、図１５において、シリアル番号が最も小さいＴＳパケットを、ＴＳパケット１５とする。シリアル番号が最も大きいＴＳパケットを、ＴＳパケット４２とする。
【００７３】
切り出し部２３３は、ＰＡＴパケット群２２２ｃに含まれるＴＳパケットのうち、ＴＳパケット１５の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット１５の前方直近のＴＳパケットは、ＴＳパケット１２となる。例えば、切り出し部２３３は、ＴＳパケットのシリアル番号を利用して、前方直近のＴＳパケットと特定してもよい。
【００７４】
切り出し部２３３は、ＰＡＴパケット群２２２ｃに含まれるＴＳパケットのうち、ＴＳパケット４２の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット４２の前方直近のＴＳパケットは、ＴＳパケット３３となる。
【００７５】
切り出し部２３３は、ＰＡＴパケット群２２２ｃに含まれるＴＳパケットのうち、ＴＳパケット１２〜３３に含まれるＴＳパケットを、切り出し範囲のＴＳパケットとする。
【００７６】
ＰＭＴパケット群２２２ｄを処理する場合について説明する。切り出し部２３３は、図１１〜図１４において説明した、切り出し範囲に含まれるＴＳパケットを比較し、シリアル番号が最も小さいＴＳパケットと、シリアル番号が最も大きいＴＳパケットを特定する。例えば、図１５において、シリアル番号が最も小さいＴＳパケットを、ＴＳパケット１５とする。シリアル番号が最も大きいＴＳパケットを、ＴＳパケット４２とする。
【００７７】
切り出し部２３３は、ＰＭＴパケット群２２２ｄに含まれるＴＳパケットのうち、ＴＳパケット１５の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット１５の前方直近のＴＳパケットは、ＴＳパケット１３となる。例えば、切り出し部２３３は、ＴＳパケットのシリアル番号を利用して、前方直近のＴＳパケットと特定してもよい。
【００７８】
切り出し部２３３は、ＰＭＴパケット群２２２ｄに含まれるＴＳパケットのうち、ＴＳパケット４２の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット４２の前方直近のＴＳパケットは、ＴＳパケット３４となる。
【００７９】
切り出し部２３３は、ＰＭＴパケット群２２２ｄに含まれるＴＳパケットのうち、ＴＳパケット１３〜３４に含まれるＴＳパケットを、切り出し範囲のＴＳパケットとする。
【００８０】
ＰＣＲパケット群２２２ｅを処理する場合について説明する。切り出し部２３３は、図１１〜図１４において説明した、切り出し範囲に含まれるＴＳパケットを比較し、シリアル番号が最も小さいＴＳパケットと、シリアル番号が最も大きいＴＳパケットを特定する。例えば、図１５において、シリアル番号が最も小さいＴＳパケットを、ＴＳパケット１５とする。シリアル番号が最も大きいＴＳパケットを、ＴＳパケット４２とする。
【００８１】
ＰＣＲパケット群２２２ｅに含まれるＴＳパケットのうち、ＴＳパケット１５の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット１５の前方直近のＴＳパケットは、ＴＳパケット１４となる。例えば、切り出し部２３３は、ＴＳパケットのシリアル番号を利用して、前方直近のＴＳパケットと特定してもよい。
【００８２】
切り出し部２３３は、ＰＣＲパケット群２２２ｅに含まれるＴＳパケットのうち、ＴＳパケット４２の前方直近のＴＳパケットを特定する。例えば、ＴＳパケット４２の前方直近のＴＳパケットは、ＴＳパケット３５となる。
【００８３】
切り出し部２３３は、ＰＣＲパケット群２２２ｅに含まれるＴＳパケットのうち、ＴＳパケット１４〜３５に含まれるＴＳパケットを、切り出し範囲のＴＳパケットとする。
【００８４】
上記図１１〜図１５に示した処理を切り出し部２３３が実行することにより、切り出し範囲に含まれるＴＳパケットが特定される。すなわち、映像パケット群２２２ａでは、切り出し範囲に含まれるＴＳパケットは、ＴＳパケット１５〜２６となる。音声パケット群２２２ｂでは、切り出し範囲に含まれるＴＳパケットは、ＴＳパケット１８〜４２となる。ＰＡＴパケット群２２２ｃでは、切り出し範囲に含まれるＴＳパケットは、ＴＳパケット１２〜３３となる。ＰＭＴパケット群２２２ｄでは、切り出し範囲に含まれるＴＳパケットは、ＴＳパケット１３〜３４となる。ＰＣＲパケット群２２２ｅでは、切り出し範囲に含まれるＴＳパケットは、ＴＳパケット１４〜３５となる。
【００８５】
続いて、切り出し範囲に含まれるＴＳパケットを基に部分ストリームデータ２２３を生成する処理について説明する。図１６、図１７は、ストリームデータを生成する処理を説明するための図である。図１６に示すように、例えば、切り出し部２３３は、切り出し範囲に含まれるＴＳパケットを抜き出して、シリアル番号の昇順に並べる。
【００８６】
切り出し部２３３は、シリアル番号の昇順に並べたＴＳパケットを走査し、シリアル番号が抜ける部分をＮＵＬＬパケットで補う。例えば、図１７に示す例では、ＴＳパケット１８〜２３、２６〜３２の間で、シリアル番号が抜けている。このため、切り出し部２３３は、ＴＳパケット１９〜２２の代わりとなるＮＵＬＬパケットを挿入し、シリアル番号を付与する。また、切り出し部２３３は、ＴＳパケット２７〜３１の代わりとなるＮＵＬＬパケットを挿入し、シリアル番号を付与する。
【００８７】
部分署名データ２２４を生成する処理について説明する。図１８は、部分署名データを生成する処理を説明するための図である。
【００８８】
切り出し部２３３は、映像パケット群２２２ａのうち、切り出し範囲に含まれないＴＳパケットから、映像前ハッシュ値および映像後ハッシュ値を算出する。図１８において、切り出し部２３３は、映像パケット群２２２ａのＴＳパケット１５の前方に位置するＴＳパケット群５Ａに対して、二分技法を適用することで、映像前ハッシュ値を求める。また、切り出し部２３３は、映像パケット群２２２ａのＴＳパケット２６の後方に位置するＴＳパケット群５Ｂに対して、二分技法を適用することで、映像後ハッシュ値を求める。
【００８９】
切り出し部２３３は、音声パケット群２２２ｂのうち、切り出し範囲に含まれないＴＳパケットから、音声前ハッシュ値および音声後ハッシュ値を算出する。図１８において、切り出し部２３３は、音声パケット群２２２ｂのＴＳパケット１８の前方に位置するＴＳパケット群６Ａに対して、二分技法を適用することで、音声前ハッシュ値を求める。また、切り出し部２３３は、音声パケット群２２２ｂのＴＳパケット４２の後方に位置するＴＳパケット群６Ｂに対して、二分技法を適用することで、音声後ハッシュ値を求める。
【００９０】
切り出し部２３３は、ＰＡＴパケット群２２２ｃのうち、切り出し範囲に含まれないＴＳパケットから、ＰＡＴ前ハッシュ値およびＰＡＴ後ハッシュ値を算出する。図１８において、切り出し部２３３は、ＰＡＴパケット群２２２ｃのＴＳパケット１２の前方に位置するＴＳパケット群７Ａに対して、二分技法を適用することで、ＰＡＴ前ハッシュ値を求める。また、切り出し部２３３は、ＰＡＴパケット群２２２ｃのＴＳパケット３３の後方に位置するＴＳパケット群７Ｂに対して、二分技法を適用することで、ＰＡＴ後ハッシュ値を求める。なお、切り出し部２３３は、ＴＳパケットが存在しない場合には、ハッシュ値を所定の値にしてもよい。
【００９１】
切り出し部２３３は、ＰＭＴパケット群２２２ｄのうち、切り出し範囲に含まれないＴＳパケットから、ＰＭＴ前ハッシュ値およびＰＭＴ後ハッシュ値を算出する。図１８において、切り出し部２３３は、ＰＭＴパケット群２２２ｄのＴＳパケット１３の前方に位置するＴＳパケット群８Ａに対して、二分技法を適用することで、ＰＭＴ前ハッシュ値を求める。また、切り出し部２３３は、ＰＭＴパケット群２２２ｄのＴＳパケット３４の後方に位置するＴＳパケット群８Ｂに対して、二分技法を適用することで、ＰＭＴ後ハッシュ値を求める。
【００９２】
切り出し部２３３は、ＰＣＲパケット群２２２ｅのうち、切り出し範囲に含まれないＴＳパケットから、ＰＣＲ前ハッシュ値およびＰＣＲ後ハッシュ値を算出する。図１８において、切り出し部２３３は、ＰＣＲパケット群２２２ｅのＴＳパケット１４の前方に位置するＴＳパケット群９Ａに対して、二分技法を適用することで、ＰＣＲ前ハッシュ値を求める。また、切り出し部２３３は、ＰＣＲパケット群２２２ｅのＴＳパケット３５の後方に位置するＴＳパケット群９Ｂに対して、二分技法を適用することで、ＰＣＲ後ハッシュ値を求める。
【００９３】
切り出し部２３３は、映像前ハッシュ値、映像後ハッシュ値、音声前ハッシュ値、音声後ハッシュ値、ＰＡＴ前ハッシュ値、ＰＡＴ後ハッシュ値を部分署名データ２２４に含める。また、切り出し部２３３は、ＰＭＴ前ハッシュ値、ＰＭＴ後ハッシュ値、ＰＣＲ前ハッシュ値、ＰＣＲ後ハッシュ値を部分署名データ２２４に含める。また、切り出し部２３３は、部分ストリームデータ２２３の先頭のＴＳパケットのシリアル番号を、部分署名データ２２４に含める。部分ストリームデータ２２３の先頭のＴＳパケットのシリアル番号を先頭シリアル番号情報と表記する。
【００９４】
図１９は、部分署名データのデータ構造の一例を示す図である。図１９に示すように、部分署名データ２２４は、映像前ハッシュ値２２５ａ、映像後ハッシュ値２２５ｂ、音声前ハッシュ値２２６ａ、音声後ハッシュ値２２６ｂ、ＰＡＴ前ハッシュ値２２７ａ、ＰＡＴ後ハッシュ値２２７ｂを含む。また、部分署名データ２２４は、ＰＭＴ前ハッシュ値２２８ａ、ＰＭＴ後ハッシュ値２２８ｂ、ＰＣＲ前ハッシュ値２２９ａ、ＰＣＲ後ハッシュ値２２９ｂを含む。また、部分署名データ２２４は、先頭シリアル番号データ２２４ａを含む。
【００９５】
部分ストリームデータ出力部２３４は、部分ストリームデータ２２３と部分署名データ２２４を、原本検証装置３００に出力する。
【００９６】
次に、原本検証装置３００の構成について説明する。図２０は、原本検証装置の構成を示す機能ブロック図である。図２０に示すように、この原本検証装置３００は、通信部３０１、インターフェース部３１０、記憶部３２０、制御部３３０を有する。
【００９７】
通信部３０１は、他の装置とネットワークを介してデータ通信を行う処理部である。例えば、通信部３０１は、所定の通信プロトコルを用いて通信を行う通信装置に対応する。通信部３０１は、署名装置１００から、署名データを受信する。また、通信部３０１は、切り出し装置２００から、部分ストリームデータ２２３、部分署名データ２２４を受信する。
【００９８】
インターフェース部３１０は、各種のデータを入出力する入出力装置である。
【００９９】
記憶部３２０は、部分ストリームデータ３２１、分割データ３２２、部分署名データ３２３、ハッシュ値データ群３２４、署名データ３２５を記憶する記憶部である。記憶部３２０は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【０１００】
部分ストリームデータ３２１は、切り出し装置２００から受信するデータである。部分ストリームデータ３２１は、図９に示した部分ストリームデータ２２４に対応する。
【０１０１】
分割データ３２２は、部分ストリームデータ３２１を、ＴＳパケットの種別毎に分類したデータである。部分署名データ３２３は、切り出し装置２００から受信するデータである。部分署名データ３２３は、図９に示した部分署名データ２２４に対応する。
【０１０２】
ハッシュ値データ群３２４は、分割データ３２２、部分署名データ３２３に基づいて算出されるハッシュ値である。署名データ３２５は、署名装置１００から受信するデータである。署名データ３２５は、図２に示した署名データ１２３に対応する。
【０１０３】
制御部３３０は、シリアル番号付与部３３１、分割部３３２、原本検証部３３３、検証結果出力部３３４を有する。制御部３３０は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部３３０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。
【０１０４】
シリアル番号付与部３３１は、部分ストリームデータ３２１の各ＴＳパケットに対して、シリアル番号を付与する処理部である。シリアル番号付与部３３１は、シリアル番号を付与する場合に、部分署名データ３２３の先頭シリアル番号データを参照する。シリアル番号付与部３３１は、先頭シリアル番号データのシリアル番号を開始のシリアル番号として、部分ストリームデータ３２１の各ＴＳパケットに昇順でシリアル番号を付与する。
【０１０５】
図２１は、シリアル番号を付与した部分ストリームデータの一例を示す図である。図２１に示す各ＴＳパケット、ＮＵＬＬパケットは、上記のものと同様である。図２１に示す例では、シリアル番号付与部３３１は、ＴＳパケット１２のシリアル番号を、先頭シリアル番号データに応じたシリアル番号に設定する。そして、シリアル番号付与部３３１は、ＴＳパケット１２から順に、ＮＵＬＬパケットを含めて、シリアル番号を付与する。
【０１０６】
分割部３３２は、部分ストリームデータ３２１を、ＴＳパケットの種別毎に分割することで、分割データ３２２を生成する処理部である。図２２は、分割部の処理を説明するための図（３）である。分割部３３２の処理は、上記分割部１３２と同様であるが、部分ストリームデータ３２１に含まれるＮＵＬＬパケットを除外して、処理を実行する。
【０１０７】
分割部３３２は、部分ストリームデータ３２１に基づいて、映像パケット群３２２ａ、音声パケット群３２２ｂ、ＰＡＴパケット群３２２ｃ、ＰＭＴパケット分３２２ｄ、ＰＣＲパケット群３２２ｅを生成する。分割データ３２２は、映像パケット群３２２ａ、音声パケット群３２２ｂ、ＰＡＴパケット群３２２ｃ、ＰＭＴパケット群３２２ｄ、ＰＣＲパケット群３２２ｅを含む。
【０１０８】
原本検証部３３３は、部分ストリームデータ３２１が、原本ストリームデータから確かに切り出されたものであるか否かの原本検証を実行する処理部である。
【０１０９】
まず、原本検証部３３３は、ハッシュ関数を利用して、ＴＳパケット毎のハッシュ値を求める。図２３は、原本検証部３３３の処理を説明するための図（１）である。
【０１１０】
図２３に示すように、原本検証部３３３は、映像パケット群３２２ａのＴＳパケット毎にハッシュ値を求める。例えば、原本検証部３３３は、ＴＳパケット１５〜１７から、Ｖハッシュ値１５ａ〜１７ａをそれぞれ求める。原本検証部３３３は、映像パケット群３２２ａに含まれる他のＴＳパケットからも同様にＶハッシュ値を求める。各Ｖハッシュ値を、Ｖハッシュ群３２２ａａとする。
【０１１１】
原本検証部３３３は、音声パケット群３２２ｂのＴＳパケット毎にハッシュ値を求める。例えば、原本検証部３３３は、ＴＳパケット１８から、Ａハッシュ値１８ａを求める。原本検証部３３３は、音声パケット群３２２ｂに含まれる他のＴＳパケットからも同様にＡハッシュ値を求める。各Ａハッシュ値を、Ａハッシュ群３２２ｂｂとする。
【０１１２】
原本検証部３３３は、ＰＡＴパケット群３２２ｃのＴＳパケット毎にハッシュ値を求める。例えば、原本検証部３３３は、ＴＳパケット１２から、ＰＡＴハッシュ値１２ａを求める。原本検証部３３３は、ＰＡＴパケット群３２２ｃに含まれる他のＴＳパケットからも同様にＰＡＴハッシュ値を求める。各ＰＡＴハッシュ値を、ＰＡＴハッシュ群３２２ｃｃとする。
【０１１３】
原本検証部３３３は、ＰＭＴパケット群３２２ｄのＴＳパケット毎にハッシュ値を求める。例えば、原本検証部３３３は、ＴＳパケット１３から、ＰＭＴハッシュ値１３ａを求める。原本検証部３３３は、ＰＭＴパケット群３２２ｄに含まれる他のＴＳパケットからも同様にＰＭＴハッシュ値を求める。各ＰＭＴハッシュ値を、ＰＭＴハッシュ群３２２ｄｄとする。
【０１１４】
原本検証部３３３は、ＰＣＲパケット群３２２ｅのＴＳパケット毎にハッシュ値を求める。例えば、原本検証部３３３は、ＴＳパケット１４から、ＰＣＲハッシュ値１４ａを求める。原本検証部３３３は、ＰＣＲパケット群３２２ｅに含まれる他のＴＳパケットからも同様にＰＣＲハッシュ値を求める。各ＰＣＲハッシュ値を、ＰＣＲハッシュ群３２２ｅｅとする。
【０１１５】
図２４は、原本検証部の処理を説明するための図（２）である。図２４の映像前ハッシュ値２２５ａ、映像後ハッシュ値２２５ｂ、音声前ハッシュ値２２６ａ、音声後ハッシュ値２２６ｂ、ＰＡＴ前ハッシュ値２２７ａ、ＰＡＴ後ハッシュ値２２７ｂは、図１９に示した各ハッシュ値と同様である。原本検証部３３３は、部分署名データ３２３から、上記各ハッシュ値を取得する。
【０１１６】
原本検証部３３３は、Ｖハッシュ群３２２ａａの前方に映像前ハッシュ値２２５ａを配置し、Ｖハッシュ群３２２ａａの後方に映像後ハッシュ値２２５ｂを配置してＶハッシュ値群３２０ａを作成する。原本検証部３３３は、Ｖハッシュ値群３２０ａに対して、ＳＨＡ２５６等の二分技法を用いることで、映像ハッシュ値３２４ａを生成する。
【０１１７】
原本検証部３３３は、Ａハッシュ群３２２ｂｂの前方に音声前ハッシュ値２２６ａを配置し、Ａハッシュ群３２２ｂｂの後方に音声後ハッシュ値２２６ｂを配置してＡハッシュ値群３２０ｂを作成する。原本検証部３３３は、Ａハッシュ値群３２０ｂに対して、ＳＨＡ２５６等の二分技法を用いることで、音声ハッシュ値３２４ｂを生成する。
【０１１８】
原本検証部３３３は、ＰＡＴハッシュ群３２２ｃｃの前方にＰＡＴ前ハッシュ値２２７ａを配置し、ＰＡＴハッシュ値群３２２ｃｃの後方にＰＡＴ後ハッシュ値２２７ｂを配置してＰＡＴハッシュ群３２０ｃを作成する。原本検証部３３３は、ＰＡＴハッシュ値群３２０ｃに対して、ＳＨＡ２５６等の二分技法を用いることで、ＰＡＴハッシュ値３２４ｃを生成する。
【０１１９】
原本検証部３３３は、ＰＭＴハッシュ群３２２ｄｄの前方にＰＭＴ前ハッシュ値２２８ａを配置し、ＰＭＴハッシュ群３２２ｄｄの後方にＰＭＴ後ハッシュ値２２８ｂを配置してＰＭＴハッシュ値群３２０ｄを作成する。原本検証部３３３は、ＰＭＴハッシュ値群３２０ｄに対して、ＳＨＡ２５６等の二分技法を用いることで、ＰＭＴハッシュ値３２４ｄを生成する。
【０１２０】
原本検証部３３３は、ＰＣＲハッシュ群３２２ｅｅの前方にＰＣＲ前ハッシュ値２２９ａを配置し、ＰＣＲハッシュ群３２２ｅｅの後方にＰＣＲ後ハッシュ値２２９ｂを配置してＰＣＲハッシュ値群３２０ｅを作成する。原本検証部３３３は、ＰＣＲハッシュ値群３２０ｅに対して、ＳＨＡ２５６等の二分技法を用いることで、ＰＣＲハッシュ値３２４ｅを生成する。
【０１２１】
原本検証部３３３は、映像ハッシュ値３２４ａ、音声ハッシュ値３２４ｂ、ＰＡＴハッシュ値３２４ｃ、ＰＭＴハッシュ値３２４ｄ、ＰＣＲハッシュ値３２４ｅをまとめて、ハッシュ値データ群３２４とする。
【０１２２】
図２５は、原本検証部の処理を説明するための図（３）である。原本検証部３３３は、ハッシュ値データ群３２４と、署名データ３２５とを比較して、原本検証を実行する。
【０１２３】
図２５に示すように、原本検証部３３３は、映像ハッシュ値３２４ａと原本映像ハッシュ値３２５ａとを比較する。原本検証部３３３は、音声ハッシュ値３２４ｂと原本音声ハッシュ値３２５ｂとを比較する。原本検証部３３３は、ＰＡＴハッシュ値３２４ｃと原本ＰＡＴハッシュ値３２５ｃとを比較する。原本検証部３３３は、ＰＭＴハッシュ値３２４ｄと原本ＰＭＴハッシュ値３２５ｄとを比較する。原本検証部３３３は、ＰＣＲハッシュ値３２４ｅと原本ＰＣＲハッシュ値３２５ｅとを比較する。原本検証部３３３は、比較した各ハッシュ値が全て等しい場合に、部分ストリームデータ３２１が、原本ストリームデータから確かに切り出されたものであると判定する。原本検証部３３３は、原本検証結果を、検証結果出力部３３４に出力する。
【０１２４】
検証結果出力部３３４は、原本検証部３３３の検証結果を出力する処理部である。検証結果出力部３３４は、例えば、ディスプレイ等の表示装置に、検証結果を出力してもよい。
【０１２５】
次に、図２に示した署名装置１００の処理手順について説明する。図２６は、署名装置の処理手順を示すフローチャートである。例えば、図２６に示す処理は、原本ストリームデータ１２１が記憶部１２０に格納されたことを契機に実行される。
【０１２６】
図２６に示すように、署名装置１００は、原本ストリームデータ１２１に含まれるＴＳパケットに対し、先頭のＴＳパケットから順に、１から連続したシリアル番号を付与する（ステップＳ１０１）。署名装置１００は、ＰＩＤを基にして、原本ストリームデータ１２１のＴＳパケットをプログラム毎およびメディア種別毎に分割して、分割データ１２２を生成する（ステップＳ１０２）。
【０１２７】
署名装置１００は、ＴＳパケット毎にハッシュ値を計算する（ステップＳ１０３）。署名装置１００は、原本映像ハッシュ値１２３ａ、原本音声ハッシュ値１２３ｂ、原本ＰＡＴハッシュ値１２３ｃ、原本ＰＭＴハッシュ値１２３ｄ、原本ＰＣＲハッシュ値１２３ｅを計算する（ステップＳ１０４）。そして、署名装置１００は、署名データ１２３を生成する（ステップＳ１０５）。
【０１２８】
次に、図９に示した切り出し装置２００の処理手順について説明する。図２７は、切り出し装置の処理手順を示すフローチャートである。例えば、図２７に示す処理は、原本ストリームデータ２２１が記憶部２２０に格納されたことを契機にして実行される。
【０１２９】
図２７に示すように、切り出し装置２００は、原本ストリームデータ２２１に含まれるＴＳパケットに対し、先頭のＴＳパケットから順に、１から連続したシリアル番号を付与する（ステップＳ２０１）。切り出し装置２００は、ＰＩＤを基にして、原本ストリームデータ２２１のＴＳパケットをブログラム毎およびメディア種別毎に分割し、分割データ２２２を生成する（ステップＳ２０２）。
【０１３０】
切り出し装置２００は、切り出し時刻情報を取得し、切り出し範囲を特定し（ステップＳ２０３）、切り出し範囲に含まれるＴＳパケットを切り出す（ステップＳ２０４）。切り出し装置２００は、切り出したＴＳパケットを、シリアル番号に基づいて多重化する（ステップＳ２０５）。切り出し装置２００は、シリアル番号が連続にならない部分に、ＮＵＬＬパケットを挿入し、部分ストリームデータ２２３を生成する（ステップＳ２０６）。
【０１３１】
切り出し装置２００は、切り出し範囲に含まれない前後のＴＳパケットから、ハッシュ値を算出し（ステップＳ２０７）、部分署名データ２２４を生成する（ステップＳ２０８）。
【０１３２】
次に、図２０に示した原本検証装置３００の処理手順について説明する。図２８は、原本検証装置の処理手順を示すフローチャートである。例えば、図２８に示す処理は、原本検証装置３００が、切り出し装置２００から部分ストリームデータおよび部分署名データを取得し、署名装置１００から署名データを取得したことを契機にして実行される。
【０１３３】
図２８に示すように、原本検証装置３００は、部分ストリームデータ３２１、部分署名データ３２３、署名データ３２５を取得する（ステップＳ３０１）。原本検証部３３３は、部分ストリームデータ３２１に含まれるＴＳパケットに対し、先頭のＴＳパケットから順に、先頭シリアル番号データに応じた番号から連続したシリアル番号を付与する（ステップＳ３０２）。
【０１３４】
原本検証部３３３は、ＰＩＤを基にして、部分ストリームデータ３２１のＴＳパケットをプログラム毎およびメディア種別毎に分割し、分割データ３２２を生成する（ステップＳ３０３）。原本検証部３３３は、ＴＳパケット毎にハッシュ値を計算する（ステップＳ３０４）。原本検証部３３３は、部分署名データ３２３を利用して、映像ハッシュ値、音声ハッシュ値、ＰＡＴハッシュ値、ＰＭＴハッシュ値、ＰＣＲハッシュ値を計算する（ステップＳ３０５）。
【０１３５】
原本検証部３３３は、ハッシュ値データ群３２４と署名データ２３５とを比較して、原本検証を実行する（ステップＳ３０６）。原本検証部３３３は、検証結果を出力する（ステップＳ３０７）。
【０１３６】
次に、本実施例にかかる原本検証部３３３の効果について説明する。原本検証部３３３は、部分ストリームデータ３２１に含まれる各ＴＳパケットに対して連続するシリアル番号を付与した後に、部分ストリームデー３２１タを種別毎に分割し、シリアル番号を含めて分割した単位毎にハッシュ値を求めることで、原本検証を実行する。このため、個々のＴＳパケットのハッシュ値が一致しているか否かだけでなく、ＴＳパケットの順番も考慮に入れて、原本検証を実行できる。
【０１３７】
ところで、上述した署名装置１００、切り出し装置２００、原本検証装置３００の処理は一例である。例えば、署名装置１００は、ＴＳパケット毎にシリアル番号を付与していたがこれに限定されるものではない。署名装置１００は、所定のＴＳパケットの個数毎に、シリアル番号を付与してもよい。例えば、署名装置１００は、ＴＳパケット１〜１０にシリアル番号１を付与し、ＴＳパケット１１〜２０にシリアル番号２を付与し、ＴＳパケットｎ〜ｍに、シリアル番号ｘを付与する。ここで、ｎ、ｍ、ｘは、自然数である。例えば、署名装置１００は、ＰＥＳパケット単位またはＧＯＰパケットの単位で、シリアル番号を付与してもよい。このように、複数のＴＳパケットにまとめて同一のシリアル番号を付すことで、処理負荷を軽減させることができる。
【０１３８】
署名装置１００が、上記手法でシリアル番号を付与する場合には、切り出し装置２００、原本検証装置３００も同様の手法によって、シリアル番号を付与するものとする。
【０１３９】
また、本実施例では一例として、署名装置１００、切り出し装置２００、原本検証装置３００が、別々の装置となる場合について説明したが、何れかの装置同士の機能を統合してもよい。例えば、署名装置１００、切り出し装置２００、原本検証装置３００の各機能を統合した装置としてもよい。また、署名装置１００および切り出し装置２００の機能を統合した装置としてもよい。また、切り出し装置２００および原本検証装置３００の機能を統合した装置としてもよい。また、署名装置１００および原本検証装置３００の機能を統合した装置としてもよい。
【０１４０】
次に、図２０に示した原本検証装置３００と同様の機能を実現する原本検証プログラムを実行するコンピュータの一例を説明する。図２９は、原本検証プログラムを実行するコンピュータの一例を示す図である。
【０１４１】
図２９に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータの入力を受け付ける入力装置４０２と、ディスプレイ４０３を有する。また、コンピュータ４００は、記憶媒体からプログラム等を読取る読み取り装置４０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置４０５とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６と、ハードディスク装置４０７を有する。そして、各装置４０１〜４０７は、バス４０８に接続される。
【０１４２】
ハードディスク装置４０７は、シリアル番号付与プログラム４０７ａ、分割プログラム４０７ｂ、原本検証プログラム４０７ｃを記憶する。ＣＰＵ４０１は、各プログラム４０７ａ〜４０７ｃを読み出して、ＲＡＭ４０６に展開する。シリアル番号付与プログラム４０７ａは、シリアル番号付与プロセス４０６ａとして機能する。分割プログラム４０７ｂは、分割プロセス４０６ｂとして機能する。原本検証プログラム４０７ｃは、原本検証プロセス４０６ｃとして機能する。
【０１４３】
例えば、シリアル番号付与プロセス４０６ａは、シリアル番号付与部３３１に対応する。分割プロセス４０６ｂは、分割部３３２に対応する。原本検証プロセス４０６ｃは、原本検証部３３３に対応する。
【０１４４】
なお、各プログラム４０７ａ〜４０７ｃについては、必ずしも最初からハードディスク装置４０７に記憶させておかなくてもよい。例えば、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ４００がこれらから各プログラム４０７ａ〜４０７ｃを読み出して実行するようにしてもよい。
【０１４５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１４６】
（付記１）コンピュータが実行する原本検証方法であって、
複数の要素のパケットが多重化された原本のストリームデータにシリアル番号を付与した後にハッシュ値を求めることで算出された署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を取得し、
前記一部のストリームデータの先頭のシリアル番号を始点として、前記一部のストリームデータに含まれる各パケットにシリアル番号を付し、
前記一部のストリームデータのパケットを要素毎に分類し、分類した各パケットのハッシュ値と、前記前後のハッシュ値とを基にして、要素毎のハッシュ値を算出し、
算出したハッシュ値と前記署名データとを基にして、前記一部のストリームデータが前記原本のストリームデータに含まれるデータであるか否かを検証する
各処理を実行することを特徴とする原本検証方法。
【０１４７】
（付記２）前記シリアル番号を付す処理は、所定の個数のパケット毎にシリアル番号を順次付与することを特徴とする付記１に記載の原本検証方法。
【０１４８】
（付記３）コンピュータに、
複数の要素のパケットが多重化された原本のストリームデータにシリアル番号を付与した後にハッシュ値を求めることで算出された署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を取得し、
前記一部のストリームデータの先頭のシリアル番号を始点として、前記一部のストリームデータに含まれる各パケットにシリアル番号を付し、
前記一部のストリームデータのパケットを要素毎に分類し、分類した各パケットのハッシュ値と、前記前後のハッシュ値とを基にして、要素毎のハッシュ値を算出し、
算出したハッシュ値と前記署名データとを基にして、前記一部のストリームデータが前記原本のストリームデータに含まれるデータであるか否かを検証する
各処理を実行させることを特徴とする原本検証プログラム。
【０１４９】
（付記４）前記シリアル番号を付す処理は、所定の個数のパケット毎にシリアル番号を順次付与することを特徴とする付記３に記載の原本検証プログラム。
【０１５０】
（付記５）複数の要素のパケットが多重化された原本のストリームデータにシリアル番号を付与した後にハッシュ値を求めることで算出された署名データと、原本のストリームデータに含まれる一部のストリームデータと、前記一部のストリームデータの先頭のシリアル番号と、前記一部のストリームデータの前後のハッシュ値を記憶する記憶部と、
前記一部のストリームデータの先頭のシリアル番号を始点として、前記一部のストリームデータに含まれる各パケットにシリアル番号を付すシリアル番号付与部と、
前記ストリームデータのパケットを要素毎に分類する分割部と、
前記分割部が分類した各パケットのハッシュ値を基にして、要素毎のハッシュ値を算出し、算出したハッシュ値と前記署名データとを基にして、前記一部のストリームデータが前記原本のストリームデータに含まれるデータであるか否かを検証する原本検証部と
を有することを特徴とする原本検証装置。
【０１５１】
（付記６）前記シリアル番号付与部は、所定の個数のパケット毎にシリアル番号を順次付与することを特徴とする付記５に記載の原本検証装置。
【符号の説明】
【０１５２】
１００  署名装置
２００  切り出し装置
３００  原本検証装置
【図１】
0005691921.tif 000002
【図２】
0005691921.tif 000003
【図３】
0005691921.tif 000004
【図４】
0005691921.tif 000005
【図５】
0005691921.tif 000006
【図６】
0005691921.tif 000007
【図７】
0005691921.tif 000008
【図８】
0005691921.tif 000009
【図９】
0005691921.tif 000010
【図１０】
0005691921.tif 000011
【図１１】
0005691921.tif 000012
【図１２】
0005691921.tif 000013
【図１３】
0005691921.tif 000014
【図１４】
0005691921.tif 000015
【図１５】
0005691921.tif 000016
【図１６】
0005691921.tif 000017
【図１７】
0005691921.tif 000018
【図１８】
0005691921.tif 000019
【図１９】
0005691921.tif 000020
【図２０】
0005691921.tif 000021
【図２１】
0005691921.tif 000022
【図２２】
0005691921.tif 000023
【図２３】
0005691921.tif 000024
【図２４】
0005691921.tif 000025
【図２５】
0005691921.tif 000026
【図２６】
0005691921.tif 000027
【図２７】
0005691921.tif 000028
【図２８】
0005691921.tif 000029
【図２９】
0005691921.tif 000030