以下に添付図面を参照して、本発明にかかる改ざん検出方法、生成装置、生成プログラム、検出装置および検出プログラムの実施の形態を詳細に説明する。
(署名生成方法の一実施例)
まず、実施の形態にかかる署名生成方法の一実施例について説明する。図1は、実施の形態にかかる署名生成方法の一実施例を示す説明図である。図1において、生成装置101は、原動画情報に関する電子署名を生成するコンピュータである。
ここで、原動画情報とは、動画の原本である一連のフレームの動画データ(映像データ)である。具体的には、例えば、原動画情報は、店舗、繁華街、集合住宅等に設置された監視カメラや、業務車両等に設置されたドライブレコーダにより記録された動画データである。
また、電子署名とは、署名対象情報の正当性を認証するために当該署名対象情報に付加される署名情報である。すなわち、電子署名は、物理的な署名(印鑑など)と同様に、署名対象情報の生成者を認証するとともに、署名対象情報の正当性を証明するためのものである。
具体的には、例えば、署名対象情報の生成者は、秘密鍵と公開鍵のペアを生成し、認証機関に公開鍵を送信して公開鍵証明書を発行してもらう。公開鍵証明書は、公開鍵のバイナリデータが正しいことを保証し、公開鍵の生成元の身元を証明する電子証明書である。そして、生成者は、署名対象情報をメッセージダイジェスト化した要約情報(ハッシュ情報)を秘密鍵で暗号化した署名情報および署名対象情報を、公開鍵証明書とともに検証者へ送信する。
検証者は、公開鍵証明書の有効性確認を行った上で、公開鍵証明書に含まれる公開鍵で暗号化された署名情報を復号し、署名対象情報から得られる要約情報との比較を行う。検証者は、この比較結果が同一か否かによって、署名対象情報の作成者と署名対象情報の正当性を判断することができる。
また、要約情報は、署名対象情報に対して暗号学的一方向性ハッシュ関数を用いて生成されるハッシュ情報であり、署名対象情報のサイズを圧縮できるという意味でメッセージダイジェストともいわれる。暗号学的一方向性ハッシュ関数を用いて生成されるハッシュ情報は、生成元の署名対象情報からしか生成することができない唯一の情報となり、生成されたハッシュ情報から生成元の署名対象情報を復元することができないという特徴を有する。
暗号学的一方向性ハッシュ関数には、例えば、MD5(Message Digest 5)、SHA(Secure Hash Algorithm)−1、SHA−256のようなアルゴリズムがある。署名対象情報に対してどのアルゴリズムを用いて要約情報を生成するかについての情報、いわゆる、ハッシュ情報生成アルゴリズムは、例えば、公開鍵証明書に記載されている。
ここで、監視カメラやドライブレコーダにより記録された動画データは、証拠物件として取り扱われる場合がある。また、動画データは、プライバシー保護の観点から非公開とすべき箇所に対して墨塗りやモザイク等が施される場合がある一方で、悪意のある第三者により部分的に変更、抽出等の改ざんが行われる場合がある。このため、動画データを証拠物件として扱う場合などには、動画データの改ざんを検出するとともに、動画データの改ざん箇所を特定して、悪意のある第三者による改ざんを判別できることが望ましい。
例えば、第三者の改ざんを検知するために、動画データのフレーム単位の要約情報の集合に対して電子署名を付加することが考えられる。しかし、この場合、要約情報の生成がフレーム単位の適用に留まっており、動画データのどの箇所が改ざんされているか画素レベルの細かい単位まで特定することが難しい。
一方、要約情報の生成を全フレームの画素レベルの細かい単位に適用することで改ざん箇所を特定することも考えられるが、検証時に全フレームの画素レベルの細かい単位のハッシュ情報の再計算を行うことになり検証処理の増大化を招いてしまう。
そこで、本実施の形態では、生成装置101は、動画データに含まれるフレームの特徴を抽出した特徴量と、フレームを分割して得られる各々の領域の特徴を抽出した特徴量とをリスト化した署名対象情報を作成して電子署名を付加する。これにより、検証者のコンピュータにおいて、電子署名が付加された署名対象情報を用いて、動画データのフレーム単位の改ざん箇所を絞り込んだ後に領域単位の改ざんを検出可能にして検証速度の向上を図る。以下、実施の形態にかかる生成装置101の署名生成処理例について説明する。
(1)生成装置101は、動画の原本である一連のフレームF1〜Fmを含む原動画情報110を取得する。原動画情報110は、例えば、MJPEG(Motion Joint Photographic Experts Group)形式やMPEG(Moving Picture Experts Group)で記録された動画データである。
具体的には、例えば、生成装置101は、ユーザの操作入力により自装置に直接入力された原動画情報110を取得することにしてもよく、また、ネットワークを介して他のコンピュータ(例えば、監視カメラ)から原動画情報110を取得することにしてもよい。図1の例では、車両に設置されたドライブレコーダにより記録された原動画情報110が取得されている。
(2)生成装置101は、原動画情報110に含まれる一連のフレームF1〜Fmから選ばれたフレームFiの特徴を抽出した特徴量C(Fi)を算出する(i=1,2,…,m)。ここで、特徴量C(Fi)は、フレームFiに含まれる画素の画素値に基づいて算出されるフレームFiを特徴付ける値である。
画素値は、画素が示す色情報であり、例えば、輝度成分値、青色色差成分値、赤色色差成分値という3つの成分値であってもよく、また、赤成分値、緑成分値、青成分値という3つの成分値であってもよい。また、グレースケール画像であれば、画素値は、輝度成分値となる。
具体的には、例えば、生成装置101は、フレームFiに含まれる画素の画素値に基づいて、フレームFiの誤りを検出可能な誤り検出符号を、特徴量C(Fi)として算出することにしてもよい。誤り検出符号は、例えば、任意長のデータを入力として固定長の値を出力するCRC(巡回冗長検査:Cyclic Redundancy Check)関数やハッシュ関数を用いて算出することができる。
また、生成装置101は、フレームFiに含まれる画素の画素値に基づいて、フレームFiの誤りを検出して訂正可能な誤り訂正符号を、特徴量C(Fi)として算出することにしてもよい。図1の例では、フレームF1〜Fmごとに、各フレームF1〜Fmの特徴を抽出した特徴量C(F1)〜C(Fm)が算出されている。
(3)生成装置101は、フレームFiを領域M1〜Mnに分割する(n:2以上の自然数)。具体的には、例えば、生成装置101は、MCU(Minimum Coded Unit)という単位でフレームFiを分割することにより、フレームFiを領域M1〜Mnに分割することにしてもよい。MCUは、8×8ピクセルや16×16ピクセルといった画素レベルの予め指定されたサイズである。図1の例では、各フレームF1〜Fmが6×7のMCU単位で領域M1〜M42に分割されている(n=42)。
(4)生成装置101は、フレームFiを分割して得られる各々の領域Mjについて、各々の領域Mjの特徴を抽出した特徴量C(Fi:Mj)を算出する(j=1,2,…,n)。ここで、特徴量C(Fi:Mj)は、領域Mjに含まれる画素の画素値に基づいて算出される領域Mjを特徴付ける値である。
具体的には、例えば、生成装置101は、領域Mjに含まれる画素の画素値に基づいて、領域Mjの誤りを検出可能な誤り検出符号を、特徴量C(Fi:Mj)として算出することにしてもよい。また、生成装置101は、領域Mjに含まれる画素の画素値に基づいて、領域Mjの誤りを検出して訂正可能な誤り訂正符号を、特徴量C(Fi:Mj)として算出することにしてもよい。
図1の例では、フレームF1〜Fmに含まれるすべてのフレームFiについて、フレームFiを分割して得られる各領域M1〜M42の特徴量C(Fi:M1)〜C(Fi:M42)が算出されている。
(5)生成装置101は、算出したフレームFiの特徴量C(Fi)およびフレームFiを分割して得られる各々の領域Mjの特徴量C(Fi:Mj)に対する電子署名130を生成する。図1の例では、まず、生成装置101は、例えば、各フレームFiの特徴量C(Fi)および各フレームFiの各領域M1〜M42の特徴量C(Fi:M1)〜C(Fi:M42)をリスト化した特徴量リスト120を作成する。
つぎに、生成装置101は、特徴量リスト120を署名対象情報として、暗号学的一方向性ハッシュ関数を用いて署名対象情報の要約情報を生成する。そして、生成装置101は、検証者に提供される公開鍵とペアとなる秘密鍵により要約情報を暗号化して電子署名130(署名情報)を生成する。
このように、生成装置101によれば、特徴量リスト120を署名対象情報として電子署名130を生成して、特徴量リスト120に付加することができる。この結果、検証者のコンピュータ(例えば、後述の図2に示す検出装置201)において、電子署名130を用いて特徴量リスト120の正当性を検証することができる。また、検証者のコンピュータにおいて、正当性が検証された特徴量リスト120を用いて、原動画情報110の改ざんを検出することができる。
以下、図1に示した特徴量リスト120を用いて原動画情報110の改ざんを検出する場合を例に挙げて、実施の形態にかかる改ざん検出方法の一実施例について説明する。
(改ざん検出方法の一実施例)
図2は、実施の形態にかかる改ざん検出方法の一実施例を示す説明図である。図2において、検出装置201は、原動画情報の改ざんを検出するコンピュータである。
(1)検出装置201は、改ざんの検出対象となる原動画情報110と、電子署名130が付加された特徴量リスト120とを取得する。ここで取得される原動画情報110や特徴量リスト120は、プライバシー保護の観点や悪意のある第三者により何らかの改ざんが行われた可能性がある情報である。
具体的には、例えば、検出装置201は、ユーザの操作入力により自装置に直接入力された原動画情報110と電子署名130が付加された特徴量リスト120とを取得することにしてもよい。また、検出装置201は、ネットワークを介して他のコンピュータ(例えば、図1に示した生成装置101)から原動画情報110と電子署名130が付加された特徴量リスト120とを取得することにしてもよい。
(2)検出装置201は、電子署名130に基づいて、特徴量リスト120の正当性を検証する。具体的には、例えば、検出装置201は、公開鍵証明書に含まれる公開鍵により電子署名130を復号して、特徴量リスト120から生成されるハッシュ情報と比較することにより、特徴量リスト120の正当性を検証する。
(3)検出装置201は、特徴量リスト120の正当性が検証された場合、原動画情報110に含まれる一連のフレームF1〜Fmから選ばれたフレームFiの特徴を抽出した特徴量C’(Fi)を算出する。なお、特徴量C’(Fi)は、電子署名130の生成時における特徴量C(Fi)と同一のアルゴリズムを用いて算出される。
(4)検出装置201は、特徴量リスト120内のフレームFiの特徴量C(Fi)と、算出したフレームFiの特徴量C’(Fi)とを比較することにより、フレームFiの改ざんを検出する。具体的には、例えば、検出装置201は、特徴量C(Fi)と特徴量C’(Fi)とが不一致の場合に、フレームFiの改ざんを検出する。図2の例では、フレームF2の改ざんが検出された場合を想定する。
(5)検出装置201は、フレームFiの改ざんが検出された場合、フレームFiを領域M1〜Mnに分割する。フレームFiの分割は、電子署名130の生成時におけるフレームFiの分割と同一のアルゴリズムを用いて行われる。図2の例では、フレームF2が領域M1〜M42に分割される(n=42)。
(6)検出装置201は、フレームFiを分割して得られる各々の領域Mjについて、各々の領域Mjの特徴を抽出した特徴量C’(Fi:Mj)を算出する。特徴量C’(Fi:Mj)は、電子署名130の生成時における特徴量C(Fi:Mj)と同一のアルゴリズムを用いて算出される。図2の例では、フレームF2を分割して得られる各々の領域Mjの特徴量C’(Fi:Mj)が算出される。
(7)検出装置201は、特徴量リスト120内のフレームFiの領域Mjの特徴量C(Fi:Mj)と、算出したフレームFiの領域Mjの特徴量C’(Fi:mj)とを比較することにより、フレームFiの領域Mjの改ざんを検出する。具体的には、例えば、検出装置201は、特徴量C(F2:Mj)と特徴量C’(F2:Mj)とが不一致の場合に、フレームF2の領域Mjの改ざんを検出する。
図2の例では、悪意のある第三者により、フレームF2に映っている信号機が「赤信号」から「青信号」に改ざんされた場合を想定する。この場合、特徴量C(F2:M3)と特徴量C’(F2:M3)とが不一致となり、フレームF2の領域M3の改ざんが検出される。また、特徴量C(F2:M4)と特徴量C’(F2:M4)とが不一致となり、フレームF2の領域M4の改ざんが検出される。
このように、検出装置201によれば、原動画情報110の特徴量リスト120に付加された電子署名130に基づいて、特徴量リスト120の正当性を検証することができる。また、検出装置201によれば、特徴量リスト120の正当性が検証された場合、特徴量リスト120内の各フレームF1〜Fmの特徴量C(F1)〜C(Fm)を用いて、原動画情報110のフレームFiの改ざんを検出することができる。
また、検出装置201によれば、フレームFiの改ざんが検出された場合、特徴量リスト120内のフレームFiに含まれる領域M1〜Mnの特徴量C(Fi:M1)〜C(Fi:Mn)を用いて、フレームFiの領域Mjの改ざんを検出することができる。
これらのことから、検出装置201によれば、原動画情報110のフレーム単位の改ざんを検出した後に、フレームFi内のMCU単位の改ざんを検出することができる。これにより、全フレームFiの各領域Mjの特徴量C(Fi:Mj)を求めてMCU単位の改ざんを検出する場合に比べて、画素レベルの改ざん箇所の特定にかかる処理負荷を軽減して、原動画情報110の検証速度を向上させることができる。
(検証システム300のシステム構成例)
つぎに、実施の形態にかかる検証システム300のシステム構成例について説明する。ここでは、図1に示した生成装置101を署名生成装置301に適用し、図2に示した検出装置201を署名検証装置302に適用した場合を例に挙げて説明する。
図3は、検証システム300のシステム構成例を示す説明図である。図3において、検証システム300は、署名生成装置301と、署名検証装置302と、認証機関装置303と、検証者端末304と、撮影装置305と、を含む。検証システム300において、署名生成装置301、署名検証装置302、認証機関装置303、検証者端末304および撮影装置305は、有線または無線のネットワーク310を介して接続されている。ネットワーク310は、例えば、インターネット、イントラネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
ここで、署名生成装置301は、原動画情報(以下、「原動画情報MD」と表記する)を記憶する映像管理DB(データベース)320を有し、原動画情報MDに関する電子署名(以下、「署名情報ES」と表記する)を生成するコンピュータである。映像管理DB320は、例えば、原動画情報MDを一意に識別する原本IDと対応付けて原動画情報MDを保持する。原動画情報MDは、例えば、撮影装置305から署名生成装置301に送信される。
署名検証装置302は、検証対象となる原動画情報MDを記憶する検証対象管理DB330を有し、原動画情報MDを検証するコンピュータである。検証対象となる原動画情報MDは、例えば、署名生成装置301から署名検証装置302に送信される。
認証機関装置303は、認証機関のコンピュータであり、公開鍵証明書を記憶する公開鍵DB340を有する。認証機関装置303は、生成者からの公開鍵の証明書発行依頼に応じて、公開鍵証明書を発行する。発行された公開鍵証明書は、公開鍵DB340に記憶される。また、認証機関装置303は、検証者からの証明書検証依頼に応じて、公開鍵証明書を検証する。
検証者端末304は、検証者が署名検証装置302の操作を行うためのコンピュータである。検証者端末304は、例えば、検証者のPC(パーソナル・コンピュータ)やノートPCなどである。
撮影装置305は、原動画情報MDを撮影して記録するコンピュータである。また、撮影装置305は、記録した原動画情報MDを署名生成装置301に送信する機能を有する。撮影装置305は、例えば、ハンディタイプのビデオカメラや、店舗、繁華街、集合住宅等に設置された監視カメラや、業務車両等に設置されたドライブレコーダなどである。
なお、撮影装置305は、ネットワーク310を介して署名生成装置301のみと通信可能であってもよい。また、本実施の形態では、署名生成装置301および署名検証装置302を、別々のコンピュータで実現する場合を例に挙げて説明するが、同一のコンピュータで実現することにしてもよい。
(署名生成装置301等のハードウェア構成例)
つぎに、図3に示した署名生成装置301、署名検証装置302、認証機関装置303および検証者端末304(以下、「署名生成装置301等」という)のハードウェア構成例について説明する。
図4は、署名生成装置301等のハードウェア構成例を示すブロック図である。図4において、署名生成装置301等は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、I/F(Interface)406と、を有する。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、署名生成装置301等の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶する。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
I/F406は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して他のコンピュータに接続される。そして、I/F406は、ネットワーク310と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F406には、例えば、モデムやLANアダプタなどを採用することができる。
なお、署名生成装置301および検証者端末304は、上述した構成部のほかに、例えば、ディスプレイ、キーボード、マウス等を有することにしてもよい。また、図示は省略するが、図3に示した撮影装置305のハードウェア構成は、例えば、CPU、ROM、RAM、カメラデバイス等により実現される。
(付加単位定義テーブル500の記憶内容)
つぎに、署名生成装置301が用いる付加単位定義テーブル500について説明する。付加単位定義テーブル500は、例えば、図4に示した署名生成装置301のROM402、RAM403、磁気ディスク405などの記憶装置に記憶されている。
図5は、付加単位定義テーブル500の記憶内容の一例を示す説明図である。図5において、付加単位定義テーブル500は、圧縮形式、再生時間、フレームレートおよび付加単位のフィールドを有し、各フィールドに情報を設定することで、付加単位定義情報(例えば、付加単位定義情報500−1,500−2)をレコードとして記憶する。
ここで、圧縮形式は、原動画情報MDの圧縮形式である。圧縮形式としては、例えば、MJPEGやMPEGがある。再生時間は、原動画情報MDの再生時間である。再生時間の単位は、[分]である。フレームレートは、原動画情報MDを再生する際に単位時間当たりに処理されるフレーム数を表す。フレームレートの単位は、fps(frame per second)である。
付加単位は、原動画情報MDに含まれる一連のフレームF1〜Fmを分割する分割単位を表す。付加単位の単位は、[フレーム数]である。付加単位は、例えば、原動画情報MDの再生時間が長いほど大きくなるように、また、原動画情報MDのフレームレートが高いほど大きくなるように設定される。なお、圧縮形式がMPEGの場合には、付加単位の単位として、例えば、GOP(Group Of Picture)を用いることにしてもよい。
一例として、付加単位定義情報500−1を例に挙げると、圧縮形式「MJPEG」、再生時間「0〜20[分]」およびフレームレート「30[fps]」の原動画情報MDの付加単位は、「1フレーム」である。
(映像管理テーブル600の記憶内容)
つぎに、署名生成装置301が用いる映像管理テーブル600について説明する。映像管理テーブル600は、例えば、署名生成装置301のROM402、RAM403、磁気ディスク405などの記憶装置により実現される。
図6は、映像管理テーブル600の記憶内容の一例を示す説明図である。図6において、映像管理テーブル600は、原本IDと、MAC(メッセージ認証符号:Message Authentication Code)リストLと、署名情報ESと、付加単位情報Uとを対応付けて記憶する。
ここで、原本IDは、原動画情報MDを一意に識別する識別情報である。MACリストLは、署名情報ESの生成時に署名対象情報となる情報である。署名情報ESは、MACリストLに付加される電子署名である。付加単位情報Uは、原動画情報MDに含まれる一連のフレームF1〜Fmを分割する付加単位を表す情報である。
映像管理テーブル600によれば、原動画情報MDの原本IDを手掛かりにして、原動画情報MDのMACリストL、署名情報ESおよび付加単位情報Uを特定することができる。なお、MACリストL、署名情報ESおよび付加単位情報Uについての詳細な説明は後述する。
(署名生成装置301の機能的構成例)
図7は、署名生成装置301の機能的構成例を示すブロック図である。図7において、署名生成装置301は、取得部701と、選択部702と、分割部703と、算出部704と、生成部705と、出力部706と、を含む構成である。取得部701〜出力部706は制御部となる機能であり、具体的には、例えば、図4に示したROM402、RAM403、磁気ディスク405などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F406により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM403、磁気ディスク405などの記憶装置に記憶される。
取得部701は、動画の原本である一連のフレームF1〜Fmを含む原動画情報MDを取得する機能を有する。原動画情報MDは、例えば、MJPEG形式やMPEGで記録された動画データである。原動画情報MDには、例えば、動画データの圧縮形式、再生時間、フレームレート等を表す情報が含まれていてもよい。
具体的には、例えば、取得部701は、不図示のキーボードやマウスを用いたユーザの操作入力により、原動画情報MDを取得することにしてもよい。また、取得部701は、ネットワーク310を介して、撮影装置305から原動画情報MDを取得することにしてもよい。
選択部702は、原動画情報MDに含まれる一連のフレームF1〜Fmを分割するフレーム数Nを選択する機能を有する。フレーム数Nは、後述する第1MAC値の付加単位を表している。具体的には、例えば、選択部702は、原動画情報MDの圧縮形式に応じて、一連のフレームF1〜Fmを分割するフレーム数Nを選択することにしてもよい。また、選択部702は、例えば、原動画情報MDの再生時間やフレームレートに応じて、一連のフレームF1〜Fmを分割するフレーム数Nを選択することにしてもよい。
より具体的には、例えば、選択部702は、図5に示した付加単位定義テーブル500を参照して、一連のフレームF1〜Fmを分割するフレーム数Nを選択することにしてもよい。一例として、動画の圧縮形式を「MJPEG」とし、動画の再生時間を「20分」とすると、選択部702は、付加単位定義テーブル500を参照して、一連のフレームF1〜Fmを分割するフレーム数「N=1」を選択する。選択されたフレーム数Nは、例えば、付加単位情報Uに記憶される。ここで、付加単位情報Uの具体例について説明する。
図8は、付加単位情報Uの具体例を示す説明図である。図8において、付加単位情報U1は、原動画情報MD1に含まれる一連のフレームF1〜Fmを分割する付加単位を表す情報である。具体的には、付加単位情報U1には、原動画情報MD1の原本IDと付加単位とが対応付けて記憶されている。
図7の説明に戻り、分割部703は、一連のフレームF1〜Fmを、選択部702によって選択されたフレーム数Nで分割することにより、グループG1〜GKを作成する機能を有する。各グループG1〜GKは、フレーム数Nのフレーム群である。例えば、一連のフレームF1〜F6をフレーム数「3」で分割すると(m=6、N=3)、一連のフレームF1〜F6の先頭から3個のフレームF1〜F3がグループG1に属し、残りのフレームF4〜F6がグループG2に属する。
具体的には、例えば、分割部703は、図8に示した付加単位情報U1を参照して、原動画情報MD1に含まれる一連のフレームF1〜Fmをフレーム数「1」で分割することにより、グループG1〜GKを作成する(この場合は、m=K)。
なお、以下の説明では、グループG1〜GKのうちの任意のグループを「グループGk」と表記する場合がある(k=1,2,…,K)。
また、分割部703は、グループGkに含まれる各々のフレームFiをMCU単位で区切ることにより複数の領域に分割する機能を有する。上述したように、MCUは、8×8ピクセルや16×16ピクセルといった画素レベルの予め指定されたサイズである。なお、MCUの走査方向は、例えば、フレームFiの左から右への水平方向であり、右端まで到達したら、つぎの行となる。
以下の説明では、グループGkに含まれる各々のフレームFiをMCU単位で分割することにより得られる複数の領域を「領域M1〜MX」と表記する場合がある。また、領域M1〜MXのうちの任意の領域を「領域Mx」と表記する場合がある(x=1,2,…,X)。なお、グループGkの領域Mxを一意に識別する領域ID「Mx」から、グループGkの領域Mxが属するフレームFiとフレームFi内での領域Mxの位置を特定できるものとする(例えば、Mx=M(Fi:Mj))。
算出部704は、分割部703によって作成されたグループG1〜GKから選ばれたグループGkの特徴を抽出した第1MAC値C(Gk)を算出する機能を有する。ここで、第1MAC値C(Gk)は、グループGkに含まれる画素の画素値に基づいて算出されるグループGkを特徴付ける値であり、上述した特徴量C(Fi)に相当する。第1MAC値C(Gk)は、例えば、グループGkの誤り検出符号や誤り訂正符号である。
具体的には、例えば、算出部704は、グループGkに含まれる各フレームFiの各画素の画素値を表す画素情報をCRC関数に与えることにより、グループGkの誤り検出符号を第1MAC値C(Gk)として算出することにしてもよい。なお、算出された第1MAC値C(Gk)は、例えば、MACリストL(例えば、後述する図9に示すMACリストL1)に記憶される。
また、算出部704は、グループGkに含まれる各々のフレームFiを分割して得られる各々の領域Mxについて、各々の領域Mxの特徴を抽出した第2MAC値C(Gk:Mx)を算出する機能を有する。ここで、第2MAC値C(Gk:Mx)は、領域Mxに含まれる各画素の画素値に基づいて算出される領域Mxを特徴付ける値であり、上述した特徴量C(Fi:Mj)に相当する。
具体的には、例えば、算出部704は、グループGkに含まれるフレームFiを分割して得られる領域Mxに含まれる各画素の画素値を表す画素情報をCRC関数に与えることにより、領域Mxの誤り検出符号を第2MAC値C(Gk:Mx)として算出する。なお、算出された第2MAC値C(Gk:Mx)は、例えば、MACリストLに記憶される。
MACリストLは、原動画情報MDの各グループGkの第1MAC値C(Gk)および各グループGkに含まれる各々の領域Mxの第2MAC値C(Gk:Mx)をリスト化した情報である。MACリストLは、上述した特徴量リスト120に相当する。ここで、MACリストLの具体例について説明する。
図9は、MACリストLの具体例を示す説明図である。図9において、MACリストL1は、原本ID、グループID、第1MAC値、領域IDおよび第2MAC値のフィールドを有する。各フィールドに情報を設定することにより、原動画情報MD1の各グループGkの第1MAC値C(Gk)および各グループGkに含まれる各々のフレームFiを分割して得られる各々の領域Mxの第2MAC値C(Gk:Mx)が記憶されている。
図7の説明に戻り、生成部705は、原動画情報MDのMACリストLに対する署名情報ES(電子署名)を生成する機能を有する。具体的には、例えば、生成部705は、図9に示した原動画情報MD1のMACリストL1を署名対象情報として、暗号学的一方向性ハッシュ関数を用いて署名対象情報の要約情報を生成する。そして、生成部705は、検証者に提供される公開鍵とペアとなる秘密鍵により要約情報を暗号化して署名情報ES1を生成する。
出力部706は、取得部701によって取得された原動画情報MDを出力する機能を有する。具体的には、例えば、出力部706は、ネットワーク310を介して、原動画情報MDを署名検証装置302に送信することにしてもよい。
また、出力部706は、生成部705によって生成された署名情報ESが付加されたMACリストLを出力する機能を有する。具体的には、例えば、出力部706は、ネットワーク310を介して、付加単位情報Uとともに、署名情報ESが付加されたMACリストLを署名検証装置302に送信することにしてもよい。
出力部706の他の出力形式としては、例えば、CD−R(Compact Disc Recordable)、フラッシュメモリ、USB(Universal Serial Bus)メモリ等のリムーバブルメディアへの記憶がある。
(署名検証装置302の機能的構成例)
図10は、署名検証装置302の機能的構成例を示すブロック図である。図10において、署名検証装置302は、取得部1001と、判断部1002と、分割部1003と、算出部1004と、検出部1005と、出力部1006と、を含む構成である。取得部1001〜出力部1006は制御部となる機能であり、具体的には、例えば、図4に示したROM402、RAM403、磁気ディスク405などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F406により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM403、磁気ディスク405などの記憶装置に記憶される。
取得部1001は、検証対象となる原動画情報MDを取得する機能を有する。具体的には、例えば、取得部1001は、ネットワーク310を介して、検証対象となる原動画情報MDを署名生成装置301から取得することにしてもよい。また、取得部1001は、署名検証装置302に接続されたリムーバブルメディアから原動画情報MDを取得することにしてもよい。取得された原動画情報MDは、例えば、図3に示した検証対象管理DB330に記憶される。
また、取得部1001は、検証対象となる原動画情報MDのMACリストLを取得する機能を有する。具体的には、例えば、取得部1001は、ネットワーク310を介して、署名情報ESが付加されたMACリストLを付加単位情報Uとともに署名生成装置301から取得することにしてもよい。取得された署名情報ESが付加されたMACリストLおよび付加単位情報Uは、例えば、検証対象管理DB330に記憶される。
判断部1002は、取得部1001によって取得された署名情報ESに基づいて、原動画情報MDのMACリストLの正当性を判断する機能を有する。具体的には、例えば、まず、判断部1002は、原動画情報MDの生成者の公開鍵証明書の有効性確認を行った上で、公開鍵証明書に含まれる公開鍵により署名情報ESを復号する。
つぎに、判断部1002は、公開鍵証明書に記載されたハッシュ情報生成アルゴリズムを用いて、MACリストLをメッセージダイジェスト化したハッシュ情報を生成する。そして、判断部1002は、復号した署名情報ESと生成したハッシュ情報とを比較して、署名情報ESとハッシュ情報とが一致する場合に、MACリストLが正当であると判断する。
分割部1003は、取得部1001によって取得された原動画情報MDに含まれる一連のフレームF1〜Fmをフレーム数Nで分割することにより、グループG1〜GKを作成する機能を有する。具体的には、例えば、分割部1003は、判断部1002によってMACリストL1が正当であると判断された場合に、付加単位情報U1を参照して、原動画情報MD1に含まれる一連のフレームF1〜Fmをフレーム数「1」で分割することにより、グループG1〜GKを作成する。ただし、一連のフレームF1〜Fmは、署名生成装置301における一連のフレームF1〜Fmの分割アルゴリズムと同一の分割アルゴリズムを用いて分割される。
算出部1004は、分割部1003によって作成されたグループG1〜GKから選ばれたグループGkの特徴を抽出した第3MAC値C(Gk)を算出する機能を有する。ここで、第3MAC値C(Gk)は、グループGkに含まれる画素の画素値に基づいて算出されるグループGkを特徴付ける値であり、上述した特徴量C’(Fi)に相当する。ただし、第3MAC値C(Gk)は、署名生成装置301における第1MAC値C(Gk)の算出アルゴリズムと同一の算出アルゴリズムを用いて算出される。
検出部1005は、グループGkの改ざんを検出する機能を有する。具体的には、例えば、検出部1005は、MACリストLを参照して、グループGkの第1MAC値C(Gk)と、算出部1004によって算出されたグループGkの第3MAC値C(Gk)とを比較する。そして、検出部1005は、第1MAC値C(Gk)と第3MAC値C(Gk)とが不一致の場合に、グループGkの改ざんを検出する。
また、分割部1003は、検出部1005によってグループGkの改ざんが検出された場合、グループGkに含まれる各々のフレームFiをMUC単位で分割することにより領域M1〜MXに分割する機能を有する。ただし、グループGkに含まれる各々のフレームFiは、署名生成装置301におけるグループGkに含まれる各々のフレームFiの分割アルゴリズムと同一の分割アルゴリズムを用いて分割される。
また、算出部1004は、グループGkに含まれる各々のフレームFiを分割して得られる各々の領域Mxについて、各々の領域Mxの特徴を抽出した第4MAC値C(Gk:Mx)を算出する機能を有する。ここで、第4MAC値C(Gk:Mx)は、領域Mxに含まれる画素の画素値に基づいて算出される領域Mxを特徴付ける値であり、上述した特徴量C’(Fi:Mj)に相当する。ただし、第4MAC値C(Gk:Mx)は、署名生成装置301における第2MAC値C(Gk:Mx)の算出アルゴリズムと同一の算出アルゴリズムを用いて算出される。
また、検出部1005は、グループGkに含まれる各々のフレームFiを分割して得られる各々の領域Mxの改ざんを検出する機能を有する。具体的には、例えば、検出部1005は、MACリストLを参照して、グループGkの領域Mxの第2MAC値C(Gk:Mx)と、算出部1004によって算出されたグループGkの領域Mxの第4MAC値C(Gk:Mx)とを比較する。そして、検出部1005は、第2MAC値C(Gk:Mx)と第4MAC値C(Gk:Mx)とが不一致の場合に、グループGkの領域Mxの改ざんを検出する。
出力部1006は、検出部1005によって検出された検出結果を出力する機能を有する。具体的には、例えば、出力部1006は、原動画情報MDに含まれる一連のフレームF1〜Fmのうちの改ざんが検出されたグループGk内のフレームFiやフレームFi内の領域Mxを特定するための改ざん位置情報を出力することにしてもよい。
ここで、改ざん位置情報の具体例について説明する。ここでは、原動画情報MD1に含まれる一連のフレームF1〜FmのうちのフレームF1内の領域M7,M8の改ざんが検出された場合を例に挙げて説明する。
図11は、改ざん位置情報の具体例を示す説明図である。図11において、改ざん位置情報1100は、原動画情報MD1の原本IDと、原動画情報MD1に含まれるフレームF1のフレームIDと、フレームF1内の領域M7,M8の領域IDとを対応付けて表す情報である。改ざん位置情報1100によれば、例えば、検証者は、原動画情報MD1に含まれる一連のフレームF1〜FmのうちのフレームF1内の領域M7,M8が改ざんされていることを特定することができる。
(検証システム300の各種処理手順)
つぎに、検証システム300の各種処理手順について説明する。まず、署名生成装置301の証明書発行依頼処理手順について説明する。証明書発行依頼処理は、公開鍵証明書の発行を依頼する処理である。
<証明書発行依頼処理手順>
図12は、署名生成装置301の証明書発行依頼処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、署名生成装置301は、ペアとなる秘密鍵および公開鍵を生成する(ステップS1201)。なお、秘密鍵および公開鍵は、例えば、署名生成装置301のキーボード(不図示)やマウス(不図示)を用いたユーザの操作入力により、または、署名生成装置301を操作する操作端末(不図示)からの指示により生成される。
つぎに、署名生成装置301は、証明書発行依頼情報の入力を受け付けたか否かを判断する(ステップS1202)。証明書発行依頼情報は、例えば、署名生成装置301のキーボード(不図示)やマウス(不図示)を用いたユーザの操作入力により、または、署名生成装置301を操作する操作端末(不図示)からの指示により入力される。
ここで、署名生成装置301は、証明書発行依頼情報の入力を受け付けるのを待つ(ステップS1202:No)。そして、署名生成装置301は、証明書発行依頼情報の入力を受け付けた場合(ステップS1202:Yes)、公開鍵とともに証明書発行依頼情報を認証機関装置303に送信する(ステップS1203)。
つぎに、署名生成装置301は、認証機関装置303から公開鍵証明書を受信したか否かを判断する(ステップS1204)。ここで、署名生成装置301は、公開鍵証明書を受信するのを待つ(ステップS1204:No)。そして、署名生成装置301は、公開鍵証明書を受信した場合(ステップS1204:Yes)、秘密鍵および公開鍵証明書をRAM403、磁気ディスク405などの記憶装置に保存して(ステップS1205)、本フローチャートによる一連の処理を終了する。
これにより、署名生成装置301は、公開鍵のバイナリデータが正しいことを保証して、公開鍵の生成元の身元を証明する公開鍵証明書を取得することができる。
<証明書発行処理>
つぎに、認証機関装置303の証明書発行処理手順について説明する。証明書発行処理は、公開鍵証明書を発行する処理である。
図13は、認証機関装置303の証明書発行処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、認証機関装置303は、署名生成装置301から公開鍵とともに証明書発行依頼情報を受信したか否かを判断する(ステップS1301)。
ここで、認証機関装置303は、公開鍵とともに証明書発行依頼情報を受信するのを待つ(ステップS1301:No)。そして、認証機関装置303は、公開鍵とともに証明書発行依頼情報を受信した場合(ステップS1301:Yes)、受信した公開鍵を含む公開鍵証明書を生成する(ステップS1302)。
つぎに、認証機関装置303は、生成した公開鍵証明書を公開鍵DB340に保存する(ステップS1303)。そして、認証機関装置303は、生成した公開鍵証明書を署名生成装置301に送信して(ステップS1304)、本フローチャートによる一連の処理を終了する。
これにより、認証機関装置303は、公開鍵の生成元からの証明書発行依頼に応じて、公開鍵のバイナリデータが正しいことを保証して、公開鍵の生成元の身元を証明する公開鍵証明書を発行することができる。
<原動画記録処理>
つぎに、撮影装置305の原動画情報記録処理手順について説明する。原動画情報記録処理は、原動画情報MDを記録する処理である。
図14は、撮影装置305の原動画情報記録処理手順の一例を示すフローチャートである。図14のフローチャートにおいて、まず、撮影装置305は、録画開始指示の入力を受け付けたか否かを判断する(ステップS1401)。録画開始指示は、例えば、撮影装置305の管理者が、撮影装置305に設けられた録画開始ボタンを押下することにより入力される。
ここで、撮影装置305は、録画開始指示の入力を受け付けるのを待つ(ステップS1401:No)。そして、撮影装置305は、録画開始指示の入力を受け付けた場合に(ステップS1401:Yes)、原動画情報MDの記録を開始する(ステップS1402)。
つぎに、撮影装置305は、録画終了指示の入力を受け付けたか否かを判断する(ステップS1403)。録画終了指示は、例えば、撮影装置305の管理者が、撮影装置305に設けられた録画停止ボタンを押下することにより入力される。ここで、撮影装置305は、録画終了指示の入力を受け付けるのを待つ(ステップS1403:No)。
つぎに、撮影装置305は、録画終了指示の入力を受け付けた場合(ステップS1403:Yes)、原動画情報MDの記録を終了する(ステップS1404)。そして、撮影装置305は、記録した原動画情報MDを署名生成装置301に送信して(ステップS1405)、本フローチャートによる一連の処理を終了する。
これにより、検証対象となる原動画情報MDを記録することができる。なお、上述した説明では、撮影装置305は、記録した原動画情報MDを署名生成装置301に送信することにしたが、これに限らない。例えば、署名生成装置301への原動画情報MDの入力は、USBメモリ等のリムーバブルメディアを介して行われることにしてもよい。
また、上述した説明では、撮影装置305は、録画開始指示の入力を受け付けるのを待って、原動画情報MDの記憶を開始することにしたが、これに限らない。例えば、撮影装置305は、電源が投入されると同時に、原動画情報MDの記録を開始することにしてもよい。
<署名生成処理手順>
つぎに、署名生成装置301の署名生成処理手順について説明する。署名生成処理は、原動画情報MDに関する電子署名を生成する処理である。
図15は、署名生成装置301の署名生成処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、署名生成装置301は、撮影装置305から原動画情報MDを受信したか否かを判断する(ステップS1501)。
ここで、署名生成装置301は、原動画情報MDを受信するのを待つ(ステップS1501:No)。そして、署名生成装置301は、原動画情報MDを受信した場合(ステップS1501:Yes)、受信した原動画情報MDを映像管理DB320に保存する(ステップS1502)。
つぎに、署名生成装置301は、原動画情報MDに関する電子署名の生成指示の入力を受け付けたか否かを判断する(ステップS1503)。この生成指示は、例えば、署名生成装置301のキーボード(不図示)やマウス(不図示)を用いたユーザの操作入力により、または、署名生成装置301を操作する操作端末(不図示)からの指示により入力される。
ここで、署名生成装置301は、生成指示の入力を受け付けるのを待つ(ステップS1503:No)。そして、署名生成装置301は、生成指示の入力を受け付けた場合(ステップS1503:Yes)、署名対象情報を作成する署名対象情報作成処理を実行する(ステップS1504)。なお、署名対象情報作成処理の具体的な処理手順については、図16を用いて後述する。
つぎに、署名生成装置301は、MACリストLを署名対象情報として、暗号学的一方向性ハッシュ関数を用いて署名対象情報の要約情報を生成し(ステップS1505)、秘密鍵により要約情報を暗号化して署名情報ESを生成する(ステップS1506)。そして、署名生成装置301は、MACリストL、署名情報ESおよび付加単位情報Uを映像管理テーブル600に登録して(ステップS1507)、本フローチャートによる一連の処理を終了する。
これにより、原動画情報MDのMACリストLに対する署名情報ES(電子署名)を生成することができる。また、原動画情報MDのMACリストL、署名情報ESおよび付加単位情報Uを、原動画情報MD(の原本ID)と対応付けて映像管理テーブル600に登録することができる。
<署名対象情報作成処理手順>
つぎに、図15に示したステップS1504の署名対象情報作成処理の具体的な処理手順について説明する。
図16は、署名対象情報作成処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、署名生成装置301は、付加単位定義テーブル500を参照して、原動画情報MDに含まれる一連のフレームF1〜Fmを分割するフレーム数Nを選択する(ステップS1601)。
つぎに、署名生成装置301は、原動画情報MDの原本IDとともに選択したフレーム数Nを付加単位情報Uに記録する(ステップS1602)。そして、署名生成装置301は、一連のフレームF1〜Fmを、選択したフレーム数Nで分割することにより、グループG1〜GKを作成する(ステップS1603)。
つぎに、署名生成装置301は、グループGkの「k」を「k=1」として(ステップS1604)、作成したグループG1〜GKからグループGkを選択する(ステップS1605)。そして、署名生成装置301は、選択したグループGkの第1MAC値C(Gk)を算出して(ステップS1606)、算出した第1MAC値C(Gk)をMACリストLに登録する(ステップS1607)。
つぎに、署名生成装置301は、グループGkに含まれる各々のフレームFiをMUC単位で区切ることにより、グループGkを領域M1〜MXに分割する(ステップS1608)。そして、署名生成装置301は、領域Mxの「x」を「x=1」として(ステップS1609)、領域M1〜MXから領域Mxを選択する(ステップS1610)。
つぎに、署名生成装置301は、選択した領域Mxの第2MAC値C(Gk:Mx)を算出して(ステップS1611)、算出した第2MAC値C(Gk:Mx)をMACリストLに登録する(ステップS1612)。
つぎに、署名生成装置301は、領域Mxの「x」をインクリメントして(ステップS1613)、「x」が「X」より大きくなったか否かを判断する(ステップS1614)。ここで、「x」が「X」以下の場合(ステップS1614:No)、署名生成装置301は、ステップS1610に戻る。
一方、「x」が「X」より大きい場合(ステップS1614:Yes)、署名生成装置301は、グループGkの「k」をインクリメントして(ステップS1615)、「k」が「K」より大きくなったか否かを判断する(ステップS1616)。
ここで、「k」が「K」以下の場合(ステップS1616:No)、署名生成装置301は、ステップS1605に戻る。一方、「k」が「K」より大きい場合(ステップS1616:Yes)、署名生成装置301は、本フローチャートによる一連の処理を終了して、署名対象情報作成処理を呼び出したステップに戻る。
これにより、署名対象情報として、原動画情報MDの各グループGkの第1MAC値C(Gk)および各グループGkに含まれる各々の領域Mxの第2MAC値C(Gk:Mx)をリスト化したMACリストLを作成することができる。
<原動画情報送信処理手順>
つぎに、署名生成装置301の原動画情報送信処理手順について説明する。原動画情報送信処理は、原動画情報MDを署名検証装置302に送信する処理である。
図17は、署名生成装置301の原動画情報送信処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、署名生成装置301は、原動画情報MDの送信指示の入力を受け付けたか否かを判断する(ステップS1701)。この送信指示は、例えば、署名生成装置301のキーボード(不図示)やマウス(不図示)を用いたユーザの操作入力により、または、署名生成装置301を操作する操作端末(不図示)からの指示により入力される。送信指示には、例えば、送信対象となる原動画情報MDの原本IDが含まれている。
ここで、署名生成装置301は、送信指示の入力を受け付けるのを待つ(ステップS1701:No)。そして、署名生成装置301は、送信指示の入力を受け付けた場合(ステップS1701:Yes)、映像管理DB320の中から、送信対象となる原動画情報MDを抽出する(ステップS1702)。
つぎに、署名生成装置301は、映像管理テーブル600の中から、原動画情報MDの原本IDに対応するMACリストL、署名情報ESおよび付加単位情報Uを抽出する(ステップS1703)。そして、署名生成装置301は、抽出した原動画情報MD、MACリストL、署名情報ES、付加単位情報Uおよび公開鍵証明書を署名検証装置302に送信して(ステップS1704)、本フローチャートによる一連の処理を終了する。
これにより、検証対象となる原動画情報MDを、MACリストL、署名情報ES、付加単位情報Uおよび公開鍵証明書とともに署名検証装置302に送信することができる。
<署名検証処理手順>
つぎに、署名検証装置302の署名検証処理手順について説明する。署名検証処理は、原動画情報MDを検証する処理である。また、署名検証処理は、例えば、何らかの伝達手段を通じて、原動画情報MDの生成者から検証者に対して、原動画情報MDの開示通知があった場合に行われる。
図18は、署名検証装置302の署名検証処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、署名検証装置302は、原動画情報MDの検証指示の入力を受け付けたか否かを判断する(ステップS1801)。この検証指示は、例えば、署名検証装置302を操作する検証者端末304からの指示により入力される。検証指示には、例えば、検証対象となる原動画情報MDの原本IDが含まれている。
ここで、署名検証装置302は、検証指示の入力を受け付けるのを待つ(ステップS1801:No)。そして、署名検証装置302は、検証指示の入力を受け付けた場合(ステップS1801:Yes)、検証対象管理DB330の中から、検証対象となる原動画情報MD、MACリストL、署名情報ES、付加単位情報Uおよび公開鍵証明書を抽出する(ステップS1802)。
つぎに、署名検証装置302は、抽出したMACリストLを検証する第1の検証処理を実行する(ステップS1803)。なお、第1の検証処理の具体的な処理手順については、図19を用いて後述する。そして、署名検証装置302は、MACリストLの検証に成功したか否かを判断する(ステップS1804)。
ここで、MACリストLの検証に成功した場合(ステップS1804:Yes)、署名検証装置302は、原動画情報MDを検証する第2の検証処理を実行して(ステップS1805)、本フローチャートによる一連の処理を終了する。なお、第2の検証処理の具体的な処理手順については、図20を用いて後述する。
一方、MACリストLの検証に失敗した場合(ステップS1804:No)、署名検証装置302は、MACリストLの検証失敗を検証者端末304に通知して(ステップS1806)、本フローチャートによる一連の処理を終了する。これにより、原動画情報MDを検証することができる。
<第1の検証処理手順>
つぎに、図18に示したステップS1803の第1の検証処理の具体的な処理手順について説明する。
図19は、第1の検証処理の具体的処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、署名検証装置302は、認証機関装置303に公開鍵証明書を送信する(ステップS1901)。そして、署名検証装置302は、認証機関装置303から公開鍵証明書の検証結果を受信したか否かを判断する(ステップS1902)。
ここで、署名検証装置302は、公開鍵証明書の検証結果を受信するのを待つ(ステップS1902:No)。そして、署名検証装置302は、公開鍵証明書の検証結果を受信した場合(ステップS1902:Yes)、公開鍵証明書が有効か否かを判断する(ステップS1903)。
ここで、公開鍵証明書が有効の場合(ステップS1903:Yes)、署名検証装置302は、MACリストLを署名対象情報として、暗号学的一方向性ハッシュ関数を用いて署名対象情報のハッシュ情報を生成する(ステップS1904)。つぎに、署名検証装置302は、公開鍵証明書に含まれる公開鍵により署名情報ESを復号する(ステップS1905)。
そして、署名検証装置302は、復号した署名情報ESと、生成したハッシュ情報とが一致するか否かを判断する(ステップS1906)。ここで、署名情報ESとハッシュ情報とが一致する場合(ステップS1906:Yes)、署名検証装置302は、検証成功と判断して(ステップS1907)、本フローチャートによる一連の処理を終了して第1の検証処理を呼び出したステップに戻る。
一方、署名情報ESとハッシュ情報とが不一致の場合(ステップS1906:No)、署名検証装置302は、検証失敗と判断して(ステップS1908)、本フローチャートによる一連の処理を終了する。
また、ステップS1903において、公開鍵証明書が有効ではない場合(ステップS1903:No)、署名検証装置302は、検証失敗と判断して(ステップS1908)、本フローチャートによる一連の処理を終了する。これにより、MACリストLの正当性を検証することができる。
<第2の検証処理手順>
つぎに、図18に示したステップS1805の第2の検証処理の具体的な処理手順について説明する。
図20は、第2の検証処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、署名検証装置302は、付加単位情報Uを参照して、原動画情報MDに含まれる一連のフレームF1〜Fmを付加単位(フレーム数N)で分割することにより、グループG1〜GKを作成する(ステップS2001)。
つぎに、署名検証装置302は、グループGkの「k」を「k=1」として(ステップS2002)、作成したグループG1〜GKからグループGkを選択する(ステップS2003)。そして、署名検証装置302は、選択したグループGkの第3MAC値C(Gk)を算出する(ステップS2004)。
つぎに、署名検証装置302は、MACリストLを参照して、算出した第3MAC値C(Gk)が、グループGkの第1MAC値C(Gk)と一致するか否かを判断する(ステップS2005)。ここで、第1MAC値C(Gk)と一致する場合(ステップS2005:Yes)、署名検証装置302は、ステップS2015に移行する。
一方、第1MAC値C(Gk)と不一致の場合(ステップS2005:No)、署名検証装置302は、グループGkに含まれる各々のフレームFiをMUC単位で区切ることにより、グループGkを領域M1〜MXに分割する(ステップS2006)。そして、署名検証装置302は、領域Mxの「x」を「x=1」として(ステップS2007)、領域M1〜MXから領域Mxを選択する(ステップS2008)。
つぎに、署名検証装置302は、選択した領域Mxの第4MAC値C(Gk:Mx)を算出する(ステップS2009)。そして、署名検証装置302は、MACリストLを参照して、算出した第4MAC値C(Gk:Mx)が、グループGkの領域Mxの第2MAC値C(Gk:Mx)と一致するか否かを判断する(ステップS2010)。
ここで、第2MAC値C(Gk:Mx)と一致する場合(ステップS2010:Yes)、署名検証装置302は、ステップS2013に移行する。一方、第2MAC値C(Gk:Mx)と不一致の場合(ステップS2010:No)、署名検証装置302は、グループGkの領域Mxの改ざんを検出する(ステップS2011)。
そして、署名検証装置302は、改ざん箇所のフレームIDおよび領域IDを改ざん位置情報に登録する(ステップS2012)。つぎに、署名検証装置302は、領域Mxの「x」をインクリメントして(ステップS2013)、「x」が「X」より大きくなったか否かを判断する(ステップS2014)。
ここで、「x」が「X」以下の場合(ステップS2014:No)、署名検証装置302は、ステップS2008に戻る。一方、「x」が「X」より大きい場合(ステップS2014:Yes)、署名検証装置302は、グループGkの「k」をインクリメントして(ステップS2015)、「k」が「K」より大きくなったか否かを判断する(ステップS2016)。
ここで、「k」が「K」以下の場合(ステップS2016:No)、署名検証装置302は、ステップS2003に戻る。一方、「k」が「K」より大きい場合(ステップS2016:Yes)、署名検証装置302は、検証者端末304に改ざん位置情報を送信して(ステップS2017)、本フローチャートによる一連の処理を終了する。この結果、検証者端末304のディスプレイ(不図示)に改ざん位置情報が表示される。
これにより、グループ単位の改ざんを検出した後に、フレームFi内のMCU単位の改ざんを検出することができる。また、検証者端末304において、検証者は、ディスプレイ(不図示)に表示される改ざん位置情報を参照することにより、原動画情報MDの画素レベルの改ざん箇所を特定することができる。
なお、上述した説明では、グループG1〜GKに含まれるすべてのグループGkについて、第3MAC値C(Gk)を算出して、MACリストL内の第1MAC値C(Gk)との一致判定を行うことにしたが、これに限らない。
例えば、署名検証装置302は、グループG1〜GKから改ざんの疑いがあるフレームFiを含むグループGkを特定し、そのグループGkの第3MAC値C(Gk)を算出して、MACリストL内の第1MAC値C(Gk)との一致判定を行うことにしてもよい。
具体的には、例えば、署名検証装置302は、フレーム間の画像整合性検証を行うことにより、改ざんの疑いがあるフレームFiを含むグループGkを特定することにしてもよい。また、署名検証装置302は、目視による画像確認を検証者端末304の検証者に行わせることにより、改ざんの疑いがあるフレームFiを含むグループGkを特定することにしてもよい。
この場合、署名検証装置302は、例えば、改ざんの疑いのあるフレームFiまでMJPEGのデコード処理によりシークして、改ざんの疑いがあるフレームFiを含むグループGkを特定する。そして、署名検証装置302は、特定したグループGkの第3MAC値C(Gk)を算出して、MACリストL内の第1MAC値C(Gk)との一致判定を行う。
これにより、フレーム間の画像整合性検証や検証者の目視による画像確認により改ざんの疑いがあるフレームFiを含むグループGkを絞り込んだ上で署名検証処理を行うことができる。この結果、署名検証装置302にかかる処理負荷を軽減させるとともに、原動画情報MDの検証精度を向上させることができる。
なお、上述した説明では、署名生成装置301は、グループ単位の第1MAC値C(Gk)と、領域単位の第2MAC値C(Gk:Mx)とを算出することにしたが、これに限らない。例えば、グループGkを構成するフレーム数が2以上の場合には、署名生成装置301は、さらに、グループ単位のMAC値も算出してMACリストLに記憶することにしてもよい。
この場合、署名検証装置302は、グループGkの改ざんを検出したら、グループGk内のフレームFiの改ざんを検出した後に、そのフレームFi内の領域Mxの改ざんを検出することにしてもよい。
具体的には、例えば、署名検証装置302は、グループGkの改ざんが検出された場合に、グループGkに含まれる各々のフレームFiのMAC値を算出する。つぎに、署名検証装置302は、MACリストL内のグループGkのフレームFiのMAC値と、算出したフレームFiのMAC値とを比較して、フレームFiの改ざんを検出する。
この場合、署名検証装置302は、改ざんが検出されたフレームFiを分割して得られる各々の領域Mxについて、各々の領域Mxの特徴を抽出した第4MAC値C(Gk:Mx)を算出する。そして、署名検証装置302は、改ざんが検出されたフレームFiを分割して得られる領域Mxの改ざんを検出する。
すなわち、改ざんが検出されたグループGk内のどのフレームFiが改ざんされているのかを絞り込んだ後に、そのフレームFi内のMCU単位の改ざんを検出することにしてもよい。これにより、グループ単位の改ざん箇所を絞り込んだ上でMCU単位の改ざんを検出する場合に比べて、画素レベル(MCU単位)の改ざん箇所をより効率的に特定することができ検証速度を向上させることができる。
以上説明したように、実施の形態にかかる署名生成装置301によれば、原動画情報MDに含まれる動画の原本である一連のフレームF1〜Fmをフレーム数Nで分割することにより、グループG1〜GKを作成することができる。そして、署名生成装置301によれば、グループG1〜GKから選ばれたグループGkの特徴を抽出した第1MAC値C(Gk)を算出することができる。
また、署名生成装置301によれば、グループGkに含まれる各々のフレームFiをMUC単位で区切ることにより領域M1〜MXに分割することができる。そして、署名生成装置301によれば、グループGkに含まれる各々のフレームFiを分割して得られる各々の領域Mxについて、各々の領域Mxの特徴を抽出した第2MAC値C(Gk:Mx)を算出することができる。
また、署名生成装置301によれば、原動画情報MDの各グループGkの第1MAC値C(Gk)および各グループGkに含まれる各々の領域Mxの第2MAC値C(Gk:Mx)をリスト化したMACリストLを作成することができる。そして、署名生成装置301によれば、原動画情報MDのMACリストLに対する署名情報ES(電子署名)を生成することができる。
これにより、署名検証装置302において、署名情報ESを用いてMACリストLの正当性を検証することができる。また、署名検証装置302において、正当性が検証されたMACリストLを用いて、原動画情報MDの改ざんを検出することができる。
また、署名生成装置301によれば、第1MAC値C(Gk)および第2MAC値C(Gk:Mx)を、ハッシュ演算よりも処理負荷の軽いCRCの誤り検出符号を用いて求めることができる。これにより、署名検証装置302における署名検証処理にかかる処理負荷を軽減して、原動画情報MDの検証速度を向上させることができる。
また、署名生成装置301によれば、原動画情報MDの圧縮形式に応じて、一連のフレームF1〜Fmを分割するフレーム数Nを選択することができる。これにより、例えば、GOP単位で改ざんされる可能性が高いMPEGの原動画情報MDの場合には、一連のフレームF1〜FmをGOP単位で分割して第1MAC値C(Gk)を算出することができ、原動画情報MDの改ざんを効率的に検出できるようになる。
また、署名生成装置301によれば、原動画情報MDの再生時間やフレームレートに応じて、一連のフレームF1〜Fmを分割するフレーム数Nを選択することができる。これにより、原動画情報MDの再生時間が長くなるとともに増大する処理負荷や、また、原動画情報MDが高画質になるとともに増大する処理負荷を抑制することができる。
また、実施の形態にかかる署名検証装置302によれば、原動画情報MDのMACリストLに付加された署名情報ESに基づいて、MACリストLの正当性を判断することができる。そして、署名検証装置302によれば、MACリストLが正当である場合に、原動画情報MDに含まれる一連のフレームF1〜Fmをフレーム数Nで分割することにより、グループG1〜GKを作成することができる。
また、署名検証装置302によれば、グループG1〜GKから選ばれたグループGkの特徴を抽出した第3MAC値C(Gk)を算出することができる。そして、署名検証装置302によれば、MACリストLを参照して、グループGkの第1MAC値C(Gk)と第3MAC値C(Gk)とを比較することにより、グループGkの改ざんを検出することができる。
また、署名検証装置302によれば、グループGkの改ざんが検出された場合、グループGkに含まれる各々のフレームFiをMUC単位で分割することにより領域M1〜MXに分割することができる。そして、署名検証装置302によれば、グループGkに含まれる各々の領域Mxについて、各々の領域Mxの特徴を抽出した第4MAC値C(Gk:Mx)を算出することができる。
また、署名検証装置302によれば、MACリストLを参照して、グループGkの領域Mxの第2MAC値C(Gk:Mx)と第4MAC値C(Gk:Mx)とを比較することにより、グループGkの領域Mxの改ざんを検出することができる。
これらのことから、検証システム300によれば、グループ単位の改ざんを検出した後に、フレームFi内のMCU単位の改ざんを検出することができる。これにより、全グループGkの各領域Mxの第2MAC値C(Gk:Mx)を求めてMCU単位の改ざんを検出する場合に比べて、画素レベルの改ざん箇所を効率的に特定することができ、原動画情報MDの検証速度を向上させることができる。
また、検証システム300によれば、グループ単位のMAC値を求めてグループ単位の改ざんを検出することができる。これにより、フレーム単位のMAC値を求めてフレーム単位の改ざんを検出する場合に比べて、画素レベルの改ざん箇所を特定するまでにかかる処理負荷を軽減して、原動画情報MDの検証速度を向上させることができる。
また、検証システム300によれば、原動画情報MDの改ざんをグループ単位およびMCU単位の2段階で検出することができ、原動画情報MDの検証精度を向上させることができる。また、検証システム300によれば、フレーム間の画像整合性検証や検証者の目視による画像確認により改ざんの疑いがあるフレームFiを含むグループGkを絞り込んだ上で署名検証処理を行うことができる。これにより、署名検証装置302にかかる処理負荷を軽減させるとともに原動画情報MDの検証精度をさらに向上させることができる。
なお、本実施の形態で説明した改ざん検出方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本生成プログラム、検出プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本生成プログラム、検出プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量を算出する第1の算出工程と、
前記フレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出する第2の算出工程と、
前記第1の算出工程によって算出された前記第1の特徴量および前記第2の算出工程によって算出された前記第2の特徴量に対する電子署名を生成する生成工程と、
前記第1の特徴量および前記第2の特徴量と、前記生成工程によって生成された前記電子署名とに基づいて、前記動画の改ざんを検出する検出工程と、
を含むことを特徴とする改ざん検出方法。
(付記2)前記第1の算出工程は、
前記一連のフレームを所定のフレーム数ごとに分割して得られるフレーム群の特徴を抽出した第1の特徴量を算出し、
前記第2の算出工程は、
前記フレーム群に含まれる各々のフレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出することを特徴とする付記1に記載の改ざん検出方法。
(付記3)前記第1の算出工程は、
前記動画の圧縮形式に応じたフレーム数ごとに前記一連のフレームを分割して得られるフレーム群の特徴を抽出した第1の特徴量を算出することを特徴とする付記2に記載の改ざん検出方法。
(付記4)前記第1の算出工程は、
前記動画の再生時間に応じたフレーム数ごとに前記一連のフレームを分割して得られるフレーム群の特徴を抽出した第1の特徴量を算出することを特徴とする付記2または3に記載の改ざん検出方法。
(付記5)前記第1の算出工程は、
前記動画のフレームレートに応じたフレーム数ごとに前記一連のフレームを分割して得られるフレーム群の特徴を抽出した第1の特徴量を算出することを特徴とする付記2〜4のいずれか一つに記載の改ざん検出方法。
(付記6)前記第1の算出工程は、
前記フレーム群に含まれる画素の画素値に基づいて、CRC(巡回冗長検査:Cyclic Redundancy Check)関数を用いて得られる誤り検出符号を前記第1の特徴量として算出し、
前記第2の算出工程は、
前記各々の領域に含まれる画素の画素値に基づいて、前記CRC関数を用いて得られる誤り訂正符号を前記第2の特徴量として算出することを特徴とする付記2〜5のいずれか一つに記載の改ざん検出方法。
(付記7)前記電子署名に基づいて、前記第1の特徴量および前記第2の特徴量の正当性を判断する判断工程と、
前記判断工程によって前記第1の特徴量および前記第2の特徴量が正当であると判断された場合に、前記フレーム群に対応する前記動画内の対象フレーム群の特徴を抽出した第3の特徴量を算出する第3の算出工程と、を含み、
前記検出工程は、
前記第1の特徴量と前記第3の算出工程によって算出された前記第3の特徴量とを比較した比較結果に基づいて、前記対象フレーム群の改ざんを検出することを特徴とする付記2〜6のいずれか一つに記載の改ざん検出方法。
(付記8)前記第1の特徴量と前記第3の特徴量とが不一致の場合に、前記対象フレーム群に含まれる各々の対象フレームを分割して得られる各々の対象領域の特徴を抽出した第4の特徴量を算出する第4の算出工程を含み、
前記検出工程は、
前記各々の対象領域について、前記第4の算出工程によって算出された前記第4の特徴量と、前記各々の対象領域に対応する前記フレーム群に含まれる前記領域の前記第2の特徴量とを比較した比較結果に基づいて、前記各々の対象領域の改ざんを検出することを特徴とする付記7に記載の改ざん検出方法。
(付記9)動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量を算出する第1の算出部と、
前記フレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出する第2の算出部と、
前記第1の算出部によって算出された前記第1の特徴量および前記第2の算出部によって算出された前記第2の特徴量に対する電子署名を生成する生成部と、
前記生成部によって生成された前記電子署名を付加した前記第1の特徴量および前記第2の特徴量を前記動画と対応付けて出力する出力部と、
を有することを特徴とする生成装置。
(付記10)動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量を算出する第1の算出部と、
前記フレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出する第2の算出部と、
前記第1の算出部によって算出された前記第1の特徴量および前記第2の算出部によって算出された前記第2の特徴量に対する電子署名を生成する生成部と、
前記生成部によって生成された前記電子署名を付加した前記第1の特徴量および前記第2の特徴量を前記動画と対応付けて出力する出力部と、
を有するコンピュータを含むことを特徴とする生成装置。
(付記11)コンピュータに、
動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量を算出し、
前記フレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出し、
算出した前記第1の特徴量および前記第2の特徴量に対する電子署名を生成し、
生成した前記電子署名を付加した前記第1の特徴量および前記第2の特徴量を前記動画と対応付けて出力する、
処理を実行させることを特徴とする生成プログラム。
(付記12)コンピュータに、
動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量を算出し、
前記フレームを分割して得られる各々の領域について、前記各々の領域の特徴を抽出した第2の特徴量を算出し、
算出した前記第1の特徴量および前記第2の特徴量に対する電子署名を生成し、
生成した前記電子署名を付加した前記第1の特徴量および前記第2の特徴量を前記動画と対応付けて出力する、
処理を実行させる生成プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
(付記13)動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量および前記フレームを分割して得られる各々の領域の特徴を抽出した第2の特徴量と、前記第1の特徴量および前記第2の特徴量に付加された電子署名とを取得する取得部と、
前記取得部によって取得された前記電子署名と前記第1の特徴量および前記第2の特徴量とに基づいて、前記動画の改ざんを検出する検出部と、
を有することを特徴とする検出装置。
(付記14)動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量および前記フレームを分割して得られる各々の領域の特徴を抽出した第2の特徴量と、前記第1の特徴量および前記第2の特徴量に付加された電子署名とを取得する取得部と、
前記取得部によって取得された前記電子署名と前記第1の特徴量および前記第2の特徴量とに基づいて、前記動画の改ざんを検出する検出部と、
を有するコンピュータを含むことを特徴とする検出装置。
(付記15)コンピュータに、
動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量および前記フレームを分割して得られる各々の領域の特徴を抽出した第2の特徴量と、前記第1の特徴量および前記第2の特徴量に付加された電子署名とを取得し、
取得した前記電子署名と前記第1の特徴量および前記第2の特徴量とに基づいて、前記動画の改ざんを検出する、
処理を実行させることを特徴とする検出プログラム。
(付記16)コンピュータに、
動画の原本である一連のフレームから選ばれたフレームの特徴を抽出した第1の特徴量および前記フレームを分割して得られる各々の領域の特徴を抽出した第2の特徴量と、前記第1の特徴量および前記第2の特徴量に付加された電子署名とを取得し、
取得した前記電子署名と前記第1の特徴量および前記第2の特徴量とに基づいて、前記動画の改ざんを検出する、
処理を実行させる検出プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。