(57)【要約】【課題】署名生成装置において署名生成の有無が設定可能である場合、署名が付与されていないデータが、改竄によって署名データが削除されたのか、署名生成装置における設定によるものであるのか、判断できないという問題があった。【解決手段】連続的に複数のデータを取得し、取得した取得データについて、署名データの生成を行う。また、署名生成装置が署名データの生成を行わない状態に制御されている場合には、取得データの数をカウントする。そして、署名生成装置において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合には、取得データおよび取得データのカウンタ値に基づいて、署名データを生成する。【選択図】図１
2011234335.tif 000002
【特許請求の範囲】
【請求項１】
連続的に複数のデータを取得するデータ取得手段と、
前記データ取得手段において取得される取得データについて、署名データの生成を行うか否かを制御する制御手段と、
前記制御手段によって署名データの生成を行わない状態に制御されている場合には、前記取得データの数をカウントするカウント手段と、
前記制御手段において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合に、前記取得データ、および前記カウント手段にてカウントされたカウンタ値に基づいて、署名データを生成する署名データ生成手段と、
を有することを特徴とする署名生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視カメラ等の撮像装置で撮影された映像（画像）に電子署名してネットワークを介して発信・記録する署名生成装置に関し、特に、複数に分割された映像データに電子署名技術を用いる署名生成装置に関する。
【背景技術】
【０００２】
従来から、ホテルやビル、コンビニエンスストアや金融機関、或いはダムや道路といった公共施設には、犯罪抑止や事故防止等の目的で、映像監視システムが設置されている。映像監視システムでは、監視対象をカメラ等の撮像装置で撮影し、撮影した映像を管理事務所や警備室等の監視センタへ伝送し、監視者がその映像を監視して、目的や必要性に応じて、注意や警告をし、或いは映像を録画や保存する。
【０００３】
近年、このような映像監視システムの分野において、ネットワーク型の映像監視システムの普及が進みつつある。ネットワーク型の映像監視システムでは、監視カメラ映像をデジタル化して、インターネットに代表されるＩＰネットワークを介して、映像を伝送して監視を行う。
【０００４】
現在、主流となっているネットワーク型映像監視システムでは、監視カメラに接続された映像発信装置から映像受信装置に向けて、ネットワークを介してライブ映像を配信する。このシステムは、常駐の監視者が、配信された映像（及び音声）を常時視聴し、問題発生時には状況に応じた対応をするといった監視形態に適合したシステムとなっている。
【０００５】
一方、映像監視としては、上述のようなライブ映像監視を主体とする「ライブ型監視」の他に、「監視映像を記録や保存して、問題発生時に時間を遡って記録映像を見る」といった「記録型監視」の監視形態もあり、金融機関や商店を中心にこうした「記録型監視」の顧客ニーズが存在する。
【０００６】
ネットワーク型映像監視システムでは、このような「記録型監視」のニーズに対応可能な「蓄積配信サーバ」を用いることが可能である。
【０００７】
また、映像の証拠性を高めるために、映像データに対し、電子署名を行って、ネットワークに流れる映像データ及び記録された映像データの改竄の検知を可能にする署名つきネットワーク型映像監視システムの普及が進みつつある。
【０００８】
図５は、このようなネットワーク型映像監視システムとして使用可能な映像配信システムの構成例を示す。図５に示す映像監視システムは、ネットワーク媒体９０１、映像生成装置９０２、映像発信装置９０３、映像受信装置９０４、映像表示装置９０５Ａ及び９０５Ｂ、蓄積配信サーバ９０６、記録媒体９０７、リムーバブルメディア９０８、署名検証装置９０９、署名生成装置９１０により構成される。
【０００９】
ネットワーク媒体９０１は、例えば、ネットワークケーブルや無線ＬＡＮ、公衆回線等であり、発信されたデータを伝送する役割を持つ。また、ここにはルータやハブ等のネットワーク機器も含む。映像発信装置９０３、映像受信装置９０４、蓄積配信サーバ９０６、署名生成装置９１０は、ネットワーク媒体９０１に接続され、互いに通信できるようになっている。
【００１０】
映像生成装置９０２は、例えば、カメラといった撮像素子を持った映像生成装置であり、入力される光を電気信号に変換して映像データを生成する役割を持つ。
【００１１】
映像発信装置９０３は、例えば、映像生成装置９０２からの映像データを受け取るインターフェイス、画像コーデック、ネットワークインターフェイス等を内蔵したエンコーダ装置であり、映像生成装置９０２からの入力映像をネットワーク伝送に適した形に変換し、ネットワーク媒体９０１を介して署名生成装置９１０に送信する役割を持つ。具体的には、例えば、映像生成装置９０２からの入力映像がアナログ映像信号であった場合にはデジタル映像データに変換したり、ネットワーク媒体９０１の伝送帯域によって圧縮処理を施す等の処理を行う。なお、映像生成装置９０２と映像発信装置９０３とは、１つの装置として結合された形態であってもよい。
【００１２】
映像受信装置９０４は、例えば、ネットワークインターフェイス、画像コーデック、映像表示装置９０５Ａに映像を出力するインターフェイス、リムーバブルメディア９０８へのインターフェイス等を内蔵したデコーダ装置であり、ネットワーク媒体９０１を介して蓄積配信サーバから送信されてきた映像データを受信し、映像表示装置９０５Ａが表示可能な形に変換し出力する等の役割を持つ。例えば、映像表示装置９０５Ａがテレビモニタであった場合には、アナログ映像信号への変換処理を行ったり、受信した映像データが圧縮された映像データであった場合には、画像コーデックを使って伸張処理を施す等の処理を行う。
【００１３】
また、映像受信装置９０４は、蓄積配信サーバ９０６より署名付きの映像を受信し、受信した署名情報および映像データを署名検証装置９０９において検証可能な方式でリムーバブルメディア９０８に保存する。この保存処理は、映像受信装置９０４を操作するユーザの指定によってなされてもよいし、映像受信装置９０４内のソフトウェアによって自動的になされてもよい。
【００１４】
映像表示装置９０５Ａ、９０５Ｂは、例えば、テレビモニタ、コンピュータのＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶モニタといった投影素子を持った映像表示装置で、電気信号を光に変えて映像を表示する役割を持つ。
【００１５】
また、映像受信装置９０４は、蓄積配信サーバ９０６に対し、再生や早送り等の再生指示を行う操作インターフェイスも内蔵する。この操作インターフェイスは、例えば、コンピュータ画面のＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）、あるいは、映像受信装置９０４に接続された制御盤端末でも良い。
【００１６】
なお、映像受信装置９０４と映像表示装置９０５Ａとは、１つの装置として結合された形態であってもよい。例えば、テレビモニタに映像受信装置９０４が内蔵された形態、ＣＲＴを接続したコンピュータの形態、あるいは、表示装置を備えた携帯電話等の携帯端末装置の形態などが挙げられる。
【００１７】
蓄積配信サーバ９０６は、例えば、ネットワークインターフェイスや記録媒体９０７へのインターフェイスを内蔵したコンピュータであり、映像発信装置９０３あるいは署名生成装置９１０からネットワーク媒体９０１を介して伝送されてきた映像データあるいは署名付き映像データを受信して接続された記録媒体９０７に記録する役割と、映像受信装置９０４からの映像配信要求等に応じて記録媒体９０７より要求された映像データあるいは署名付き映像データを取出し、ネットワーク媒体９０１を介して映像受信装置９０４に配信する役割を持つ。
【００１８】
記録媒体９０７は、例えば、ハードディスクやディスクアレイ等の映像データを記録する媒体であり、蓄積配信サーバ９０６とは、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌといった専用のインターフェイス、または、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）等のＩＰネットワークを用いたインターフェイス等によって接続される。
【００１９】
リムーバブルメディア９０８は、例えば、ＤＶＤ−ＲＡＭ、ＭＯ、ＣＤ−ＲＷ等の光メディアとドライブの組み合わせ、あるいは、着脱可能なケースに装着されたハードディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＩＥＥＥ１３９４といった着脱可能なインターフェイスを内蔵したハードディスク、メモリカード等であり、映像データを保存する役割を持つ媒体である。リムーバブルメディア９０８は、映像受信装置９０４あるいは署名検証装置９０９とは、例えば、ＳＣＳＩ、ＡＴＡ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等の専用のインターフェイス、または、ＳＡＮやＮＡＳ等のＩＰネットワークを用いたインターフェイス、さらには、ＵＳＢやＩＥＥＥ１３９４等の通電中でも着脱可能なインターフェイス等によって接続される。
【００２０】
署名検証装置９０９は、例えば、画像コーデック、映像表示装置９０５Ｂに映像を出力するインターフェイス、リムーバブルメディア９０８へのインターフェイス等を内蔵したデコーダ装置であり、リムーバブルメディア９０８内に記録された署名付き映像データを、映像表示装置９０５Ｂが表示可能な形に変換して出力する役割を持つ。例えば、映像表示装置９０５Ｂがテレビモニタであった場合には、アナログ映像信号への変換処理を行う。また、映像データに関連づけられている署名について所定の検証鍵を用いて署名検証処理を行う。また、映像データが圧縮された映像データであった場合には、画像コーデックを使って伸張処理を施す。なお、署名検証装置９０９と映像表示装置９０５Ｂとは、１つの装置として結合された形態であってもよい。あるいは、また、署名検証装置９０９と映像受信装置９０４とは、１つの装置として結合された形態でもよい。
【００２１】
署名生成装置９１０は、例えば、ネットワークインターフェイスを内蔵した装置であり、映像発信装置９０３から受信した映像データの署名データを生成し、ネットワーク媒体９０１を介して蓄積配信サーバ９０６に送信する役割を持つ。なお、署名生成装置９１０は複数の映像発信装置９０３からの映像データを同時に処理し、署名データの生成を行う形態でもよい。
【００２２】
なお、署名生成装置９１０と映像発信装置９０３とは、１つの装置として結合された形態であってもよい。また、署名生成装置９１０と蓄積配信サーバ９０６とは、１つの装置として結合された形態であってもよい。また、署名生成装置９１０と映像発信装置９０３と蓄積配信サーバ９０６の３つの装置が１つの装置として結合された形態であってもよい。
【００２３】
また、図５においては、各装置は１台ずつである場合を示しているが、これらは互いに、複数台接続されることが可能である。また、蓄積配信サーバ９０６は、複数の署名生成装置９１０から発信されたそれぞれ異なった複数の映像データを同時に受信し記録を行いながら、さらに並行して、複数の映像受信装置９０４へ、それぞれ異なった複数の任意の映像データを同時に配信することが可能である。
【００２４】
ここで、署名生成装置９１０での映像データの署名生成、映像受信装置９０４及び署名検証装置９０９での映像データの署名検証には、鍵と呼ばれるデータが必要である。ここで、署名生成と署名検証においては、生成と検証に同じ鍵を用いる共通鍵暗号方式を応用したＨＭＡＣ（ｋｅｙｅｄ−Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）のような方式を用いても良いし、生成と検証に異なる鍵を用いる公開鍵暗号方式を応用したデジタル署名のような方式を用いても良い。
【００２５】
上記のような映像監視システムの分野における映像データの特徴として、データ量が大きいという特徴がある。これにより、ネットワーク帯域の節約や記録装置の容量の節約などの目的のために映像データを抜粋して保存する場合があるが、この場合、毎秒３０枚の異なる映像データを処理する必要があるなど、単位時間あたりの処理回数が多くなる。
【００２６】
特許文献１に記載されている署名方式は、このように映像データを抜粋して保存する場合において、複数データから任意に抜粋して保存でき、なおかつ映像１枚あたりの署名生成の処理負荷を抑えることを可能としている。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特開２００９−１８２８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２８】
ところで、署名処理は映像受信や配信などの他の処理と比較し、非常に負荷の高い処理である。そのため、署名生成装置９１０は、署名による処理負荷の上昇を避けるために、設定によって署名生成を行わない場合が存在する。特に、署名生成装置９１０が映像発信装置９０３あるいは蓄積配信サーバ９０６と結合された形をとるときには、署名による処理負荷の上昇を避けるために、署名生成設定がオフにされる場合がある。
【００２９】
また、署名検証装置９０９においては映像データの改竄有無の判定が行われる。ここで、署名生成装置９１０の署名生成設定がオンであるにもかかわらず、映像データに署名が付与されていない場合、何者かが悪意を持って映像データの改竄を行っている可能性が高まるので、即座に、より高度な調査（データにアクセスすることが可能だった人物の調査など）が必要になる。一方で、署名生成装置９１０の署名生成設定がオフとなっていることにより、映像データに署名が付与されていない場合、署名検証装置９０９において署名検証する必要の無い映像データを誤って検証したか、署名生成装置９１０の署名生成設定を誤ってオフにしている可能性がある。よって、まず、それに応じた対処（例えば、署名生成設定をオンにする変更など）を行うべきである。
【００３０】
しかし、特許文献１に代表される従来の署名方法は、映像データに署名が付与されていない場合、いずれの理由により映像データに署名が付与されていないのかが区別できないという問題があった。
【００３１】
図６は、従来の署名方式で署名された映像データの例とその改竄例を示す図である。
【００３２】
図６（Ａ）に示されるデータ９１は、従来の署名方式における署名付き映像データの例である。データ９１において、Mi（ｉ＝１〜１１。以下、同様。）は映像データ、Siは署名データを表す。ここでは、署名生成装置９１０における署名生成設定は、映像データM1〜M3では署名オフ、M4〜M8では署名オン、M9〜M11では署名オフになっている。また、図６（ａ）に示されるデータ９２は従来の署名方式における署名付き映像データの改竄例である。データ９２では、映像データM7をM’7に改竄した上で、署名データS7が削除されている。ここで、署名検証装置９０９でデータ９２を検証するとき、署名生成設定がオフとなっていることで署名データが付与されていない映像データM1〜M3及びM9〜M11と、意図的な改竄がされて署名データが削除されている映像データM’7との区別が付かない。
【００３３】
本発明は、署名生成装置９１０の署名生成設定の状態を署名検証装置９０９が信頼できる方法で取得できるようにする映像署名方法を提供し、署名検証装置９０９での検証後に、より的確な対処が行える映像署名システムを提供することを目的とする。
【課題を解決するための手段】
【００３４】
上記課題を解決するために、本発明は、連続的に複数のデータを取得するデータ取得手段と、前記データ取得手段において取得される取得データについて、署名データの生成を行うか否かを制御する制御手段と、前記制御手段によって署名データの生成を行わない状態に制御されている場合には、前記取得データの数をカウントするカウント手段と、前記制御手段において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合に、前記取得データ、および前記カウント手段にてカウントされたカウンタ値に基づいて、署名データを生成する署名データ生成手段と、を有することを特徴とする署名生成装置を提案する。
【００３５】
つまり、本発明の署名生成装置では、署名データの生成を行わないデータのカウンタ値を含めて署名データが生成される。よって、署名検証の対象であるデータに署名データが付与されていない場合でも、署名生成装置において署名設定がオフとなっているために署名データが付与されていないのか、データが改竄されたことにより署名データが付与されていないのかが判断可能である。また、カウンタ値も取得データとともに署名されるため、カウンタ値の改竄を検知することも可能である。
【発明の効果】
【００３６】
以上のように、本発明によれば、署名検証の対象であるデータに署名データが付与されていない場合でも、データが改竄されたことで署名データが付与されていないのか否かが判断可能である。
【図面の簡単な説明】
【００３７】
【図１】映像署名システムの構成例を示す図である。
【図２】署名生成装置１００における署名生成方法のフローチャートである。
【図３】署名生成装置１００によって署名された映像データの例とその改竄例を示す図である。
【図４】署名検証装置２００における署名検証方法のフローチャートである。
【図５】従来の映像配信システム（ネットワーク型映像監視システム）の構成例を示す図である。
【図６】従来の署名方式によって署名された映像データの例とその改竄例を示す図である。
【図７】従来の署名つきネットワーク型映像監視システムにおける一連の映像と一度目の署名との関連を表す図である。
【図８】従来の署名つきネットワーク型映像監視システムにおける一連の映像と二度目の署名との関連を表す図である。
【図９】本発明の署名生成方法における１回目の署名処理について説明する図である。
【図１０】本発明の署名生成方法における２回目の署名処理について説明する図である。
【図１１】本発明の署名生成方法における１回目の署名処理について説明する図である。
【図１２】本発明の署名生成方法における２回目の署名処理について説明する図である。
【図１３】本発明の署名検証方法における検証処理の事前処理について説明する図である。
【図１４】本発明の署名検証方法における検証処理について説明する図である。
【図１５】本発明の署名検証方法のフローチャートである。
【発明を実施するための形態】
【００３８】
本発明の実施形態について、図面を参照しながら、以下に説明する。なお、以下の説明において参照する各図では、他の図と同等部分は同一符号によって示される。
【００３９】
（映像署名システムの構成）
図１は、本実施形態に係る映像署名システムの構成例を示す図である。本実施形態に係る映像署名システム１は、署名生成装置１００と、署名検証装置２００とを含んで構成される。署名生成装置１００は、映像データに対して署名を生成する装置である。署名検証装置２００は、署名生成装置１００にて生成された署名データを検証する装置である。なお、署名生成装置１００および署名検証装置２００は、図５に示されるような従来の映像配信システム（ネットワーク型映像監視システム）において、それぞれ、署名生成装置９１０、署名検証装置９０９として使用されうる。
【００４０】
なお、以下に説明する署名生成装置１００および署名検証装置２００は、図示しないＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）等のメモリ、ハードディスク等の記憶装置、ネットワークインターフェイス等の一般的なコンピュータの構成と同様の構成により実現される。また、署名生成装置１００および署名検証装置２００の各構成の機能は、例えば、各装置のＣＰＵがハードディスク等に記憶されているプログラムを読み出して実行することにより、もしくは、例えば、ＦＰＧＡ（Field  Programmable  Gate  Array）においてシーケンサロジックをカスタム設計することに実現される機能である。また、映像データや署名データ等の各データは、各装置のハードディスクやＲＡＭ等に記憶されるデータである。
【００４１】
（署名生成装置の構成）
署名生成装置１００は、データ取得部１０１と、制御部１０２と、カウント部１０３と、署名データ生成部１０４と、送信部１０５と、を有する。
【００４２】
データ取得部１０１は、連続的に複数のデータを取得する。「複数のデータ」とは、例えばコンテンツを構成するデータであり、具体的には、映像、音声等を構成するデータや、通信ログ等を構成するテキスト形式のデータ等である。本実施形態においては、「複数のデータ」は、映像を構成する映像データである。また、「連続的に複数のデータを取得する」とは、例えば、映像コンテンツ等を構成する一連のデータを順次、受信すること等が該当する。
【００４３】
また、「データを取得する」とは、主に外部の装置から通信によってデータを受信して取得すること等が想定されるが、署名生成装置１００内の他の構成からデータを取得する場合もありうる。例えば、ハードディスク等に保存されているデータを読み出して取得する場合や、記録媒体等からデータを読み出す場合等がありうる。
【００４４】
データ取得部１０１は、具体的には、例えば、ネットワークインターフェイスを介して映像等を構成するデータを受信し、受信したデータをＲＡＭ等の記憶装置に保存する。
【００４５】
制御部１０２は、データ取得部１０１において取得される各データについて、署名データの生成を行うか否かを制御する。制御部１０２は、具体的には、例えば、あらかじめ署名生成装置１００の記憶装置に記憶されている設定データに従って制御を行ったり、署名生成装置１００のユーザから署名データの生成を行うか否かについての設定変更の入力を受け付けることで、その設定内容に従って制御を行う。
【００４６】
制御部１０２は、具体的には、例えば、署名データの生成を行うか否かを示すＲＡＭ上の変数の値を変更することで、署名データの生成を行うか否かの制御を行う。また、後述する署名データ生成部１０４は、このＲＡＭ上の変数を読み出すことで、署名データを生成するか否かを判断する。
【００４７】
カウント部１０３は、制御部１０２によって署名データの生成を行わない状態に制御されている場合には、データ取得部１０１において取得される取得データの数をカウントする。カウント部１０３は、具体的には、例えば、ネットワークインターフェイスを介してデータを受信するたびに、カウント数を示すＲＡＭ上の変数の値を一つカウントアップする（増加させる）。
【００４８】
署名データ生成部１０４は、制御部１０２において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合に、データ取得部１０１にて取得した取得データ、およびカウント部１０３にてカウントされたカウンタ値に基づいて、署名データを生成する。
【００４９】
また、署名データ生成部１０４は、例えばデータ取得部１０１で取得するデータが映像等のコンテンツを構成するデータであり、データ取得部１０１において取得したデータがコンテンツを構成するデータの中で最後に取得される映像データである場合にも、データ取得部１０１にて取得したデータ、およびカウント部１０３にてカウントされたカウンタ値に基づいて、署名データを生成する。
【００５０】
署名データ生成部１０４は、具体的には、例えば、ＲＡＭ等に記憶されている映像等を構成するデータと、カウンタ値を示す変数の値とを読み出して署名データを生成し、生成した署名データをＲＡＭ等に保存する。
【００５１】
なお、本実施形態においては、署名データの生成を行うように制御がなされている場合であって、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われなかった場合（署名生成設定に変更がない場合）には、取得データ（映像データ）のみに対して署名データが生成される。
【００５２】
送信部１０５は、署名データ生成部１０４にて署名データが生成された場合には、データ取得部１０１にて取得した取得データ、取得データのカウンタ値、および署名データを署名検証装置２００に送信する。なお、署名データ生成部１０４において取得データのみから署名データが生成された場合には、取得データと署名データのみが署名検証装置２００に送信される。また、署名データ生成部１０４にて署名データが生成されなかった場合には、映像データのみが署名検証装置２００に送信される。
【００５３】
送信部１０５は、具体的には、例えば、ＲＡＭ等に記憶されている取得データと、署名データと、必要に応じてＲＡＭ上に保存されているカウンタ値を示す変数の値とを読み出して、ネットワークインターフェイスを介して署名検証装置２００に送信する。
【００５４】
（署名検証装置の構成）
署名検証装置２００は、署名データ取得部２０１と、検証部２０２と、を有する。
【００５５】
署名データ取得部２０１は、署名データ生成部１０４において署名データが生成され、送信部１０５から送信された取得データ、カウンタ値、および署名データを取得する。署名データ取得部２０１は、具体的には、例えば、ネットワークインターフェイスを介して取得データ、カウンタ値、および署名データを受信し、受信した取得データ等をハードディスクやＲＡＭ等に記憶する。
【００５６】
検証部２０２は、署名データ取得部２０１において取得した取得データ、カウンタ値、および署名データに基づいて、署名の検証を行う。検証部２０２は、具体的には、例えば、ハードディスク等から映像データ、カウンタ値、および署名データを読み出して、署名データの検証処理を実行した後、この実行結果をＲＡＭ等に保存する。
【００５７】
（署名生成装置の動作）
本実施形態に係る署名生成装置１００における署名生成方法について、図２及び図３を用いて説明する。
【００５８】
図２は、署名生成装置１００における署名生成方法のフローチャートである。
【００５９】
まず、初期化ステップＳ１０１では、様々なパラメータの初期値の設定やメモリの確保などが行われる。具体的には、例えば、署名生成設定がオフとなっている映像データをカウントするための署名オフ映像データのカウンタ（以下、「カウンタＸ」という。）の値が“０”に設定される。
【００６０】
次に、映像受信ステップＳ１０２では、データ取得部１０１において、例えば図５の映像発信装置９０３などから映像データが受信され、メモリ上に保持される。
【００６１】
次に、末尾判定ステップＳ１０３では、映像受信ステップＳ１０２で受信された映像データが一連の映像データの末尾となっているか否かが判定される。この判定の結果、映像データが一連の映像データの末尾であれば、映像カウンタ署名ステップＳ１０８Ｂに分岐し、末尾で無ければ、設定オン変更判定ステップＳ１０４に分岐する。
【００６２】
設定オン変更判定ステップＳ１０４では、例えばユーザの設定などにより、新たに署名生成設定について設定オフから設定オンへの変更があるか否かが判定される。この判定の結果、設定オフから設定オンへの変更があれば、映像カウンタ署名ステップＳ１０８Ａへ分岐し、設定オフから設定オンへの変更がなければ、設定オフ判定ステップＳ１０５へ分岐する。
【００６３】
設定オフ判定ステップＳ１０５では、現在の署名生成設定が設定オンであるか設定オフであるかが判定される。この判定の結果、署名生成設定が設定オフであれば、カウンタ加算ステップＳ１０６へ分岐し、設定オンであれば、映像署名ステップＳ１０７に分岐する。
【００６４】
カウンタ加算ステップＳ１０６では、カウント部１０３において、カウンタＸの値が“１”増加される。
【００６５】
映像署名ステップＳ１０７では、署名データ生成部１０４において、映像データのみが署名され、署名データが生成される。
【００６６】
一方で、映像カウンタ署名ステップＳ１０８Ａでは、署名データ生成部１０４において、映像データとカウンタＸの値とが結合されて、署名データが生成される。
【００６７】
次に、カウンタ初期化ステップＳ１０９では、カウンタＸの値が“０”に初期化される。
【００６８】
配信ステップＳ１１０Ａでは、カウンタ加算ステップＳ１０６から移行してきた場合には映像データのみが、映像署名ステップＳ１０７から移行してきた場合には映像データおよび署名データが、カウンタ初期化ステップＳ１０９から移行してきた場合には映像データ、カウンタＸの値、および署名データが、送信部１０５において、蓄積配信サーバ９０６に配信される。
【００６９】
末尾判定ステップＳ１０３において、映像受信ステップＳ１０２で受信された映像データが一連の映像データの末尾であった場合の次のステップである映像カウンタ署名ステップＳ１０８Ｂ及び配信ステップＳ１１０Ｂにおける処理は、それぞれ、映像カウンタ署名ステップＳ１０８Ａ及び配信ステップＳ１１０Ａにおける処理と同様なので、説明を省略する。
【００７０】
終了処理ステップＳ１１１ではメモリの解放など、署名生成装置１００における処理の終了に関わる処理が行われる。
【００７１】
（署名生成の具体例）
図３（Ａ）は、本実施形態の署名生成装置１００によって署名された映像データの例である。映像データM1〜M11は、例えば一つの映像を構成する一連の映像データである。
【００７２】
例えば、図３（Ａ）の映像データ１１では、映像データM1〜M3までの３つの署名オフ時の映像データが存在する。よって、署名オン期間の先頭である映像データM4と一緒に署名される署名オフ映像データのカウンタの値C4（カウンタＸの値）は“３”になる。
【００７３】
また、映像データM4〜M8の期間は署名オンの状態であり、それぞれ署名データS4〜S8が付加されている。署名データS4は、映像データM4とカウンタ値C4とが結合されて生成された署名データであり、署名データS5〜S8は、それぞれ、映像データM5〜M8のみから生成された署名データである。
【００７４】
映像データM9〜M11の期間は署名オフの状態であるが、映像データM11は一連の映像データ末尾のデータであるため、署名オフの状態であってもカウンタの値C11と共に署名され署名データS11が付与される。ここで、カウンタ値C11は“２”（映像データM9とM10の受信によりカウントされた値）となる
（署名検証装置の動作）
次に、本実施形態に係る署名検証装置２００における署名検証方法について、図３及び図４を用いて説明する。
【００７５】
図４は、署名検証装置２００における署名検証方法のフローチャートである。
【００７６】
まず、初期化ステップＳ２０１では、様々なパラメータの初期値の設定やメモリの確保などが行われる。具体的には、例えば、検証対象となる映像の番号ｎの値が“０”に初期化される。
【００７７】
次に、映像番号ｎ加算ステップＳ２０２では、検証対象となる映像の番号ｎに“１”が加算される。
【００７８】
次に、映像読み込みステップＳ２０３では、署名データ取得部２０１において、検証対象の映像データMnが読み込まれる。併せて、映像データMnに付与されている署名データSnと署名オフ映像データのカウンタ値Cnも存在すれば読み込まれる。
【００７９】
次に、署名値存在判定ステップＳ２０４では、署名データSnが存在するか否かが判定される。署名データSnが存在すれば、カウンタ存在判定ステップＳ２０６に分岐し、署名データSnが存在しなければ、結果情報保留格納ステップＳ２０５に分岐する。なお、この結果情報は、ＲＡＭ等のメモリ上に設けられた記憶領域であって、映像の番号ｎに対応して設けられた記憶領域である。
【００８０】
結果情報保留格納ステップＳ２０５では、映像の番号ｎ毎に設けられた結果情報領域のｎ番に結果判定を一時「保留」することを表す値が格納される。
【００８１】
カウンタ存在判定ステップＳ２０６では、カウンタ値Cnが存在するか否かが判定される。カウンタ値Cnが存在すれば、映像カウンタ署名検証ステップＳ２１１に分岐し、カウンタ値Cnが存在しなければ、映像署名検証ステップＳ２０７に分岐する。
【００８２】
映像署名検証ステップＳ２０７では、検証部２０２において、検証対象の映像データMnと署名データSnから署名検証が行われる。
【００８３】
次に、検証成功判定ステップＳ２０８では、映像署名検証ステップＳ２０７での検証結果が“成功”であれば、結果情報成功格納ステップＳ２１０Ａに分岐し、“成功”でなければ、結果情報改竄格納ステップＳ２０９Ａに分岐する。
【００８４】
結果情報改竄格納ステップＳ２０９Ａでは、映像の番号ｎ毎に設けられた結果情報領域のｎ番に検証結果が「改竄」であったことを表す値が格納される。
【００８５】
また、結果情報成功格納ステップＳ２１０Ａでは、映像の番号ｎ毎に設けられた結果情報領域のｎ番に検証結果が「成功」であったことを表す値が格納される。
【００８６】
一方で、映像カウンタ署名検証ステップＳ２１１では、検証対象の映像データMnと、署名オフ映像データのカウンタ値Cnと、署名データSnとから署名検証が行われる。
【００８７】
次に、検証成功判定ステップＳ２１２では、映像カウンタ署名検証ステップＳ２１１の検証結果が判定され、検証成功であれば、結果情報成功格納ステップＳ２１０Ｂに分岐し、検証失敗であれば結果情報改竄格納ステップＳ２０９Ｂに分岐する。
【００８８】
なお、結果情報改竄格納ステップＳ２０９Ｂにおける処理は、結果情報改竄格納ステップＳ２０９Ａにおける処理と同様なので説明を省略する。また、結果情報成功格納ステップＳ２１０Ｂにおける処理は、結果情報成功格納ステップＳ２１０Ａにおける処理と同様なので説明を省略する。
【００８９】
次に、保留結果情報署名オフ格納ステップＳ２１３では、結果情報の（ｎ−カウンタ値）番から（ｎ−１）番が「保留」を示す値であれば、この結果情報を「署名オフ」を示す値に書き換える処理が行われる。
【００９０】
次に、映像末尾判定ステップＳ２１４では、検証対象の映像データが一連の映像の末尾の映像データであるか否かが判定される。末尾の映像データである場合には、保留中全結果情報改竄格納ステップＳ２１５に分岐し、末尾の映像データではない場合には、映像番号ｎ加算ステップＳ２０２に戻る。
【００９１】
保留中全結果情報改竄格納ステップＳ２１５では、全ての結果情報の中に「保留」を示す値のものがあれば、これらの結果情報を「改竄」を示す値に書き換える処理が行われる。
【００９２】
最後に、結果表示終了処理ステップＳ２１６では、映像データの番号ｎと一致する結果情報の番号の領域に格納されている情報が読み出され、各々の映像データについて、３種の検証結果「成功」・「改竄」・「署名オフ」のいずれかが署名検証装置２００のディスプレイ等に表示される。また、メモリの解放など、署名検証装置２００における処理の終了に関わる処理が行われる。
【００９３】
（署名検証の具体例）
以下、本実施形態に係る署名検証装置２００における署名検証の具体例について説明する。
【００９４】
例えば、図３（Ａ）の署名生成装置１００において署名され、改竄されていない映像データ１１の署名検証が署名検証装置２００で行われるとする。この場合、映像データM1，M2，M3，M9，M10は署名オフであり署名データが付与されていない。よって、上述した結果情報保留格納ステップＳ２０５において、各映像データに対応する結果情報に、検証結果の判定を一旦「保留」とすることを示す値が格納される。
【００９５】
また、映像カウンタ署名検証ステップＳ２１１において映像データM4の検証が実行されるが、カウンタ値C4に“３”が格納されていることから、映像データM4の３つ前までの映像データM1，M2，M3は署名オフだったことが分かる。よって、保留結果情報署名オフ格納ステップＳ２１３において、映像データM1，M2，M3の結果情報には、「署名オフ」を示す値が格納される。映像データM9，M10についても同様である。
【００９６】
以上より、各映像データの結果情報には、「成功」と「署名オフ」のいずれかを示す値が格納されることとなる。つまり、結果表示終了処理ステップＳ２１６において、映像データM1〜M11について、「成功」と「署名オフ」のいずれかの結果が表示出力等されるので、署名検証装置２００を操作する検証者は、署名データが付与されていない映像データについても改竄されていないことが確認できる。これにより検証者は、「署名検証装置２００での署名検証の範囲を映像データM4からM8まで、とすべきであったのに、誤って映像データM1からM11まで、としてしまっていないか？」をチェックしたり、逆に、「署名生成装置１００における署名生成を実行する範囲の設定が誤っていなかったか？」をチェックすればよい。
【００９７】
また、図３（ａ）の映像データ１２は、本実施形態の署名生成装置１００にて署名された映像データが意図的に改竄された例である。本例では、映像データM7を映像データM’7が改竄された上で、署名データS7が削除されている。
【００９８】
このような場合に、署名検証装置２００で署名検証が行われた場合、映像データM1，M2，M3，M’7，M9，M10は、上述した、結果情報保留格納ステップＳ２０５において、それぞれの結果情報に、検証結果の判定を一旦「保留」することを示す値が格納される。映像データM1，M2，M3，M9，M10の結果情報には、上述したように、保留結果情報に署名オフを格納ステップＳ２１３において「署名オフ」を示す値が格納される。
【００９９】
一方で、映像データM’7については、結果情報に「保留」を示す値が格納された後、保留中全結果情報改竄格納ステップＳ２１５において、結果情報に「改竄」を示す値が格納される。結果として映像データM’7と映像データM1，M2，M3，M9，M10の区別ができる。
【０１００】
また、図３（ｂ）の映像データ１３は、本実施形態の署名生成装置１００にて署名された映像データが意図的に改竄された例である。本例では、映像データM7がM’7に改竄された上で、署名データS7が削除されている。さらに、映像データM8について、カウンタ値C’8が付加されている。このカウンタ値C’8には、「署名オフに制御された映像データが１つ（映像データM’7）である」ということを装うために、“１”が設定されているとする。
【０１０１】
この場合、本実施形態の署名検証装置２００では、映像カウンタ署名検証ステップＳ２１１において、映像データM8と、カウンタ値C’8と、署名データS8とから署名検証が行われる。しかし、署名生成装置１００においては、署名データS8は映像データM8に基づいて生成されているため、映像カウンタ署名検証ステップＳ２１１において署名の検証は失敗する。つまり、検証成功判定ステップＳ２１２では検証失敗と判定されるため、保留結果情報署名オフ格納ステップＳ２１３は実行されず、結果的に、映像データM’7の結果情報には、保留中全結果情報改竄格納ステップＳ２１５において「改竄」を示す値が格納される。これにより、「署名オフ」を示す値が結果情報に格納される映像データM1，M2，M3，M9，M10と、改竄された映像データM’7との区別ができる。また、映像データM’8の結果情報にも、検証成功判定ステップＳ２１２で検証失敗と判定されることにより、「改竄」を示す値が格納されることになる。
【０１０２】
また、図３（ｃ）の映像データ１４は、本実施形態の署名生成装置１００にて署名された映像データが意図的に改竄された例である。本例では、映像データM7がM’7に改竄され、カウンタ値C4，C11及び署名データS4〜S8，S11が削除されている。
【０１０３】
署名検証装置２００では、このような改竄がなされていると、保留中全結果情報改竄格納ステップＳ２１５において、全映像データM1〜M11の全結果情報に「改竄」を示す値が格納される。結果的に、改竄された映像データM’7と、署名生成装置１００において「署名オフ」となっていた映像データM1，M2，M3，M9，M10との区別が付かないが、この場合は一連の映像データが全体的に意図的な「改竄」が行われたとして、より詳細な調査が行われるようになっていても、運用上問題はない。
【０１０４】
（他の実施形態）
なお、上記の実施形態においては、映像データについて署名が行われる場合について記載したが、署名が行われるデータは、映像データではなく、音声データや、ログなどのテキストデータ等、その他のデータであってもよい。
【０１０５】
また、上記の実施形態においては、署名生成装置１００において署名データを生成する際に、データ取得部１０１で取得した取得データとともに、取得データのカウンタ（カウンタＸ）の値も署名するようになっているが、取得データのみから署名データを生成し、カウンタの値は署名せずに、取得データと署名データとに関連付けて署名検証装置２００に送信するようになっていてもよい。この場合、署名検証装置２００では、映像カウンタ署名検証ステップＳ２１１では、署名データの検証は、取得データに基づいて行われる。
【０１０６】
（付記）
以上、本発明に係る実施形態について詳細に説明したことからも明らかなように、上述の実施形態の一部または全部は、以下の各付記のようにも記載することができる。しかしながら、以下の各付記は、あくまでも本発明の単なる例示に過ぎず、本発明は、かかる場合のみに限るものではないことは言うまでもない。
【０１０７】
（付記１）
連続的に複数のデータを取得するデータ取得手段と、
前記データ取得手段において取得される取得データについて、署名データの生成を行うか否かを制御する制御手段と、
前記制御手段によって署名データの生成を行わない状態に制御されている場合には、前記取得データの数をカウントするカウント手段と、
前記制御手段において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合に、前記取得データ、および前記カウント手段にてカウントされたカウンタ値に基づいて、署名データを生成する署名データ生成手段と、
を有することを特徴とする署名生成装置。
【０１０８】
（付記２）
前記複数のデータはコンテンツを構成するデータであり、
前記署名データ生成手段は、
前記制御手段において、署名データの生成を行わない状態から署名データの生成を行う状態への制御が行われた場合に加えて、前記取得データが前記コンテンツを構成する複数のデータの中で最後に取得されるデータである場合にも、前記取得データ、および前記カウント手段にてカウントされたカウンタ値に基づいて、署名データを生成することを特徴とする付記１に記載の署名生成装置。
【０１０９】
この構成によれば、署名検証の対象であるデータに署名データが付与されていない場合でも、署名生成装置において署名設定がオフとなっているために署名データが付与されていないのか、データが改竄されたことにより署名データが付与されていないのかが判断可能である。
【０１１０】
（付記３）
付記１または付記２に記載の署名生成装置と、前記署名生成装置にて生成された署名データを検証する署名検証装置と、を有する映像署名システムであって、
前記署名検証装置は、
前記署名データ生成手段において署名データが生成された前記取得データ、前記カウンタ値、および前記署名データを前記署名生成装置から取得する署名データ取得手段と、
前記署名データ取得手段において取得した前記取得データ、前記カウンタ値、および前記署名データに基づいて、署名の検証を行う検証手段と、
を有することを特徴とする映像署名システム。
【０１１１】
（付記４）
取得したデータに署名データを生成するか否かの設定を行う署名生成装置において実行される署名生成方法であって、
連続的に複数のデータを取得するデータ取得ステップ（例えば、図２のステップＳ１０２）と、
前記データ取得ステップにおいて取得される取得データについて、署名データの生成を行うか否かについての設定変更を検知する検知ステップ（例えば、図２のステップＳ１０４）と、
前記署名生成装置において署名データの生成を行わないように設定されている場合には、前記取得データの数をカウントするカウントステップ（例えば、図２のステップＳ１０６）と、
前記検知ステップにおいて、署名データの生成を行わない状態から署名データの生成を行う状態への設定変更を検知した場合に、前記取得データおよび前記カウントステップにてカウントされたカウンタ値に基づいて、署名データを生成する署名データ生成ステップ（例えば、図２のステップＳ１０８Ａ）と、
を有することを特徴とする署名生成方法。
【０１１２】
つまり、本発明の署名生成方法では、署名データの生成を行わないデータのカウンタ値を含めて署名データが生成される。よって、署名検証の対象であるデータに署名データが付与されていない場合でも、署名生成装置において署名設定がオフとなっているために署名データが付与されていないのか、データが改竄されたことにより署名データが付与されていないのかが判断可能である。また、カウンタ値も取得データとともに署名されるため、カウンタ値の改竄を検知することも可能である。
【０１１３】
（他の署名生成方法・署名検証方法）
以下、他の署名生成方法、署名検証方法について説明する。なお、以下の説明においては、デジタル署名技術の一種であるＲＳＡ−ＰＳＳ（Probabilistic  Signature  Scheme）方式を用いることを前提とする。
【０１１４】
まず、従来の署名つきネットワーク型映像監視システムにおける署名生成方法について、図７を用いて説明する。以下に説明される例は、複数の映像データから構成される一連の映像に対してまとめて署名処理を行う場合であって、各映像データから算出されるハッシュ値に基づいて一のハッシュ値が算出され、この一のハッシュ値から署名値が算出される場合の従来の例である。
【０１１５】
図７は、従来の署名つきネットワーク型映像監視システムにおける一連の映像と一度目の署名との関連を表す図である。ここでは一例として、署名生成装置９１０での１回の署名生成時に処理する映像データの数nを４にした場合について記述している。
【０１１６】
図７においてM1〜M4は署名生成時に処理対象となる映像データであって、一の映像が分割された映像データである。h0,1〜h0,4は、それぞれM1〜M4をハッシュ関数hに入力して得られたハッシュ値である。h1,1は、h0,1とh0,2とを連結した結果をハッシュ関数hに入力して得られたハッシュ値である。h1,2,h2,1も同様である。署名生成エンジン８０１は、、h2,1と秘密鍵から署名値σ1(1)を算出する。映像データM1〜M4から生成された署名値σ1(1)は署名生成装置９１０から蓄積配信サーバ９０６経由で、映像受信装置９０４に配信される。さらに、映像受信装置９０４から署名検証装置９０９に配布される。任意抜粋保存された映像データも検証できるようにするために、各ハッシュ値も必要に応じて、映像データ及び署名と同様に配布される場合もある。
【０１１７】
ここで、蓄積配信サーバ９０６に保存した映像データM1〜M4を再度、署名生成装置９１０に送信して署名する場合の処理について説明する。図８は従来の署名つきネットワーク型映像監視システムにおける一連の映像と二度目の署名との関連を表す図である。
【０１１８】
署名生成装置９１０は、まず、M1〜M4のデータそのものと署名σ1(1)と公開鍵とを用いて検証する。検証に成功すると、図８に示すように、１回目の署名と同じく、ハッシュ値h0,1〜h0,4を算出し、さらにh1,1,h1,2,h2,1を算出し、署名生成エンジン８０１にh2,1と秘密鍵とを入力して署名値σ1(2)を算出する。ここで、映像データM1〜M4が改竄されていなければ、ハッシュ値h0,1〜h0,4およびh1,1,h1,2,h2,1は、図７で示した１回目のハッシュ値と全く同一の値となる。なお、秘密鍵は１回目と同一であってもよいし、同一の鍵長で異なっても良いし、鍵長自体が異なっても良い。ここで、一般に安全性が高いとされる署名生成方法では、同一の秘密鍵を使用しても１回目の署名値σ1(1)と２回目の署名値σ1(2)は乱数の利用によって異なる値となる。
【０１１９】
ところで、署名処理は他の処理と比較し、非常に負荷の高い処理である。よって、単純に映像１枚毎に署名生成処理を行うと、署名生成装置９１０が扱える映像の枚数は非常に小さなものになる。そこで、署名生成装置９１０は、特許文献１に記載されているように複数の映像をまとめて署名する方法を用いることによって映像１枚あたりの署名生成の処理負荷を抑え、多くの映像データの署名生成を実現している。
【０１２０】
ここで、定期的にあるいは何らかのイベント毎に署名済みの映像データに再度署名を行う必要がある場合がある。このようなとき、一般的には既存の署名値を検証した上で新たな署名を行う。この手順では、まず、映像データからハッシュ値を算出し、算出したハッシュ値と検証用の鍵と署名値から検証を行う。そして、検証が正常に行われた場合には、算出したハッシュ値と署名用の鍵から新たな署名値を生成する。一般的には、この手順において圧倒的に処理量が多いのは署名値の生成である。よって、署名済みの同一の映像データに再度署名を行う場合に、既存の署名値を検証することでのデメリットはほぼ無く、むしろ、その時点で改ざんを即座に検知できるというメリットがある。
【０１２１】
一方で、特許文献１に記載の手法では、１つのデータあたりの署名値の生成処理量が小さくなっている。また、ハッシュ値を算出する処理量は一般にデータサイズに比例するため、データサイズの大きい映像データの場合、この処理量は無視できないレベルになる。
【０１２２】
よって、以下に説明する本発明は、このような場合において、映像データのような連続する複数のデータが存在し、かつ個々のデータサイズが大きくても、再署名処理の処理量を比較的小さくすることが可能な映像署名システムを提供することを目的とする。
【０１２３】
また、以下に説明する本発明は、再署名処理の処理量を比較的小さくすることが可能な映像署名システムにおいて、検証処理の量が増えるが、その増加分をできるだけ抑えることが可能な映像署名システムを提供することを目的とする。
【０１２４】
なお、以下に説明する映像署名システムは、図５と同様に署名生成装置、署名検証装置等の装置から構成可能であるが、署名生成装置および署名検証装置の詳細な構成については図示しない。
【０１２５】
［署名生成方法：例１］
本発明の署名生成方法の第一の実施例について、以下に説明する。
【０１２６】
署名生成装置における１回目の署名処理について図９を用いて説明する。図９において、C1及びh3,1(1)以外は図７と同様であるので説明を省略する。ここでC1は、署名の回数、あるいは時刻、あるいは権限の上下を表す情報のような署名毎に識別可能かつ序列可能な値を含むデータ列である。以後の説明ではC1は署名回数（１回目の署名回数を表すので数値“１”）として説明する。
【０１２７】
図９において、C1とh2,1とを連結してハッシュ関数hに入力するとハッシュ値h3,1(1)が得られる。署名生成エンジン３０１でハッシュ値h3,1(1)と秘密鍵から署名値σ1(1)を算出するのは図７と同様である。ここで、本例では、１回目の署名処理のときの途中の計算値であるハッシュ値h2,1とカウンタ値（署名回数）C1を、映像データM1〜M4及び１回目の署名値σ1(1)とともに蓄積配信サーバに保存する。
【０１２８】
次に、２回目の署名処理について図１０を用いて説明する。映像データM1〜M4を再度、署名生成装置において署名するとき、蓄積配信サーバはハッシュ値h2,1と署名回数C1を署名生成装置に送信する。署名生成装置ではC2（２回目の署名回数を表すので数値“２”）とh2,1とを連結してハッシュ関数hに入力するとハッシュ値h3,1(2)が得られる。署名回数を表すC1、C2が異なるため、図９のh3,1(1)と図１０のh3,1(2)は異なる値である。署名生成エンジン３０１でハッシュ値h3,1(2)と秘密鍵から署名値σ1(2)を算出するのは図９と同様である。１回目のときすでにハッシュ値h2,1は保存しているので、今回はC2と署名値σ1(2)のみ保存するために署名生成装置から蓄積配信サーバに送信される。
３回目以降の署名もCの値をカウントアップして同様の処理を行う。
【０１２９】
このようにすることで、M1〜M4をハッシュ関数hに入力してh0,1〜h0,4を算出するという処理量の大きな処理を行わず、２回目以降の署名を可能にしている。
【０１３０】
なお、以上に説明した署名生成方法は、図示しない署名生成装置によって実行される。
【０１３１】
［署名生成方法：例２］
本発明の署名生成方法の第二の実施例について、以下に説明する。
【０１３２】
署名生成装置における１回目の署名処理について図１１を用いて説明する。図１１において、ハッシュ処理及び署名生成エンジン３０１の処理自体は図９と同一である。ここで、図９では１つのハッシュ値h2,1のみを保存していたが、本実施例は、映像データM1〜M4をハッシュ関数に入力して得られた値であるh0,1〜h0,4を保存する。
【０１３３】
次に、２回目の署名処理について図１２を用いて説明する。ここでは、２回目に映像データM1〜M4を再度署名するのではなく、M2〜M5を署名する場合について述べる。ここで映像データM5はM4に続く映像データであり、M1〜M4とは別に署名された映像データである。蓄積配信サーバはハッシュ値h0,2〜h0,5とカウンタ値（署名回数）C1を署名生成装置に送信する。ここでハッシュ値h0,5は映像データM5をハッシュ関数に入力して得られた値であり、他のハッシュ値と同様に蓄積配信サーバに保存されていたものである。
【０１３４】
署名生成装置ではh0,2とh0,3を連結した結果をハッシュ関数hに入力してハッシュ値h1,1(2)を算出し、h0,4とh0,5を連結した結果をハッシュ関数hに入力してハッシュ値h1,2(2)を算出する。次にh1,1(2)とh1,2(2)を連結した結果をハッシュ関数hに入力してハッシュ値h2,1(2)を算出する。次にC2（２回目の署名回数を表すので数値“２”）とh2,1(2)を連結してハッシュ関数hに入力するとハッシュ値h3,1(2)が得られる。
【０１３５】
ここで、署名回数を表すC1、C2が異なるため、図１１のh1,1,h1,2,h2,1,h3,1(1)と図１２のh1,1(2),h1,2(2),h2,1(2),h3,1(2)はそれぞれ異なる値である。署名生成エンジン３０１でハッシュ値h3,1(2)と秘密鍵から署名値σ1(2)を算出するのは図９と同様である。１回目のときすでにハッシュ値h0,2〜h0,5は保存しているので、今回は署名値σ1(2)のみ保存するために署名生成装置から蓄積配信サーバに送信される。１回目のときすでにハッシュ値h0,2〜h0,5は保存しているので、今回はC2と署名値σ1(2)のみ保存するために署名生成装置から蓄積配信サーバに送信される。３回目以降もCの値をカウントアップして同様の処理を行う。
【０１３６】
第二の実施例は第一の実施例と比較し、ハッシュ値h1,1(2),h1,2(2),h2,1(2) を算出する分処理が余計に必要だがハッシュ値の算出の処理量はデータサイズに比例する。例えばハッシュ関数ｈがＳＨＡ−２５６のとき、わずか（２５６ビットと２５６ビットを連結した）５１２ビットのデータを入力とするハッシュ処理が３回加わるのみなので、この余計に必要な処理にかかる処理量は非常に小さい。一方で、第一の実施例では１回目の署名と２回目の署名は同一の映像データを署名対象とする場合にしか適用できないが、第二の実施例ではそのような制限は無く、１回目の署名と異なる映像データを２回目の署名の対象とすることができる。
【０１３７】
なお、以上に説明した署名生成方法は、図示しない署名生成装置によって実行される。
【０１３８】
［署名検証方法］
次に本発明の署名検証方法について、以下に説明する。
【０１３９】
上述したように、本発明のように２回目以降の署名時に前回の署名の検証を行わない場合、通常、全ての署名の検証を行う必要がある。ここでは、検証回数をより少なくする署名検証方法について述べる。
【０１４０】
まず、検証処理の事前処理について図１３を用いて説明する。図１３は署名された映像データM1の署名検証するときの事前処理について説明する図である。まず、映像データM1のハッシュ値h0,1を算出し、次にh0,1と別途保存しておいたh0,2とを連結したもののハッシュ値h1,1を算出し、次にh1,1と別途保存しておいたh1,2とを連結したもののハッシュ値h2,1を算出する。なお、この事前処理は１つの映像データに対し、１度行えば良い。
【０１４１】
次に署名値毎に行う検証処理について図１４を用いて説明する。図１４は本発明の事前処理において算出されたハッシュ値と署名値から検証結果を出力する処理について説明する図である。まず、事前処理において算出されたハッシュ値h2,1をカウンタ値C1,…,p（ｐは２以上の整数）と連結したもののハッシュ値h3,1(1,…,p)を算出し、このh2,1(1,…,p)と署名値σ1(1,…,p)を署名検証エンジン３０２に入力することで検証結果を得られる。ここで、1,…,pは複数の署名のそれぞれにつけられた番号を表す。例えば、h3,1(1,…,p)はh3,1(1)、h3,1(2)、・・・、h3,1(p)の意味である。また、検証結果は「検証成功」あるいは「検証失敗」を表す２値の値である。
【０１４２】
次に映像データM1に複数（３個以上）の署名値が付与されている場合に、どこまで「検証成功」であったかを、より少ない処理量で示す方法について、図１５を用いて説明する。図１５は本発明のｐ個（本説明においてはｐは３以上の整数）の署名値が１つの映像データに対して付与されていた場合の検証処理のフローチャートである。ここで複数の署名データσ1,…,pが付与された順序はカウンタ値C1,…,pによって事前に順序づけられている。すなわち、ｐ個の署名データσ1,…,pとカウンタ値C1,…,pはそれぞれ対応付けられている。
【０１４３】
図１５において、ステップＳ３０１Ａはσpの検証処理、ステップＳ３０１Ｂはσ1の検証処理、ステップＳ３０１Ｃはσkの検証処理、ステップＳ３０２Ａ、Ｓ３０２Ｂ、Ｓ３０２Ｃはそれぞれσp、σ1、σkの成功判定処理、ステップＳ３０３は２分探索初期値格納処理、ステップＳ３０４は検証対象ｋ算出処理、ステップＳ３０５はＨ更新処理、ステップＳ３０６はＬ更新処理、ステップＳ３０７はＬとＨの同一判定処理、ステップＳ３０８は最終検証結果判定処理、ステップＳ３０９Ａは全て失敗を出力処理、ステップＳ３０９Ｂは全て成功を出力処理、ステップＳ３０９Ｃはσk-1とσk間で変更あり出力処理、ステップＳ３０９Ｄはσkとσk+1間で変更あり出力処理、ステップＳ３１０は終了処理である。
【０１４４】
なお、図１５におけるステップＳ３０１Ａ、Ｓ３０１Ｂ、Ｓ３０１Ｃにおける各検証処理はそれぞれ図１４において説明した処理を行う。
【０１４５】
まず、σpの検証処理（ステップＳ３０１Ａ）では最も新しい署名であるσpの検証処理を行う。次に成功判定処理（ステップＳ３０２Ａ）では、σ1の検証結果が「検証成功」か「検証失敗」かの判定を行い、「検証失敗」であれば、以後の署名データ全てが検証失敗となるのは明らかなので、全て失敗を出力処理（ステップＳ３０９Ａ）に分岐する。全て失敗を出力処理（ステップＳ３０９Ａ）では署名検証装置の操作者に対して、全ての署名検証が失敗したことを表すメッセージを出力する。「検証成功」であれば、σ1の検証処理（ステップＳ３０１Ｂ）に分岐する。
【０１４６】
σ1の検証処理（ステップＳ３０１Ｂ）では最も古い署名であるσ1の検証処理を行う。次に、成功判定処理（ステップＳ３０２Ｂ）では、σ1の検証結果が「検証成功」か「検証失敗」かの判定を行い、「検証成功」であれば、全ての署名データが検証成功となるのは明らかなので、全て成功を出力処理（ステップＳ３０９Ｂ）に分岐する。全て成功を出力処理（ステップＳ３０９Ｂ）では署名検証装置の操作者に対して、全ての署名検証が成功したことを表すメッセージを出力する。「検証失敗」であれば、２分探索初期値格納処理（ステップＳ３０３）に分岐する。
【０１４７】
２分探索初期値格納処理（ステップＳ３０３）では変数Ｌに“２”を格納し、変数Ｈにp-1の値を格納する。次に、検証対象ｋ算出処理（ステップＳ３０４）では、(L+H)/2の値をkに格納する。次に、σkの検証処理（ステップＳ３０１Ｃ）ではσkの検証処理を行う。次に、ＬとＨの同一判定処理（ステップＳ３０７）ではＬとＨの値を比較し、同一であればσkの最終検証結果判定処理（ステップＳ３０８）に分岐し、同一でなければσkの成功判定処理（ステップＳ３０２Ｃ）に分岐する。
【０１４８】
成功判定処理（ステップＳ３０２Ｃ）では、σkの検証結果が「検証成功」か「検証失敗」かの判定を行い、「検証成功」であれば、Ｈ更新処理（ステップＳ３０５）に分岐し、「検証失敗」であれば、Ｌ更新処理（ステップＳ３０６）に分岐する。Ｌ更新処理（ステップＳ３０６）ではk+1を変数Ｌに格納し、検証対象ｋ算出処理（ステップＳ３０４）に戻る。Ｈ更新処理（ステップＳ３０５）ではk-1を変数Ｈに格納し、検証対象ｋ算出処理（ステップＳ３０４）に戻る。
【０１４９】
σkの最終検証結果判定処理（ステップＳ３０８）では、σkの成功判定処理（ステップＳ３０２Ｃ）と同じ判定を行い、σkの検証結果が「検証成功」であれば、σk-1とσk間で変更あり出力処理（ステップＳ３０９Ｃ）に分岐し、σkの検証結果が「検証失敗」であれば、σkとσk+1間で変更あり出力処理（ステップＳ３０９Ｄ）に分岐する。
【０１５０】
σk-1とσk間で変更あり出力処理（ステップＳ３０９Ｃ）では署名検証装置の操作者に対して、σk-1の署名が実行されてから、σkの署名が実行されるまでの間に映像データの変更がなされたことを示すメッセージを出力する。σkとσk+1間で変更あり出力処理（ステップＳ３０９Ｄ）では署名検証装置の操作者に対して、σkの署名が実行されてから、σk+1の署名が実行されるまでの間に映像データの変更がなされたことを示すメッセージを出力する。最後に終了処理（ステップＳ３１０）では使用したメモリの解放など、終了する際に必要な処理を行う。
【０１５１】
すなわち、以上に説明した署名検証方法では、原則、すべての署名データの検証を行わずに済むため、本発明の署名生成方法に対して効率的に署名検証可能である。
【０１５２】
なお、以上に説明した署名検証方法は、図示しない署名検証装置によって実行される。
【符号の説明】
【０１５３】
１００  署名生成装置
１０１  データ取得部
１０２  制御部
１０３  カウント部
１０４  署名データ生成部
１０５  送信部
２００  署名検証装置
２０１  署名データ取得部
２０２  検証部
９０１  ネットワーク媒体
９０２  映像生成装置
９０３  映像発信装置
９０４  映像受信装置
９０５Ａ、９０５Ｂ  映像表示装置
９０６  蓄積配信サーバ
９０７  記録媒体
９０８  リムーバブルメディア
９０９  署名検証装置
９１０  署名生成装置
【図１】
2011234335.tif 000003
【図２】
2011234335.tif 000004
【図３】
2011234335.tif 000005
【図４】
2011234335.tif 000006
【図５】
2011234335.tif 000007
【図６】
2011234335.tif 000008
【図７】
2011234335.tif 000009
【図８】
2011234335.tif 000010
【図９】
2011234335.tif 000011
【図１０】
2011234335.tif 000012
【図１１】
2011234335.tif 000013
【図１２】
2011234335.tif 000014
【図１３】
2011234335.tif 000015
【図１４】
2011234335.tif 000016
【図１５】
2011234335.tif 000017