以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に際して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
<1.データ記録システムの構成>
はじめに、データ記録システムの全体構成について説明する。図1は、データ記録システムのシステム構成の一例を示す図である。
図1に示すように、データ記録システム100は、データ生成装置110と、データ記憶装置120とを有する。第1の実施形態において、データ生成装置110と、データ記憶装置120とは、ネットワークを介して通信可能に接続されている。
データ生成装置110は、時系列のデータを生成する装置である。第1の実施形態において、データ生成装置110は、以下、動画像データを生成する撮像装置として説明する。撮像装置110には、秘密分散データ生成プログラムがインストールされており、当該プログラムが実行されることで、撮像装置110は、秘密分散データ生成部111として機能する。
秘密分散データ生成部111は、生成された動画像データに、秘密分散プロトコルに基づくパラメータ情報を対応付けることで秘密分散データを生成し、データ記憶装置120に向けてストリーミング送信する。また、秘密分散データ生成部111は、データ記憶装置120が秘密分散データについて署名検証を行う際に用いる秘密情報に署名を付加し、署名を付加した秘密情報を署名値としてデータ記憶装置120に送信する。
データ記憶装置120は、データ生成装置110より送信される各種データを記憶する装置である。本実施形態において、データ記憶装置120は、以下、秘密分散データ及び署名値を記憶するサーバ装置として説明する。サーバ装置120には、データ検証プログラムがインストールされており、当該プログラムが実行されることで、サーバ装置120は、データ検証部121として機能する。
データ検証部121は、撮像装置110より送信された秘密分散データ及び署名値を受信し、データ格納部122に格納する。また、データ検証部121は、データ格納部122に格納した秘密分散データに基づいて算出した秘密情報と、データ格納部122に格納した署名値に基づいて算出した秘密情報とを用いて署名検証を行う。
なお、撮像装置110よりストリーミング送信される秘密分散データのうち、いくつかの秘密分散データが欠損した場合であっても、データ検証部121では、署名検証を行うことができる。秘密分散プロトコルを用いて生成された秘密分散データは、署名検証でのデータ欠損に対する耐性が高いためである。
<2.秘密分散プロトコルの説明>
次に、署名検証でのデータ欠損に対する耐性が高い秘密分散データを生成する際に用いられる秘密分散プロトコルについて、図2及び図3を用いて簡単に説明する。図2及び図3は、秘密分散のプロトコルを説明するための図である。
(1)概要
一般に、(k−1)次の多項式は、k個の独立な解が存在すれば一意に定めることができ、(k−1)個以下の解では、(k−1)次の多項式を一意に定めることができない。図2(a)は、独立な2個の解((x1,y1)、(x2,y2))に基づいて、1次の多項式(y=α1x+α0)を一意に定めた様子を示している。また、図2(b)は、独立な3個の解((x1,y1)、(x2,y2)、(x3,y3))に基づいて、2次の多項式(y=α2x2+α1x+α0)を一意に定めた様子を示している。
更に、図3(a)は、独立なk個の解((x1,y1)、(x2,y2)、・・・(xk,yk))に基づいて、(k−1)次の多項式(y=αk−1xk−1+αk−2xk−2+・・・α1x+α0)を一意に定めた様子を示している。
秘密分散プロトコルは、多項式とその解との間のこのような関係を利用したものである。図3(b)に示すように、秘密分散プロトコルを用いる場合、秘密情報を生成するデータ生成者は、生成した秘密情報を(k−1)次の多項式の0次の項(α0)に埋め込むとともに、(k−1)次の多項式の複数の解を生成して、それぞれの解を分けて保持する。これにより、仮に、複数の解のうちの一部の解が漏えいしたとしても、秘密情報(α0)が復元されることはない。つまり、秘密分散プロトコルは、漏えいに対する耐性が高いという特性を有する。
加えて、図3(b)に示すように、秘密分散プロトコルによれば、データ利用者は、データ生成者より複数の解のうちのk個の解を取得すれば、秘密情報(α0)を復元することができる。k個の解を用いて(k−1)次の多項式を一意に定めることができるからである。つまり、秘密分散プロトコルは、データ欠損に対する耐性が高いという特性も有している。
第1の実施形態は、このうち、データ欠損に対する耐性が高いという特性に着目して、時系列のデータに秘密分散プロトコルを適用したものである。
(2)秘密分散プロトコルの時系列のデータへの適用
第1の実施形態における撮像装置110では、時系列のデータである動画像データに秘密分散プロトコルを適用することで、署名検証でのデータ欠損に対する耐性の向上を実現している。図3(c)を参照しながら具体的に説明する。
撮像装置110では、まず、時系列のデータである動画像データからn個(nは2以上の整数)の単位データを取得する。ここで、「単位データ」とは、動画像データを構成する所定単位のデータを指す。所定単位のデータとは、例えば、撮像装置110がフレーム単位で処理を実行する場合には、それぞれのフレームが所定単位のデータとなる。また、例えば、撮像装置110がパケット単位で処理を実行する場合には、それぞれのパケットが所定単位のデータとなる。なお、以下では、n個の単位データのうち、i番目の単位データを"Di"と表す。
続いて、撮像装置110では、n個の単位データ(Di)に基づいて、(k−1)次の多項式のn個の解を生成する。このとき、(k−1)次の多項式のk個(kは1以上でn未満の整数)のパラメータ(αk−1、αk−2、・・・α0)には、乱数値を用いる。なお、本実施形態では、変数xにn個の単位データ(Di)を代入するにあたり、ハッシュ値を用いるものとし、Hash(Di)を代入することで算出されるn個の変数yの値のうち、i番目の値を、パラメータ情報"Wi"と表す。Wiは、下式に基づいて算出することができる。
この結果、撮像装置110では、n個の単位データから、(k−1)次の多項式(y=α
k−1x
k−1+α
k−2x
k−2+・・・α
1x+α
0)のn個の解(D
i,W
i)を算出することができる。撮像装置110では、算出したn個の解(D
i,W
i)を秘密分散データとして、サーバ装置120に送信する。つまり、秘密分散データは、単位データと、該単位データに対応付けられたパラメータ情報との組である。
サーバ装置120では、秘密分散データ(Di,Wi)のうちの一部が欠損した場合であっても、秘密分散データがk個集まれば、パラメータ(αk−1、αk−2、・・・α0)が算出可能である。
ここで、k個の秘密分散データが改竄されなかったとする。この場合、サーバ装置120でk個の秘密分散データに基づいて算出されるパラメータ(αk−1、αk−2、・・・α0)は、撮像装置110がn個の解を生成する際に用いた(k−1)次の多項式のパラメータ(αk−1、αk−2、・・・α0)と一致するはずである。一方、k個の秘密分散データが改竄された場合には、これらは一致しない。つまり、これらが一致するか否かを判定することで、署名検証を行うことができ、一致した場合(署名検証に成功した場合)に、秘密分散データの真正性(秘密分散データが改竄されていないこと)を保証することができる。
なお、本実施形態において、サーバ装置120は、このうちの1つのパラメータ(α0)が一致することで、秘密分散データ(Di,Wi)の署名検証が成功したと判定する。つまり、本実施形態においては、パラメータ(α0)が秘密情報となる(秘密情報は、秘密分散データがk個集まることで算出可能となる情報と定義することができる)。なお、サーバ装置120において署名検証の成否を判定できるようにするために、撮像装置110では、下式に示すようなSignアルゴリズムを用いて秘密情報(α0)に署名を付加することで署名値(S)を算出し、サーバ装置120に送信する。
なお、式2において、sk
camとは、撮像装置110において生成される署名鍵を指す。
署名値(S)を受信したサーバ装置120では、Signアルゴリズムに対応するVrfyアルゴリズムを用いて、検証鍵に基づき秘密情報(α0)を算出する。また、サーバ装置120では、k個の秘密分散データから算出した秘密情報(α0)と、署名値(S)から算出した秘密情報(α0)とが一致するか否かを判定する。そして、秘密情報が一致していた場合、サーバ装置120では、署名検証に成功したと判定し、秘密情報が一致していなかった場合、サーバ装置120では、署名検証に失敗したと判定する。
なお、以下の説明においては、撮像装置110より送信されるn個の秘密分散データには、それぞれ、単位データ(Di)とパラメータ情報(Wi)とを第1の組として対応付けるための情報が付加されているものとする。また、撮像装置110より送信される署名値(S)には、n個の秘密分散データと対応付けるための情報が付加されているものとする。
<3.データ記録システムのハードウェア構成>
次に、データ記録システム100を構成する、撮像装置110及びサーバ装置120のハードウェア構成について説明する。図4は、第1の実施形態における撮像装置及びサーバ装置のハードウェア構成を示す図である。
図4(a)に示すように、撮像装置110は、撮像センサ401、CPU(Central Processing Unit)402を有する。また、撮像装置110は、ROM(Read Only Memory)403、RAM(Random Access Memory)404、I/F(Interface)405を有する。なお、撮像装置110を構成する各ハードウェアは、バス406を介して相互に接続されている。
撮像センサ401は、受光した光を電気信号に変換し、動画像データを生成する。CPU402は、ROM403に格納された各種プログラム(例えば、秘密分散データ生成プログラム)を実行するコンピュータである。
ROM403は、CPU402により実行される各種プログラムを格納したり、CPU402が各種プログラムを実行する際に用いるその他のプログラム、データを格納する。RAM404は、CPU402が各種プログラムを実行する際のワークエリアを提供する。
I/F405は、ネットワークに接続され、該ネットワークを介して、サーバ装置120との間でデータの送受信を行う。
図4(b)に示すように、サーバ装置120は、CPU411、ROM412、RAM413、記憶装置414、I/F415を有する。サーバ装置120を構成する各ハードウェアは、バス416を介して相互に接続されている。
なお、サーバ装置120のハードウェア構成は、撮像装置110のハードウェア構成と概ね同じであるため、ここでは相違点のみ説明する。撮像装置110のハードウェア構成との相違点は、撮像センサ401を有していない点と、記憶装置414を有している点である。
記憶装置414は、CPU411により実行されるプログラムとして、データ検証プログラムを格納する。サーバ装置120の場合、データ検証プログラムは、記憶装置414に格納され、ROM412には、CPU411がデータ検証プログラムを実行する際に用いるその他のプログラムが格納されているものとする。なお、記憶装置414は、データ格納部122を実現する。
<4.撮像装置の機能構成>
次に、撮像装置110にて実現される秘密分散データ生成部111の詳細な機能構成について説明する。図5は、第1の実施形態における撮像装置の機能構成を示す図である。
図5に示すように、秘密分散データ生成部111は、データ入力部501、圧縮部502、データバッファ部503、データカウンタ部504、署名パラメータ生成部505を有する。また、秘密分散データ生成部111は、ハッシュ生成部506、パラメータ情報生成部507、ストリームパケット生成部508、署名部509、データ送信部510を有する。
データ入力部501は、撮像センサ401により生成された動画像データを取得する。圧縮部502は、取得した動画像データを圧縮し、単位データを生成する。圧縮部502では、MPEGやH.264等の任意の圧縮形式により動画像データを圧縮し、単位データを生成する。
データバッファ部503は、圧縮部502において生成された単位データを一時的に蓄積する。データカウンタ部504は、データバッファ部503に蓄積される単位データの数をカウントし、所定数(n)に到達した場合に、署名パラメータ生成部505及び署名部509に通知する。
署名パラメータ生成部505は、乱数生成器を有し、データカウンタ部504より、所定数(n)がカウントされた旨の通知を受けると、乱数生成器により生成されたk個の乱数値をパラメータ(αk−1、αk−2、・・・α0)として取得する。また、署名パラメータ生成部505は、取得したパラメータ(αk−1、αk−2、・・・α0)をパラメータ情報生成部507に通知する。更に、署名パラメータ生成部505は、パラメータ(α0)を秘密情報として署名部509に通知する。
ハッシュ生成部506は、データバッファ部503に蓄積された単位データから、単位データ(Di)を順次取得し、ハッシュ値(Hash(Di))を算出する。なお、ハッシュ生成部506で単位データ(Di)のハッシュ値を算出するのは、撮像装置110における処理負荷を低減させるためである。
パラメータ情報生成部507は、算出手段の一例であり、ハッシュ生成部506において算出されたハッシュ値(Hash(Di))と、署名パラメータ生成部505において取得されたパラメータ(αk−1、αk−2、・・・α0)とを取得する。また、パラメータ情報生成部507は、取得したハッシュ値とパラメータとに基づき、式1を用いて、パラメータ情報(Wi)を算出する。
ストリームパケット生成部508は、出力手段の一例であり、単位データ(Di)とパラメータ情報(Wi)とを対応付けることで、秘密分散データを取得する。ストリームパケット生成部508は、取得した秘密分散データ(Di,Wi)をパケット化して出力する。なお、秘密分散データをパケット化する際のパケット形式は送信形式によって決まり、送信形式がネットワークインタフェース形式の場合には、パケット形式はRTSP形式またはUDP形式となる。また、送信形式がUSBインタフェース形式の場合には、パケット形式はアイソクロナス形式となる。
署名部509は、第1の署名手段の一例であり、データカウンタ部504より、所定数(n)がカウントされた旨の通知を受けると、署名パラメータ生成部505より出力された秘密情報(α0)を用いて、署名値(S)を算出する。なお、本実施形態において、署名値(S)の算出には、Signアルゴリズムを用いるものとして説明するが、署名値(S)の算出に用いる署名アルゴリズムは、Signアルゴリズムに限定されない。例えば、RSAアルゴリズム、RSASSA−PSSアルゴリズムを用いても、あるいはElGamalアルゴリズムを用いてもよい。
データ送信部510は、第1の送信手段の一例であり、ストリームパケット生成部508においてパケット化された秘密分散データ(Di,Wi)と、署名パラメータ生成部505において算出された署名値(S)とを送信する。なお、データ送信部510では、パケット化された秘密分散データ(Di,Wi)を、コネクションレス方式でストリーミング送信する。また、署名値(S)を、コネクション方式で送信する。
図6は、第1の実施形態における撮像装置の各部(データバッファ部503、ハッシュ生成部506、パラメータ情報生成部507、署名部509)の動作を模式的に示した図である。図6の例では、所定数nを"10"としている。
図6に示すように、データバッファ部503に蓄積された単位データ(D1)をハッシュ生成部506が取得すると、ハッシュ生成部506では、ハッシュ値(Hash(D1))を算出する。
また、パラメータ情報生成部507は、ハッシュ生成部506により算出されたハッシュ値(Hash(D1))と、署名パラメータ生成部505より出力されたパラメータ(α9、α8、・・・α0)とを取得する。更に、パラメータ情報生成部507は、ハッシュ値(Hash(D1))とパラメータ(α9、α8、・・・α0)とに基づき、パラメータ情報(W1)を算出し、出力する。
同様に、データバッファ部503に蓄積された他の単位データ(D2、D3、・・・D10)についてもそれぞれ処理が行われることで、パラメータ情報生成部507からは、パラメータ情報(W2、W3、・・・W10)が出力される。
データバッファ部503に蓄積された単位データ(D1、D2、・・・D10)と、パラメータ情報生成部507から出力されたパラメータ情報(W1、W2、・・・W10)とは、ストリームパケット生成部508にて対応付けられる。これにより、ストリームパケット生成部508では、秘密分散データ((D1,W1)、(D2,W2)、・・・(D10,W10))を取得する。
一方、署名部509は、署名パラメータ生成部505より出力された秘密情報(α0)を用いて署名値(S)を算出する。
このように、撮像装置110の各部が動作することで、生成された動画像データに基づく秘密分散データ及び署名値を出力することができる。
<5.秘密分散データ生成部による処理>
次に、秘密分散データ生成部111による秘密分散データ生成処理の流れについて説明する。図7は、秘密分散データ生成処理の流れを示すフローチャートである。撮像センサ401による動画像データの生成が開始されると、秘密分散データ生成部111では、図7に示すフローチャートを実行する。
ステップS701において、データ入力部501は、撮像センサ401により生成された動画像データを取得する。また、圧縮部502は、取得された動画像データを圧縮して単位データを生成し、データバッファ部503に蓄積する。
ステップS702において、ハッシュ生成部506は、データバッファ部503より単位データ(Di)を取得し、ハッシュ値(Hash(Di))を算出する。
ステップS703において、データカウンタ部504は、データバッファ部503に所定数(n)の単位データが蓄積されたか否かを判定する。ステップS703において、所定数(n)の単位データが蓄積されていない場合には、ハッシュ生成部506が所定数(n)の単位データについてハッシュ値を算出していないと判定し、ステップS701に戻る。一方、ステップS703において、所定数(n)の単位データが蓄積された場合には、ハッシュ生成部506が所定数(n)の単位データについてハッシュ値を算出したと判定し、ステップS704に進む。
ステップS704において、署名パラメータ生成部505は、乱数生成器により生成されたk個の乱数値をパラメータ(αk−1、αk−2、・・・α0)として取得する。
ステップS705において、パラメータ情報生成部507は、所定数(n)のハッシュ値(Hash(Di))と、k個のパラメータ(αk−1、αk−2、・・・α0)とを取得する。また、パラメータ情報生成部507は、取得した所定数(n)のハッシュ値と、k個のパラメータとを用いて、n個のパラメータ情報(Wi)を算出する。
ステップS706において、署名部509は、署名パラメータ生成部505において取得されたパラメータ(α0)を秘密情報として取得し、取得した秘密情報(α0)に署名を付加する。これにより、署名部509では、取得した秘密情報(α0)に基づく署名値(S)を算出して出力する。
ステップS707において、ストリームパケット生成部508は、データバッファ部503に蓄積された単位データ(Di)とパラメータ情報生成部507より出力されたパラメータ情報(Wi)とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部508は、取得した秘密分散データをパケット化して出力する。更に、データ送信部510は、パラメータ情報生成部507より出力された秘密分散データを、ネットワークを介してサーバ装置120にストリーミング送信する。
ステップS708において、データ送信部510は、署名部509より出力された署名値(S)を、ネットワークを介してサーバ装置120に送信する。
ステップS709において、データ入力部501は、秘密分散データ生成処理を終了するか否かを判定する。撮像センサ401により生成された動画像データの入力が継続している場合には、秘密分散データ生成処理を終了せずに、ステップS701に戻る。一方、動画像データの入力が停止したと判定した場合には、秘密分散データ生成処理を終了する。
<6.サーバ装置の機能構成>
次に、サーバ装置120にて実現されるデータ検証部121の詳細な機能構成について説明する。図8は、サーバ装置の機能構成を示す図である。
図8に示すように、データ検証部121は、データ受信部801、格納処理部802、署名値演算部803、署名値検証部804を有する。
データ受信部801は、受信手段の一例であり、撮像装置110より送信された、秘密分散データ(単位データ(Di)と、該単位データに対応付けられたパラメータ情報(Wi)との組)と、署名値(S)とを受信する。
格納処理部802は、データ受信部801において受信された秘密分散データと署名値とをデータ格納部122に格納する。
署名値演算部803は、第1の改竄判定手段の一例である。署名値演算部803は、署名検証の成否として、データ格納部122に秘密分散データがk個以上格納されたか否かを判定し、k個未満であると判定した場合には、署名検証に失敗したと判定する。
また、署名値演算部803は、秘密分散データがk個以上格納されたと判定した場合には、データ格納部122よりk個の秘密分散データを読み出す。署名値演算部803は、読み出したk個の秘密分散データに基づいて、下式を用いて秘密情報(α0)を算出する。
署名値検証部804は、データ格納部122に格納された署名値(S)を読み出し、vrfyアルゴリズムを用いて、検証鍵vk
camに基づき秘密情報(α
0)を算出する。
なお、署名値検証部804は、第2の改竄判定手段の一例である。署名値検証部804は、署名検証の成否として、署名値演算部803において算出された秘密情報(α
0)と、署名値(S)に基づいてvrfyアルゴリズムを用いて算出した秘密情報(α
0)とを比較する。比較の結果、両者が一致していれば、署名値検証部804では、署名検証に成功した(秘密分散データが改竄されていない)と判定する。一方、両者が一致していなければ、署名値検証部804では、署名検証に失敗した(秘密分散データが改竄されている)と判定する。
なお、署名値演算部803及び署名値検証部804における署名検証の判定結果は、例えば、データ格納部122に格納されてもよい。これにより、サーバ装置120では、署名検証に成功したと判定された秘密分散データに含まれる単位データのみを、外部の端末にストリーミング送信することができる。この結果、外部の端末(例えば、ネットワークを介して接続される情報端末)では、真正性が保証された動画像データのみを再生することができる。
<7.データ検証部による処理>
次に、データ検証部121によるデータ検証処理の流れについて説明する。図9は、データ検証処理の流れを示すフローチャートである。サーバ装置120が、撮像装置110と通信可能に接続されることで、図9に示すフローチャートが実行される。
ステップS901において、データ受信部801は、撮像装置110より送信された秘密分散データと署名値とを受信する。また、格納処理部802は、データ受信部801が受信した秘密分散データと署名値とをデータ格納部122に格納する。
ステップS902において、データ受信部801は、所定時間が経過したか否かを判定する。ステップS902において、所定時間が経過していないと判定した場合には、所定時間が経過するまで待機する。
一方、ステップS902において、所定時間が経過したと判定した場合には、ステップS903に進む。ステップS903において、署名値演算部803は、データ格納部122にk個以上の秘密分散データが格納されたか否かを判定する。
ステップS903において、k個以上の秘密分散データが格納されていないと判定した場合には、ステップS907に進み、署名値演算部803は、署名検証に失敗したと判定する。
一方、ステップS903において、k個以上の秘密分散データが格納されたと判定した場合には、ステップS904に進む。ステップS904において、署名値演算部803は、データ格納部122より、k個の秘密分散データを読み出し、式3を用いて秘密情報(α0)を算出する。
ステップS905において、署名値検証部804は、データ格納部122に格納された署名値(S)を読み出し、vrfyアルゴリズムを用いて、検証鍵vkcamに基づき秘密情報(α0)を算出する。
ステップS906において、署名値検証部804は、署名値演算部803において算出された秘密情報(α0)と、署名値(S)に基づいてvrfyアルゴリズムを用いて算出した秘密情報(α0)とを比較する。比較の結果、両者が一致していなければ、ステップS907に進み、署名検証に失敗した(秘密分散データが改竄されている)と判定する。
一方、ステップS906における比較の結果、両者が一致していれば、ステップS908に進み、署名検証に成功した(秘密分散データが改竄されていない)と判定する。
ステップS909において、データ受信部801は、撮像装置110との通信が継続しているか否かを判定し、通信が継続していると判定した場合には、ステップS901に戻る。一方、通信が切断したと判定した場合には、署名値演算部803または署名値検証部804が、データ格納部122に既に格納されている秘密分散データのうち、未処理の秘密分散データについて署名検証を行ったうえで、データ検証処理を終了する。
<8.適用例>
次に、データ記録システム100の適用例について説明する。図10は、データ記録システムの適用例を示す図である。図10の例は、第1の実施形態における撮像装置110を、原子力発電所等の重要施設に設置し、サーバ装置120を、複数の企業(企業A〜企業C)に設置した様子を示している。
原子力発電所等の重要施設の場合、24時間稼働するため、当該施設に設置される撮像装置は、24時間連続して、真正性が保証される動画像データをストリーミング送信する必要がある。
これに対して、第1の実施形態における撮像装置110の場合、撮像装置110における処理負荷が低いため、上記のようなニーズにも対応することができる。第1の実施形態における撮像装置110の場合、単位データに署名を付加するわけではなく、秘密情報(α0)に署名を付加するため、署名の付加に要する処理負荷が低いからである。更に、第1の実施形態における撮像装置110の場合、単位データをハッシュ化してパラメータ情報を生成するため、単位データの処理に要する処理負荷も低いからである。
図10に示すように、秘密分散データ及び署名値が送信されることで、データ欠損が発生した場合でも、各企業では、署名検証を行うことができ、動画像データについて真正性を保証することができる。また、複数の企業に同報送信されるため、特定の企業が、真正性が保証された動画像データを隠蔽するといった事態を回避することができる。
<9.まとめ>
以上の説明から明らかなように、本実施形態に係るデータ記録システムでは、
・撮像装置が、生成した動画像データから、n個の単位データ(Di)を順次取得し、取得した単位データ(Di)に基づいて、k個(1≦k<n)の乱数値が含まれる(k−1)次の多項式を満たすパラメータ情報(Wi)を算出する。
・撮像装置が、取得した単位データ(Di)とパラメータ情報(Wi)とを対応付けたn個の秘密分散データを、サーバ装置に送信する。
・撮像装置が、秘密分散データがk個集まることで算出可能となる秘密情報に、署名を付加することで署名値(S)を算出し、算出した署名値をサーバ装置に送信する。
これにより、サーバ装置では、撮像装置が送信したn個の秘密分散データのうち、k個の秘密分散データを受信すれば、当該k個の秘密分散データに基づいて秘密情報を算出することができる((n−k)個のデータ欠損が許容される)。そして、撮像装置が送信した署名値から算出される秘密情報と比較することで、署名検証を行い、秘密分散データの真正性を保証することができる。つまり、サーバ装置では、撮像装置が送信した秘密分散データの一部が欠損した場合であっても、署名検証を行い、秘密分散データの真正性を保証することが可能となる。
この結果、第1の実施形態によれば、署名検証でのデータ欠損に対する耐性を向上させることができる。
[第2の実施形態]
上記第1の実施形態では、秘密分散データ生成部111の各部が、予め定められた動作を行うものとして説明した。しかしながら、秘密分散データ生成部111の各部は、外部から入力された条件に応じて動作を変更するように構成してもよい。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
図11は、第2の実施形態における撮像装置の機能構成を示す図である。図11に示す撮像装置110の機能構成の各構成要素のうち、図5に示した撮像装置110の機能構成の各構成要素と同様の構成要素については、同一の符号を付し、ここでは説明を省略する。
図5との相違点は、秘密分散データ生成部1100が、設定パラメータ入力部1101と設定パラメータ記憶部1102とを有する点である。
設定パラメータ入力部1101は、設定手段の一例であり、設定パラメータの入力を受け付ける。設定パラメータとは、秘密分散データ生成部1100の各部が動作する際の条件を規定したものである。圧縮部502、データバッファ部503、データカウンタ部504、ハッシュ生成部506、ストリームパケット生成部508、署名部509の各部は、設定パラメータ入力部1101において入力された設定パラメータに応じた動作を行う。
設定パラメータ記憶部1102は、設定パラメータ入力部1101が入力を受け付けた設定パラメータを設定パラメータ情報として保持する。
図12は、設定パラメータ記憶部に保持される設定パラメータ情報の一例を示す図である。図12に示すように、設定パラメータ情報1200には、情報の項目として、"設定パラメータ種類"と"設定内容"とが含まれる。
"設定パラメータ種類"には、設定パラメータの種類が保持される。設定パラメータ情報1200の場合、"設定パラメータ種類"には、「バッファリング情報」、「ストリームパケット生成情報」、「圧縮形式情報」、「ハッシュ情報」、「署名情報」、「閾値情報」が保持されている。
"設定内容"には、設定パラメータの種類に対応する設定パラメータの内容が保持される。設定パラメータ情報1200の場合、「バッファリング情報」に対応して、「バッファ単位に関する情報」(パケットサイズ、フレーム数等)が保持されている。
また、設定パラメータ情報1200の場合、「ストリームパケット生成情報」に対応して、「プロトコルに関する情報」(RTP(Real-time Transport Protocol)、UDP(User Datagram Protocol)等)が保持されている。また、設定パラメータ情報1200の場合、「圧縮形式情報」に対応して、「圧縮形式に関する情報」(H.264、MPEG(Moving Picture Experts Group)等)が保持されている。また、設定パラメータ情報1200の場合、「ハッシュ情報」に対応して、「ハッシュアルゴリズムに関する情報」(SHA(Secure Hash Algorithm)1、SHA256等)が保持されている。
また、設定パラメータ情報1200の場合、「署名情報」に対応して、「署名アルゴリズムに関する情報」(RSA(Rivest Shamir Adleman)アルゴリズム、ElGamalアルゴリズム等)が保持されている。更に、設定パラメータ情報1200の場合、「閾値情報」に対応して、「閾値に関する情報」(n、k等)が保持されている。
秘密分散データ生成部1100の各部は、それぞれ、対応する「設定パラメータ種類」を識別し、識別した「設定パラメータ種類」に対応する「設定内容」を読み出して、「設定内容」に応じた動作を行う。
このように、第2の実施形態におけるデータ記録システムによれば、秘密分散データ生成部1100の各部を、外部から入力した設定パラメータに基づいて動作させることができる。
[第3の実施形態]
上記第1及び第2の実施形態において撮像装置110は、秘密分散データ(Di,Wi)をパケット化し、ネットワークを介して外部のサーバ装置120に対してストリーミング送信する構成とした。しかしながら、秘密分散データは、必ずしもネットワークを介して外部のサーバ装置120にストリーミング送信する必要はなく、撮像装置110の内部に補助記憶装置を設け、当該補助記憶装置に格納するようにしてもよい。以下、第3の実施形態について、第1の実施形態との相違点を中心に説明する。
<1.撮像装置のハードウェア構成>
図13は、第3の実施形態における撮像装置のハードウェア構成を示す図である。図4(a)に示した撮像装置110のハードウェア構成との相違点は、図13の撮像装置1300の場合、補助記憶装置1301を有している点である。補助記憶装置1301は、格納手段の一例であり、所定期間分の秘密分散データ及び署名値を蓄積する容量を有しているものとする。また、補助記憶装置1301に蓄積されたデータは、I/F405を介して撮像装置1300の外部から読み出すことができるものとする。なお、補助記憶装置1301は、SD(Secure Digital)カードのように、取り出し可能な記録媒体であってもよい。
<2.撮像装置の機能構成>
図14は、第3の実施形態における撮像装置の機能構成を示す図である。図5に示した機能構成との相違点は、図14の秘密分散データ生成部1400の場合、ストリームパケット生成部508の代わりにデータ結合部1401を有する点、及び、記憶制御部1402を有する点である。
データ結合部1401は、出力手段の一例であり、単位データ(Di)とパラメータ情報(Wi)とを対応付けることで秘密分散データ(Di,Wi)を取得し、記憶制御部1402に出力する。記憶制御部1402は、データ結合部1401より出力された秘密分散データ(Di,Wi)と、署名部509より出力された署名値(S)とを、補助記憶装置1301に格納する。また、記憶制御部1402は、データ送信部510を介して、撮像装置1300の外部から読み出し要求を受信した場合に、補助記憶装置1301に格納されている秘密分散データ(Di,Wi)と署名値(S)とを読み出す。更に、データ送信部510は、記憶制御部1402により読み出された秘密分散データ(Di,Wi)と署名値(S)とを、データ送信部510を介して外部に出力する。
<3.適用例>
図15は、第3の実施形態における撮像装置の適用例を示す図である。図15の例は、撮像装置1300をドライブレコーダとして、車両1500内に設置した場合を示している。図15において、撮像装置1300は、生成した秘密分散データ及び署名値を、撮像装置1300内部の補助記憶装置1301に記録する。これにより、例えば、車両1500に事故等が発生した場合に、事故等が発生した際の秘密分散データ及び署名値を取り出すとともに、秘密分散データについて署名検証を行うことができる。また、このとき取り出した秘密分散データにデータ欠損が発生していた場合でも、真正性を保証することができる。
なお、第3の実施形態では、撮像装置110の内部に補助記憶装置1301を設けるものとして説明したが、撮像装置110に外付けの補助記憶装置を設け、秘密分散データ(Di,Wi)を当該補助記憶装置に格納するように構成してもよい。
[第4の実施形態]
上記第1乃至第3の実施形態において、秘密分散データ生成部は、1つの単位データ(Di)に対して、1つのパラメータ情報(Wi)を対応付ける構成とした。しかしながら、単位データ(Di)の中には重要度の高い単位データも含まれており、このような重要度の高い単位データについては、データ欠損に対する耐性をより向上させる方が望ましい。そこで、第4の実施形態では、単位データ(Di)の重要度に応じて、対応付けるパラメータ情報(Wi)の数を変更し、重要度の高い単位データ(Di)には、より多くのパラメータ情報(Wi)を対応付けることで、データ欠損に対する耐性を向上させる。以下、第4の実施形態について、第1の実施形態との相違点を中心に説明する。
<1.撮像装置の機能構成>
図16は、第4の実施形態における撮像装置の機能構成を示す図である。図16に示す撮像装置110の機能構成の各構成要素のうち、図5に示した撮像装置110の機能構成の各構成要素と同様の構成要素については、同一の符号を付し、ここでは説明を省略する。
図5との相違点は、図16の秘密分散データ生成部1600の場合、重要度決定部1601を有する点、ハッシュ生成部1602及びパラメータ情報生成部1603の機能が、図5のハッシュ生成部506及びパラメータ情報生成部507の機能とは異なる点である。
重要度決定部1601は、決定手段の一例であり、単位データ(Di)に対する重要度を決定する。なお、本実施形態において単位データ(Di)の重要度は、"pi"と表す。重要度決定部1601は、データバッファ部503に蓄積された単位データから、単位データ(Di)を順次取得し、決定したそれぞれの重要度(pi)とともにハッシュ生成部1602に通知する。
ハッシュ生成部1602は、重要度決定部1601より通知された単位データ(Di)について、下式に基づいてハッシュ値を算出する。
ただし、j=1〜p
i
ハッシュ生成部1602では、生成したハッシュ値(Hash(D
ij))をパラメータ情報生成部1603に通知する。
パラメータ情報生成部1603は、ハッシュ生成部1602において算出されたハッシュ値(Hash(Dij))と、署名パラメータ生成部505において取得されたパラメータ(αk−1、αk−2、・・・α0)とを取得する。また、パラメータ情報生成部1603は、取得したハッシュ値とパラメータとに基づき、下式を用いて、パラメータ情報(Wi_j)を算出する。
図17は、第4の実施形態における撮像装置の各部(データバッファ部503、重要度決定部1601、ハッシュ生成部1602、パラメータ情報生成部1603、署名部509)の動作を模式的に示した図である。図17の例では、所定数nを"10"としている。
図17に示すように、データバッファ部503に蓄積された単位データ(D1)を重要度決定部1601が取得すると、重要度決定部1601は、単位データ(D1)の重要度(p1)を決定する(ここでは、p1=3と決定したとする)。
ハッシュ生成部1602は、重要度決定部1601より単位データ(D1)と重要度(p1)とを取得すると、ハッシュ値(Hash(Dij))を算出する。p1=3の場合、ハッシュ生成部1602では、ハッシュ値として、Hash(D1)1、Hash(D1)2、Hash(D1)3を算出する。
パラメータ情報生成部1603は、ハッシュ生成部1602により算出されたハッシュ値(Hash(D1)1、Hash(D1)2、Hash(D1)3)と、パラメータ(α9、α8、・・・α0)に基づき、パラメータ情報を算出する。
具体的には、パラメータ情報生成部1603は、パラメータ情報として、W1_1、W1_2、W1_3を算出する。
同様に、データバッファ部503に蓄積された他の単位データ(D2、D3、・・・D10)についてもそれぞれ処理が行われることで、パラメータ情報生成部1603からは、パラメータ情報(W2_1、W2_2、・・・W10_1、・・・W10_5)が出力される。
データバッファ部503に蓄積された単位データ(D1、D2、・・・D10)と、パラメータ情報生成部507から出力されたパラメータ情報(W2_1、W2_2、・・・W10_5)とは、ストリームパケット生成部508にて対応付けられる。これにより、ストリームパケット生成部508では、秘密分散データ((D1,W1_1)、(D1,W1_2)、・・・(D10,W10_5))を取得する。
このように、本実施形態によれば、重要度の高い単位データ(Di)ほど、多くの秘密分散データが生成されることになる。この結果、重要度の高い単位データほど、データ欠損に対する耐性を向上させることができる。
<2.秘密分散データ生成部による処理>
次に、秘密分散データ生成部1600による秘密分散データ生成処理の流れについて説明する。図18は、秘密分散データ生成処理の流れを示すフローチャートである。なお、ここでは、図7に示した秘密分散データ生成処理との相違点を中心に説明する。図7に示した秘密分散データ生成処理との相違点は、ステップS1801〜S1804である。
ステップS1801において、重要度決定部1601は、単位データ(Di)の重要度(pi)を決定する。ステップS1802において、ハッシュ生成部1602は、重要度に応じた数のハッシュ値(Hash(Dij))を算出する。
ステップS1803において、パラメータ情報生成部1603は、重要度に応じた数のパラメータ情報(Wi_j)を算出する。ステップS1804において、ストリームパケット生成部508は、データバッファ部503に蓄積された単位データ(Di)とパラメータ情報生成部1603より出力されたパラメータ情報(Wi_j)とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部508は、取得した秘密分散データをパケット化して出力する。更に、データ送信部510は、ストリームパケット生成部508より出力された秘密分散データを、ネットワークを介してサーバ装置120にストリーミング送信する。
<3.データ検証部による処理>
次に、本実施形態におけるサーバ装置120のデータ検証部121によるデータ検証処理の流れについて説明する。図19は、データ検証処理の流れを示すフローチャートである。なお、ここでは、図9に示したデータ検証処理との相違点を中心に説明する。図9に示したデータ検証処理との相違点は、ステップS1901、S1902である。
ステップS1901において、署名値演算部803は、単位データ(Di)に対応付けられたパラメータ情報(Wi_j)の数が、データ格納部122に所定数以上あるか否かを判定する。
ステップS1901において、所定数未満であると判定した場合には、ステップS907に進み、署名検証に失敗したと判定する。
一方、ステップS1901において、所定数以上あると判定した場合には、ステップS903に進む。
また、ステップS1902において、署名値演算部803は、データ格納部122より、k個の秘密分散データを読み出し、下式を用いて秘密情報(α0)を算出する。
このように、本実施形態におけるサーバ装置120では、秘密分散データの数に加え、それぞれの単位データ(D
i)に対応付けられたパラメータ情報(W
i_j)の数も、署名検証の成否の判定に用いる。
<4.適用例>
次に、第4の実施形態におけるデータ記録システム100の適用例について説明する。図20は、データ記録システムの適用例を示す図である。このうち、図20(a)は、撮像装置110を定点カメラとして用いた場合を示している。撮像装置110を定点カメラとして用いた場合、重要度決定部1601では、例えば、単位データ(Di)から特定物(人、車両など)が検知されたか否かに応じて、重要度を決定する。あるいは、重要度決定部1601では、単位データ(Di)と背景画像との差分を算出し、差分の大きさに応じて、重要度を決定する。あるいは、重要度決定部1601では、単位データ(Di)から動体が検知されたか否かに応じて、重要度を決定する。
図20(b)は、撮像装置110に集音マイクを付加し、監視カメラとして用いた場合を示している。撮像装置110に集音マイクを付加した場合、重要度決定部1601では、例えば、集音マイクで検出した音声に応じて、重要度を決定する。
図20(c)は、撮像装置110に加速度センサを付加し、車両のドライブレコーダとして用いた場合を示している。撮像装置110に加速度センサを付加した場合、重要度決定部1601では、例えば、加速度センサが異常な振動、衝撃を検知したか否かに応じて、重要度を決定する。
このように、第4の実施形態におけるデータ記録システムによれば、重要度の高い単位データについて、データ欠損に対する耐性をより向上させることができる。
[第5の実施形態]
上記第4の実施形態では、単位データ(Di)ごとに重要度を決定し、重要度の高い単位データほど、データ欠損に対する耐性を向上させる構成とした。これに対して、第5の実施形態では、重要度の高い単位データについては、別途、秘密分散データ及び署名値を生成する構成とする。これにより、重要度の高い単位データに基づいて生成された秘密分散データ及び署名値を区別して受信することが可能となる。この結果、重要度の高い単位データに基づいて生成された秘密分散データについて、効率的に署名検証を行うことができるようになる。以下、第5の実施形態について、第4の実施形態との相違点を中心に説明する。
図21及び図22は、秘密分散データ生成処理の流れを示すフローチャートである。なお、図21に示す秘密分散データ生成処理のフローチャートは、ステップS2101を除き、図18に示すフローチャートと同じである。したがって、ステップS2101以外の処理についての説明は省略する。
ステップS2101において、ハッシュ生成部1602は、重要度決定部1601において決定された重要度(pi)が所定値以上であるか否かを判定する。ステップS2101において所定値未満であると判定された場合には、ステップS1802に進む。
一方、ステップS2101において所定値以上であると判定された場合には、図22に進む。
図22に示すように、重要度が所定値以上であると判定された場合、本実施形態における秘密分散データ生成部1600では、2通りの処理を並行して実行する。第1の処理は、重要度が所定値未満であると判定された場合と同じ処理である。すなわち、図22(a)のステップS2201において、ハッシュ生成部1602が重要度に応じた数のハッシュ値を算出した後、図21のステップS703に戻る。
第2の処理は、重要度が所定値以上であると判定された場合に、データバッファ部503に蓄積されている単位データについて、別途、秘密分散データを生成する処理である。
具体的には、ステップS2211において、ハッシュ生成部1602は、データバッファ部503に蓄積されている単位データそれぞれについて、重要度に応じた数のハッシュ値を算出する。
ステップS2212において、署名パラメータ生成部505は、乱数生成器により生成されたk個の乱数値(第2の乱数値)をパラメータ(αk−1、αk−2、・・・α0)として取得する。ステップS2213において、パラメータ情報生成部1603は、ステップS2211において算出したハッシュ値それぞれについて、重要度に応じた数のパラメータ情報(Wi_j)を算出する(第2のパラメータ情報)。
ステップS2214において、署名部509は、ステップS2212において署名パラメータ生成部505が取得したパラメータ(α0)を秘密情報として取得し、取得した秘密情報(α0)に署名を付加する。これにより、署名部509では、取得した秘密情報(α0)に基づく署名値(S)を算出して出力する。
ステップS2215において、ストリームパケット生成部508は、データバッファ部503に蓄積された単位データ(Di)とパラメータ情報生成部1603より出力されたパラメータ情報(Wi_j)とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部508は、取得した秘密分散データをパケット化して出力する。更に、データ送信部510は、ストリームパケット生成部508より出力された秘密分散データを、ネットワークを介してストリーミング送信する。
ステップS2216において、データ送信部510は、署名部509より出力された署名値(S)をネットワークを介して送信する。その後、図21のステップS709に戻る。
なお、ステップS2215及びステップS2216においてそれぞれ秘密分散データ及び署名値を送信する際の送信先は、ステップS1804及びステップS708においてそれぞれ秘密分散データ及び署名値を送信する際の送信先とは異なるものとする。あるいは、送信先は同じでも、サーバ装置120において両者は識別して受信されるものとする。
このように、第5の実施形態では、単位データの重要度が所定値以上であると判定された場合に、データバッファ部503に蓄積されている単位データについて、別途、秘密分散データ及び署名値を生成する。
これにより、重要度の高い単位データに基づいて生成された秘密分散データ及び署名値を、それ以外の単位データに基づいて生成された秘密分散データ及び署名値と区別することが可能となる。この結果、重要度の高い単位データに基づいて生成された秘密分散データについて、署名検証を効率的に行うことが可能になる。
[第6の実施形態]
上記第5の実施形態では、単位データの重要度が所定値以上であると判定された場合に、データバッファ部に蓄積されている単位データについて、別途、秘密分散データ及び署名値を生成する構成とした。これに対して、第6の実施形態では、単位データの重要度が所定値以上であると判定された場合に、当該単位データに基づいて生成された秘密分散データを複数回ストリーミング送信する。これにより、第6の実施形態によれば、重要度の高い単位データに基づいて生成された秘密分散データについて、データ欠損の可能性を低減させることができる。
図23は、秘密分散データ生成処理の流れを示すフローチャートである。なお、図21に示した秘密分散データ生成処理のフローチャートとの相違点は、ステップS2301〜S2305である。
ステップS2101において、重要度(pi)が所定値以上であると判定されると、本実施形態では、ステップS2301に進む。ステップS2301において、ストリームパケット生成部508は、重要度(pi)が所定値以上であると判定された単位データ(Di)に基づいて生成される秘密分散データの送信回数を複数回(例えば、2回)に設定する。
ステップS2302において、ストリームパケット生成部508は、データバッファ部503に蓄積された単位データ(Di)とパラメータ情報生成部1603より出力されたパラメータ情報(Wi_j)とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部508は、取得した秘密分散データをパケット化して出力する。
ステップS2303において、データ送信部510は、ストリームパケット生成部508より出力された秘密分散データの送信回数が、複数回に設定されているか否かを判定する。ステップS2303において、複数回に設定されていないと判定された場合には、ステップS2304に進み、秘密分散データをネットワークを介してサーバ装置120にストリーミング送信する。一方、ステップS2303において、複数回に設定されていると判定された場合には、ステップS2305に進む。
ステップS2305において、データ送信部510は、秘密分散データをネットワークを介してサーバ装置120に複数回ストリーミング送信する。
このように、第6の実施形態によれば、単位データの重要度が所定値以上であると判定された場合に、当該単位データに基づいて生成された秘密分散データを、複数回送信する。これにより、第6の実施形態によれば、重要度の高い単位データに基づいて生成された秘密分散データについて、データ欠損の可能性を低減させることができる。
[第7の実施形態]
上記第6の実施形態では、単位データの重要度が所定値以上であると判定された単位データに基づいて生成された秘密分散データを、複数回ストリーミング送信する構成とした。これに対して、第7の実施形態では、単位データの重要度が所定値以上であると判定された単位データに基づいて生成された秘密分散データを、一時的に保持する構成とする。これにより、第7の実施形態では、ストリーミング送信した後に送信先のサーバ装置120から再送要求があった場合に、再送することが可能となり、データ欠損の可能性を低減させることができるからである。
図24、図25は、秘密分散データ生成処理の流れを示すフローチャートである。なお、図21に示した秘密分散データ生成処理のフローチャートとの相違点は、ステップS2401〜S2402、ステップS2501〜S2505である。
ステップS2101において、重要度(pi)が所定値以上であると判定されると、本実施形態では、ステップS2401に進む。ステップS2401において、ストリームパケット生成部508は、重要度(pi)が所定値以上であると判定された単位データ(Di)に基づいて生成された秘密分散データを保存対象に設定する。
ステップS2402において、ストリームパケット生成部508は、データバッファ部503に蓄積された単位データ(Di)とパラメータ情報生成部1603より出力されたパラメータ情報(Wi_j)とを対応付けることで、秘密分散データを取得する。また、ストリームパケット生成部508は、取得した秘密分散データをパケット化して出力する。
図25のステップS2501において、データ送信部510は、ステップS2402において出力された秘密分散データが保存対象に設定されているか否かを判定する。ステップS2501において、保存対象に設定されていないと判定された場合には、ステップS2503に進む。一方、ステップS2501において、保存対象に設定されていると判定された場合には、ステップS2502に進む。
ステップS2502において、データ送信部510は、ステップS2402において出力された秘密分散データをRAM404に一時的に保持する。この場合、RAM404は、パケット化された秘密分散データを一時的に保持する保持手段として機能する。
ステップS2503において、データ送信部510は、ストリームパケット生成部508より出力された秘密分散データをネットワークを介してサーバ装置120にストリーミング送信する。
ステップS2504において、データ送信部510は、サーバ装置120より再送要求を受信したか否かを判定する。ステップS2504において再送要求を受信したと判定した場合には、ステップS2505に進む。
ステップS2505において、データ送信部510は、再送要求のあった秘密分散データを、RAM404より読み出して再度ストリーミング送信する。
このように、第7の実施形態では、単位データの重要度が所定値以上であると判定された単位データに基づいて生成された秘密分散データを、一時的に保持する。これにより、第7の実施形態によれば、当該秘密分散データについて、サーバ装置120より再送要求があった場合に、再送することができる。この結果、第7の実施形態によれば、重要度の高い単位データに基づいて生成された秘密分散データについて、データ欠損の可能性を低減させることができる。
[第8の実施形態]
上記第1乃至第7の実施形態では、秘密分散プロトコルを適用することで、データ欠損が発生した場合でも、秘密分散データの真正性(秘密分散データが改竄されていないこと)が保証できる構成について説明した。しかしながら、上記第1乃至第7の実施形態の場合、サーバ装置120にて、一旦、署名検証が成功すると、署名検証を行う際に用いた(k−1)次の多項式(y=αk−1xk−1+αk−2xk−2+・・・α1x+α0)が判明することになる。
このため、サーバ装置120では、当該判明した(k−1)次の多項式を利用して、新たな秘密分散データ(Dn+1,Wn+1等)を生成することができる。(k−1)次の多項式の変数xに任意の値を入れて変数yを算出することで、(k−1)次の多項式を満たす新たな秘密分散データを生成することができるからである。これは、サーバ装置120において、新たな秘密分散データの偽造が可能であることを意味する。
そこで、以降の実施形態では、サーバ装置120における秘密分散データの偽造を防止するための機能について説明する。
<1.データ記録システムの構成>
はじめに、第8の実施形態におけるデータ記録システムの全体構成について説明する。図26は、第8の実施形態におけるデータ記録システムのシステム構成の一例を示す図である。
図1に示したデータ記録システム100との相違点は、図26のデータ記録システム2600の場合、秘密分散データ生成部2610が、秘密分散データ、署名値(S)に加えて、Digestと署名値(T)の組(第2の組)を送信する点である。
"Digest"とは、秘密分散データに含まれる単位データ(Di)のハッシュ値(Hash(Di))を連結したものであり、下式により表される。
また、署名値(T)は、下式に示すSignアルゴリズムを用いて、Digestに署名を付加することで算出される値である。
更に、図26において、図1に示したデータ記録システム100との相違点は、データ検証部2620の機能が、データ検証部121の機能とは異なる点である。具体的には、データ検証部2620が、データ検証部121の機能に加え、署名値(T)を用いて、Digestに含まれるハッシュ値(Hash(D
i))について署名検証を行う機能を有する点である。
データ検証部2620では、秘密分散データの真正性(秘密分散データが改竄されていないこと)を検証する前に、まず、署名値(T)を用いて、Digestに含まれるハッシュ値(Hash(Di))について署名検証を行う。そして、データ検証部2620では、署名検証に成功したハッシュ値(Hash(Di))を用いて、秘密分散データに含まれる単位データ(Di)の真正性(単位データ(Di)が偽造されていないこと)を検証する。その後、秘密分散データの真正性(秘密分散データが改竄されていないこと)を検証する。
このように、データ検証部2620では、データの真正性として、データが偽造されていないこと、及び、データが改竄されていないこと、を検証する。
<2.撮像装置の機能構成>
図27は、第8の実施形態における撮像装置の機能構成を示す図である。図27に示す撮像装置110の機能構成の各構成要素のうち、図5に示した撮像装置110の機能構成の各構成要素と同様の構成要素については、同一の符号を付し、ここでは説明を省略する。
図5との相違点は、図27の秘密分散データ生成部2610の場合、ハッシュ生成部506がハッシュ値(Hash(Di))のDigestを生成し、データ送信部510及び署名部2701に通知する点である。
また、図5との相違点は、図27の秘密分散データ生成部2610の場合、署名部2701を有する点である。署名部2701は、第2の署名手段の一例であり、ハッシュ生成部506より、ハッシュ値(Hash(Di))のDigestを受信すると、上式(式9)を用いて、Digestに署名を付加することで、署名値(T)を生成する。また、署名部2701は、生成した署名値(T)をデータ送信部510に通知する。
また、図5との相違点は、図27の秘密分散データ生成部2610の場合、データ送信部510が、第2の送信手段として機能し、秘密分散データ(Di,Wi)と、署名値(S)とに加えて、Digestと、署名値(T)とを送信する点である。
図28は、第8の実施形態における撮像装置の各部(データバッファ部503、ハッシュ生成部506、パラメータ情報生成部507、署名部509、署名部2701)の動作を模式的に示した図である。図28の例では、所定数nを"10"としている。
図28に示すように、ハッシュ生成部506は、生成したハッシュ値(Hash(Di))を連結してDigestを生成する。
署名部2701は、ハッシュ生成部506において生成されたハッシュ値(Hash(Di))のDigestを取得すると、Signアルゴリズムを用いて署名を付加し、署名値(T)を算出する。
<3.秘密分散データ生成部による処理>
次に、撮像装置110の秘密分散データ生成部2610による秘密分散データ生成処理の流れについて説明する。図29は、秘密分散データ生成処理の流れを示すフローチャートである。なお、ここでは、図7に示した秘密分散データ生成処理との相違点を中心に説明する。図7に示した秘密分散データ生成処理との相違点は、ステップS2901、S2902である。
ステップS2901において、ハッシュ生成部506は、ハッシュ値(Hash(Di))のDigestを生成し、署名部2701は、Digestに基づき、署名値(T)を算出する。
ステップS2902において、データ送信部510は、ハッシュ生成部506より通知されたハッシュ値(Hash(Di))のDigestと、署名部2701より通知された署名値(T)とを、サーバ装置120に送信する。
<4.サーバ装置の機能構成>
次に、サーバ装置120にて実現されるデータ検証部2620の詳細な機能構成について説明する。図30は、サーバ装置の機能構成を示す図である。
図8に示した機能構成との相違点は、図30の場合、真正性署名値検証部3001と、データ真正性検証部3002とを有する点である。
真正性署名値検証部3001は、秘密分散データ生成部2610より送信され、データ格納部122に格納されたDigestと、署名値(T)とを読み出す。また、真正性署名値検証部3001は、下式に示すvrfyアルゴリズムを用いて、検証鍵vkcamに基づきDigestを算出する。
更に、真正性署名値検証部3001は、データ格納部122より読み出されたDigestと、上式(式10)に示すvrfyアルゴリズムを用いて算出したDigestとを比較する。比較の結果、両者が一致していれば、真正性署名値検証部3001は、データ格納部122より読み出したDigestについて、署名検証に成功した(Digestに含まれるハッシュ値(Hash(D
i))が正しい)と判定する。一方、両者が一致していなければ、真正性署名値検証部3001は、署名検証に失敗した(Digestに含まれるハッシュ値(Hash(D
i)が正しくない)と判定する。
なお、真正性署名値検証部3001は、署名検証に成功したと判定した場合、判定結果をデータ真正性検証部3002に通知する。
データ真正性検証部3002は、偽造判定手段の一例である。データ真正性検証部3002は、真正性署名値検証部3001より署名検証に成功した旨の判定結果を受信すると、データ格納部122に格納された秘密分散データに含まれる単位データ(Di)を読み出し、ハッシュ値(Hash(Di))を算出する。
また、データ真正性検証部3002は、算出したハッシュ値(Hash(Di))と、真正性署名値検証部3001において署名検証に成功したDigestに含まれるハッシュ値(Hash(Di))とを比較する。比較の結果、算出したハッシュ値(Hash(Di))が全て、Digestに含まれていれば、データ真正性検証部3002は、署名検証に成功した(秘密分散データに含まれる単位データ(Di)が偽造されていない)と判定する。一方、算出したハッシュ値(Hash(Di))に、Digestに含まれていないハッシュ値があった場合には、データ真正性検証部3002は、署名検証に失敗した(秘密分散データに含まれる単位データ(Di)が偽造されている)と判定する。
このように、データ真正性検証部3002は、データ格納部122より読み出した秘密分散データに含まれる単位データ(Di)の真正性(単位データ(Di)が偽造されていないこと)を保証することができる。
<5.データ検証部によるデータ検証処理>
次に、本実施形態におけるサーバ装置120のデータ検証部2620によるデータ検証処理(偽造、改竄)の流れについて説明する。図31は、データ検証処理(偽造、改竄)の流れを示すフローチャートである。なお、ここでは、図9に示したデータ検証処理との相違点を中心に説明する。図9に示したデータ検証処理との相違点は、ステップS3101〜S3105である。
ステップS3101において、データ受信部801は、撮像装置110より送信されたDigestと署名値(T)とを受信する。また、格納処理部802は、データ受信部801が受信したDigestと署名値(T)とをデータ格納部122に格納する。
ステップS3102において、真正性署名値検証部3001は、データ格納部122に格納された署名値(T)を用いて、データ格納部122に格納されたDigestについて署名検証を行う。具体的には、真正性署名値検証部3001は、署名値(T)についてvrfyアルゴリズムを用いて算出したDigestと、データ格納部122に格納されたDigestとが一致するか否かを判定する。これにより、真正性署名値検証部3001は、データ格納部122に格納されたDigestが正しいか否かを判定する。
判定の結果、データ格納部122に格納されたDigestが正しくないと判定した場合(ステップS3102においてNoの場合)には、ステップS907に進む。この場合、真正性署名値検証部3001は、データ格納部122より読み出したDigestについて、署名検証に失敗したと判定する。
一方、判定の結果、データ格納部122に格納されたDigestが正しいと判定した場合(ステップS3102においてYesの場合)には、ステップS3103に進む。
ステップS3103において、データ真正性検証部3002は、データ格納部122に格納された秘密分散データに含まれる単位データ(Di)を読み出し、ハッシュ値(Hash(Di))を算出する。
ステップS3104において、データ真正性検証部3002は、算出したハッシュ値(Hash(Di))と、真正性署名値検証部3001において署名検証に成功したDigestに含まれるハッシュ値(Hash(Di))とを比較する。比較の結果、算出したハッシュ値(Hash(Di))の中に、Digestに含まれていないハッシュ値があった場合には(ステップS3104においてNoの場合には)、ステップS907に進む。この場合、データ真正性検証部3002は、データ格納部122より読み出した秘密分散データに含まれる単位データ(Di)について、署名検証に失敗した(秘密分散データに含まれる単位データ(Di)が偽造されている)と判定する。
一方、算出したハッシュ値(Hash(Di))が全てDigestに含まれていた場合には(ステップS3104においてYesの場合には)、データ真正性検証部3002は、ステップS903に進む。
ステップS3105において、データ真正性検証部3002は、署名検証に成功した(秘密分散データに含まれる単位データ(Di)が偽造されていない)と判定する。
ステップS3105において署名検証に成功したと判定した場合には、ステップS903に進み、以降、秘密分散データが改竄されているか否かの署名検証を行う。署名検証の結果、署名検証に成功した場合、ステップS908では、秘密分散データが改竄されていないと判定する。
以上の説明から明らかなように、第8の実施形態におけるデータ記録システムでは、
・撮像装置が、秘密分散データに含まれる単位データ(Di)のハッシュ値のDigestと、Signアルゴリズムを用いて該Digestに署名を付加することで算出される署名値(T)とを、サーバ装置に送信する。
・サーバ装置が、撮像装置110より受信した署名値(T)を用いて、Digestについて署名検証を行う。
・Digestについて署名検証に成功した場合、サーバ装置が、撮像装置110より受信した秘密分散データに含まれる単位データ(Di)について、署名検証に成功したDigestを用いて、真正性(単位データ(Di)が偽造されていないこと)を検証する。
これにより、第8の実施形態におけるデータ記録システムによれば、秘密分散データの偽造を防止することができる。
[第9の実施形態]
上記第8の実施形態では、秘密分散データの偽造を防止するにあたり、撮像装置110が、Digestと署名値(T)とを生成し、サーバ装置120に送信する構成とした。これに対して、第9の実施形態では、別途、真正性保証サーバを配し、当該真正性保証サーバが、Digestと署名値(T)とを生成し、サーバ装置120に送信する。以下、第9の実施形態について説明する。
<1.データ記録システムの構成>
はじめに、第9の実施形態におけるデータ記録システムの全体構成について説明する。図32は、データ記録システムのシステム構成の一例を示す図である。
図1に示したデータ記録システム100との相違点は、図32のデータ記録システム3200の場合、真正性保証サーバ3210を有しており、ネットワークを介してデータ生成装置110及びサーバ装置120と通信可能に接続されている点である。また、図32のデータ記録システム3200の場合、秘密分散データ生成部111が、秘密分散データ及び署名値(S)を、サーバ装置120及び真正性保証サーバ3210に同報送信する点である。更に、真正性保証サーバ3210からサーバ装置120に対して、Digestと署名値(T)の組(第2の組)を送信する点である。
真正性保証サーバ3210は、サーバ装置120と同様のハードウェア構成(図4(b)参照)を有する。真正性保証サーバ3210には、データ検証プログラム及び署名プログラムがインストールされており、当該プログラムが実行されることで、真正性保証サーバ3210は、データ検証部121及び署名部3211として機能する。
データ検証部121の機能は、図8に示すサーバ装置120が有するデータ検証部121の機能と同じであるため、ここでは説明を省略する。
署名部3211は、第2の署名手段の他の一例であり、署名処理を行う。具体的には、署名部3211は、データ検証部121によるデータ検証処理において、秘密分散データの真正性(秘密分散データが改竄されていないこと)の検証に成功した場合、秘密分散データに含まれる単位データ(Di)のハッシュ値を算出する。
また、署名部3211は、算出したハッシュ値(Hash(Di))を連結することで、Digestを生成する。また、署名部3211は、下式に示すSignアルゴリズムを用いて、生成したDigestに署名を付加することで、署名値(T)を生成する。
更に、署名部3211は、第2の送信手段としても機能し、生成したDigestと署名値(T)の組(第2の組)を、サーバ装置120に送信する。
なお、上記説明では、秘密分散データ生成部111が、秘密分散データと署名値(S)とを同報送信するものとして説明したが、秘密分散データのみを同報送信するようにしてもよい。この場合、真正性保証サーバ3210では、データ検証部121によるデータ検証処理は行われず、署名部3211による署名処理のみが行われる。
<2.真正性保証サーバによる署名処理>
次に、真正性保証サーバ3210による署名処理の流れについて説明する。図33は、署名処理の流れを示すフローチャートである。真正性保証サーバ3210が、撮像装置110及びサーバ装置120と通信可能に接続されることで、図33に示すフローチャートが実行される。
ステップS3301において、データ検証部121は、撮像装置110より送信された秘密分散データ及び署名値(S)を受信する。
ステップS3302において、データ検証部121は、データ検証処理を行う。なお、データ検証処理の詳細は、図9を用いて説明済みであるため、ここでは説明を省略する。また、ここでは、ステップS3301において受信した秘密分散データの真正性の検証に成功したものとして説明する。
ステップS3303において、署名部3211は、秘密分散データに含まれる単位データ(Di)について、ハッシュ値(Hash(Di))を算出する。
ステップS3304において、署名部3211は、算出したハッシュ値(Hash(Di))を連結して、Digestを生成する。
ステップS3305において、署名部3211は、Signアルゴリズムを用いて、生成したDigestに署名を付加することで、署名値(T)を生成する。
ステップS3306において、署名部3211は、生成したDigestと署名値(T)の組を、サーバ装置120に送信する。
これにより、サーバ装置120のデータ検証部2620において、真正性署名値検証部3001が、真正性保証サーバ3210より受信した署名値(T)を用いて、Digestについて署名検証を行うことができる。
また、Digestについての署名検証に成功した場合、データ検証部2620において、データ真正性検証部3002が、偽造判定手段として機能することができる。具体的には、データ真正性検証部3002が、撮像装置110より受信した秘密分散データに含まれる単位データ(Di)について、署名検証に成功したDigestを用いて、真正性(単位データ(Di)が偽造されていないこと)を検証することができる。
<3.まとめ>
以上の説明から明らかなように、第9の実施形態におけるデータ記録システムでは、
・真正性保証サーバが、秘密分散データに含まれる単位データ(Di)のハッシュ値のDigestを生成するとともに、生成したDigestに署名を付加することで署名値(T)を生成する。
・真正性保証サーバが、生成したDigest及び署名値(T)を、サーバ装置に送信する。
これにより、第9の実施形態におけるデータ記録システムによれば、上記第8の実施形態と同様、秘密分散データの偽造を防止することができる。また、第9の実施形態におけるデータ記録システムによれば、第8の実施形態におけるデータ記録システムと比較して、撮像装置110の処理負荷を低減させることができる。
[第10の実施形態]
上記第9の実施形態では、真正性保証サーバ3210を配し、秘密分散データに含まれる単位データ(Di)について、サーバ装置120において、真正性(単位データ(Di)が偽造されていないこと)が検証できる構成とした。
これに対して、第10の実施形態では、サーバ装置120において、秘密分散データに含まれる単位データ(Di)とパラメータ情報(Wi)の両方について、真正性が検証できる構成とする。以下、第10の実施形態について、上記第9の実施形態との相違点を中心に説明する。
<1.データ記録システムの構成>
図34は、データ記録システムのシステム構成の一例を示す図である。図32に示したデータ記録システム3200との相違点は、署名部3411とデータ検証部3420である。
データ記録システム3400において、署名部3411は、第2の署名手段に加えて第3の署名手段としても機能する。
具体的には、第2の署名手段として機能する場合、署名部3411は、撮像装置110より送信された秘密分散データに含まれる単位データ(Di)のハッシュ値(Hash(Di))を算出する。また、署名部3411は、算出したハッシュ値(Hash(Di))を連結することで、Digest1を生成し、生成したDigest1に署名を付加することで、署名値(T)を生成する。
また、第3の署名手段として機能する場合、署名部3411は、撮像装置110より送信された秘密分散データに含まれるパラメータ情報(Wi)を取得し、取得したパラメータ情報(Wi)を連結することで、Digest2を生成する。また、署名部3411は、生成したDigest2に署名を付加することで、署名値(U)を生成する。
更に、署名部3411は、第2の送信手段に加えて第3の送信手段としても機能する。具体的には、第2の送信手段として機能する場合、署名部3411は、第2の組(Digest1及び署名値(T))をサーバ装置120に送信する。また、第3の送信手段として機能する場合、署名部3411は、第3の組(Digest2及び署名値(U))を、サーバ装置120に送信する。
また、データ記録システム3400において、データ検証部3420は、秘密分散データに含まれる単位データ(Di)に加え、パラメータ情報(Wi)の真正性(パラメータ情報(Wi)が偽造されていないこと)を検証する機能を有する。
具体的には、データ検証部3420の真正性署名値検証部3001が、真正性保証サーバ3410より受信した署名値(U)を用いて、Digest2について署名検証を行う。
また、Digest2について署名検証に成功した場合、データ検証部3420において、データ真正性検証部3002は、秘密分散データに含まれるパラメータ情報(Wi)について、署名検証に成功したDigest2を用いて真正性を検証する。
これにより、データ検証部3420は、秘密分散データに含まれるパラメータ情報(Wi)の真正性(パラメータ情報(Wi)が偽造されていないこと)を検証することができる。
<2.署名部による署名処理>
次に、真正性保証サーバ3410の署名部3411による署名処理の流れについて説明する。図35は、署名処理の流れを示すフローチャートである。図33のフローチャートとの相違点は、ステップS3501〜S3503である。
ステップS3501において、署名部3411は、秘密分散データに含まれるパラメータ情報(Wi)に基づいて、Digest2を生成する。
ステップS3502において、署名部3411は、生成したDigest2に署名を付加することで、署名値(U)を生成する。
ステップS3503において、署名部3411は、ステップS3304、S3305において生成したDigest1及び署名値(T)と、ステップS3502、S3503において生成したDigest2及び署名値(U)とを、サーバ装置120に送信する。
<3.データ検証部によるデータ検証処理(偽造、改竄)>
次に、本実施形態において、データ検証部3420によるデータ検証処理(偽造、改竄)の流れについて説明する。図36は、データ検証処理(偽造、改竄)の流れを示すフローチャートである。なお、ここでは、図31に示したデータ検証処理(偽造、改竄)との相違点を中心に説明する。図31に示したデータ検証処理(偽造、改竄)との相違点は、ステップS3601及びステップS3602〜S3606である。
ステップS3601において、データ受信部801は、真正性保証サーバ3210より送信されたDigest1、署名値(T)、Digest2、署名値(U)を受信する。また、格納処理部802は、データ受信部801が受信したDigest1、署名値(T)、Digest2、署名値(U)をデータ格納部122に格納する。
ステップS3602において、真正性署名値検証部3001は、データ格納部122に格納された署名値(T)を用いて、データ格納部122に格納されたDigest1について署名検証を行う。具体的には、真正性署名値検証部3001は、署名値(T)についてvrfyアルゴリズムを用いて算出したDigest1と、データ格納部122に格納されたDigest1とが一致するか否かを判定する。これにより、真正性署名値検証部3001は、データ格納部122に格納されたDigest1が正しいか否かを判定する。
判定の結果、データ格納部122に格納されたDigest1が正しくないと判定した場合(ステップS3602においてNoの場合)には、図37のステップS907に進む。この場合、真正性署名値検証部3001は、データ格納部122より読み出したDigest1について、署名検証に失敗したと判定する。
一方、判定の結果、データ格納部122に格納されたDigest1が正しいと判定した場合(ステップS3602においてYesの場合)には、ステップS3603に進む。
ステップS3603において、データ真正性検証部3002は、データ格納部122に格納された秘密分散データに含まれる単位データ(Di)を読み出し、ハッシュ値(Hash(Di))を算出する。
ステップS3604において、データ真正性検証部3002は、算出したハッシュ値(Hash(Di))と、真正性署名値検証部3001において署名検証に成功したDigest1に含まれるハッシュ値(Hash(Di))とを比較する。比較の結果、算出したハッシュ値(Hash(Di))の中に、Digest1に含まれていないハッシュ値があった場合には(ステップS3604においてNoの場合には)、図37のステップS907に進む。この場合、データ真正性検証部3002は、データ格納部122より読み出した秘密分散データに含まれる単位データ(Di)について、署名検証に失敗した(秘密分散データに含まれる単位データ(Di)が偽造されている)と判定する。
一方、算出したハッシュ値(Hash(Di))が全てDigest1に含まれていた場合には(ステップS3604においてYesの場合には)、データ真正性検証部3002は、ステップS3605に進む。
ステップS3605において、真正性署名値検証部3001は、データ格納部122に格納された署名値(U)を用いて、データ格納部122に格納されたDigest2について署名検証を行う。具体的には、真正性署名値検証部3001は、署名値(U)についてvrfyアルゴリズムを用いて算出したDigest2と、データ格納部122に格納されたDigest2とが一致するか否かを判定する。これにより、真正性署名値検証部3001は、データ格納部122に格納されたDigest2が正しいか否かを判定する。
判定の結果、データ格納部122に格納されたDigest2が正しくないと判定した場合(ステップS3605においてNoの場合)には、図37のステップS907に進む。この場合、真正性署名値検証部3001は、データ格納部122より読み出したDigest2について、署名検証に失敗したと判定する。
一方、判定の結果、データ格納部122に格納されたDigest2が正しいと判定した場合(ステップS3605においてYesの場合)には、ステップS3606に進む。
ステップS3606において、データ真正性検証部3002は、データ格納部122に格納された秘密分散データに含まれる単位データ(Wi)を読み出し、真正性署名値検証部3001において署名検証に成功したDigest2と比較する。
比較の結果、読み出した単位データ(Wi)の中に、Digest2に含まれていないパラメータ情報があった場合には(ステップS3606においてNoの場合には)、図37のステップS907に進む。この場合、データ真正性検証部3002は、データ格納部122より読み出した秘密分散データに含まれるパラメータ情報(Wi)について、署名検証に失敗した(秘密分散データに含まれるパラメータ情報(Wi)が偽造されている)と判定する。
一方、読み出したパラメータ情報(Wi)が全てDigest2に含まれていた場合には(ステップS3606においてYesの場合には)、データ真正性検証部3002は、ステップS3607に進む。
ステップS3607において、データ真正性検証部3002は、署名検証に成功した(秘密分散データに含まれる単位データ(Di)とパラメータ情報(Wi)のいずれも偽造されていない)と判定する。
ステップS3607において署名検証に成功したと判定した場合には、図37のステップS903に進み、以降、秘密分散データが改竄されているか否かの署名検証を行う。署名検証の結果、署名検証に成功した場合、ステップS908において、署名値検証部804は、秘密分散データが改竄されていないと判定する。
このように、第10の実施形態によれば、サーバ装置120は、秘密分散データに含まれる単位データ(Di)とパラメータ情報(Wi)の両方について、真正性を検証することが可能となる。
なお、図36の説明では、秘密分散データに含まれる単位データ(Di)全てについて真正性を検証してから、パラメータ情報(Wi)の真正性の検証を開始する構成とした。しかしながら、真正性の検証の順序はこれに限定されず、パラメータ情報(Wi)全てについて真正性を検証してから、単位データ(Di)の真正性の検証を開始するように構成してもよい。あるいは、単位データ(Di)についての真正性の検証とパラメータ情報(Wi)についての真正性の検証とを交互に行うように構成してもよい。
[第11の実施形態]
上記第9及び第10の実施形態では、撮像装置110が秘密分散データ及び署名値(S)を同報送信する場合について説明した。これに対して、第11の実施形態では、ルータ装置を配し、ルータ装置が秘密分散データ及び署名値(S)を同報送信する。以下、第11の実施形態について説明する。
図38は、データ記録システムのシステム構成の一例を示す図である。図34に示したデータ記録システム3400との相違点は、ルータ装置3810を有する点である。
ルータ装置3810は、撮像装置110と接続され、撮像装置110より送信された秘密分散データ及び署名値(S)を、ネットワークを介して接続されたサーバ装置120及び真正性保証サーバ3410に同報送信する。
このように、ルータ装置3810を配することで、撮像装置110の送信負荷を軽減させることができる。
[その他の実施形態]
上記第1乃至第11の実施形態では、撮像装置110において生成される動画像データに対して、秘密分散プロトコルを適用する場合について説明した。しかしながら、秘密分散プロトコルを適用する対象は、動画像データに限定されない。音声データや温度データ等、任意の時系列データに対して適用することができる。
また、上記第1乃至第11の実施形態では、データカウンタ部504を配し、所定数(n)の単位データ(Di)ごとに、署名値(S)を算出する構成とした。しかしながら、署名値を算出するタイミングは、所定数(n)の単位データ(Di)ごとでなくてもよい。例えば、所定時間分の単位データ(Di)ごとに署名値を算出する構成としてもよい。つまり、署名値(S)の算出は、時系列データの所定の区間の単位データに対して行われればよい。
また、上記第1乃至第11の実施形態では、ハッシュ生成部506が単位データ(Di)のハッシュ値を算出し、パラメータ情報生成部507が、ハッシュ生成部506で算出されたハッシュ値に基づいて、パラメータ情報(Wi)を算出する構成とした。しかしながら、パラメータ情報生成部507は、単位データ(Di)に基づいて、直接、パラメータ情報(Wi)を算出するように構成してもよい。
また、上記第1乃至第11の実施形態では、CPU402が秘密分散データ生成プログラムを実行することで、秘密分散データ生成部を実現するものとして説明した。しかしながら、秘密分散データ生成部は、例えば、GPU(Graphics Processing Unit)を用いて実現してもよい。
また、上記第8の実施形態では、秘密分散データ生成部2610が、Digestと署名値(T)とを送信する構成としたが、上記第10の実施形態と同様に、Digest1と署名値(T)、Digest2と署名値(U)を送信する構成としてもよい。この場合、署名部2701が第2及び第3の署名手段として機能し、データ送信部510が第1乃至第3の送信手段として機能することになる。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。