JP2001519930A - Method and apparatus for efficient authentication and integrity check using hierarchical hash - Google Patents

Method and apparatus for efficient authentication and integrity check using hierarchical hash

Info

Publication number
JP2001519930A
JP2001519930A JP54061899A JP54061899A JP2001519930A JP 2001519930 A JP2001519930 A JP 2001519930A JP 54061899 A JP54061899 A JP 54061899A JP 54061899 A JP54061899 A JP 54061899A JP 2001519930 A JP2001519930 A JP 2001519930A
Authority
JP
Japan
Prior art keywords
hash
data
block
packet
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP54061899A
Other languages
Japanese (ja)
Inventor
スティーブン ハンナ
ラディア パールマン
Original Assignee
サンマイクロシステムズ インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2001519930A publication Critical patent/JP2001519930A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

(57)【要約】 本発明によれば、データに署名を添付し、これを検証する方法が提供される。データ署名の工程において、データセットをパケットに分割し、該パケットのそれぞれに含まれるデータにハッシュ処理を施してハッシュ値を有するハッシュブロックを生成し、該ハッシュブロックにデジタル署名を添付する。検証工程においては、データ、ハッシュブロック及びデジタル署名を含むパケットを受信し、前記デジタル署名を検証し、前記データにハッシュ処理を施してハッシュ値を生成し得られたハッシュ値を前記ハッシュブロックに格納された値と比較する。 (57) [Summary] According to the present invention, a method for attaching a signature to data and verifying the signature is provided. In the data signature step, the data set is divided into packets, the data included in each of the packets is subjected to hash processing to generate a hash block having a hash value, and a digital signature is attached to the hash block. In the verification step, a packet including data, a hash block and a digital signature is received, the digital signature is verified, a hash value is generated by performing a hash process on the data, and the obtained hash value is stored in the hash block. And compare it with the given value.

Description

【発明の詳細な説明】 階層型ハッシュを用いた効率的な認証及び完全性検査の方法及びその装置 技術分野 本発明は、データ破壊検出に関し、更に詳しくは、階層型ハッシュを用いたデ ータ処理における認証と完全性検査の方法及びその装置に関するものである。 背景技術 特定の企業活動においては、情報を安全に転送することが求められる。その一 例である銀行においては、遠隔地の中央データベースにコンピュータファイルを 定期的に「バックアップ」している。この際、これらのファイルが改ざんされた り、破壊されたりすることなく前記データベースに無事に複製、保存されたこと を確認する必要がある。また、テレビ会議も、安全性の高い情報伝達(画像/音 声/データの伝達)が求められる他の一例である。 昨今では、インターネットなどのオープンなネットワークを用いれば、効率よ く簡単にデジタル通信を行うことができる。しかしながら、通信においてデータ がネットワーク送信エラーにより意図せず破壊されてしまったり、或いは、違法 行為により改ざんされてしまったりする可能性がある。通信に係るこの様な問題 を防ぐ従来技術はいくつかあるが、これらの先行技術は、チェクサム或いはデジ タル署名をデータに付けて送信し、受け取り側でこのチェックサム或いはデジタ ル署名の検証を行うものである。 チェックサムとは検査対象のデータから求める値であるが、通常簡単な計算で 算出できる値である。チェックサムを算出したら、送信装置がデータをチェック サムと一緒に送信する。受け取り側の装置は、受け取ったデータからチェックサ ムを改めて算出し、この値と受け取ったチェックサムの値とを比較する。しかし 、データを改ざんするような能力を持ったハッカーであれば、本来のチェックサ ムを改ざん後のデータと符合するチェックサムに置き換えることもおそらく可能 である。 デジタル署名はデータを破壊しようとする違法行為からデータを保護するもの であるが、チェックサムに比べその計算にかかる費用が高い。データの保護対策 がとられていないポイントを通過せざるを得ないネットワーク環境において、デ ジタル署名によるデータの保護は益々重要性を帯びてきている。 このデジタル署名は、デジタル署名をデータセット一式に添付するバルク署名 フォーマットと呼ばれる形式で用いられることが多いが、このバルク署名フォー マットにはいくつかの欠点がある。デジタル署名を確認する工程は、データセッ ト全体に対して実行される。バルク署名のアルゴリズムではデータのどの部分が 破壊されているのかを識別することはできないため、データが破壊されていた場 合は全てのデータを再送しなければならず費用が増大する。 個別のパケット群にバルク署名を付したデータを送信する場合にも、破壊され たパケットやハッカーにより挿入された不当なパケットの検索には高いコストが かかる。というのは、それぞれのパケットに一連番号を付したパケット群のコピ ーの少なくとも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

Claims (1)

