説明

署名データ生成装置及び検証装置

【課題】複数の平文データについて電子署名を用いた署名生成時間や検証に要するデータの総量や検証時間を削減するとともに、一の平文データの検証の際に他の平文データを用いることを不要とすること。
【解決手段】複数の平文データを入力し、複数の平文データそれぞれに対し、ハッシュ計算を行いハッシュデータを生成し、複数の平文データそれぞれに対し、生成された当該平文データに対応するハッシュデータ以外の全てのハッシュデータの排他的論理和を算出し当該平文データの補助データを生成し、全てのハッシュデータの排他的論理和を算出することによって署名用ビット列を生成し、署名生成鍵を用いて署名用ビット列を署名し署名データを生成し、署名データと、複数の平文データと、平文データに対応づけられた補助データとを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
暗号化処理によって電子署名用のデータを生成する署名データ生成技術、生成された電子署名用のデータを用いて検証を行う検証技術に関する。
【背景技術】
【0002】
任意の電子データの本人確認や偽造・改竄防止を目的として、対象となる電子データ(以下、「平文データ」という)に対し電子署名のデータ(以下、「署名データ」という)を生成し、電子署名データを用いて検証する電子署名技術が提案されている。従来、一つの平文データから一つの署名データが生成され、平文データと署名データとが1対1に対応づけて取り扱われていた。このため、署名の生成時間が平文のデータ数に比例してかかることになり、このような従来の電子署名技術では複数の平文データを検証するためには、平文データと同数の署名データを検証することが必要となり、平文データ数の増大に伴って検証に必要となるデータのサイズや検証時間が増大してしまうという問題が生じていた。
【0003】
例えば、平文データのサイズが100byteであり、署名データのサイズが128byteである場合、平文データがn個になるとこれに応じて署名データの総量が128×n(byte)となり、n個の平文データの全てを検証するために必要となるデータサイズは(100+128)×n(byte)となっていた。また、電子署名の検証に要するデータを生成するのに要する時間は、署名生成時間×n+ハッシュデータ生成時間×nであり、ハッシュデータ生成時間が1ミリ秒程度であるとすると、署名生成時間は500ミリ秒程度となっていた。
【0004】
このような問題に対し、複数の平文データに対し一つの署名データを生成する技術が提案されている(特許文献1参照)。この技術によれば、複数の平文データを用いて一つの署名データが生成される。そのため、平文データ数が増大したとしても、必要となる署名データ数は一つのままで増大しない。例えば、上記のように平文データのサイズが100byteであり署名データのサイズが128byteである場合、平文データがn個になったとしても署名データの総量は128byteであり、n個の平文データの全てを検証するために必要となるデータサイズは100×n+128(byte)であった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−060724号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来技術では、署名データを用いて一の平文データを検証する場合に、この署名データの生成に際して使用された他の平文データを用いる必要がある。そのため、他の平文データを検証以外の目的では必要としない装置に対しても他の平文データを開示する必要があったため、他の平文データのセキュリティの低下を招いてしまうという問題があった。
【0007】
上記事情に鑑み、本発明は、複数の平文データについて電子署名を用いた署名生成時間や検証に要するデータの総量や検証時間を削減するとともに、一の平文データの検証の際に他の平文データを用いることを不要とすることが可能となる署名データ生成技術、署名データ記録媒体、この署名データ生成技術によって生成された署名データを用いて検証を行う検証技術、このような技術を用いたシステムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様は、署名データ生成装置であって、署名を生成するための署名生成鍵を記憶する署名生成鍵記憶部と、複数の平文データを入力する平文データ入力部と、前記複数の平文データそれぞれに対し、ハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、前記複数の平文データそれぞれに対し、前記ハッシュデータ生成部で生成された当該平文データに対応する前記ハッシュデータ以外の全てのハッシュデータの排他的論理和を算出し当該平文データの補助データを生成する補助データ生成部と、前記ハッシュデータ生成部で生成した全てのハッシュデータの排他的論理和を算出することによって署名用ビット列を生成し、前記署名生成鍵記憶部に記憶されている署名生成鍵を用いて署名用ビット列を署名し、署名データを生成する署名データ生成部と、前記署名データと、前記複数の平文データと、前記平文データに対応づけられた補助データとを出力するデータ出力部と、を備える。
【0009】
本発明の一態様は、検証装置であって、上記の署名データ生成装置によって生成された前記署名データ及び前記補助データと、当該補助データに対応する前記平文データと、を入力するデータ入力部と、上記の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、を備える。
【0010】
本発明の一態様は、署名データ記録媒体であって、上記の署名データ生成装置によって生成された前記署名データを記憶する署名データ記憶領域と、前記署名データ生成装置によって生成された複数の前記補助データそれぞれを、対応する前記平文データと対応づけて記憶する実データ記憶領域と、を有する。
【0011】
本発明の一態様は、署名データを記憶する署名データ記録媒体と、前記署名データの検証を行う複数の検証装置とを含む署名検証システムにおいて、前記署名データ記録媒体は、上記の署名データ生成装置によって生成された前記署名データを、いずれの検証装置からも読み出し可能に記憶する署名データ記憶領域と、前記署名データ生成装置によって生成された複数の前記補助データそれぞれを、対応する前記平文データと対応づけて記憶し、各平文データを所定の検証装置からのみ読み出し可能にする実データ記憶領域と、を有し、前記検証装置は、前記署名データと、自装置が読み出し可能な前記平文データと、当該平文データに対応する前記補助データと、を前記署名データ記録媒体から入力するデータ入力部と、上記の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、を備える。
【0012】
本発明の一態様は、署名データを記憶する署名データ記録媒体と、前記署名データの検証を行う複数の検証装置とを含む署名検証システムにおいて、前記署名データ記録媒体は、上記の署名データ生成装置によって生成された前記署名データを、いずれの検証装置からも読み出し可能に記憶する署名データ記憶領域を有し、前記検証装置は、予め前記署名データ生成装置から読み出した平文データと、当該平文データに対応した前記補助データと、を記憶する平文データ/補助データ記憶部と、前記署名データを前記署名データ記録媒体から入力し、前記平文データと、当該平文データに対応する前記補助データと、を前記平文データ/補助データ記憶部から入力するデータ入力部と、上記の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、を備える。
【0013】
本発明は、コンピュータを、上述した署名データ生成装置又は検証装置として動作させるためのコンピュータプログラムとして特定されても良い。また、本発明は、上述した署名データ生成装置又は検証装置として機能するコンピュータが行う署名データ生成方法又は検証方法として特定されても良い。
【発明の効果】
【0014】
本発明により、生成される署名データの数が一つとなるため複数の平文データについて電子署名を用いた署名生成時間や検証に要するデータの総量や検証時間を削減することが可能となるとともに、一の平文データの検証の際に他の平文データを用いることを不要とすることすることが可能となる。
【図面の簡単な説明】
【0015】
【図1】署名データ生成装置の機能構成を表す概略ブロック図である。
【図2】署名データ生成装置の動作例を表すフローチャートである。
【図3】補助データ生成処理の内容を表すフローチャートである。
【図4】補助データ生成処理の具体例を表す概略図である。
【図5】署名データ生成処理の内容を表すフローチャートである。
【図6】署名データ生成処理の具体例を表す概略図である。
【図7】電子署名の検証に要するデータの総量の具体例を表す図である。
【図8】検証装置の機能構成を表す概略ブロック図である。
【図9】検証装置の動作例を表すフローチャートである。
【図10】検証装置の処理の概略を表す概略図である。
【図11】署名検証システムの構成例を表すシステム構成図である。
【図12】記録媒体に記憶された各データのアクセス制御の概要を表す図である。
【図13】署名検証システムの他の構成例を表すシステム構成図である。
【発明を実施するための形態】
【0016】
[署名データ生成装置]
図1は、署名データ生成装置1の機能構成を表す概略ブロック図である。署名データ生成装置1は、平文データ入力部101、ハッシュデータ生成部102、補助データ生成部103、署名生成鍵記憶部104、署名データ生成部105、データ出力部106を備える。
【0017】
平文データ入力部101は、電子署名の対象となるデータ(以下、「平文データ」という)を署名データ生成装置1に複数入力する。
【0018】
ハッシュデータ生成部102は、平文データ毎にハッシュデータを生成する。具体的には、各平文データのハッシュデータは、例えばMD2(Message Digest Algorithm 2)、MD4、MD5、SHA(Secure Hash Algorithm)等のアルゴリズムを適用することによって生成できる。
【0019】
補助データ生成部103は、ハッシュデータ生成部102によって算出されたハッシュデータに基づいて、各平文データに対応する補助データを生成する。具体的には、補助データ生成部103は、ある平文データの補助データを算出する場合、当該平文データを除く全ての平文データのハッシュデータの排他的論理和を算出し、算出された値を補助データとする。なお、全ての平文データとは、平文データ入力部101によって入力されたひとまとまりの平文データのことを表す。補助データの生成処理の詳細については後述する。
【0020】
署名生成鍵記憶部104は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成され、電子署名のデータ(以下、「署名データ」という)を生成する際に用いられる署名生成鍵のデータを記憶する。ここで、署名生成鍵は例えば公開鍵暗号方式の一方の鍵である秘密鍵である。
【0021】
署名データ生成部105は、全ての平文データのハッシュデータと署名生成鍵記憶部104に記憶される署名生成鍵とに基づいて、全ての平文データに共通する署名データを生成する。具体的には、署名データ生成部105は、全ての平文データのハッシュデータの排他的論理和を算出し、算出結果に対し署名生成鍵を用いた署名生成処理を行うことによって署名データを生成する。署名生成処理は、例えばRSA(Rivest Shamir Adleman)、DSA(Digital Signature Algorithm)、ECDSA(Elliptic Curve Digital Signature Algorithm)等のアルゴリズムを適用することによって行うことができる。署名データの生成処理の詳細については後述する。
【0022】
データ出力部106は、平文データと、署名データ生成部105によって生成された署名データと、補助データ生成部103によって生成された複数の補助データとを出力する。このとき、データ出力部106は、各平文データと各補助データとを対応づけて出力する。
【0023】
図2は、署名データ生成装置1の動作例を表すフローチャートである。以下、図2を用いて署名データ生成装置1の動作例について説明する。まず、平文データ入力部101がn個の平文データM(i)を入力する(ステップS101)。なお、iは1〜nの整数であり、nは2以上の整数である。
【0024】
次に、ハッシュデータ生成部102が、入力された各平文データM(i)のハッシュデータm(i)を生成する(ステップS102)。次に、補助データ生成部103が、補助データ生成処理を実行し、各平文データに対応する補助データを生成する(ステップS103)。
【0025】
図3は、補助データ生成処理の内容を表すフローチャートである。以下、図3を用いて補助データ生成部103が実行する補助データ生成処理について説明する。
【0026】
まず、補助データ生成部103は、変数jを生成し、“1”を代入することによって初期化する(ステップS201)。次に、補助データ生成部103は、変数kとビット列xを生成し初期化する(ステップS202)。具体的には、補助データ生成部103は、変数kに1を代入して初期化する。また、補助データ生成部103は、ハッシュデータ生成部102によって生成されるハッシュデータと同じ桁数のビット列xを生成し、全てのビットに“0”を代入して初期化する。
【0027】
次に、補助データ生成部103は、変数jと変数kとの値が一致するか否か判定する(ステップS203)。変数jと変数kとの値が一致しない場合(ステップS203−YES)、補助データ生成部103は、ビット列xとハッシュデータm(k)との排他的論理和を算出し、算出結果をビット列xに代入する(ステップS204)。
【0028】
ステップS204の処理の後、又はステップS203において変数jと変数kとの値が一致する場合(ステップS203−NO)、補助データ生成部103は変数kの値をインクリメントする(ステップS205)。次に、補助データ生成部103は、変数kの値が、入力された平文データの数nよりも大きいか否か判定する(ステップS206)。変数kの値がn以下である場合(ステップS206−NO)、補助データ生成部103は、変数kの値がnよりも大きくなるまでステップS203〜ステップS206の処理を繰り返し実行する。
【0029】
一方、ステップS206において変数kの値がnよりも大きい場合(ステップS206−YES)、補助データ生成部103は、この時点のビット列xの値を平文データM(j)に対応する補助データN(j)の値として決定し、補助データN(j)にビット列xを代入する(ステップS207)。次に、補助データ生成部103は、変数jの値をインクリメントする(ステップS208)。次に、補助データ生成部103は、変数jの値がnよりも大きいか否か判定する(ステップS209)。変数jの値がn以下である場合(ステップS209−NO)、補助データ生成部103は、変数jの値がnよりも大きくなるまでステップS202〜ステップS209の処理を繰り返し実行し、各平文データM(i)に対応する補助データN(i)を算出する。そして、ステップS209において変数jの値がnよりも大きい場合(ステップS209−YES)、補助データ生成部103は補助データ生成処理を終了する。
【0030】
図4は、補助データ生成処理の具体例を表す概略図である。図4(a)は、三つの平文データとハッシュデータとの関係を表す図である。補助データ生成処理が実行される際には、各平文データM(1)〜M(3)から、それぞれハッシュデータm(1)〜m(3)がハッシュデータ生成部102によって生成されている。図4(b)は、三つの平文データそれぞれに対応する補助データの具体例を表す図である。平文データM(1)に対応する補助データN(1)は、他の全ての平文データM(2)及びM(3)のハッシュデータm(2)とm(3)との排他的論理和として算出される。平文データM(2)に対応する補助データN(2)及び平文データM(3)に対応する補助データN(3)もそれぞれ同様に、ハッシュデータm(3)とハッシュデータm(1)との排他的論理和、ハッシュデータm(1)とハッシュデータm(2)との排他的論理和として算出される。
【0031】
図2に戻って署名データ生成装置1の処理の流れを説明する。ステップS103において補助データ生成部103が補助データ生成処理を終了すると、署名データ生成部105が署名データ生成処理を実行し、入力された複数の平文データに共通する一つの署名データを生成する(ステップS104)。
【0032】
図5は、署名データ生成処理の内容を表すフローチャートである。以下、図5を用いて署名データ生成部105が実行する署名データ生成処理について説明する。まず、署名データ生成部105は、変数jを生成し、“1”を代入することによって初期化する(ステップS301)。次に、署名データ生成部105は、ビット列yを生成し初期化する(ステップS302)。具体的には、署名データ生成部105は、ハッシュデータ生成部102によって生成されるハッシュデータと同じ桁数のビット列yを生成し、全てのビットに“0”を代入して初期化する。
【0033】
次に、署名データ生成部105は、ビット列yとハッシュデータm(j)との排他的論理和を算出し、算出結果をビット列yに代入する(ステップS303)。次に、署名データ生成部105は、変数jの値をインクリメントする(ステップS304)。次に、署名データ生成部105は、変数jの値がnよりも大きいか否か判定する(ステップS305)。変数jの値がn以下である場合(ステップS305−NO)、署名データ生成部105は、変数jの値がnよりも大きくなるまでステップS302〜ステップS305の処理を繰り返し実行する。そして、ステップS305において変数jの値がnよりも大きい場合(ステップS305−YES)、即ちビット列yの値が全てのハッシュデータm(i)の排他的論理和となった場合、署名データ生成部105はこの時点のビット列yの値を署名用ビット列Aの値として決定し、署名用ビット列Aにビット列yを代入する(ステップS306)。このとき、必要に応じて署名生成鍵のビット列の長さにあわせるために特定用ビット列Bを連結するパディング処理を行い署名用ビット列Aとしても良い。
【0034】
そして、署名データ生成部105は、署名用ビット列Aに対し、署名生成鍵記憶部104に記憶される署名生成鍵を用いた署名生成処理を行うことによって、署名データを生成し(ステップS307)、署名データ生成処理を終了する。
【0035】
図6は、署名データ生成処理の具体例を表す概略図である。図6(a)は、三つの平文データとハッシュデータとの関係を表す図である。署名データ生成処理が実行される際には、各平文データM(1)〜M(3)から、それぞれハッシュデータm(1)〜m(3)がハッシュデータ生成部102によって生成されている。図6(b)は、三つの平文データM(1)〜M(3)に対応する署名用ビット列Aの具体例を表す図である。この場合、署名用ビット列Aは、全ての平文データM(1)〜M(3)のハッシュデータm(1)〜m(3)の排他的論理和として算出される。図6(c)は、三つの平文データM(1)〜M(3)に共通する署名データの具体例を表す図である。この図では、パディング処理を行い特定ビット列Bを連結している。
【0036】
図2に戻って署名データ生成装置1の処理の流れを説明する。ステップS104において署名データ生成部105が署名データ生成処理を終了すると、データ出力部106が平文データ、署名データ及び補助データを出力し(ステップS105)、図2に表されるフローチャート全体の処理が終了する。
【0037】
このように構成された署名データ生成装置1では、複数の平文データに対し、生成される署名データの数は一つである。また、平文データ毎に補助データが生成されるが、補助データのデータサイズは署名データのデータサイズよりも小さい。そのため、署名データ生成装置1によれば、電子署名の検証に要するデータの総量の、平文データ数の増加に伴う増加率を、従来のように平文データ毎に署名データが生成される場合に比べて小さくすることが可能となり、複数の平文データに対し1つの署名データを用いた検証を行えばよいので、複数の平文データそれぞれに応じて署名データの復元処理を複数回行う必要が無く、複数の平文データの検証に要する時間も短くなる。
【0038】
図7は、電子署名の検証に要するデータの総量の具体例を表す図である。図7の場合、平文データのデータ量は100byte、ハッシュデータのデータ量は20byte(SHA1アルゴリズムが適用された場合のデータ量に相当)、署名データのデータ量は128byte(RSAにおける標準的なデータ量に相当)である。図7において平文データの数が三つの場合、本発明による署名データ生成装置1による電子署名の検証に要するデータの総量は、平文データ(100byte)×3+補助データ(20byte)×3+署名データ(128byte)×1=488byteとなる。一方、従来技術による電子署名の検証に要するデータの総量は、平文データ(100byte)×3+署名データ(128byte)×3=684byteとなる。このように、署名データ生成装置1によれば、電子署名の検証に要するデータの総量は196byte削減され、全体のデータ量に占める削減率(データ量削減率)は28.65%となる。そして、図7から明らかなように、平文データ毎に生成される補助データのデータ量が署名データのデータ量よりも小さいため、データ量削減率は平文データの数の増加に伴って増加する。このように、署名データ生成装置1によれば、複数の平文データについて電子署名を用いた検証に要するデータの総量を削減することが可能となる。
【0039】
また、署名データ生成装置1では、複数の平文データに共通して一つの署名データが生成されるが、一の平文データを検証する際に他の平文データを必要としない。そのため、一の平文データを検証する装置において、他の平文データを読み出せないように構成することが可能となり、他の平文データのセキュリティの低下を抑止することが可能となる。検証処理の詳細についての説明は、検証装置の説明とともに後述する。なお、一の平文データの電子署名の検証を行う際に、他の平文データから生成されたハッシュデータを用いるが、上述したようにハッシュデータから元の平文データを生成することはできないため、他の平文データのセキュリティが低下することが抑止される。
【0040】
また、署名データ生成装置1では、電子署名の検証に要するデータを生成するのに要する時間は、署名生成時間×1+ハッシュデータ生成時間×n+排他的論理和計算時間×n×nである。これに対し、従来のように平文データ毎に署名データを生成する場合には、電子署名の検証に要するデータを生成するのに要する時間は、署名生成時間×n+ハッシュデータ生成時間×nである。一般的に署名生成時間は排他的論理和計算時間の数万倍となる。例えば、排他的論理和計算時間は0.1ミリ秒程度、ハッシュデータ生成時間は1ミリ秒程度であるとすると、署名生成時間は500ミリ秒程度となる。そのため、署名データ生成装置1では、複数の平文データ毎に署名データの生成を行わず、共通した一つの署名データを生成するため、複数の平文データの電子署名の検証に要するデータの生成時間を従来に比べて大幅に削減することが可能となる。
【0041】
[検証装置]
図8は、署名データ生成装置1によって生成された署名データを用いて電子署名の検証を行う検証装置2の機能構成を表す概略ブロック図である。検証装置2は、データ入力部201、ハッシュデータ生成部202、比較用ビット列生成部203、署名検証鍵記憶部204、検証用ビット列生成部205、検証部206を備える。
【0042】
データ入力部201は、検証の対象となる平文データ、この平文データに対応する補助データ及び署名データを検証装置2に入力する。
ハッシュデータ生成部202は、署名データ生成装置1のハッシュデータ生成部102と同じアルゴリズムを用いて、検証対象となる平文データのハッシュデータを生成する。
【0043】
比較用ビット列生成部203は、比較用ビット列として、検証対象となる平文データに対応する補助データと、検証対象となる平文データのハッシュデータとの排他的論理和を算出する。
【0044】
署名検証鍵記憶部204は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成され、署名データ生成装置1の署名生成鍵記憶部104に記憶される署名生成鍵に対応する署名検証鍵を記憶する。
【0045】
検証用ビット列生成部205は、検証の対象となる平文データに対応する署名データに対し、署名検証鍵記憶部204に記憶される署名検証鍵を用いて復元処理を行い、検証用ビット列を生成する。検証用ビット列生成部205の処理からも明らかなように、生成される検証用ビット列は、署名データ生成装置1によって生成される署名用ビット列と同じビット列である。
検証部206は、比較用ビット列生成部203によって生成された比較用ビット列と、検証用ビット列生成部205によって生成された検証用ビット列とを比較することによって、対象となる平文データの電子署名を検証し検証結果を出力する。
【0046】
図9は、検証装置2の動作例を表すフローチャートである。以下、図9を用いて検証装置2の動作例について説明する。図9では、まず、データ入力部201が、検証の対象となる平文データM’(i)、この平文データに対応する補助データN(i)及び署名データを検証装置2に入力する(ステップS401)。
【0047】
次に、ハッシュデータ生成部202が、検証の対象となる平文データM’(i)のハッシュデータm’(i)を生成する(ステップS402)。次に、比較用ビット列生成部203が、ハッシュデータm’(i)と、検証の対象となる平文データM’(i)に対応する補助データN(i)との排他的論理和を算出し、比較用ビット列A’を生成する(ステップS403)。
【0048】
次に、検証用ビット列生成部205が、検証の対象となる平文データM’(i)に対応する署名データに対し署名検証鍵によって復元処理を行い検証用ビット列Aを取得する(ステップS404)。このとき、署名生成時にパディング処理が行われている場合は、復元処理されたビット列から特定ビット列Bを解除し、検証用ビット列Aを取得する。
【0049】
次に、検証部206が、検証用ビット列Aと比較用ビット列A’とが一致するか否か判定する(ステップS405)。検証用ビット列Aと比較用ビット列A’とが一致する場合(ステップS405−YES)、検証部206は平文データM’及び署名データについての署名検証が成功したと判定する(ステップS406)。即ち、この場合、検証部206は平文データM’(i)が正当な署名データ生成装置1によって署名された平文データM(i)であり、その後改竄がされていないと判定する。一方、検証用ビット列Aと比較用ビット列A’とが一致しない場合(ステップS405−NO)、検証部206は平文データM’及び署名データについての署名検証が失敗したと判定する(ステップS407)。即ち、この場合、検証部206は平文データM’(i)が正当な署名データ生成装置1によって署名されていないか、又は署名後にデータの改竄がなされたと判定する。そして、検証部206が判定結果を出力する(ステップS408)。
【0050】
図10は、検証装置2の処理の概略を表す概略図である。図10(a)は、平文データとハッシュデータとの関係を表す図である。ハッシュデータ生成部202によって、平文データM’(1)からハッシュデータm’(1)が算出される。図10(b)は、比較用ビット列A’の概略を表す図である。平文データM’(1)に対応する補助データN(i)と、ハッシュデータm’(i)との排他的論理和が比較用ビット列A’となる。図10(c)は、署名データと検証用ビット列Aとの関係を表す図である。ここではパディング処理が行われた事例を示しており、署名データが復号化され特定ビット列Bの連結が解除されることによって、検証用ビット列Aが署名データから取り出される。
【0051】
図4、6、10から明らかなように、平文データM(i)とM’(i)とが一致しており、ハッシュデータの算出アルゴリズムが一致しており、署名生成鍵・署名検証鍵が対応していれば、検証用ビット列Aと比較用ビット列A’とは一致する。即ち、平文データが改竄されておらず、正当な署名データ生成装置1によって署名データ及び補助データが生成されていれば、検証用ビット列Aと比較用ビット列A’とは一致する。そのため、上記のような処理を行う検証装置2によれば、複数の平文データに共通する署名データを用いて、他の平文データを用いることなく、一の平文データの電子署名の検証を行うことが可能となる。
【0052】
[適用例]
図11は、署名データ生成装置1によって生成された署名データ及び補助データを用いた署名検証システム4の構成例を表すシステム構成図である。署名検証システム4は、上述した検証装置2を用いて構成される3台の検証装置A〜Cと、記録媒体3とを備える。例えば、検証装置Aは銀行に設置されたATM装置であり、検証装置Bはコンビニエンスストアに設置されたキオスク端末であり、検証装置Cは駅に設置された改札装置である。
【0053】
図12は、記録媒体3に記憶された各データのアクセス制御の概要を表す図である。以下、記憶媒体3について説明する。記録媒体3は、ICカード等の携帯可能な記録媒体や、RFID(Radio Frequency IDentification)搭載の携帯電話機等を用いて構成され、署名データ記憶領域と実データ記憶領域とを備える。署名データ記憶領域は、署名データ生成装置1によって生成された署名データを記憶し、検証装置A〜Cのいずれもがアクセス可能(読出し可能)に構成される。実データ記憶領域は、複数の平文データM(A)〜M(C)と、各平文データに対応して署名データ生成装置1によって生成された補助データN(A)〜N(C)とを記憶する。実データ記憶領域には読み出し権限が設定されており、平文データM(A)及び補助データN(A)は検証装置Aのみが読み出し可能であり、平文データM(B)及び補助データN(B)は検証装置Bのみが読み出し可能であり、平文データM(C)及び補助データN(C)は検証装置Cのみが読み出し可能である。
例えば、平文データM(A)は、記録媒体3の所有者の銀行口座に関する銀行名、支店名、及び口座番号を表すデータであり、平文データ(B)は、記録媒体3の所有者の氏名及び住所を表すデータであり、平文データ(C)は、電子マネーの残高情報を表すデータである。
【0054】
署名検証システム4では、各検証装置A〜Cのデータ入力部201は、記録媒体3から署名データ、補助データ、平文データを読み出して入力を行う。なお、データ入力部201は、記録媒体3に記憶されている複数の平文データのうち、自装置が読み出すことが許可されている平文データのみを読み出す。
【0055】
このように構成された署名検証システム4では、複数の平文データとその電子署名の検証に要するデータの総量を従来に比べて削減できるため、これらのデータを記憶する記録媒体3の使用メモリ量を削減することが可能となる。また、署名検証システム4では、上述した署名データ生成装置1によって電子署名の検証に要するデータを生成するため、複数の平文データの電子署名の検証に要するデータの生成時間を従来に比べて大幅に削減することが可能となる。さらに、署名検証システム4では、複数の平文データに対し1つの署名データを用いた検証を行えばよいので、複数の平文データそれぞれに応じて署名データの復元処理を複数回行う必要が無く、複数の平文データの検証に要する時間も短くなる。
【0056】
また、一の平文データの署名検証において他の平文データが不要であるため、複数の平文データは、それぞれ読み出し可能に設定されている検証装置によってのみ読み出されるように記録媒体を構成することが可能となる。そのため、平文データのセキュリティの向上を図ることが可能となる。例えば、ATM装置(検証装置A)は、銀行名、支店名、及び口座番号を表すデータについて検証を行う場合に、氏名及び住所を表すデータ(M(B))や電子マネーの残高情報を表すデータ(M(C))を読み出すことなく検証を行うことができるため、M(B)及びM(C)を検証装置Aがアクセスできないように読み出し制限を設定することによって、各平文データのセキュリティを高めることが可能となる。
【0057】
図13は、署名データ生成装置1によって生成された署名データ及び補助データを用いた署名検証システム7の構成例を表すシステム構成図である。署名検証システム7は、上述した検証装置2を用いて構成される3台の検証装置A〜Cと、各検証装置に接続された平文データ/補助データ記憶部6と、記録媒体5とを備える。署名検証システム7においても、署名検証システム4と同様に、例えば検証装置Aは銀行に設置されたATM装置であり、検証装置Bはコンビニエンスストアに設置されたキオスク端末であり、検証装置Cは駅に設置された改札装置である。
【0058】
記録媒体5は、ICカード等の携帯可能な記録媒体や、RFID搭載の携帯電話機等を用いて構成され、署名データ記憶領域を備える。署名データ記憶領域は、署名データ生成装置1によって生成された署名データを記憶し、検証装置A〜Cのいずれもがアクセス可能に構成される。
【0059】
平文データ/補助データ記憶部6は、予め署名データ生成装置1から読み出した平文データM(A)〜M(C)とその補助データN(A)〜N(C)を記憶する。具体的には、検証装置Aに接続された平文データ/補助データ記憶部6は平文データM(A)及び補助データN(A)を記憶し、検証装置Bに接続された平文データ/補助データ記憶部6は平文データM(B)及び補助データN(B)を記憶し、検証装置Cに接続された平文データ/補助データ記憶部6は平文データM(C)及び補助データN(C)を記憶する。各検証装置A〜Cは、自身に接続された平文データ/補助データ記憶部6から平文データ及び補助データを読み出し、さらに記録媒体5から署名データを読み出すことによって、署名検証を行う。
【0060】
署名検証システム7では、各検証装置A〜Cのデータ入力部201は、記録媒体3から署名データを読み出して入力を行う。また、データ入力部201は、自装置に接続された平文データ/補助データ記憶部6から、補助データ及び平文データを読み出して入力を行う。
【0061】
このように構成された署名検証システム7では、複数の平文データに対応する署名データが一つで済むため、署名データを記憶する記録媒体の使用メモリ量を削減することが可能となる。
【0062】
また、一の平文データの署名検証において他の平文データが不要であるため、複数の平文データそれぞれを検証装置に接続された平文データ/補助データ記憶部6に個別に記録することが可能となる。そのため、平文データのセキュリティの向上を図ることが可能となる。
【0063】
上述した実施形態における署名データ生成装置又は検証装置の機能を、プログラム実行可能なICカードで実現するようにしても良い。その場合、この機能を実現するためのプログラムをICカードに記録して、このICカードに記録されたプログラムをICカードにおいて実行することによって実現しても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0064】
1…署名データ生成装置, 101…平文データ入力部, 102…ハッシュデータ生成部, 103…補助データ生成部, 104…署名生成鍵記憶部, 105…署名データ生成部(署名データ生成部), 106…データ出力部, 2…検証装置, 201…データ入力部, 202…ハッシュデータ生成部, 203…比較用ビット列生成部, 204…署名検証鍵記憶部, 205…検証用ビット列生成部, 206…検証部, 3,5…記録媒体(署名データ記録媒体), 4,7…検証システム(署名検証システム), 6…平文データ/補助データ記憶部

