(57)【要約】 【課題】  アプリケーションがドライバを介してデバイスにアクセス要求を出した場合、すぐに別の処理を実行することができる。【解決手段】  暗号化処理、復号化処理などの所定の処理を実行するＩＣメモリ１２と、ＩＣメモリ１２を用いた処理を行うアプリケーションと、ＩＣメモリ１２に対するアクセス処理を実行するＩＣメモリ用ハンドラ１４と、アプリケーションからの指示に応じてＩＣメモリ用ハンドラ１４を呼び出すとともに、アプリケーションに対して指示を受付けた旨を応答するドライバ１２とを備える。【選択図】  図１
2005309783.tif 000002
【特許請求の範囲】
【請求項１】
予め定められている特定の処理を実行するデバイスと、前記デバイスを用いた処理を行うアプリケーションと、前記デバイスに対するアクセス処理を実行するハンドラ手段と、前記アプリケーションからの指示に応じて前記ハンドラを呼び出すとともに、前記アプリケーションに指示を受付けた旨を通知するドライバ手段とを備えるデータ処理装置。
【請求項２】
処理内容に応じた複数のハンドラ手段と、前記アプリケーションまたは前記デバイスで生成されたメッセージを送信する送信先とハンドラ手段との対応関係を示す情報を記憶する記憶手段とをさらに備え、
前記ドライバ手段は、前記アプリケーションまたは前記デバイスで生成されたメッセージを受信すると、前記メッセージに記述される送信先と前記記憶手段に記憶される対応関係を示す情報とに基づいて前記送信先に対応したハンドラ手段を呼び出すことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
ネットワークを介して前記メッセージの送受信を行う通信手段をさらに備え、
前記ドライバ手段によって呼び出されたハンドラ手段は、前記通信手段を用いて予め定められている送信先にメッセージを送信することを特徴とする請求項２記載のデータ処理装置。
【請求項４】
デバイスを用いた処理を実行するアプリケーションと、前記アプリケーションから前記デバイスのアクセス要求を受け付けるドライバ手段と、デバイスに対するアクセス処理を実行し、メッセージを送信するハンドラ手段とを備える送信側のデータ処理装置と前記データ処理装置から送信されるメッセージを受信する受信側のデータ処理装置とを用いたデータ処理方法において、
アプリケーションがドライバ手段に前記デバイスに対するアクセス要求を行う要求ステップと、前記ドライバ手段が前記デバイスにアクセス処理を実行するハンドラ手段を呼び出す呼出ステップと、前記ドライバ手段が前記アプリケーションのアクセス要求に対する応答を行う応答ステップと、前記ドライバ手段が前記呼び出されたハンドラ手段から前記デバイスに対するアクセスの結果として、送信先および送信するデータを有するメッセージを得ると、前記送信先に対応するハンドラ手段を複数あるハンドラ手段の中から選択する選択ステップと、前記選択されたハンドラ手段が前記送信先に前記メッセージを前記受信側のデータ処理装置に送信する送信ステップと、
前記受信側のデータ処理装置が受信したメッセージに記述される送信先で特定するデバイスに、受信したメッセージを転送する転送ステップとを備えるデータ処理方法。
【請求項５】
データ送信先が付与されたメッセージを登録する共有メモリと、前記共有メモリにメッセージを登録するとともに、メッセージ登録後、メッセージ登録に対する応答を待つことなく特定の処理を行うアプリケーションと、前記共有メモリに登録されたメッセージを常に監視し、特定のデータ送信先が付与されたメッセージが登録されると、このメッセージを取出し、特定の処理を実行するハンドラ手段とを備えるデータ処理装置。
【請求項６】
データ送信先が付与されたメッセージを登録する共有メモリにアプリケーションからメッセージを登録する登録ステップと、前記登録ステップの後、前記アプリケーションはメッセージ登録に対する応答を待つことなく、特定の処理を実行する実行ステップと、前記共有メモリに登録されるメッセージを監視するハンドラが前記共有メモリに特定のデータ送信先が付与されたメッセージが登録されたことを判断すると、前記ハンドラが前記登録されたメッセージを取出す処理を実行する取出ステップとを備えるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドライバを介してＩＣメモリなどのデバイスにアクセスすることのできるアプリケーションを実行するデータ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
通常、装置上で起動しているアプリケーションがＩＣメモリなどの外部のデバイスにアクセスしようとする場合、ＩＣメモリにアクセスするためのドライバを用いてアクセスすることができる。すなわち、アプリケーションはドライバにアクセス要求を出力し、ドライバはＩＣメモリからデータ取り出し、またＩＣメモリにデータ書き込みなどの要求に応じた具体的な処理を行い、その処理終了後、ドライバはＩＣメモリから取り出したデータを得て、または書き込みに対する応答を得る。ドライバは、処理による応答結果または処理により得たデータを、アプリケーションに出力することにより、アプリケーションはＩＣメモリへのアクセス要求に対する結果を得ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、アプリケーションはドライバを介してＩＣメモリなどのデバイスにアクセス要求を行うと、ドライバからの応答などの結果を得るまで、アプリケーションは待ち状態となってしまう。アプリケーションがＩＣメモリへアクセス要求を出した後、処理の内容によってはＩＣメモリからのアクセス結果を得ることなくアプリケーション本来の処理を実行してもよい場合があるが、アプリケーションは待ち状態に入っているため、アプリケーション本来の処理を行うことができず、処理速度が低下するといった問題が生じる。
【０００４】
そこで、本発明はアプリケーションがドライバを介してデバイスにアクセス要求を出した場合、すぐに別の処理を実行することができるデータ処理装置およびデータ処理方法を実現することを目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するための、本発明のデータ処理装置は、予め定められている特定の処理を実行するデバイスと、前記デバイスを用いた処理を行うアプリケーションと、前記デバイスに対するアクセス処理を実行するハンドラ手段と、前記アプリケーションからの指示に応じて前記ハンドラを呼び出すとともに、前記アプリケーションに指示を受付けた旨を通知するドライバ手段とを備えている。
【０００６】
本発明の上述の構成において、ドライバ手段はアプリケーションからの問い合わせに対して応答するとともに、アプリケーションからの要求に応じてハンドラ手段に対してデバイスにアクセスさせることにより、ドライバ手段からアプリケーションにすぐに応答を返すことができ、アプリケーションではデバイスにおける最終処理結果の応答を待たずにアプリケーションの処理を実行することができる。また、ハンドラを介したデバイスのアクセス処理を同時に行うことにより、デバイスの処理終了までアプリケーションを待たせることなく、アプリケーションはドライバからの応答を待つことなく、迅速な処理を実現することができる。
【０００７】
また、本発明のデータ処理装置は、処理内容に応じた複数のハンドラ手段と、前記アプリケーションまたは前記デバイスで生成されたメッセージを送信する送信先とハンドラ手段との対応関係を示す情報を記憶する記憶手段とをさらに備え、  前記ドライバ手段は、前記アプリケーションまたは前記デバイスで生成されたメッセージを受信すると、前記メッセージに記述される送信先と前記記憶手段に記憶される対応関係を示す情報とに基づいて前記送信先に対応したハンドラ手段を呼び出すよう構成してもよい。
【０００８】
本発明の上述の構成において、複数のハンドラを備えていることから、複数の処理に対応することができ、使い勝手の良いデータ処理装置を実現できる。
【０００９】
また、本発明のデータ処理装置は、ネットワークを介して前記メッセージの送受信を行う通信手段をさらに備え、前記ドライバ手段によって呼び出されたハンドラ手段は、前記通信手段を用いて予め定められている送信先にメッセージを送信するよう構成しても良い。
【００１０】
また、本発明のデータ処理方法においては、デバイスを用いた処理を実行するアプリケーションと、前記アプリケーションから前記デバイスのアクセス要求を受け付けるドライバ手段と、デバイスに対するアクセス処理を実行し、メッセージを送信するハンドラ手段とを備える送信側のデータ処理装置と前記データ処理装置から送信されるメッセージを受信する受信側のデータ処理装置とを用いたデータ処理方法において、アプリケーションがドライバ手段に前記デバイスに対するアクセス要求を行う要求ステップと、前記ドライバ手段が前記デバイスにアクセス処理を実行するハンドラ手段を呼び出す呼出ステップと、前記ドライバ手段が前記アプリケーションのアクセス要求に対する応答を行う応答ステップと、前記ドライバ手段が前記呼び出されたハンドラ手段から前記デバイスに対するアクセスの結果として、送信先および送信するデータを有するメッセージを得ると、前記送信先に対応するハンドラ手段を複数あるハンドラ手段の中から選択する選択ステップと、前記選択されたハンドラ手段が前記送信先に前記メッセージを前記受信側のデータ処理装置に送信する送信ステップと、前記受信側のデータ処理装置が受信したメッセージに記述される送信先で特定するデバイスに、受信したメッセージを転送する転送ステップとを備えている。
【００１１】
本発明の上述の構成において、メッセージに含まれる送信先に対応したハンドラ手段を呼び出してネットワークを介してメッセージの送信を行うことにより、ネットワークを介した処理のように時間のかかる処理おいて特にアプリケーションが処理結果を待つ必要が無くなり、アプリケーションの迅速なる処理を期待することができる。
【００１２】
また、本発明のデータ処理装置は、データ送信先が付与されたメッセージを登録する共有メモリと、前記共有メモリにメッセージを登録するとともに、メッセージ登録後別の処理を行うアプリケーションと、前記共有メモリに登録されたメッセージを常に監視し、特定のデータ送信先が付与されたメッセージが登録されるとメッセージの取得を行うハンドラ手段とを備えている。
【００１３】
また、本発明のデータ処理方法は、データ送信先が付与されたメッセージを登録する共有メモリにアプリケーションからメッセージを登録する登録ステップと、前記登録ステップの後、前記アプリケーションは別の処理を実行する実行ステップと、前記共有メモリに登録されるメッセージを監視するハンドラが前記共有メモリに特定のデータ送信先が付与されたメッセージが登録されたことを判断すると、前記ハンドラが前記登録されたメッセージを取出す処理を実行する取出ステップとを備えている。
【００１４】
本発明の上述の構成において、共有メモリにメッセージを登録するとともに共有メモリに登録されたメッセージを監視するハンドラを備え、特定のメッセージが共有メモリに登録されると対応するハンドラがメッセージを取出し、メッセージに対する特定の処理を行うとともに、アプリケーションは、登録処理後アプリケーション本来の処理を実行することができるよう構成することにより、アプリケーションはデバイスにおける処理待ちをすることなく、アプリケーションにとって迅速な処理を実現することができる。
【発明の効果】
【００１５】
本発明は、ドライバ手段はアプリケーションからの問い合わせに対して応答するとともに、アプリケーションからの要求に応じてハンドラ手段に対してデバイスにアクセスさせることにより、ドライバ手段からアプリケーションにすぐに応答を返すことができ、アプリケーションではデバイスにおける最終処理結果の応答を待たずにアプリケーションの処理を実行することができる。また、ハンドラを介したデバイスのアクセス処理を同時に行うことにより、デバイスの処理終了までアプリケーションを待たせることなく、アプリケーションはドライバからの応答を待つことなく、迅速な処理を実現することができる。
【００１６】
また、本発明は、共有メモリにメッセージを登録するとともに共有メモリに登録されたメッセージを監視するハンドラを備え、特定のメッセージが共有メモリに登録されると対応するハンドラがメッセージを取出し、メッセージに対する特定の処理を行うとともに、アプリケーションは、登録処理後アプリケーション本来の処理を実行することができるよう構成することにより、アプリケーションはデバイスにおける処理待ちをすることなく、アプリケーションにとって迅速な処理を実現することができる。
【発明を実施するための最良の形態】
【００１７】
本発明のデータ処理装置およびデータ処理方法について図面を用いて説明する。図１は、本発明のデータ処理装置のブロック構成図である。
【００１８】
本発明のデータ処理装置１００は、アプリケーション１１（本発明のアプリケーション）（内部にアプリケーション用ハンドラ１３（本発明のハンドラ手段）を保持する）、ドライバ１２（本発明のドライバ手段）、ＩＣメモリ用ハンドラ１４（本発明のハンドラ手段）、通信用ハンドラ１５（本発明のハンドラ手段）、ＩＣメモリ１６（本発明のデバイス）、ハンドラ管理テーブル１７（本発明の記憶手段）、通信部１８（本発明の通信手段）、表示部１９から構成される。また、本発明の通信相手であるデータ処理装置１００ａも同様にアプリケーション１１ａ（内部にアプリケーション用ハンドラ１３ａを保持する）、ドライバ１２ａ、ＩＣメモリ用ハンドラ１４ａ、通信用ハンドラ１５ａ、ＩＣメモリ１６ａ、ハンドラ管理テーブル１７ａ、通信部１８ａ、表示部１９ａから構成される。
【００１９】
アプリケーション１１は、データ処理装置１００内で起動し動作するものであり、特定の処理を行うものである。本例においては、電子署名の検証を行うことのできるアプリケーションであり、通信相手に電子署名の付与を依頼するため、電子署名付与の対象となるメッセージの送信依頼を行い、また、依頼するとともに、公開鍵証明書の請求を公開鍵認証サーバに行い、また、公開鍵の有効性を有効性検証サーバに問い合わせ、これら処理した情報に基づいて依頼した電子署名の検証を行う機能を有する。
【００２０】
ドライバ１２は、アプリケーション１１から電子署名を付与するようメッセージの送信依頼を受け付けると、送信しようとするメッセージの暗号化処理を依頼するため、ＩＣメモリ用ハンドラ１４を呼び出すとともに、アプリケーション１１に対して送信依頼を受け付けた旨の応答を返す機能を有する。また、暗号化したメッセージを電子署名付与を行う装置、すなわちデータ処理装置１００ａに送信するため、通信用ハンドラ１５を呼び出す。さらに、データ処理装置１００ａから電子署名が付与されたデータを受信すると、復号化の処理を行うため、ＩＣメモリ用ハンドラ１４を呼び出し、また復号化されたデータを受信するとアプリケーション１１内にあるアプリケーション用ハンドラ１３を呼び出し、電子署名の検証を行わせる。
【００２１】
なお、一般的なドライバは、アプリケーションとハードウェアを接続するときに間を取りもつソフトウェアであり、本発明におけるドライバはアプリケーションとハードウェアを接続するときに間を取りもつソフトウェアに加えて、ハードウエアと接続するためのハンドラを呼び出す機能を備える。
【００２２】
アプリケーション用ハンドラ１３は、アプリケーション内に保持されるハンドラであり、このハンドラが呼び出されるとアプリケーションの処理に割り込みをかけ、特定の処理を行う。本発明においては、電子署名の検証処理を行う。なお、ハンドラとは、外部割り込みにより起動される、割り込み処理ルーチンを指すものであり、本実施の形態においてはドライバ１２により呼び出され、ＩＣメモリ１６などのデバイスに対するアクセス処理、またはアプリケーションの処理に対する割り込み処理を行うプログラムとする。
【００２３】
ＩＣメモリ用ハンドラ１４は、ＩＣメモリ１６にアクセスするためのハンドラであり、ＩＣメモリ１６内でメッセージの暗号化処理、復号化処理を行せたいときに、ＩＣメモリ１６に暗号化させるデータ、復号化させるデータを送る。
【００２４】
通信用ハンドラ１５は、通信処理を行うハンドラである。ＩＣメモリ１６で処理されて生成されたメッセージに記述される送信先に対応してドライバ１２により呼び出され、予め定められた送信先に送信処理を行うものである。本発明では、暗号化処理を行った場合の送信先としてデータ処理装置１００ａのＩＰアドレスが図示しないメモリに予め格納され、送信する際ＩＰアドレスが読み出される。なお、通信用ハンドラ１５に、送信先のＩＤとＩＰアドレスとを対応付けるサーバをネットワーク上に配置しておき、このサーバに送信先のＩＤを送信し、そのＩＰアドレスを取得する仕組みにしても良い。
【００２５】
ＩＣメモリ１６は、不揮発性メモリからなるメモリであり、着脱自在に装着され、暗号化処理、復号化処理を主に行う。
【００２６】
ハンドラ管理テーブル１７は、アプリケーション１１、または前述各ハンドラから送られるメッセージに記述される送信先（自装置内または外部の装置内に備えられるデバイスを特定する送信先）に対応して呼び出すべきハンドラを記憶する。図２は、ハンドラ管理テーブル１７の具体例を示す図である。
【００２７】
このハンドラ管理テーブル１７は、デバイスを特定する送信先と呼び出すハンドラとを対応付けて記憶する。ドライバ１２に、＜送信元、送信先、データ内容＞の３つの組で構成されるメッセージが送られると、ドライバ１２では送られたメッセージに記述される送信先およびハンドラ管理テーブル１７とに基づいて、どのハンドラを呼び出すかを判断し、該当するハンドラを呼び出す。なお、送信先はデバイスを特定するＩＤで示され、このＩＤを用いて各デバイス（ＩＣメモリ、アプリケーションなど）を特定することができる。
【００２８】
通信部１８は、通信用ハンドラ１５による制御によりネットワークを介して相手と通信を行う。
【００２９】
表示部１９は、データ処理装置１００ａで署名された電子署名の検証を行った結果を表示する。
【００３０】
データ処理装置１００ａは、データ処理装置１００から電子署名の依頼を受ける装置である。
【００３１】
ＩＣメモリ１６ａは、データ処理装置１００から送信されたメッセージを復号化し、復号化されたメッセージに電子署名を付与する。そして、電子署名が付与されたメッセージを符号化し、これをＩＣメモリドライバ１４に返信する。
【００３２】
他の構成は、データ処理装置１００を構成するものと同様である。なお、ハンドラ管理テーブル１７ａに記憶される内容はハンドラ管理テーブル１７に記載の内容と相違する。図３は、その具体例である。図に示すとおり、データ処理装置１００ａ内のＩＣメモリ１６ａを呼び出すハンドラと、データ処理装置１００の通信用ハンドラ１５を、メッセージに記述される送信先に応じて呼び出すことができるよう対応付けて記憶している。
【００３３】
これら構成されたデータ処理装置１００、１００ａとの間で電子署名を実行し、その検証を行うときの具体例を説明する。図４はその処理を行うときのシーケンス図である。
【００３４】
アプリケーション１１は、ユーザの入力操作により暗号化処理を行うＩＣメモリ１６のＩＤ、電子署名の付与を行うＩＣメモリ１６ａのＩＤ、および電子署名が付与されるデータを受付け、受付けたＩＣメモリ１６ａの送信先であるデータ処理装置１００ａに電子署名の付与の依頼を行い、メッセージｍ１＜アプリケーション１１のＩＤ、ＩＣメモリ１６のＩＤ、ＩＣメモリ１６ａのＩＤおよびデータＭ＞をドライバ１２に出力する（Ｓ１０１）。アプリケーション１１は、ドライバ１２から電子署名の付与の依頼に対する応答を受けると、電子署名の検証処理を開始する。まず、アプリケーション１１は、ＩＣメモリ１６ａの公開鍵の証明書である公開鍵証明書の要求を行う要求メッセージを公開鍵証明書サーバに送信し、公開鍵証明書サーバから公開鍵証明書を取得する（Ｓ１０２）。なお、公開鍵証明書とは、ＣＡ（Certificate Authority：認証局） が自らの責任のもとにユーザと公開鍵との結びつきを証明したものであって、ユーザの素性 （姓名、所属、電子メールアドレス等） と公開鍵データとに、ＣＡ 自らの電子署名を施したものである。
【００３５】
また、アプリケーション１１は、取得した公開鍵証明書の有効性を問合せる処理を行い、問合せメッセージを有効性検証サーバに送信し、有効性検証サーバでは公開鍵証明書が有効であるか、無効であるか検証を行い、その結果を取得する（Ｓ１０３）。なお、公開鍵証明書が有効であるか、否かを管理する公的機関が、有効性検証サーバの管理、運営を行っており、有効性に対する問合せに応じて管理している結果を返信するようにしている。
【００３６】
アプリケーション１１がこれら処理を実行している間、ドライバ１２、ＩＣメモリ用ハンドラ１４、通信用ハンドラ１５は、以下の処理を行う。
【００３７】
ドライバ１２は、送信依頼に対する受付けをアプリケーション１１に応答し（Ｓ２０１）、アプリケーション１１から受信したメッセージに記述されている送信先に対応したハンドラを呼び出す（Ｓ２０２）。ここでは、ＩＣメモリ１６のＩＤが記述されていることからハンドラ管理テーブル１７に基づいて対応するＩＣメモリ用ハンドラ１４を呼び出す。
【００３８】
呼び出されたＩＣメモリ用ハンドラ１４は、メッセージｍ１をＩＣメモリ１６に出力する（Ｓ２０３）。メッセージｍ１を受信したＩＣメモリ１６は、メッセージｍ１の中のデータＭを取り出し、予め決められている公開鍵Ｐｋ２を用いてデータＭを暗号化し、暗号化データＣを生成する（Ｓ２０４）。そして、送信元をＩＣメモリ１６のＩＤ、送信先をメッセージｍ１のデータ内容欄に記述されたＩＣメモリ１６ａのＩＤとするメッセージｍ２＜ＩＣメモリ１６のＩＤ、ＩＣメモリ１６ａのＩＤ、Ｃ＞を生成してＩＣメモリ用ハンドラ１４に出力する（Ｓ２０５）。
【００３９】
ＩＣメモリ用ハンドラ１４は、メッセージｍ２を解析し、ＩＣメモリ１６ａのＩＤで指し示す送信先に暗号化データＣを送信するようドライバ１２に依頼する（Ｓ２０６）。ドライバ１２は、ハンドラ管理テーブル１７に基づいてメッセージｍ２に記述される送信先に対応する通信用ハンドラ１５を呼び出す（Ｓ２０７）。呼び出された通信用ハンドラ１５には、予め送信先のＩＰアドレスが設定されており、呼び出されると、設定されているＩＰアドレスで特定される通信用ハンドラ１５ａを有するデータ処理装置１００ａと通信接続し、メッセージｍ２に記述されるＩＣメモリ１６ａを特定するＩＤ宛てにメッセージｍ２を送信する（Ｓ２０８）。なお、通信用ハンドラ１５ａにはＩＰアドレスを予め設定せずに、ＩＣメモリ１６ａのＩＤとそのＩＣメモリ１６ａを有する装置のＩＰアドレスとを対応付けて記憶するサーバを設置しておき、そのサーバにＩＣメモリ１６ａのＩＤを送出し、対応するＩＰアドレスを取出すようにしてもよい。
【００４０】
通信用ハンドラ１５ａはドライバ１２ａにメッセージｍ２を送信する（Ｓ２０９）。メッセージｍ２を受信したドライバ１２ａは、ハンドラ管理テーブル１７ａに基づいて、メッセージｍ２に記述される送信先に対応したＩＣメモリ用ハンドラ１４を呼び出す（Ｓ２１０）。呼び出されたＩＣメモリ用ハンドラ１４ａはメッセージｍ２をＩＣメモリ１６ａに登録する（Ｓ２１１）。
【００４１】
メッセージｍ２を登録したＩＣメモリ１６ａは、メッセージｍ２に記述される暗号化データＣを秘密鍵Ｓｋ２を用いて復号化し、データＭを得る（Ｓ２１２）。そして、ＩＣメモリ１６ａは、データＭに電子署名を付与することで、電子署名化データＭＳを生成し（Ｓ２１３）、ＭＳを公開鍵Ｐｋ１を用いて暗号化し、暗号化データＣＳを生成する（Ｓ２１４）。
【００４２】
ＩＣメモリ１６ａは、メッセージｍ２に記述されている送信元、送信先を用いて、暗号化データＣＳを返信するためのデータである暗号化データＣＳを有するメッセージｍ３＜ＩＣメモリ１６ａのＩＤ、ＩＣメモリ１６のＩＤ、ＣＳ＞を生成し、メッセージｍ３をＩＣメモリ用ハンドラ１４ａに返信する（Ｓ２１５）。ＩＣメモリ用ハンドラ１４ａは、メッセージｍ３の送信依頼をドライバ１２ａに行い（Ｓ２１６）、ドライバ１２ａは、ハンドラ管理テーブル１７ａに基づいてメッセージｍ３の送信先に対応する通信用ハンドラ１５ａを呼び出す（Ｓ２１７）。
【００４３】
呼び出された通信用ハンドラ１５ａには、予め送信先のＩＰアドレスが設定されており、呼び出されると、設定されているＩＰアドレスで特定される通信用ハンドラ１５と通信接続し、ＩＣメモリ１６を特定するＩＤ宛てにメッセージｍ３を送信する（Ｓ２１８）。なお、通信用ハンドラ１５ａにはＩＰアドレスを予め設定せずに、ＩＣメモリ１６のＩＤとそのＩＣメモリ１６を有する装置のＩＰアドレスとを対応付けて記憶するサーバを設置しておき、そのサーバにＩＣメモリ１６のＩＤを送出し、対応するＩＰアドレスを取り出すようにしてもよい。
【００４４】
通信用ハンドラ１５ａからの送信処理を受信した通信用ハンドラ１５は、メッセージｍ３を登録するようドライバ１２に出力する（Ｓ２１９）。ドライバ１２は、ハンドラ管理テーブル１７に基づいてメッセージｍ３に記述される送信先に対応するＩＣメモリ用ハンドラ１４を呼び出す（Ｓ２２０）。
【００４５】
呼び出されたＩＣメモリ用ハンドラ１４はメッセージｍ３に記述されているＩＣメモリ１６のＩＤで特定する送信先、つまりＩＣメモリ１６にメッセージｍ３を送信する（Ｓ２２１）。ＩＣメモリ１６では、送信されたメッセージｍ３の中の暗号化データＣＳを秘密鍵Ｓｋ１を用いて復号化し、電子署名化データＭＳを得る（Ｓ２２２）。そして、ＩＣメモリ１６は、Ｓ２０３で受信したメッセージｍ１に記述される送信元（つまり、アプリケーション１１のＩＤ）を記憶しており、記憶した送信元を用いて、アプリケーション１１にメッセージｍ４を渡すことができるよう、電子署名化データＭＳを有するメッセージｍ４＜ＩＣメモリ１６のＩＤ、アプリケーション１１のＩＤ、ＭＳ＞を生成し、メッセージｍ４をＩＣメモリ用ハンドラ１４に返信する（Ｓ２２３）。ＩＣメモリ用ハンドラ１４は、さらにメッセージｍ４をドライバ１２に送信する（Ｓ２２４）。
【００４６】
ドライバ１２は、ハンドラ管理テーブル１７に基づいてメッセージｍ４に記述される送信先であるアプリケーション１１のＩＤに対応するアプリケーション用ハンドラ１３を呼び出す（Ｓ２２５）。
【００４７】
呼び出されたアプリケーション用ハンドラ１３は、アプリケーション１１の処理に割り込みをかけ、起動する（Ｓ１０４）。そして、起動したアプリケーション用ハンドラ１３はメッセージｍ４のデータＭＳの電子署名が正当であるかを検証する。すなわち、ＭＳに電子署名を施した公開鍵と、上述した有効であると判断された公開鍵証明書に記述されている公開鍵との一致を判断し、一致していればメッセージｍ４に記述されるデータＭＳに付与される電子署名は正当な電子署名が施されたものであると判断し、一致していなければ電子署名は不当なものであると判断する（Ｓ１０５）。そして、その判断結果を表示部に出力する（Ｓ１０６）。なお、Ｓ２２５によるアプリケーション用ハンドラ１３の呼び出し処理が行われる前に、Ｓ１０２、Ｓ１０３の公開鍵証明書の要求、有効性の検証は終了しているものとする。
【００４８】
以上の処理により送信しようとするデータに電子署名を付与し、電子署名の正当性を得た後に、ユーザは任意の送信先に正当性を有している電子署名を付与したデータを送る処理を行うことができる。
【００４９】
以上、アプリケーション１１からドライバ１２に送信依頼を行い、ドライバ１２から送信依頼に対する受付け応答をアプリケーション１１に対して行うことによる効果について説明する。
【００５０】
アプリケーション１１は、ドライバ１２に対して送信依頼を行い、その受付け応答をドライバ１２から受信することにより、アプリケーション１１はドライバ１２から送信依頼に対する処理結果が来るまで待機する必要が無く、アプリケーション１１は他の処理を実行することができ、効率の良い処理を実現することができる。
【００５１】
次に、ドライバの代わりに共有メモリを用いた別の実施の形態について説明する。
【００５２】
図５は、別の実施の形態であるデータ処理装置２００のブロック構成図である。
【００５３】
本発明のデータ処理装置２００は、アプリケーション１０１（本発明のアプリケーション）（内部にアプリケーション用ハンドラ１０３（本発明のハンドラ手段）を保持する）、共有メモリ１０２（本発明の共有メモリ）、ＩＣメモリ用ハンドラ１０４（本発明のハンドラ手段）、通信用ハンドラ１０５（本発明のハンドラ手段）、ＩＣメモリ１０６、通信部１０７、表示部１０８から構成される。また、本発明の通信相手であるデータ処理装置２００ａも同様にアプリケーション１０１ａ（内部にアプリケーション用ハンドラ１３ａを保持する）、共有メモリ１０２ａ、ＩＣメモリ用ハンドラ１０４ａ、通信用ハンドラ１０５ａ、ＩＣメモリ１０６ａ、通信部１０７ａ、表示部１０８ａから構成される。
【００５４】
アプリケーション１０１は、データ処理装置２００内で起動し動作するものであり、所定の処理を行うものである。本例においては、電子署名の検証を行うことのできるアプリケーションであり、電子署名を付与するメッセージの送信依頼を行い、また、依頼するとともに、公開鍵証明書の請求を公開鍵認証サーバに行い、また、公開鍵の有効性を有効性検証サーバに問い合わせ、これら処理した情報に基づいて依頼した電子署名の検証を行う機能を有する。
【００５５】
アプリケーション用ハンドラ１０３は、アプリケーション内に保持されるハンドラであり、このハンドラは、常に共有メモリ１０２を監視し、共有メモリにアプリケーションを特定するＩＤを送信先とするメッセージが登録されると、アプリケーション用ハンドラ１０３が割り込み処理を実行する。本発明においては、電子署名の検証処理を行う。なお、本実施の形態におけるハンドラは、外部割込みにより起動される割り込み処理ルーチンを指すものであり、共有メモリ１０２を常に監視し、所定の条件を満たす（所定の送信先がメッセージに設定されるなど）と、その条件に該当するハンドラが割り込み処理をかけて動作するものである。
【００５６】
ＩＣメモリ用ハンドラ１０４は、ＩＣメモリ１０６にアクセスするためのハンドラであり、このハンドラは、常に共有メモリ１０２を監視し、共有メモリ１０２に特定の条件を満たすメッセージが登録されると、ＩＣメモリ用ハンドラ１０４がＩＣメモリ１０６にアクセスするための割り込み処理を実行する。また、共有メモリ１０２に書き込む動作を行う場合は、書き込み動作を行った後すぐに、共有メモリ１０２の監視動作を行う処理に戻る。本発明においては、共有メモリ１０２に、ＩＣメモリ１０５を送信先としたＩＤを記述するメッセージが登録されると、ＩＣメモリ用ハンドラ１０４はこのメッセージを取得する動作を行い、取得したメッセージをＩＣメモリ１０６に出力する。そして、メッセージの暗号化処理、または復号化処理をＩＣメモリ１０５に対して行わせるようＩＣメモリ１０５にメッセージを出力する。また、ＩＣメモリ１０５から暗号化処理、復号化処理がされたデータを受け取ると、共有メモリ１０２に書き込む処理を行う。
【００５７】
通信用ハンドラ１０５は、通信処理を行うハンドラであり、このハンドラは、常に共有メモリ１０２を監視し、共有メモリに特定の条件を満たすメッセージが登録されると、通信用ハンドラ１０５が通信のための割り込み処理を行う。本発明においては、共有メモリ１０２に登録されたメッセージが、データ処理装置２００ａが有する各デバイスのＩＤを送信先として記述されていると、通信用ハンドラ１０５は、メッセージに記述される送信先として記述されているＩＤに対応するＩＰアドレスを別に記憶しているメモリから取り出し、取出したＩＰアドレス宛てにメッセージを送信する。なお、通信用ハンドラ１０５には、送信先として記述されるＩＤと物理的なあて先となるＩＰアドレスとが対応づいて記憶するメモリを有しており、登録されたメッセージの送信先として記述されているＩＤに対応してＩＰアドレスを取り出し、当該ＩＰアドレス宛てにメッセージの送信先として記述されるＩＤとともに送信データの送信処理を実行する。また、データ処理装置２００ａから受信したメッセージを受信すると、受信したメッセージを共有メモリ１０２に書き込む処理をする。
【００５８】
ＩＣメモリ１０６は、不揮発性メモリからなるメモリであり、着脱自在に装着され、暗号化処理、復号化処理を主に行う。
【００５９】
通信部１０７は、ネットワークを介して相手と通信を行う。
【００６０】
表示部１０８は、データ処理装置２００ａで署名された電子署名の検証を行った結果を表示する。
【００６１】
次に、データ処理装置２００ａの構成について説明する。データ処理装置２００ａは、データ処理装置２００から電子署名の依頼を受ける装置である。
【００６２】
ＩＣメモリ１０６ａは、データ処理装置２００から送信されたメッセージを復号化し、復号化されたメッセージに電子署名を付与する。そして、電子署名が付与されたメッセージを符号化し、これをＩＣメモリドライバ１０４に返信する。
【００６３】
他の構成は、データ処理装置２００を構成するものと同様である。
【００６４】
これら構成されたデータ処理装置２００、２００ａとの間で電子署名を実行し、その検証を行うときの具体例を説明する。図６はその処理を行うときのシーケンス図である。
【００６５】
アプリケーション１０１は、データに電子署名の付与の依頼を行うため、ユーザからＩＣメモリ１０６のＩＤ、ＩＣメモリ１０６ａのＩＤの入力を受付け、受付けたＩＣメモリ１０６のＩＤ、ＩＣメモリ１０６ａのＩＤを用いてメッセージｍ１＜アプリケーション１０１のＩＤ、ＩＣメモリ１０６のＩＤ、ＩＣメモリ１０６ａのＩＤおよびデータＭ＞を生成し、メッセージｍ１を共有メモリ１０２に書き込む（Ｓ３０１）。
【００６６】
アプリケーション１０１は、共有メモリ１０２に電子署名の付与の依頼を共有メモリ１０２に登録すると、署名検証の処理を開始する。まず、アプリケーション１１は、ＩＣメモリ１６ａの公開鍵の証明書である公開鍵証明書の要求を行う要求メッセージを公開鍵証明書サーバに送信し、公開鍵証明書サーバから公開鍵証明書を取得する（Ｓ１０２）。なお、公開鍵証明書とは、ＣＡ（認証局） が自らの責任のもとにユーザと公開鍵との結びつきを証明したものであって、ユーザの素性 （姓名、所属、電子メールアドレス等） と公開鍵データとに、ＣＡ 自らの電子署名を施したものである。
【００６７】
また、アプリケーション１１は、取得した公開鍵証明書の有効性を問合せる処理を行い、問合せメッセージを有効性検証サーバに送信し、有効性検証サーバでは公開鍵証明書が有効であるか、無効であるか検証を行い、その結果を取得する（Ｓ１０３）。なお、公開鍵証明書が有効であるか、否かを管理する公的機関が、有効性検証サーバの管理、運営を行っており、有効性に対する問合せに応じて管理している結果を返信するようにしている。
【００６８】
アプリケーション１０１がこれら処理を実行している間、ＩＣメモリ用ハンドラ１０４、通信用ハンドラ１０５は、以下の処理を行う。
【００６９】
送信先としてＩＣメモリ１０６のＩＤが記述されるメッセージｍ１が共有メモリ１０２に書き込まれると、ＩＣメモリ用ハンドラ１０４はＩＣメモリ１０６のＩＤを送信先として含むメッセージｍ１が登録されたことを検知し、このメッセージｍ１を取出し（Ｓ４０１）、ＩＣメモリ１０６に出力する（Ｓ４０３）。ＩＣメモリ１０６では、予め有している公開鍵Ｐｋ２を用いてメッセージｍ１に含むデータＭを暗号化し、データＣを生成する（Ｓ４０４）。そして、メッセージｍ１から送信元をＩＣメモリ１０６のＩＤ、送信先をＩＣメモリ１０６ａのＩＤとするメッセージｍ２＜ＩＣメモリ１０６のＩＤ、ＩＣメモリ１０６ａのＩＤ、Ｃ＞を生成し、メッセージｍ２をＩＣメモリ用ハンドラ１０４に返信する（Ｓ４０５）。
【００７０】
ＩＣメモリ用ハンドラ１０４は、共有メモリ１０２にメッセージｍ２を書き込む（Ｓ４０６）。通信用ハンドラ１０５は、共有メモリ１０２に送信先としてＩＣメモリ１０６ａのＩＤが記述されているメッセージｍ２が登録されたことを検知すると、メッセージｍ２を取り出す（Ｓ４０７）。通信用ハンドラ１０５には、予め送信先のＩＰアドレスが設定されており、割り込み処理を実行すると、設定されているＩＰアドレスで特定される通信用ハンドラ１０５ａを有するデータ処理装置２００ａと通信接続し、ＩＣメモリ１０６ａを特定するＩＤ宛てに取り出したメッセージｍ２を送信する（Ｓ４０８）。なお、通信用ハンドラ１０５ａはＩＰアドレスを予め設定せずに、ＩＣメモリ１０６ａのＩＤとそのＩＣメモリ１０６ａを有する装置のＩＰアドレスとを対応付けて記憶するサーバを設置しておき、そのサーバにＩＣメモリ１０６ａのＩＤを送出し、対応するＩＰアドレスを取出すようにしてもよい。
【００７１】
次に、データ処理装置２００ａの通信用ハンドラ１０５ａは、受信したメッセージｍ２を共有メモリ１０２ａに書き込む（Ｓ４０９）。ＩＣメモリ用ハンドラ１０４ａは、共有メモリ１０２ａを常に監視しており、送信先としてＩＣメモリ１０６ａのＩＤが記述されているメッセージｍ２が共有メモリ１０２ａに登録されたことを検知すると、メッセージｍ２を取り出し（Ｓ４１０）、ＩＣメモリ１０６ａに送出する（Ｓ４１１）。
【００７２】
ＩＣメモリ１０６ａは、秘密鍵Ｓｋ２を用いてメッセージｍ２に含まれる暗号化データＣを復号化して、データＭを生成し（Ｓ４１２）、データＭに対して電子署名を付与して電子署名化データＭＳを生成する（Ｓ４１３）。そして、電子署名化データＭＳを公開鍵Ｐｋ１で暗号化して暗号化データＣＳを生成する（Ｓ４１４）。
【００７３】
ＩＣメモリ１０６ａは、メッセージｍ２に記述されている送信元、送信先を用いて、暗号化データＣＳを返信するためのデータである暗号化データＣＳを有するメッセージｍ３＜ＩＣメモリ１０６ａのＩＤ、ＩＣメモリ１０６のＩＤ、ＣＳ＞を生成し、メッセージｍ３をＩＣメモリ用ハンドラ１０４ａに返信する（Ｓ４１５）。そして、ＩＣメモリ用ハンドラ１０４ａは、メッセージｍ３を共有メモリ１０２ａに書き込む（Ｓ４１６）。通信用ハンドラ１０５ａは、共有メモリ１０２に、送信先としてＩＣメモリ１０６のＩＤが記述されるメッセージｍ３が登録されたことを検知すると、これを取り出す（Ｓ４１７）。
【００７４】
通信用ハンドラ１０５ａには、予め送信先のＩＰアドレスが設定されており、割り込み処理を実行すると、設定されているＩＰアドレスで特定される通信用ハンドラ１０５を有するデータ処理装置２００ａと通信接続し、ＩＣメモリ１０６を特定するＩＤ宛てに取り出したメッセージｍ３を送信する（Ｓ４１８）。なお、通信用ハンドラ１０５ａにはＩＰアドレスを予め設定せずに、ＩＣメモリ１０６のＩＤとそのＩＣメモリ１０６を有する装置のＩＰアドレスとを対応付けて記憶するサーバを設置しておき、そのサーバにＩＣメモリ１０６のＩＤを送出し、対応するＩＰアドレスを取出すようにしてもよい。
【００７５】
通信用ハンドラ１０５は、メッセージｍ３を受信すると、共有メモリ１０２にメッセージｍ３を書き込む（Ｓ４１９）。
【００７６】
ＩＣメモリ用ハンドラ１０４は、共有メモリ１０２に送信先としてＩＣメモリ１０６のＩＤを記述するメッセージｍ３を検知すると、メッセージｍ３を取り出し（Ｓ４２０）、ＩＣメモリ１０６にメッセージｍ３を送出する（Ｓ４２１）。ＩＣメモリ１０６では、受信したメッセージｍ３の中の暗号化データＣＳを秘密鍵Ｓｋ１で復号化し、電子署名化データＭＳを生成する（Ｓ４２２）。そして、ＩＣメモリ１０６は、Ｓ４０３で受信したメッセージｍ１に記述される送信元（つまりアプリケーション１０１のＩＤ）を記憶しており、記憶した送信元を用いて、アプリケーション１０１にメッセージｍ４を渡すことができるよう、電子署名化データＭＳを有するメッセージｍ４＜ＩＣメモリ１６のＩＤ、アプリケーション１１のＩＤ、ＭＳ＞を生成し、メッセージｍ４をＩＣメモリ用ハンドラ１４に返信する（Ｓ４２３）。
【００７７】
ＩＣメモリ用ハンドラ１０４は、共有メモリ１０２にメッセージｍ４を書き込み（Ｓ４２４）、送信先としてアプリケーションのＩＤが記述されるメッセージｍ４が共有メモリ１０２に登録されたと、アプリケーション用ハンドラ１０３が検知すると、アプリケーション用ハンドラ１０３がメッセージｍ４を取得し、アプリケーション用ハンドラ１０３はアプリケーション１０１の処理に割り込みをかけて、取得したメッセージｍ４の電子署名化データＭＳの電子署名が正当であるかを検証する。
【００７８】
すなわち、ＭＳに電子署名を施した公開鍵と、上述した有効であると判断された公開鍵証明書に記述されている公開鍵との一致を判断し、一致していればメッセージｍ４に記述されるデータＭＳに付与される電子署名は正当な電子署名が施されたものであると判断し、一致していなければ電子署名は不当なものであると判断する（Ｓ３０４）。そして、その判断結果を表示部に出力する（Ｓ３０５）。なお、Ｓ４２５によるアプリケーション用ハンドラ１３の呼び出し処理が行われる前に、Ｓ３０２、Ｓ３０３の公開鍵証明書の要求、有効性の検証は終了しているものとする。
【００７９】
以上の処理により送信しようとするデータに電子署名を付与し、電子署名の正当性を得た後に、ユーザの任意の送信先に正当性を有している電子署名を付与したデータを送る処理を行うことができる。
【００８０】
以上、アプリケーション１０１から共有メモリ１０２に送信するメッセージの登録を行い、共有メモリを監視している各ハンドラが任意に割り込み処理を行うことによる効果について説明する。
【００８１】
アプリケーション１０１は、共有メモリ１０２にメッセージの登録を行い、その登録後は別の処理を行い、ハンドラは共有メモリに登録されたメッセージに応じて適宜割り込み処理を実行することにより、アプリケーション１０１は共有メモリ１０２に登録したメッセージの処理結果が受信するまで待機する必要が無く、アプリケーション１１は他の処理を実行することができ、効率の良い処理を実現することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明のデータ処理装置１００および１００ａのブロック構成図である。
【図２】本発明における管理テーブル１７の具体例を示す説明図である。
【図３】本発明における管理テーブル１７ａの具体例を示す説明図である。
【図４】本発明のデータ処理装置１００および１００ａを用いた信号処理のシーケンス図である。
【図５】本発明の別の実施の形態のデータ処理装置２００および２００ａのブロック構成図である。
【図６】本発明のデータ処理装置２００および２００ａを用いた信号処理のシーケンス図である。
【符号の説明】
【００８３】
１１・・・アプリケーション、１２・・・ドライバ、１３・・・アプリケーション用ハンドラ、１４・・・ＩＣメモリ用ハンドラ、１５・・・通信用ハンドラ、１６・・・ＩＣメモリ、１７・・・ハンドラ管理テーブル、１８・・・通信部、１９・・・表示部
【図１】
2005309783.tif 000003
【図２】
2005309783.tif 000004
【図３】
2005309783.tif 000005
【図４】
2005309783.tif 000006
【図５】
2005309783.tif 000007
【図６】
2005309783.tif 000008