【特許請求の範囲】 1.コンピュータに実装されるデータ処理方法は、 データをパケットに分割する工程と、 前記各パケット内の前記データをハッシュしてハッシュ値を有するハッシュ ブロックを生成する工程と、 ハッシュブロックに署名を施す工程と、 を備えることを特徴とする。 2.請求項1に記載の方法において、前記の署名を施す工程は、更に、ハッシュ ブロックにデジタル署名を付加する副工程を含むことを特徴とする。 3.請求項1に記載の方法は、更にデータセット及びハッシュブロックを送信す る工程を備えることを特徴とする。 4.請求項1に記載の方法において、前記ハッシュ工程は、更に、前記ハッシュ 値が1つのパケットに収まるかどうかを判定する副工程を含むことを特徴とする 。 5.請求項1に記載の方法において、前記ハッシュ工程は、更に、耐衝突ハッシ ュ関数を適用する副工程を含むことを特徴とする。 6.請求項1に記載の方法において、前記ハッシュ工程は、更に、 (a) 前記ハッシュ値をパケットに分割する副工程と、 (b) 前記各パケットにハッシュ関数を適用する副工程と、 を含むことを特徴とする。 7.請求項6に記載の方法は、更に、 結果として得られるハッシュ値が1つのパケットに収まる大きさになるまで 前記(a)及び(b)の副工程を繰り返す工程を備えることを特徴とする。 8.請求項7に記載の方法において、前記(a)及び(b)の副工程の反復の結 果として得られる一連のハッシュ値は、1回前の反復で得られた一連のハッシュ 値よりも小さくなることを特徴とする。 9.請求項8に記載の方法において、前記パケットは少なくとも2つのハッシュ 値を格納するのに十分な大きさを有することを特徴とする。 10.コンピュータに実装されるデータ処理方法は、 データ、ハッシュブロック、及び、デジタル署名を有するパケットを受信す る工程と、 前記デジタル署名を検証する工程と、 前記データのハッシュを行ってハッシュ値を生成する工程と、 前記ハッシュ値を前記ハッシュブロックに格納された値と比較する工程と、 を備えることを特徴とする。 11.コンピュータに実装されるデータ処理方法は、 データセットに対応するハッシュブロックにデジタル署名を添付する工程と 、 前記データ及び前記ハッシュブロックを送信元から宛先へ送信する工程と、 前記宛先での受信と同時に、前記ハッシュブロックに添付された前記デジタ ル署名を検証する工程と、 受け取った前記データセットにハッシュ関数を適用する工程と、 受け取った前記データから得られたハッシュを前記ハッシュブロックに格納 されたハッシュ値と比較する工程と、 を備えることを特徴する。 12.請求項11に記載の方法において、前記の署名を施す工程は、更に、前記 データセットをパケットに分割する副工程を含むことを特徴とする。 13.請求項11に記載の方法において、前記のハッシュ関数を適用する工程は 、更に、耐衝突ハッシュ関数を用いる副工程を含むことを特徴とする。 14.請求項12に記載の方法において、前記パケットは少なくとも2つのハッ シュ値を格納するのに十分な大きさを有することを特徴とする。 15.請求項11に記載の方法において、前記の署名を施す工程は、更に、 (i) 前記ハッシュブロックをパケットに分割する副工程と、 (ii) 前記パケットにハッシュ関数を適用して第2のハッシュブロックを 生成する副工程と、 を含むことを特徴とする。 16.請求項15に記載の方法において、前記(i)及び(ii)の副工程は結果 として得られるハッシュブロックがデジタル署名と共に1つのパケットに収まる 大きさになるまで繰り返されることを特徴とする。 17.データ処理装置は、 データセットをパケットに分割する分割手段と、 前記各パケット内のデータをハッシュしてハッシュ値を有するハッシュブロ ックを生成するハッシュ手段と、 前記ハッシュブロックに署名を適用する適用手段と、 を備えることを特徴とする。 18.請求項17に記載の装置において、前記適用手段は、更に、ハッシュブロ ックにデジタル署名を付加する付加手段を含むことを特徴とする。 19.請求項17に記載の装置は、更に、前記データセット及びハッシュブロッ クを送信する送信手段を含むことを特徴とする。 20.請求項17に記載の装置において、前記ハッシュ手段は、更に、前記ハッ シュ値が1つのパケットに収まるかどうかを判定する判定手段を含むことを特徴 とする。 21.請求項17に記載の装置において、前記ハッシュ手段は、更に、耐衝突ハ ッシュ関数を適用する適用手段を含むことを特徴とする。 22.請求項17に記載の装置において、前記ハッシュ手段は、更に、 (a) 前記ハッシュ値をパケットに分割する分割手段と、 (b) ハッシュ関数を前記各パケットに適用する適用手段と、 を含むことを特徴とする。 23.請求項22に記載の装置は、更に、前記(a)及び(b)の手段の機能を 、結果として得られるハッシュ値が1つのパケットに収まる大きさになるまで繰 り返し実行する実行手段を含むことを特徴とする。 24.データ処理装置は、 データ、ハッシュブロック、及び、デジタル署名を含むパケットを受信する 受信手段と、 前記デジタル署名の認証を行う認証手段と、 前記データをハッシュしてハッシュ値を生成するハッシュ手段と、 前記ハッシュ値を前記ハッシュブロックに格納された値と比較する比較手段 と、 を備えることを特徴とする。 25.データ処理装置は、 データセットに対応するハッシュブロックにデジタル署名を施す署名手段と 、 前記データ及び前記ハッシュブロックを送信元から宛先へ送信する送信手段 と、 宛先で受信すると同時に、前記ハッシュブロックに添付されたデジタル署名 を検証する検証手段と、 受信した前記データセットにハッシュ関数を適用する適用手段と、 受信した前記データのハッシュ値を前記ハッシュブロックに格納されている ハッシュ値と比較する比較手段と、 を備えることを特徴とする。 26.請求項25に記載の装置において、前記署名手段は、更に、前記データセ ットをパケットに分割する署名手段を含むことを特徴とする。 27.請求項25に記載の装置において、前記適用手段は、更に、耐衝突ハッシ ュ関数を用いる手段を含むことを特徴とする。 28.請求項26に記載の装置において、前記パケットは少なくとも2つのハッ シュ値を格納するのに十分な大きさを有することを特徴とする。 29.請求項25に記載の装置において、前記署名手段は、更に、 (i) 前記ハッシュブロックをパケットに分割する分割手段と、 (ii) ハッシュ関数を前記パケットに適用し第2のハッシュブロックを生 成する適用手段と、 を含むことを特徴とする。 30.請求項29に記載の装置は、更に、 前記(i)及び(ii)の手段の機能を、結果として得られるハッシュブロッ クがデジタル署名と共に1つのパケットに収まる大きさになるまで繰り返し実行 する実行手段を含むことを特徴とする。 31.データ処理のためのコンピュータ可読コードを記憶するコンピュータ可読 媒体を備えるコンピュータ製品であって、前記コンピュータ可読媒体は、 データセットをパケットに分割する分割モジュールと、 前記各パケット内のデータをハッシュして、ハッシュ値を有するハッシュブ ロックを生成するハッシュモジュールと、 前記ハッシュブロックに署名を適用する適用モジュールと、 を備えることを特徴とする。 32.請求項31に記載の製品において、前記適用モジュールは、更に、ハッシ ュブロックにデジタル署名を付加する付加モジュールを含むことを特徴とする。 33.請求項31に記載の製品は、更に、前記データセット及びハッシュブロッ クを送信する送信手段を有することを特徴とする。 34.請求項31に記載の製品において、前記ハッシュモジュールは、更に、前 記ハッシュ値が1つのパケットに収まるがどうかを判定する判定モジュールを含 むことを特徴とする。 35.請求項31に記載の製品において、前記ハッシュモジュールは、更に、耐 衝突ハッシュ関数を適用する適用モジュールを含むことを特徴とする。 36.請求項31に記載の製品において、前記ハッシュモジュールは、更に、 (a) 前記ハッシュ値をパケットに分割する分割モジュールと、 (b) 前記各パケットにハッシュ関数を適用する適用モジュールと、 を含むことをを特徴とする。 37.請求項36に記載の製品は、更に、 前記(a)及び(b)のモジュールの機能を、結果として得られるハッシュ 値が1つのパケットに収まる大きさになるまで繰り返し実行する実行モジュール を含むことを特徴とする。 38.データ処理のためのコンピュータ可読コードを記憶するコンピュータ可読 媒体を備えるコンピユータ製品であって、前記コンピュータ可読媒体は、 データ、ハッシュブロック、及び、デジタル署名を有するパケットを受信す る受信モジュールと、 前記デジタル署名を検証する検証モジュールと、 前記データをハッシュしてハッシュ値を生成するハッシュモジュールと、 前記ハッシュ値を前記ハッシュブロックに格納されたハッシュ値と比較する 比較モジュールと、 を備えることを特徴とする。 39.データ処理のためのコンピュータ可読コードを記憶するコンピュータ可読 媒体を備えるコンピュータ製品であって、前記コンピュータ可読媒体は、 データセットに対応するハッシュブロックにデジタル署名を施す署名モジュ ールと、 前記データ及び前記ハッシュブロックを送信元から宛先へ送信する送信モジ ュールと、 前記宛先で受信すると同時に、前記ハッシュブロックに添付された前記デジ タル署名を検証する検証モジュールと、 受信した前記データセットにハッシュ関数を適用する適用手段と、 受信した前記データのハッシュを前記ハッシュブロックに格納されたハッシ ュ値と比較する比較手段と、 を備えることを特徴とする。 40.請求項39に記載の製品において、前記署名モジュールは、更に、前記デ ータセットをパケットに分割する署名モジュールを備えることを特徴とする。 41.請求項39に記載の製品において、前記適用モジュールは、更に、耐衝突 ハッシュ関数を用いる適用モジュールを有することを特徴とする。 42.請求項40に記載の製品において、前記パケットは少なくとも2つのハッ シュ値を格納するのに十分な大きさを有することを特徴とする。 43.請求項39に記載の製品において、前記署名モジュールは、更に、 (i) 前記ハッシュブロックをパケットに分割する分割モジュールと、 (ii) 前記パケットにハッシュ関数を適用して第2のハッシュブロックを 生成する適用モジュールと、 を備えることを特徴とする。 44.請求項43に記載の製品は、更に、 前記(i)及び(ii)のモジュールの機能を、結果として得られるハッシュ ブロックがデジタル署名と共に1つのパケットに収まる大きさになるまで繰り返 し実行する実行モジュールを含むことを特徴とする。 45.パケット化されたデータをプロセッサが処理するために用られるコンピュ ータ可読媒体に格納されたデータ構造であって、該データ構造は、 各々がデータを有する複数のパケットと、 前記データパケットにハッシュ関数を適用した結果得られるハッシュ値を有 するハッシュブロックと、 前記ハッシュブロックに付加されたデジタル署名と、 を備えることを特徴とする。 46.プロセッサによるデータ処理に用られるコンピュータ可読媒体に別々に格 納可能な部分データを有するデータ構造であって、該データ構造は、 各々がデータを有する複数のパケットと、 前記データパケットにハッシュ関数を適用した結果得られるハッシュ値を含 む第1のハッシュブロックと、 を備え、前記第1のハッシュブロックは、1つのパケットの大きさを基に定 めた所定の大きさよりも大きいとともにハッシュブロックのパケットに分割され ていることを特徴とし、 該データ構造は、更に、 前記第1のハッシュブロックのハッシュ値のパケットにハッシュ関数を適用 した結果得られるハッシュ値を含む第2のハッシュブロックを備え、該第2のハ ッシュブロックは前記所定の大きさの許容する範囲内であることを特徴とする。 47.請求項46に記載のデータ構造は、更に、前記第2のハッシュブロックに 付加されたデジタル署名を有することを特徴とする。[Claims] 1. The data processing method implemented in the computer is     Dividing the data into packets;     A hash having a hash value by hashing the data in each of the packets Generating a block;     Signing the hash block;     It is characterized by having. 2. 2. The method of claim 1, wherein the step of applying the signature further comprises: The method includes a sub-step of adding a digital signature to the block. 3. The method of claim 1, further comprising transmitting the data set and the hash block. The method is characterized by comprising a step of: 4. The method of claim 1, wherein the hashing step further comprises: Including a sub-step of determining whether the value fits into one packet . 5. The method of claim 1, wherein the hashing step further comprises: And a sub-step of applying a queue function. 6. The method of claim 1, wherein the hashing step further comprises:     (A) dividing the hash value into packets;     (B) applying a hash function to each packet;     It is characterized by including. 7. The method according to claim 6, further comprising:     Until the resulting hash value is large enough to fit in one packet The method includes a step of repeating the sub-steps (a) and (b). 8. 8. The method according to claim 7, wherein the sub-steps of (a) and (b) are repeated. The resulting set of hash values is the set of hash values from the previous iteration. It is characterized by being smaller than the value. 9. 9. The method of claim 8, wherein the packet has at least two hashes. It is characterized by having a size large enough to store a value. 10. The data processing method implemented in the computer is     Receive packets with data, hash blocks, and digital signatures Process,     Verifying the digital signature;     Generating a hash value by hashing the data;     Comparing the hash value with a value stored in the hash block;     It is characterized by having. 11. The data processing method implemented in the computer is     Attaching a digital signature to a hash block corresponding to the data set;     ,     Transmitting the data and the hash block from a source to a destination;     Simultaneously with the reception at the destination, the digital data attached to the hash block Verifying the signature     Applying a hash function to the received data set;     Store the hash obtained from the received data in the hash block Comparing with the obtained hash value;     It is characterized by having. 12. The method of claim 11, wherein the step of applying a signature further comprises: The method includes a sub-step of dividing the data set into packets. 13. The method of claim 11, wherein applying the hash function comprises: And a sub-process using a collision-resistant hash function. 14. 13. The method according to claim 12, wherein the packet comprises at least two packets. It is characterized by having a size large enough to store a hash value. 15. The method of claim 11, wherein the step of applying a signature further comprises:     (I) dividing the hash block into packets;     (Ii) applying a hash function to the packet to form a second hash block Generating sub-steps;     It is characterized by including. 16. 16. The method of claim 15, wherein the sub-steps of (i) and (ii) result in Hash block fits into one packet with digital signature It is characterized by being repeated until the size is reached. 17. The data processing device     Division means for dividing the data set into packets;     A hash block having a hash value by hashing the data in each packet. Hash means for generating a lock,     Application means for applying a signature to the hash block;     It is characterized by having. 18. 18. The apparatus according to claim 17, wherein said applying means further comprises a hash block. A digital signature to the digital signature. 19. The apparatus of claim 17, further comprising the data set and the hash block. It is characterized by including a transmitting means for transmitting a clock. 20. 18. The apparatus according to claim 17, wherein said hashing means further comprises: Characterized in that it includes a judging means for judging whether or not the threshold value is contained in one packet. And 21. 18. The apparatus according to claim 17, wherein said hashing means further comprises: And an application means for applying a hash function. 22. 18. The apparatus according to claim 17, wherein said hash means further comprises:     (A) dividing means for dividing the hash value into packets;     (B) applying means for applying a hash function to each of the packets;     It is characterized by including. 23. An apparatus according to claim 22, further comprising a function of the means (a) and (b). Until the resulting hash value is large enough to fit in one packet. It is characterized by including execution means for performing the execution repeatedly. 24. The data processing device     Receive packets containing data, hash blocks, and digital signatures Receiving means;     Authentication means for authenticating the digital signature;     Hash means for hashing the data to generate a hash value;     Comparing means for comparing the hash value with a value stored in the hash block When,     It is characterized by having. 25. The data processing device     Signature means for digitally signing a hash block corresponding to the data set;     ,     Transmission means for transmitting the data and the hash block from a transmission source to a destination When,     A digital signature attached to the hash block upon receipt at the destination Verification means for verifying     Application means for applying a hash function to the received data set;     The hash value of the received data is stored in the hash block Comparing means for comparing with the hash value;     It is characterized by having. 26. 26. The apparatus according to claim 25, wherein said signature means further comprises: And signature means for dividing the packet into packets. 27. 26. The apparatus of claim 25, wherein said applying means further comprises: It is characterized by including means for using a queue function. 28. 27. The apparatus of claim 26, wherein the packet comprises at least two packets. It is characterized by having a size large enough to store a hash value. 29. 26. The apparatus according to claim 25, wherein said signature means further comprises:     (I) dividing means for dividing the hash block into packets;     (Ii) applying a hash function to the packet to generate a second hash block; Application means to be implemented;     It is characterized by including. 30. The device according to claim 29, further comprising:     The function of the means of (i) and (ii) above is Repeatedly, until the packet is large enough to fit in one packet with the digital signature It is characterized by including execution means for performing. 31. Computer readable storing computer readable code for data processing A computer product comprising a medium, the computer readable medium comprising:     A division module for dividing the data set into packets;     Hashing the data in each of the packets to form a hash block having a hash value; A hash module to generate the lock,     An application module for applying a signature to the hash block;     It is characterized by having. 32. 32. The product of claim 31, wherein the application module further comprises a hash And an additional module for adding a digital signature to the queue block. 33. The product of claim 31, further comprising the data set and the hash block. A transmission means for transmitting a clock. 34. 32. The product of claim 31, wherein the hash module further comprises: A determination module for determining whether the hash value fits in one packet. It is characterized by the following. 35. 32. The product of claim 31, wherein the hash module further comprises: An application module for applying a collision hash function is included. 36. 32. The product of claim 31, wherein the hash module further comprises:     (A) a dividing module for dividing the hash value into packets;     (B) an application module for applying a hash function to each of the packets;     It is characterized by including. 37. The product of claim 36, further comprising:     The functions of the modules of (a) and (b) are combined with the resulting hash An execution module that repeatedly executes until the value is large enough to fit in one packet It is characterized by including. 38. Computer readable storing computer readable code for data processing A computer product comprising a medium, the computer readable medium comprising:     Receive packets with data, hash blocks, and digital signatures Receiving module,     A verification module for verifying the digital signature;     A hash module for hashing the data to generate a hash value;     Compare the hash value with a hash value stored in the hash block A comparison module,     It is characterized by having. 39. Computer readable storing computer readable code for data processing A computer product comprising a medium, the computer readable medium comprising:     Signature module for digitally signing hash blocks corresponding to data sets And     A transmission module for transmitting the data and the hash block from a source to a destination And     Upon receiving at the destination, the digital attached to the hash block A verification module for verifying the signature     Application means for applying a hash function to the received data set;     The hash of the received data is stored in the hash stored in the hash block. A comparing means for comparing with the test value;     It is characterized by having. 40. 40. The product of claim 39, wherein the signature module further comprises: A signature module for dividing the data set into packets. 41. 40. The product of claim 39, wherein the application module further comprises: It has an application module using a hash function. 42. 41. The product of claim 40, wherein the packet has at least two hacks. It is characterized by having a size large enough to store a hash value. 43. 40. The product of claim 39, wherein the signature module further comprises:     (I) a dividing module for dividing the hash block into packets;     (Ii) applying a hash function to the packet to form a second hash block An application module to be generated,     It is characterized by having. 44. The product of claim 43, further comprising:     The function of the modules of (i) and (ii) above, resulting in a hash Repeat until block is large enough to fit in one packet with digital signature And an execution module that executes the program. 45. The computer used by the processor to process packetized data A data structure stored on a data readable medium, the data structure comprising:     A plurality of packets each having data;     A hash value obtained by applying a hash function to the data packet; Hash block     A digital signature added to the hash block;     It is characterized by having. 46. Separately stored on computer readable media used for data processing by the processor. A data structure having partial data that can be stored, the data structure comprising:     A plurality of packets each having data;     A hash value obtained by applying a hash function to the data packet is included. A first hash block;     Wherein the first hash block is determined based on the size of one packet. Is larger than the specified size and divided into hash block packets. Is characterized by the fact that     The data structure further comprises:     Applying a hash function to a packet having a hash value of the first hash block A second hash block including a hash value obtained as a result of the The brush block is within the allowable range of the predetermined size. 47. 47. The data structure of claim 46, further comprising: It has a digital signature added.
JP54061899A 1998-02-04 1999-02-04 Method and apparatus for efficient authentication and integrity check using hierarchical hash Pending JP2001519930A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1853198A 1998-02-04 1998-02-04
US09/018,531 1998-02-04
PCT/US1999/002417 WO1999040702A1 (en) 1998-02-04 1999-02-04 Method and apparatus for efficient authentication and integrity checking using hierarchical hashing

