(57)【要約】【課題】  データの真正性を保証可能なデータ記録システムにおいて実用性を向上させる。【解決手段】  時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出手段と、前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成手段と、前記所定の区間を示す区間情報を生成する区間情報生成手段と、前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力手段とを有する。【選択図】図６
2019047331.tif 000002
【特許請求の範囲】
【請求項１】
時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成手段と、
前記所定の区間を示す区間情報を生成する区間情報生成手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力手段と
を有することを特徴とするデータ生成装置。
【請求項２】
前記区間情報生成手段により生成される前記区間情報は、隣接する区間の連続性を示す情報であることを特徴とする請求項１に記載のデータ生成装置。
【請求項３】
データ生成装置が実行するデータ生成方法であって、
時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出工程と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成工程と、
前記所定の区間を示す区間情報を生成する区間情報生成工程と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力工程と
を有することを特徴とするデータ生成方法。
【請求項４】
時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出工程と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成工程と、
前記所定の区間を示す区間情報を生成する区間情報生成工程と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力工程と
をコンピュータに実行させるためのプログラム。
【請求項５】
データ生成装置と、該データ生成装置に接続されるデータ記憶装置とを有するデータ記録システムであって、
前記データ生成装置は、
時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成手段と、
前記所定の区間を示す区間情報を生成する区間情報生成手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力手段と
を有することを特徴とするデータ記録システム。
【請求項６】
前記データ記憶装置は、
前記出力データを受信する受信手段と、
前記受信手段により受信された前記出力データに含まれる前記組の数がｋ個未満の場合、前記出力データにおいて欠損が発生したと判定する第１の判定手段と
を有することを特徴とする請求項５に記載のデータ記録システム。
【請求項７】
前記データ記憶装置は、
前記受信手段により受信された前記出力データに含まれる前記組の数がｋ個以上であった場合に、ｋ個の前記組に基づいて秘密情報を演算する第１の演算手段と、
前記受信手段により受信された前記出力データに含まれる前記署名値に基づいて秘密情報を演算する第２の演算手段と、
前記第１の演算手段により演算された前記秘密情報と、前記第２の演算手段により演算された前記秘密情報とを比較することで、前記出力データについて改竄が行われたか否かを判定する第２の判定手段と
を更に有することを特徴とする請求項６に記載のデータ記録システム。
【請求項８】
前記データ記憶装置は、
前記受信手段により受信された前記出力データに含まれる前記区間情報が、他の出力データに含まれる区間情報に対して連続する情報であるか否かを判定する第３の判定手段を更に有することを特徴とする請求項７に記載のデータ記録システム。
【請求項９】
前記データ記憶装置は、
前記受信手段により受信された前記出力データを表示する表示手段を更に有し、
前記表示手段は、前記出力データの表示中に、前記第１の判定手段乃至第３の判定手段により判定された判定結果を、更に表示することを特徴とする請求項８に記載のデータ記録システム。
【請求項１０】
前記データ記憶装置は、
前記第２の判定手段または第３の判定手段により判定された判定結果を表示する表示手段を更に有し、
前記表示手段は、前記第２の判定手段により改竄されていると判定された出力データ、または、前記第３の判定手段により連続する情報でないと判定された区間情報を含む前記出力データを表示することを特徴とする請求項８に記載のデータ記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ生成装置、データ生成方法、プログラム及びデータ記録システムに関する。
【背景技術】
【０００２】
従来より、撮像装置等のデータ生成装置と、該データ生成装置により生成された時系列のデータ（動画像データ等）を記憶するデータ記憶装置（サーバ装置等）と、を組み合わせたデータ記録システムが知られている。
【０００３】
当該データ記録システムでは、例えば、データ生成装置にて時系列のデータに署名を付与し、データ記憶装置にて署名検証を行うことで、データの真正性を保証することができる（下記特許文献１等参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記データ記録システムの場合、署名を付与したデータにおいて、データ欠損が発生すると、データ記憶装置において署名検証を行うことができなくなるといった問題があった。
【０００５】
このため、たとえ欠損していないデータにおいて改竄等が行われていなかったとしても、当該データの真正性を保証することができず、上記データ記録システムは、実用性に欠けるといった問題があった。
【０００６】
本発明は上記課題に鑑みてなされたものであり、データの真正性を保証可能なデータ記録システムにおいて実用性を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の各実施形態に係るデータ生成装置は、例えば、以下のような構成を有する。すなわち、
時系列のデータから、所定の区間に含まれるｎ個（ｎは２以上の整数）のデータを順次取得し、取得したデータに基づいて、ｋ個（ｋは１以上でｎ未満の整数）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報を算出する算出手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報との組がｋ個集まることで演算可能となる、秘密分散プロトコルに基づく秘密情報に署名を付与することで、署名値を生成する署名値生成手段と、
前記所定の区間を示す区間情報であって、隣接する区間との連続性を示す区間情報を生成する区間情報生成手段と、
前記取得したデータと前記取得したデータに基づいて算出された前記パラメータ情報とのｎ個の組それぞれに、前記署名値と、前記区間情報とが対応付けられた出力データを出力する出力手段とを有する。
【発明の効果】
【０００８】
本発明の各実施形態によれば、データの真正性を保証可能なデータ記録システムにおいて実用性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】データ記録システムの全体構成の一例を示す図である。
【図２】秘密分散のプロトコルを説明するための図である。
【図３】秘密分散のプロトコルを説明するための図である。
【図４】出力データの真正性を検証するための処理の概要を示す図である。
【図５】データ生成装置及びデータ記憶装置のハードウェア構成を示す図である。
【図６】データ生成装置の機能構成を示す図である。
【図７】データ生成装置の各部の動作を模式的に示した図である。
【図８】出力データ生成処理の流れを示すフローチャートである。
【図９】データ記憶装置の機能構成を示す図である。
【図１０】第１の実施形態におけるデータ検証処理の流れを示すフローチャートである。
【図１１】データ検証処理の効果を説明するための図である。
【図１２】第１の実施形態におけるデータ記憶装置の表示画面の一例を示す図である。
【図１３】第２の実施形態におけるデータ検証処理の流れを示すフローチャートである
【図１４】第２の実施形態におけるデータ記憶装置の表示画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に際して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
［第１の実施形態］
＜１．データ記録システムの全体構成＞
はじめに、データ記録システムの全体構成について説明する。図１は、データ記録システムの全体構成の一例を示す図である。
【００１２】
図１に示すように、データ記録システム１００は、データ生成装置１１０と、データ記憶装置１２０とを有する。データ生成装置１１０と、データ記憶装置１２０とは、ネットワークを介して通信可能に接続される。
【００１３】
データ生成装置１１０は、時系列のデータを生成する装置であり、例えば、動画像データを生成する撮像装置等により実現される。データ生成装置１１０には、秘密分散データ生成プログラムがインストールされており、当該プログラムを実行することで、データ生成装置１１０は、秘密分散データ生成部１１１として機能する。
【００１４】
秘密分散データ生成部１１１は、生成された時系列のデータに、秘密分散プロトコルに基づくパラメータ情報を対応付けることで秘密分散データを生成する。また、秘密分散データ生成部１１１は、生成した秘密分散データを含む「出力データ」を、データ記憶装置１２０にストリーミング送信する。
【００１５】
データ記憶装置１２０は、データ生成装置１１０より送信される出力データを記憶する装置であり、サーバ装置等により実現される。データ記憶装置１２０には、データ検証プログラムがインストールされており、当該プログラムを実行することで、データ記憶装置１２０は、データ検証部１２１として機能する。
【００１６】
データ検証部１２１は、データ格納部１２２に格納された出力データの真正性を検証する。なお、データ検証部１２１は、データ生成装置１１０よりストリーミング送信される出力データにおいて欠損が発生した場合であっても、出力データの真正性を検証することができる。出力データに含まれる秘密分散データは、秘密分散プロトコルを用いて生成されており、欠損に対する耐性が高いためである。
【００１７】
＜２．秘密分散プロトコルの説明＞
次に、秘密分散データの生成に用いられる秘密分散プロトコルについて、図２及び図３を用いて簡単に説明する。図２及び図３は、秘密分散プロトコルを説明するための図である。
【００１８】
（１）秘密分散プロトコルの概要
一般に、（ｋ−１）次の多項式は、ｋ個の独立な解が存在すれば一意に定めることができ、（ｋ−１）個以下の解では、（ｋ−１）次の多項式を一意に定めることができない。図２（ａ）は、独立な２個の解（（ｘ１，ｙ１）、（ｘ２，ｙ２））に基づいて、１次の多項式（ｙ＝α１ｘ＋α０）を一意に定めた様子を示している。
【００１９】
また、図２（ｂ）は、独立な３個の解（（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３））に基づいて、２次の多項式（ｙ＝α２ｘ２＋α１ｘ＋α０）を一意に定めた様子を示している。
【００２０】
更に、図２（ｃ）は、独立なｋ個の解（（ｘ１，ｙ１）、（ｘ２，ｙ２）、・・・（ｘｋ，ｙｋ））に基づいて、（ｋ−１）次の多項式（ｙ＝αｋ−１ｘｋ−１＋αｋ−２ｘｋ−２＋・・・α１ｘ＋α０）を一意に定めた様子を示している。
【００２１】
秘密分散プロトコルは、多項式とその解との間のこのような関係を利用したものである。図３（ａ）に示すように、秘密分散プロトコルを用いる場合、秘密情報を生成するデータ生成者は、生成した秘密情報を（ｋ−１）次の多項式の０次の項（α０）に埋め込むとともに、（ｋ−１）次の多項式の複数の解を生成して、それぞれの解を分けて保持する。これにより、仮に、複数の解のうちの一部の解が漏えいしたとしても、秘密情報（α０）が復元されることはない。つまり、秘密分散プロトコルは、漏えいに対する耐性が高いという特性を有する。
【００２２】
加えて、図３（ａ）に示すように、秘密分散プロトコルによれば、データ利用者は、データ生成者より複数の解のうちのｋ個の解を取得すれば（仮に（ｎ−ｋ）個の解が欠損したとしても）、秘密情報（α０）を復元することができる。ｋ個の解があれば（ｋ−１）次の多項式を一意に定めることができるからである。つまり、秘密分散プロトコルは、データ欠損に対する耐性が高いという特性も有している。
【００２３】
本実施形態では、このうち、データ欠損に対する耐性が高いという特性に着目して、時系列のデータに秘密分散プロトコルを適用している。
【００２４】
（２）秘密分散プロトコルの時系列のデータへの適用
次に、秘密分散プロトコルの時系列のデータへの適用について、図３（ｂ）を参照しながら具体的に説明する。
【００２５】
本実施形態では、秘密分散プロトコルを時系列のデータに適用することで、欠損検証と署名検証とを実現するとともに、署名検証でのデータ欠損に対する耐性の向上を実現している。
【００２６】
図３（ｂ）は、時系列のデータを処理するデータ生成装置及びデータ記憶装置に秘密分散プロトコルを適用した場合の処理の概要を示している。
【００２７】
秘密分散プロトコルを適用した場合、データ生成装置では、まず、時系列データの所定の区間に含まれるｎ個（ｎは２以上の整数）の単位データを取得する。ここで、「単位データ」とは、時系列データを構成する所定単位のデータを指す。所定単位のデータとは、例えば、データ生成装置が撮像装置であって、当該撮像装置がフレーム単位で動画像データを処理する場合には、それぞれのフレームが所定単位のデータとなる。また、例えば、当該撮像装置がパケット単位で動画像データを処理する場合には、それぞれのパケットが所定単位のデータとなる。なお、以下では、時系列データの所定の区間に含まれるｎ個の単位データのうち、ｉ番目の単位データを"Ｄｉ"と表す。
【００２８】
続いて、データ生成装置では、ｎ個の単位データ（Ｄｉ）に基づいて、（ｋ−１）次の多項式のｎ個の解を生成する。このとき、（ｋ−１）次の多項式のｋ個（ｋは１以上でｎ未満の整数）のパラメータ（αｋ−１、αｋ−２、・・・α０）には、例えば、乱数値を用いる。
【００２９】
なお、（ｋ−１）次の多項式の変数ｘにｎ個の単位データ（Ｄｉ）を代入してｎ個の変数ｙを算出するにあたり、ハッシュ値を用いる場合にあっては、データ生成装置は、Ｈａｓｈ（Ｄｉ）を算出し、算出したＨａｓｈ（Ｄｉ）を変数ｘに代入する。ｎ個のＨａｓｈ（Ｄｉ）を変数ｘに代入することで算出されるｎ個の変数ｙの値のうち、ｉ番目の値を、パラメータ情報"Ｗｉ"と表す。なお、Ｗｉは、下式に基づいて算出される。
【００３０】
【数１】
2019047331.tif 000003
この結果、データ生成装置では、（ｋ−１）次の多項式（ｙ＝αｋ−１ｘｋ−１＋αｋ−２ｘｋ−２＋・・・α１ｘ＋α０）のｎ個の解（Ｄｉ，Ｗｉ）を算出することができる。データ生成装置では、算出したｎ個の解（Ｄｉ，Ｗｉ）を秘密分散データとして、データ記憶装置に送信する。つまり、データ生成装置により送信される秘密分散データは、単位データと、該単位データに対応付けられたパラメータ情報との組である。
【００３１】
ここで、データ生成装置により送信されるｎ個の秘密分散データ（Ｄｉ，Ｗｉ）は、その一部が欠損した場合であっても、ｋ個集まれば、パラメータ（αｋ−１、αｋ−２、・・・α０）を一意に定めることができる。
【００３２】
そこで、データ生成装置では、このうちの１つのパラメータ（α０）を秘密情報とし、当該秘密情報（α０）に署名を付与することで署名値（Ｓ）を生成する。データ生成装置では、例えば、下式に示すようなＳｉｇｎアルゴリズムを用いて署名値（Ｓ）を生成する。
【００３３】
【数２】
2019047331.tif 000004
なお、式２において、ｓｋｃａｍは署名鍵を指すものとする。
【００３４】
図３（ｂ）に示すように、データ生成装置が、ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、署名値（Ｓ）を対応付けて、データ記憶装置に送信することで、データ記憶装置では、欠損検証と署名検証とを行うことができる。
【００３５】
具体的には、データ記憶装置では、秘密分散データ（Ｄｉ，Ｗｉ）がｋ個以上かｋ個未満かを判定することで欠損検証を行う。
【００３６】
秘密分散データ（Ｄｉ，Ｗｉ）がｋ個未満であった場合、データ記憶装置では、欠損（（ｎ−ｋ）個以上の欠損）が発生したため、署名検証を行うことができないと判定する。
【００３７】
一方、秘密分散データ（Ｄｉ，Ｗｉ）がｋ個以上であった場合、データ記憶装置では、署名検証を行うことができると判定し、署名値（Ｓ）を抽出する。また、データ記憶装置では、Ｓｉｇｎアルゴリズムに対応するＶｒｆｙアルゴリズムを用いることで、署名値（Ｓ）に基づいて秘密情報（α０）を演算する（下式参照）。
【００３８】
【数３】
2019047331.tif 000005
なお、式３において、ｖｋｃａｍは検証鍵を指すものとする。
【００３９】
データ記憶装置では、更に、ｋ個の秘密分散データ（Ｄｉ，Ｗｉ）を抽出し、抽出した秘密分散データ（Ｄｉ，Ｗｉ）から、下式に基づいて、秘密情報（α０）を演算する。
【００４０】
【数４】
2019047331.tif 000006
データ記憶装置では、署名値（Ｓ）から演算した秘密情報（α０）と、秘密分散データ（Ｄｉ，Ｗｉ）から演算した秘密情報（α０）と、が一致するか否かを判定することで、署名検証を行う。
【００４１】
ここで、ｋ個の秘密分散データが改竄されていなかったとする。この場合、ｋ個の秘密分散データ（Ｄｉ，Ｗｉ）から演算した秘密情報（α０）は、署名値（Ｓ）から演算した秘密情報（α０）と一致する。
【００４２】
一方、ｋ個の秘密分散データが改竄された場合には、これらは一致しない。つまり、これらが一致するか否かを判定することで、署名検証を行うことができ、一致した場合（署名検証に成功した場合）に、データ記憶装置では、秘密分散データ（Ｄｉ，Ｗｉ）が改竄されていないことを保証することができる。
【００４３】
このように、秘密分散プロトコルを時系列データに適用することで、欠損検証と署名検証とを実現できる。また、（ｎ−ｋ）個未満のデータ欠損を許容するため、署名検証でのデータ欠損に対する耐性を向上させることができる。
【００４４】
＜３．データ記録システム１００における出力データの真正性を検証するための処理の概要＞
次に、データ記録システム１００における出力データの真正性を検証するための処理の概要について説明する。上述したとおり、ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに署名値（Ｓ）を対応付けたデータを送信することで、データ記憶装置では、
・欠損検証：（ｎ−ｋ）個以上の欠損が発生したか否か
・署名検証：改竄が行われたか否か
を判定することができる。
【００４５】
しかしながら、欠損検証と署名検証だけでは、所定の区間ごとに送信されるｎ個の秘密分散データ（Ｄｉ，Ｗｉ）を含む出力データ全体が、切り抜かれた場合に、これを検証することができない。
【００４６】
そこで、本実施形態におけるデータ生成装置１１０では、更に、所定の区間ごとに、区間情報の一例であるインデックス値（Ｇｊ）を生成する。そして、本実施形態におけるデータ生成装置１１０では、所定の区間ごとに送信されるｎ個の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、署名値（Ｓｊ）だけでなくインデックス値（Ｇｊ）も合わせて対応付ける。
【００４７】
つまり、本実施形態におけるデータ生成装置１１０では、ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、署名値（Ｓ）とインデックス値（Ｇｊ）とが対応付けられた出力データを送信する。なお、このとき対応付けられたインデックス値（Ｇｊ）は隣接する区間との連続性を表すために、下式の関係を有しているものとする。
【００４８】
【数５】
2019047331.tif 000007
以下、図４を参照しながら、データ記録システム１００における出力データの真正性を検証するための処理について説明する。図４は、出力データの真正性を検証するための処理の概要を示す図である。図４に示すように、データ生成装置１１０は、時系列データの所定の区間ごとに、
・ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）
・ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）ごとに共通の署名値（Ｓｊ）
・ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）ごとに共通のインデックス値（Ｇｊ）
を含む出力データを、データ記憶装置１２０に送信する。
【００４９】
これにより、本実施形態におけるデータ記憶装置１２０は、それぞれの出力データについて、欠損検証と署名検証とを行うことができる。加えて、本実施形態におけるデータ記憶装置１２０では、出力データ間においてインデックス値（Ｇｊ）が連続しているか否かを判定する連続性検証を行うことができる。これにより、本実施形態におけるデータ記憶装置１２０によれば、所定の区間ごとに送信される出力データそのものが、切り抜かれた場合であっても、これを検証することができる。
【００５０】
つまり、本実施形態におけるデータ記憶装置１２０では、出力データの真正性を検証するために、
・欠損検証：各出力データにおいて、（ｎ−ｋ）個以上の欠損が発生したか否か
・署名検証：各出力データにおいて、改竄が行われたか否か
・連続性検証：出力データの切り抜きが行われたか否か
を判定する。
【００５１】
＜４．データ記録システムのハードウェア構成＞
次に、データ記録システム１００を構成する、データ生成装置１１０及びデータ記憶装置１２０のハードウェア構成について説明する。図５は、データ生成装置及びデータ記憶装置のハードウェア構成を示す図である。
【００５２】
図５（ａ）に示すように、データ生成装置１１０は、データ生成センサ５０１を有する。また、データ生成装置１１０は、ＣＰＵ（Central Processing Unit）５０２、ＲＯＭ（Read Only Memory）５０３、ＲＡＭ（Random Access Memory）５０４を有する。ＣＰＵ５０２、ＲＯＭ５０３、ＲＡＭ５０４はいわゆるコンピュータを形成する。更に、データ生成装置１１０は、Ｉ／Ｆ（Interface）装置５０５を有する。なお、データ生成装置１１０を構成する各ハードウェアは、バス５０６を介して相互に接続されている。
【００５３】
データ生成センサ５０１は、時系列データを生成する。データ生成装置１１０が、例えば撮像装置であった場合、データ生成センサ５０１は、受光した光を電気信号に変換し、動画像データを生成する。
【００５４】
ＣＰＵ５０２は、ＲＯＭ５０３に格納された各種プログラム（例えば、秘密分散データ生成プログラム）を実行する。
【００５５】
ＲＯＭ５０３は、ＣＰＵ５０２により実行される各種プログラムや、ＣＰＵ５０２が各種プログラムを実行する際に用いるその他のプログラム、データを格納する。ＲＡＭ５０４は、ＣＰＵ５０２が各種プログラムを実行する際のワークエリアを提供する。
【００５６】
Ｉ／Ｆ装置５０５は、ネットワークに接続され、該ネットワークを介して、データ記憶装置１２０に出力データを送信する。
【００５７】
図５（ｂ）に示すように、データ記憶装置１２０は、ＣＰＵ５１１、ＲＯＭ５１２、ＲＡＭ５１３、補助記憶装置５１４、表示装置５１５、操作装置５１６、Ｉ／Ｆ装置５１７を有する。データ記憶装置１２０を構成する各ハードウェアは、バス５１８を介して相互に接続されている。
【００５８】
なお、データ記憶装置１２０のハードウェア構成は、データ生成装置１１０のハードウェア構成と概ね同じであるため、ここでは相違点のみ説明する。データ生成装置１１０のハードウェア構成との相違点は、データ生成センサ５０１を有していない点と、補助記憶装置５１４、表示装置５１５、操作装置５１６を有している点である。
【００５９】
補助記憶装置５１４は、ＣＰＵ５１１により実行されるプログラムである、データ検証プログラムと、データ生成装置１１０から送信される出力データとを格納する。データ記憶装置１２０の場合、データ検証プログラムは、補助記憶装置５１４に格納され、ＲＯＭ５１２には、ＣＰＵ５１１がデータ検証プログラムを実行する際に用いるその他のプログラムが格納されているものとする。また、補助記憶装置５１４は、出力データを格納するデータ格納部１２２を実現する。
【００６０】
表示装置５１５は、出力データの真正性を検証することで得た検証結果等を表示する表示デバイスである。操作装置５１６は、データ記憶装置１２０のユーザがデータ記憶装置１２０に対して各種指示を入力するための入力デバイスである。
【００６１】
＜５．データ生成装置の機能構成＞
次に、データ生成装置１１０にて実現される秘密分散データ生成部１１１の詳細な機能構成について説明する。図６は、データ生成装置の機能構成を示す図である。
【００６２】
図６に示すように、秘密分散データ生成部１１１は、データ入力部６０１、圧縮部６０２、データバッファ部６０３、データカウンタ部６０４、署名パラメータ生成部６０５を有する。また、秘密分散データ生成部１１１は、インデックス生成部６０６、ハッシュ生成部６０７、パラメータ情報生成部６０８、署名部６０９、ストリームパケット生成部６１０、データ送信部６１１を有する。
【００６３】
データ入力部６０１は、データ生成センサ５０１により生成された時系列データを取得する。圧縮部６０２は、取得した時系列データを圧縮し、単位データを生成する。時系列データが、例えば動画像データであった場合、圧縮部６０２は、ＭＰＥＧやＭｏｔｉｏｎ−ＪＰＥＧ、Ｈ．２６４等の任意の圧縮形式により動画像データを圧縮し、単位データを生成する。
【００６４】
データバッファ部６０３は、圧縮部６０２において生成された単位データを一時的に蓄積する。
【００６５】
データカウンタ部６０４は、データバッファ部６０３に蓄積された単位データの数をカウントする。また、データカウンタ部６０４は、単位データの数が所定数（ｎ）に到達するごとに（つまり、時系列データの所定の区間ごとに）、署名パラメータ生成部６０５、インデックス生成部６０６、署名部６０９に、所定数（ｎ）の単位データが蓄積された旨を通知する。なお、データカウンタ部６０４は、所定数（ｎ）をカウントするごとに、カウント値（ｉ）をリセットする。
【００６６】
更に、データカウンタ部６０４は、所定の区間の数をカウントし、インデックス生成部６０６に通知する。データカウンタ部６０４は、カウント値（ｉ）をリセットするごとに、カウント値（ｊ）をインクリメントする。
【００６７】
署名パラメータ生成部６０５は、乱数生成器を有し、データカウンタ部６０４より、所定数（ｎ）の単位データが処理された旨の通知を受けると、乱数生成器により生成されたｋ個の乱数値をパラメータ（αｋ−１、αｋ−２、・・・α０）として取得する。また、署名パラメータ生成部６０５は、取得したパラメータ（αｋ−１、αｋ−２、・・・α０）をパラメータ情報生成部６０８に通知する。更に、署名パラメータ生成部６０５は、パラメータ（α０）を秘密情報として署名部６０９に通知する。
【００６８】
インデックス生成部６０６は区間情報生成手段の一例である。インデックス生成部６０６は、データカウンタ部６０４より、所定数（ｎ）の単位データが蓄積された旨の通知を受けると、インデックス値（Ｇｊ）を生成する。インデックス値（Ｇｊ）は、所定の区間に含まれる所定数（ｎ）の単位データに共通の区間情報であって、前回生成したインデックス値（Ｇｊ−１）との連続性（つまり、隣接する区間との連続性）を示す値である。また、インデックス生成部６０６は、生成したインデックス値（Ｇｊ）を、ストリームパケット生成部６１０及びハッシュ生成部６０７に通知する。
【００６９】
ハッシュ生成部６０７は、データバッファ部６０３に蓄積された単位データから、所定数（ｎ）の単位データ（Ｄｉ）を順次取得し、インデックス生成部６０６から取得したインデックス値（Ｇｊ）とともに、ハッシュ値（Ｈａｓｈ（Ｇｊ＋Ｄｉ））を算出する。なお、ハッシュ生成部６０７で単位データ（Ｇｊ＋Ｄｉ）のハッシュ値を算出するのは、データ生成装置１１０における処理負荷を低減させるためである。
【００７０】
パラメータ情報生成部６０８は、算出手段の一例であり、ハッシュ生成部６０７において算出されたハッシュ値（Ｈａｓｈ（Ｇｊ＋Ｄｉ））と、署名パラメータ生成部６０５より通知されたパラメータ（αｋ−１、αｋ−２、・・・α０）とを取得する。また、パラメータ情報生成部６０８は、取得したハッシュ値とパラメータとに基づき、下式を用いて、パラメータ情報（Ｗｉ）を算出する。更に、パラメータ情報生成部６０８は、生成したパラメータ情報（Ｗｉ）を、ストリームパケット生成部６１０に通知する。
【００７１】
【数６】
2019047331.tif 000008
署名部６０９は、署名値生成手段の一例であり、データカウンタ部６０４より、所定数（ｎ）の単位データが蓄積された旨の通知を受けると、署名パラメータ生成部６０５より通知された秘密情報（α０）を用いて、署名値（Ｓｊ）を生成する。また、署名部６０９は、生成した署名値（Ｓｊ）をストリームパケット生成部６１０に通知する。
【００７２】
なお、上述したとおり、本実施形態において、署名値（Ｓｊ）の生成には、Ｓｉｇｎアルゴリズムを用いるものとして説明するが、署名値（Ｓｊ）の生成に用いる署名アルゴリズムは、Ｓｉｇｎアルゴリズムに限定されない。例えば、ＲＳＡアルゴリズム、ＲＳＡＳＳＡ−ＰＳＳアルゴリズムを用いても、あるいはＥｌＧａｍａｌアルゴリズムを用いてもよい。
【００７３】
ストリームパケット生成部６１０は出力手段の一例である。ストリームパケット生成部６１０は、単位データ（Ｄｉ）とパラメータ情報（Ｗｉ）とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部６１０は、取得した所定数（ｎ）の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、インデックス値（Ｇｊ）と署名値（Ｓｊ）とを対応付けることで出力データ（Ｄｉ，Ｗｉ，Ｇｊ，Ｓｊ）を生成する。
【００７４】
また、ストリームパケット生成部６１０は、生成した出力データ（Ｄｉ，Ｗｉ，Ｇｊ，Ｓｊ）をパケット化して出力する。なお、出力データをパケット化する際のパケット形式は送信形式によって決まり、送信形式がネットワークインタフェース形式の場合には、パケット形式はＲＴＳＰ形式またはＵＤＰ形式となる。また、送信形式がＵＳＢインタフェース形式の場合には、パケット形式はアイソクロナス形式となる。
【００７５】
データ送信部６１１は、ストリームパケット生成部６１０においてパケット化された出力データ（Ｄｉ，Ｗｉ，Ｇｊ，Ｓｊ）を送信する。なお、データ送信部６１１では、パケット化された出力データ（Ｄｉ，Ｗｉ，Ｇｊ，Ｓｊ）を、コネクションレス方式でデータ記憶装置１２０に対してストリーミング送信する。
【００７６】
図７は、データ生成装置の各部（データバッファ部６０３、インデックス生成部６０６、ハッシュ生成部６０７、パラメータ情報生成部６０８、署名部６０９）の動作を模式的に示した図である。図７の例では、所定数（ｎ）を"１０"、ｋ＝"５"、カウント値（ｊ）＝"１"としている。
【００７７】
図７に示すように、ハッシュ生成部６０７は、データバッファ部６０３に蓄積された単位データ（Ｄ１）と、インデックス生成部６０６により生成されたインデックス値（Ｇ１）とを取得し、ハッシュ値（Ｈａｓｈ（Ｇ１＋Ｄ１））を算出する。
【００７８】
また、パラメータ情報生成部６０８は、ハッシュ生成部６０７により算出されたハッシュ値（Ｈａｓｈ（Ｇ１＋Ｄ１））と、署名パラメータ生成部６０５より出力されたパラメータ（α４、α３、・・・α０）とを取得する。更に、パラメータ情報生成部６０８は、ハッシュ値（Ｈａｓｈ（Ｇ１＋Ｄ１））とパラメータ（α４、α３、・・・α０）とに基づき、パラメータ情報（Ｗ１）を算出する。
【００７９】
同様に、データバッファ部６０３に蓄積された他の単位データ（Ｄ２、Ｄ３、・・・Ｄ１０）についてもそれぞれ同様の処理が行われることで、パラメータ情報生成部６０８は、パラメータ情報（Ｗ２、Ｗ３、・・・Ｗ１０）を算出する。
【００８０】
一方、署名部６０９は、署名パラメータ生成部６０５より通知された秘密情報（α０）を用いて署名値（Ｓ１）を生成する。
【００８１】
データバッファ部６０３に蓄積された単位データ（Ｄ１、Ｄ２、・・・Ｄ１０）と、パラメータ情報生成部６０８にて算出されたパラメータ情報（Ｗ１、Ｗ２、・・・Ｗ１０）とは、ストリームパケット生成部６１０にて対応付けられる。これにより、ストリームパケット生成部６１０では、秘密分散データ（（Ｄ１，Ｗ１）、（Ｄ２，Ｗ２）、・・・（Ｄ１０，Ｗ１０））を取得する。
【００８２】
更に、インデックス生成部６０６で生成されたインデックス値（Ｇ１）、及び、署名部６０９により生成された署名値（Ｓ１）は、ストリームパケット生成部６１０にて、秘密分散データ（（Ｄ１，Ｗ１）・・・（Ｄ１０，Ｗ１０））それぞれに対応付けられる。この結果、出力データ（（Ｄ１，Ｗ１，Ｇ１，Ｓ１）・・・（Ｄ１０，Ｗ１０，Ｇ１，Ｓ１））が生成される。
【００８３】
このように、データ生成装置１１０の各部が動作することで、データ生成装置１１０では、所定区間ごとに出力データ（秘密分散データ＋インデックス値＋署名値）を送信することができる。
【００８４】
＜６．秘密分散データ生成部による出力データ生成処理＞
次に、秘密分散データ生成部１１１による出力データ生成処理の流れについて説明する。図８は、出力データ生成処理の流れを示すフローチャートである。データ生成センサ５０１により時系列データが生成されると、秘密分散データ生成部１１１では、図８に示すフローチャートを実行する。
【００８５】
ステップＳ８０１において、データカウンタ部６０４は、単位データの数をカウントするカウント値（ｉ）に"０"を代入する。また、データカウンタ部６０４は、所定の区間の数をカウントするカウント値ｊに"１"を代入する。
【００８６】
ステップＳ８０２において、データ入力部６０１は、データ生成センサ５０１により生成された時系列データを取得する。また、圧縮部６０２は、取得された時系列データを圧縮して単位データを生成し、単位データ（Ｄｉ）をデータバッファ部６０３に蓄積する。
【００８７】
ステップＳ８０３において、データカウンタ部６０４は、カウント値（ｉ）をインクリメントし、ステップＳ８０４に進む。
【００８８】
ステップＳ８０４において、データカウンタ部６０４は、所定数（ｎ）の単位データが蓄積されたか否かを判定する。ステップＳ８０４において、所定数（ｎ）の単位データが蓄積されていないと判定した場合には、ステップＳ８０２に戻る。一方、ステップＳ８０４において、所定数（ｎ）の単位データが蓄積されたと判定した場合には、ステップＳ８０５に進む。
【００８９】
ステップＳ８０５において、インデックス生成部６０６は、インデックス値（Ｇｊ）を生成する。
【００９０】
ステップＳ８０６において、ハッシュ生成部６０７は、インデックス生成部６０６で生成されたインデックス値（Ｇｊ）と、データバッファ部６０３に蓄積された単位データ（Ｄｉ）とをハッシュ化し、ハッシュ値（Ｈａｓｈ（Ｇｊ＋Ｄｉ））を算出する。
【００９１】
ステップＳ８０７において、パラメータ情報生成部６０８は、署名パラメータ生成部６０５よりパラメータ（αｋ−１、αｋ−２、・・・α０）を取得する。
【００９２】
ステップＳ８０８において、パラメータ情報生成部６０８は、ハッシュ値（Ｈａｓｈ（Ｇｊ＋Ｄｉ））とパラメータ（αｋ−１、αｋ−２、・・・α０）とに基づき、パラメータ情報（Ｗｉ）を算出する。
【００９３】
ステップＳ８０９において、署名部６０９は、署名パラメータ生成部６０５より出力された秘密情報（α０）に基づき、署名値（Ｓｊ）を生成する。
【００９４】
ステップＳ８１０において、ストリームパケット生成部６１０は、取得した所定数（ｎ）の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、インデックス値（Ｇｊ）と署名値（Ｓｊ）とを対応付けることで出力データを生成する。また、ストリームパケット生成部６１０は、生成した出力データをパケット化する。更に、データ送信部６１１は、パケット化された出力データをストリーミング送信する。
【００９５】
ステップＳ８１１において、データ入力部６０１は、出力データ生成処理を終了するか否かを判定する。データ生成センサ５０１により生成された時系列データの入力が継続している場合には、出力データ生成処理を終了せずに、ステップＳ８１２に進む。
【００９６】
ステップＳ８１２において、データカウンタ部６０４は、カウント値（ｉ）をリセットするとともに、カウント値（ｊ）をインクリメントし、ステップＳ８０２に戻る。これにより、次の所定数（ｎ）の単位データについての出力データが、ストリーミング送信される。
【００９７】
一方、ステップＳ８１１において、時系列データの入力が停止したと判定した場合には、出力データ生成処理を終了する。
【００９８】
＜７．データ記憶装置の機能構成＞
次に、データ記憶装置１２０にて実現されるデータ検証部１２１の詳細な機能構成について説明する。図９は、データ記憶装置の機能構成を示す図である。
【００９９】
図９に示すように、データ検証部１２１は、データ受信部９０１、格納処理部９０２、署名値抽出部９０３、秘密分散データ抽出部９０４、署名値演算部９０５、署名値検証部９０６、連続性検証部９０７、検証結果出力部９０８を有する。
【０１００】
データ受信部９０１は、受信手段の一例であり、データ生成装置１１０より送信された出力データ（Ｄｉ，Ｗｉ，Ｇｊ，Ｓｊ）を順次受信する。
【０１０１】
格納処理部９０２は、データ受信部９０１において受信された出力データをデータ格納部１２２に格納する。
【０１０２】
署名値抽出部９０３は、第２の演算手段の一例である。署名値抽出部９０３は、データ格納部１２２に格納された出力データに含まれる署名値（Ｓｊ）を抽出する。また、署名値抽出部９０３は、署名値（Ｓｊ）について、検証鍵を用いて、上式（式３）に基づいて秘密情報（α０）を演算する。また、署名値抽出部９０３は、演算した秘密情報（α０）を署名値検証部９０６に通知する。
【０１０３】
秘密分散データ抽出部９０４は、第１の判定手段の一例である。秘密分散データ抽出部９０４は、データ格納部１２２に格納された出力データであって、署名値抽出部９０３により抽出された署名値（Ｓｊ）と同じ署名値（Ｓｊ）を含む出力データから、秘密分散データ（Ｄｉ，Ｗｉ）を抽出する。
【０１０４】
また、秘密分散データ抽出部９０４は、抽出した秘密分散データ（Ｄｉ，Ｗｉ）が、ｋ個以上か否かを判定する。秘密分散データ（Ｄｉ，Ｗｉ）が、ｋ個未満であった場合、秘密分散データ抽出部９０４は、当該出力データにおいて、（ｎ−ｋ）個以上の欠損が発生したと判定し、欠損検証結果を検証結果出力部９０８に通知する。また、秘密分散データ（Ｄｉ，Ｗｉ）が、ｋ個以上であった場合、秘密分散データ抽出部９０４は、抽出した秘密分散データ（Ｄｉ，Ｗｉ）を署名値演算部９０５に通知する。
【０１０５】
署名値演算部９０５は、第１の演算手段の一例である。署名値演算部９０５は、秘密分散データ抽出部９０４より受信したｋ個の秘密分散データ（Ｄｉ，Ｗｉ）から下式に基づいて秘密情報（α０）を演算し、演算した秘密情報（α０）を署名値検証部９０６に通知する。
【０１０６】
【数７】
2019047331.tif 000009
署名値検証部９０６は、第２の判定手段の一例である。署名値検証部９０６は、署名値抽出部９０３から受信した秘密情報（α０）と、署名値演算部９０５から受信した秘密情報（α０）とが一致するか否かを判定することで署名検証を行う。秘密情報（α０）が一致しないと判定した場合、署名値検証部９０６は、当該出力データに含まれる秘密分散データが改竄されたと判定し、改竄検証結果を検証結果出力部９０８に通知する。
【０１０７】
連続性検証部９０７は、第３の判定手段の一例である。連続性検証部９０７は、データ格納部１２２に格納された出力データであって、署名値抽出部９０３により抽出された署名値（Ｓｊ）と同じ署名値（Ｓｊ）を含む出力データから、インデックス値（Ｇｊ）を抽出する。
【０１０８】
また、連続性検証部９０７は、前回抽出したインデックス値（Ｇｊ−１）と、今回抽出したインデックス値（Ｇｊ）とを対比し、インデックス値が連続しているか否かを判定することで、連続性検証を行う。連続性検証部９０７は、インデックス値が連続していないと判定した場合、連続性検証結果を検証結果出力部９０８に通知する。
【０１０９】
検証結果出力部９０８は表示手段の一例である。検証結果出力部９０８は、データ格納部１２２に格納された出力データに対応付けて、検証結果を格納する。また、検証結果出力部９０８は、検証結果を表示するための表示画面を生成し、表示装置５１５に、生成した表示画面を表示する。
【０１１０】
検証結果出力部９０８は、データ格納部１２２に格納されたいずれの出力データについても、欠損検証結果、改竄検証結果、連続性検証結果を受信しなかった場合には、データ格納部１２２に格納された出力データが真正性を有すると判定する。この場合、検証結果出力部９０８は、データ格納部１２２に格納された出力データが、真正性を有するデータであることを示す表示画面を生成し、表示装置５１５に表示する。
【０１１１】
また、検証結果出力部９０８は、欠損検証結果を受信した場合には、データ格納部１２２に格納された出力データの中に、署名検証を行うのに充分な秘密分散データを受信できなかった出力データがあったことを示す表示画面を生成し、表示装置５１５に表示する。
【０１１２】
また、検証結果出力部９０８は、改竄検証結果または連続性検証結果を受信した場合には、データ格納部１２２に格納された出力データの中に、改竄が検出された出力データがあったことを示す表示画面を生成し、表示装置５１５に表示する。
【０１１３】
更に、検証結果出力部９０８は、検証結果を表示するための表示画面を表示したことに応じて、出力データの表示指示が入力された場合には、表示指示された出力データをデータ格納部１２２から読み出して、表示装置５１５に表示する。
【０１１４】
＜８．データ検証部によるデータ検証処理＞
次に、データ検証部１２１によるデータ検証処理の流れについて説明する。図１０は、第１の実施形態におけるデータ検証処理の流れを示すフローチャートである。データ記憶装置１２０のデータ格納部１２２に、出力データが格納されることで、図１０に示すフローチャートが実行される。
【０１１５】
ステップＳ１００１において、署名値抽出部９０３は、同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データをカウントするカウント値（ｊ）に"１"を代入する。
【０１１６】
ステップＳ１００２において、署名値抽出部９０３は、データ格納部１２２に格納された出力データのうち、署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データを処理対象として特定する。ここでは、署名値抽出部９０３は、署名値（Ｓ１）が対応付けられた秘密分散データを処理対象として特定する。また、署名値抽出部９０３は、処理対象の出力データに含まれる署名値（Ｓｊ）を抽出する（ここでは、署名値（Ｓ１）を抽出する）。更に、署名値抽出部９０３は、抽出した署名値（Ｓｊ）について、検証鍵を用いて秘密情報（α０）を演算する。
【０１１７】
ステップＳ１００３において、秘密分散データ抽出部９０４は、抽出された署名値（Ｓｊ）と同じ署名値（Ｓｊ）を含む出力データ（処理対象の出力データ）から、秘密分散データ（Ｄｉ，Ｗｉ）を抽出する。
【０１１８】
ステップＳ１００４において、秘密分散データ抽出部９０４は、抽出した秘密分散データ（Ｄｉ，Ｗｉ）がｋ個以上あるか否かを判定する。ステップＳ１００４において、ｋ個未満であると判定した場合には（ステップＳ１００４においてＮｏの場合には）、ステップＳ１００５に進む。
【０１１９】
ステップＳ１００５において、秘密分散データ抽出部９０４は、処理対象の出力データにおいて、秘密分散データの欠損が（ｎ−ｋ）個以上発生したと判定し、ステップＳ１０１２に進む。
【０１２０】
一方、ステップＳ１００４において、ｋ個以上であると判定した場合には（ステップＳ１００３においてＹｅｓの場合には）、ステップＳ１００６に進む。
【０１２１】
ステップＳ１００６において、署名値演算部９０５は、ｋ個の秘密分散データ（Ｄｉ，Ｗｉ）に基づいて秘密情報（α０）を演算する。
【０１２２】
ステップＳ１００７において、署名値検証部９０６は、署名値（Ｓｊ）から演算された秘密情報（α０）と、ｋ個の秘密分散データ（Ｄｉ，Ｗｉ）から演算された秘密情報（α０）とを比較し、両者が一致するか否かを判定する。ステップＳ１００７において一致しないと判定した場合には（ステップＳ１００７においてＮｏの場合には）、ステップＳ１００８に進む。
【０１２３】
ステップＳ１００８において、署名値検証部９０６は、処理対象の出力データに含まれる秘密分散データが改竄されたと判定し、ステップＳ１０１２に進む。
【０１２４】
一方、ステップＳ１００７において、一致すると判定した場合（ステップＳ１００７においてＹｅｓの場合には）、ステップＳ１００９に進む。
【０１２５】
ステップＳ１００９において、連続性検証部９０７は、処理対象の出力データに含まれるインデックス値（Ｇｊ）と、前回の処理対象の出力データに含まれていたインデックス値（Ｇｊ−１）とが連続しているか否かを判定する。ステップＳ１００９において、連続していないと判定された場合には（ステップＳ１００９においてＮｏの場合には）、ステップＳ１０１０に進む。
【０１２６】
ステップＳ１０１０において、連続性検証部９０７は、インデックス値（Ｇｊ）の出力データと、インデックス値（Ｇｊ−１）の出力データとの間の出力データが、切り抜かれたと判定し、ステップＳ１０１２に進む。
【０１２７】
一方、ステップＳ１００９において、連続していると判定された場合には（ステップＳ１００９においてＹｅｓの場合には）、ステップＳ１０１１に進む。ステップＳ１０１１において、検証結果出力部９０８は、処理対象の出力データについて検証に成功したと判定し、ステップＳ１０１２に進む。
【０１２８】
ステップＳ１０１２において、検証結果出力部９０８は、検証結果（欠損、改竄、切り抜き、検証成功）をデータ格納部１２２に記録する。
【０１２９】
ステップＳ１０１３において、署名値抽出部９０３は、次の処理対象の出力データがデータ格納部１２２に格納されているか否かを判定する。ステップＳ１０１３において、次の処理対象の出力データがデータ格納部１２２に格納されていると判定した場合（ステップＳ１０１３においてＹｅｓの場合）には、ステップＳ１０１４に進む。
【０１３０】
ステップＳ１０１４において、署名値抽出部９０３は、カウント値（ｊ）をインクリメントして、ステップＳ１００２に戻る。
【０１３１】
一方、ステップＳ１０１３において、次の処理対象の出力データがデータ格納部１２２に格納されていないと判定した場合（ステップＳ１０１３においてＮｏの場合）には、ステップＳ１０１５に進む。
【０１３２】
ステップＳ１０１５において、検証結果出力部９０８は、データ格納部１２２に格納されている出力データの真正性についての判定結果を出力する。
【０１３３】
＜９．データ検証部によるデータ検証処理の効果＞
次に、データ検証部１２１によるデータ検証処理の効果について説明する。図１１は、データ検証処理の効果を説明するための図である。このうち、図１１（ａ）は、それぞれ同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データ１１０１〜出力データ１１０７についてデータ検証処理を行った様子を示している。
【０１３４】
図１１（ａ）の場合、出力データ１１０１〜出力データ１１０７のいずれにおいても、秘密分散データの欠損が発生しておらず、また、改竄された秘密分散データも含まれていない。更には、出力データ１１０１〜出力データ１１０７それぞれのインデックス値（Ｇ１〜Ｇ７）は、隣接する出力データ間で連続しており、出力データの切り抜きも行われていない。このため、データ検証部１２１では、出力データ１１０１〜出力データ１１０７について、真正性を有すると判定することができる。
【０１３５】
図１１（ｂ）は、それぞれ同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データ１１１１〜出力データ１１１７についてデータ検証処理を行った様子を示している。図１１（ｂ）の場合、出力データ１１１１、１１１３において、秘密分散データの欠損１１５１、１１５２が発生しているが、出力データ１１１１、１１１３には、ｋ個以上の秘密分散データが含まれるため署名検証を行うことができる。
【０１３６】
また、図１１（ｂ）の場合、出力データ１１１１〜出力データ１１１７のいずれにも、改竄された秘密分散データは含まれていない。更には、出力データ１１１１〜出力データ１１１７それぞれのインデックス値（Ｇ１〜Ｇ７）は、隣接する出力データ間で連続しており、出力データの切り抜きも行われていない。このため、データ検証部１２１では、出力データ１１１１〜出力データ１１１７について、真正性を有すると判定することができる。
【０１３７】
図１１（ｃ）は、それぞれ同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データ１１２１〜出力データ１１２７についてデータ検証処理を行った様子を示している。図１１（ｃ）の場合、出力データ１１２１、１１２３、１１２６において、秘密分散データの欠損１１６１、１１６２、１１６３が発生しており、出力データ１１２１、１１２３、１１２６には、ｋ個以上の秘密分散データが含まれていない。このため、出力データ１１２１、１１２３、１１２６については、署名検証を行うことができない。この結果、データ検証部１２１では、出力データ１１２１〜出力データ１１２７について、真正性を検証することができないと判定する。
【０１３８】
図１１（ｄ）は、それぞれ同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データ１１３１〜出力データ１１３７についてデータ検証処理を行った様子を示している。図１１（ｄ）の場合、秘密分散データの欠損は発生していないが、出力データ１１３２、１１３３に、改竄された秘密分散データ１１７１、１１７２が含まれる。このため、データ検証部１２１では、出力データ１１３１〜出力データ１１３７について、真正性がないと判定する。
【０１３９】
図１１（ｅ）は、それぞれ同じ署名値（Ｓｊ）が対応付けられた秘密分散データを含む出力データ１１４１〜出力データ１１４６についてデータ検証処理を行った様子を示している。図１１（ｅ）の場合、出力データ１１４１〜出力データ１１４６のいずれにおいても、秘密分散データの欠損が発生しておらず、また、改竄された秘密分散データも含まれていない。
【０１４０】
しかしながら、出力データ１１４４のインデックス値（Ｇ４）と、出力データ１１４５のインデックス値（Ｇ５）とが連続しておらず、出力データ１１４４と出力データ１１４５の間の出力データが切り抜かれている。このため、データ検証部１２１では、出力データ１１４１〜１１４６について、真正性がないと判定する。
【０１４１】
このように、データ検証部１２１によるデータ検証処理によれば、出力データにおける欠損検証、署名検証、出力データ間の連続性検証の観点から、出力データの真正性を検証することができる。
【０１４２】
＜１０．表示画面例＞
次に、データ検証処理が実行されることでデータ記憶装置１２０に表示される表示画面について説明する。図１２は、第１の実施形態におけるデータ記憶装置の表示画面の一例を示す図である。
【０１４３】
図１２において、表示画面１２１０は、データ検証部１２１によりデータ検証処理が開始された直後の表示画面を示している。表示画面１２１０に示すように、データ検証処理の実行中、検証結果出力部９０８は、"検証中"であることを表示する。
【０１４４】
一方、表示画面１２２０は、データ検証部１２１によりデータ検証処理が実行され、検証成功と判定された場合の表示画面を示している。表示画面１２２０に示すように、検証成功と判定された場合、検証結果出力部９０８は、"信頼性のあるデータ"であることを表示する。
【０１４５】
また、表示画面１２３０は、データ検証部１２１によりデータ検証処理が実行され、出力データの中に、秘密分散データの欠損が（ｎ−ｋ）個以上であると判定された出力データがあったと判定した場合の表示画面を示している。表示画面１２３０に示すように、秘密分散データの欠損が（ｎ−ｋ）個以上であると判定された出力データがあった場合、検証結果出力部９０８は、"検証に十分なデータが得られなかった"ことを表示する。
【０１４６】
また、表示画面１２４０は、データ検証部１２１によりデータ検証処理が実行され、出力データの中に、改竄が検出された出力データがあったと判定された場合、または、切り抜かれた出力データがあったと判定された場合の表示画面を示している。
【０１４７】
表示画面１２４０に示すように、改竄が検出された出力データがあった場合、または、切り抜かれた出力データがあったと判定された場合、検証結果出力部９０８は、"改竄が検出された"ことを表示する。また、検証結果出力部９０８は、あわせて詳細ボタン１２４１を表示する。
【０１４８】
表示画面１２４０において詳細ボタン１２４１が押圧されると、検証結果出力部９０８は、更に、表示画面１２５０を表示する。表示画面１２５０は、改竄された秘密分散データが含まれる出力データを確認するための確認ボタン１２５１と、切り抜き箇所を確認するための確認ボタン１２５２とを含む。
【０１４９】
表示画面１２６０は、確認ボタン１２５１または１２５２が押圧されることで、表示される表示画面である。確認ボタン１２５１が押圧された場合、検証結果出力部９０８は、改竄された秘密分散データが含まれる出力データを、表示画面１２５０に表示する。
【０１５０】
また、確認ボタン１２５２が押圧された場合、検証結果出力部９０８は、切り抜きがあると判定された前後の出力データを、表示画面１２５０に表示する。
【０１５１】
＜１１．まとめ＞
以上の説明から明らかなように、本実施形態に係るデータ記録システムでは、
・データ生成装置が、生成した時系列データから、ｎ個の単位データ（Ｄｉ）を順次取得し、取得した単位データ（Ｄｉ）に基づいて、ｋ個（１≦ｋ＜ｎ）の乱数値が含まれる（ｋ−１）次の多項式を満たすｎ個のパラメータ情報（Ｗｉ）を算出する。
・データ生成装置が、秘密分散データがｋ個集まることで演算可能となる秘密情報（α０）に、署名を付与することで署名値（Ｓｊ）を生成する。
・データ生成装置が、ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）ごとに（それぞれの区間に）共通のインデックス値（Ｇｊ）を生成する。
・データ生成装置が、ｎ個の秘密分散データ（Ｄｉ，Ｗｉ）それぞれに、署名値（Ｓｊ）及びインデックス値（Ｇｊ）を対応付けることで出力データを生成し、生成した出力データをデータ記憶装置にストリーミング送信する。
【０１５２】
これにより、データ記憶装置では、データ生成装置が送信した出力データに含まれるｎ個の秘密分散データのうち、ｋ個の秘密分散データを受信すれば、当該ｋ個の秘密分散データに基づいて秘密情報を演算することができる。
【０１５３】
つまり、第１の実施形態によれば、（ｎ−ｋ）個の秘密分散データの欠損を許容することが可能となり、実用性に欠けるといった問題を解消することができる。
【０１５４】
また、データ記憶装置では、同じ署名値（Ｓｊ）を含む出力データごとに、秘密分散データの欠損が（ｎ−ｋ）個以上発生したか否かを判定する欠損検証を行うことができる。また、データ記憶装置では、同じ署名値（Ｓｊ）を含む出力データごとに、秘密分散データの改竄が行われたか否かを判定する署名検証を行うことができる。また、データ記憶装置では、同じ署名値（Ｓｊ）を含む出力データの切り抜きが行われたか否かを判定する連続性検証を行うことができる。
【０１５５】
つまり、第１の実施形態によれば、出力データの真正性を、欠損検証、署名検証、連続性検証の観点から保証することができる。
【０１５６】
［第２の実施形態］
上記第１の実施形態では、データ記憶装置１２０が検証結果を出力するにあたり、データ格納部１２２に格納された出力データ全てについて、データ検証処理を実行してから、検証結果を出力するものとして説明した。しかしながら、検証結果の出力方法はこれに限定されず、出力データの表示中に、データ検証処理を並行して実行し、検証結果を出力するように構成してもよい。以下、第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０１５７】
＜１．データ検証部によるデータ検証処理＞
はじめに、データ検証部１２１によるデータ検証処理の流れについて説明する。図１３は、第２の実施形態におけるデータ検証処理の流れを示すフローチャートである。図１０に示すフローチャートとの相違点は、ステップＳ１３０１である。
【０１５８】
ステップＳ１３０１において、検証結果出力部９０８は、処理対象の出力データを表示装置５１５に表示するとともに、検証結果を表示する。
【０１５９】
＜２．表示画面例＞
次に、データ検証処理が実行されることでデータ記憶装置１２０の表示装置５１５に表示される表示画面について説明する。図１４は、第２の実施形態におけるデータ記憶装置の表示画面の一例を示す図である。
【０１６０】
図１４において、表示画面１４１０は、データ検証部１２１によりデータ検証処理が開始された直後の表示画面を示している。表示画面１４１０に示すように、第２の実施形態においては、データ検証処理と並行して出力データを表示する。
【０１６１】
また、表示画面１４１０において、バー１４１１は、データ検証処理の処理状況を示している。なお、バー１４１１に示す処理状況において処理された出力データは、いずれも検証成功と判定されているため、表示画面１４１０には、"信頼性のある出力データ"であることが表示されている。
【０１６２】
一方、表示画面１４２０は、データ検証部１２１により処理された、処理対象の出力データの中に、改竄が検出された出力データがあったと判定されたか、または、切り抜かれた出力データがあったと判定された場合の表示画面を示している。この場合、表示画面１４２０には、"改竄の可能性がある"ことが表示される。また、表示画面１４２０には、詳細ボタン１４２１が表示される。
【０１６３】
表示画面１４２０において詳細ボタン１４２１が押圧されると、検証結果出力部９０８は、表示画面１４３０を表示する。表示画面１４３０は、表示画面１４４０に戻るための戻るボタン１４３１を含む。また、表示画面１４３０は、改竄された秘密分散データが含まれる出力データを確認するためのｊｕｍｐボタン１４３２と、切り抜き箇所を確認するためのｊｕｍｐボタン１４３３とを含む。
【０１６４】
表示画面１４４０は、表示画面１４３０において、戻るボタン１４３１が押圧された場合に表示される。表示画面１４４０には、データ検証処理が実行されている出力データが表示される。なお、表示画面１４５０は、データ検証処理が終了したことを示している。
【０１６５】
一方、表示画面１４６０は、表示画面１４３０においてｊｕｍｐボタン１４３２または１４３３が押圧されることで、表示される表示画面である。
【０１６６】
検証結果出力部９０８は、ｊｕｍｐボタン１４３２が押圧されると、改竄された秘密分散データが含まれると判定された出力データを、表示画面１４６０に表示する。表示画面１４７０は、改竄された秘密分散データが含まれると判定された出力データの表示が終了したことを示している。
【０１６７】
同様に、ｊｕｍｐボタン１４３３が押圧された場合、検証結果出力部９０８は、切り抜きがあると判定された出力データの１つ前の出力データ（インデックス値＝Ｇｊ−１の出力データ）を、表示画面１４６０に表示する。表示画面１４７０は、切り抜きがあると判定された出力データ（インデックス値＝Ｇｊの出力データ）の表示が終了したことを示している。
【０１６８】
＜３．まとめ＞
以上の説明から明らかなように、本実施形態に係るデータ記録システムでは、データ記憶装置１２０が、出力データの表示と、データ検証処理とを並行して実行する。これにより、本実施形態によれば、出力データを見ながら、データ検証処理を実行させることが可能となる。
【０１６９】
［その他の実施形態］
上記第１及び第２の実施形態では、データ生成装置１１０において生成される時系列データの一例として、動画像データを例示した。しかしながら、データ生成装置１１０において生成される時系列データは動画像データに限られず、例えば、音声データや温度データ等、任意の時系列データであってもよい。
【０１７０】
また、上記第１及び第２の実施形態では、インデックス値（Ｇｊ）が１ずつ増加するものとして説明したが、インデックス値（Ｇｊ）は、区間の連続性が検証できる数字または文字であれば何でもよい。また、下式に示すようにハッシュ値であってもよい。隣接する区間のインデックス値（Ｇｊ）とインデックス値（Ｇｊ＋１）とが、ハッシュ関数を介して関係づけられるため、連続性を検証することが可能となるからである。
【０１７１】
【数８】
2019047331.tif 000010
また、上記第１及び第２の実施形態では、ハッシュ生成部６０７が、インデックス値（Ｇｊ）と単位データ（Ｄｉ）とをハッシュ化するものとして説明したが、インデックス値（Ｇｊ）はハッシュ化しなくてもよい。つまり、パラメータ情報生成部６０８は、ハッシュ値（Ｈａｓｈ（Ｄｉ））に基づいて、パラメータ情報（Ｗｉ）を算出するように構成してもよい。
【０１７２】
また、上記第１乃至第２の実施形態では、パラメータ情報生成部６０８が、ハッシュ値に基づいてパラメータ情報（Ｗｉ）を算出する構成とした。しかしながら、パラメータ情報生成部６０８は、ハッシュ化していない単位データ（Ｄｉ）に基づいて、パラメータ情報（Ｗｉ）を算出するように構成してもよい。
【０１７３】
また、上記第１及び第２の実施形態では、ＣＰＵ５０２が秘密分散データ生成プログラムを実行することで、秘密分散データ生成部を実現するものとして説明した。しかしながら、秘密分散データ生成部は、例えば、ＧＰＵ（Graphics Processing Unit）を用いて実現してもよい。
【０１７４】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１７５】
１００        ：データ記録システム
１１０        ：データ生成装置（撮像装置）
１１１        ：秘密分散データ生成部
１２０        ：データ記憶装置（サーバ装置）
１２１        ：データ検証部
１２２        ：データ格納部
６０１        ：データ入力部
６０２        ：圧縮部
６０３        ：データバッファ部
６０４        ：データカウンタ部
６０５        ：署名パラメータ生成部
６０６        ：インデックス生成部
６０７        ：ハッシュ生成部
６０８        ：パラメータ情報生成部
６０９        ：署名部
６１０        ：ストリームパケット生成部
６１１        ：データ送信部
９０１        ：データ受信部
９０２        ：格納処理部
９０３        ：署名値抽出部
９０４        ：秘密分散データ抽出部
９０５        ：署名値演算部
９０６        ：署名値検証部
９０７        ：連続性検証部
９０８        ：検証結果出力部
【先行技術文献】
【特許文献】
【０１７６】
【特許文献１】特開２０１５−０８８８５５号公報
【図１】
2019047331.tif 000011
【図２】
2019047331.tif 000012
【図３】
2019047331.tif 000013
【図４】
2019047331.tif 000014
【図５】
2019047331.tif 000015
【図６】
2019047331.tif 000016
【図７】
2019047331.tif 000017
【図８】
2019047331.tif 000018
【図９】
2019047331.tif 000019
【図１０】
2019047331.tif 000020
【図１１】
2019047331.tif 000021
【図１２】
2019047331.tif 000022
【図１３】
2019047331.tif 000023
【図１４】
2019047331.tif 000024