【特許請求の範囲】
【請求項1】
署名を生成するための署名生成鍵を記憶する署名生成鍵記憶部と、
複数の平文データを入力する平文データ入力部と、
前記複数の平文データそれぞれに対し、ハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、
前記複数の平文データそれぞれに対し、前記ハッシュデータ生成部で生成された当該平文データに対応する前記ハッシュデータ以外の全てのハッシュデータの排他的論理和を算出し当該平文データの補助データを生成する補助データ生成部と、
前記ハッシュデータ生成部で生成した全てのハッシュデータの排他的論理和を算出することによって署名用ビット列を生成し、前記署名生成鍵記憶部に記憶されている署名生成鍵を用いて署名用ビット列を署名し、署名データを生成する署名データ生成部と、
前記署名データと、前記複数の平文データと、前記平文データに対応づけられた補助データとを出力するデータ出力部と、
を備える署名データ生成装置。
【請求項2】
請求項1に記載の署名データ生成装置によって生成された前記署名データ及び前記補助データと、当該補助データに対応する前記平文データと、を入力するデータ入力部と、
請求項1に記載の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、
前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、
前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、
前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、
前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、
を備える検証装置。
【請求項3】
請求項1に記載の署名データ生成装置によって生成された前記署名データを記憶する署名データ記憶領域と、
前記署名データ生成装置によって生成された複数の前記補助データそれぞれを、対応する前記平文データと対応づけて記憶する実データ記憶領域と、
を有する署名データ記録媒体。
【請求項4】
署名データを記憶する署名データ記録媒体と、前記署名データの検証を行う複数の検証装置とを含む署名検証システムにおいて、
前記署名データ記録媒体は、
請求項1に記載の署名データ生成装置によって生成された前記署名データを、いずれの検証装置からも読み出し可能に記憶する署名データ記憶領域と、
前記署名データ生成装置によって生成された複数の前記補助データそれぞれを、対応する前記平文データと対応づけて記憶し、各平文データを所定の検証装置からのみ読み出し可能にする実データ記憶領域と、
を有し、
前記検証装置は、
前記署名データと、自装置が読み出し可能な前記平文データと、当該平文データに対応する前記補助データと、を前記署名データ記録媒体から入力するデータ入力部と、
請求項1に記載の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、
前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、
前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、
前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、
前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、
を備えることを特徴とする署名検証システム。
【請求項5】
署名データを記憶する署名データ記録媒体と、前記署名データの検証を行う複数の検証装置とを含む署名検証システムにおいて、
前記署名データ記録媒体は、
請求項1に記載の署名データ生成装置によって生成された前記署名データを、いずれの検証装置からも読み出し可能に記憶する署名データ記憶領域を有し、
前記検証装置は、
予め前記署名データ生成装置から読み出した平文データと、当該平文データに対応した前記補助データと、を記憶する平文データ/補助データ記憶部と、
前記署名データを前記署名データ記録媒体から入力し、前記平文データと、当該平文データに対応する前記補助データと、を前記平文データ/補助データ記憶部から入力するデータ入力部と、
請求項1に記載の署名データ生成装置によって記憶される前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部と、
前記データ入力部によって入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成部と、
前記データ入力部によって入力された前記補助データと、前記ハッシュデータ生成部によって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成部と、
前記データ入力部によって入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成部と、
前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証部と、
を備えることを特徴とする署名検証システム。
【請求項6】
署名を生成するための署名生成鍵を記憶する署名生成鍵記憶部を備える署名データ生成装置が、複数の平文データを入力する平文データ入力ステップと、
前記署名データ生成装置が、前記複数の平文データそれぞれに対し、ハッシュ計算を行いハッシュデータを生成するハッシュデータ生成ステップと、
前記署名データ生成装置が、前記複数の平文データそれぞれに対し、前記ハッシュデータ生成ステップで生成された当該平文データに対応する前記ハッシュデータ以外の全てのハッシュデータの排他的論理和を算出し当該平文データの補助データを生成する補助データ生成ステップと、
前記署名データ生成装置が、前記ハッシュデータ生成ステップで生成した全てのハッシュデータの排他的論理和を算出することによって署名用ビット列を生成し、前記署名生成鍵記憶部に記憶されている署名生成鍵を用いて署名用ビット列を署名し、署名データを生成する署名データ生成ステップと、
前記署名データ生成装置が、前記署名データと、前記複数の平文データと、前記平文データに対応づけられた補助データとを出力するデータ出力ステップと、
を備える署名データ生成方法。
【請求項7】
請求項6に記載の署名データ生成方法において用いられる前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部を備える検証装置が、請求項6に記載の署名データ生成方法によって生成された前記署名データ及び前記補助データと、当該補助データに対応する前記平文データと、を入力するデータ入力ステップと、
前記検証装置が、入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成ステップと、
前記検証装置が、入力された前記補助データと、前記ハッシュデータ生成ステップによって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成ステップと、
前記検証装置が、入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、検証用ビット列を生成する検証用ビット列生成ステップと、
前記検証装置が、前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証ステップと、
を備える検証方法。
【請求項8】
署名を生成するための署名生成鍵を記憶する署名生成鍵記憶部を備えるコンピュータに対し、
複数の平文データを入力する平文データ入力ステップと、
前記複数の平文データそれぞれに対し、ハッシュ計算を行いハッシュデータを生成するハッシュデータ生成ステップと、
前記複数の平文データそれぞれに対し、前記ハッシュデータ生成ステップで生成された当該平文データに対応する前記ハッシュデータ以外の全てのハッシュデータの排他的論理和を算出し当該平文データの補助データを生成する補助データ生成ステップと、
前記ハッシュデータ生成ステップで生成した全てのハッシュデータの排他的論理和を算出することによって署名用ビット列を生成し、前記署名生成鍵記憶部に記憶されている署名生成鍵を用いて署名用ビット列を署名し、署名データを生成する署名データ生成ステップと、
前記署名データと、前記複数の平文データと、前記平文データに対応づけられた補助データとを出力するデータ出力ステップと、
を実行させるためのプログラム。
【請求項9】
請求項8に記載のプログラムにおいて用いられる前記署名生成鍵に対応する署名検証鍵を記憶する署名検証鍵記憶部を備えるコンピュータに対し、
請求項8に記載のプログラムの実行によって生成された前記署名データ及び前記補助データと、当該補助データに対応する前記平文データと、を入力するデータ入力ステップと、
入力された前記平文データに対してハッシュ計算を行いハッシュデータを生成するハッシュデータ生成ステップと、
入力された前記補助データと、前記ハッシュデータ生成ステップによって生成された前記ハッシュデータとの排他的論理和を算出することによって、比較用ビット列を生成する比較用ビット列生成ステップと、
入力された前記署名データに対し、前記署名検証鍵記憶部に記憶される署名検証鍵を用いた復元処理を行い、前記検証用ビット列を生成する検証用ビット列生成ステップと、
前記検証用ビット列と前記比較用ビット列とを比較し、前記平文データと前記署名データとの関連性を検証する検証ステップと、
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−171600(P2010−171600A)
【公開日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2009−10993(P2009−10993)
【出願日】平成21年1月21日(2009.1.21)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】