(57)【特許請求の範囲】
【請求項１】
送付データから署名文を作成して送付する署名文送付装置において、
記憶手段から、今回送付する署名文の作成のために生成された公開鍵及び秘密鍵を取得する取得手段と、
次回送付する署名文の作成に用いる公開鍵及び秘密鍵を生成して、上記記憶手段に記憶される上記取得手段の取得した公開鍵及び秘密鍵を書き換える形で、その生成した公開鍵及び秘密鍵を上記記憶手段に書き込む実行手段と、
今回送付する送付データと上記取得手段の取得した公開鍵と上記実行手段の生成した公開鍵とを処理対象文として、該処理対象文の圧縮文を生成する圧縮文生成手段と、
上記圧縮文生成手段の生成した圧縮文を上記取得手段の取得した秘密鍵で暗号化することで認証子を生成する認証子生成手段と、
上記処理対象文と上記認証子生成手段の生成した認証子とからなる署名文を送付する送付手段とを備えることを、
特徴とする署名文送付装置。
【請求項２】
送られてくる署名文を認証する署名文認証装置において、
記憶手段から、前回送られてきた署名文に記載されていた今回送付の署名文の認証に用いる公開鍵を取得する取得手段と、
今回送られてきた署名文に記載されている次回送付の署名文の認証に用いる公開鍵を抽出して、上記記憶手段に記憶される上記取得手段の取得した公開鍵を書き換える形で、その抽出した公開鍵を上記記憶手段に書き込む実行手段と、
今回送られてきた署名文に記載されている認証子を、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵を使って復号することで復号化圧縮文を生成する復号化圧縮文生成手段と、
上記認証子を除いた署名文の本体部分の圧縮文を生成する圧縮文生成手段と、
上記圧縮文生成手段の生成した圧縮文と上記復号化圧縮文生成手段の生成した復号化圧縮文とが一致するのか否かを検出する検出手段と、
上記検出手段により一致が検出される場合に、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵と、上記取得手段の取得した公開鍵とが一致するのか否かを判断する判断手段とを備えることを、
特徴とする署名文認証装置。
【請求項３】
送付データから署名文を作成して送付する署名文送付装置の実現に用いられるプログラムを記録したプログラム記録媒体であって、
コンピュータを、
記憶手段から、今回送付する署名文の作成のために生成された公開鍵及び秘密鍵を取得する取得手段と、
次回送付する署名文の作成に用いる公開鍵及び秘密鍵を生成して、上記記憶手段に記憶される上記取得手段の取得した公開鍵及び秘密鍵を書き換える形で、その生成した公開鍵及び秘密鍵を上記記憶手段に書き込む実行手段と、
今回送付する送付データと上記取得手段の取得した公開鍵と上記実行手段の生成した公開鍵とを処理対象文として、該処理対象文の圧縮文を生成する圧縮文生成手段と、
上記圧縮文生成手段の生成した圧縮文を上記取得手段の取得した秘密鍵で暗号化することで認証子を生成する認証子生成手段と、
上記処理対象文と上記認証子生成手段の生成した認証子とからなる署名文を送付する送付手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
送られてくる署名文を認証する署名文認証装置の実現に用いられるプログラムを記録したプログラム記録媒体であって、
コンピュータを、
記憶手段から、前回送られてきた署名文に記載されていた今回送付の署名文の認証に用いる公開鍵を取得する取得手段と、
今回送られてきた署名文に記載されている次回送付の署名文の認証に用いる公開鍵を抽出して、上記記憶手段に記憶される上記取得手段の取得した公開鍵を書き換える形で、その抽出した公開鍵を上記記憶手段に書き込む実行手段と、
今回送られてきた署名文に記載されている認証子を、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵を使って復号することで復号化圧縮文を生成する復号化圧縮文生成手段と、
上記認証子を除いた署名文の本体部分の圧縮文を生成する圧縮文生成手段と、
上記圧縮文生成手段の生成した圧縮文と上記復号化圧縮文生成手段の生成した復号化圧縮文とが一致するのか否かを検出する検出手段と、
上記検出手段により一致が検出される場合に、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵と、上記取得手段の取得した公開鍵とが一致するのか否かを判断する判断手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、署名文を認証するユーザが簡単に公開鍵を入手できるようにしつつ、データの改竄を確実に防止できるようにする署名文を作成して送付する署名文送付装置と、その署名文送付装置により作成された署名文を認証する署名文認証装置と、それらの装置の実現に用いられるプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。
【０００２】
【従来の技術】
送信するデータの改竄を防止する方法として、電子署名が広く用いられている。
【０００３】
この電子署名を用いる場合、送信元は、図６の処理フローに示すように、送信するデータをメッセージ要約関数を使って圧縮し、この圧縮文を秘密鍵で暗号化することで認証子（電子署名）を生成する。そして、この認証子と送信するデータとからなる署名文を作成して、それを送信先に送信する。
【０００４】
この署名文を受けて、送信先は、図７の処理フローに示すように、送られてきた署名文から認証子を抽出して、それを公開鍵で復号することで復号化圧縮文を取得する。
【０００５】
そして、送られてきた署名文の本体部分（送信データ部分）をメッセージ要約関数を使って圧縮することで圧縮文を生成し、この圧縮文と復号により得た復号化圧縮文とを比較して、両者が一致するときには、送られてきたデータが第三者により改竄されていないと判断し、一致しないときには、送られてきたデータが第三者により改竄されたと判断する。
【０００６】
図８に、この図６の処理フローの処理と図７の処理フローの処理とを図式化して示す。
【０００７】
【発明が解決しようとする課題】
この電子署名を用いる方法では、署名文を認証するユーザがどのようにして公開鍵を入手するのかが問題になる。
【０００８】
現在使われている方法としては、信頼できる認証局を立ち上げて公開鍵を登録しておく方法や、口コミ的に知人の認証している公開鍵ならば信頼できるとして扱う方法などがある。
【０００９】
いずれの方法を用いるにしろ、任意のユーザが公開鍵を参照できるようにするために、公開鍵を認証・管理する第三者機関などが必要になるなど、実際の利用にあたっては制約がある。
【００１０】
署名文の中に公開鍵を埋め込んでおくという方法を用いれば、このような制約がなくなるものの、この方法を用いると、署名文中の公開鍵も含めて、まるごと偽造された場合に、それを識別できないという問題点がある。
【００１１】
本発明はかかる事情に鑑みてなされたものであって、署名文を認証するユーザが簡単に公開鍵を入手できるようにしつつ、データの改竄を確実に防止できるようにする署名文を作成して送付する新たな署名文送付装置の提供と、その署名文送付装置により作成された署名文を認証する新たな署名文認証装置の提供と、それらの装置の実現に用いられるプログラムを記録した新たなコンピュータ読み取り可能な記録媒体の提供とを目的とする。
【００１２】
【課題を解決するための手段】
この目的を達成するために、本発明の署名文送付装置では、送付データから署名文を作成して送付する（通信回線を介して送信したり、フロッピィディスクなどに記録して郵送などする）という構成を採るときにあって、（１）記憶手段から、今回送付する署名文の作成のために生成された公開鍵及び秘密鍵を取得する取得手段と、（２）次回送付する署名文の作成に用いる公開鍵及び秘密鍵を生成して、記憶手段に記憶される取得手段の取得した公開鍵及び秘密鍵を書き換える形で、その生成した公開鍵及び秘密鍵を記憶手段に書き込む実行手段と、（３）今回送付する送付データと取得手段の取得した公開鍵と実行手段の生成した公開鍵とを処理対象文として、その処理対象文の圧縮文を生成する圧縮文生成手段と、（４）圧縮文生成手段の生成した圧縮文を取得手段の取得した秘密鍵で暗号化することで認証子を生成する認証子生成手段と、（５）処理対象文と認証子生成手段の生成した認証子とからなる署名文を送付する送付手段とを備えるように構成する。
【００１３】
ここで、本発明の署名文送付装置の持つ機能は具体的にはプログラムで実現されるものであり、このプログラムは、計算機が読み取り可能な半導体メモリなどの適当な記録媒体に格納することができる。
【００１４】
一方、本発明の署名文認証装置は、本発明の署名文送付装置から送られてくる署名文を受け取って認証するという構成を採るときにあって、（１）記憶手段から、前回送られてきた署名文に記載されていた今回送付の署名文の認証に用いる公開鍵を取得する取得手段と、（２）今回送られてきた署名文に記載されている次回送付の署名文の認証に用いる公開鍵を抽出して、記憶手段に記憶される取得手段の取得した公開鍵を書き換える形で、その抽出した公開鍵を記憶手段に書き込む実行手段と、（３）今回送られてきた署名文に記載されている認証子を、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵を使って復号することで復号化圧縮文を生成する復号化圧縮文生成手段と、（４）その認証子を除いた署名文の本体部分の圧縮文を生成する圧縮文生成手段と、（５）圧縮文生成手段の生成した圧縮文と復号化圧縮文生成手段の生成した復号化圧縮文とが一致するのか否かを検出する検出手段と、（６）検出手段により一致が検出される場合に、今回送られてきた署名文に記載されている今回送付の署名文の認証に用いる公開鍵と、取得手段の取得した公開鍵とが一致するのか否かを判断する判断手段とを備えるように構成する。
【００１５】
ここで、本発明の署名文認証装置の持つ機能は具体的にはプログラムで実現されるものであり、このプログラムは、計算機が読み取り可能な半導体メモリなどの適当な記録媒体に格納することができる。
【００１６】
このように構成される本発明の署名文認証技術では、図１に示すように、署名文を送付する側は、今回の送付データと今回用いる公開鍵（前回生成したもの）と次回用いる公開鍵（今回生成したもの）とを処理対象文として、その処理対象文の圧縮文を生成し、それを今回用いる秘密鍵（前回生成したもの）で暗号化することで認証子（電子署名）を生成する。そして、その処理対象文とその認証子とからなる署名文を送付するように処理する。
【００１７】
これを受けて、署名文を受け取る側は、送られてきた署名文の持つ認証子を、その署名文に記載される今回用いる公開鍵を使って復号することで復号化圧縮文を生成するとともに、認証子を除いた署名文の本体部分の圧縮文を生成して、その２つの圧縮文が一致するのか否かを判断する。
【００１８】
そして、２つの圧縮文が一致する場合でも、直ちに送付データが改竄されていないと判断するのではなくて、署名文に記載される今回用いる公開鍵と、前回宣言された次回用いる公開鍵とが一致することを条件にして、送付データが改竄されていないと判断するように処理する。
【００１９】
このようにして、本発明の署名文認証技術では、今回用いる公開鍵を前回の署名文で宣言するという構成を採る。
【００２０】
これから、送付データの改竄を企てる者が送付データを改竄した後に、自分で秘密鍵と今回の公開鍵と次回の公開鍵とを生成することで、その改竄した送付データを持つ署名文を生成して送付するようなことがあっても、その署名文に記載される今回の公開鍵は受取側で保存してある今回用いる公開鍵と一致することがないので、受取側は送付データが改竄されていることを確実に知ることができる。
【００２１】
すなわち、送付データの改竄を企てる者は、今回のデータを改竄するためには、今回の公開鍵を書き換える必要があるが、そのためには、前回までの全ての公開鍵を書き換える必要がある。しかるに、それらの全ての公開鍵をつじつまを合わせつつ書き換えることは実質的に不可能であるので、送付データの改竄を防止できるようになるのである。
【００２２】
このようにして、本発明によれば、署名文を認証するユーザが簡単に公開鍵を入手できるようにしつつ、データの改竄を確実に防止できるようになる。
【００２３】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００２４】
図２に、本発明の一実施形態例を図示する。
【００２５】
図中、１は監視装置、２はユーザ端末、３は監視装置１とユーザ端末２との間を接続するネットワークである。
【００２６】
監視装置１は、例えば製薬会社に配置されて、例えば厚生省に届け出る製造ラインなどの管理データを収集してファイルを作成し、それを例えば毎日１回といったような規定の周期に、厚生省などに設置されるユーザ端末２に送信する処理を行う。
【００２７】
ユーザ端末２は、監視装置１から送られてくるファイルを受信して、それが確かに監視装置１が収集したものであることを認証することで、そのファイルを受信する処理を行う。
【００２８】
この監視装置１は、監視データを収集してそのファイルを作成する監視データ収集プログラム１０と、監視データ収集プログラム１０の作成したファイルを格納する送信データファイル１１と、送信データファイル１１に格納されるファイルから、ユーザ端末２に送信するバリデーションされたファイル（データが改竄されていないことを証明する機能を持つファイル）を作成する送信データ作成プログラム１２と、送信データ作成プログラム１２により作成される秘密鍵及び公開鍵を保存する鍵記憶領域１３と、送信データ作成プログラム１２の作成したファイルをユーザ端末２に送信するデータ送信プログラム１４とを備える。
【００２９】
ここで、監視データ収集プログラム１０や送信データ作成プログラム１２やデータ送信プログラム１４は、計算機が読み取り可能な半導体メモリなどの適当な記録媒体に格納することができる。
【００３０】
一方、ユーザ端末２は、監視装置１から送られてくる監視データのファイルを受信するデータ受信プログラム２０と、データ受信プログラム２０の受信したファイルを認証するデータ認証プログラム２１と、データ認証プログラム２１により抽出される公開鍵を保存する公開鍵記憶領域２２と、データ認証プログラム２１により認証されたファイルを格納する出力データファイル２３と、出力データファイル２３に格納されるファイルをプリンタやディスプレイなどに出力する監視データ出力プログラム２４とを備える。
【００３１】
ここで、データ受信プログラム２０やデータ認証プログラム２１や監視データ出力プログラム２４は、計算機が読み取り可能な半導体メモリなどの適当な記録媒体に格納することができる。
【００３２】
図３に、本発明を実現すべく用意される送信データ作成プログラム１２の実行する処理フローの一実施形態例、図４及び図５に、本発明を実現すべく用意されるデータ認証プログラム２１の実行する処理フローの一実施形態例を図示する。次に、これらの処理フローに従って、本発明について詳細に説明する。
【００３３】
送信データ作成プログラム１２は、データ送信周期に到達することで起動されると、図３の処理フローに示すように、先ず最初に、ステップ１で、送信データファイル１１から、今回の送信データのファイルを読み込む。
【００３４】
続いて、ステップ２で、鍵記憶領域１３に保存してある、前回生成した今回の送信処理で用いる公開鍵及び秘密鍵を読み込む。
【００３５】
すなわち、次に説明するステップ３の処理に従って、鍵記憶領域１３には、前回生成した今回の送信処理で用いる公開鍵及び秘密鍵が保存されているので、それを読み込むのである。
【００３６】
続いて、ステップ３で、次回の送信処理で用いる公開鍵及び秘密鍵を生成して、それを使って鍵記憶領域１３に保存してある公開鍵及び秘密鍵を更新することで、鍵記憶領域１３に次回の送信処理で用いる公開鍵及び秘密鍵を保存する。
【００３７】
このように、本発明では、固定的な公開鍵及び秘密鍵を用いるのではなくて、データ送信周期に到達すると、その都度、公開鍵及び秘密鍵を生成していくように処理するのである。
【００３８】
続いて、ステップ４で、送信データファイル１１から読み込んだ今回の送信データのファイルと、鍵記憶領域１３から読み込んだ今回の送信処理で用いる公開鍵と、新たに生成した次回の送信処理で用いる公開鍵とを処理対象として、規定の圧縮関数を用いて圧縮文を生成する。
【００３９】
続いて、ステップ５で、生成した圧縮文を鍵記憶領域１３から読み込んだ今回の送信処理で用いる秘密鍵で暗号化することで、電子署名（認証子）を生成する。
【００４０】
続いて、ステップ６で、生成した電子署名と、今回の送信データのファイルと、鍵記憶領域１３から読み込んだ今回の送信処理で用いる公開鍵と、新たに生成した次回の送信処理で用いる公開鍵とをマージすることで、バリデーションされた署名文を生成する。
【００４１】
続いて、ステップ７で、データ送信プログラム１４に対して、その生成した署名文の送信を指示して、処理を終了する。
【００４２】
このようにして、送信データ作成プログラム１２は、図１に示したように、今回の送信データのファイルと今回用いる公開鍵（前回生成したもの）と次回用いる公開鍵（今回生成したもの）とを処理対象文として、その処理対象文の圧縮文を生成し、それを今回用いる秘密鍵（前回生成したもの）で暗号化することで電子署名（認証子）を生成して、その処理対象文とその電子署名（認証子）とからなる署名文を、ユーザ端末２に送信するように処理するのである。
【００４３】
この署名文の送信を受けて、データ認証プログラム２１は、図４及び図５の処理フローに示すように、先ず最初に、ステップ１で、データ受信プログラム２０から受信された署名文を受け取る。
【００４４】
続いて、ステップ２で、公開鍵記憶領域２２から、前回の送信時に監視装置１により宣言された次回の送信処理で用いる公開鍵（すなわち、今回の送信処理で用いられた公開鍵）を読み込む。
【００４５】
すなわち、後述するステップ１１の処理に従って、公開鍵記憶領域２２には、前回の送信時に監視装置１により宣言された次回の送信処理で用いる公開鍵が保存されているので、それを読み込むのである。
【００４６】
続いて、ステップ３で、受け取った署名文の持つ電子署名を抽出して、それを署名文に記載される今回の送信処理で用いる公開鍵で復号化することで復号化圧縮文を生成する。
【００４７】
続いて、ステップ４で、電子署名を取り除いた署名文の本体部分を規定の圧縮関数を使って圧縮することで圧縮文を生成する。
【００４８】
続いて、ステップ５で、ステップ３で得た復号化圧縮文とステップ４で得た本体圧縮文とを比較し、続くステップ６で、その２つの圧縮文が一致するのか否かを判断する。
【００４９】
この判断処理に従って、復号化圧縮文と本体圧縮文とが一致しないことを判断するときには、送られてきた署名文が改竄されたものであることを判断して、ステップ７に進んで、送られてきた署名文をキャンセルして、処理を終了する。
【００５０】
一方、ステップ６で、復号化圧縮文と本体圧縮文とが一致することを判断するときには、ステップ８に進んで、公開鍵記憶領域２２から読み込んだ前回宣言された次回の送信処理で用いる公開鍵と、署名文に記載される今回の送信処理で用いる公開鍵とを比較し、続くステップ９で、その２つの公開鍵が一致するのか否かを判断する。
【００５１】
この判断処理に従って、２つの公開鍵が一致しないことを判断するときには、送られてきた署名文が改竄されたものであることを判断して、ステップ１０に進んで、送られてきた署名文をキャンセルして、処理を終了する。
【００５２】
一方、ステップ９で、２つの公開鍵が一致することを判断するときには、ステップ１１（図５の処理フロー）に進んで、署名文に記載される次回の送信処理で用いる公開鍵を抽出して、それを使って公開鍵記憶領域２２に保存してある公開鍵を更新することで、公開鍵記憶領域２２に次回の送信処理で用いる公開鍵を保存する。
【００５３】
続いて、ステップ１２で、認証を終えた署名文に記載される送信データのファイル部分を抽出して、それを出力データファイル２３に書き込んで、処理を終了する。
【００５４】
このようにして、データ認証プログラム２１は、図１に示したように、送られてきた署名文の持つ電子署名（認証子）を、その署名文に記載される今回用いる公開鍵を使って復号することで復号化圧縮文を生成するとともに、電子署名（認証子）を除いた署名文の本体部分の圧縮文を生成して、その２つの圧縮文が一致するのか否かを判断する。
【００５５】
そして、２つの圧縮文が一致する場合でも、直ちに送られてきた署名文が改竄されていないと判断するのではなくて、署名文に記載される今回用いる公開鍵と、前回宣言された次回用いる公開鍵とが一致することを条件にして、送られてきた署名文が改竄されていないと判断するように処理するのである。
【００５６】
図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例では、周期的に送信する監視データを具体例にして本発明を説明したが、本発明はこれに限定されるものではなく、関連性のないデータを非周期的に送信する場合にも、そのまま適用できるものである。
【００５７】
また、実施形態例では、通信回線を使って署名文を送信するという構成を採ったが、本発明は、通信回線を介さずに、フロッピィディスクなどの記憶媒体に記録して郵送などするような場合にも、そのまま適用できる。
【００５８】
【発明の効果】
以上説明したように、本発明では、電子署名を使って送付データの認証を行う構成を採るときにあって、今回用いる公開鍵を前回の署名文で宣言するという構成を採る。
【００５９】
これから、送付データの改竄を企てる者が送付データを改竄した後に、自分で秘密鍵と今回の公開鍵と次回の公開鍵とを生成することで、その改竄した送付データを持つ署名文を生成して送付するようなことがあっても、その署名文に記載される今回の公開鍵は受取側で保存してある今回用いる公開鍵と一致することがないので、受取側は送付データが改竄されていることを確実に知ることができる。
【００６０】
このようにして、本発明によれば、署名文を認証するユーザが簡単に公開鍵を入手できるようにしつつ、データの改竄を確実に防止できるようになる。
【図面の簡単な説明】
【図１】本発明の説明図である。
【図２】本発明の一実施形態例である。
【図３】送信データ作成プログラムの実行する処理フローの一実施形態例である。
【図４】データ認証プログラムの実行する処理フローの一実施形態例である。
【図５】データ認証プログラムの実行する処理フローの一実施形態例である。
【図６】従来技術の説明図である。
【図７】従来技術の説明図である。
【図８】従来技術の説明図である。
【符号の説明】
１    監視装置
２    ユーザ端末
３    ネットワーク
１０  監視データ収集プログラム
１１  送信データファイル
１２  送信データ作成プログラム
１３  鍵記憶領域
１４  データ送信プログラム
２０  データ受信プログラム
２１  データ認証プログラム
２２  公開鍵記憶領域
２３  出力データファイル
２４  監視データ出力プログラム
【図１】
0003828729.tif 000002
【図２】
0003828729.tif 000003
【図３】
0003828729.tif 000004
【図４】
0003828729.tif 000005
【図５】
0003828729.tif 000006
【図６】
0003828729.tif 000007
【図７】
0003828729.tif 000008
【図８】
0003828729.tif 000009