(57)【特許請求の範囲】
【請求項１】
順次入力されてくる時系列なデータが記憶される所定の記憶装置にアクセス可能なデータ管理装置であって、
Ｎ個のハッシュ値を格納する格納手段と、
前記Ｎ個のハッシュ値を並列に生成して前記格納手段に順序付けて格納するハッシュ生成手段と、
所定のイベントにかかる通知情報を受け取ると、前記格納手段によって格納された１番目のハッシュ値を出力する出力手段と、を備え、
前記ハッシュ生成手段は、
前記所定の記憶装置に前記時系列なデータが入力されるごとに、前記格納手段によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納手段に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納手段に格納することを特徴とするデータ管理装置。
【請求項２】
順次入力されてくる時系列なデータが記憶される所定の記憶装置にアクセス可能なデータ管理装置であって、
Ｎ個のハッシュ値を格納する格納手段と、
前記所定の記憶装置に前記時系列なデータが入力されるごとに、前記格納手段によって格納された１番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ個のハッシュ値を生成して前記格納手段に順序付けて格納するハッシュ生成手段と、
所定のイベントにかかる通知情報を受け取ると、前記格納手段によって格納された１番目のハッシュ値を出力する出力手段と、を備え、
前記ハッシュ生成手段は、
所定の一定時間経過後に前記所定の記憶装置に前記時系列なデータが入力された場合、前記格納手段によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納手段に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納手段に格納することを特徴とするデータ管理装置。
【請求項３】
前記ハッシュ生成手段は、
所定の回数分ハッシュ値を生成した後に前記所定の記憶装置に前記時系列なデータが入力された場合、前記格納手段によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納手段に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納手段に格納することを特徴とする請求項１または２に記載のデータ管理装置。
【請求項４】
前記ハッシュ生成手段は、
任意のデータを受け付けて該任意のデータのサイズを圧縮する圧縮関数を複数回実行することでハッシュ値を生成し、
前記所定の記憶装置に前記時系列なデータが入力されるごとに、前記格納手段によって格納された１番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいて、前記圧縮関数を前記１番目からＮ番目のハッシュ値それぞれにて少なくとも１回実行することでＮ個のハッシュ値を生成して前記格納手段に順序付けて格納し、
所定の一定時間経過後に前記所定の記憶装置に前記時系列なデータが入力された場合、前記格納手段によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいて、前記圧縮関数を前記２番目からＮ番目のハッシュ値それぞれにて少なくとも１回実行することでＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納手段に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納手段に格納することを特徴とする請求項１または２に記載のデータ管理装置。
【請求項５】
前記ハッシュ生成手段は、
所定の回数分ハッシュ値を生成した後に前記所定の記憶装置に前記時系列なデータが入力された場合、前記格納手段によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいて、前記圧縮関数を前記２番目からＮ番目のハッシュ値それぞれにて少なくとも１回実行することでＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納手段に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納手段に格納することを特徴とする請求項４に記載のデータ管理装置。
【請求項６】
順次入力されてくる時系列なデータが記憶される所定の記憶装置にアクセス可能なコンピュータが、
Ｎ個のハッシュ値を格納する格納工程と、
前記Ｎ個のハッシュ値を並列に生成して前記格納工程に順序付けて格納するハッシュ生成工程と、
所定のイベントにかかる通知情報を受け取ると、前記格納工程によって格納された１番目のハッシュ値を出力する出力工程と、を実行し、
前記ハッシュ生成工程は、
前記所定の記憶装置に前記時系列なデータが入力されるごとに、前記格納工程によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納工程に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納工程に格納することを特徴とするデータ管理方法。
【請求項７】
順次入力されてくる時系列なデータが記憶される所定の記憶装置にアクセス可能なコンピュータに、
Ｎ個のハッシュ値を格納する格納工程と、
前記Ｎ個のハッシュ値を並列に生成して前記格納工程に順序付けて格納するハッシュ生成工程と、
所定のイベントにかかる通知情報を受け取ると、前記格納工程によって格納された１番目のハッシュ値を出力する出力工程と、を実行させ、
前記ハッシュ生成工程は、
前記所定の記憶装置に前記時系列なデータが入力されるごとに、前記格納工程によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成してそれぞれ１番目からＮ−１番目のハッシュ値として前記格納工程に格納するとともに、該入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として前記格納工程に格納することを特徴とするデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを管理するデータ管理装置、データ管理方法、およびデータ管理プログラムに関する。
【背景技術】
【０００２】
近年、自動車に取り付けることにより、事故発生時に、その時の運転記録を残すことができるドライブレコーダ装置が普及し始めている。ドライブレコーダ装置が記録した映像を元に、事故の過失割合を決定することができるため、特にタクシーやバスなどにドライブレコーダを設置するケースが増えている。
【０００３】
その際に、映像の一部が改ざんされていないことを保証するため、一定期間の映像のハッシュ値を生成し、公開鍵暗号等で署名をすることがある。前述した、一定期間の映像を保証する技術として、あるタイミングの画像データとその次のタイミングの画像データに基づいた連鎖ハッシュを生成することで、映像の連続性を保証するという技術が開示されている（たとえば、下記特許文献１を参照。）。
【０００４】
また、ドライブレコーダは、常に映像を撮り続け、記憶領域に収まらない古い映像を順次削除するため、前述したハッシュ値も、記憶領域に収まっている範囲の映像に対してハッシュ値を生成する必要がある。さらに、事故発生時には、ドライブレコーダに衝撃が伝わり、ドライブレコーダが故障する可能性があるため、事故発生後は可能な限り処理を行わず、録画中にハッシュ値を生成した方がよい。前述した、古い映像が削除され、録画中にハッシュ値を生成する技術として、フレームごとにハッシュを取り、さらに一定範囲のフレーム群のハッシュ値に対して末尾ハッシュ値を生成するという技術が開示されている（たとえば、下記特許文献２を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１６３４２号公報
【特許文献２】特開２００９−７００２６号公報（段落［０３１９］〜［０３５９］）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術において、特許文献２では、連続性を保証するために末尾ハッシュ値を生成する必要がある。フレームレートの高い映像では、末尾ハッシュの処理を行うのに時間がかかるという問題があった。たとえば、３０ｆｐｓ（Ｆｒａｍｅ  Ｐｅｒ  Ｓｅｃｏｎｄ）の映像で、２０秒間の映像に対して保証を行いたい場合、６００個のフレームのハッシュ値に対して末尾ハッシュ値を求める必要があり、処理に時間がかかるという問題があった。特に、ドライブレコーダ機能を持つデータ管理装置のハードウェア構成は、比較的計算能力の高くない組み込み環境にて構成されるため、ハッシュ処理をできるだけ短くしたいという問題があった。
【０００７】
本発明は、上述した従来技術による問題点を解消するため、時系列フレーム群の連続性を保証でき、ハッシュ処理を短くするデータ管理装置、データ管理方法、およびデータ管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、開示のデータ管理装置は、順次入力されてくる一連のデータを先入れ先出しすることにより時系列なデータ群を記憶する記憶装置にアクセス可能なデータ管理装置であって、前記記憶装置に最新のデータが入力される都度、前記時系列なデータ群に関するハッシュ値を生成し、生成されたハッシュ値を所定の記憶領域に格納することを要件とする。
【発明の効果】
【０００９】
本データ管理装置、データ管理方法、およびデータ管理プログラムによれば、いつ故障しても故障時のハッシュが保持されるため、時系列フレーム群の連続性を保証でき、ハッシュ処理を短くするという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態にかかるドライブレコーダの使用方法の概要を示す説明図である。
【図２】データ管理装置１０４のハードウェア構成を示すブロック図である。
【図３】データ管理装置１０４の機能的構成を示すブロック図である。
【図４】ハッシュ関数の概要を示す説明図である。
【図５】実施の形態１−１にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。
【図６】実施の形態１−１にかかるハッシュ管理処理のフローチャートである。
【図７】実施の形態１−１にかかる録画開始処理１のフローチャートである。
【図８】実施の形態１−１にかかる録画開始処理２のフローチャートである。
【図９】実施の形態１−１にかかるハッシュ格納部初期化処理のフローチャートである。
【図１０】実施の形態１−１にかかるハッシュ開始判断処理のフローチャートである。
【図１１】実施の形態１−１にかかるハッシュ格納部内ｘ番目のハッシュ開始処理のフローチャートである。
【図１２】実施の形態１−１にかかるハッシュ格納部状態更新処理のフローチャートである。
【図１３】実施の形態１−１にかかる録画途中処理のフローチャートである。
【図１４】実施の形態１−１にかかる事故発生時処理のフローチャートである。
【図１５】実施の形態１−２にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。
【図１６】実施の形態１−２にかかるハッシュ格納部初期化処理のフローチャートである。
【図１７】実施の形態１−２にかかるハッシュ開始判断処理のフローチャートである。
【図１８】実施の形態１−２にかかるハッシュ格納部内ｘ番目のハッシュ開始処理のフローチャートである。
【図１９】実施の形態１−２にかかるハッシュ格納部状態更新処理のフローチャートである。
【図２０】実施の形態１−２にかかる録画途中処理のフローチャートである。
【図２１】実施の形態１−２にかかる事故発生時処理のフローチャートである。
【図２２】実施の形態２−１にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。
【図２３】実施の形態２−１にかかる録画開始処理１のフローチャートである。
【図２４】実施の形態２−１にかかる録画開始処理２のフローチャートである。
【図２５】実施の形態２−１にかかるハッシュ格納部状態更新処理のフローチャートである。
【図２６】実施の形態２−１にかかる録画途中処理のフローチャートである。
【図２７】実施の形態２−２にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。
【図２８】実施の形態２−２にかかるハッシュ格納部状態更新処理のフローチャートである。
【図２９】実施の形態２−２にかかる録画途中処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかるデータ管理装置、データ管理方法、およびデータ管理プログラムの好適な実施の形態を詳細に説明する。
【００１２】
図１は、本実施の形態にかかるドライブレコーダの使用方法の概要を示す説明図である。車両１０１は、カメラ１０２、車両制御装置１０３、データ管理装置１０４、センサー１０５を搭載している。車両１０１は、ドライブレコーダを搭載する自動車を示す。カメラ１０２は、車両１０１の進行方向の映像を記録し、車両制御装置１０３に送信する。カメラ１０２は、車両１０１の進行方向だけでなく、後退方向にあってもよい。後退方向にカメラ１０２が存在する場合、たとえば、後ろからの追突時の映像を記憶することができる。
【００１３】
車両制御装置１０３は、車両１０１を操作する運転者からの指示を受信し、各動力部に動作命令を送信する。また、車両制御装置１０３は、カメラ１０２、データ管理装置１０４、センサー１０５を制御する。また、車両制御装置１０３は、センサー１０５の計測結果に基づいて、データ管理装置１０４に事故が発生したことを通知する。データ管理装置１０４は、ドライブレコーダの機能を含む装置で、カメラ１０２からの映像を記録し、それに対する署名を行う。データ管理装置１０４の詳細の説明は図２、図３にて後述する。
【００１４】
センサー１０５は、車両１０１の各種状態を測るセンサー群である。具体的には、たとえば、車両１０１の速度、加速度、角速度、温度、湿度等を計測し、車両制御装置１０３に送信する。たとえば、急加速、急停止が行われた際の計測値の変化によって、車両制御装置１０３は、データ管理装置１０４に事故が発生したことを通知する。
【００１５】
（データ管理装置のハードウェア構成）
図２は、データ管理装置１０４のハードウェア構成を示すブロック図である。図２において、データ管理装置１０４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を備えている。また、記憶装置として、データ管理装置１０４は、フラッシュＲＯＭ２０４を備えている。また、ユーザやその他の機器との入出力装置として、データ管理装置１０４は、ディスプレイ２０５と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０６と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００１６】
ここで、ＣＰＵ２０１は、データ管理装置１０４の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。また、同図には図示していないが、後述するハッシュ処理を専門に行うためのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）があってもよい。
【００１７】
フラッシュＲＯＭ２０４は、書き換えが可能であり、電源を切ってもデータが消えないという特徴を持つ不揮発性の半導体メモリである。フラッシュＲＯＭ２０４は、カメラ１０２からの映像や、映像に対する署名情報を記録する。また、アプリケーションプログラムを記憶してもよい。フラッシュＲＯＭ２０４の代わりに、磁気ディスクであるＨＤＤ（ハードディスクドライブ）にて記憶してもよいが、フラッシュＲＯＭ２０４を使用することにより、機械的に動作するＨＤＤに比べて振動に強くすることができる。たとえば、車両に強い振動があった場合でも、フラッシュＲＯＭ２０４であればデータが消える可能性を低くすることができる。また強誘電体メモリ（ＦｅＲＡＭ）を使用してもよい。
【００１８】
ディスプレイ２０５は、必要があれば、ドライブレコーダとして記録した映像を運転手に対して表示してもよい。ディスプレイ２０５は、ＣＲＴ、液晶ディスプレイ、等があげられるが、車両に組み込むことを考えると、省スペースである液晶ディスプレイを採用してもよい。また、運転手がディスプレイ２０５の液晶部に触れることにより、触れた位置をＣＰＵ２０１に伝え、映像に対して何らかの操作を行うことができるタッチパネルであってもよい。
【００１９】
Ｉ／Ｆ２０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２０７に接続され、このネットワーク２０７を介して他の装置に接続される。そして、Ｉ／Ｆ２０６は、ネットワーク２０７と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。また、Ｉ／Ｆ２０６を通して、フラッシュＲＯＭ２０４にて記憶された映像データを他の外部装置へ出力してもよい。
【００２０】
（データ管理装置１０４の機能的構成）
次に、データ管理装置１０４の機能的構成について説明する。図３は、データ管理装置１０４の機能的構成を示すブロック図である。データ管理装置１０４は、ハッシュ管理部３０１と、記憶部３０２と、イベント受信部３０３と、署名生成部３０４と、を含む構成である。この制御部となる機能は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、その機能を実現する。制御部となる機能は、ハッシュ管理部３０１、イベント受信部３０３、署名生成部３０４となる。または、Ｉ／Ｆ２０６を経由して他のＣＰＵが実行することにより、その機能を実現してもよい。
【００２１】
ハッシュ管理部３０１は、ハッシュの管理を行う機能を有し、ハッシュ生成部３０５、ハッシュ格納部３０６、タイマー３０７、圧縮関数実行部３０８、事故発生検出部３０９、出力部３１０を含む構成である。各機能は、前述したイベント受信部３０３、署名生成部３０４と同様に、ＲＯＭ２０２、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、その機能を実現する。
【００２２】
記憶部３０２は、順次入力されてくる一連のデータを先入れ先出しすることにより時系列なデータ群を記憶する所定の記憶装置である。時系列なデータ群とは、映像、音声といったデータを指している。記憶部３０２は先入れ先出しするキュー構造になっており、一つデータを入力した場合、一番古いデータを削除する。具体的には、たとえば、映像がフレームごとに入力され、一つのフレームを記憶する都度、古いフレームを削除する。なお、記憶部３０２は、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に存在する。
【００２３】
イベント受信部３０３は、車両制御装置１０３からのイベントを受信し、記憶部３０２、ハッシュ生成部３０５、事故発生検出部３０９にイベントを送信する機能を有する。具体的には、たとえば、カメラ１０２によって撮影された映像が、車両制御装置１０３を経由して、イベント受信部３０３に到達する。イベント受信部３０３は、映像フレームの画像データを記憶部３０２へ入力するとともに、ハッシュ生成部３０５に対してフレームが入力されたことを通知する。センサー１０５によって車両１０１が急停止したことが通知されてきた場合、イベント受信部３０３は、事故発生検出部３０９に急停止したことを通知する。なお、通知された各種イベントは、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に格納される。
【００２４】
署名生成部３０４は、出力されたハッシュ値に対して署名生成を行う機能を有する。具体的には、たとえば、事故発生時に、ハッシュ格納部３０６に格納されていたハッシュ値に対して、データ管理装置１０４で保持している秘密鍵にて署名を行う。なお、署名された電子署名は、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に格納される。もしくは、電子署名は、Ｉ／Ｆ２０６を通じて外部の装置へ出力される。
【００２５】
ハッシュ生成部３０５は、Ｎ個のハッシュ値を並列に生成してハッシュ格納部３０６に順序付けて格納する機能を有する。具体的には、たとえば、フレームの映像データが入力された場合、記憶部３０２に記憶されているすべてのフレームの映像データについてハッシュ値を生成する。さらに、記憶部３０２に記憶されている一部分のフレームの映像データについてもハッシュ値を生成する。このように、記憶部３０２にＮ個のハッシュ値が存在するときに、Ｎ個のハッシュ値すべてについて、一番古いフレームの映像データのハッシュ値となるデータを１番目となるように順序付けて格納する。
【００２６】
また、ハッシュ生成部３０５は、記憶部３０２に時系列なデータが入力されるごとに、ハッシュ格納部３０６によって格納された２番目からＮ番目のハッシュ値それぞれと該入力されたデータとに基づいてＮ−１個のハッシュ値を生成する。続けて、ハッシュ生成部３０５は、それぞれ１番目からＮ−１番目のハッシュ値としてハッシュ格納部３０６に格納するとともに、入力されたデータに基づいて１個のハッシュ値を生成してＮ番目のハッシュ値として格納部３０６に格納してもよい。
【００２７】
また、前述の処理が実行されるトリガーとして、所定の一定時間経過後に記憶部３０２に時系列なデータが入力された場合でもよいし、所定の回数分ハッシュ値を生成した後に記憶部３０２に時系列なデータが入力された場合でもよい。所定の一定時間とは、タイマー３０７にて計測される一定時間である。所定の回数とは、ハッシュ値を生成するたびにカウントするカウンタの一定値である。
【００２８】
具体的には、たとえば、ハッシュ生成部３０５は、記憶部３０２にフレームの映像データが入力されたときに、ハッシュ格納部３０６の２番目からＮ番目のハッシュ値それぞれとフレームの映像データとに基づいてＮ−１個のハッシュ値を生成する。生成後、ハッシュ生成部３０５は、それぞれ１番目からＮ−１番目のハッシュ値としてハッシュ格納部３０６に格納し、フレームの映像データのハッシュ値をＮ番目のハッシュ値として格納部３０６に格納する。
【００２９】
また、ハッシュ生成部３０５は、最新のデータを加えた時系列なデータ群に関し、任意のデータを受け付けて任意のデータのサイズを圧縮する圧縮関数を複数回実行することでハッシュ値を生成してもよい。圧縮関数を複数回実行することは、圧縮関数実行部３０８を複数回機能させることに等しい。
【００３０】
具体的には、たとえば、フレームの画像データが入力された場合、ハッシュ格納部３０６から、２番目からＮ番目のハッシュ値それぞれを取得する。取得したハッシュ値と入力されたフレームの画像データを入力元として、圧縮関数実行部３０８を複数回機能させる。得られた結果を、２番目からＮ番目のハッシュ値に対応する画像データと入力された画像データを加えた一連の映像データに関するハッシュ値として生成する。なお、後述する実施の形態１−１、実施の形態１−２では、前述の方法でハッシュ値を生成する。
【００３１】
また、ハッシュ生成部３０５は、最新のデータのサイズを圧縮する圧縮関数を複数回実行することで、最新のデータに関するハッシュ値を生成する。続けて、ハッシュ格納部３０６によって格納された２番目からＮ番目のハッシュ値それぞれと入力されたデータに基づいて、圧縮関数を少なくとも１回実行することで、最新のデータを加えた時系列なデータ群に関するハッシュ値を生成してもよい。圧縮関数を少なくとも１回実行することは、圧縮関数実行部３０８を少なくとも１回機能させることに等しい。
【００３２】
具体的には、たとえば、フレームの画像データが入力された場合、入力されたフレームの画像データを圧縮関数実行部３０８に対して複数回機能させて得られた結果を、入力されたフレームの画像データに関するハッシュ値として生成する。続けて、ハッシュ格納部３０６から、２番目からＮ番目のハッシュ値に対応するフレームの映像データに関するハッシュ値を取得する。
【００３３】
取得したハッシュ値と入力されたフレームの画像データに関するハッシュ値を入力元として、圧縮関数実行部３０８を少なくとも１回機能させる。得られた結果を、２番目からＮ番目のハッシュ値に対応する映像データと入力された画像データを加えた一連の映像データに関するハッシュ値として生成する。なお、後述する実施の形態２−１、実施の形態２−２では、前述の方法でハッシュ値を生成する。
【００３４】
ハッシュ格納部３０６は、Ｎ個のハッシュ値を格納する機能を有する。具体的には、ハッシュ生成部３０５によって生成されたＮ個のハッシュ値を格納する。ハッシュ格納部３０６の格納方法は、後述する実施の形態によって異なる。格納する格納先は、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置である。
【００３５】
タイマー３０７は、時間経過を確認する機能を有する。後述する実施の形態１−１、実施の形態２−１では、タイマー３０７から現在時刻を取得して一定時間経過したかを確認する。また、タイマー３０７は、ＣＰＵ２０１のクロックカウンタや、ＯＳのタイマー機能等によって実装されている。
【００３６】
圧縮関数実行部３０８は、ハッシュ関数の内部で複数回呼ばれる処理で、情報を圧縮する機能を有する。具体的には、たとえば、５１２ｂｉｔの固定長の入力から１６０ｂｉｔの固定長のデータ出力を行ったり、１０２４ｂｉｔの固定長の入力から２５６ｂｉｔの固定長、あるいは５１２ｂｉｔの固定長の出力を行ったりする。圧縮関数の具体的な実装例として、たとえば、ハッシュ関数であるＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−１での圧縮関数は、下記参考文献１での、７．  ＣＯＭＰＵＴＩＮＧ  ＴＨＥ  ＭＥＳＳＡＧＥ  ＤＩＧＥＳＴに記載される処理である。
（参考文献１：ＦＩＰＳ  １８０−１  −  Ｓｅｃｕｒｅ  Ｈａｓｈ  Ｓｔａｎｄａｒｄ、［ｏｎｌｉｎｅ］、［平成２２年０２月２５日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｉｔｌ．ｎｉｓｔ．ｇｏｖ／ｆｉｐｓｐｕｂｓ／ｆｉｐ１８０−１．ｈｔｍ＞）
【００３７】
また、同じくハッシュ関数であるＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）での圧縮関数は、下記参考文献２での、３．４  Ｓｔｅｐ  ４．  Ｐｒｏｃｅｓｓ  Ｍｅｓｓａｇｅ  ｉｎ  １６−Ｗｏｒｄ  Ｂｌｏｃｋｓに記載される処理である。
（参考文献２：ＲＦＣ  １３２１  −  Ｔｈｅ  ＭＤ５  Ｍｅｓｓａｇｅ−Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ、［ｏｎｌｉｎｅ］、［平成２２年０２月２５日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ１３２１＞）
【００３８】
圧縮関数実行部３０８は、ハードウェアの回路にて実装されていてもよく、たとえば、ハッシュ同時処理数を示すｎ個分、圧縮関数実行部３０８が存在すれば、ｎ個のハッシュ処理を同時に行うことができる。なお、圧縮関数実行の結果は、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶装置に格納される。
【００３９】
事故発生検出部３０９は、イベント受信部３０３から事故検出のイベントを受信し、ハッシュ生成部３０５に送信する機能を有する。具体的には、たとえば、事故発生検出部３０９は、急停止したというイベントを受信すると、ハッシュ生成部３０５に対して事故が発生したことを通知する。ハッシュ生成部３０５は、事故が発生したことを通知すると、事故発生時処理を実行する。
【００４０】
出力部３１０は、所定のイベントにかかる通知情報を受け取ると、ハッシュ格納部３０６によって格納された１番目のハッシュ値を出力する機能を有する。所定のイベントとは、事故発生検出部３０９で受信したイベントである。具体的には、出力部３１０は、事故発生検出部３０９にて事故検出のイベントにかかる通知情報を受け取ると、ハッシュ格納部３０６によって格納された１番目のハッシュ値を署名生成部３０４に出力する。
【００４１】
図４は、ハッシュ関数の概要を示す説明図である。ハッシュ関数Ｈは、一方向性の関数であり、任意長のデータＭと固定値であるＩＶ（ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｖｅｃｔｏｒ：初期ベクトル）から、固定長のハッシュ値を算出する。一般的なハッシュ関数としては、ＳＨＡや、ＭＤ５が存在する。ハッシュ関数Ｈは、圧縮関数複数回処理ｈを任意長のデータの長さに応じて繰り返し実行することで構成されている。
【００４２】
たとえば、式４０１で示しているように、Ｍ＝（ｍ１｜｜ｍ２｜｜ｍ３｜｜ｍ４）のように入力されたデータを分割し、それぞれに対し圧縮関数複数回処理ｈを実行する。ｍ１、ｍ２、ｍ３、ｍ４は、たとえば、５１２ｂｉｔと同じかそれ以下のデータ長となる。記号“｜｜”はデータの連結処理を示しており、もしＭが“０１１００１”というビット列であるとき、Ｍ＝“０１１”｜｜“００１”と表すことができる。
【００４３】
Ｍのデータ長によって、ハッシュ関数Ｈの処理は、符号４０２、符号４０３、符号４０４のいずれかで示した状態に分かれる。符号４０２で示している処理では、ハッシュ関数Ｈは、ＩＶとｍ１に基づいて圧縮関数複数回処理ｈを実行し、実行結果となるハッシュ値の途中結果を取得する。続けて、ハッシュ関数Ｈは、ハッシュ値の途中結果とｍ２に基づいて圧縮関数複数回処理ｈを実行し、新しいハッシュ値の途中結果の取得を繰り返し、最後に、ハッシュ値の途中結果と（ｍ４｜｜１｜｜０．．．０｜｜ｌｅｎｇｔｈ）とに基づいて圧縮関数複数回処理ｈを実行し、ハッシュ結果を取得する。ｌｅｎｇｔｈはＭのデータ長を示す値が設定される。
【００４４】
もし、（ｍ４｜｜１｜｜０．．．０｜｜ｌｅｎｇｔｈ）が指定された固定長、たとえば、５１２ビットより短い場合、ハッシュ関数Ｈは、端数に関してはパディング処理を行い、指定された固定長にあわせる。
【００４５】
（ｍ４｜｜１｜｜０．．．０｜｜ｌｅｎｇｔｈ）が指定された固定長を超えてしまう場合、ハッシュ関数Ｈの処理は、符号４０３で示した処理となる。符号４０３で示した処理では、途中までは、符号４０２で示した処理と等しいが、（ｍ４｜｜１｜｜０．．．０）と（０．．．０｜｜ｌｅｎｇｔｈ）とに分けて圧縮関数複数回処理ｈを実行する。
【００４６】
（ｍ４｜｜１｜｜０．．．０）が指定された固定長を超えてしまう場合は、ハッシュ関数Ｈの処理は、符号４０４で示した処理となる。符号４０４で示した処理では、途中までは、符号４０２で示した処理と等しいが、ハッシュ値のｍ３までの途中結果とｍ４とに基づいて圧縮関数複数回処理ｈを実行する。さらに、前述の実行結果と（１｜｜０．．．０｜｜ｌｅｎｇｔｈ）とに基づいて圧縮関数複数回処理ｈを実行する。
【００４７】
また、圧縮関数複数回１個である処理ｈは、圧縮関数ｃを複数回実行する。圧縮関数複数回処理ｈに入力されるデータが５１２ｂｉｔ以上である場合、入力されるデータを分割し、圧縮関数ｃを分割した分実行する。以上のように、ハッシュ関数Ｈは内部で圧縮関数ｃを何度も実行するため、圧縮関数ｃ１回はハッシュ関数Ｈよりも高速に動作することになる。
【００４８】
（実施の形態１−１の概要説明）
図５は、実施の形態１−１にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。ハッシュ格納部３０６には、ＩＶとハッシュ値群が格納されている。ハッシュ値群は、ハッシュ処理途中結果（１）とその生成時刻となる開始時刻（１）、ハッシュ処理途中結果（２）とその生成時刻となる開始時刻（２）、のように、ハッシュ同時処理数であるｎ個生成されている。
【００４９】
次に、ハッシュ値の生成について、たとえば、データ管理装置１０４は、時刻ｔ１に、フレームｔ１の画像データとＩＶに対して圧縮関数複数回処理ｈを実行し、結果の値をハッシュ処理途中結果（１）に格納し、タイマー３０７から取得した時刻ｔ１の値を開始時刻（１）に格納する。続けて、データ管理装置１０４は、時刻ｔ２に、フレームｔ２の画像データとハッシュ処理途中結果（１）に格納した値に対して圧縮関数複数回処理ｈを実行し、結果の値を再びハッシュ処理途中結果（１）に格納する。
【００５０】
前述した操作を保証するフレーム数であるｍ個のフレーム分繰り返し、データ管理装置１０４は、時刻ｔｍに、フレームｔｍの画像データとハッシュ処理途中結果（１）に格納した値に対して圧縮関数複数回処理ｈを実行し、結果の値を再びハッシュ処理途中結果（１）に格納する。時刻ｔｍに事故があった場合、車両制御装置１０３は、ハッシュ処理途中結果（１）に格納された値を署名生成部３０４へ出力する。ハッシュ処理途中結果（２）、・・・、ハッシュ処理途中結果（ｎ）についても、それぞれの開始時刻にハッシュ値を生成する。
【００５１】
また、時刻ｔｍに事故が起こらずに、続けて次のフレームが入力され、記憶部３０２には、ｍ個までのフレームの画像データを格納する場合、データ管理装置１０４は、フレームｔ１を削除する。続けて、データ管理装置１０４は、フレームｔ１に対応するハッシュ処理途中結果（１）と開始時刻（１）に格納されていた値を、現在時刻と開始時刻（１）の値の差から判断して削除し、新しく入力されたフレームから始まるハッシュ値の格納用として使用する。
【００５２】
また、図５の説明では、フレームｔ１とフレームｔ２は１フレーム離れており、１フレームずつずらしてハッシュ値を生成していたが、複数のフレームずつずらしてハッシュ値を生成してもよい。また、記憶部３０２に格納される動画が、フレーム間予測技術を持ったＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等の動画では、映像の再生単位となるＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）ごとにずらしてもよい。特に、同時に削除されるフレームが１つずつではなくＧＯＰずつである場合、それにあわせてＧＯＰごとにハッシュ値をずらして生成することで、事故が起こった際にも、現存しているフレームと一致したハッシュ値を生成しておくことができる。
【００５３】
次に、具体的な実施例を説明する。動画の例として、１秒間のフレームが１５［フレーム］であり、１画面の画素数が６４０×４８０ピクセルで、１画素の色表現が８ｂｉｔとする。また、ハードウェアの例としてＣＰＵ２０１の動作サイクル数が２００ＭＨｚ、圧縮関数の処理時間１０００サイクルとする。そして、記憶部３０２に格納するフレーム数ｍを３０［フレーム］、ハッシュ同時処理数ｎを２［個］とする。前述のｍ、ｎからハッシュ値を削除する時間は、ｍ／１秒間のフレーム数＝２［秒］となり、ハッシュ値の生成をずらす時間は、（ｍ／１秒間のフレーム数）／ｎ＝１［秒］となる。前述の動画の設定、ハードウェアの設定では、１フレームのハッシュ生成時間は、４８［ミリ秒］となる。
【００５４】
（実施の形態１−１の処理説明）
前述した構成を使用して、データ管理装置１０４は、ハッシュ管理処理を行う。ハッシュ管理処理は、録画開始処理と、録画途中処理と、事故発生時処理と、を内部に含む。録画開始処理には２種類の実装方法があり、それぞれ録画開始処理１、録画開始処理２とする。録画開始処理１と録画開始処理２は、ハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。録画途中処理は、前述したハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。
【００５５】
図６は、実施の形態１−１にかかるハッシュ管理処理のフローチャートである。初めに、データ管理装置１０４は、録画開始処理を行う（ステップＳ６０１）。録画開始処理は、ハッシュ格納部３０６の初期化、ハッシュ処理の開始を行う。詳細については、図７、図８にて後述する。録画開始処理後、データ管理装置１０４は、事故が発生したかを確認する（ステップＳ６０２）。なお、事故発生の検出は、事故発生検出部３０９にて検出する。事故を検出した場合（ステップＳ６０２：Ｙｅｓ）、データ管理装置１０４は、事故発生時処理を行う（ステップＳ６０４）。事故発生時処理の詳細は、図１４にて後述する。事故発生時処理後、データ管理装置１０４は処理を終了する。
【００５６】
事故が発生していない場合（ステップＳ６０２：Ｎｏ）、データ管理装置１０４は、録画終了要求を受け付けたかを確認する（ステップＳ６０３）。録画終了要求を受け付けた場合（ステップＳ６０３：Ｙｅｓ）、データ管理装置１０４は処理を終了する。録画終了要求を受け付けていない場合（ステップＳ６０３：Ｎｏ）、データ管理装置１０４は、ハッシュ未処理のフレームが存在するかを確認する（ステップＳ６０５）。
【００５７】
未処理のフレームが存在する場合（ステップＳ６０５：Ｙｅｓ）、データ管理装置１０４は、録画途中処理を行う（ステップＳ６０６）。録画途中処理の詳細は、図１３にて後述する。未処理のフレームが存在しない場合（ステップＳ６０５：Ｎｏ）、データ管理装置１０４は、ステップＳ６０２の処理に移行する。
【００５８】
図７と図８は、実施の形態１−１にかかる録画開始処理１と、録画開始処理２のフローチャートを示す。データ管理装置１０４は、録画開始処理として録画開始処理１と録画開始処理２のどちらを実行してもよい。それぞれの効果として、録画開始処理１は、録画開始処理２より実装がやや簡単である。また、録画開始処理２は、録画開始処理１よりも未処理のフレームが存在する以外の分岐が少ないため、高速に動作することができる。
【００５９】
図７は、実施の形態１−１にかかる録画開始処理１のフローチャートである。データ管理装置１０４は、ハッシュ格納部初期化処理を行う（ステップＳ７０１）。ハッシュ格納部初期化処理の詳細は、図９にて後述する。ハッシュ格納部初期化後、データ管理装置１０４は、変数ｘを０に設定する（ステップＳ７０２）。変数ｘは現在のハッシュ処理を行っている個数を示している。
【００６０】
次に、データ管理装置１０４は、ハッシュ未処理のフレームが存在するかを確認する（ステップＳ７０３）。未処理のフレームが存在しない場合（ステップＳ７０３：Ｎｏ）、データ管理装置１０４は、フレームが入力されるまで待機する（ステップＳ７０４）。フレームが入力された結果、ハッシュ未処理のフレームが存在することになる。
【００６１】
ハッシュ未処理のフレームが存在する場合（ステップＳ７０３：Ｙｅｓ）、データ管理装置１０４は、続けて変数ｘが０かを確認する（ステップＳ７０５）。変数ｘが０でない場合（ステップＳ７０５：Ｎｏ）、データ管理装置１０４は、ハッシュ開始判断処理を行う（ステップＳ７０６）。ハッシュ開始判断処理の詳細は、図１０にて後述する。続けて、データ管理装置１０４は、ハッシュ開始判断処理の判断結果を確認する（ステップＳ７０７）。
【００６２】
判断結果が“開始する”である場合（ステップＳ７０７：Ｙｅｓ）、ハッシュ開始処理を行うため、データ管理装置１０４は、ステップＳ７０８の処理に移行する。ステップＳ７０５にて、変数ｘが０の場合（ステップＳ７０５：Ｙｅｓ）またはステップＳ７０７：Ｙｅｓの場合、データ管理装置１０４は、変数ｘをインクリメントする（ステップＳ７０８）。続けて、データ管理装置１０４は、ハッシュ格納部内の変数ｘ番目のハッシュ開始処理を行う（ステップＳ７０９）。ハッシュ開始処理の詳細は、図１１にて後述する。
【００６３】
判断結果が“開始しない”である場合（ステップＳ７０７：Ｎｏ）、または、ステップＳ７０９の処理後、データ管理装置１０４は、未処理のフレームの画像データに対し、ハッシュ格納部３０６内の変数ｘまでのハッシュ格納部状態更新処理をする（ステップＳ７１０）。ハッシュ格納部状態更新処理の詳細は、図１２にて後述する。
【００６４】
最後に、データ管理装置１０４は、変数ｘがハッシュ同時処理数ｎ以上であるか確認する（ステップＳ７１１）。変数ｘがハッシュ同時処理数ｎ以上の場合（ステップＳ７１１：Ｙｅｓ）、これ以上ハッシュ処理を開始しないため、データ管理装置１０４は処理を終了する。変数ｘがハッシュ同時処理数ｎ未満の場合（ステップＳ７１１：Ｎｏ）、データ管理装置１０４は、ステップＳ７０４の処理に移行する。
【００６５】
図８は、実施の形態１−１にかかる録画開始処理２のフローチャートである。データ管理装置１０４は、ハッシュ格納部初期化処理を行う（ステップＳ８０１）。ハッシュ格納部初期化後、データ管理装置１０４は、変数ｘを１に設定する（ステップＳ８０２）。変数ｘは現在のハッシュ処理を行っている個数を示している。録画開始処理２では、ハッシュ未処理のフレームが存在するとすぐに１つ目のハッシュ開始処理を行うため、最初から変数ｘを１に設定している。
【００６６】
次に、データ管理装置１０４は、ハッシュ未処理のフレームが存在するかを確認する（ステップＳ８０３）。未処理のフレームが存在しない場合（ステップＳ８０３：Ｎｏ）、データ管理装置１０４は、フレームが入力されるまで待機する（ステップＳ８０４）。フレームが入力された結果、ハッシュ未処理のフレームが存在することになる。ハッシュ未処理のフレームが存在する場合（ステップＳ８０３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ開始処理を行う（ステップＳ８０５）。ハッシュ開始処理終了後、データ管理装置１０４は、未処理のフレームの画像データに対し、ハッシュ格納部３０６内の変数ｘまでのハッシュ格納部状態更新処理を行う（ステップＳ８０６）。
【００６７】
ハッシュ格納部状態更新処理後、データ管理装置１０４は、変数ｘがハッシュ同時処理数ｎ以上であるか確認する（ステップＳ８０７）。変数ｘがハッシュ同時処理数ｎ以上の場合（ステップＳ８０７：Ｙｅｓ）、これ以上ハッシュ処理を開始しないため、データ管理装置１０４は処理を終了する。
【００６８】
変数ｘがハッシュ同時処理数ｎ未満の場合（ステップＳ８０７：Ｎｏ）、データ管理装置１０４は、ハッシュ未処理のフレームが存在するかを確認する（ステップＳ８０８）。ハッシュ未処理のフレームが存在しない場合（ステップＳ８０８：Ｎｏ）、データ管理装置１０４は、フレームが入力されるまで待機する（ステップＳ８０９）。ハッシュ未処理のフレームが存在する場合（ステップＳ８０８：Ｙｅｓ）、データ管理装置１０４は、ハッシュ開始判断処理を行う（ステップＳ８１０）。続けて、データ管理装置１０４は、ハッシュ開始判断処理の判断結果を確認する（ステップＳ８１１）。
【００６９】
判断結果が“開始する”である場合（ステップＳ８１１：Ｙｅｓ）、ハッシュ開始処理を行うため、データ管理装置１０４は、変数ｘをインクリメントし（ステップＳ８１２）、ステップＳ８０５の処理に移行する。判断結果が“開始しない”である場合（ステップＳ８１１：Ｎｏ）、データ管理装置１０４は、ステップＳ８０６の処理に移行する。
【００７０】
図９は、実施の形態１−１にかかるハッシュ格納部初期化処理のフローチャートである。データ管理装置１０４は、現在時刻を取得し（ステップＳ９０１）、カウンタｉを１に設定する（ステップＳ９０２）。次に、データ管理装置１０４は、カウンタｉがハッシュ同時処理数ｎ以下であるかを確認する（ステップＳ９０３）。
【００７１】
カウンタｉがｎ以下である場合（ステップＳ９０３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部３０６内ｉ番目の開始時刻を取得した現在時刻に設定する（ステップＳ９０４）。カウンタｉがｎを超えた場合、データ管理装置１０４は、カウンタｉをインクリメントし（ステップＳ９０５）、ステップＳ９０３の処理に移行する。カウンタｉがｎより大きい場合（ステップＳ９０３：Ｎｏ）、データ管理装置１０４は、処理を終了する。
【００７２】
図１０は、実施の形態１−１にかかるハッシュ開始判断処理のフローチャートである。ハッシュ開始判断処理は、呼び元の録画開始処理から現在のハッシュ処理数ｘを引数として取得している。データ管理装置１０４は、カウンタｉを１に初期化し（ステップＳ１００１）、変数ｔを０に設定する（ステップＳ１００２）。次に、データ管理装置１０４は、カウンタｉが現在のハッシュ処理数ｘ以下であるかを確認する（ステップＳ１００３）。カウンタｉが現在のハッシュ処理数ｘ以下の場合（ステップＳ１００３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部３０６内のｉ番目の開始時刻を取得する（ステップＳ１００４）。
【００７３】
取得後、データ管理装置１０４は、変数ｔが取得した開始時刻より小さいかを確認する（ステップＳ１００５）。変数ｔが取得した開始時刻より小さい場合（ステップＳ１００５：Ｙｅｓ）、データ管理装置１０４は、変数ｔに取得した開始時刻を設定する（ステップＳ１００６）。ステップＳ１００６の処理後、もしくは、変数ｔが取得した開始時刻以上の場合（ステップＳ１００５：Ｎｏ）、データ管理装置１０４は、カウンタｉをインクリメントし（ステップＳ１００７）、ステップＳ１００３の処理に移行する。ステップＳ１００３からステップＳ１００７の処理にて、ハッシュ格納部３０６内の１番目からｘ番目のうち、最新の開始時刻を持つものを取得している。
【００７４】
カウンタｉが現在のハッシュ処理数ｘより大きい場合（ステップＳ１００３：Ｎｏ）、データ管理装置１０４は、現在時刻と変数ｔの差が一定時間以上かを確認する（ステップＳ１００８）。ここでの一定時間とは、たとえば、前述した（ｍ／１秒間のフレーム数）／ｎの値となり、ｍ＝３０［フレーム］、１秒間のフレーム数＝１５［フレーム］、ｎ＝２［個］であれば、一定時間は１秒となる。
【００７５】
現在時刻と変数ｔの差が一定時間以上の場合（ステップＳ１００８：Ｙｅｓ）、データ管理装置１０４は、ハッシュ開始の判断結果を“開始する”に設定する（ステップＳ１００９）。現在時刻と変数ｔの差が一定時間より小さい場合（ステップＳ１００８：Ｎｏ）、データ管理装置１０４は、ハッシュ開始の判断結果を“開始しない”に設定する（ステップＳ１０１０）。データ管理装置１０４は、ステップＳ１００９もしくはステップＳ１０１０によって設定された判断結果を出力して終了する。
【００７６】
図１１は、実施の形態１−１にかかるハッシュ格納部内ｘ番目のハッシュ開始処理のフローチャートである。ハッシュ開始処理は、呼び元の録画開始処理、録画途中処理から開始対象となるハッシュ格納部３０６のｘ番目の数値を引数として取得している。データ管理装置１０４は、ＩＶを取得し、ハッシュ格納部３０６内ｘ番目のハッシュ処理途中結果に取得したＩＶを設定する（ステップＳ１１０１）。同様に、データ管理装置１０４は、現在時刻を取得し、ハッシュ格納部３０６内ｘ番目の開始時刻に取得した現在時刻を設定する（ステップＳ１１０２）。
【００７７】
図１２は、実施の形態１−１にかかるハッシュ格納部状態更新処理のフローチャートである。ハッシュ格納部状態更新処理は、呼び元の録画開始処理、録画途中処理から現在のハッシュ処理数ｘと、処理対象となるフレームの画像データを引数として取得している。データ管理装置１０４は、カウンタｉを１に設定する（ステップＳ１２０１）。次に、データ管理装置１０４は、カウンタｉがｘ以下であるかを確認する（ステップＳ１２０２）。
【００７８】
カウンタｉがｘ以下である場合（ステップＳ１２０２：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部３０６内ｉ番目のハッシュ処理途中結果を取得する（ステップＳ１２０３）。次に、データ管理装置１０４は、処理対象のフレームの画像データと取得したハッシュ処理途中結果から、圧縮関数複数回処理を実行する（ステップＳ１２０４）。実行後、データ管理装置１０４は、ハッシュ格納部内ｉ番目のハッシュ処理途中結果に実行結果を設定する（ステップＳ１２０５）。設定後、データ管理装置１０４は、カウンタｉをインクリメントし（ステップＳ１２０６）、ステップＳ１２０２の処理に移行する。カウンタｉがｘより大きい場合（ステップＳ１２０２：Ｎｏ）、データ管理装置１０４は、処理を終了する。
【００７９】
図１３は、実施の形態１−１にかかる録画途中処理のフローチャートである。データ管理装置１０４は、未処理のフレームの画像データに対し、ハッシュ格納部３０６内ｎ番目までのハッシュ格納部状態更新処理を行う（ステップＳ１３０１）。ハッシュ格納部状態更新処理の詳細は図１２にて前述した。続けて、データ管理装置１０４は、カウンタｉを１に設定する（ステップＳ１３０２）。データ管理装置１０４は、カウンタｉがハッシュ同時処理数ｎ以下であるかを確認する（ステップＳ１３０３）。カウンタｉがハッシュ同時処理数ｎ以下である場合（ステップＳ１３０３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部内ｉ番目の開始時刻を取得する（ステップＳ１３０４）。
【００８０】
取得後、データ管理装置１０４は、現在時刻と取得した開始時刻の差が一定時間以上かを確認する（ステップＳ１３０５）。ここでの一定時間は、たとえば、（ｍ／１秒間のフレーム数）で求められ、ｍ＝３０［フレーム］、１秒間のフレーム数＝１５［フレーム］の場合、２秒となる。一定時間以上である場合（ステップＳ１３０５：Ｙｅｓ）、ｉ番目のハッシュ格納部のハッシュ処理途中結果は、既に削除されたフレームに基づいて生成されていることになるため、今までのハッシュ処理途中結果を削除し、新たに未処理のフレーム画像についてハッシュ値を生成する。
【００８１】
ステップＳ１３０５：Ｙｅｓの場合、データ管理装置１０４は、ハッシュ格納部内ｉ番目のハッシュ開始処理を行う（ステップＳ１３０７）。続けて、データ管理装置１０４は、未処理のフレームの画像データとハッシュ格納部内ｉ番目のハッシュ処理途中結果から、圧縮関数複数回処理を実行する（ステップＳ１３０８）。実行後、データ管理装置１０４は、ハッシュ格納部内ｉ番目のハッシュ処理途中結果に実行結果を設定する（ステップＳ１３０９）。設定後、データ管理装置１０４は、処理を終了する。
【００８２】
現在時刻と取得した開始時刻の差が一定時間より小さい場合（ステップＳ１３０５：Ｎｏ）、データ管理装置１０４は、カウンタｉをインクリメントし（ステップＳ１３０６）、ステップＳ１３０３の処理に移行する。カウンタｉがｎより大きい場合（ステップＳ１３０３：Ｎｏ）、データ管理装置１０４は、既に削除されたフレームに基づいて生成されたハッシュ処理途中結果は存在しないとして、処理を終了する。
【００８３】
図１４は、実施の形態１−１にかかる事故発生時処理のフローチャートである。データ管理装置１０４は、カウンタｉを１に設定し（ステップＳ１４０１）、変数ｔに時刻の最大値を設定する（ステップＳ１４０２）。時刻の最大値は、変数ｔの型で設定できる最大値を設定する。
【００８４】
データ管理装置１０４は、カウンタｉがハッシュ同時処理数ｎ以下であるかを確認する（ステップＳ１４０３）。カウンタｉがハッシュ同時処理数ｎ以下の場合（ステップＳ１４０３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部内ｉ番目の開始時刻を取得する（ステップＳ１４０４）。取得後、データ管理装置１０４は、変数ｔが取得した開始時刻より大きいかを確認する（ステップＳ１４０５）。変数ｔが取得した開始時刻より大きい場合（ステップＳ１４０５：Ｙｅｓ）、データ管理装置１０４は、変数ｔを取得した開始時刻に設定する（ステップＳ１４０６）。
【００８５】
また、データ管理装置１０４は、ハッシュ格納部内ｉ番目のハッシュ処理途中結果を出力用として記憶する（ステップＳ１４０７）。ステップＳ１４０７の処理後、または、変数ｔが取得した開始時刻以下の場合（ステップＳ１４０５：Ｎｏ）、データ管理装置１０４は、カウンタｉをインクリメントし（ステップＳ１４０８）、ステップＳ１４０３の処理に移行する。カウンタｉがハッシュ同時処理数ｎより大きい場合（ステップＳ１４０３：Ｎｏ）、データ管理装置１０４は、出力用として記憶したハッシュ処理途中結果を元にハッシュ値を生成（パディング、および圧縮関数処理の実行）して出力し（ステップＳ１４０９）、処理を終了する。
【００８６】
（実施の形態１−２の概要説明）
図１５〜図２１を用いて、実施の形態１−２にかかる説明を行う。実施の形態１−２のハードウェアの構成は実施の形態１−１に示したものと等しく、機能的構成はほぼ等しい。機能的構成の違いとして、実施の形態１−１では、ハッシュ格納部３０６のハッシュ値群として、ハッシュ処理途中結果とその生成時刻となる開始時刻が格納されていた。これに対し実施の形態１−２では、ハッシュ処理途中結果とハッシュ処理途中結果を何回計算したかを示すカウンタが格納されている。
【００８７】
図１５は、実施の形態１−２にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。ハッシュ格納部３０６には、ＩＶとハッシュ値群が格納されている。ハッシュ値群は、ハッシュ処理途中結果（１）とハッシュ値を何回計算したかを示す値となるカウンタ（１）、ハッシュ処理途中結果（２）とそのカウンタ（２）、のように、ハッシュ同時処理数であるｎ個生成されている。
【００８８】
次に、ハッシュ値の生成について、たとえば、データ管理装置１０４は、時刻ｔ１に、フレームｔ１の画像データとＩＶに対して圧縮関数複数回処理ｈを実行し、結果の値をハッシュ処理途中結果（１）に格納し、カウンタ（１）に１を格納する。続けて、データ管理装置１０４は、時刻ｔ２に、フレームｔ２の画像データとハッシュ処理途中結果（１）に格納した値に対して圧縮関数複数回処理ｈを実行し、結果の値を再びハッシュ処理途中結果（１）に格納し、カウンタ（１）に２を格納する。
【００８９】
前述した操作を保証するフレーム数であるｍ個のフレーム分繰り返し、データ管理装置１０４は、時刻ｔｍに、フレームｔｍの画像データとハッシュ処理途中結果（１）に格納した値に対して圧縮関数複数回処理ｈを実行し、結果の値を再びハッシュ処理途中結果（１）に格納する。また、データ管理装置１０４は、カウンタ（１）にｍを設定する。時刻ｔｍに事故があった場合、車両制御装置１０３は、ハッシュ処理途中結果（１）に格納された値を署名生成部３０４へ出力する。ハッシュ処理途中結果（２）は、カウンタ（１）の値から判断してハッシュの生成を開始する。それ以降のハッシュ処理途中結果（ｎ）についても、ハッシュ処理を行っているカウンタ群の値から判断してハッシュ処理途中結果を生成する。
【００９０】
また、時刻ｔｍに事故が起こらずに、続けて次のフレームが入力され、記憶部３０２にはｍ個までのフレームの画像データを格納する場合、データ管理装置１０４は、フレームｔ１を削除する。続けて、データ管理装置１０４は、フレームｔ１に対応するハッシュ処理途中結果（１）とカウンタ（１）に格納されていた値を、カウンタ（１）の値から判断して削除し、新しく入力されたフレームから始まるハッシュ値の格納用として使用する。
【００９１】
具体的な実施例について、実施の形態１−２では、実施の形態１−１と同じ結果を得るため省略する。ハッシュ処理途中結果を削除するカウンタ値は、ｍと等しくなり、実施の形態１−１の実施例で記述した値をそのまま使用すると、３０［フレーム］となる。また、ハッシュ処理途中結果の生成をずらすカウンタの値は、ｍ／ｎ＝１５［フレーム］となる。
【００９２】
（実施の形態１−２の処理説明）
前述した構成を使用して、実施の形態１−２にかかるデータ管理装置１０４は、ハッシュ管理処理を行う。実施の形態１−２にかかるハッシュ管理処理は、実施の形態１−１にかかるハッシュ管理処理と同様に、録画開始処理と、録画途中処理と、事故発生時処理と、を内部に含む。録画開始処理に関しても実施の形態１−１と同様に、録画開始処理１と録画開始処理２が存在する。録画開始処理１と録画開始処理２も、実施の形態１−１と同様に、ハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。録画途中処理も、実施の形態１−１と同様に、前述したハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。
【００９３】
また、実施の形態１−２にかかるハッシュ管理処理と、録画開始処理１と、録画開始処理２は、実施の形態１−１にかかるハッシュ管理処理、録画開始処理１、録画開始処理２で示したフローと等しくなるため、説明を省略する。実施の形態１−２にかかるハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理と、ハッシュ格納部状態更新処理と、録画途中処理と、事故発生時処理を図１６〜図２０にて後述する。
【００９４】
図１６は、実施の形態１−２にかかるハッシュ格納部初期化処理のフローチャートである。実施の形態１−２にかかるハッシュ格納部初期化処理は、図９にて前述した実施の形態１−１にかかるハッシュ格納部初期化処理とほぼ等しい処理である。具体的には、ステップＳ１６０１、ステップＳ１６０２、ステップＳ１６０４の処理は、ステップＳ９０２、ステップＳ９０３、ステップＳ９０５の処理と等しい。ステップＳ１６０２：Ｙｅｓの処理後、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタを０に設定する（ステップＳ１６０３）。
【００９５】
図１７は、実施の形態１−２にかかるハッシュ開始判断処理のフローチャートである。ハッシュ開始判断処理は、呼び元の録画開始処理から現在のハッシュ処理数ｘを引数として取得している。データ管理装置１０４は、カウンタｉを１に設定し（ステップＳ１７０１）、変数ｔをカウンタの最大値に設定する（ステップＳ１７０２）。カウンタの最大値は、変数ｔの型で設定できる最大値を設定する。次に、データ管理装置１０４は、カウンタｉが現在のハッシュ処理数ｘ以下であるかを確認する（ステップＳ１７０３）。カウンタｉが現在のハッシュ処理数ｘ以下の場合（ステップＳ１７０３：Ｙｅｓ）、データ管理装置１０４は、ハッシュ格納部３０６内のｉ番目のカウンタを取得する（ステップＳ１７０４）。
【００９６】
取得後、データ管理装置１０４は、取得したカウンタが０以外かを確認する（ステップＳ１７０５）。０以外の場合（ステップＳ１７０５：Ｙｅｓ）、データ管理装置１０４は、変数ｔが取得したカウンタより大きいかを確認する（ステップＳ１７０６）。変数ｔが取得したカウンタより大きい場合（ステップＳ１７０６：Ｙｅｓ）、データ管理装置１０４は、変数ｔに取得したカウンタを設定する（ステップＳ１７０７）。
【００９７】
ステップＳ１７０７の処理後、もしくは、取得したカウンタが０（ステップＳ１７０５：Ｎｏ）、もしくは、変数ｔが取得したカウンタ以下の場合（ステップＳ１７０６：Ｎｏ）、データ管理装置１０４は、カウンタｉをインクリメントする（ステップＳ１７０８）。そして、データ管理装置１０４は、ステップＳ１７０３の処理に移行する。ステップＳ１７０３からステップＳ１７０８の処理にて、ハッシュ格納部３０６内の１番目からｘ番目のうち、０以外の最小のカウンタを持つものを取得している。
【００９８】
カウンタｉが現在のハッシュ処理数ｘより大きい場合（ステップＳ１７０３：Ｎｏ）、データ管理装置１０４は、変数ｔが一定値以上かを確認する（ステップＳ１７０９）。ここでの一定値とは、ｍ／ｎで求められ、ｍ＝３０［フレーム］、ｎ＝２［個］であれば、ｍ／ｎ＝１５［フレーム］となる。
【００９９】
変数ｔが一定値以上の場合（ステップＳ１７０９：Ｙｅｓ）、データ管理装置１０４は、ハッシュ開始の判断結果を“開始する”に設定する（ステップＳ１７１０）。変数ｔが一定値より小さい場合（ステップＳ１７０９：Ｎｏ）、データ管理装置１０４は、ハッシュ開始の判断結果を“開始しない”に設定する（ステップＳ１７１１）。データ管理装置１０４は、ステップＳ１７１０もしくはステップＳ１７１１によって設定された判断結果を出力して終了する。
【０１００】
図１８は、実施の形態１−２にかかるハッシュ格納部内ｘ番目のハッシュ開始処理のフローチャートである。ハッシュ開始処理は、呼び元の録画開始処理、録画途中処理から開始対象となるハッシュ格納部のｘ番目の数値を引数として取得している。データ管理装置１０４は、ＩＶを取得し、ハッシュ格納部内ｘ番目のハッシュ処理途中結果に取得したＩＶを設定する（ステップＳ１８０１）。同様に、データ管理装置１０４は、現在時刻を取得し、ハッシュ格納部内ｘ番目のカウンタに０を設定する（ステップＳ１８０２）。
【０１０１】
図１９は、実施の形態１−２にかかるハッシュ格納部状態更新処理のフローチャートである。実施の形態１−２にかかるハッシュ格納部状態更新処理は、図１２にて前述した実施の形態１−１にかかるハッシュ格納部状態更新処理とほぼ等しい処理である。具体的には、ステップＳ１９０１〜ステップＳ１９０５、ステップＳ１９０７の処理は、ステップＳ１２０１〜ステップＳ１２０５、ステップＳ１２０６の処理と等しい。ステップＳ１９０５の処理後、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタをインクリメントする（ステップＳ１９０６）。
【０１０２】
図２０は、実施の形態１−２にかかる録画途中処理のフローチャートである。実施の形態１−２にかかる録画途中処理は、図１３にて前述した実施の形態１−１にかかる録画途中処理とほぼ等しい処理である。具体的には、ステップＳ２００１〜ステップＳ２００３、ステップＳ２００６〜ステップＳ２００９の処理は、ステップＳ１３０１〜ステップＳ１３０３、ステップＳ１３０６〜ステップＳ１３０９の処理と等しい。
【０１０３】
また、ステップＳ２００１でのハッシュ格納部状態更新処理は、図１９にて前述した実施の形態１−２にかかるハッシュ格納部状態更新処理が実行される。同様に、ステップＳ２００７でのハッシュ開始処理は、図１８にて前述した実施の形態１−２にかかるハッシュ開始処理が実行される。
【０１０４】
ステップＳ２００３：Ｙｅｓであった場合、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタを取得する（ステップＳ２００４）。取得後、データ管理装置１０４は、取得したカウンタが一定値以上かを確認する（ステップＳ２００５）。ここでの一定値は、ｍと等しくなり、ｍ＝３０［フレーム］であれば、一定値は３０となる。取得したカウンタが一定値以上である場合（ステップＳ２００５：Ｙｅｓ）、データ管理装置１０４は、ステップＳ２００７の処理を行う。取得したカウンタが一定値より小さい場合（ステップＳ２００５：Ｎｏ）、データ管理装置１０４は、ステップＳ２００６の処理を行う。
【０１０５】
図２１は、実施の形態１−２にかかる事故発生時処理のフローチャートである。実施の形態１−２にかかる事故発生時処理は、図１４にて前述した実施の形態１−１にかかる事故発生時処理とほぼ等しい処理である。具体的には、ステップＳ２１０１、ステップＳ２１０３、ステップＳ２１０７〜ステップＳ２１０９の処理は、ステップＳ１４０１、ステップＳ１４０３、ステップＳ１４０７〜ステップＳ１４０９の処理と等しい。ステップＳ２１０１の処理後、データ管理装置１０４は、変数ｔを０に設定する（ステップＳ２１０２）。
【０１０６】
ステップＳ２１０３：Ｙｅｓである場合、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタを取得する（ステップＳ２１０４）。取得後、データ管理装置１０４は、変数ｔが取得したカウンタより小さいかを確認する（ステップＳ２１０５）。変数ｔが取得したカウンタより小さい場合（ステップＳ２１０５：Ｙｅｓ）、データ管理装置１０４は、変数ｔを取得したカウンタに設定する（ステップＳ２１０６）。変数ｔが取得したカウンタ以上の場合（ステップＳ２１０５：Ｎｏ）、データ管理装置１０４は、ステップＳ２１０８の処理に移行する。
【０１０７】
以上説明したように、実施の形態１−１にかかるデータ管理装置と実施の形態１−２にかかるデータ管理装置は、最新のデータが入力され、古いデータが消える都度、時系列なデータ群に関するハッシュ処理途中結果を生成する。これにより、いつ故障しても故障時のハッシュ処理途中結果が保持されているため、時系列のデータの連続性を保証することができる。
【０１０８】
また、時系列なデータ群のうち、最古のデータを除いた残余の時系列なデータ群に関するハッシュ処理途中結果を生成してもよい。これにより、新しいデータが入力された場合、残余の時系列なデータ群に新しいデータを加えた時系列のデータ群に関するハッシュ処理途中結果を生成する際に、残余の時系列なデータ群に関するハッシュ処理途中結果を使用することで容易に生成することができる。
【０１０９】
また、最新のデータが入力される都度、格納された残余の時系列なデータ群に関するハッシュ処理途中結果と最新のデータとに基づいて、残余の時系列なデータ群に最新のデータを加えた時系列なデータ群に関するハッシュ処理途中結果を生成してもよい。これにより、事故時に、記憶装置に残されている時系列なデータ群に対応した、ハッシュ処理途中結果を生成しておくことができ、時系列のデータの連続性を保証することができる。また、フレームレートの高い動画で、保証するフレーム数ｍを大きくしたい場合でも、ハッシュ同時処理数ｎを調節することで、比較的計算能力の高くない組み込み環境でもフレームレートの高い動画に対応することができる。
【０１１０】
また、最新のデータを加えた時系列なデータ群に関し、任意のデータを受け付けて任意のデータのサイズを圧縮する圧縮関数を複数回実行することでハッシュ処理途中結果を生成してもよい。これにより、連続性を保証することができる。また、圧縮関数を並列で行うことで、複数のハッシュ処理途中結果生成を高速化することもできる。
【０１１１】
また、実施の形態１−１にかかるデータ管理装置では、タイマー３０７を用いることでフレームレートの高低に影響せず、一定時間の映像データの連続性を保証することができる。また、実施の形態１−２にかかるデータ管理装置では、カウンタを用いることで、タイマー３０７を実装しなくても映像データの連続性を保証できる。また、たとえばカメラ１０１の映像記録設定が変更され、フレームレートが低くなった場合も、フレームレートの低下にあわせて映像データの連続性の保証する時間を長くすることができる。
【０１１２】
（実施の形態２−１の概要説明）
図２２〜図２６を用いて、実施の形態２−１にかかる説明を行う。実施の形態２−１のハードウェアの構成は実施の形態１−１に示したものと等しく、機能的構成はほぼ等しい。機能的構成の違いとして、実施の形態１−１では、フレームのデータとＩＶに対して圧縮関数複数回処理を実行し、ハッシュ値を生成していた。しかし、実施の形態２−１では、フレームのデータとＩＶに対してハッシュ値を生成し、さらに、生成されたハッシュ値とＩＶに対してハッシュ処理途中結果を生成し、生成された値は、ハッシュ格納部３０６に格納される。
【０１１３】
図２２は、実施の形態２−１にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。ハッシュ格納部３０６には、ＩＶとハッシュ処理途中結果群が格納されている。ハッシュ処理途中結果群は、ハッシュ処理途中結果（１）とその生成時刻となる開始時刻（１）、ハッシュ処理途中結果（２）とその生成時刻となる開始時刻（２）、のように、ハッシュ同時処理数であるｎ個生成されている。
【０１１４】
次に、ハッシュ値の生成について、たとえば、データ管理装置１０４は、時刻ｔ１に、フレームｔ１の画像データとＩＶに対してハッシュ関数Ｈを実行しハッシュ値Ｈ１を得る。さらに、データ管理装置１０４は、Ｈ１とＩＶに対して圧縮関数ｃを実行し、結果の値をハッシュ処理途中結果（１）に格納し、タイマー３０７から取得した時刻ｔ１の値を開始時刻（１）に格納する。続けて、データ管理装置１０４は、時刻ｔ２に、フレームｔ２の画像データとＩＶに対してハッシュ関数Ｈを実行しハッシュ値Ｈ２を得る。さらに、データ管理装置１０４は、Ｈ２とハッシュ処理途中結果（１）に格納した値に対して圧縮関数ｃを実行し、結果の値をハッシュ処理途中結果（１）に格納する。
【０１１５】
前述した操作を保証するフレーム数であるｍ個のフレーム分繰り返し、データ管理装置１０４は、時刻ｔｍに、フレームｔｍの画像データとＩＶに対してハッシュ関数Ｈを実行しハッシュ値Ｈｍを得る。さらに、データ管理装置１０４は、Ｈｍとハッシュ処理途中結果（１）に格納した値に対して圧縮関数ｃを実行し、結果の値をハッシュ処理途中結果（１）に格納する。時刻ｔｍに事故があった場合、車両制御装置１０３は、ハッシュ処理途中結果（１）に格納された値から生成したハッシュ値を署名生成部３０４へ出力する。ハッシュ処理途中結果（２）、・・・、ハッシュ処理途中結果（ｎ）についても、それぞれの開始時刻にハッシュ処理途中結果を生成する。
【０１１６】
次に、具体的な実施例を説明する。１秒間のフレームが３０フレーム［ｆｐｓ］であり、１画面の画素数が６４０×４８０ピクセルで、１画素の色表現が８ｂｉｔとする。また、ハードウェアの例としてＣＰＵ２０１の動作サイクル数が２００ＭＨｚ、圧縮関数の処理時間１０００サイクルとする。そして、記憶部３０２に格納するフレーム数ｍを６００［フレーム］、ハッシュ同時処理数ｎを４０［個］とする。前述のｍ、ｎからハッシュ値を削除する時間は、ｍ／１秒間のフレーム数＝２０［秒］となり、ハッシュ値の生成をずらす時間は、（ｍ／１秒間のフレーム数）／ｎ＝０．５［秒］となる。前述の動画の設定、ハードウェアの設定では、１フレームのハッシュ生成時間は、２４［ミリ秒］となる。
【０１１７】
実施の形態２−１の実施例が、実施の形態１−１、実施の形態１−２よりもデータ量が多いにも関わらずよい結果を出している。理由としては、実施の形態１−１、実施の形態１−２では画像に対するハッシュ値をハッシュ同時処理数であるｎ個分生成する。しかし、実施の形態２−１では画像に対するハッシュ値の生成は１回しか行わず、処理量の少ないハッシュ値に対するハッシュ処理途中結果をｎ個分生成するため、短い時間で終了することができる。
【０１１８】
（実施の形態２−１の処理説明）
前述した構成を使用して、実施の形態２−１にかかるデータ管理装置１０４は、ハッシュ管理処理を行う。実施の形態２−１にかかるハッシュ管理処理は、実施の形態１−１にかかるハッシュ管理処理と同様に、録画開始処理と、録画途中処理と、事故発生時処理と、を内部に含む。録画開始処理に関しても実施の形態１−１と同様に、録画開始処理１と録画開始処理２が存在する。録画開始処理１と録画開始処理２も、実施の形態１−１と同様に、ハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。録画途中処理も、実施の形態１−１と同様に、前述したハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。
【０１１９】
また、実施の形態２−１にかかるハッシュ管理処理と、事故発生時処理は、実施の形態１−１にかかるハッシュ管理処理と、事故発生時処理で示したフローと等しくなるため、説明を省略する。実施の形態２−１にかかるハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理も同様なため、説明を省略する。実施の形態２−１にかかる録画開始処理１と、録画開始処理２と、ハッシュ格納部状態更新処理と、録画途中処理を図２３〜図２６にて後述する。
【０１２０】
前述した理由で説明を省略した実施の形態２−１にかかるハッシュ開始判断処理にて判断基準となる一定時間について補足する。図１０で前述した実施の形態１−１にかかるハッシュ開始判断処理でのステップＳ１００８では、データ管理装置１０４は、一定時間で判断を行う。実施の形態２−１での一定時間の具体例としては、たとえば、前述した（ｍ／１秒間のフレーム数）／ｎの値となり、ｍ＝６００［フレーム］、１秒間のフレーム数＝３０［フレーム］、ｎ＝４０［個］であれば、一定時間は０．５秒となる。
【０１２１】
図２３と図２４は、実施の形態２−１にかかる録画開始処理１と、録画開始処理２のフローチャートを示す。機能や効果は、実施の形態１−１にかかる録画開始処理１と、録画開始処理２に等しい。
【０１２２】
図２３は、実施の形態２−１にかかる録画開始処理１のフローチャートである。実施の形態２−１にかかる録画開始処理１は、図７にて前述した実施の形態１−１にかかる録画開始処理１とほぼ等しい処理である。具体的には、ステップＳ２３０１〜ステップＳ２３０４、ステップＳ２３０６〜ステップＳ２３１２の処理は、ステップＳ７０１〜ステップＳ７０４、ステップＳ７０５〜ステップＳ７１１の処理と等しい。ステップＳ２３０３：Ｙｅｓの処理後、データ管理装置１０４は、未処理のフレームの画像データとＩＶでハッシュ関数を実行し、ハッシュ値Ｈとして保持する（ステップＳ２３０５）。保持されたハッシュ値Ｈは、ステップＳ２３１１にて呼ばれるハッシュ格納部状態更新処理にて使用される。
【０１２３】
また、ステップＳ２３０１でのハッシュ格納部初期化処理は、図９にて前述した実施の形態１−１にかかるハッシュ格納部初期化処理と等しい。同様に、ステップＳ２３０７でのハッシュ開始判断処理は、図１０にて前述した実施の形態１−１にかかるハッシュ開始判断処理が実行される。同様に、ステップＳ２３１０でのハッシュ開始処理は、図１１にて前述した実施の形態１−１にかかるハッシュ開始処理が実行される。
【０１２４】
図２４は、実施の形態２−１にかかる録画開始処理２のフローチャートである。実施の形態２−１にかかる録画開始処理２は、図８にて前述した実施の形態１−１にかかる録画開始処理２とほぼ等しい処理である。具体的には、ステップＳ２４０１〜ステップＳ２４０４、ステップＳ２４０６〜ステップＳ２４１３の処理は、ステップＳ８０１〜ステップＳ８０４、ステップＳ８０５〜ステップＳ８１２の処理と等しい。ステップＳ２３０３：Ｙｅｓの処理後、データ管理装置１０４は、未処理のフレームの画像データとＩＶでハッシュ関数を実行し、ハッシュ値Ｈとして保持する（ステップＳ２４０５）。保持されたハッシュ値Ｈは、ステップＳ２４０７にて呼ばれるハッシュ格納部状態更新処理にて使用される。
【０１２５】
図２５は、実施の形態２−１にかかるハッシュ格納部状態更新処理のフローチャートである。実施の形態２−１にかかるハッシュ格納部状態更新処理は、図１２にて前述した実施の形態１−１にかかるハッシュ格納部状態更新処理とほぼ等しい処理である。具体的には、ステップＳ２５０１〜ステップＳ２５０３、ステップＳ２５０５、ステップＳ２５０６の処理は、ステップＳ１２０１〜ステップＳ１２０３、ステップＳ１２０５、ステップＳ１２０６の処理と等しい。ステップＳ２５０３の処理後、データ管理装置１０４は、処理対象のフレームのハッシュ値Ｈと取得したハッシュ処理途中結果から、圧縮関数１回の処理を実行する（ステップＳ２５０４）。
【０１２６】
図２６は、実施の形態２−１にかかる録画途中処理のフローチャートである。実施の形態２−１にかかる録画途中処理は、図１３にて前述した実施の形態１−１にかかる録画途中処理とほぼ等しい処理である。具体的には、ステップＳ２６０２〜ステップＳ２６０８、ステップＳ２６１０の処理は、ステップＳ１３０１〜ステップＳ１３０７、ステップＳ１３０９の処理と等しい。
【０１２７】
初めに、データ管理装置１０４は、未処理のフレームの画像データとＩＶでハッシュ関数を実行し、ハッシュ値Ｈとして保持する（ステップＳ２６０１）。また、ステップＳ２６０８の処理後、データ管理装置１０４は、ハッシュ値Ｈとハッシュ格納部内ｉ番目のハッシュ処理途中結果から、圧縮関数１回の処理を実行する（ステップＳ２６０９）。また、ステップＳ２６０６の一定時間は、たとえば、（ｍ／１秒間のフレーム数）で求められ、ｍ＝６００［フレーム］、１秒間のフレーム数＝３０［フレーム］の場合、２０秒となる。
【０１２８】
（実施の形態２−２の概要説明）
図２７〜図２９を用いて、実施の形態２−２にかかる説明を行う。実施の形態２−２のハードウェアの構成は実施の形態２−１に示したものと等しく、機能的構成はほぼ等しい。機能的構成の違いとして、実施の形態２−１では、ハッシュ格納部３０６のハッシュ値群として、ハッシュ処理途中結果とその生成時刻となる開始時刻が格納されていた。これに対し実施の形態２−２では、ハッシュ処理途中結果とハッシュ処理途中結果を何回計算したかを示すカウンタが格納されている。
【０１２９】
図２７は、実施の形態２−２にかかるハッシュ格納部３０６のハッシュ生成の様子を示す説明図である。ハッシュ格納部３０６には、ＩＶとハッシュ値群が格納されている。ハッシュ値群は、ハッシュ処理途中結果（１）とハッシュ処理途中結果を何回計算したかを示す値となるカウンタ（１）、ハッシュ処理途中結果（２）とそのカウンタ（２）、のように、ハッシュ同時処理数であるｎ個生成されている。
【０１３０】
次に、ハッシュ値の生成について、たとえば、データ管理装置１０４は、時刻ｔ１に、フレームｔ１の画像データとＩＶに対してハッシュ関数Ｈを実行しハッシュ値Ｈ１を得る。さらに、データ管理装置１０４は、Ｈ１とＩＶに対して圧縮関数ｃを実行し、結果の値をハッシュ処理途中結果（１）に格納し、カウンタ（１）に１を格納する。続けて、データ管理装置１０４は、時刻ｔ２に、フレームｔ２の画像データのハッシュ値Ｈ２とハッシュ処理途中結果（１）に格納した値に対して圧縮関数ｃを実行し、結果の値を再びハッシュ処理途中結果（１）に格納し、カウンタ（１）に２を格納する。
【０１３１】
前述した操作を保証するフレーム数であるｍ個のフレーム分繰り返し、最後にデータ管理装置１０４は、フレームｔ２の画像データのハッシュ値Ｈ２とハッシュ処理途中結果（１）に格納した値に対して圧縮関数ｃを実行し、結果の値を再びハッシュ処理途中結果（１）に格納し、カウンタ（１）にｍを格納する。時刻ｔｍに事故があった場合、車両制御装置１０３は、ハッシュ処理途中結果（１）に格納された値を署名生成部３０４へ出力する。ハッシュ処理途中結果（２）は、カウンタ（１）の値から判断してハッシュの生成を開始する。それ以降のハッシュ処理途中結果（ｎ）についても、それぞれの一つ前のカウンタの値から判断してハッシュ処理途中結果を生成する。
【０１３２】
また、時刻ｔｍに事故が起こらずに、続けて次のフレームが入力され、記憶部３０２にはｍ個までのフレームの画像データを格納する場合、データ管理装置１０４は、フレームｔ１を削除する。続けて、データ管理装置１０４は、フレームｔ１に対応するハッシュ処理途中結果（１）とカウンタ（１）に格納されていた値を、カウンタ（１）の値から判断して削除し、新しく入力されたフレームから始まるハッシュ値の格納用として使用する。
【０１３３】
次に、具体的な実施例について、実施の形態２−２は、実施の形態２−１と同じ結果を得る。ハッシュ値を削除するカウンタ値は、ｍと等しくなり、実施の形態２−１の実施例で記述した値をそのまま使用すると、６００［フレーム］となる。また、ハッシュ値の生成をずらすカウンタの値は、ｍ／ｎ＝１５［フレーム］となる。
【０１３４】
（実施の形態２−２の処理説明）
前述した構成を使用して、実施の形態２−２にかかるデータ管理装置１０４は、ハッシュ管理処理を行う。実施の形態２−２にかかるハッシュ管理処理は、実施の形態２−１にかかるハッシュ管理処理と同様に、録画開始処理と、録画途中処理と、事故発生時処理と、を内部に含む。録画開始処理に関しても実施の形態２−１と同様に、録画開始処理１と録画開始処理２が存在する。録画開始処理１と録画開始処理２も、実施の形態２−１と同様に、ハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。録画途中処理も、実施の形態２−１と同様に、前述したハッシュ開始処理と、ハッシュ格納部状態更新処理と、を内部に含む。
【０１３５】
また、実施の形態２−２にかかるハッシュ管理処理は、実施の形態１−１にかかるハッシュ管理処理で示したフローと等しくなるため、説明を省略する。同様に、実施の形態２−２にかかる録画開始処理１と、録画開始処理２は、実施の形態２−１にかかる録画開始処理１と、録画開始処理２で示したフローと等しくなるため、説明を省略する。
【０１３６】
同様に、実施の形態２−２にかかる事故発生時処理は、実施の形態１−２にかかる事故発生時処理で示したフローと等しくなるため、説明を省略する。実施の形態２−２にかかるハッシュ格納部初期化処理と、ハッシュ開始判断処理と、ハッシュ開始処理も同様のため、説明を省略する。実施の形態２−２にかかるハッシュ格納部状態更新処理、録画途中処理を図２８、図２９にて後述する。
【０１３７】
前述した理由で説明を省略した実施の形態２−２にかかるハッシュ開始判断処理にて判断基準となる一定値について補足する。図１７で前述した実施の形態１−２にかかるハッシュ開始判断処理でのステップＳ１７０９では、データ管理装置１０４は、一定値で判断を行う。実施の形態２−２での一定値の具体例としては、ｍ／ｎで求められ、ｍ＝６００［フレーム］、ｎ＝４０［個］であれば、ｍ／ｎ＝１５［フレーム］となる。
【０１３８】
図２８は、実施の形態２−２にかかるハッシュ格納部状態更新処理のフローチャートである。実施の形態２−２にかかるハッシュ格納部状態更新処理は、図２５にて前述した実施の形態２−１にかかるハッシュ格納部状態更新処理とほぼ等しい処理である。具体的には、ステップＳ２８０１〜ステップＳ２８０５、ステップＳ２８０７の処理は、ステップＳ２５０１〜ステップＳ２５０５、ステップＳ２５０６の処理と等しい。ステップＳ２８０５の処理後、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタをインクリメントする（ステップＳ２８０６）。
【０１３９】
図２９は、実施の形態２−２にかかる録画途中処理のフローチャートである。実施の形態２−２にかかる録画途中処理は、図２６にて前述した実施の形態２−１にかかる録画途中処理とほぼ等しい処理である。具体的には、ステップＳ２９０１〜ステップＳ２９０４、ステップＳ２９０７〜ステップＳ２９１０の処理は、ステップＳ２６０１〜ステップＳ２６０４、ステップＳ２６０７〜ステップＳ２６１０の処理と等しい。
【０１４０】
ステップＳ２９０４：Ｙｅｓであった場合、データ管理装置１０４は、ハッシュ格納部内ｉ番目のカウンタを取得する（ステップＳ２９０５）。取得後、データ管理装置１０４は、取得したカウンタが一定値以上かを確認する（ステップＳ２９０６）。ここでの一定値は、ｍと等しくなり、ｍ＝６００であれば、一定値は６００［フレーム］となる。取得したカウンタが一定値以上の場合（ステップＳ２９０６：Ｙｅｓ）、データ管理装置１０４は、ステップＳ２９０８の処理を行う。取得したカウンタが一定値より小さい場合（ステップＳ２９０６：Ｎｏ）、データ管理装置１０４は、ステップＳ２９０７の処理を行う。
【０１４１】
以上説明したように、実施の形態２−１にかかるデータ管理装置と実施の形態２−２にかかるデータ管理装置は、最新のデータが入力され、古いデータが消える都度、時系列なデータ群に関するハッシュ値を生成する。これにより、いつ故障しても故障時のハッシュ値が保持されているため、時系列のデータの連続性を保証することができる。
【０１４２】
また、最新のデータのサイズを圧縮する圧縮関数を複数回実行することで、最新のデータに関するハッシュ値を生成する。そして、残余の時系列なデータ群に関するハッシュ値と最新のデータに関するハッシュ値とに基づいて、圧縮関数を少なくとも１回実行することで、最新のデータを加えた時系列なデータ群に関するハッシュ値を生成してもよい。
【０１４３】
これにより、時系列のデータの連続性を保証することができる。さらに、画像のハッシュ値を１回しか生成せず、ハッシュ値のハッシュ値をハッシュ同時処理数であるｎ回分生成しているため、実施の１−１、１−２にかかるデータ管理装置１０４より高速に処理を行うことができる。よってハッシュ同時処理数ｎを大きくし、ハッシュ生成をずらす間隔を狭めることができるため、保証できるフレーム数を記憶装置に現存しているフレーム数により近づけることができる。
【０１４４】
また、本データ管理装置が保証するデータは、映像フレームの画像データ以外に、音声データや、センサー１０５で取得した車両の速度、加速度、各速度を示すテキストデータをあわせて保証してもよい。また、事故時に運転手がシートベルトをしていたか、車両のギアが何になっていたか、などの状態をあわせて保証してもよい。これにより、事故時の状況をより正確に保証することができる。
【０１４５】
また、本データ管理装置は、ドライブレコーダに適用できるが、故障を伴う監視カメラに適用してもよい。たとえば、本データ管理装置を含む監視カメラは、地震による故障時に、その時起こった映像の保証をすることができる。また、人が立ち入ることができず、人災や天災などで監視カメラが故障する可能性がある区域、たとえば、原子炉の中に対する監視カメラなどに適用してもよい。
【０１４６】
なお、本実施の形態で説明したデータ管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ管理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ管理プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１４７】
１０４  データ管理装置
３０１  ハッシュ管理部
３０２  記憶部
３０３  イベント受信部
３０４  署名生成部
３０５  ハッシュ生成部
３０６  ハッシュ格納部
３０７  タイマー
３０８  圧縮関数実行部
３０９  事故発生検出部
３１０  出力部
【図１】
0005434672.tif 000002
【図２】
0005434672.tif 000003
【図３】
0005434672.tif 000004
【図４】
0005434672.tif 000005
【図５】
0005434672.tif 000006
【図６】
0005434672.tif 000007
【図７】
0005434672.tif 000008
【図８】
0005434672.tif 000009
【図９】
0005434672.tif 000010
【図１０】
0005434672.tif 000011
【図１１】
0005434672.tif 000012
【図１２】
0005434672.tif 000013
【図１３】
0005434672.tif 000014
【図１４】
0005434672.tif 000015
【図１５】
0005434672.tif 000016
【図１６】
0005434672.tif 000017
【図１７】
0005434672.tif 000018
【図１８】
0005434672.tif 000019
【図１９】
0005434672.tif 000020
【図２０】
0005434672.tif 000021
【図２１】
0005434672.tif 000022
【図２２】
0005434672.tif 000023
【図２３】
0005434672.tif 000024
【図２４】
0005434672.tif 000025
【図２５】
0005434672.tif 000026
【図２６】
0005434672.tif 000027
【図２７】
0005434672.tif 000028
【図２８】
0005434672.tif 000029
【図２９】
0005434672.tif 000030