(57)【要約】【課題】署名対象となるメッセージと署名との対応関係が、不正な方法で傍受される蓋然性を低減する。【解決手段】コンピュータ１１０側で署名対象となるメッセージを用意し、このメッセージを含む署名作成コマンドをＩＣカード２００側に与えると、署名作成部２３０は、与えられたメッセージと秘密データ記憶部２２０内の秘密データとに基づいて、デジタル署名を作成し、署名記憶部２４０に一時的に格納する。この署名作成コマンドに対するレスポンスには、作成したデジタル署名は含ませない。コンピュータ１１０側から、署名返信コマンドをＩＣカード２００側に与えると、この署名返信コマンドに対するレスポンスとして、署名記憶部２４０に格納されていたデジタル署名が返信される。【選択図】　　　　図１
2004032248.tif 000002
【特許請求の範囲】
【請求項１】
所定のメッセージデータに対して個人認証用のデジタル署名を作成するためのシステムであって、
内部に個人用の秘密データを記憶し、与えられたメッセージデータに対して前記秘密データを利用した所定のアルゴリズムに基づく演算を内部で実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する機能をもった署名作成装置と、
前記署名作成装置に接続することができ、デジタル署名の対象となる所定のメッセージデータを用意する機能と、用意したメッセージデータを前記署名処理装置に送信する機能と、前記署名処理装置の内部で作成されたデジタル署名を受信する機能と、を有するメッセージ処理装置と、
を備え、
前記署名作成装置と前記メッセージ処理装置との間の情報のやりとりは、前記メッセージ処理装置から前記署名作成装置に対して所定のコマンドを送信する送信処理と、前記署名作成装置から前記メッセージ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を実行することによりなされるように構成されており、
前記メッセージ処理装置は、デジタル署名の対象となる所定のメッセージデータを含んだ「署名作成コマンド」を前記署名作成装置に対して送信し、これに応じて前記署名作成装置から返信されてくるレスポンスを受信する第１の能動処理と、デジタル署名の返信を要求するための「署名返信コマンド」を前記署名作成装置に対して送信し、これに応じて前記署名作成装置から返信されてくるレスポンスを受信し、受信したレスポンスに含まれているデジタル署名を取り出す第２の能動処理と、を行う機能を有し、
前記署名作成装置は、前記「署名作成コマンド」が送信されてきたときに、当該コマンドに含まれているメッセージデータに対して前記秘密データを利用した前記所定のアルゴリズムに基づく演算を内部で実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する処理を実行し、作成したデジタル署名を内部に記憶し、当該「署名作成コマンド」に応じたレスポンスとして、前記作成したデジタル署名を含まない所定のレスポンスを返信する第１の受動処理と、前記「署名返信コマンド」が送信されてきたときに、当該「署名返信コマンド」に応じたレスポンスとして、記憶されていたデジタル署名を含む所定のレスポンスを返信する第２の受動処理と、を行う機能を有することを特徴とするデジタル署名システム。
【請求項２】
請求項１に記載のデジタル署名システムにおいて、
ＩＣカードを署名作成装置として用い、当該ＩＣカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをメッセージ処理装置として用いたことを特徴とするデジタル署名システム。
【請求項３】
請求項１または２に記載のデジタル署名システムにおいて、メッセージ処理装置が、署名を行う個人に、デジタル署名の対象となるメッセージデータを入力させるメッセージ入力処理と、当該個人に、前記メッセージデータに対する署名の意思確認のための入力を行わせる署名確認入力処理と、を行う機能を有し、前記メッセージ入力処理が完了した時点で第１の能動処理を実行し、前記署名確認入力処理が完了した時点で第２の能動処理を実行することを特徴とするデジタル署名システム。
【請求項４】
請求項３に記載のデジタル署名システムにおいて、
メッセージ処理装置が、ディスプレイ画面上にメッセージデータを入力するための入力欄を表示し、当該入力欄への入力操作が完了する指示が与えられた時点で、メッセージ入力処理が完了したものと判断して第１の能動処理を実行するとともに、前記ディスプレイ画面上において署名の意思確認のための確認ボタンを操作可能状態とし、前記確認ボタンに対する操作が行われた時点で、署名確認入力処理が完了したものと判断して第２の能動処理を実行することを特徴とするデジタル署名システム。
【請求項５】
請求項１〜４のいずれかに記載のデジタル署名システムにおいて、
メッセージ処理装置が、第１の能動処理としてのコマンド送信およびレスポンス受信を行った後、第２の能動処理としてのコマンド送信およびレスポンス受信を行うまでの間に、前記第１の能動処理および前記第２の能動処理とは無関係なコマンド送信およびレスポンス受信を１回もしくは複数回行うことを特徴とするデジタル署名システム。
【請求項６】
請求項５に記載のデジタル署名システムにおいて、
メッセージ処理装置と署名作成装置との間で、第１の能動処理としてのコマンド送信および第１の受動処理としてのレスポンス返信が行われた後、本来は意味のないダミーコマンドの送信およびダミーレスポンスの返信が行われるようにしたことを特徴とするデジタル署名システム。
【請求項７】
請求項１〜６のいずれかに記載のデジタル署名システムにおいて、
メッセージ処理装置が、第２の能動処理として送信する「署名返信コマンド」に、デジタル署名の対象となるメッセージデータとは無関係なダミーメッセージデータを含ませることを特徴とするデジタル署名システム。
【請求項８】
請求項１〜７のいずれかに記載のデジタル署名システムにおいて、
署名作成装置が、第１の受動処理として返信する「署名作成コマンドに応じたレスポンス」に、作成したデジタル署名とは無関係なダミーデジタル署名を含ませることを特徴とするデジタル署名システム。
【請求項９】
請求項１〜８のいずれかに記載のデジタル署名システムにおいて、
署名作成装置が、「署名返信コマンド」に基づく第２の受動処理を行った後に、これまで記憶されていたデジタル署名の消去処理を行うことを特徴とするデジタル署名システム。
【請求項１０】
請求項１〜８のいずれかに記載のデジタル署名システムにおいて、
署名作成装置が、新たな「署名作成コマンド」に基づく第１の受動処理により作成された新たなデジタル署名を記憶するときに、前回の「署名作成コマンド」に基づく第１の受動処理により作成されて記憶されていたデジタル署名を消去する処理を実行することを特徴とするデジタル署名システム。
【請求項１１】
請求項１〜８のいずれかに記載のデジタル署名システムにおいて、
署名作成装置内に不揮発性メモリを設け、「署名作成コマンド」に基づいて作成したデジタル署名が前記不揮発性メモリに記憶されるようにし、
署名作成装置に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名返信コマンド」に基づいて、電源供給遮断前に前記不揮発性メモリに記憶されていたデジタル署名についての返信処理を行う際には、アクセス権の認証が行われることを条件として当該返信処理が実行されるようにしたことを特徴とするデジタル署名システム。
【請求項１２】
請求項１〜８のいずれかに記載のデジタル署名システムにおいて、
署名作成装置内に不揮発性メモリを設け、「署名作成コマンド」に基づいて作成したデジタル署名が前記不揮発性メモリに記憶されるようにし、
署名作成装置に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名作成コマンド」に先んじて「署名返信コマンド」が与えられた場合には、前記不揮発性メモリに記憶されていたデジタル署名ついての返信処理を実行せずに、エラーを示すレスポンスが返信されるようにしたことを特徴とするデジタル署名システム。
【請求項１３】
請求項１〜８のいずれかに記載のデジタル署名システムにおいて、
署名作成装置が、「署名作成コマンド」を受け取った後、予め定められた特定のイベントが発生するまでの間に「署名返信コマンド」を受け取らなかった場合には、前記「署名作成コマンド」に基づいて作成されて記憶されていたデジタル署名を消去する処理を実行することを特徴とするデジタル署名システム。
【請求項１４】
請求項１３に記載のデジタル署名システムにおいて、
「署名作成コマンド」を受け取ってから所定の時間が経過すること、を特定のイベントとして定め、所定の時間が経過したときに、これまで記憶されていたデジタル署名の消去処理が行われるようにしたことを特徴とするデジタル署名システム。
【請求項１５】
請求項１３に記載のデジタル署名システムにおいて、
「署名作成コマンド」を受け取ってから、「署名返信コマンド」を受け取ることなしに新たな「署名作成コマンド」を受け取ること、を特定のイベントとして定め、前記新たな「署名作成コマンド」を受け取ったときに、これまで記憶されていたデジタル署名の消去処理が行われるようにしたことを特徴とするデジタル署名システム。
【請求項１６】
請求項１３に記載のデジタル署名システムにおいて、
署名作成装置に対する電源供給が遮断されること、を特定のイベントとして定め、前記電源供給の遮断のための準備が行われた時点で、これまで記憶されていたデジタル署名の消去処理が行われるようにしたことを特徴とするデジタル署名システム。
【請求項１７】
請求項１〜１６のいずれかに記載のデジタル署名システムにおいて、
署名作成装置に対して「署名返信コマンド」が与えられたにも拘らず、返信対象となるデジタル署名が記憶されていない場合には、エラーを示すレスポンスが返信されるようにしたことを特徴とするデジタル署名システム。
【請求項１８】
請求項１〜１７のいずれかに記載のデジタル署名システムの一構成要素をなすメッセージ処理装置。
【請求項１９】
コンピュータを請求項１８に記載のメッセージ処理装置として機能させるためのプログラムおよび当該プログラムが記録されたコンピュータ読取り可能な記録媒体。
【請求項２０】
請求項１〜１７のいずれかに記載のデジタル署名システムの一構成要素をなす署名作成装置。
【請求項２１】
所定のメッセージデータに対して個人認証用のデジタル署名を作成する機能をもった署名作成装置であって、
個人用の秘密データを記憶するための秘密データ記憶部と、
外部に接続されたメッセージ処理装置との間で情報のやりとりを行う情報通信部と、
与えられたメッセージデータに対して前記秘密データを利用した所定のアルゴリズムに基づく演算を実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する署名作成部と、
作成したデジタル署名を記憶する署名記憶部と、
を備え、
前記情報通信部は、前記メッセージ処理装置から、デジタル署名の対象となる所定のメッセージデータを含んだ「署名作成コマンド」が送信されてきた場合には、当該メッセージデータを前記署名作成部に与えて署名の作成処理を実行させるとともに、当該「署名作成コマンド」に応じたレスポンスとして、作成された当該メッセージデータについてのデジタル署名を含まない所定のレスポンスを前記メッセージ処理装置へ返信する第１の処理と、前記メッセージ処理装置から、デジタル署名の返信を要求するための「署名返信コマンド」が送信されてきた場合には、当該「署名返信コマンド」に応じたレスポンスとして、前記署名記憶部に記憶されていた前記デジタル署名を含む所定のレスポンスを前記メッセージ処理装置へ返信する第２の処理と、を行う機能を有することを特徴とする署名作成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタル署名システムに関し、特に、ＩＣカードなどの携帯型の署名作成装置を利用したデジタル署名システムに関する。
【０００２】
【従来の技術】
インターネットを中心とする世界的規模のネットワーク環境が広まったことにより、社会生活上の様々な分野において、紙媒体の書類が電子媒体の書類に置き換わりつつあり、書類の作成者を確認し、書類への改竄の有無を検出するための方法として、従来の署名に代えて、デジタル署名の利用が普及し始めている。現在、一般に利用されているデジタル署名は、個人個人にそれぞれ固有の秘密データを与え、この秘密データを利用した所定のアルゴリズムに基づく演算により作成される。秘密データは、各個人の管理下にあるＩＣカードなどの情報処理装置に格納され、各個人の秘密データに対応した個人別公開データは、信頼ある認証局のコンピュータに格納される。各個人が、署名付きのメッセージを相手に送信したい場合には、デジタル署名の対象となるメッセージデータと個人用の秘密データとを用いて、所定のアルゴリズムに基づく演算を行わせることによりデジタル署名を作成し、このデジタル署名をもとのメッセージデータに添付して相手方に送信すればよい。相手方は、個人別公開データの真正性を認証局に照会し、受信したメッセージデータとデジタル署名とを個人別公開データを用いて検証することにより、デジタル署名が確かに送信主のものであるか、そして、受信したメッセージデータに改竄が行われていないか、を確認することができる。
【０００３】
デジタル署名を作成するための演算には、公開鍵暗号方式が用いられており、作成されたデジタル署名や個人別公開データからは各個人の秘密データを求めることはできない。したがって、デジタル署名を入手した第三者が、このデジタル署名に基づいてもとの秘密データを知得することはできない配慮がなされている。しかしながら、秘密データ自体が不正な手段で読み出されてしまうと、デジタル署名の偽造が可能になってしまう。このため、秘密データを格納し、この秘密データを用いてデジタル署名を作成する署名作成装置としては、可能な限りセキュリティの高い装置を用いるのが好ましい。
【０００４】
このような理由から、現在、実用化されているデジタル署名システムは、ＩＣカードからなる署名作成装置と、このＩＣカードに対するアクセス機能をもったリーダライタ装置およびこれを制御するためのコンピュータからなるメッセージ処理装置と、を組み合わせたものが主流である。個人個人にＩＣカードを配付し、このＩＣカード内に各個人用の秘密データを格納するようにすれば、秘密データを十分なセキュリティの下に管理することが可能になる。署名作成装置として機能するＩＣカード内には、秘密データを用いてデジタル署名を作成するための所定のアルゴリズムに基づく演算プログラムが組み込まれており、秘密データを用いた演算はすべてＩＣカードの内部で実行されることになる。デジタル署名の対象となるメッセージデータは、メッセージ処理装置として機能するコンピュータ側で用意し、これをリーダライタ装置を介してＩＣカードへと送信すればよい。ＩＣカードは、与えられたメッセージデータと、内部に格納されていた秘密データと、を用いた所定の演算を実行し、与えられたメッセージデータについてのデジタル署名を作成し、これをリーダライタ装置を介してコンピュータ側へと返信する。かくして、コンピュータ側に用意された任意のメッセージデータに対して、デジタル署名を得ることが可能になる。
【０００５】
【発明が解決しようとする課題】
上述したＩＣカードを利用したデジタル署名システムでは、個人用の秘密データはＩＣカード内に格納され、不正な方法で外部に読み出されることのないような十分なセキュリティ対策が講じられている。しかしながら、メッセージ処理装置として機能するコンピュータと、署名作成装置として機能するＩＣカードと、の間の通信が傍受されると、秘密データ自体が直接読み出されることはないものの、「特定のメッセージデータに対して、特定のデジタル署名が得られた」という事実は外部に漏れてしまうことになる。このような通信傍受は、リーダライタ装置とＩＣカードとの間の信号経路において行うことも可能であるし、コンピュータとリーダライタ装置との間の信号経路において行うことも可能である。更に、コンピュータ内のメモリを探索することによっても、通信傍受と同等の結果を得ることができる。最近は、このような通信傍受機能をもったコンピュータウイルスを配付することにより不正行為を行う例も少なくない。このような不正行為により、「特定のメッセージデータと特定のデジタル署名との対応関係」が多数入手されると、これらを解析することにより、ＩＣカード内の秘密データが推定されてしまう危険性が出てくる。また、通信傍受により、デジタル署名を作成させるためのコマンドコードを割り出すことも可能であり、不正アクセス者が、意図的に作成した都合のよいメッセージデータを、割り出したコマンドコードとともにＩＣカードに与えることにより、当該メッセージデータについてのデジタル署名を入手する、という不正行為（いわゆる適応的選択文書攻撃）が可能になり、様々な方法で偽造署名を用いた犯罪が行われる可能性がある。
【０００６】
そこで本発明は、デジタル署名の対象となるメッセージデータと、これについてのデジタル署名との対応関係が、不正な方法で傍受される蓋然性を低減し、よりセキュリティを向上させることが可能なデジタル署名システムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
（１）　　本発明の第１の態様は、所定のメッセージデータに対して個人認証用のデジタル署名を作成するためのシステムにおいて、
内部に個人用の秘密データを記憶し、与えられたメッセージデータに対してこの秘密データを利用した所定のアルゴリズムに基づく演算を内部で実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する機能をもった署名作成装置と、
この署名作成装置に接続することができ、デジタル署名の対象となる所定のメッセージデータを用意する機能と、用意したメッセージデータを署名処理装置に送信する機能と、署名処理装置の内部で作成されたデジタル署名を受信する機能と、を有するメッセージ処理装置と、
を用意し、
署名作成装置とメッセージ処理装置との間の情報のやりとりは、メッセージ処理装置から署名作成装置に対して所定のコマンドを送信する送信処理と、署名作成装置からメッセージ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を実行することによりなされるように構成し、
メッセージ処理装置は、デジタル署名の対象となる所定のメッセージデータを含んだ「署名作成コマンド」を署名作成装置に対して送信し、これに応じて署名作成装置から返信されてくるレスポンスを受信する第１の能動処理と、デジタル署名の返信を要求するための「署名返信コマンド」を署名作成装置に対して送信し、これに応じて署名作成装置から返信されてくるレスポンスを受信し、受信したレスポンスに含まれているデジタル署名を取り出す第２の能動処理と、を行う機能を有し、
署名作成装置は、「署名作成コマンド」が送信されてきたときに、当該コマンドに含まれているメッセージデータに対して秘密データを利用した所定のアルゴリズムに基づく演算を内部で実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する処理を実行し、作成したデジタル署名を内部に記憶し、当該「署名作成コマンド」に応じたレスポンスとして、作成した当該メッセージデータについてのデジタル署名を含まない所定のレスポンスを返信する第１の受動処理と、「署名返信コマンド」が送信されてきたときに、当該「署名返信コマンド」に応じたレスポンスとして、記憶されていたデジタル署名を含む所定のレスポンスを返信する第２の受動処理と、を行う機能を有するようにしたものである。
【０００８】
（２）　　本発明の第２の態様は、上述の第１の態様に係るデジタル署名システムにおいて、
ＩＣカードを署名作成装置として用い、当該ＩＣカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをメッセージ処理装置として用いるようにしたものである。
【０００９】
（３）　　本発明の第３の態様は、上述の第１または第２の態様に係るデジタル署名システムにおいて、
メッセージ処理装置に、署名を行う個人に、デジタル署名の対象となるメッセージデータを入力させるメッセージ入力処理と、当該個人に、メッセージデータに対する署名の意思確認のための入力を行わせる署名確認入力処理と、を行う機能をもたせ、メッセージ入力処理が完了した時点で第１の能動処理を実行し、署名確認入力処理が完了した時点で第２の能動処理を実行するようにしたものである。
【００１０】
（４）　　本発明の第４の態様は、上述の第３の態様に係るデジタル署名システムにおいて、
メッセージ処理装置が、ディスプレイ画面上にメッセージデータを入力するための入力欄を表示し、当該入力欄への入力操作が完了する指示が与えられた時点で、メッセージ入力処理が完了したものと判断して第１の能動処理を実行するとともに、ディスプレイ画面上において署名の意思確認のための確認ボタンを操作可能状態とし、確認ボタンに対する操作が行われた時点で、署名確認入力処理が完了したものと判断して第２の能動処理を実行するようにしたものである。
【００１１】
（５）　　本発明の第５の態様は、上述の第１〜第４の態様に係るデジタル署名システムにおいて、
メッセージ処理装置が、第１の能動処理としてのコマンド送信およびレスポンス受信を行った後、第２の能動処理としてのコマンド送信およびレスポンス受信を行うまでの間に、第１の能動処理および第２の能動処理とは無関係なコマンド送信およびレスポンス受信を１回もしくは複数回行うようにしたものである。
【００１２】
（６）　　本発明の第６の態様は、上述の第５の態様に係るデジタル署名システムにおいて、
メッセージ処理装置と署名作成装置との間で、第１の能動処理としてのコマンド送信および第１の受動処理としてのレスポンス返信が行われた後、本来は意味のないダミーコマンドの送信およびダミーレスポンスの返信が行われるようにしたものである。
【００１３】
（７）　　本発明の第７の態様は、上述の第１〜第６の態様に係るデジタル署名システムにおいて、
メッセージ処理装置が、第２の能動処理として送信する「署名返信コマンド」に、デジタル署名の対象となるメッセージデータとは無関係なダミーメッセージデータを含ませるようにしたものである。
【００１４】
（８）　　本発明の第８の態様は、上述の第１〜第７の態様に係るデジタル署名システムにおいて、
署名作成装置が、第１の受動処理として返信する「署名作成コマンドに応じたレスポンス」に、作成したデジタル署名とは無関係なダミーデジタル署名を含ませるようにしたものである。
【００１５】
（９）　　本発明の第９の態様は、上述の第１〜第８の態様に係るデジタル署名システムにおいて、
署名作成装置が、「署名返信コマンド」に基づく第２の受動処理を行った後に、これまで記憶されていたデジタル署名の消去処理を行うようにしたものである。
【００１６】
（１０）　本発明の第１０の態様は、上述の第１〜第８の態様に係るデジタル署名システムにおいて、
署名作成装置が、新たな「署名作成コマンド」に基づく第１の受動処理により作成された新たなデジタル署名を記憶するときに、前回の「署名作成コマンド」に基づく第１の受動処理により作成されて記憶されていたデジタル署名を消去する処理を実行するようにしたものである。
【００１７】
（１１）　本発明の第１１の態様は、上述の第１〜第８の態様に係るデジタル署名システムにおいて、
署名作成装置内に不揮発性メモリを設け、「署名作成コマンド」に基づいて作成したデジタル署名が不揮発性メモリに記憶されるようにし、
署名作成装置に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名返信コマンド」に基づいて、電源供給遮断前に不揮発性メモリに記憶されていたデジタル署名についての返信処理を行う際には、アクセス権の認証が行われることを条件として当該返信処理が実行されるようにしたものである。
【００１８】
（１２）　本発明の第１２の態様は、上述の第１〜第８の態様に係るデジタル署名システムにおいて、
署名作成装置内に不揮発性メモリを設け、「署名作成コマンド」に基づいて作成したデジタル署名が不揮発性メモリに記憶されるようにし、
署名作成装置に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名作成コマンド」に先んじて「署名返信コマンド」が与えられた場合には、不揮発性メモリに記憶されていたデジタル署名ついての返信処理を実行せずに、エラーを示すレスポンスが返信されるようにしたものである。
【００１９】
（１３）　本発明の第１３の態様は、上述の第１〜第８の態様に係るデジタル署名システムにおいて、
署名作成装置が、「署名作成コマンド」を受け取った後、予め定められた特定のイベントが発生するまでの間に「署名返信コマンド」を受け取らなかった場合には、「署名作成コマンド」に基づいて作成されて記憶されていたデジタル署名を消去する処理を実行するようにしたものである。
【００２０】
（１４）　本発明の第１４の態様は、上述の第１３の態様に係るデジタル署名システムにおいて、
「署名作成コマンド」を受け取ってから所定の時間が経過すること、を特定のイベントとして定め、所定の時間が経過したときに、これまで記憶されていたデジタル署名の消去処理が行われるようにしたものである。
【００２１】
（１５）　本発明の第１５の態様は、上述の第１３の態様に係るデジタル署名システムにおいて、
「署名作成コマンド」を受け取ってから、「署名返信コマンド」を受け取ることなしに新たな「署名作成コマンド」を受け取ること、を特定のイベントとして定め、新たな「署名作成コマンド」を受け取ったときに、これまで記憶されていたデジタル署名の消去処理が行われるようにしたものである。
【００２２】
（１６）　本発明の第１６の態様は、上述の第１３の態様に係るデジタル署名システムにおいて、
署名作成装置に対する電源供給が遮断されること、を特定のイベントとして定め、電源供給の遮断のための準備が行われた時点で、これまで記憶されていたデジタル署名の消去処理が行われるようにしたものである。
【００２３】
（１７）　本発明の第１７の態様は、上述の第１〜第１６の態様に係るデジタル署名システムにおいて、
署名作成装置に対して「署名返信コマンド」が与えられたにも拘らず、返信対象となるデジタル署名が記憶されていない場合には、エラーを示すレスポンスが返信されるようにしたものである。
【００２４】
（１８）　本発明の第１８の態様は、上述の第１〜第１７の態様に係るデジタル署名システムの一構成要素として、メッセージ処理装置を提供できるようにしたものである。
【００２５】
（１９）　本発明の第１９の態様は、上述の第１８の態様に係るメッセージ処理装置として、コンピュータを機能させるためのプログラムを用意し、これをコンピュータ読取り可能な記録媒体に格納して配付できるようにしたものである。
【００２６】
（２０）　本発明の第２０の態様は、上述の第１〜第１７の態様に係るデジタル署名システムの一構成要素として、署名作成装置を提供できるようにしたものである。
【００２７】
（２１）　本発明の第２１の態様は、所定のメッセージデータに対して個人認証用のデジタル署名を作成する機能をもった署名作成装置において、
個人用の秘密データを記憶するための秘密データ記憶部と、
外部に接続されたメッセージ処理装置との間で情報のやりとりを行う情報通信部と、
与えられたメッセージデータに対して秘密データを利用した所定のアルゴリズムに基づく演算を実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する署名作成部と、
作成したデジタル署名を記憶する署名記憶部と、
を設け、
情報通信部が、メッセージ処理装置から、デジタル署名の対象となる所定のメッセージデータを含んだ「署名作成コマンド」が送信されてきた場合には、当該メッセージデータを署名作成部に与えて署名の作成処理を実行させるとともに、当該「署名作成コマンド」に応じたレスポンスとして、作成された当該メッセージデータについてのデジタル署名を含まない所定のレスポンスをメッセージ処理装置へ返信する第１の処理と、メッセージ処理装置から、デジタル署名の返信を要求するための「署名返信コマンド」が送信されてきた場合には、当該「署名返信コマンド」に応じたレスポンスとして、署名記憶部に記憶されていたデジタル署名を含む所定のレスポンスをメッセージ処理装置へ返信する第２の処理と、を行うようにしたものである。
【００２８】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
§１．本発明の基本的な実施形態
図１は、本発明の基本的な実施形態に係るデジタル署名システムの構成を示すブロック図である。このデジタル署名システムは、図示のとおり、メッセージ処理装置１００と、署名作成装置２００とによって構成されている。この実施形態では、メッセージ処理装置１００は、コンピュータ１１０とリーダライタ装置１２０とによって構成されており、署名作成装置２００は、ＩＣカードによって構成されている。ＩＣカードからなる署名作成装置２００には、図示のとおり、情報通信部２１０、秘密データ記憶部２２０、署名作成部２３０、署名記憶部２４０なる構成要素が設けられている。もっとも、これらの各構成要素は、ＩＣカードのソフトウエア上の機能に着目した構成を示すものであり、ハードウエア上の構成要素の観点からは、ＩＣカードは、ＣＰＵと、メモリ（ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ）と、入出力インターフェイスと、を備えており、情報通信部２１０は入出力インターフェイスにより構成され、秘密データ記憶部２２０および署名記憶部２４０はメモリ（ここに示す実施形態の場合は、不揮発性メモリであるＥＥＰＲＯＭ内の領域が、秘密データ記憶部２２０および署名記憶部２４０として用いられている）により構成され、署名作成部２３０はメモリに格納されたプログラムに基づいて動作するＣＰＵにより構成される。
【００２９】
ＩＣカードからなる署名作成装置２００は、携帯型の情報処理装置であり、各ユーザが携帯することができ、必要に応じて、メッセージ処理装置１００に接続して利用することができる。最近は、既に種々の用途でＩＣカードが利用され始めている。したがって、署名作成装置２００は、必ずしも署名作成機能のみを果たす専用のＩＣカードとして提供する必要はなく、実用上は、複数の用途に共用される汎用のＩＣカードを署名作成装置２００として利用することが可能である。リーダライタ装置１２０は、このＩＣカードからなる署名作成装置２００と接続して、情報のやりとりを行う機能を有しており、ＩＣカードに対する直接のアクセスは、すべてリーダライタ装置１２０によって実行される。一方、コンピュータ１１０は、周辺機器として接続されたリーダライタ装置１２０を制御する機能を有し、たとえば、個人用のパーソナルコンピュータによって構成することができる。
【００３０】
ここでは、このコンピュータ１１０に、インターネットに接続してＷｅｂページを閲覧するＷｅｂブラウザソフトウエアが組み込まれており、ユーザがインターネットを介して、特定のサイトに、デジタル署名付きメッセージデータを送信する場合を例にとって、このシステムの基本動作を説明する。このような基本動作は、メッセージ処理装置１００と署名作成装置２００との分業によって行われる。
【００３１】
すなわち、まず、メッセージ処理装置１００側において、デジタル署名の対象となるメッセージデータが用意される。メッセージデータは、コンピュータ１１０のキーボードなどを利用して、ユーザからの直接入力により用意するようにしてもよいし、記憶装置内のファイルなどから読み出すことにより用意するようにしてもよい。もちろん、ネットワークを介して、コンピュータ１１０内に取り込むことにより、メッセージデータを用意することも可能である。こうしてコンピュータ１１０内に用意されたメッセージデータは、リーダライタ装置１２０を介して、署名作成装置２００へと送信される。より具体的には、メッセージデータは、情報通信部２１０によって受信され、署名作成部２３０へと与えられる。一方、秘密データ記憶部２２０内には、この署名作成装置２００（ＩＣカード）の所有者であるユーザ個人が、個人認証用のデジタル署名を行うための秘密データが記憶されている。署名作成部２３０は、情報通信部２１０から与えられたメッセージデータに対して、秘密データ記憶部２２０内の秘密データを利用した所定のアルゴリズムに基づく演算を実行することにより、当該メッセージデータに対する個人認証用のデジタル署名を作成する処理を行う。こうして作成されたデジタル署名は、署名記憶部２４０内に一時的に格納された後、情報通信部２１０を介してリーダライタ装置１２０へと返信され、コンピュータ１１０へと伝達される。
【００３２】
結局、署名作成装置２００は、メッセージ処理装置１００側から送信されてきたメッセージデータに対して、秘密データ記憶部２２０内の秘密データを用いてデジタル署名を作成し、作成したデジタル署名をメッセージ処理装置１００へと返信する機能を果たす装置ということになり、メッセージ処理装置１００は、デジタル署名の対象となる所定のメッセージデータを用意し、この用意したメッセージデータを署名作成装置２００に送信し、署名作成装置２００の内部で作成されたデジタル署名を受信する機能を果たす装置ということになる。こうして、コンピュータ１１０内に、所定のメッセージデータと、これに対するデジタル署名とが整ったら、これらをインターネットを介して所定のサイトへと送信することができる。当該サイト側では、受信したメッセージデータとデジタル署名との正当性を所定の認証局へ問い合わせることにより、正当なユーザから正当なメッセージデータが送信されてきたことを確認することができる。
【００３３】
続いて、以上の基本動作を、具体的なデータを用いて説明してみよう。ここでは、「特許太郎」なる特定のユーザが、コンピュータ１１０を用いて特定のＷｅｂサイトにアクセスし、当該Ｗｅｂサイトが運営するオンライン書店に、百科事典の発注を行うという具体的な例をとりあげてみる。まず、このような発注を行うために、ユーザ「特許太郎」は、図２に示すようなメッセージデータＭ（「百科事典一式を注目します。」なる文字列からなるデータ）をコンピュータ１１０に入力する。すると、このメッセージデータＭは、リーダライタ装置１２０を介して情報通信部２１０へと送信され、署名作成部２３０へ与えられる。ここで、このユーザ「特許太郎」の所持するＩＣカード内には、図２に示すような秘密データＨ（この例では、便宜上、「ＡＢＣ１２３」なる文字列であったとする）が格納されていたものとしよう。具体的には、秘密データ記憶部２２０（この例では、ＥＥＰＲＯＭ）内に、秘密データＨが格納されていることになる。なお、秘密データＨは、このＩＣカードをユーザ「特許太郎」に発行する際に、発行元において所定の方法で書き込まれる。
【００３４】
さて、署名作成部２３０は、予め用意されていた所定のアルゴリズムに基づいて、メッセージデータＭに対して、秘密データＨを利用した所定の演算を実行し、メッセージデータＭに対する個人認証用のデジタル署名Ｄを作成する。ここでは、たとえば、図２に示すようなデジタル署名Ｄ（この例では、便宜上、「４５６７８９」なる数値であったとする）が作成されたものとしよう。このようなデジタル署名を作成するアルゴリズムは、ＩＣカード内のＲＯＭなどのメモリに予めプログラムとして用意されていることになる。デジタル署名作成のための具体的なアルゴリズムとしては、たとえば、「メッセージデータＭを構成する文字列に、秘密データＨを構成する文字列を付加し、これら文字列を１６進数に置き換えて数値化し、この数値にハッシュ関数を作用させたハッシュ値をデジタル署名とする」というようなアルゴリズムを用いればよい。ある元になる数値にハッシュ関数を作用させることにより得られるハッシュ値は一義的に定まるが、ハッシュ値から元になる数値を逆算することはできないので、メッセージデータＭと秘密データＨとが与えられれば、署名作成部２３０によって、ハッシュ値として与えられるデジタル署名Ｄを一義的に求めることができるが、逆に、デジタル署名ＤとメッセージデータＭとが既知であったとしても、それらから秘密データＨを求めることはできない。
【００３５】
こうして、署名作成部２３０によって作成された「４５６７８９」なる数値からなるデジタル署名Ｄは、署名記憶部２４０に格納された後、情報通信部２１０およびリーダライタ装置１２０を介して、コンピュータ１１０へと返信される。そこで、コンピュータ１１０は、メッセージデータＭとともにデジタル署名Ｄを、「特許太郎」なるユーザからの注文として、オンライン書店のサイトへと送信して、百科事典の発注を行うことになる。
【００３６】
一方、秘密データ記憶部２２０内に格納されている秘密データＨは、信頼すべき認証局にも、「特許太郎」なるユーザの個人認証用秘密データとして登録されている。したがって、「百科事典一式注文します。」なるメッセージデータＭと、「４５６７８９」なるデジタル署名Ｄとを、「特許太郎」なるユーザからの注文として受信したオンライン書店は、これらを認証局に照会することにより、メッセージデータＭおよびデジタル署名Ｄの組み合わせが、確かに「特許太郎」から発信されたものであることを確認することができる。すなわち、認証局において、「百科事典一式注文します。」なるメッセージデータＭと、特許太郎の秘密データＨとして登録されている「ＡＢＣ１２３」なるデータとを用いて、所定のアルゴリズム（署名作成部２３０により実行される署名作成処理と同じアルゴリズム）による演算を実行し、「４５６７８９」なる同一のデジタル署名Ｄが得られれば、「百科事典一式注文します。」なるメッセージデータＭと、「４５６７８９」なるデジタル署名Ｄとの組み合わせが、確かに「特許太郎」なるユーザが発信したものであることが確認されることになる。もちろん、メッセージデータＭの一部が改竄された場合には、得られるデジタル署名が異なることになるため、正しい認証結果は得られなくなる。
【００３７】
さて、このように、メッセージ処理装置１００側でメッセージデータＭを用意し、これを署名作成装置２００側に与えて、署名作成装置２００側の内部演算でデジタル署名Ｄを作成させ、このデジタル署名Ｄを再びメッセージ処理装置１００側へ返信させる、という基本動作を行うためには、当然ながら、メッセージ処理装置１００と署名作成装置２００との間で情報のやりとりを行う必要がある。一般に、ＩＣカードとリーダライタ装置との間の情報のやりとりは、リーダライタ装置側から所定のコマンドをＩＣカード側へと送信し、このコマンドに応じた所定のレスポンスをＩＣカード側からリーダライタ装置側へと返信させる、という交信処理を交互に実行することによりなされる。
【００３８】
ＩＣカード側に署名作成処理を実行させるタイプの従来の一般的なデジタル署名システムの場合、まず、リーダライタ装置からＩＣカードに対して、たとえば図３（ａ）　に示すような署名コマンドを与え、これに応じて、ＩＣカードからリーダライタ装置に対して、たとえば図３（ｂ）　に示すようなレスポンスを返信させる、という処理を行い、所定のメッセージデータＭに対するデジタル署名Ｄを作成させている。図３に示す具体的な例の場合、署名コマンドは、「ＳＩＧＮ」なるコマンドコード（当該コマンドが、署名作成を要求するためのコマンドであることを示すコード）からなる見出部と、「百科事典一式を注文します。」なる文字列のメッセージデータＭからなる本体部と、によって構成されており、この署名コマンドに対するレスポンスは、「ＯＫ」なるステータスコード（与えられたコマンドが正しく処理されたことを示すコード）からなる本体部と、「４５６７８９」なるデジタル署名Ｄからなる後続部と、によって構成されている。ＩＣカード側に、図３（ａ）　に示すような署名コマンドを理解し、この署名コマンドの本体部に含まれるメッセージデータＭと、内部に記憶されている秘密データＨと、を用いてデジタル署名Ｄを作成し、作成したデジタル署名Ｄを後続部に含ませたレスポンスを返信する処理を実行する機能をもたせておけば、このＩＣカードに対して、図３（ａ）　に示すような署名コマンドを与えると、図３（ｂ）　に示すようなレスポンスが返信されることになり、所定のメッセージデータＭについてのデジタル署名Ｄを得ることができる。
【００３９】
しかしながら、このように、デジタル署名の対象となるメッセージデータＭをメッセージ処理装置１００側で用意し、このメッセージデータＭを含むコマンドを署名作成装置２００（ＩＣカード）に与え、署名作成装置２００からメッセージ処理装置１００に返信されてくるレスポンスとして、作成されたデジタル署名Ｄを得る、という方法を採る以上、メッセージ処理装置１００と署名作成装置２００との間の交信傍受などの不正手段による攻撃を受ける可能性があり、秘密データＨを推測する手掛かりを与えてしまうおそれがあることは既に述べたとおりである。たとえば、図３に示す例の場合、交信傍受などの方法により、図３（ａ）　に示す署名コマンドに対して、図３（ｂ）　に示すレスポンスが返信された、という事実が認識できれば、「百科事典一式を注文します。」なるメッセージデータＭに対応するデジタル署名Ｄが「４５６７８９」であることがわかってしまう。もちろん、このようなメッセージデータＭとデジタル署名Ｄとの組み合わせ１組だけでは、秘密データ記憶部２２０内の秘密データＨを推測することは非常に困難であるが、交信傍受を継続すれば、メッセージデータＭとデジタル署名Ｄとの多数の組み合わせが蓄積でき、このような蓄積が多くなればなるほど、秘密データＨの推測確率が高まってゆく。また、署名コマンドのコードが「ＳＩＧＮ」であることが認識できれば、不正者自身が任意のメッセージデータＭを含んだ署名コマンドをＩＣカードに与え、これに対応するレスポンスを得ることができるようになるので、秘密データＨは、より推測しやすくなる。
【００４０】
本発明は、このように、メッセージ処理装置１００から署名作成装置２００に対して所定のコマンドを送信する送信処理と、署名作成装置２００からメッセージ処理装置１００に対して当該コマンドに応じたレスポンスを返信する返信処理と、を交互に実行することにより、両者間における情報のやりとりが行われるデジタル署名システムにおいて、セキュリティの向上を図ることを目的とするものである。その要点は、デジタル署名の対象となるメッセージデータＭをメッセージ処理装置１００から署名作成装置２００へと送信して署名作成を要求するためのコマンド（ここでは、署名作成コマンドという）と、署名作成装置２００側で作成されたデジタル署名Ｄをメッセージ処理装置１００側へと返信させるためのコマンド（ここでは、署名返信コマンドという）と、を別個独立したコマンドとして用意しておき、署名作成コマンドに対するレスポンスには、作成したデジタル署名を含ませないようにし、署名返信コマンドに対するレスポンスに、作成したデジタル署名を含ませて返信させるようにする点にある。
【００４１】
すなわち、本発明に係るデジタル署名システムでは、図１に示すメッセージ処理装置１００と署名作成装置２００との間で、図４に示すようなコマンドおよびレスポンスのやりとりが行われることになる。まず、メッセージ処理装置１００から署名作成装置２００に対して、図４（ａ）　に示すような署名作成コマンドが与えられる。この例では、署名作成コマンドは、「ＭＡＫＥ」なるコマンドコードからなる見出部と、「百科事典一式を注文します。」なる文字列のメッセージデータＭからなる本体部と、によって構成されている。このような署名作成コマンドを受信した情報通信部２１０は、メッセージデータＭの部分を署名作成部２３０に与えてデジタル署名Ｄを作成させる。前述のように、署名作成部２３０は、メッセージデータＭと秘密データ記憶部２２０内の秘密データＨとに対して、所定のアルゴリズムに基づく演算を施し、たとえば「４５６７８９」のようなデジタル署名Ｄを作成し、これを署名記憶部２４０に書き込む処理を行う。一方、情報通信部２１０は、与えられた署名作成コマンドに対するレスポンスをメッセージ処理装置１００へと返信することになるが、このレスポンスには、署名作成部２３０によって作成され、署名記憶部２４０内に書き込まれた「４５６７８９」なるデジタル署名Ｄは含まれないようにする。具体的には、たとえば、図４（ｂ）　に示すようなレスポンスを返信する処理が実行される。このレスポンスは、「ＯＫ」なるステータスコードからなる本体部のみからなるレスポンスであり、後続部は存在しない。結局、このレスポンスは、与えられた署名作成コマンドが支障なく実行されたことのみを示す情報となる。別言すれば、図４（ａ）　に示すような署名作成コマンドを与えても、作成された「４５６７８９」なるデジタル署名Ｄは、当該署名作成コマンドに対するレスポンスとしては返信されてこないことになる。
【００４２】
本発明では、作成されたデジタル署名Ｄを得るために、メッセージ処理装置１００から署名作成装置２００に対して、図４（ｃ）　に示すような署名返信コマンドを与える必要がある。この例では、署名返信コマンドは、「ＢＡＣＫ」なるコマンドコードからなる見出部のみから構成され、本体部は存在しない。このような署名返信コマンドを受信した情報通信部２１０は、署名記憶部２４０内に格納されていた「４５６７８９」なるデジタル署名Ｄを読み出し、このデジタル署名Ｄを含むレスポンスを、メッセージ処理装置１００へと返信する処理を行う。このレスポンスは、具体的には、たとえば、図４（ｄ）　に示すようなレスポンスになる。このレスポンスは、「ＯＫ」なるステータスコードからなる本体部に、「４５６７８９」なる後続部を加えたレスポンスであり、与えられた署名返信コマンドが支障なく実行されたことを示すとともに、返信対象となるデジタル署名Ｄが「４５６７８９」であることを示す情報となる。別言すれば、図４（ｃ）　に示す署名返信コマンドは、過去に与えた図４（ａ）　に示す署名作成コマンドによって作成されたデジタル署名Ｄの返信を求めるコマンドということになる。なお、署名返信コマンドが与えられたのに、署名記憶部２４０内にデジタル署名Ｄが格納されていない場合（すなわち、署名作成コマンドが与えられていない状態で、署名返信コマンドが与えられてしまった場合）には、当該署名返信コマンドに対しては、本体部にエラーを示すステータスが書き込まれたレスポンスが返信されることになる。
【００４３】
結局、本発明に係るデジタル署名システムでは、所定のメッセージデータＭについてのデジタル署名Ｄを得るために、メッセージ処理装置１００および署名作成装置２００において、それぞれ次のような処理が行われることになる。なお、ここでは、説明の便宜上、メッセージ処理装置１００側の処理を「能動処理」、署名作成装置２００側の処理を「受動処理」と呼んで区別することにする。
【００４４】
まず、メッセージ処理装置１００側では、次のような処理が行われる。はじめに、デジタル署名の対象となる所定のメッセージデータＭを含んだ「署名作成コマンド」を署名作成装置２００に対して送信し、これに応じて返信されてくるレスポンスを受信する第１の能動処理が行われる。すなわち、この第１の能動処理は、図４（ａ）　に示すような署名作成コマンドを送信し、これに応じて返信されてくる図４（ｂ）　に示すようなレスポンスを受信する処理ということになる。続いて、デジタル署名の返信を要求するための「署名返信コマンド」を署名作成装置２００に対して送信し、これに応じて返信されてくるレスポンスを受信し、受信したレスポンスに含まれているデジタル署名を取り出す第２の能動処理が行われる。すなわち、この第２の能動処理は、図４（ｃ）　に示すような署名返信コマンドを送信し、これに応じて送信されてくる図４（ｄ）　に示すようなレスポンスを受信し、後続部に含まれている「４５６７８９」なるデジタル署名Ｄを取り出す処理ということになる。
【００４５】
もちろん、この第１の能動処理と第２の能動処理とは、必ずしも連続して実行する必要はなく、両処理の間に別な処理（メッセージ処理装置１００側から何らかのコマンドを送信し、これに応じて何らかのレスポンスを受信する処理）を実行してもかまわない。また、署名作成装置２００に対するコマンド送信作業は、ユーザの直接的な指示に基づいて行われるわけではなく、メッセージ処理装置１００を構成するコンピュータ１１０上で実行されているプログラムの指示に基づいて行われることになる。したがって、上述した第１の能動処理や第２の能動処理の手順は、このコンピュータ１１０上で実行されるプログラムに記述されていることになる。
【００４６】
一方、署名作成装置２００側では、個々のコマンドが与えられるたびに、このコマンドの内容に応じた所定の処理が実行され、所定のレスポンスを返信する処理が実行されることになる。具体的には、まず、上述した「署名作成コマンド」が送信されてきたときには、当該コマンドに含まれているメッセージデータＭに対して、秘密データＨを利用した所定のアルゴリズムに基づく演算を内部で実行し、当該メッセージデータＭに対する個人認証用のデジタル署名Ｄを作成する処理を実行し、作成したデジタル署名Ｄを内部に記憶し、当該「署名作成コマンド」に応じたレスポンスとして、作成した当該メッセージデータＭについてのデジタル署名Ｄを含まない所定のレスポンスを返信する第１の受動処理が行われる。すなわち、この第１の受動処理は、メッセージ処理装置１００から情報通信部２１０に対して、図４（ａ）　に示すような、デジタル署名の対象となる所定のメッセージデータＭを含んだ「署名作成コマンド」が送信されてきた場合に、当該メッセージデータＭを署名作成部２３０に与えて署名の作成処理を実行させるとともに、当該「署名作成コマンド」に応じたレスポンスとして、作成された当該メッセージデータＭについてのデジタル署名Ｄを含まない、たとえば図４（ｂ）　に示すような所定のレスポンスをメッセージ処理装置１００へ返信する処理ということになる。
【００４７】
また、上述した「署名返信コマンド」が送信されてきたときには、当該「署名返信コマンド」に応じたレスポンスとして、記憶されていたデジタル署名Ｄを含む所定のレスポンスを返信する第２の受動処理が行われる。すなわち、この第２の受動処理は、メッセージ処理装置１００から情報通信部２１０に対して、図４（ｃ）　に示すような、デジタル署名の返信を要求するための「署名返信コマンド」が送信されてきた場合に、当該「署名返信コマンド」に応じたレスポンスとして、署名記憶部２４０に記憶されていたデジタル署名Ｄを含む、たとえば図４（ｄ）　に示すような所定のレスポンスをメッセージ処理装置１００へ返信する処理ということになる。なお、上述したように、「署名返信コマンド」が送信されてきたのにも拘わらず、署名記憶部２４０内に、返信すべきデジタル署名Ｄが記憶されていなかった場合には、エラーを示すレスポンスが返信されることになる。
【００４８】
もちろん、この第１の受動処理と第２の受動処理とは、実際には、署名作成装置２００を構成するＩＣカード内のＣＰＵが、ＲＯＭやＥＥＰＲＯＭなどに予め格納されているプログラムに基づいて実行する処理である。したがって、上述した第１の受動処理や第２の受動処理の手順は、このＩＣカード上で実行されるプログラムに記述されていることになる。
【００４９】
§２．本発明の実用的な実施形態
以上、本発明の基本的な実施形態について述べたが、ここでは、より実用的な実施形態を示しておく。
【００５０】
本発明の特徴は、メッセージ処理装置１００側から署名作成装置２００側にメッセージデータＭを受け渡して署名作成を指示する署名作成コマンドと、署名作成装置２００側で作成されたデジタル署名Ｄをメッセージ処理装置１００側にレスポンスとして返信することを指示する署名返信コマンドとを別個にし、１回のコマンド／レスポンスという交信でやりとりされる情報の中に、メッセージデータＭとこれに対応するデジタル署名Ｄとの双方が含まれることを避け、交信傍受などの攻撃に対するセキュリティを向上させようとする点にある。すなわち、従来のデジタル署名システムでは、図３に示すように、１回のコマンド／レスポンスという交信でやりとりされる情報の中に、メッセージデータＭとこれに対応するデジタル署名Ｄとの双方が含まれてしまうことになるのに対し、本発明のデジタル署名システムでは、図４（ａ）　，（ｂ）　に示すような１回のコマンド／レスポンスという交信でやりとりされる情報の中には、メッセージデータＭのみしか含まれておらず、また、図４（ｃ）　，（ｄ）　に示すような１回のコマンド／レスポンスという交信でやりとりされる情報の中にも、デジタル署名Ｄのみしか含まれていない。このため、交信傍受などの不正手段によって、個々のコマンド／レスポンス対について、その内容解析が行われたとしても、メッセージデータＭとデジタル署名Ｄとの対が露呈しにくく、また、署名作成を要求するコマンドコード（図４の例の場合「ＭＡＫＥ」）や署名返信を要求するコマンドコード（図４の例の場合「ＢＡＣＫ」）も露呈しにくくなる。
【００５１】
このように、本発明によるセキュリティの向上効果は、署名作成コマンドを送信するタイミング（第１の能動処理を実行するタイミング）と、署名返信コマンドを送信するタイミング（第２の能動処理を実行するタイミング）とに大きく左右されることになる。実用上は、これらの２つのタイミングが離れていればいるほど、より大きなセキュリティの向上効果が期待できる。もっとも、メッセージ処理装置１００側で行われる第１の能動処理のタイミングや第２の能動処理のタイミングは、すべてメッセージ処理装置１００を構成するコンピュータ１１０上で動作しているプログラムにより決められる。そこで、以下に、コンピュータ１１０上で動作しているプログラムとの関連において、第１の能動処理および第２の能動処理を実行すべきタイミングについての実例を示しておく。
【００５２】
前述したように、コンピュータ１１０は、デジタル署名の対象となるメッセージデータＭを用意する機能を有しており、このようなメッセージデータＭは、通常、署名を行うユーザ自身がキーボードなどから入力することになる。したがって、コンピュータ１１０には、デジタル署名の対象となるメッセージデータＭを入力させるメッセージ入力処理を行う機能が備わっている。また、「デジタル署名」という行為は、通常、物品の購入契約の締結など、法律的に意味のある行為に付随して行われることが多く、「デジタル署名」を行う前に、署名を行うユーザ自身に、メッセージデータＭに対する署名の意思確認のための入力を行わせるのが好ましい。したがって、通常、コンピュータ１１０には、署名確認入力処理（たとえば、署名ボタンなどをユーザにクリックさせるような処理）を行う機能が備わっている。
【００５３】
ここで述べる実施形態では、上述した各入力処理機能を利用して、第１の能動処理および第２の能動処理を実行させるようなプログラムがなされている。すなわち、ユーザによるメッセージ入力処理が完了した時点で第１の能動処理を実行し、署名確認入力処理が完了した時点で第２の能動処理を実行するようなプログラムがなされている。具体的には、ディスプレイ画面上にメッセージデータＭを入力するための入力欄を表示し、当該入力欄への入力操作が完了する指示が与えられた時点で、メッセージ入力処理が完了したものと判断して第１の能動処理を実行するとともに、ディスプレイ画面上において署名の意思確認のための確認ボタンを操作可能状態とし、この確認ボタンに対する操作が行われた時点で、署名確認入力処理が完了したものと判断して第２の能動処理を実行するようにすることができる。
【００５４】
これをより具体的な例について説明しよう。たとえば、コンピュータ１１０のディスプレイ画面上に、図５に示すようなウインドウを表示させるようにした場合を考えてみる。このウインドウは、インターネットを介して所定のサイトに、署名付文書を送信するためのウインドウであり、ユーザは、このウインドウ上で、送信対象となるメッセージデータＭを入力するメッセージ入力処理と署名確認入力処理とを行うことができる。メッセージ入力処理は、３つの入力欄Ｉ１，Ｉ２，Ｉ３のそれぞれに所定の文字列を入力する作業によって行われる。図示の例は、住所を入力すべき入力欄Ｉ１に、「東京都新宿区○○」なる文字列が入力済みとなっており、氏名を入力すべき入力欄Ｉ２に、「特許太郎」なる文字列が入力済みとなっており、内容を入力すべき入力欄Ｉ３に、「百科事典一式を」なる文字列までが入力された状態が示されている。このような入力作業は、キーボードやマウスなどを操作することにより実行される。この例では、その下に「署名」なるボタンＢ１と、「取消」なるボタンＢ２が表示されている。ボタンＢ１は、デジタル署名の意思確認のための確認ボタンであるが、この時点では、まだ操作可能状態にはなっていない。すなわち、図では破線で描かれており、ボタンＢ１は、クリックしても反応しない状態となっている。一方、ボタンＢ２は、常に操作可能状態になっている。ユーザが、このボタンＢ２をクリックすることにより、この署名付文書の送信手続を取り消すことができる。
【００５５】
さて、ユーザが、入力欄Ｉ３に、「百科事典一式を注文します。」なる全文の入力を完了し、ＥｎｔｅｒキーやＴａｂキーなどを押して入力完了の操作を行うと、３つの入力欄Ｉ１，Ｉ２，Ｉ３のすべてについての入力操作が完了した旨の指示が与えられたことになる。この実施形態では、このタイミングで、第１の能動処理を行うようにしている。すなわち、３つの入力欄Ｉ１，Ｉ２，Ｉ３のすべてについての入力操作の終了により、署名対象となるメッセージデータＭの入力処理が完了することになるので、この時点で、コンピュータ１１０からリーダライタ装置１２０を介して署名作成装置２００側に、図４（ａ）　に示すような署名作成コマンド（ただし、本体部は、「東京都新宿区○○／特許太郎／百科事典一式を注文します。」なる文字列になる）が送信され、これに応じて、図４（ｂ）　に示すようなレスポンスが得られることになる。そして、この時点で、ボタンＢ１が操作可能状態となり、ウインドウの表示は、図６に示すようなものになる。すなわち、コンピュータ１１０は、署名対象となるメッセージデータＭの入力処理が完了したと判断した時点で、第１の能動処理を実行するとともに、ディスプレイ画面上において署名の意思確認のための確認ボタンＢ１を操作可能状態とする処理を実行することになる。
【００５６】
もちろん、ユーザには、コマンドの送信やレスポンスの受信といった処理が行われていることは認識することができない。したがって、ユーザの観点からは、入力欄Ｉ３への文字列の入力を完了した時点（たとえば、ＥｎｔｅｒキーやＴａｂキーを入力した時点）で、図６に示すように、ボタンＢ１の表示が変化し、クリック可能な状態になった、との認識がなされることになる。ここで、操作可能状態となったボタンＢ１は、ユーザに対して、デジタル署名の意思確認を求めており、ユーザがこのボタンＢ１をクリックした時点で、最終的なデジタル署名の意思確認がなされたことになる。もっとも、実際には、ウインドウの表示が図６のような状態になった時点で、既に、署名作成装置２００内部では、メッセージデータＭに対するデジタル署名Ｄが演算により求められ、署名記憶部２４０内に格納されていることになる。
【００５７】
ユーザが、図６に示すボタンＢ１をクリックすると、署名の意思確認のための確認ボタンに対する操作が行われたことになり、署名確認入力処理が完了したものと判断される。この実施形態では、このタイミングで、第２の能動処理を行うようにしている。すなわち、署名確認入力処理が完了した時点で、コンピュータ１１０からリーダライタ装置１２０を介して署名作成装置２００側に、図４（ｃ）　に示すような署名返信コマンドが送信され、これに応じて、図４（ｄ）　に示すようなレスポンスが得られることになる。こうして、コンピュータ１１０内には、メッセージデータＭと、これに対応したデジタル署名Ｄが用意できた状態になるので、これらを所定のサイトへ送信する処理が行われる。
【００５８】
このように、ディスプレイ画面上にメッセージデータＭを入力するための入力欄を表示し、当該入力欄への入力操作が完了する指示が与えられた時点で、メッセージ入力処理が完了したものと判断して第１の能動処理を実行するとともに、ディスプレイ画面上において署名の意思確認のための確認ボタンを操作可能状態とし、この確認ボタンに対する操作が行われた時点で、署名確認入力処理が完了したものと判断して第２の能動処理を実行するようにすれば、メッセージデータＭの入力から署名の意思確認という一連の流れの手順をユーザ自身が行ってゆくだけで、自動的に第１の能動処理および第２の能動処理のタイミングが指示されることになる。こうして指示された第１の能動処理のタイミングから第２の能動処理のタイミングまでの時間は、ＣＰＵのマシンサイクルに比べれば非常に長い時間となり、また、各タイミングは、ユーザ自身の入力操作によってランダムに決定されるタイミングとなるため、不正な攻撃に対してより高いセキュリティが確保されることになる。すなわち、図４（ａ）　の署名作成コマンドが与えられるタイミングと、図４（ｃ）　の署名返信コマンドが与えられるタイミングとの間に、十分な時間が確保でき、しかも、この時間はユーザの操作に起因するランダムな時間ということになる。
【００５９】
なお、セキュリティをより向上させる上では、図４（ａ）　の署名作成コマンドの送信および図４（ｂ）　のレスポンスの返信が行われた後、図４（ｃ）　の署名返信コマンドの送信および図４（ｄ）　のレスポンスの返信が行われるまでの間に、別なコマンド／レスポンスの対が挿入されるようにするのが好ましい。すなわち、第１の能動処理としてのコマンド送信およびレスポンス受信を行った後、第２の能動処理としてのコマンド送信およびレスポンス受信を行うまでの間に、第１の能動処理および第２の能動処理とは無関係なコマンド送信およびレスポンス受信を１回もしくは複数回行うようにすれば、図４（ａ）　の署名作成コマンドに含まれるメッセージデータＭと、図４（ｄ）　の署名返信コマンドに対するレスポンスに含まれるデジタル署名Ｄとの間に、無関係なコマンド／レスポンスが介挿されることになるので、メッセージデータＭとデジタル署名Ｄとの対応関係がより把握されにくくなる。
【００６０】
図４（ａ）　の署名作成コマンドの送信および図４（ｂ）　のレスポンスの返信が行われた時点と、図４（ｃ）　の署名返信コマンドの送信および図４（ｄ）　のレスポンスの返信が行われた時点との時間的間隔がある程度離れていた場合には、システムによっては、何らかの意味のある別なコマンド／レスポンスの対が自動的に挿入されるケースもありえよう。ただ、実用上は、メッセージ処理装置１００と署名処理装置２００との間で、第１の能動処理としてのコマンド送信および第１の受動処理としてのレスポンス返信が行われた後に、本来は意味のないダミーコマンドの送信およびダミーレスポンスの返信が行われるようにするのが好ましい。
【００６１】
また、図４（ｂ）　に示す「署名作成コマンドに対するレスポンス」には、接続部が存在しないが、実用上は、この第１の受動処理として返信する「署名作成コマンドに対するレスポンス」には、作成したデジタル署名とは無関係なダミーデジタル署名を含ませるようにするのが好ましい。同様に、図４（ｃ）　に示す「署名返信コマンド」には、本体部が存在しないが、実用上は、この第２の能動処理として送信する「署名返信コマンド」には、デジタル署名の対象となるメッセージデータとは無関係なダミーメッセージデータを含ませるようにするのが好ましい。
【００６２】
図７は、このようなダミーコマンド，ダミーレスポンス、ダミーデジタル署名、ダミーメッセージデータを含ませたメッセージ処理装置１００と署名作成装置２００との間のコマンド／レスポンスのやりとりの一例を示す図である。まず、▲１▼署名作成コマンドは、正規のコマンドであり、メッセージデータＭについてデジタル署名を作成する旨の指示を示すコマンドである。このコマンドにより、署名作成部２３０がデジタル署名Ｄを作成し、署名記憶部２４０に書き込む処理を行う点は既に述べたとおりである。続く、▲２▼署名作成コマンドに対するレスポンスは、▲１▼のコマンドに対する正規のレスポンスである。ただし、このレスポンスには、「１２３７８９」なるダミーデジタル署名Ｄ＊が含まれている。前述したように、▲１▼のコマンドに対するレスポンスは、本来、当該コマンドが支障なく実行された旨を示す「ＯＫ」なるステータスの情報が含まれていれば足り、このレスポンスに、作成したデジタル署名Ｄ「４５６７８９」を含ませないようにする点が、本発明の重要なポイントである。しかしながら、このレスポンスに、本来のデジタル署名Ｄ「４５６７８９」の代わりに、全く違うダミーデジタル署名Ｄ＊「１２３７８９」を含ませておくことは、不正アクセス者の攻撃を受けたときに、不正アクセス者の解析を惑わす上で有益である。
【００６３】
また、▲３▼ダミーコマンド（その１）、▲４▼ダミーレスポンス（その１）、▲５▼ダミーコマンド（その２）、▲６▼ダミーレスポンス（その２）は、いずれも意味のある正規のコマンド／レスポンスではなく、全く意味のないダミーのコマンド／レスポンスである。このようなダミーのコマンド／レスポンス対をいくつか挿入することにより、不正アクセス者の解析を更に惑わすことができる。
【００６４】
続く▲７▼署名返信コマンドは、正規のコマンドであり、過去に作成されたデジタル署名を返信する旨の指示を示すコマンドである。このコマンドに応じて、署名記憶部２４０に記憶されていたデジタル署名Ｄ「４５６７８９」を含むレスポンスが、▲８▼署名返信コマンドに対するレスポンスとして返信されることは、既に述べたとおりである。ただし、図示の▲７▼署名返信コマンドには、「明日の天気は晴れでしょう。」なるダミーメッセージデータＭ＊が含まれている。前述したように、署名返信コマンドには、本来、メッセージデータＭを添付する必要はなく、このコマンドに、メッセージデータＭを含ませないようにする点が、本発明の重要なポイントである。しかしながら、このコマンドに、本来のメッセージデータＭである「百科事典一式を注文します。」なる文字列の代わりに、「明日の天気は晴れでしょう。」なる全く異なる内容のダミーメッセージデータＭ＊を含ませておくことは、やはり、不正アクセス者の解析を惑わす上で有益である。
【００６５】
実際、図７に示すような一連のコマンド／レスポンス対を通信傍受などの不正手段で入手した不正アクセス者は、「百科事典一式を注文します」なるメッセージデータと「１２３７８９」なるデジタル署名との組み合わせ、「春夏秋冬」なるメッセージデータと「１２３１２３」なるデジタル署名との組み合わせ、「子丑寅卯辰巳」なるメッセージデータと「４５６４５６」なるデジタル署名との組み合わせ、「明日の天気は晴れでしょう。」なるメッセージデータと「４５６７８９」なるデジタル署名との組み合わせ、という、４組の不正確な組み合わせを取得することになり、これらに基づく解析を行っても、秘密データＨを推定することはできない。
【００６６】
ところで、ＩＣカード内の署名記憶部２４０には、署名作成コマンドが与えられると、署名作成部２３０で作成されたデジタル署名Ｄが書き込まれることになるが、実用上は、所定のタイミングで、署名記憶部２４０内に格納されているデジタル署名Ｄを消去する消去処理を行うようにするのが好ましい。消去処理は、たとえば、署名返信コマンドに基づく第２の受動処理を行った後に行うことができる。すなわち、署名返信コマンドにより、署名記憶部２４０内に格納されたデジタル署名Ｄが読み出され、レスポンスとして返信された後は、もはやデジタル署名Ｄを格納しておく必要がなくなるので、この時点で、デジタル署名Ｄを消去するようにすればよい。もちろん、コンピュータ１１０側に用意されるプログラムによっては、１回の署名作成コマンドで作成されたデジタル署名Ｄを、複数回の署名返信コマンドで何回も繰り返して返信させるような利用形態を採ることも可能であるが、そのような利用形態は特殊な利用形態である。通常は、１回の署名作成コマンドで作成されたデジタル署名Ｄは、１回の署名返信コマンドでのみ返信させて利用することになるので、返信が終了したときに消去するのが最も自然な方法である。
【００６７】
あるいは、返信が終了したときには、まだ消去処理を行わずに、新たな「署名作成コマンド」に基づく第１の受動処理により、新たに作成されたデジタル署名を記憶するときに、前回の「署名作成コマンド」に基づく第１の受動処理により作成されて記憶されていたデジタル署名を消去する処理を実行するようにしてもかまわない。この場合は、新たな「署名作成コマンド」が与えられるまでは、前回の「署名作成コマンド」によって作成されたデジタル署名Ｄが、署名記憶部２４０内に残ったままの状態となる。
【００６８】
ここに示す実施形態では、署名記憶部２４０として、ＩＣカード内のＥＥＰＲＯＭを用いている。このような不揮発性メモリを署名記憶部２４０として用いる場合には、署名作成装置２００（ＩＣカード）をメッセージ処理装置１００（リーダライタ装置１２０）から切り離し、ユーザが署名作成装置２００を単体で携帯している状態においても、署名記憶部２４０内には、デジタル署名Ｄが記憶されたままの状態となる。すなわち、通常、ＩＣカードへの電源供給は、リーダライタ装置側から行われるため、ＩＣカードをリーダライタ装置から切り離すと、ＩＣカードに対する電源供給は遮断されることになる。したがって、ＩＣカード内のＲＡＭなど、揮発性メモリの記憶内容は、ＩＣカードをリーダライタ装置から切り離すことにより失われてしまう。ところが、ＥＥＰＲＯＭなどの不揮発性メモリの記憶内容は、電源供給が遮断された後もそのまま維持される。このため、ＩＣカードを再びリーダライタ装置に接続して電源供給を開始すれば、ＥＥＰＲＯＭ内に残っていたデジタル署名Ｄを読み出すことが可能である。このような状況は、セキュリティの面からは好ましくない。たとえば、正規のユーザが携帯中のＩＣカードを紛失し、これを拾得した不正アクセス者が、独自に開発したリーダライタ装置１２０を用いてアクセスを試みた場合、ＥＥＰＲＯＭ内に残っていたデジタル署名Ｄが読み出されてしまうおそれがある。
【００６９】
このような不正な攻撃に対するセキュリティ対策としては、ＩＣカード（署名作成装置２００）に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名返信コマンド」に基づいて、電源供給遮断前に不揮発性メモリに記憶されていたデジタル署名についての返信処理を行う際には、アクセス権の認証が行われることを条件として当該返信処理が実行されるようにしておけばよい。あるいは、ＩＣカード（署名作成装置２００）に対する電源供給が遮断され、再び電源供給が開始されたときに、「署名作成コマンド」に先んじて「署名返信コマンド」が与えられた場合には、不揮発性メモリに記憶されていたデジタル署名ついての返信処理を実行せずに、エラーを示すレスポンスが返信されるようにしてもよい。いずれの場合も、ＩＣカードを拾得した不正アクセス者が、ＥＥＰＲＯＭ内に残っていた正規のデジタル署名Ｄを不正な方法で読み出すことを防止することができる。
【００７０】
このように、署名記憶部２４０内に正規のデジタル署名Ｄが長い時間にわたって記憶され続けていることは、セキュリティ上、好ましいことではない。そこで、実用上は、「署名作成コマンド」を受け取った後、「予め定められた特定のイベント」が発生するまでの間に「署名返信コマンド」を受け取らなかった場合には、「署名作成コマンド」に基づいて作成され、署名記憶部２４０内に記憶されていたデジタル署名を消去する処理が実行されるように、ＩＣカードをプログラムしておくのが好ましい。
【００７１】
たとえば、「署名作成コマンドを受け取ってから所定の時間が経過すること」を特定のイベントとして定め、所定の時間が経過したときに、これまで記憶されていたデジタル署名の消去処理が行われるようにすることができる。具体的には、たとえば、「署名作成コマンドを受け取ってから１分経過すること」を特定のイベントとして定めておき、１分経過したら、署名記憶部２４０内に格納されているデジタル署名Ｄを消去する処理を行うようにすればよい。もちろん、ＩＣカード側にこのような設定を行った場合には、コンピュータ１１０側のプログラムにも、たとえば、署名作成コマンドを送信してから１分経過しても署名返信コマンドの送信が行われなかった場合には、再度、署名作成コマンドの送信を行う、などの配慮を行う必要がある。
【００７２】
また、「署名作成コマンド」を受け取ってから、「署名返信コマンド」を受け取ることなしに新たな「署名作成コマンド」を受け取ること、を特定のイベントとして定め、新たな「署名作成コマンド」を受け取ったときに、これまで記憶されていたデジタル署名の消去処理が行われるようにしてもよい。あるいは、ＩＣカード（署名処理装置２００）に対する電源供給が遮断されること、を特定のイベントとして定め、電源供給の遮断のための準備が行われた時点で、これまで記憶されていたデジタル署名の消去処理が行われるようにしてもよい。具体的には、ＩＣカードをリーダライタ装置１２０から切り離すための準備処理（たとえば、リーダライタ装置１２０に対するエジェクト操作）が行われたときに、ＥＥＰＲＯＭ内のデジタル署名を消去する処理が行われるようにしておけばよい。
【００７３】
以上、本発明を図示するいくつかの実施形態に基づいて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の形態で実施可能である。たとえば、上述の実施形態では、デジタル署名を求めるアルゴリズムとしてハッシュ関数を用いた方法を述べたが、署名作成装置２００において行われるデジタル署名作成のアルゴリズムは、ハッシュ関数を用いた方法に限定されるものではなく、要するに、秘密データ記憶部２２０内の秘密データＨと与えられたメッセージデータＭとに基づいて、一義的に定まる何らかのデータが得られれば、どのようなアルゴリズムを用いてもかまわない。また、上述の実施形態では、署名作成装置２００としてＩＣカードを用いた例を示したが、署名作成装置２００は必ずしもＩＣカードによって構成する必要はなく、十分なセキュリティをもって秘密データＨを格納することができ、内部でデジタル署名を作成する演算を行う機能をもち、メッセージ処理装置１００とは別体となった情報処理装置であれば、どのような装置を用いて構成してもかまわない。また、本発明にいう「デジタル署名」とは、いわゆる公開鍵暗号方式を用いた暗号化によって作成されるデータに限定されるものではなく、たとえば、共有する秘密鍵を用いた「メッセージ認証符号（Ｍｅｓｓａｇｅ　Ａｕｔｈｅｎｔｉｃａｔｉｏｎ　Ｃｏｄｅ：ＭＡＣ）」などのデータを広く含むものであり、本発明は、ＩＳＯ／ＩＥＣ　９７９７，ＪＩＳ　Ｘ５０５５や、ＨＭＡＣ：ＲＦＣ２１０４などに規定されたメッセージ認証符号を作成するシステムにも適用可能である。
【００７４】
【発明の効果】
以上のとおり本発明によれば、デジタル署名の対象となるメッセージデータと、これについてのデジタル署名との対応関係が、不正な方法で傍受される蓋然性を低減することができ、よりセキュリティを向上させたデジタル署名システムを実現できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデジタル署名システムの基本構成を示すブロック図である。
【図２】一般的なデジタル署名システムで用いられるメッセージデータＭ、秘密データＨ、デジタル署名Ｄの具体例を示す図である。
【図３】従来のデジタル署名システムにおいて、デジタル署名を得るために用いられるコマンド／レスポンスの一例を示す図である。
【図４】本発明に係るデジタル署名システムにおいて、デジタル署名を得るために用いられるコマンド／レスポンスの一例を示す図である。
【図５】本発明に係るデジタル署名システムにおいて、デジタル署名の対象となるメッセージデータの入力作業を行うための表示ウインドウの一例を示す図である。
【図６】本発明に係るデジタル署名システムにおいて、デジタル署名の意思確認の入力作業を行うための表示ウインドウの一例を示す図である。
【図７】本発明に係るデジタル署名システムにおいて、デジタル署名を得るために用いられるコマンド／レスポンスのより実用的な一例を示す図である。
【符号の説明】
１００…メッセージ処理装置
１１０…コンピュータ
１２０…リーダライタ装置
２００…署名作成装置
２１０…情報通信部
２２０…秘密データ記憶部
２３０…署名作成部
２４０…署名記憶部
Ｂ１，Ｂ２…ボタン
Ｄ…デジタル署名
Ｄ＊…ダミーデジタル署名
Ｈ…秘密データ
Ｉ１，Ｉ２，Ｉ３…入力欄
Ｍ…メッセージデータ
Ｍ＊…ダミーメッセージデータ
【図１】
2004032248.tif 000003
【図２】
2004032248.tif 000004
【図３】
2004032248.tif 000005
【図４】
2004032248.tif 000006
【図５】
2004032248.tif 000007
【図６】
2004032248.tif 000008
【図７】
2004032248.tif 000009