Publications (1)

Publication Number Publication Date
JP2001519930A true JP2001519930A (en) 2001-10-23

Family

ID=21788409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54061899A Pending JP2001519930A (en) 1998-02-04 1999-02-04 Method and apparatus for efficient authentication and integrity check using hierarchical hash

Country Status (4)

Country Link
EP (1) EP0972374A1 (en)
JP (1) JP2001519930A (en)
AU (1) AU2583099A (en)
WO (1) WO1999040702A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182963A (en) * 2000-12-19 2002-06-28 Ricoh Co Ltd Secure electronic medium management method
JP2003521056A (en) * 2000-01-24 2003-07-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Protect content from illegal duplication by proving the existence of a complete dataset using security identifiers
JP2005354217A (en) * 2004-06-08 2005-12-22 Sony Corp Information output processor, information input processor, information processing system, and information processing method
WO2007052477A1 (en) * 2005-11-04 2007-05-10 Nec Corporation Message authentication device, message authentication method, message authentication program, and recording medium therefor
JP2007274717A (en) * 2004-04-02 2007-10-18 Matsushita Electric Ind Co Ltd Unauthorized content detection system
JP2008022074A (en) * 2006-07-10 2008-01-31 Nintendo Co Ltd Data authentication method and data authentication system
WO2008026238A1 (en) * 2006-08-28 2008-03-06 Mitsubishi Electric Corporation Data processing system, data processing method, and program
JP2008072417A (en) * 2006-09-14 2008-03-27 Kddi Corp Content distribution device for digital broadcasting, content authentication system for digital broadcasting, content authentication method for digital broadcasting, and program
JP2008099068A (en) * 2006-10-13 2008-04-24 Kddi Corp Content distribution device for digital broadcasting, content authentication device for digital broadcasting, content authentication method for digital broadcasting, and program
JP2008178097A (en) * 2007-01-19 2008-07-31 Samsung Electronics Co Ltd Content providing apparatus and method for determining integrity of content, content using apparatus and method, and content providing apparatus and method for revoking content using apparatus
JP2010508719A (en) * 2006-10-27 2010-03-18 クゥアルコム・インコーポレイテッド Synthetic message authentication code
US8037312B2 (en) 2007-01-22 2011-10-11 Fujitsu Limited Method and apparatus for digital signature authentication, and computer product
JP2012114934A (en) * 2012-01-10 2012-06-14 Nintendo Co Ltd Data authentication method and data authentication system
JP2019125892A (en) * 2018-01-15 2019-07-25 株式会社東芝 Electronic apparatus, method, program, server, method, and program
US10412069B2 (en) 2015-01-19 2019-09-10 Mitsubishi Electric Corporation Packet transmitting apparatus, packet receiving apparatus, and computer readable medium
JP2021506185A (en) * 2018-09-18 2021-02-18 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド Blockchain data processing methods, devices, equipment and media

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7264958B1 (en) 1999-02-22 2007-09-04 Transgene, S.A. Method for obtaining a purified viral preparation
US6715076B1 (en) * 1999-10-21 2004-03-30 Koninklijke Philips Electronics N.V. Video signal authentication system
CN1818990A (en) 2000-01-21 2006-08-16 索尼公司 Method and apparatus for symmetric encryption/decryption of recorded data
GB0229894D0 (en) 2002-12-21 2003-01-29 Ibm Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes
JP4460251B2 (en) * 2003-09-19 2010-05-12 株式会社エヌ・ティ・ティ・ドコモ Structured document signature apparatus, structured document adaptation apparatus, and structured document verification apparatus.
FR2887350A1 (en) * 2005-06-21 2006-12-22 France Telecom Data medium e.g. DVD, content e.g. audio data, securing method for mobile, involves authenticating content by correlation of two control data, if integrity signature is correct, and continuing reading of content if authentication is correct
JP4827468B2 (en) 2005-07-25 2011-11-30 キヤノン株式会社 Information processing apparatus, information processing apparatus control method, computer program, and computer-readable storage medium
US8204213B2 (en) 2006-03-29 2012-06-19 International Business Machines Corporation System and method for performing a similarity measure of anonymized data
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US9032181B2 (en) * 2009-05-19 2015-05-12 Vmware, Inc. Shortcut input/output in virtual machine systems
KR20130024996A (en) * 2011-08-24 2013-03-11 한국전자통신연구원 Method for packet source authentication using single-buffered hash in multicast environment and apparatus for the same
DE102012104947B4 (en) 2012-06-07 2016-06-30 cp.media AG Method of creating a secured data object and system
DE102013226780A1 (en) * 2013-12-19 2015-06-25 Siemens Aktiengesellschaft Method and device for digitally signing a file
IL248237A0 (en) 2016-10-06 2017-01-31 Kipnis Aviad Signature method and system
IL250359A0 (en) 2017-01-30 2017-03-30 Kipnis Aviad Signature method and system
WO2020162895A1 (en) 2019-02-06 2020-08-13 Hewlett-Packard Development Company, L.P. Issue determinations responsive to measurements
CA3126050A1 (en) 2019-02-06 2020-08-13 Hewlett-Packard Development Company, L.P. Print component with memory array using intermittent clock signal
EP3710986B1 (en) 2019-02-06 2023-06-07 Hewlett-Packard Development Company, L.P. Modifying control data packets that include random bits
SG11202107305QA (en) 2019-02-06 2021-08-30 Hewlett Packard Development Co Lp Integrated circuit with address drivers for fluidic die
EP3717255A1 (en) 2019-02-06 2020-10-07 Hewlett-Packard Development Company, L.P. Emulating parameters of a fluid ejection die
CN113412466A (en) 2019-02-06 2021-09-17 惠普发展公司,有限责任合伙企业 Identifying random bits in control packets
US11485134B2 (en) 2019-02-06 2022-11-01 Hewlett-Packard Development Company, L.P. Data packets comprising random numbers for controlling fluid dispensing devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625693A (en) * 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US5754659A (en) * 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003521056A (en) * 2000-01-24 2003-07-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Protect content from illegal duplication by proving the existence of a complete dataset using security identifiers
JP4672228B2 (en) * 2000-01-24 2011-04-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Protect content from illegal duplication by proving the existence of a complete dataset using security identifiers
JP2011061845A (en) * 2000-01-24 2011-03-24 Koninkl Philips Electronics Nv Protecting content from illicit reproduction by proof of existence of complete data set using security identifier
JP2002182963A (en) * 2000-12-19 2002-06-28 Ricoh Co Ltd Secure electronic medium management method
JP4654258B2 (en) * 2004-04-02 2011-03-16 パナソニック株式会社 Unauthorized content detection system
US7900062B2 (en) 2004-04-02 2011-03-01 Panasonic Corporation Unauthorized contents detection system
US8261084B2 (en) 2004-04-02 2012-09-04 Panasonic Corporation Unauthorized contents detection system
JP2007274717A (en) * 2004-04-02 2007-10-18 Matsushita Electric Ind Co Ltd Unauthorized content detection system
US9270470B2 (en) 2004-04-02 2016-02-23 Panasonic Intellectual Property Management Co., Ltd. Unauthorized contents detection system
US8972737B2 (en) 2004-04-02 2015-03-03 Panasonic Intellectual Property Management Co., Ltd. Unauthorized contents detection system
JP2008176814A (en) * 2004-04-02 2008-07-31 Matsushita Electric Ind Co Ltd Unauthorized content detection system
JP4654219B2 (en) * 2004-04-02 2011-03-16 パナソニック株式会社 Unauthorized content detection system
US8667291B2 (en) 2004-04-02 2014-03-04 Panasonic Corporation Unauthorized contents detection system
JP2005354217A (en) * 2004-06-08 2005-12-22 Sony Corp Information output processor, information input processor, information processing system, and information processing method
KR101137481B1 (en) 2004-06-08 2012-04-20 소니 주식회사 Information-processing system and method, information-transmission-processing apparatus, information-reception-processing apparatus and a record medium
WO2007052477A1 (en) * 2005-11-04 2007-05-10 Nec Corporation Message authentication device, message authentication method, message authentication program, and recording medium therefor
JP4735644B2 (en) * 2005-11-04 2011-07-27 日本電気株式会社 Message authentication apparatus, message authentication method, message authentication program and recording medium thereof
US8589688B2 (en) 2005-11-04 2013-11-19 Nec Corporation Message authentication device, message authentication method, message authentication program and storage medium therefor
JP2008022074A (en) * 2006-07-10 2008-01-31 Nintendo Co Ltd Data authentication method and data authentication system
JPWO2008026238A1 (en) * 2006-08-28 2010-01-14 三菱電機株式会社 Data processing system, data processing method, and program
WO2008026238A1 (en) * 2006-08-28 2008-03-06 Mitsubishi Electric Corporation Data processing system, data processing method, and program
JP2008072417A (en) * 2006-09-14 2008-03-27 Kddi Corp Content distribution device for digital broadcasting, content authentication system for digital broadcasting, content authentication method for digital broadcasting, and program
JP2008099068A (en) * 2006-10-13 2008-04-24 Kddi Corp Content distribution device for digital broadcasting, content authentication device for digital broadcasting, content authentication method for digital broadcasting, and program
JP2010508719A (en) * 2006-10-27 2010-03-18 クゥアルコム・インコーポレイテッド Synthetic message authentication code
US8949600B2 (en) 2006-10-27 2015-02-03 Qualcomm Incorporated Composed message authentication code
JP2008178097A (en) * 2007-01-19 2008-07-31 Samsung Electronics Co Ltd Content providing apparatus and method for determining integrity of content, content using apparatus and method, and content providing apparatus and method for revoking content using apparatus
US8037312B2 (en) 2007-01-22 2011-10-11 Fujitsu Limited Method and apparatus for digital signature authentication, and computer product
JP2012114934A (en) * 2012-01-10 2012-06-14 Nintendo Co Ltd Data authentication method and data authentication system
US10412069B2 (en) 2015-01-19 2019-09-10 Mitsubishi Electric Corporation Packet transmitting apparatus, packet receiving apparatus, and computer readable medium
JP2019125892A (en) * 2018-01-15 2019-07-25 株式会社東芝 Electronic apparatus, method, program, server, method, and program
JP2021506185A (en) * 2018-09-18 2021-02-18 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド Blockchain data processing methods, devices, equipment and media

