【発明の詳細な説明】
階層型ハッシュを用いた効率的な認証及び完全性検査の方法及びその装置
技術分野
本発明は、データ破壊検出に関し、更に詳しくは、階層型ハッシュを用いたデ
ータ処理における認証と完全性検査の方法及びその装置に関するものである。
背景技術
特定の企業活動においては、情報を安全に転送することが求められる。その一
例である銀行においては、遠隔地の中央データベースにコンピュータファイルを
定期的に「バックアップ」している。この際、これらのファイルが改ざんされた
り、破壊されたりすることなく前記データベースに無事に複製、保存されたこと
を確認する必要がある。また、テレビ会議も、安全性の高い情報伝達(画像/音
声/データの伝達)が求められる他の一例である。
昨今では、インターネットなどのオープンなネットワークを用いれば、効率よ
く簡単にデジタル通信を行うことができる。しかしながら、通信においてデータ
がネットワーク送信エラーにより意図せず破壊されてしまったり、或いは、違法
行為により改ざんされてしまったりする可能性がある。通信に係るこの様な問題
を防ぐ従来技術はいくつかあるが、これらの先行技術は、チェクサム或いはデジ
タル署名をデータに付けて送信し、受け取り側でこのチェックサム或いはデジタ
ル署名の検証を行うものである。
チェックサムとは検査対象のデータから求める値であるが、通常簡単な計算で
算出できる値である。チェックサムを算出したら、送信装置がデータをチェック
サムと一緒に送信する。受け取り側の装置は、受け取ったデータからチェックサ
ムを改めて算出し、この値と受け取ったチェックサムの値とを比較する。しかし
、データを改ざんするような能力を持ったハッカーであれば、本来のチェックサ
ムを改ざん後のデータと符合するチェックサムに置き換えることもおそらく可能
である。
デジタル署名はデータを破壊しようとする違法行為からデータを保護するもの
であるが、チェックサムに比べその計算にかかる費用が高い。データの保護対策
がとられていないポイントを通過せざるを得ないネットワーク環境において、デ
ジタル署名によるデータの保護は益々重要性を帯びてきている。
このデジタル署名は、デジタル署名をデータセット一式に添付するバルク署名
フォーマットと呼ばれる形式で用いられることが多いが、このバルク署名フォー
マットにはいくつかの欠点がある。デジタル署名を確認する工程は、データセッ
ト全体に対して実行される。バルク署名のアルゴリズムではデータのどの部分が
破壊されているのかを識別することはできないため、データが破壊されていた場
合は全てのデータを再送しなければならず費用が増大する。
個別のパケット群にバルク署名を付したデータを送信する場合にも、破壊され
たパケットやハッカーにより挿入された不当なパケットの検索には高いコストが
かかる。というのは、それぞれのパケットに一連番号を付したパケット群のコピ
ーの少なくとも1つを受け取らないと署名の検査が行えないからである。しかも
、バルク署名の完全性は全てのパケットを受け取るまで検査できない。このため
、データセットのサイズに相関して時間遅れが増大する。また、同一の一連番号
を有する異なる内容のパケットが複数受け取られた場合、内1つは偽造されたデ
ータであるが、偽造データが含まれていると仮定して、いずれがある特定の一連
番
号に係る正当なコピーであるか検出するには、該当する一連番号を有するそれぞ
れのコピーを一連の正当なパケット全てと比較しなければならない。
この問題に対処するのが、「パケットレベル署名」と称される方法である。
このパケットレベル署名によれば、個々のパケットそれぞれにデジタル署名が付
される。従って、個別のパケットを受け取り次第署名の検査を開始することがで
き、破壊されたパケットを個別に識別することが可能になる。しかしながらこの
方法は、更なる演算と繰り返しデジタル署名を検査することを要するのでかなり
の時間を要する。
ローカル・エリア・ネットワーク(LAN)上に存在する複数のデータベース
に用いられる従来の階層型ハッシュ技術では、データベース管理システムがデー
タベースのハッシュ値によって各データベースが同一であるか否かを検証する。
そして、ハッシュ値は更にハッシュ処理され最終的に得られた値が定期的に一斉
通信され、これによりLAN上の全ての端末が同一のデータベースを共有するこ
とが確認できる。もし、データベース間に差異が認められるときは、次なるハッ
シュレベルが比較され最終的にデータベースのどの部分が異なっているのかを突
き止め、この差異を修正、更新することができる。しかしながらこの従来技術に
よるシステムは、1つのデジタル署名を用いて任意の量のデータを、違法行為に
よる意図的なエラーと意図的でないエラーとの両方から保護するようには対応し
ていない。現時点では、1つの署名を任意の量のデータに用いて、受信と同時に
データの検証を行うことを可能にするシステムは存在しない。
従って、意図しないデータの破壊と違法行為によってデータ処理に意図的に生
じさせるエラーとからデータを保護し、受信と同時にデータの検証することを可
能にするシステムが求められている。加えて、計算に掛かるオーバーヘッドを少
なく保ちつつ、データのどの部分が破壊されているかに関する情報を提供できる
システムが求められている。
発明の開示
本発明に係るシステム及び方法は、任意のデータセットをハッシュ処理したパ
ケットを底辺とし、署名を施した1つのブロックを頂点とするハッシュ値の階層
を構築し、これにより1つのデジタル署名で、データセットをデータ処理におけ
るデータの破壊及び違法行為によるエラーとの両方から保護する。データセット
に先立ってこのハッシュ値の階層を受け取ることにより受信と同時に迅速にデー
タパケットの検証を行うことができる。本発明の方法に用いられるこの階層型構
造は暗号化によって個々のデータを保護するので、破壊された部分を容易に識別
することができる。本発明によるシステムは、また、他の部分のデータが破壊さ
れた場合、及び、他の部分のデータをまだ受け取っていない場合でも各部分のデ
ータを検証することが可能である。
本発明に係るコンピュータに実装されるデータ処理方法は、データをパケット
に分割する工程と、前記各パケット内の前記データをハッシュしてハッシュ値を
有するハッシュブロックを生成する工程と、ハッシュブロックに署名を施す工程
と、を備えることを要旨とするのものである。
本発明に係るコンピュータに実装されるデータ処理方法は、データ、ハッシュ
ブロック、及び、デジタル署名を有するパケットを受信する工程と、前記デジタ
ル署名を検証する工程と、前記データのハッシュを行ってハッシュ値を生成する
工程と、前記ハッシュ値を前記ハッシュブロックに格納された値と比較する工程
と、を備えることを要旨とするものである。
図面の簡単な説明
説明の一部を構成する添付図面は、本発明を図示により説明するためのもので
あり、この明細書と共に、本発明の利益及び趣旨を説明するためのものである。
図1は、本発明の使用に適したコンピュータ構成を示すブロック図である。
図2は、本発明の実施に係る、ハッシュブロックにデジタル署名する工程を示
すフローチャートである。
図3、本発明に係るデータ検証の工程を示すフローチャートである。
図4は、サンプルのデータセットのハッシュと各ハッシュブロックへの署名の
例を示す概念図である。
図5は、図4に示すデータセットに基づくデータとハッシュブロックの階層型
構成の一例を示す概念図である。
発明の詳細な説明
以下に本発明に係るシステム及び方法についての詳細を説明する。尚、図面及
び以下の説明においては、同一部材又は類似部材を参照するのに、全体を通して
できる限り同一の符号を使用している。
概略
本発明に係るシステムは、概ね(1)データの署名、(2)データの検証の2
つのデータ処理機能を実行するが、先ず、データの署名について述べる。本発明
に係るシステムはデータに署名を施すため、所与のデータに対応する一連のハッ
シュ値であるハッシュブロックの階層構造を構築する。これには、データセット
が複数のパケットに分割され、各パケットに一方向・耐衝突ハッシュ関数を用い
一連のハッシュ値を生成する。こうして得たハッシュ値はグループ化して複数の
パケットに収められるが、以下これらのパケットを「ハッシュブロック」と称す
る。このハッシュブロックを更にハッシュすることにより、より上位の階層レベ
ルのハッシュブロックを生成する。この処理を、最終的に1つのハッシュブロッ
クが1つのパケットに収まる大きさになるまで繰り返す。階層レベルの最上位の
ハッシュブロック、即ち最小のハッシュブロックにデジタル署名をほどこす。そ
の後ハッシュブロック及びデータは、例えばネットワーク・ノードといった所期
する宛先に送信される。
次に、データの検証について述べる。本発明に係るシステムは、概ね、最上位
の階層レベルのハッシュブロックに添付されたデジタル署名を検査することによ
ってデータセットの検証を行う。最上位ハッシュブロックが検証されれば、1つ
下位の階層レベルのハッシュブロックのパケットのハッシュ値を、最上位の階層
レベルのブロックに格納されたハッシュ値と比較することによって該階層のハッ
シュブロックも検証できる。以下の階層のハッシュブロックも全て同様に、常に
一つ上位の階層レベルのハッシュブロックに基づいて検証される。データは最終
的に、データセットのハッシュ値を有するハッシュブロックに対して検証される
。つまり、所与のどんなデータパケットもそれより上位の階層レベルのハッシュ
ブロックが受信されれば検証することができる。
コンピュータ構成
図1は、本発明の実施例を実行可能なコンピュータシステム100を図示する
ブロック図である。コンピュータシステム100は、バス102或いは情報通信
を可能にする他の通信装置と、バス102に接続されている情報処理のためのプ
ロセッサ104を備える。コンピュータシステム100は更に、例えばランダム
・アクセス・メモリ(RAM)或いは他の動的記憶装置といった主記憶装置10
6も備え、この主記憶装置106はプロセッサ104により実行される命令や情
報を格納するためのものであり、バス101に接続されている。主記憶装置10
6はまた、プロセッサ104が命令を実行中に一時的に生じる変数や他の中間情
報を格納するのにも用いられる。コンピュータシステム100は更に、バス10
2に接続されるリード・オンリ・メモリ(ROM)108或いは他の静的記憶装
置を備えるが、これは静的情報やプロセッサ104用の命令を格納するためのも
のである。この他、コンピュータシステム100は、バス102に接続された、
情報や命令を格納するための磁気ディスク或いは光ディスクといった記憶装置1
10もそなえる。
コンピュータシステム100はさらに、バス102を介してコンピュータのユ
ーザーに情報を表示するための陰極線管(CRT)のようなディスプレイ112
に接続することも可能である。また、英数字キーボードやその他のキーを有する
入力装置114もバス102に接続されており、これを用いてプロセッサ104
への情報伝達、コマンドの選択を行う。プロセッサ104への情報伝達、コマン
ドの選択、及び、ディスプレイ112上でのカーソルの移動制御を行うためのユ
ーザー入力装置としては、この他にもマウス、トラックボール、カーソル移動キ
ー等のカーソル制御装置116でもよい。この入力装置は通常第1の軸(例えば
X軸及び第2の軸(例えばY軸)の2軸の自由度を有し、これにより装置は平面
上における位置指定を行うことができる。
本発明は更に、コンピュータシステム100を用いたデータの署名、検証に関
する。本発明の1つの好適な実施例によれば、プロセッサ104が主記憶装置1
06に格納された1つ又は複数の一連の命令を実行すると、コンピュータシステ
ム100が署名を施したり或いは検証したりしたデータが提供される。このため
の命令は、例えば記憶装置110のような別のコンピュータ可読媒体から主記憶
装置106に読み込むことも可能である。主記憶装置106に格納されたこれら
一連の命令を実行すると、プロセッサ104は以下に述べる処理工程を実行する
。また、別の実施例として組み込み型回路をソフトウェアの命令の代わりに或い
はそれと併せて用いて本発明を実装することも可能である。つまり、本発明の実
施例は、ハードウェア回路とソフトウェアの特定の組み合わせに何ら限定される
も
のではない。
この「コンピュータ可読媒体」という表現はここでは、プロセッサ104によ
って実行される命令を提供するあらゆる媒体に言及するものであり、この様な媒
体は、不揮発性媒体、揮発性媒体、伝送媒体等を含む様々な形態が可能であるが
、これらの形態に何ら限定されるものではない。上記の揮発性媒体は主記憶装置
106のような動的記憶装置を含み、また伝送媒体は同軸ケーブル、銅線或いは
光ファイバを含み、バス102を構成する回線もこれに含まれる。伝送媒体はま
た電波通信や赤外線通信の際生成される音波或いは光波の形態をとることも可能
である。
一般的な形態のコンピュータ可読媒体には例えば、フロッピーディスク、フレ
キシブルディスクがあるが、これ以外にも磁気テープ他あらゆる磁気媒体、CD
−ROM他あらゆる光媒体、パンチカード、紙テープ他物理的に一定のパターン
の孔を空けて用いる媒体、RAM、PROM、EPROM、FLASH−EPR
OM他あらゆるタイプのメモリチップやカートリッジ、或いは以下に詳細を述べ
る搬送波、などコンピュータで読み取ることができるあらゆる媒体が含まれる。
この様に、プロセッサ104によって実行される1つ又は複数の命令を搬送す
るのに様々な形態のコンピュータ可読媒体を用いることが可能である。例えば、
先ず命令を遠隔地のコンピュータの磁気ディスク上に搬送し、そこからこのコン
ピュータが命令を動的記憶装置に読み込む。次にこの読み込んだ命令をモデムを
介し、電話回線を通じて転送する。コンピュータシステム100側のモデムが電
話回線に乗せられた命令を受け取り、赤外線送信機を使ってデータを赤外線信号
に変換する。バス102に接続された赤外線検出器がこの赤外線信号で運ばれる
データを受け取り、受け取ったデータをバス102に伝送する。バス102はこ
のデータを主記憶装置106に送り、ここからプロセッサ104は命令を受け取
り、実行する。主記憶装置106が受け取った命令は、プロセッサ104の実行
に前後して記憶装置110に格納することも選択的に可能である。
コンピュータシステム100は更に、バス102に接続された通信インターフ
ェース118を備える。通信インターフェース118はローカルネットワーク1
22に接続されるネットワークリンク120との両方向データ通信を可能にする
。通信インターフェースは例えば、総合サービスデジタル通信網(ISDN)カ
ードとしてもよいし、対応する電話回線とのデータ通信接続を可能にするモデム
としてもよい。或いはまた別の例として、通信インターフェース118としてロ
ーカル・エリア・ネットワーク(LAN)カードを用いれば、互換性のあるLA
Nとのデータ通信接続が可能になる。また無線接続を用いてもよい。上記のいず
れの実装においても通信インターフェース118は、種々の情報を表すデジタル
・データ・ストリームを搬送する電気信号、電磁気信号、或いは光信号の送信及
び受信を行う。
ネットワークリンク120は通常、1つ又は複数のネットワークを通じて他の
データ装置にデータを提供する。例えば、ネットワークリンク120は、インタ
ーネット・サービス・プロバイダ(以降、単に「ISP」と称する)126が操
作するホスト・コンピュータ124や他のデータ処理機器との接続をローカルネ
ットワーク122を通じて提供する。ISP126は代わりに、現在では広く一
般に「インターネット」128と称される世界中にまたがるパケットデータ通信
のネットワークを通じてデータ通信サービスを提供する。ローカル・ネットワー
ク122及びインターネット128の両ネットワークともに、デジタル・データ
・ストリームを搬送する電気信号、電磁気信号、或いは光信号を用いる。種々の
ネットワークを通じて伝送されるこれらの信号やネットワークリンク120上の
信号は、コンピュータシステム100から或いはコンピュータシステム100へ
デジタルデータを搬送するためのものであるが、これらはあくまでも情報を伝達
する搬送波の例に過ぎない。
コンピュータシステム100は、メッセージの送信、例えばプログラム・コー
ドのようなデータの受信をネットワーク、ネットワークリンク120及び通信イ
ンターフェース118を介して行うことができる。例えばインターネットの場合
、サーバ130がアプリケーションプログラムに対する要求コードをインターネ
ット128、ISP126、ローカルネットワーク122、及び通信インターフ
ェースを通じ受け取ることが可能である。本発明によれば、このようにダウンロ
ードしたアプリケーションにより以下に述べるようなデータ処理オペレーション
を可能にする。本発明の趣旨によれば、例えばコンピュータ可読媒体に格納した
り遠隔地の装置に送信したりする必要のあるデータに、署名を施すことができる
。本発明の趣旨によれば又、コンピュータ可読媒体から取り出したデータ或いは
遠隔地の装置から受け取ったデータの検証を行うこともできる。
コードを受け取り次第、プロセッサ104は受け取ったコードを実行及び/も
しくは後のコードの実行に備え、記憶装置110又は他の不揮発性記憶装置に格
納する。このようにして、コンピュータシステム100は、アプリケーションコ
ードを搬送波に乗せて得ることが可能である。
階層型ハッシュ
本発明に係るシステムは、一方向・耐衝突ハッシュ関数を用いて任意の長さの
データを一定の長さのハッシュ値に変換するものである。一方向ハッシュ関数は
、この他にも以下に述べるような特徴を有する。例えば、所与のデータセットや
メッセージに適用して、該データセットのハッシュ値を算出するのが比較的容易
であり、且つ、ハッシュ値を与えられたとしても、ハッシュ関数がそれと同じハ
ッシュ値を導く別のデータセットを推測することは極めて困難であるという特徴
が挙げられる。
「耐衝突性」とは、ハッシュ関数に関して用いられる場合、2つの異なるメッ
セージが同じ関数に対し同じハッシュ値を導き出す可能性が極めて低いことを意
味する。一方向・耐衝突ハッシュ関数は、C.Kaufman、R.Perlman、M.Specine著
“Network Security:Private Communication in a Public World”1995年P
rentice Hall発行に詳細に説明されている。
(1)データ署名
図2は、階層型ハッシュの署名手続を示すフローチャートである。本発明によ
るシステムは概ね、データセットを小さなパケットに分割することからハッシュ
処理を開始する(ステップ210)。一般に、パケットの区切りは任意であるが
、更に効率性を高めるには、良好なデータと破壊されたデータの区切りが予想さ
れる位置に一致させるとよい。例えば、ネットワーク・データグラムの区切りや
ディスクのセクターなどが、適した区切りの例として挙げられる。
データのパケット化が済んだら、耐衝突・一方向ハッシュ関数を各パケットに
適用する(ステップ220)。各ハッシュ関数はそれぞれ1つずつハッシュ値を
生成するので、ハッシュ関数を各データパケットに適用すれば一連のハッシュ値
が生成される。この一連のハッシュ値をハッシュブロックと呼ぶ(ステップ23
0)。
ハッシュ関数をデータパケットに適用して得られたハッシュブロックがデジタ
ル署名と共に1つのパケットに収めるには大きすぎる場合(ステップ240)、
該ハッシュブロックを更に小さくする必要があるので、これを更にまた複数のパ
ケットに分ける(ステップ245)。そして、これらのパケットのそれぞれにハ
ッシュ関数を適用する。上述したように、ハッシュ関数を各パケットに適用する
と一連のハッシュ値が生成される。ここで新たに生成されたブロックは、先のハ
ッシュブロックより小さくなるが、これを更に高い階層レベルのハッシュブロッ
クと呼ぶ。この更に高い階層レベルのハッシュブロックが、デジタル署名と共に
1つのパケットに収めるには、尚大きすぎる場合、ステップ220から245を
繰り返して更に小さな、より高い階層レベルのハッシュブロックを生成する。
上述のハッシュブロックを分割する手順は、その結果生ずるハッシュブロック
がデジタル署名と共に1つのパケットに収まる大きさになるまで繰り返す(ステ
ップ240)。つまり、最上位の階層レベルのハッシュブロック502(図5参
照)が最小のハッシュブロックとなる。この最上位の階層レベルのハッシュブロ
ックを生成するのに用いたハッシュブロックを、階層型ハッシュブロック510
を形成するハッシュブロックの構造全体において、1つ下位の階層レベルのハッ
シュブロック501と呼ぶ。
しかしながら、データパケットをハッシュして生成されたハッシュブロック(
ステップ230)が、初めからデジタル署名と共に1つのパケットに十分収まる
大きさであったら、ハッシュブロックを分割してより高いレベルのハッシュブロ
ックを生成する必要はなく、最上位の階層レベルのハッシュブロックが唯一のハ
ッシュブロックとなる。
本発明に係るシステムによれば、最上位の階層レベルのハッシュブロックのパ
ケットに署名を施し(ステップ250)、これ以外のハッシュブロックやデータ
パケットには署名を付す必要はない。最上位の階層レベルのハッシュブロックに
デジタル署名を1つ施せば、データ全ての認証が十分に行えるからである。著し
く高い冗長性が求められるときは、それより下位の階層レベルのハッシュブロッ
クにも署名を付すことができるが、これらの署名は、最上位の階層レベルのハッ
シュブロックが破壊されていて回復できないときにのみ使用される。
以下にデータ転送についての一つの実施例について述べる。パケットの転送の
順序は、まず最上位の階層レベルのハッシュブロックのパケットを先に転送し
(ステップ260)、続いてより大きなハッシュブロックをそれぞれ転送し(ス
テップ270、275、280)、最後にデータを転送する(ステップ280)
。しかし、認証を最速に行うには、ハッシュブロックのパケットとデータパケッ
トが混ざり合っていてもよく、必ずしも全てのハッシュブロックをデータパケッ
トより先に転送する必要はない。ただし、最上位の階層レベルのパケットは必ず
一番最初に転送しなければならず、下位の階層レベルのハッシュパケットは、そ
のハッシュパケットに対応するデータよりも先に転送しなければならない。なぜ
ならば、後述の理由によりこれらのコンテントを先に検証しなければいけないか
らである。
このデータ署名の手続によれば、1つのデジタル署名を伴う最上位の階層レベ
ルのハッシュブロックのパケット、下位の階層レベルのハッシュブロック、およ
びデータが受け取り側に送信される。これだけでデータ保護に必要な情報の全て
である。
(2)データの検証
図3は、本発明に係るデータの受信、検証の工程を示すフローチャートである
。データの検証においては、先ず最初に最上位の階層レベルのパケットに添付さ
れたデジタル署名の検証を行わなければならない(ステップ320)。最上位の
階層レベルの署名の検証に失敗した場合、或いは、最上位の階層レベルのデータ
パケットが転送中に破壊されたと判定された場合は、他のデータパケットの検証
に先だって、この修復または回復を行わなければならない(ステップ330、3
35)。この際、冗長性を高める目的で、下位のハッシュブッロクにも署名が施
されている場合はこれらの署名を検証する。
一つのハッシュブロックの受信及び検証が行われれば、それに依存するデータ
パケットの検証も行える(ステップ340)。検証は、そのパケットのハッシュ
を算出し、これをハッシュブロックに格納されたハッシュ値と比較して行う(ス
テップ350)。検証に失敗した場合、データパケットは破壊されておりこれを
修理又は回復しなければならない(ステップ350)。当然ながら、検証におい
てはデジタル署名を施す際に用いたのと同じハッシュ関数が用いられる。
更にこの他にもハッシュブロックがあると判断されれば(ステップ360)、
これらのハッシュブロックのパケットを受信し検証する(ステップ370)。ハ
ッシュ関数を用いてそれぞれのパケットのハッシュ値を求め、ここで得たハッシ
ュ値を受信した最上位の階層レベルに格納されているハッシュ値と比較する。比
較結果が一致じない場合は、このハッシュブロックのパケットは破壊されており
、これに依存する他のパケットを検証に先だって、修復又は置き換えを行わなけ
ればならない(ステップ370)。
他にもハッシュブロックがある場合、1つ下位の階層レベルのハッシュブロッ
クのパケットから得られるハッシュを、1つ上位の階層レベルのハッシュブロッ
クに格納された値と比較する。この検証工程が失敗した場合はそのパケットは破
壊されており、これに依存する他のパケットの検証に先立って、修復又は回復し
なければならない。
例
以下、図4及び5を参照し、例を用いて階層型ハッシュ及び検証の手順につい
て説明する。図4は、サンプルとしてのデータセットのハッシュとハッシュブロ
ックへの署名の例を示すブロック図であり、図5は、図4に示すデータに基づく
データ及びハッシュブロックの階層型構造のサンプルとを示すブロック図である
。図4及び5において、Ai(ただし、i=1、2、3)はデータの値を表し、
Bi及びCiはそれぞれ異なるハッシュブロックにおけるハッシュ値を表す。尚、
この
サンプルにおいて、パケットのサイズ及びデータの量は全く任意である。従って
、データの大きさ及び選択されたハッシュ関数よっては、より多くの階層レベル
のハッシュブロックが必要になる。
先ず最初にデータ値401からなるデータ列を与えられたとすると、このデー
タ値は複数個のデータパケット402aから402fに分割される。この例では
、A1からA18までの18個のデータ値が、それぞれ3個のデータ値を有する6
個のパケットに分割される。これらのデータパケット402に一方向・耐衝突ハ
ッシュ関数403を適用する。各データパケットのハッシュを行うと、結果とし
てハッシュ値がそれぞれ1つずつ求められる。この例では、データパケットA1
、A2、A3をハッシュしてハッシュ値B1を生成する。
このデータパケットから得られたハッシュ値B1からB6は新たなハッシュブロ
ック(404)を形成する。図に示した例では、ハッシュブロックから得られた
一連のハッシュ値とデジタル署名が一緒に1つのパケットには収まりきらないた
め、これをB1、B2、B3の3個のハッシュ値から成るパケット404aと、B4
、B5、B6の3個のハッシュ値から成るパケット404bと、の2つのパケット
に分割している。
その後、ハッシュブロックのパケット404に一方向・耐衝突ハッシュ関数4
05を適用し、それぞれのハッシュブロックのパケットから更に次のハッシュ値
を得る。例えば、B1、B2、B3から成るパケットからハッシュ値C1が生成され
る。これらのハッシュ値C1、C2がはまた次のハッシュブロック406を構成す
る。この場合、ハッシュブロック406は十分に小さいため更なる分割は不要で
ある。最終的に、この最後に生成されたC1及びC2のハッシュブロックにデジタ
ル署名407が施され、これにより、デジタル署名が添付された、最上位の階層
レベルのハッシュブロック408が構成される。このように前述の署名手順(図
2)を用いて、一連のデータ401から最上位の階層レベルのハッシュブロック
408及び1つ下位の階層レベルのハッシュブロック404を生成する。
データの認証では、まず最初にこの最上位の階層レベルのハッシュブロック5
02に添付されたデジタル署名を検証する。もしこの最上位の階層レベルのハッ
シュブロック502がこの検証に合格すれば、つまりそれに続く階層レベルのハ
ッシユブロック501も認証できることなる。それぞれのパケットにハッシュ関
数(図示せず)を適用し、これをその上位の階層レベルにあるハッシュブロック
に格納された対応するハッシュ値と比較する。つまり、B1からB6で構成される
ハッシュブロック501のパケット501aと501bは、ハッシュブロック5
02に格納された値C1及びC2を用いて検証する。図5のサンプルではB1、B2
、B3からなるパケットのハッシュをC1の値と比較する。検証に失敗した場合は
、B1、B2、B3のパケットは破壊されていることを意味し、このパケットに従
属する他のパケット、(この例ではデータ値A1からA9で構成されるパケット5
00aから500c)の検証に先だってこれを修復または置き換えする必要があ
る。
尚、先に検証したハッシュブロックパケットが破壊されていても、もう一方の
ハッシュブロックには影響はなく、検証を行うことができる。例えば図5におい
て、最初に検証を行うハッシュブロックB1、B2、B3のパケット501aが損
傷していても、同じ階層レベルのハッシュブロックB4、B5、B6の第2のパケ
ット501bの検証は、このパケット501bのハッシュとC2の値を比較し、
滞り無く行うことができる。
データパケットの検証も前述と同様な方法で行われる。例えば、データパケッ
トA10、A11、A12の検証は、データパケット500dのハッシュをB4の値と
比較することによって行い、この検証に失敗すれば、データパケットA10、A11
、A12は破壊されていることになる。この場合でも、他のデータパケットは尚、
認
証可能である。恣意的な例として、図5に示すように、データA10、A11、A12
から成る第4番目のパケット500dが、仮に破壊されているとしても、データ
A13、A14、A15から成る第5番目のデータパケット500eの検証には影響な
く、このデータパケットのハッシュとB5の値とを比較すれば検証は行える。こ
の様に、データ受信、検証の手順(図3)を最上位の階層レベルのハッシュブロ
ック502に適用すれば、データセット500の検証を行うことができる。
本発明によれば、たとえデータの送信または受信が順序通り行われない場合に
おいても、データパケットの検証を行うことができる。また、本発明に係るシス
テムによれば、全てのパケットが送信されるのを待たずしてデータパケットの検
証を行うことができる。どのパケットでもそれに対応するハッシュブロックの受
信、検証が済んでさえいれば、検証を行うことが可能である。これにより遅れ時
間を効果的に減少させることができ、遅れ時間は、ハッシュを算出したり、算出
したハッシュを対応するハッシュブロックに格納された値と比較したりするため
に要する時間にまで減少する。この遅れ時間は、全てのパケットを受信した後で
なければどのパケットの検証も行うことができないバルク署名を採用した場合の
遅れ時間と比較してずっと短く、パケットレベルの署名に比べ、計算にかかるオ
ーバヘッドも少なくできる。
また更に、ハッシュブロック送信のタイミングの選択次第で時間の節約を行う
ことが可能である。例えば、ハッシュブロック中の第2のパケットは、該ハッシ
ュブロック中の最初のパケットに従属する全てのパケットが送信されるまで送る
必要はない。従って、本発明によれば全てのハッシュブロックを一度に送信する
ことによる遅れ時間を節減することができる。
結論
以上説明したように、本発明による階層型ハッシュによれば、チェックサムで
は不可能であった違法行為によるデータの改ざんからデータを保護することがで
きるようになる。また更に、パケットレベルでの署名では不可能であった1つの
デジタル署名を任意の量のデータに施すことが可能になる。この構造によりデー
タを受け取り次第その検証を行うことがで可能になるので、バルク署名による方
法にみられるような全てのデータの受信を待たなければならないことによる遅れ
時間を排除できる。しかも、受信と同時にデータの検証を行うことができるのに
も関わらず、本発明に係るシステムは、個々のパケットに署名を施す方法では高
くなってしまう計算にかかるオーバヘッドを低くできる。加えて、データの送受
信が特定の順序で行われなくても、データの検証を開始することできる。
階層型構造を用いることにより、破壊されているデータパケットやセクション
を個別に認識することが可能になる。破壊されたデータパケットが存在しても、
破壊されていない他のパケットは有効であり、破壊されたデータパケットの影響
を受けない。加えて、破壊されたデータパケットがある場合でも、検証が済んで
いない他のパケットの認証は可能である。また、他のパケットの検証中に、並行
して破壊されたパケットの修理、回復を行うことができ、例えばバルク署名を用
いる方法とは異なり、データの全部を置き換える必要はない。これにより大幅な
効率化と、費やされる時間の大幅な節減が実現される。
統括すると、本発明に係るシステムによれば、暗号技術を用いてデータの各部
分を保護する一方で、1つのデジタル署名のみで任意の量のデータの保護が可能
になる。これを達成するには、データを表すハッシュ値を階層型に構築し、その
最上位の階層レベルのハッシュに署名を施し送信する。これを受信後、ハッシュ
値に添付されたデジタル署名を検証する。その受信と同時に、データは対応する
ハッシュ値と比較して検証される。
以上、本発明の実施の形態について既述したが、これは図示と説明のためであ
って、本発明の形態は上述の形態が全てではなく、何らこれに限定されるもので
はない。上述の記載に鑑みて、或いは本発明の実施を通じて種々の変容例、変形
例が可能である。本発明の範囲は、請求の範囲及びその均等物によって定められ
る。DETAILED DESCRIPTION OF THE INVENTION
Method and apparatus for efficient authentication and integrity check using hierarchical hash
Technical field
The present invention relates to data corruption detection, and more particularly, to data using hierarchical hashing.
The present invention relates to a method and apparatus for authentication and integrity check in data processing.
Background art
Certain business activities require that information be transferred securely. That one
In an example bank, a computer file is stored in a remote central database.
We regularly "back up". At this time, these files have been tampered with
Is safely copied and stored in the database without being destroyed
Need to check. In addition, videoconferencing can be performed with highly secure information transmission (image / sound
Voice / data transmission) is another example.
In recent years, using an open network such as the Internet
Digital communication can be performed easily and easily. However, data in communication
Is unintentionally destroyed due to network transmission errors or is illegal
It may be falsified by an act. Such communication problems
There are several conventional techniques to prevent this, but these prior arts use checksum or digital
Transmits the data with a digital signature, and the checksum or digital
This verifies the signature.
The checksum is a value obtained from the data to be inspected.
It is a value that can be calculated. After calculating the checksum, the transmitting device checks the data
Send with Sam. The receiving device checks the data based on the received data.
The value is calculated again, and this value is compared with the received checksum value. However
If the hacker has the ability to alter data,
It is probably possible to replace the system with a checksum that matches the data after tampering
It is.
Digital signatures protect data from illicit attempts to destroy it
However, the calculation cost is higher than the checksum. Data protection measures
In a network environment that must go through unobserved points
Protecting data with digital signatures is becoming increasingly important.
This digital signature is a bulk signature that attaches the digital signature to a set of data
Format is often used, but this bulk signature format
Mats have several disadvantages. The process of verifying a digital signature is a data set
It is performed for the entire event. Which part of the data in the bulk signature algorithm
Since it is not possible to identify whether the data has been destroyed,
In that case, all data must be retransmitted, which increases costs.
Even when sending bulk signed data to individual packet groups,
High cost to search for illegal packets or illegal packets inserted by hackers
Take it. This is because a copy of a packet group with a serial number assigned to each packet.
This is because the signature cannot be checked unless at least one of the signatures is received. Moreover
However, the integrity of the bulk signature cannot be verified until all packets have been received. For this reason
, The time delay increases in relation to the size of the data set. Also, the same serial number
If multiple packets with different contents are received, one of them is forged data.
Data, but assuming that it contains counterfeit data,
Turn
In order to detect whether the copy is legitimate for the issue,
That copy must be compared to all of the series of valid packets.
To address this problem, a method called "packet-level signature" is used.
According to this packet-level signature, a digital signature is attached to each individual packet.
Is done. Therefore, signature verification can be started as soon as individual packets are received.
Thus, it becomes possible to individually identify the destroyed packets. However, this
The method is rather expensive as it requires additional operations and repeatedly checking the digital signature.
It takes time.
Multiple databases residing on a local area network (LAN)
With the conventional hierarchical hash technology used for
It verifies whether each database is the same based on the hash value of the database.
The hash value is further hash-processed, and the finally obtained value is periodically synchronized.
Communication so that all terminals on the LAN share the same database.
Can be confirmed. If there are differences between the databases, the next
Levels are compared to determine which parts of the database are different.
Stopping, this difference can be corrected and updated. However, this prior art
A system uses a single digital signature to turn any amount of data into illegal activity.
To protect against both intentional and unintentional errors.
Not. At this time, one signature is used for any amount of data,
No system exists that allows for data validation.
Therefore, unintentional destruction of data and unlawful activities may intentionally affect data processing.
Protects data from unwanted errors and allows data to be verified upon receipt.
There is a need for a system that can function. In addition, it reduces computational overhead.
To provide information about what parts of the data have been corrupted
A system is needed.
Disclosure of the invention
The system and method according to the present invention provide a hashed password for an arbitrary data set.
A hash value hierarchy with a block at the bottom and one signed block at the top
, So that with one digital signature, the data set
Data corruption and illegal errors. data set
By receiving this hash value hierarchy prior to
Data packet can be verified. This hierarchical structure used in the method of the present invention
The structure protects individual data with encryption, making it easy to identify damaged parts
can do. The system according to the invention also ensures that other parts of the data are
Each part of the data, even if it has been received and other parts of the data have not yet been received.
Data can be verified.
The data processing method implemented in the computer according to the present invention includes the steps of:
And hashing the data in each of the packets to form a hash value
Generating a hash block having, and signing the hash block
And to provide the following.
A computer-implemented data processing method according to the present invention includes:
Receiving a packet having a block and a digital signature;
Verifying the signature and hashing the data to generate a hash value
Comparing the hash value with a value stored in the hash block
And the gist.
BRIEF DESCRIPTION OF THE FIGURES
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which form a part of the description, illustrate the invention by way of illustration.
Yes, together with this specification, is for explaining the benefits and spirit of the present invention.
FIG. 1 is a block diagram showing a computer configuration suitable for use in the present invention.
FIG. 2 illustrates a process for digitally signing a hash block according to an embodiment of the present invention.
FIG.
FIG. 3 is a flowchart showing a data verification process according to the present invention.
FIG. 4 shows the hash of the sample data set and the signature on each hash block.
It is a conceptual diagram showing an example.
FIG. 5 shows a hierarchical type of data and hash blocks based on the data set shown in FIG.
It is a conceptual diagram showing an example of a composition.
Detailed description of the invention
The details of the system and method according to the present invention will be described below. In addition, drawings and
In the following description, the same or similar members are referred to throughout.
The same symbols are used wherever possible.
Outline
The system according to the present invention generally includes (1) data signature and (2) data verification.
Two data processing functions are performed. First, the data signature will be described. The present invention
In order to sign the data, the system according to
Construct a hierarchical structure of hash blocks that are hash values. This includes the dataset
Is divided into multiple packets, and a one-way collision-resistant hash function is used for each packet.
Generate a series of hash values. The hash values thus obtained are grouped into multiple
These packets are referred to as “hash blocks” below.
You. By further hashing this hash block, a higher hierarchical level is obtained.
Generate a hash block of the file. This process is ultimately performed for one hash block.
Repeat until the packet is large enough to fit in one packet. At the top level of the hierarchy
A digital signature is given to the hash block, that is, the smallest hash block. So
After the hash block and data are
Sent to the destination.
Next, data verification will be described. The system according to the present invention is generally
By checking the digital signature attached to the hash block at the hierarchical level
To verify the data set. If the top hash block is verified, one
The hash value of the packet in the hash block at the lower hierarchical level is
By comparing with the hash value stored in the block of the level,
Shblock can also be verified. Similarly, all hash blocks in the following hierarchy are always
Verification is performed based on the hash block of the next higher hierarchical level. Data is final
Is validated against a hash block with the hash value of the data set
. That is, any given data packet has a higher hierarchical level hash.
Once the block is received it can be verified.
Computer configuration
FIG. 1 illustrates a computer system 100 capable of implementing an embodiment of the present invention.
It is a block diagram. The computer system 100 has a bus 102 or an information communication
And other communication devices that enable
A processor 104 is provided. The computer system 100 further includes, for example, a random
A main storage 10 such as an access memory (RAM) or other dynamic storage;
The main memory 106 stores instructions and information executed by the processor 104.
Information, and is connected to the bus 101. Main storage device 10
6 also include variables and other intermediate information that may occur temporarily while processor 104 is executing instructions.
It is also used to store information. The computer system 100 further includes a bus 10
Read-only memory (ROM) 108 or other static storage
Device for storing static information and instructions for the processor 104.
It is. In addition, the computer system 100 is connected to a bus 102,
Storage device 1 such as a magnetic disk or an optical disk for storing information and instructions
It also has ten.
Computer system 100 further includes a computer unit via bus 102.
A display 112 such as a cathode ray tube (CRT) for displaying information to a user.
It is also possible to connect to. Also has an alphanumeric keyboard and other keys
An input device 114 is also connected to the bus 102 and is used to
To send information to and select commands. Communication of information to processor 104, command
User for selecting a command and controlling the movement of the cursor on the display 112.
Other input devices include mouse, trackball, and cursor movement keys.
Or a cursor control device 116 such as a cursor control device. This input device is typically a first axis (eg,
It has two degrees of freedom, an X axis and a second axis (eg, the Y axis), so that the device is planar
The above position specification can be performed.
The present invention further relates to data signing and verification using the computer system 100.
I do. According to one preferred embodiment of the present invention, the processor 104
Executing one or more of the series of instructions stored in
The data signed or verified by the system 100 is provided. For this reason
Instructions may be stored in main storage from another computer-readable medium, such as storage device 110.
It is also possible to read into the device 106. Those stored in the main storage device 106
Upon executing the sequence of instructions, processor 104 performs the processing steps described below.
. In another embodiment, an embedded circuit is replaced with a software instruction instead of a software instruction.
It is also possible to implement the present invention by using it together. That is, the practice of the present invention
The examples are not limited to any particular combination of hardware circuits and software
Also
Not.
The expression “computer-readable medium” is used herein by the processor 104.
Refers to any medium that provides instructions that are executed by
The body can take a variety of forms, including non-volatile media, volatile media, transmission media, and the like.
However, the present invention is not limited to these forms. The above volatile medium is the main storage device
106, and the transmission medium is coaxial cable, copper wire or
Lines including the optical fiber and constituting the bus 102 are also included in this. Transmission media
Can be in the form of sound waves or light waves generated during radio and infrared communications
It is.
Common forms of computer readable media include, for example, floppy disks,
There is a kibble disk, but there are also magnetic tapes and other magnetic media, CDs
-ROM and other optical media, punch cards, paper tape, and other physically uniform patterns
, RAM, PROM, EPROM, FLASH-EPR
OM or any other type of memory chip or cartridge, or as detailed below
And any computer readable medium such as a carrier wave.
As such, it carries one or more instructions executed by processor 104.
Various forms of computer readable media may be used to access the data. For example,
First, the instructions are transferred to the magnetic disk of a remote computer, from which the computer
The computer reads the instructions into dynamic storage. Next, this read instruction is sent to the modem.
Via the telephone line. The modem on the computer system 100 side
Receives the instruction on the talk line and uses an infrared transmitter to send the data to an infrared signal
Convert to An infrared detector connected to the bus 102 is carried by this infrared signal
The data is received, and the received data is transmitted to the bus 102. Bus 102
Data to main storage 106, from which processor 104 receives the instruction.
And execute. The instructions received by the main storage 106 are executed by the processor 104.
Can be selectively stored in the storage device 110 before or after the operation.
Computer system 100 further includes a communication interface connected to bus 102.
Ace 118 is provided. The communication interface 118 is the local network 1
22 allows two-way data communication with a network link 120 connected to
. The communication interface is, for example, an integrated services digital communication network (ISDN).
Modem that can be used as a card or that enables data communication connection with the corresponding telephone line
It may be. Alternatively, as another example, the communication interface 118
Compatible local area network (LAN) card
N enables a data communication connection. Alternatively, a wireless connection may be used. None of the above
In these implementations, the communication interface 118 is a digital interface representing various information.
Transmission and transmission of electrical, electromagnetic or optical signals carrying data streams
And receive.
Network link 120 typically connects to another network through one or more networks.
Providing data to the data device. For example, network link 120 may
Network service provider (hereinafter, simply referred to as “ISP”) 126
Connection to the host computer 124 and other data processing equipment
Network 122. The ISP 126 has now replaced
Packet data communication throughout the world, commonly referred to as the "Internet" 128
To provide data communication services through the network. Local network
Network 122 and the Internet 128 are both digital data
-Use electrical, electromagnetic or optical signals that carry the stream. Various
These signals transmitted over the network and on the network link 120
Signals from computer system 100 or to computer system 100
These are used to carry digital data, but they only transmit information.
It is only an example of a carrier to be used.
The computer system 100 transmits a message, for example, a program code.
Network, network link 120 and communication interface.
This can be done via interface 118. For example, on the Internet
, The server 130 transmits a request code for the application program to the Internet.
Network 128, the ISP 126, the local network 122, and the communication interface.
It is possible to receive through the ace. According to the present invention, the download
Data processing operations as described below by the loaded application
Enable. According to the gist of the present invention, for example, it is stored in a computer-readable medium.
Data that needs to be transmitted to remote devices.
. According to the gist of the present invention, data or
It can also verify data received from remote devices.
Upon receiving the code, processor 104 executes and / or executes the received code.
Or store it in storage device 110 or another non-volatile storage device for later code execution.
To pay. In this way, the computer system 100
It is possible to get the code on a carrier.
Hierarchical hash
The system according to the present invention uses a one-way collision-resistant hash function to
Data is converted into a hash value of a fixed length. The one-way hash function is
In addition, it has the following features. For example, given a dataset or
Relatively easy to apply to the message to calculate the hash value of the data set
, And given a hash value, the hash function is the same
Feature that it is extremely difficult to guess another data set that derives the
Is mentioned.
"Collision resistance", when used with respect to hash functions, refers to two different messages.
Meaning that it is very unlikely that a message will derive the same hash value for the same function.
To taste. The one-way collision-resistant hash function is described in C. Kaufman, R. Perlman, M. By Specine
“Network Security: Private Communication in a Public World” 1995 P
This is described in detail in the rentice Hall publication.
(1) Data signature
FIG. 2 is a flowchart showing a procedure for signing a hierarchical hash. According to the invention
Systems generally break the data set into smaller packets and therefore have a hash
The process starts (step 210). In general, packet delimiters are arbitrary,
For better efficiency, the separation between good and corrupted data is expected.
It is good to match the position to be set. For example, network datagram delimiters,
Sectors of the disk are examples of suitable breaks.
Once the data has been packetized, a collision-resistant, one-way hash function is applied to each packet.
Apply (step 220). Each hash function returns one hash value
Generate a series of hash values by applying a hash function to each data packet.
Is generated. This series of hash values is called a hash block (step 23).
0).
A hash block obtained by applying a hash function to a data packet
If it is too large to fit in one packet with the signature (step 240),
Since the hash block needs to be smaller, it is necessary to add
Divided into kets (step 245). Then, for each of these packets,
Apply a hash function. Apply a hash function to each packet as described above
And a series of hash values are generated. Here, the newly generated block is
Hash block, but it is
Call This higher level hash block, along with the digital signature,
If it is still too large to fit in one packet, skip steps 220 through 245
Iteratively generate smaller, higher hierarchical level hash blocks.
The procedure for splitting a hash block described above is based on the resulting hash block.
Is repeated with a digital signature until it can fit in one packet (step
240). That is, the hash block 502 at the highest hierarchical level (see FIG. 5)
) Is the smallest hash block. This top level hash block
The hash block used to generate the
In the entire structure of the hash block that forms
Called shblock 501.
However, a hash block generated by hashing the data packet (
Step 230) fits well in one packet with digital signature from the beginning
If it is large, split the hash block into higher-level hash blocks.
It is not necessary to generate a hash, and the top-level hierarchical hash block is the only
It becomes a block.
According to the system of the present invention, the hash block at the highest hierarchical level is
Sign the packet (step 250) and any other hash blocks or data
The packet does not need to be signed. To the top level hash block
This is because if one digital signature is given, all data can be sufficiently authenticated. Author
When high redundancy is required, hash blocks at lower hierarchical levels can be used.
Can also be signed, but these signatures are
Used only when shroud is destroyed and cannot be recovered.
One embodiment of the data transfer will be described below. Packet forwarding
The order is as follows. First, the packet of the hash block at the highest hierarchical level is transmitted first.
(Step 260), and then transfer each of the larger hash blocks (Step 260).
Steps 270, 275, 280), and finally transfer the data (Step 280)
. However, for the fastest authentication, hash block packets and data packets
Packets may be mixed, and not all hash blocks need to be
You do not need to transfer them before However, packets at the highest hierarchical level
Hash packets at the lower hierarchical level must be forwarded first.
Must be transmitted before the data corresponding to the hash packet. why
If so, do we have to verify these content first for the reasons described below?
It is.
According to this data signature procedure, the highest hierarchical level with one digital signature
Hash block packets, lower hierarchical level hash blocks, and
And data are sent to the recipient. This is all you need to protect your data
It is.
(2) Data verification
FIG. 3 is a flowchart showing steps of data reception and verification according to the present invention.
. The first step in validating the data is to attach it to the packet at the highest hierarchical level.
The obtained digital signature must be verified (step 320). Top
If the verification of the signature at the hierarchical level fails, or the data at the highest hierarchical level
If the packet is determined to be corrupted during transmission, verify other data packets
This repair or recovery must be performed (steps 330, 3
35). At this time, in order to increase redundancy, the lower hash block is also signed.
If so, verify these signatures.
If one hash block is received and verified, the data that depends on it
The packet can be verified (step 340). Verification is a hash of the packet
Is calculated and compared with the hash value stored in the hash block.
Step 350). If the verification fails, the data packet is corrupted and
Repair or recovery must be performed (step 350). Naturally, the smell of verification
In this case, the same hash function as that used in applying the digital signature is used.
If it is determined that there is another hash block (step 360),
The packets of these hash blocks are received and verified (step 370). C
The hash value of each packet is calculated using the hash function, and the hash
The hash value is compared with the hash value stored at the highest hierarchical level received. ratio
If the comparisons do not match, the packet for this hash block has been corrupted.
Other packets that depend on this must be repaired or replaced prior to verification.
(Step 370).
If there is another hash block, the hash block at the next lower hierarchical level
The hash obtained from the packet of the
Compare with the value stored in the lock. If this verification step fails, the packet is
Repair or recover prior to verifying other packets that have been corrupted and rely on them.
There must be.
An example
Hereinafter, referring to FIGS. 4 and 5, the hierarchical hashing and verification procedure will be described using an example.
Will be explained. Figure 4 shows the hash and hash block of a sample data set.
FIG. 5 is a block diagram showing an example of signing a lock, and FIG. 5 is based on the data shown in FIG.
FIG. 3 is a block diagram showing data and a sample of a hierarchical structure of a hash block;
. 4 and 5, Ai(Where i = 1, 2, 3) represents the value of the data,
BiAnd CiRepresents hash values in different hash blocks. still,
this
In the sample, the size of the packet and the amount of data are completely arbitrary. Therefore
, Depending on the size of the data and the hash function chosen, more hierarchical levels
Is required.
First, if a data string consisting of data values 401 is given,
The data value is divided into a plurality of data packets 402a to 402f. In this example
, A1From A1818 data values up to 6 each having 3 data values
Divided into packets. These data packets 402 have one-way, collision-resistant
A hash function 403 is applied. Hashing each data packet gives the result
Thus, one hash value is obtained for each. In this example, data packet A1
, ATwo, AThreeAnd hash value B1Generate
Hash value B obtained from this data packet1From B6Is a new hashbro
Forming a hook (404). In the example shown in the figure, the
A series of hash values and digital signatures cannot fit together in one packet
This is B1, BTwo, BThreePacket 404a composed of three hash values ofFour
, BFive, B6And a packet 404b consisting of three hash values of
Is divided into
Then, a one-way collision-resistant hash function 4 is added to the packet 404 of the hash block.
05 and apply the next hash value from the packet of each hash block.
Get. For example, B1, BTwo, BThreeHash value C from the packet consisting of1Is generated
You. These hash values C1, CTwoAlso forms the next hash block 406
You. In this case, the hash block 406 is small enough that no further division is needed.
is there. Finally, this last generated C1And CTwoDigitize to hash block of
The digital signature 407 is applied, and thereby the digital signature is attached.
A level hash block 408 is configured. Thus, the above-mentioned signature procedure (Fig.
2), a hash block at the highest hierarchical level from the series of data 401
408 and the next lower hierarchical level hash block 404 is generated.
In data authentication, first, the hash block 5 at the highest hierarchical level is used.
Verify the digital signature attached to 02. If this top-level hierarchy
If shroud 502 passes this verification, that is,
The hash block 501 can also be authenticated. A hash function is assigned to each packet.
Apply a number (not shown) to the hash block at the higher hierarchical level
With the corresponding hash value stored in the. That is, B1From B6Composed of
The packets 501a and 501b of the hash block 501 are
02 stored in C1And CTwoVerify using. In the sample of FIG. 5, B1, BTwo
, BThreeThe hash of the packet consisting of1To the value of. If validation fails
, B1, BTwo, BThreeMeans that the packet has been destroyed.
Other packets to which it belongs (in this example the data value A1From A9Packet 5 composed of
Need to be repaired or replaced prior to verification of 00a to 500c).
You.
Even if the previously verified hash block packet is destroyed,
The hash block is not affected and can be verified. For example, in Figure 5
Hash block B to be verified first1, BTwo, BThreePacket 501a is lost
Even if damaged, hash block B at the same hierarchical levelFour, BFive, B6The second package
The packet 501b is verified by hashing the packet 501b and CTwoCompare the values of
It can be done without delay.
Verification of the data packet is performed in the same manner as described above. For example, data packets
ATen, A11, A12Of the data packet 500d is BFourAnd the value of
By comparing, if this verification fails, the data packet ATen, A11
, A12Has been destroyed. Even in this case, the other data packets are still
Recognition
Can be proved. As an arbitrary example, as shown in FIG.Ten, A11, A12
Even if the fourth packet 500d consisting of
A13, A14, AFifteenDoes not affect the verification of the fifth data packet 500e
The hash of this data packet and BFiveVerification can be performed by comparing with the value of. This
, The data reception and verification procedure (Fig. 3)
When applied to the block 502, the data set 500 can be verified.
According to the present invention, even if data transmission or reception is not performed in order,
In this case, the data packet can be verified. In addition, the system according to the present invention
According to the system, data packets are detected without waiting for all packets to be transmitted.
Proof can be made. Every packet receives the corresponding hash block.
Verification can be performed as long as trust and verification have been completed. Due to this delay
The delay can be effectively reduced and the delay time can be calculated or calculated
To compare the resulting hash with the value stored in the corresponding hash block
To the time it takes. This delay time is after receiving all packets
Otherwise, no packet can be verified.
It is much shorter than the delay time and requires more computation than packet-level signatures.
Overhead can be reduced.
Furthermore, time is saved depending on the selection of the hash block transmission timing.
It is possible. For example, the second packet in the hash block is
Send until all packets subordinate to the first packet in the queue block have been sent
No need. Therefore, according to the present invention, send all hash blocks at once
Delay time can be saved.
Conclusion
As described above, according to the hierarchical hash according to the present invention, the checksum
Can protect data from tampering with illegal data that was not possible.
I will be able to. Still further, one that was not possible with packet-level signatures
A digital signature can be applied to an arbitrary amount of data. This structure allows data
Data can be verified as soon as it is received.
Delays due to having to wait for all data to be received, as seen in law
You can eliminate time. In addition, data can be verified at the same time as reception
Nevertheless, the system according to the present invention is not very efficient in signing individual packets.
It is possible to reduce the overhead required for the calculation which becomes difficult. In addition, sending and receiving data
Verification of the data can be initiated even if the communication is not performed in a particular order.
Data packets and sections that have been destroyed by using a hierarchical structure
Can be individually recognized. Even if there are corrupted data packets,
Other uncorrupted packets are valid and the effect of the corrupted data packet
Not receive. In addition, even if there are corrupted data packets,
Authentication of other packets that are not possible is possible. Also, while verifying other packets,
Repairs and recovers corrupted packets, for example, using bulk signatures.
You don't have to replace all of the data, unlike the methods you have. This is significant
Efficiency and significant savings in time spent are realized.
In summary, according to the system of the present invention, each part of data is
Protect any amount of data with just one digital signature while protecting minutes
become. This can be achieved by constructing a hierarchical representation of the hash values representing the data,
A signature is applied to the hash of the highest hierarchical level and transmitted. After receiving this, hash
Verify the digital signature attached to the value. Upon receipt, the data will correspond
It is verified against the hash value.
The embodiment of the present invention has been described above, but this is for illustration and description.
Therefore, the embodiments of the present invention are not limited to the above-described embodiments, and are not limited thereto.
There is no. Various modifications and variations in view of the above description or through the implementation of the present invention
Examples are possible. The scope of the invention is defined by the appended claims and equivalents thereof.
You.
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,CY,
DE,DK,ES,FI,FR,GB,GR,IE,I
T,LU,MC,NL,PT,SE),OA(BF,BJ
,CF,CG,CI,CM,GA,GN,GW,ML,
MR,NE,SN,TD,TG),AP(GH,GM,K
E,LS,MW,SD,SZ,UG,ZW),EA(AM
,AZ,BY,KG,KZ,MD,RU,TJ,TM)
,AL,AM,AT,AU,AZ,BA,BB,BG,
BR,BY,CA,CH,CN,CU,CZ,DE,D
K,EE,ES,FI,GB,GD,GE,GH,GM
,HR,HU,ID,IL,IN,IS,JP,KE,
KG,KP,KR,KZ,LC,LK,LR,LS,L
T,LU,LV,MD,MG,MK,MN,MW,MX
,NO,NZ,PL,PT,RO,RU,SD,SE,
SG,SI,SK,SL,TJ,TM,TR,TT,U
A,UG,UZ,VN,YU,ZW
(72)発明者 パールマン ラディア
アメリカ合衆国 01720 マサチューセッ
ツ州 アクトン ハックルベリー レーン
10
【要約の続き】
──────────────────────────────────────────────────続 き Continuation of front page (81) Designated country EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE ), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE , KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZW (72) Inventor Pearlman Radia United States 01720 Acton Huckleberry Lane, Massachusetts 10 Continued