(57)【要約】【課題】  Ａ／Ｄ変換器でデジタル変換されたデジタルデータに署名を付与する。【解決手段】  プロセッサ及びＡ／Ｄ変換器を備えたデータ記録装置において、  公開鍵と秘密鍵のペアを準備するステップと、  前記センサーが取得したアナログ信号を前記Ａ／Ｄ変換器で信号データとノイズデータとで構成されるデジタルデータを生成するステップＳａ１と、  前記プロセッサによりハッシュ関数を用いて前記信号データに対するハッシュ値を計算するステップＳａ２と、  前記ハッシュ値を前記秘密鍵又は公開鍵のいずれかで暗号化するステップＳａ３と、  前記暗号化されたハッシュ値を前記ノイズデータが記録されていたノイズエリアに書き込みするステップＳａ４と、  を含む、ハッシュ付きデータの生成方法【選択図】  図１
2019189019.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びＡ／Ｄ変換器を備えたデータ記録装置において、
公開鍵と秘密鍵のペアを準備するステップと、
センサーで取得されたアナログ信号を前記Ａ／Ｄ変換器で信号データとノイズデータとで構成されるデジタルデータを生成するステップＳａ１と、
前記プロセッサによりハッシュ関数を用いて前記信号データに対するハッシュ値を計算するステップＳａ２と、
前記ハッシュ値を前記秘密鍵又は公開鍵のいずれかで暗号化するステップＳａ３と、
前記暗号化されたハッシュ値を前記ノイズデータが記録されていたノイズエリアに書き込みするステップＳａ４と、
を含む、ハッシュ付きデータの生成方法。
【請求項２】
前記ノイズエリアの一部に、「ハッシュ値以外のデータ」を含む請求項１記載のハッシュ付きデータの生成方法。
【請求項３】
前記Ａ／Ｄ変換器から出力されるデジタルデータのうち、複数サンプル分のデータをまとめて１つのデータ単位とする請求項１又は請求項２記載のハッシュ付きデータの生成方法。
【請求項４】
前記「ハッシュ値以外のデータ」には、換算定数を含む請求項１乃至請求項３のいずれか１項記載のハッシュ付きデータの生成方法。
【請求項５】
前記「ハッシュ値以外のデータ」には、タイムスタンプ、識別ＩＤ、ハッシュ関数を示すコード、公開鍵の少なくともいずれか１つを更に含む請求項４記載のハッシュ付きデータの生成方法。
【請求項６】
データエリアと、非データエリアを含み、
前記非データエリアの一部に秘密鍵で暗号化されたハッシュ値を含むデジタルデータ。
【請求項７】
前記非データエリアにおける他の部分に任意情報を含むデジタルデータ。
【請求項８】
前記非データエリアはノイズエリアである請求項６又は請求項７記載のデジタルデータ。
【請求項９】
信号データを取得するセンサーと、前記センサーが取得したアナログデータをデジタルデータに変換するＡ／Ｄ変換器と、プロセッサとを含むデータ記録装置であって、
前記プロセッサに、
ハッシュ関数を用いて前記信号データに対するハッシュ値を計算するステップＳａ２と、
前記ハッシュ値を前記秘密鍵又は公開鍵のいずれかで暗号化するステップＳａ３と、
前記暗号化されたハッシュ値を前記ノイズデータが記録されていたノイズエリアに上書きするステップＳａ４と、
を実行させることを特徴とするデータ記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主としてハッシュ付きデータの生成方法に関する。
【背景技術】
【０００２】
物理量を計測するセンサーは、加速度、速度、変位、温度、圧力、電圧、電流、湿度、ｐＨ、など多種多様のものが開発されている。これらのセンサーで取得されたアナログ信号は、Ａ／Ｄ変換器によってデジタルデータに変換されることにより、圧縮・記録・処理・伝送など様々なデジタル処理が可能となる。【０００３】
コンピューターのオペレーティングシステム上で認識されるデジタルファイルのハッシュ値を計算し、それを秘密鍵で暗号化することでデジタル署名を付与する技術は知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−００５４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、センサー等で取得された物理量をＡ／Ｄ変換器でデジタル変換したデジタルデータ（以下、本明細書において「オリジナルデータ」という。）が、その後のデジタル処理を経る過程で何らかの原因によって取り違えられ、他のデータと入れ替わったり、データ自身が「改ざん」されたりしても、その事実を発見したり、原因を究明したりすることは、必ずしも容易ではない。【０００６】
本発明は、上記に鑑みてなされたものであり、Ａ／Ｄ変換器でデジタル変換されたデジタルデータに署名を付与する方法を提供することを主たる解決課題とする。
【課題を解決するための手段】
【０００７】
本発明に係るハッシュ付きデータの生成方法は、プロセッサ及びＡ／Ｄ変換器を備えたデータ記録装置において、
公開鍵と秘密鍵のペアを準備するステップＳａ０と、
センサーで取得されたアナログ信号を前記Ａ／Ｄ変換器で信号データとノイズデータとで構成されるデジタルデータを生成するステップＳａ１と、
前記プロセッサによりハッシュ関数を用いて前記信号データに対するハッシュ値を計算するステップＳａ２と、
前記ハッシュ値を前記秘密鍵又は公開鍵のいずれかで暗号化するステップＳａ３と、
前記暗号化されたハッシュ値を前記ノイズデータが記録されていたノイズエリアに書き込みするステップＳａ４と、
を含む。【０００８】
このようにして得られた暗号化されたハッシュ値を含むデジタルデータ（本明細書において、「ハッシュ付きデジタルデータ」という。）は、「信号データ」と「秘密鍵又は公開鍵で暗号化されたハッシュ値」とを含む。そして、デジタルデータが伝送された後、受け取った側でデータの改ざんがないかどうか確かめる場合、データ記録装置側において計算とデータ埋め込みを行った「秘密鍵又は公開鍵で暗号化されたハッシュ値」と、受け取った側においてデータ記録装置側と同一のハッシュ関数を用いてハッシュ値を計算し、それを「公開鍵で暗号化したハッシュ値」と比較して、両者が一致すれば改ざんはなかったと判定し、不一致であれば改ざんされていると判定する。【０００９】
ここで、ハッシュ関数及びハッシュ値とは、一般的な技術用語のそのままの意である。すなわち、ハッシュ値とは、あるデータが与えられた場合にそのデータを代表する数値を得る操作、または、その様な数値を得るための関数をいい、ハッシュ値とは、ハッシュ関数から得られた数値をいう。ハッシュ値のビット数はデータの信頼性を表すものであるが、暗号化強度でもある。例えば、ハッシュが４ビットで表される場合、とりうるハッシュ値は２の４乗通り、すなわち１／２４の確率で同じハッシュ値を持つデータが存在することになる。【００１０】
上記ハッシュ付きデータの生成方法において、ノイズエリアの一部に、「ハッシュ値以外のデータ」を含んでいてもよい。例えば、Ｓ／Ｎ比が１２０ｄＢである２４ビットのデジタルデータは、１サンプルデータあたり、２０ビットの信号データと４ビットのノイズデータとで構成される。仮に、ハッシュ値が２ビットで表現される場合、ハッシュ値以外のデータを記録することが可能となる。この場合、ノイズエリアには、「ハッシュ値以外のデータ」と「ハッシュ値」とが記録される。その場合、「信号データ」だけでなく、「信号データ」と「ハッシュ値以外のデータ」との両方をハッシュ値の計算対象としてもよい。「ハッシュ値以外のデータ」をハッシュ値の計算対象とすることにより、「信号データ」だけでなく「ハッシュ値以外のデータ」に改ざんが行われていたか否かを検証することができる。このようにして計算されたハッシュ値は、秘密鍵又は公開鍵で暗号化され、ノイズエリアに書き込み（上書き保存）される。【００１１】
また、上記方法に際しては、前記Ａ／Ｄ変換器から出力されるデジタルデータのうち、複数サンプル分のデータをまとめて１つのデータ単位とするように構成してもよい。ハッシュ関数が簡単である場合には、計算時間は短くて済むためハッシュ値の埋め込みに要する時間は少なくて済み、ハッシュ値計算や暗号化処理などに伴うデータ処理の遅延が小さくなり、その結果、リアルタイムでハッシュ値を埋め込んでいくことが可能となる。しかし、あるまとまった時間分のデータを１まとまりとして取り扱うような場合或いはプロセッサの処理能力が低い場合には、このようなリアルタイム性は不要であるため、複数サンプル分のデータを１つとして取り扱うことも可能である。この場合、ノイズエリアに保存できるデータ量が増加するため、ハッシュ値だけでなく、ハッシュ値以外の様々なデータをノイズエリアに保存できるようになる。【００１２】
ここで、「ハッシュ値以外のデータ」には、例えば、オリジナルデータの取得日時などを示すタイムスタンプ、オリジナルデータに対する識別ＩＤ、ハッシュ関数を示すコード、公開鍵、オリジナルデータへの換算定数（以下、単に「換算定数」という。）など、保存可能な範囲で任意のデータを含むことができる。【００１３】
ここで、「換算定数」とは、信号データとセンサーの計測対象である物理量との換算倍率を表す数値、すなわち、「換算倍率と信号データに記録されている数値の積が、センサーが計測した物理量（有限値）となるような定数」を意味する。換算定数は例えば固定小数点、浮動小数点などいくつかの表し方があるが、いずれの表し方を用いる場合でも、整数又は有限の少数、すなわち有理数で表されることが必要である。【００１４】
信号データは、０又は１の数列からなるバイナリデータであるが、テキスト形式で表すことは可能である。一方、換算定数は、Ａ／Ｄ変換器の設定条件で決まる固有の数値である。そのため、「テキスト形式で表された信号データ」と「換算定数」とを用いることで、センサーが取得した物理量を計算することが可能となる。【００１５】
Ａ／Ｄ変換器で取得したオリジナルデータに対して、「信号データ」と「任意のデータ」とを合わせたデータ（すなわち、ハッシュ値以外の全データ）を計算対象としてハッシュ値を計算する。
次に、そのハッシュ値を秘密鍵又は公開鍵で暗号化する。
次に、「任意のデータ」と「ハッシュ値」とをノイズエリアに上書きする。【００１６】
この場合、デジタルデータが伝送された後、受け取ったデータの改ざんがないかどうか確かめる場合、「秘密鍵又は公開鍵で暗号化されたハッシュ値」と、データ記録装置側で用いたハッシュ関数と同一のハッシュ関数を用いて計算されたハッシュ値を（秘密鍵とのペアとして生成された）公開鍵で暗号化したハッシュ値とを比較し、一致すれば改ざんはなかったと判定し、不一致であれば改ざんされていると判定する点は、上記（任意のデータを含まない場合）と同様である。【００１７】
ハッシュ関数と公開鍵は、データを利用するユーザー（すなわち、データの改ざんを確認する側）に予め配布しておくことが必要であるが、ハッシュ関数や公開鍵だけでは復号化ができないため、秘密鍵又は公開鍵で暗号化される前のハッシュ値（オリジナル・ハッシュ）を知ることができない。よって、秘密鍵又は公開鍵で暗号化されたハッシュ値と、公開鍵で暗号化されたハッシュ値とを比較することで、容易にデータの改ざんを確認することができる。【００１８】
秘匿性が要求されないデータであれば、オリジナルデータからノイズデータを除去し、そこにハッシュ値（及び必要により任意のデータ）をノイズエリアに記録したデジタルデータをテキストデータとし、そのデータ（場合により圧縮データ）を送信する一方で、そのデータを利用するユーザー側で改ざんの有無を確認することが可能となる。【００１９】
この場合、データの改ざんがないことを保証したうえで、Ａ／Ｄ変換器から出力されるバイナリデータを扱うよりもはるかに自由度の高い方法でのデータの取扱いが可能となる。
【発明の効果】
【００２０】
本発明によると、ノイズとして利用されないデータ領域であるノイズエリアにハッシュ値が含まれることになるため、オリジナルデータに改ざんが加えられていないことを容易に確認することができる。また、ハッシュ値を表すために必要とされるビット数は小さいため、ハッシュ値以外の情報を埋め込むこともできる。その場合、信号として活用される上位ビットのデジタルデータだけでなく、非データエリアに埋め込まれたハッシュ値以外の情報をも含めて、改ざんが加えられていないことを確認できる。
【図面の簡単な説明】
【００２１】
【図１】図１（Ａ）は、Ａ／Ｄ変換器から出力されるオリジナルデータのデータ構成を時系列で並べた概念図である。図１（Ｂ）は、図１（Ａ）におけるノイズデータが記録されている下位ビットにハッシュ値を書き込んだことを示す概念図である。
【図２】図２は、データ記録装置側の処理フローを示すハッシュ付きデータ生成のためのフローチャートである。
【図３】図３は、データを利用するユーザー側の処理フローを示すデータの改ざんを検知するためのフローチャートである。
【図４】図４は、単位時間に生成されるハッシュ付きデータを示している。
【図５】図５は、本発明が前提とするデータ記録装置のハードウェア構成を示している。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の各実施形態について説明する。各実施形態の記載は本発明の技術的思想を理解するために合目的的に解釈され、実施形態の記載に限定解釈されるべきものではない。
【００２３】
以下、第１の実施形態では、本願発明の基本的な考え方、課題の解決原理について説明し、第２の実施形態では、より実用的な使用方法について説明する。
【００２４】
（第１の実施形態）−基本的な考え方−
センサーが取得したアナログ信号を変換した直後のデジタルデータ（オリジナルデータ）は、信号だけでなく、ノイズとして無視されるデータを含んでいる。このデジタルデータを利用する場合、ノイズデータは無視される。
【００２５】
本実施形態は、無視されるノイズデータを「意味のあるデータ」で置き換えることにより、そのデータを活用した新たな手法を提案するものである。
【００２６】
はじめに、本発明が前提とするデータ記録装置について説明する。
図５に示すように、データ記録装置（データロガー）１は、センサー１０、Ａ／Ｄ変換器１２及びプロセッサ１４を含む。センサー１０は測定対象である物理量に応じたものでよく、測定対象となる物理量の変化を例えば電圧の変化などに変換してＡ／Ｄ変換器に送るものであれば、あらゆるセンサーが含まれる。
【００２７】
Ａ／Ｄ変換器１２はアナログデータをデジタルデータに変換するための装置である。サンプリング周波数やビット数などにより性能は変わるが、特定のＡ／Ｄ変換器に制限されない。プロセッサ１４は、データ記録装置の制御や数値計算などを行うための装置であり、４ビット或いは８ビットのマイコンから近年の汎用コンピュータやサーバーなどに搭載される６４ビットの高性能なプロセッサまで様々な種類のものが該当する。プロセッサ１４のビット数やクロック周波数は後述するハッシュ値の計算速度やハッシュ値の暗号化速度などに影響するが、特定のプロセッサに限定されない。その他、メモリー１６やハードディスクその他の記録媒体１８、通信インターフェース２０など、必要なハードウェア構成が含まれていてもよい。
【００２８】
ただし、データ記録装置は一体の装置である必要は無く、センサー部と、センサー部以外のデータ処理部（プロセッサ、Ａ／Ｄ変換器等）が分離している場合を含み、また、Ａ／Ｄ変換器とプロセッサが一体となっている場合を含む。
【００２９】
図１（Ａ）は、Ａ／Ｄ変換器から出力されるオリジナルデータのデータ構成を時系列で並べた概念図である。この図に示すように、時刻ｔ＝０におけるオリジナルデータは、上位ビットに信号データＳ０が、下位ビットにノイズデータＮ０が含まれ、時刻ｔ＝１におけるオリジナルデータは、上位ビットに信号データＳ１が、下位ビットにノイズデータＮ１が含まれることを示している。Ａ／Ｄ変換器のサンプリングレートやビット数によりデータ量は異なるが、例えば、サンプリングレートが１００ｍｓｅｃ、Ｓ／Ｎ比が１２０ｄＢ、ビット数が２４ビットのデジタルデータであれば、１００ｍｓｅｃごとに２４ビットのデータがＡ／Ｄ変換器から出力されることになる。
【００３０】
オリジナルデータに含まれる信号データに対する信頼性を保証するため、信号データを計算対象としてハッシュ値を計算する。ハッシュ値の計算に際しては、予めハッシュテーブルを作成しておいてもよいし、公知のハッシュ関数を用いることもできる。例えば、チェックサムでもよいしＣＲＣ１６、ＭＤ５、ＳＨＡ１、ＳＨＡ２、ＳＨＡ３などでもよい。ハッシュ値のビット数はハッシュ関数による。例えば、Ｓｈａ２は１２８ビット、ＭＤ５は６４ビット、ＣＲＣは１６ビットとなる。ＳＨＡ２の場合、１２８ビットの暗号であるからとりうるハッシュ値は３４０×１０の２８乗分の１の確率となり非常に強力である。
【００３１】
このようにして計算されたハッシュ値を、ノイズエリアに保存する。しかし、計算されたハッシュ値をそのまま埋め込むと、ハッシュ値だけが改ざんされてしまう可能性が排除できない。そこで、既知の方法により予め公開鍵と秘密鍵のペアを準備しておき、秘密鍵でハッシュ値を暗号化し、暗号化されたハッシュ値を、ノイズエリアに上書き保存する。
【００３２】
但し、「ハッシュ値だけが改ざん」されてしまう可能性を無視する設計とする場合は、（その他の実施形態）において後述するとおり、秘密鍵ではなく公開鍵で暗号化されたハッシュ値をノイズエリアに上書き保存してもよい。これは、第２の実施形態についても当てはまる。
【００３３】
図１（Ｂ）は、図１（Ａ）におけるノイズデータが記録されている下位ビットに暗号化済みのハッシュ値を書き込んだことを示す概念図である。この図に示すように、信号データＳ０に対する暗号化されたハッシュ値Ｈ０を、ノイズエリアであるノイズエリアに上書きする。同様に、信号データＳ１に対する暗号化されたハッシュ値Ｈ１を、ノイズエリアに書き込み（上書き）する。
【００３４】
−ハッシュ付きデータ生成方法−
図２は、データ記録装置側の処理フローを示すハッシュ付きデータ生成のためのフローチャートである。
はじめに、準備段階として、公開鍵と秘密鍵のペア（鍵ペア）を準備する（ステップＳａ０）。プロセッサの処理能力が低い場合は、別のプロセッサで予め鍵ペアを準備しておいてもよい。
【００３５】
そして、センサーが取得したアナログ信号を前記Ａ／Ｄ変換器で信号データとノイズデータとで構成されるデジタルデータを生成する（ステップＳａ１）。このデジタルデータは、図１（Ａ）で説明したように、信号データとノイズデータを含む全データが含まれている。
【００３６】
次に、プロセッサによりハッシュ関数を用いて信号データに対するハッシュ値を計算する（ステップＳａ２）。
次に、得られたハッシュ値をステップＳａ０で準備した秘密鍵で暗号化する（ステップＳａ３）。
【００３７】
次に、ステップＳａ３で暗号化されたハッシュ値をノイズデータが記録されていたノイズエリアに書き込みする（ステップＳａ４）。この書き込みステップＳａ４は、予めハッシュエリアにゼロを上書き（ゼロクリア）してから暗号化されたハッシュ値を書き込む。なお、ゼロクリアするのは、ノイズエリアにはノイズデータの数値が含まれているためである。上書きするのはゼロが通常であるため、以下ゼロを上書きする場合を説明するが、既知の値であればよいことは言うまでも無い。
【００３８】
その後、必要に応じて生成されたハッシュ付きデータは記録媒体などに記録（送信）される（ステップＳａ５）。
【００３９】
−改ざんチェック方法−
次に、ハッシュ付きデータを受け取った側の動作について説明する。
図３は、ハッシュ付きデータを受け取ったユーザー側において改ざんの有無を判定するステップを示すフローチャートである。
はじめに、前提条件として、ハッシュ付きデータを受け取ったところからスタートする（ステップＳｂ０）。
改ざんのチェックを行う最初のステップは、ユーザー側において、ハッシュ付きデータにおけるハッシュエリア（このハッシュ部分には、秘密鍵で暗号化されたハッシュ値が含まれている）以外の部分を計算対象として、ハッシュ値を計算する（ステップＳｂ１）。なお、この計算ステップで使用されるハッシュ関数はハッシュ付きデータを生成する際に使用されたものと同一のものを用いる。
次に、ステップＳｂ１で計算したハッシュ値を公開鍵で暗号化する（ステップＳｂ２）。
次に、受け取ったデータのハッシュ値（秘密鍵で暗号化されているハッシュ値）と、ステップＳｂ２で暗号化したハッシュ値とを比較する（ステップＳｂ３）。
最後に判定する（ステップＳｂ４）。
具体的には、例えば、ハッシュ値の差を計算してゼロであれば一致していると判断されるため、改ざんなしと判定し、ハッシュ値の差がゼロでなければ不一致であると判断されるため、改ざんありと判定する。
なお、ステップＳｂ１とステップＳｂ２の順序はいずれが先でもよい。
【００４０】
以上のようにすれば、センサーが取得したデジタルデータである、オリジナルデータのうち、ノイズエリアという、データ領域を占有するにもかかわらず、実際には使用されないデータ領域（非データエリア）にハッシュ値という目印が付与されることになるため、改ざんがあったか否かを容易に判定できるようになる。しかも、オリジナルデータのうちデータとして有効活用される信号エリアには何ら情報を書き込むことはないため、オリジナルデータの一部にハッシュ値やその他追加的な情報を埋め込んでも、実質的にデータを毀損しないという利点がある。
【００４１】
（第２の実施形態）
第１の実施形態では、１サンプルごとにハッシュ値を埋め込んだ例を示した。この方法は、サンプリング周波数が高いほど、或いは、プロセッサの処理速度が遅いほど、ハッシュ値の計算やハッシュ値の暗号化処理に要する時間の遅延を生じる可能性がある。また、Ａ／Ｄ変換器のビット数が小さい場合や、Ｓ／Ｎ比が高い場合など、ノイズエリアのビット数が十分に確保できない場合、ハッシュ関数を簡単なものにしなければならない。そこで、１サンプルごとにハッシュ値を埋め込むのではなく、ある一定の時間を単位時間として区切る方法について説明する。
【００４２】
例えば、ノイズエリアが４ビットでサンプリングレートが１００サンプル／ｓｅｃのリアルタイムデータである場合、１秒間あたり４ビット×１００（４００ビット／ｓｅｃ相当）のデータ量を記録することができる計算となる。この場合、ＣＲＣ１６の１６ビットでハッシュ値を求めると、ハッシュ値は２の１６乗（約６５，０００）通りあることになり、１／２１６の確立で同じハッシュ値を持つデータが存在することになる。
【００４３】
図４は、単位時間に生成されるオリジナルデータを「信号エリア」と、「ノイズエリア」に区分した様子を示す概念図である。複数サンプル分のデータを集めたことにより、ノイズエリアの余った領域に、より多くの「追加的な情報」を埋め込むこが可能になる。ここで、「追加的な情報」とは、例えばデジタルデータの特定に役立つ情報、望ましくはデータの信頼性を高める「ハッシュ値以外のデータ」である。
【００４４】
「ハッシュ値以外のデータ」には、例えば、オリジナルデータの取得日時などを示すタイムスタンプ、オリジナルデータに対する識別ＩＤ、ハッシュ関数を示すコード、公開鍵、オリジナルデータへの換算定数（以下、単に「換算定数」という。）など、保存可能な範囲で任意のデータを含むことができる。
【００４５】
ここで、「換算定数」とは、信号データとセンサーの計測対象である物理量との換算倍率を表す数値、すなわち、「換算倍率と信号データに記録されている数値の積が、センサーが計測した物理量（有限値）となるような定数」を意味する。
【００４６】
例えば、デジタルデータ１ビットが、０．０５Ｖという物理量を表す場合、換算定数は０．０５となる。
【００４７】
ノイズエリアの一部に換算定数を埋め込む場合、固定小数点、浮動小数点など、いくつかの表し方があるが、いずれの表し方を用いる場合でも、整数又は有限の少数、すなわち有理数で表されることが必要である。循環小数（０．１２３１２３１２３・・・）や無限小数（０．０３３３３・・・）は、用いてはならない。
【００４８】
この理由について、以下、別の例を用いて説明する。いま、Ａ／Ｄ変換器が取得したデータに対応する物理量が３．３３３Ｖであり、Ａ／Ｄ変換後の有効数字を考慮した信号データ（ノイズとして無視されるべき下位ビットを無視したデータ）の値が１０（１６進数ではＡと表記される）であったとする。この場合の換算定数を、０．３３３３と定義して、対応する物理量が、デジタルデータと換算定数の積（１０×０．３３３３）で計算されると定義すれば、ノイズを省いたデジタルデータが必ずテキストデータ（３．３３３）で表現できることになる。同時に、テキストデータ（３．３３３）と換算定数（０．０３３３３）が得られれば、そこからデジタルデータ（１０）の値を計算することが可能となる。
【００４９】
これに対して、デジタルデータの値を換算定数で除算して求めることも理論的には可能であるが、その方法は、デジタルデータとテキストデータとの対応関係が崩れるため、許されない。有効数字を考慮したデジタルデータの値が１０である上記の場合を例にとると、対応する物理量は、デジタルデータの値１０を換算定数３で除した値となるから、３．３３３３３３・・・・のような無限小数で表される。その場合、テキストデータで表すには、ある有限位で切り捨てるか、四捨五入等するか、すなわち「丸め」が必要となり、厳密な対応関係が崩れることになる。（例えば、３．３３３に換算定数３を乗算すると９．９９９となり、デジタルデータの値である１０と相違する。）
【００５０】
この意味において、「物理量」の値が、「信号エリアに記録された信号データ」と「換算定数」の積で表現されることにより、「除算した結果として表現されないこと」は、極めて重要であるといえる。以下、換算定数の使用方法について、更に詳細に説明する。
【００５１】
信号エリアに記録される「信号データ」は、０又は１の数列からなるバイナリデータ（上述の例では２０ビットのゼロ／イチの数列）と対応づけられる。このバイナリデータの数列を読み出してテキストデータに変換することは可能である。必要に応じて、１６進数表記など、より扱いやすい形式に変換することもできる。一方、換算定数は、Ａ／Ｄ変換器の設定条件で決まる固有の数値である。そのため、「テキスト形式で表された信号データ」と「換算定数」とを用いることで、センサーが取得した物理量を計算することが可能となる。
【００５２】
Ａ／Ｄ変換器により生成されたデジタルデータは様々なデータ形式（フォーマット）で記録されるが、多くの場合、テキストデータでないため、その場合、その内容を読み出すためにはすでにオペレーティングシステムが対応しているか、若しくはそのデータ形式を読み出すためのプログラムを起動させることなどが必要となり、この意味において、汎用性が高いとは言えない。しかし、オリジナルデータに含まれる信号データをテキスト形式などで表した上で、換算定数及びその他の任意情報と、暗号化されたハッシュ値と共に、テキスト形式或いは表計算ソフトのデータ形式で、ユーザーに配布することが可能となる。
【００５３】
ユーザー側では、テキストデータと換算定数からバイナリデータを復元することができる。そして、バイナリデータが復元できればハッシュ値を計算することができ、オリジナルデータの秘密鍵で暗号化されたハッシュ値と、ユーザー側において計算したハッシュ値を公開鍵で暗号化したハッシュ値とを比較して改ざんの有無を検証することができる。これらのステップは、以下のように説明される。
【００５４】
受け取ったデータのうち、「ハッシュエリア以外」を計算対象として、ハッシュ値を計算する（ステップＳｂ１）。次に、ステップＳｂ１で計算したハッシュ値を公開鍵で暗号化する（ステップＳｂ２）。そして、ハッシュエリアに書き込まれたオリジナルハッシュ（秘密鍵で暗号化されたハッシュ値）とステップＳｂ２で計算された公開鍵で暗号化したハッシュ値とを比較する。そして、両者を比較し（ステップＳｂ３）、一致すれば改ざんなし、不一致であれば改ざんありと判定する（ステップＳｂ４）。
【００５５】
ハッシュ関数と公開鍵は、ユーザー側に予め配布しておくことが必要であるが、ハッシュ関数や公開鍵だけでは（すなわち、秘密鍵がなければ）、暗号化済みハッシュ値の復号ができないため、ユーザー側への配布手段に際して特に気をつかうことはなく、暗号化したりバーチャル・プライベート・ネットワーク経由で送付したりすることは必須ではない。
【００５６】
このようにすれば、「ハッシュ付きデータ」でありながらテキストデータで配布でき、しかも、改ざんの有無をチェックすることが可能となる。
【００５７】
上述の説明では、もっとも取り扱いが容易な可逆変換データである「テキストデータ」を例に説明したが、逆変換可能なあらゆるデータフォーマットでの利用が可能である。また、データ処理を行う側の既存システムは一切追加・変更の必要がないため、運用に対して全く影響しない。すなわち、本実施形態で説明したデータにハッシュ値を埋め込む方式を既存のシステムに採用することで生じるデメリットはなく、運用コストも一切増加することなく、データの信頼性を任意の暗号強度で得ることが可能となる。
また、ハッシュ値の比較（秘密鍵で暗号化されたオリジナルハッシュと、ユーザー側で計算したハッシュ値を公開鍵で暗号化したハッシュ値との比較）を行う際には、テキストデータなどの可逆変換データに変換したデータ同士を比較してもよい。
【００５８】
（その他の実施形態）
なお、Ａ／Ｄ変換器の出力データにデジタル署名を付与する方法を前提として、ノイズを含むデジタルデータにおける「ノイズエリア」に、秘密鍵で暗号化されたハッシュ値（すなわちデジタル署名）を埋め込むと説明してきたが、他のデジタルデータであっても、すなわち、データエリアと非データエリアを有するデジタルデータであれば、非データエリアに秘密鍵で暗号化されたハッシュ値や、必要によりその他の追加的な情報（例えば、識別ＩＤや換算定数等）を埋め込むことができる。
【００５９】
さらに、上述の実施形態では、いずれもＡ／Ｄ変換器側の暗号鍵に「秘密鍵」を用いる前提で説明をしてきたが、本発明ではそもそも復号処理が必要ない為、Ａ／Ｄ変換器に内包する暗号鍵を秘密鍵の代わりに公開鍵に置き換えて、秘密鍵を用いない形態を取ることもできる。この場合、ステップＳａ０で準備された秘密鍵は、「公開鍵の生成」のためだけに用い、それ以降のステップで用いる暗号鍵を全て公開鍵に置き換えることができる。このようにすると、データ記録装置側に秘密鍵を保持する必要がなくなる。
このような実施形態の変形もまた、本発明の技術的思想の範囲内である。
【産業上の利用可能性】
【００６０】
上記第１及び第２の実施形態で説明したとおり、本発明における「ハッシュ付きデータ」は、テキストデータやハッシュ値が従来ノイズとして利用されなかった非データエリアに埋め込まれものであるため、データを毀損しないので、従来のシステムをそのまま利用することができる。
【図１】
2019189019.tif 000003
【図２】
2019189019.tif 000004
【図３】
2019189019.tif 000005
【図４】
2019189019.tif 000006
【図５】
2019189019.tif 000007
【国際調査報告】
2019189019.tif 000008
2019189019.tif 000009
2019189019.tif 000010
2019189019.tif 000011