Also Published As

Publication number Publication date
EP0972374A1 (en) 2000-01-19
AU2583099A (en) 1999-08-23
WO1999040702A1 (en) 1999-08-12

Similar Documents

Publication Publication Date Title
JP2001519930A (en) Method and apparatus for efficient authentication and integrity check using hierarchical hash
US6611925B1 (en) Single point of entry/origination item scanning within an enterprise or workgroup
US7032224B2 (en) Method for the secure and timely delivery of large messages over a distributed communication network
US7165076B2 (en) Security system with methodology for computing unique security signature for executable file employed across different machines
US5633931A (en) Method and apparatus for calculating message signatures in advance
USRE37178E1 (en) Method and apparatus for authentication of client server communication
US9842230B1 (en) System and method for automatically detecting and then self-repairing corrupt, modified or non-existent files via a communication medium
WO2022095244A1 (en) Cross-chain transaction method, system and apparatus, device, and storage medium
US8316240B2 (en) Securing computer log files
KR20040098025A (en) Watermaking a digital object with a digital signature
EP1783652B1 (en) Electronic document authenticity guarantee method and electronic document disclosure system
US7096497B2 (en) File checking using remote signing authority via a network
US7401221B2 (en) Advanced stream format (ASF) data stream header object protection
US7574605B2 (en) Method of managing digital signature, apparatus for processing digital signature, and a computer readable medium for recording program of managing digital signature
CN109934593B (en) Design method and device for realizing block chain system supporting multiple signatures
CN109493061B (en) Verification method and device for data of block chain, electronic equipment and storage medium
CN108960830B (en) Intelligent contract deployment method, device, equipment and storage medium
US20060010501A1 (en) Digital file management and imaging system and method including secure file marking
US20020138554A1 (en) Method for remotely verifying software integrity
US20120324229A1 (en) System and method for generating keyless digital multi-signatures
JPH10326078A (en) Implementation of digital sign for data stream and data archives
CN112311779B (en) Data access control method and device applied to block chain system
EP1376306A2 (en) Multiplexing a secure counter to implement second level secure counters
CN114239080B (en) Software multilayer signature method and system based on digital certificate
CN110943840A (en) Signature verification method and system