(57)【要約】【課題】  受信したコマンドに対する応答を返さずに、別の外部データ授受装置にコマンドを転送することのできるデータ授受装置を提供する。【解決手段】  ＩＣカード１０の入力手段１１は、第１の外部データ授受装置より出力された第１のコマンドを受信する。処理手段１２は、入力手段１１により受信されたコマンドに基づいて、処理結果を生成する。出力手段１３は、第１のコマンドに対する応答を外部データ授受装置に返信することなく、処理結果に基づいて生成された第２のコマンドを、第２の外部データ授受装置に出力する。【選択図】  図１
2005165649.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ授受装置を含んで構成される通信ネットワークが備えるデータ授受装置において、
第１の外部データ授受装置より出力された第１の要求データを受信する入力手段と、
前記入力手段により受信された第１の要求データに基づいて、処理結果を生成する処理手段と、
前記第１の要求データに対する応答を前記第１の外部データ授受装置に返信することなく、前記処理手段により生成された処理結果に基づいて生成された第２の要求データを、第２の外部データ授受装置に出力する出力手段と
を備えることを特徴とするデータ授受装置。
【請求項２】
前記データ授受装置は耐タンパ装置であることを特徴とする請求項１に記載のデータ授受装置。
【請求項３】
前記第１の外部データ授受装置と前記第２の外部データ授受装置との少なくとも一方は、耐タンパ装置であることを特徴とする請求項１又は２に記載のデータ授受装置。
【請求項４】
データを暗号化する暗号化手段をさらに備え、
前記暗号化手段は、前記処理手段により生成された処理結果に基づいて生成された第２の要求データを暗号化し、
前記出力手段は、前記暗号化手段により暗号化された前記第２の要求データを出力することを特徴とする請求項１から３の何れか１項に記載のデータ授受装置。
【請求項５】
データを復号化する復号化手段をさらに備え、
前記復号化手段は、前記入力手段により受信された第１の要求データが暗号化されていた場合には、該第１の要求データを復号化することを特徴とする請求項１から４の何れか１項に記載のデータ授受装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンドの中継を可能とするデータ授受装置に関する。
【背景技術】
【０００２】
従来より、通信装置間におけるデータの送受信やデータ処理は、様々なプロトコルや規格に従って行われている。例えば、ＩＣ（Integrated Circuit）カード間でデータを送受信する際には、携帯端末等のゲートウェイを介してＩＣカード間の通信路を確立した後に、データの送受信を行っている。ＩＳＯ７８１６では、接触型ＩＣカードに関する国際規格標準が規定されている。ＩＳＯ７８１６準拠のＩＣカードでは、データ転送時に、ＡＰＤＵ（Application Protocol Data Unit）というデータ構造を介してデータ転送を行う。この時に、ゲートウェイは、アプリケーションプログラムを実行することにより、受信したＡＰＤＵを解釈して処理を実行している。
【０００３】
ここで、ＡＰＤＵとは、ＩＣカードとゲートウェイとの間で送受信されるコマンド（要求データ）のデータ構造を規定したものである。ＡＰＤＵには、ＩＣカードへのコマンドである処理要求データ単位と、ＩＣカードからのレスポンスである処理応答データ単位とがある。ＩＳＯ７８１６では、送信側の装置がコマンドを送信し、受信側の装置がコマンドを処理した後に、コマンドに対するレスポンスを返信する、というプロトコルが規定されている。
【０００４】
また、上記のＩＣカードと異なり、ゲートウェイのアプリケーションプログラム等を介することなく、ＩＣカード同士が直接データ通信を行う技術も提唱されている。具体的には、ＩＣカードが、他のＩＣカードと相互認証を行った後に、データ転送処理を行う。データ転送処理手順としては、ＩＣカードがコマンドを送ると、他のＩＣカードが応答を返す。このようなコマンドの送信と応答の返信との繰り返しにより、一連のデータ転送処理の動作を完了させる（例えば、非特許文献１参照）。
【０００５】
このようなデータ転送処理においては、コマンド発信元に対して必ずコマンドに対する応答を返さねばならないため、２者間での通信しか行うことができない。従って、コマンドを受信したＩＣカードは、応答を返さずに、その後の処理を更に別のＩＣカードに依頼するといった処理を行うことができない。例えば、コマンドを受信したＩＣカードは、応答を返すことなく、別のＩＣカードに対して、送信したコマンドにタイムスタンプをつけてもらい、更に、次のＩＣカードに渡すことを依頼するといった処理を行うことができない。
【０００６】
このように、従来のＩＣカード間の通信においては、１コマンド毎に応答を返す必要があった。このため、３者以上のＩＣカードを含めたデータ授受装置間でデータ転送を行いながら処理を連鎖的に行う必要がある場合には、コマンドの送受信に時間がかかり処理効率が悪いという問題点があった。
一方、ＩＣカードとサーバとの間で、複数のコマンドを効率的に送受信するための技術が開示されている（例えば、特許文献１参照）。特許文献１に記載されている技術においては、サーバは、実行すべき複数のコマンドを、ＩＣカードが接続されている端末装置に送信する。端末装置はＩＣカードとの間で、複数のコマンドと応答とのやり取りを行う。端末装置は、ＩＣカードからの複数の応答結果をサーバに返信する。
【非特許文献１】eTRON:Entity and Economy TRON、越塚他、2002
【特許文献１】特開２００３−１９６６１１号公報（段落番号００１１〜００１４）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されている技術においても、コマンドを受信した装置は、当該コマンドに対して応答を返さなければならない仕組みとなっている。このため、上述した応答返信に伴なう問題点は解決されない。
本発明は上記欠点に鑑みてなされたものであり、受信したコマンドに対する応答を返さずに、別の外部データ授受装置にコマンドを転送することのできるデータ授受装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、複数のデータ授受装置を含んで構成される通信ネットワークが備えるデータ授受装置において、第１の外部データ授受装置より入力された第１の要求データを受信する入力手段と、前記入力手段により入力された第１の要求データに基づいて、処理結果を生成する処理手段と、前記第１の要求データに対する応答を前記第１の外部データ授受装置に返信することなく、前記処理手段により生成された処理結果に基づいて生成された第２の要求データを、第２の外部データ授受装置に出力する出力手段とを備えることを特徴とするデータ授受装置を提供する。
【０００９】
請求項１に記載の発明によれば、データ授受装置は、コマンド等の第１の要求データに対する応答を第１の外部データ授受装置に返信することなく、処理手段により生成された処理結果に基づいて生成された第２の要求データを第２の外部データ授受装置に出力するため、３者以上のデータ授受装置の間で要求データを転送することが可能となる。このため、データ送受信の回数を従来よりも少なくし、データ送受信に要する時間を短縮することができる。これにより、通信ネットワーク全体として、短時間で効率よく連続して処理を行うことができる。
【００１０】
請求項２に記載の発明は、請求項１に記載のデータ授受装置において、前記データ授受装置は耐タンパ装置であることを特徴とする。
請求項２に記載の発明によれば、通信ネットワークを構成するデータ授受装置を、外部からの不正な操作を受けにくい耐タンパ装置としたため、耐タンパ装置内にデータを記憶したり耐タンパ装置内で処理を実行することにより、安全性の高い通信ネットワークを構築することができる。また、耐タンパ装置の処理能力が比較的小さい場合にも、応答を返さずに要求データのみを転送するようにしたことにより、耐タンパ装置に処理負荷をかけずに、効率的なデータ転送を行うことができる。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載のデータ授受装置において、前記第１の外部データ授受装置と前記第２の外部データ授受装置との少なくとも一方は、耐タンパ装置であることを特徴とする。
請求項３に記載の発明によれば、前記データ授受装置と前記第１の外部データ授受装置と前記第２の外部データ授受装置との少なくとも一は耐タンパ装置であるため、全部または一部を耐タンパ装置とした通信ネットワークを形成することができる。このため、外部からの不正アクセスやデータ改竄を防ぐ必要のある通信ネットワークを構築する場合には、セキュリティが高く、かつ、処理効率や伝送効率のよい耐タンパ通信ネットワークを構築することができる。
【００１２】
請求項４に記載の発明は、請求項１から３の何れか１項に記載のデータ授受装置において、データを暗号化する暗号化手段をさらに備え、前記暗号化手段は、前記処理手段により生成された処理結果に基づいて生成された第２の要求データを暗号化し、前記出力手段は、前記暗号化手段により暗号化された前記第２の要求データを出力することを特徴とする。
請求項４に記載の発明によれば、データ授受装置の出力手段は、第２の要求データを暗号化した後に出力するため、要求データの要求内容が外部に漏洩することがない。このため、要求データの内容を秘匿したまま要求データを流通させることができ、セキュリティの高い通信ネットワークを構築することができる。
【００１３】
請求項５に記載の発明は、請求項１から４の何れか１項に記載のデータ授受装置において、データを復号化する復号化手段をさらに備え、前記復号化手段は、前記入力手段により受信された第１の要求データが暗号化されていた場合には、該第１の要求データを復号化することを特徴とする。
請求項５に記載の発明によれば、前記入力手段は、受信した前記第１の要求データが暗号化されていた場合には該第１の要求データを復号するため、データ授受装置は、受信した要求データにより要求された内容を解釈することができ、要求に従って処理を行うことができる。
【発明の効果】
【００１４】
本発明によれば、データ授受装置は、第１の要求データに対する応答を第１の外部データ授受装置に返信することなく、処理結果に基づいて生成された第２の要求データを第２の外部データ授受装置に出力するため、３者以上のデータ授受装置間で要求データを転送することが可能となる。このため、通信ネットワーク全体としてのデータの送受信やそれに伴なう処理を、連鎖的に短時間で効率よく行うことが可能となる。また、データ授受装置を耐タンパ装置とし、要求データを暗号化することで、安全性が高く処理効率のよい耐タンパ通信ネットワークを構築することができる。
【発明を実施するための最良の形態】
【００１５】
次に、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
［Ａ．第１の実施の形態］
まず、本発明の第１の実施の形態について説明する。
［Ａ−１．構成］
［Ａ−１−１．全体構成］
図１は、本発明の第１の実施の形態に係る耐タンパネットワークシステム１の構成を示すブロック図である。同図に示すように、耐タンパネットワークシステム１は、ＩＣカード１０ａ，１０ｂ，１０ｃと、外部入力装置２０ａ，２０ｂとを含んで構成される。
【００１６】
ＩＣカード１０ａ，１０ｂ，１０ｃは、外部からの不正なアクセスを受けにくい耐タンパ装置の一種である。これらのＩＣカード１０ａ，１０ｂ，１０ｃは、接触型でも非接触型でも構わない。
外部入力装置２０ａ，２０ｂは、耐タンパ装置に限定されない装置である。外部入力装置２０ａ，２０ｂは、通信を行うことが可能なコンピュータであればよく、例えば、携帯端末、ＰＤＡ（Personal Digital Assistance）、サーバ、及び、ＩＣカードリーダライタであってもよい。
【００１７】
なお、同図においては、３つのＩＣカード１０ａ，１０ｂ，１０ｃと、２つの外部入力装置２０ａ，２０ｂとを図示しているが、この耐タンパネットワークシステム１は、少なくとも３つの装置で構成されていれば、装置の数や種類については限定されない。
また、以下の説明においては、ＩＣカード１０ａ，１０ｂ，１０ｃは、同じハードウェア構成を備えているため、これらのＩＣカード同士を特に区別しない場合には、「ＩＣカード１０」として説明することとする。また、同様に、外部入力装置２０ａ，２０ｂを特に区別しない場合には、「外部入力装置２０」として説明することとする。
【００１８】
［Ａ−１−２．ＩＣカード］
次に、ＩＣカード１０の構成について説明する。
ＩＣカード１０は、小型コンピュータのハードウェア構成を備えている。すなわち、ＩＣカード１０は、ＩＣカード１０全体を制御するＣＰＵ（Central Processing Unit）と、書き換え不可能なメモリであるＲＯＭ（Read Only Memory）、データを一時的に記憶するＲＡＭ（Random Access Memory）、及び、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）やフラッシュメモリ等の不揮発性メモリを含んだ記憶部と、装着されている装置や外部データ授受装置とのデータ授受を制御する通信インターフェースとを備えている。
【００１９】
記憶部には、各種データやプログラムが記憶されている。例えば、ＲＯＭには、ＩＣカード１０を制御するソフトウェアであるＯＳ（オペレーティングシステム；Operating System）と、通信制御を行うためのプログラムと、ファイルやメモリを管理するためのプログラムとが、ＩＣカード１０出荷時点から記憶されている。
ここでコマンドとは、予め定められたデータ構成を有し、ＣＰＵに指令を与えるためにコンピュータに入力される情報である。コマンドを構成するデータは、コマンドの種類を表すコードや、コマンドを実行するために必要なパラメータや処理用データを含んで構成される。また、ここでのコマンドの種類には、データを読み出したり保存したりすることを要求するコマンドや、文書データに電子署名を付加することを要求するコマンドや、電子署名が付加された文書データを検証することを要求するコマンドや、タイムスタンプを付加することを要求するコマンドが含まれている。
【００２０】
また、ＩＣカード１０の記憶部には、受信したコマンドに基づいて処理を行うための各種アプリケーションプログラムやデータが記憶されている。この各種アプリケーションプログラムやデータは、各々のＩＣカード１０の用途によって異なっている。
また、ＩＣカード１０の記憶部には、本発明に特徴的なプログラムとして、受信したコマンドに対する応答を返さずに、処理結果に応じて生成したコマンドを他の外部データ授受装置に出力するためのプログラムが記憶されている。ＩＣカード１０のＣＰＵがこれらのプログラムを実行することにより実現される機能と、ＩＣカード１０が備えるハードウェアの機能とにより、図２に示すＩＣカード１０の機能手段が実現される。
【００２１】
同図に示すように、ＩＣカードは、入力手段１１、処理手段１２及び出力手段１３を備えている。入力手段１１は、通信インターフェースを含んで構成される。入力手段１１は、外部データ授受装置より出力されたコマンドを受信し、当該コマンドの内容を解釈して、解釈した処理内容を処理手段１２に要求する。ここで入力手段１１にコマンドを出力する外部データ授受装置は、別のＩＣカード１０であってもよいし、携帯電話機やＰＤＡやサーバ等の外部入力装置２０であってもよい。
処理手段１２は、アプリケーションプログラムを実行することにより、入力手段１１が受信したコマンドにより要求された処理を行い、処理結果を生成する。
【００２２】
出力手段１３は、入力手段１１と同様に、通信インターフェースを含んで構成される。出力手段１３は、処理手段１２により生成された処理結果に基づいて、出力すべきコマンドを生成する。また、出力手段１３は、生成したコマンドの出力先となる外部データ授受装置を判定し、当該判定された外部データ授受装置にコマンドを出力する。このとき、コマンドの出力先として判定される外部データ授受装置は、別のＩＣカード１０であってもよいし、携帯電話機やＰＤＡやサーバ等の外部入力装置２０であってもよい。
なお、出力手段１３は、生成したコマンドを出力先の外部データ授受装置に送信する前に、入力手段１１により受信されたコマンドに対する応答を、コマンド送信元の外部データ授受装置に返信することはない。
【００２３】
［Ａ−１−３．コマンド転送処理］
次に、図３のフローチャートを参照しながら、ＩＣカード１０が実行するコマンド転送処理を説明する。
まず、ＩＣカード１０は、外部入力装置２０や他のＩＣカード１０から出力されたコマンドを、入力手段１１で受理する（ステップＳ１０１）。
入力手段１１は、受理したコマンドの内容を解釈し、処理手段１２に対して、コマンドで要求されている処理を実行するよう要求する。処理手段１２は、コマンドに従って処理を行い、処理結果を生成する（ステップＳ１０２）。出力手段１３は、処理結果に基づいて、出力すべきコマンドを生成する（ステップＳ１０３）。出力手段１３は、生成したコマンドの送信先となる外部データ授受装置を判定する。出力手段１３は、判定された外部データ授受装置との通信路が確立された後、当該外部データ授受装置宛てにコマンドを送信する（ステップＳ１０４）。なお、通信路については、ＩＣカード１０と接続される携帯端末やＩＣカードリーダライタ等のゲートウェイが通信路を確立するか、または、ＩＣカード１０が通信路を確立する機能を備えている場合にはＩＣカード１０自身が直接通信路を確立する。
【００２４】
［Ａ−２．動作］
次に、上記構成における動作について、図１及び図３を参照しながら説明する。
動作例として、ユーザが、外部入力装置２０ａからＩＣカード１０ｂ宛ての文書データを入力した場合について説明する。ここでは、ＩＣカード１０ａは外部入力装置２０ａに装着されているものとする。
また、ＩＣカード１０ａの記憶部には、認証局（ＣＡ；Certificate Authority）より発行された公開鍵証明書（以下「証明書」という）と、秘密鍵と、ハッシュ関数とが記憶されているものとする。また、ＩＣカード１０ａの記憶部には、文書データに電子署名を付加する処理を行うためのプログラムが記憶されているものとする。
【００２５】
また、ＩＣカード１０ｃの記憶部には、ハッシュ関数が記憶されている。さらに、ＩＣカード１０ｃの記憶部には、当該ハッシュ関数と電子署名が付加された文書データ（以下「署名データ」という）と公開鍵とを用いて、署名データを検証する処理を行うためのプログラムが記憶されているものとする。
まず、ユーザは、外部入力装置２０ａの操作ボタン等のユーザインターフェースを利用して、ＩＣカード１０ｂに送信すべき文書データを入力する。そして、ユーザは、同様にユーザインターフェースを利用して、当該文書データに電子署名を付加することにより署名データを生成する指示を行うと共に、生成した署名データをＩＣカード１０ｂ宛てに送信する指示を行う。
【００２６】
これにより、外部入力装置２０ａは、コマンドＣ１（ここでは、文書データに電子署名を付加することにより署名データを生成し、生成した署名データをＩＣカード１０ｂに送信することを要求するコマンド）を生成する。外部入力装置２０ａは、生成したコマンドＣ１をＩＣカード１０ａに対して出力する。
ＩＣカード１０ａは、外部入力装置２０ａから出力されたコマンドＣ１を、入力手段１１ａで受理する（図３のステップＳ１０１）。入力手段１１ａは、受理したコマンドＣ１の内容を解釈する。そして、入力手段１１ａは、処理手段１２ａに対して、コマンドＣ１で表される電子署名付与の処理を要求する。
【００２７】
処理手段１２ａは、入力手段１１ａより処理要求を受信すると、一般的な公開鍵暗号方式に従って、文書データに電子署名を付加することにより、署名データを生成する処理を行う。具体的には、処理手段１２ａは、記憶部よりハッシュ関数と秘密鍵とを読み出す。そして、処理手段１２ａは、受信した文書データをハッシュ関数で演算することにより、ハッシュ値を算出する。さらに、処理手段１２ａは、算出したハッシュ値を秘密鍵を用いて暗号化することにより、電子署名を生成する。処理手段１２ａは、生成した電子署名を文書データに付加することにより署名データを生成する。
【００２８】
処理手段１２ａは、生成した署名データを含んだ処理結果Ｒ１を生成し、当該処理結果Ｒ１を出力手段１３ａに渡す。
出力手段１３ａは、処理手段１２ａにより生成された処理結果Ｒ１に基づいて、出力すべきコマンドＣ２を生成する。具体的には、出力手段１３ａは、記憶部に記憶されている証明書を読み出し、当該証明書と署名データとを含んだ、出力すべきコマンドＣ２（ここでは、署名データの検証をＩＣカード１０ｃに依頼する要求）を生成する。また、出力手段１３ａは、受理されたコマンドＣ１により、コマンドＣ２の送信先がＩＣカード１０ｂであることを判定する。そして、出力手段１３ａは、ＩＣカード１０ｂとの通信路を確立し、当該生成したコマンドＣ２をＩＣカード１０ｂ宛てに出力する。
【００２９】
ＩＣカード１０ｂは、ＩＣカード１０ａより出力されたコマンドＣ２を、入力手段１１ｂで受理する。そして、ＩＣカード１０ｂは、ＩＣカード１０ａと同様に、処理手段１２ｂにてコマンドＣ２の処理を行い、処理結果Ｒ２を生成する。具体的な処理内容としては、処理手段１２ｂは、受信したコマンドＣ２に含まれる署名データと証明書とを抽出し、一時的にＲＡＭに記憶する。そして、処理手段１２ｂは、署名データを一時的に記憶中であることを表す処理結果Ｒ２を生成し、出力手段１３ｂに渡す。
【００３０】
出力手段１３ｂは、処理結果Ｒ２に従って、署名データと証明書とを含んだ、出力すべきコマンドＣ３（ここでは署名データ検証依頼）を生成する。そして、出力手段１３ｂは、署名データの検証依頼先であるＩＣカード１０ｃとの通信路を確立し、コマンドＣ３をＩＣカード１０ｃ宛てに出力する。
ＩＣカード１０ｃは、ＩＣカード１０ｂと同様に、入力手段１１ｃでコマンドＣ３を受理し、処理手段１２ｃでコマンドＣ３の命令に従った処理を行う。具体的には、入力手段１１ｃは、受理したコマンドＣ３の内容を解釈して、処理手段１２ｃに署名データの検証を要求する。
【００３１】
処理手段１２ｃは、入力手段１１ｃからの要求を受けて、一般的な公開鍵暗号化方式に従い、署名データの検証を行う。具体的には、処理手段１２ｃは、受信した署名データに含まれる文書データをハッシュ関数を用いて演算することにより、ハッシュ値を算出する。また、処理手段１２ｃは、署名データに含まれる電子署名を、証明書に含まれる公開鍵を用いて復号化する。処理手段１２ｃは、電子署名を復号化した値と、文書データから算出したハッシュ値とを比較して、両者が一致しているか否かを表す比較結果を生成する。そして、処理手段１２ｃは、当該比較結果を含んだ処理結果Ｒ３を生成し、出力手段１３ｃに渡す。
【００３２】
出力手段１３ｃは、処理結果Ｒ３に基づいてコマンドＣ４を生成する。具体的には、まず、出力手段１３ｃは、処理結果Ｒ３に含まれる比較結果の内容を確認する。比較結果が一致している場合には、署名データの送信元が正当であり、かつ、署名データは改竄されていないことを示していることになるため、出力手段１３ｃは、コマンドＣ４（ここでは、ＩＣカード１０ｂに署名データの保存を要求するコマンド）を生成する。一方、比較結果が一致していない場合には、署名データが正当でないため、出力手段１３ｃは、コマンドＣ４（ＩＣカード１０ｂに署名データの破棄を要求するコマンド）を生成する。出力手段１３ｃは、ＩＣカード１０ｂとの通信路を確立し、生成したコマンドＣ４をＩＣカード１０ｂ宛てに出力する。
【００３３】
ＩＣカード１０ｂの入力手段１１ｂは、ＩＣカード１０ｃより出力されたコマンドＣ４を受信する。コマンドＣ４が署名データの保存を要求するコマンドである場合には、処理手段１２ｂは、一時的にＲＡＭに記憶しておいた署名データをＩＣカード１０ｂの不揮発性メモリに記憶する。一方、コマンドＣ４が署名データの破棄を要求するコマンドである場合には、ＲＡＭに記憶しておいた署名データを破棄する。
【００３４】
このように、ＩＣカード１０の入力手段１１と処理手段１２と出力手段１３とを連携させることで、ＩＣカード１０は、外部入力装置２０や他のＩＣカード１０より受信したコマンドに対し応答を返すことなく、次の送信先である、外部入力装置２０や他のＩＣカード１０にコマンドを出力することが可能となる。このため、３者以上の装置間においてコマンドを転送することが可能となり、例えば、中継するＩＣカード１０において転送されるコマンドにタイムスタンプを付加する、または、コマンドや文書データに署名を付加するなどの処理を、短時間で効率よく行うことができる。このため、耐タンパネットワークシステム１全体として、短時間で効率よくコマンド転送やコマンドに基づいた処理を行うことが可能となる。また、耐タンパネットワークシステム１を構成するデータ授受装置としてＩＣカード１０を用いることで、外部からの不正操作を受けにくいＩＣカード１０内において、セキュリティの高い処理を行うことができる。
【００３５】
［Ｂ．第２の実施の形態］
次に、本発明に係る第２の実施の形態について説明する。
［Ｂ−１．構成］
図４は、本発明の第２の実施の形態に係る耐タンパネットワークシステム１の構成を示すブロック図である。同図に示すように、耐タンパネットワークシステム１は、ＩＣカード１０ｄ，１０ｅ，１０ｆを含んで構成される。
図５には、第２の実施の形態におけるＩＣカード１０の機能ブロック図を示す。同図に示すように、第２の実施の形態におけるＩＣカード１０は、第１の実施の形態におけるＩＣカード１０と同様に、入力手段１１、処理手段１２、及び、出力手段１３を備えている。また、第２の実施の形態におけるＩＣカード１０は、第１の実施の形態におけるＩＣカード１０との差異として、暗号化手段１５、及び、復号化手段１４を備えている。
【００３６】
ＩＣカード１０のハードウェア構成は、第１の実施の形態におけるＩＣカード１０と同様の構成である。ＩＣカード１０の記憶部には、第１の実施の形態において記憶されているソフトウェアの他に、データの暗号化・復号化を行うための鍵情報が記憶されている。また、ＩＣカード１０の記憶部には、この鍵情報を用いて、データを暗号化・復号化するためのプログラムが記憶されている。ここで、暗号化の方式としては、様々な暗号化方式を用いることができるが、ここでは、共通鍵暗号化方式を用いることとし、鍵情報は共通鍵を表すものとする。
【００３７】
ＩＣカード１０のＣＰＵが、これらのプログラムを実行することにより、上述した暗号化手段１５と復号化手段１４とが、ＩＣカード１０に実現される。以下、これらの機能手段について説明する。
暗号化手段１５はデータを暗号化する機能を有する。具体的には、暗号化手段１５は、ＩＣカード１０の記憶部に記憶されている鍵情報を用いてコマンドを暗号化し、当該暗号化されたコマンドを出力手段１３に渡す。
復号化手段１４は、データを復号化する機能を有する。具体的には、復号化手段１４は、入力手段１１により受理されたコマンドが暗号化されていた場合には、記憶部に記憶されている鍵情報を用いて、コマンドを復号化する。そして、復号化手段１４は、復号化したコマンドを処理手段１２に渡す。
【００３８】
［Ｂ−２．コマンド転送処理］
図６は、第２の実施の形態に係るコマンド転送処理の流れを示すフローチャートである。図６に示すコマンド転送処理が、図３に示す第１の実施の形態に係るコマンド転送処理と異なる点は、ステップＳ２０２において、復号化手段１４が、受信したコマンドを復号化する点と、ステップＳ２０５において、暗号化手段１５が、出力すべきコマンドを暗号化する点である。
その他の図６に示す各ステップにおける処理は、図３に示す、対応する各ステップにおける処理と同様である。ここでは、図３のステップＳ１０１と図６のステップＳ２０１、図３のステップＳ１０２と図６のステップＳ２０３、図３のステップＳ１０３と図６のステップＳ２０４、図３のステップＳ１０４と図６のステップＳ２０６とが対応している。
【００３９】
［Ｂ−３．動作］
以下、図４に示すＩＣカード１０ｄ、１０ｅ、１０ｆ間におけるコマンド転送処理の動作を、図６を参照しながら説明する。
ここでは、ＩＣカード１０ｄが、出力すべきコマンドを生成する手順から説明することとする。
まず、ＩＣカード１０ｄの出力手段１３ｄが、出力すべきコマンドＣ５を生成する（図６のステップＳ２０４）。そして、出力手段１３ｄは出力先であるＩＣカード１０ｅとの通信路を確立する。
【００４０】
次いで、出力手段１３ｄは、コマンドＣ５を暗号化手段１５ｄへと渡す。暗号化手段１５ｄは、ＩＣカード１０ｄの記憶部より鍵情報を読み出して、当該鍵情報でコマンドＣ５を暗号化する（ステップＳ２０５）。暗号化手段１５ｄは、暗号化されたコマンドＣ５を出力手段１３ｄへ渡す。出力手段１３ｄは、暗号化されたコマンドＣ５を、通信路を介して、ＩＣカード１０ｅ宛てに出力する（ステップＳ２０６）。
【００４１】
ＩＣカード１０ｅは、入力手段１１ｅで、暗号化されたコマンドＣ５を受理し（ステップＳ２０１）、復号化手段１４ｅへ渡す。
復号化手段１４ｅは、コマンドＣ５を復号化し（ステップＳ２０２）、処理手段１２ｅへ渡す。
処理手段１２ｅはコマンドＣ５の処理を行い、処理結果Ｒ５を生成して（ステップＳ２０３）、出力手段１３ｅに渡す。出力手段１３ｅは、処理結果Ｒ５に従って、外部に出力するためのコマンドＣ６を生成し（ステップＳ２０４）、コマンドＣ６の送信先であるＩＣカード１０ｆとの通信路を確立する。
【００４２】
上記と同様に、出力手段１３ｅは、コマンドＣ６を暗号化手段１５ｅへ渡す。暗号化手段１５ｅは、コマンドＣ６を暗号化して（ステップＳ２０５）、出力手段１３ｅへ戻す。出力手段１３ｅは、暗号化されたコマンドＣ６を、通信路を介して、ＩＣカード１０ｆへ出力する（ステップＳ２０６）。
ＩＣカード１０ｆの入力手段１１ｆでは、上記ＩＣカード１０ｅの入力手段１１ｅと同様、コマンドＣ６を受理し（ステップＳ２０１）、復号化手段１４ｆでコマンドＣ６を復号化する（ステップＳ２０２）。
【００４３】
これ以降の処理は、ＩＣカード１０ｅにおける処理と同様であるため、重複した説明を省略する。
このように、第１の実施の形態におけるＩＣカード１０が備える機能に加えて、暗号化手段１５による暗号化処理と、復号化手段１４による復号化処理とを加えることで、上記耐タンパネットワークシステム１におけるコマンドの転送処理を、より安全に行うことができる。すなわち、全ての処理をＩＣカード１０内で行い、コマンド転送時には暗号化されたコマンドを転送するようにしたため、外部に対して、処理の流れやコマンドの内容を秘匿にすることができる。
【００４４】
［Ｃ．変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。変形例としては、例えば、以下のようなものが考えられる。
（１）上述した第１の実施の形態においては、外部入力装置２０ａから、ＩＣカード１０ａ、１０ｂ、１０ｃ、１０ｂの順序でコマンドが転送される例を説明したが、コマンドが転送される順序はこれに限定されない。例えば、ＩＣカード１０ａ、外部入力装置２０ａ、ＩＣカード１０ｂ、外部入力装置２０ｂ、ＩＣカード１０ｃの順にコマンドが転送されてもよい。
【００４５】
また、上述したコマンドＣ１〜Ｃ４の処理内容は一例であり、ＩＳＯ７８１６に準拠したコマンドを使用してもよいし、独自の仕様によるコマンドを使用して例えば、１回で送信されるコマンドに複数の命令が含まれるようにしてもよい。
また、本発明は、ＩＣカード１０間のコマンド転送に限定されず、複数の携帯端末間や複数のサーバ間における要求データの転送にも適用することができる。
【００４６】
（２）コマンドの出力先装置を、処理結果に応じて選択できるようにしてもよい。
この場合の例としては、例えば、ユーザが、図１に示す外部入力装置２０ａより外部入力装置２０ｂに対して、文書データを送信する場合が考えられる。
以下、具体的な処理の流れを説明する。まず、ユーザが外部入力装置２０ａに文書データを入力すると、外部入力装置２０ａはＩＣカード１０ａに対して、署名データを生成することを要求するコマンドＣ１を送信する。次に、ＩＣカード１０ａがＩＣカード１０ｂに対して、署名データに対して受け取りのタイムスタンプを付加することを要求するコマンドＣ２を送信する。次に、ＩＣカード１０ｂがＩＣカード１０ｃに対して、署名データを検証することを要求するコマンドＣ３を送信する。
【００４７】
ここで、ＩＣカード１０ｃは、検証結果によってコマンド送信先の外部データ授受装置を選択する。具体的には、ＩＣカード１０ｃは、署名データの検証結果が正常であった場合には、外部入力装置２０ｂに対して、署名データを保存する指示を行うコマンドＣ５を送信する一方、検証結果が正常でなかった場合には、ＩＣカード１０ｂに対して、署名データを破棄する指示を行うコマンドＣ４を送信する。
また、上述した第１の実施の形態において説明した動作例においては、例えば、証明書を発行した認証局に応じて、ＩＣカード１０ｂがコマンドＣ３を出力する外部データ授受装置を選択できるようにしてもよい。
【００４８】
（３）上述した実施形態においては、ＩＣカード１０はコマンドに対する応答を返信しないで、コマンド転送のみを行うとして説明したが、例えば、コマンドに対する処理が正常終了しなかった場合には応答を返すようにしてもよい。すなわち、コマンドに対する処理が正常終了した場合にのみ、応答を返さないでコマンドを転送するようにしてもよい。
（４）上述した第１の実施の形態における動作例では、一般的な公開鍵暗号化方式により署名データの検証を行う動作例について説明したが、これは一例に過ぎず、複数の装置間でコマンド転送を行いながら連鎖的に処理を実行する形態の処理であれば、どのような処理であってもよい。
【産業上の利用可能性】
【００４９】
本発明は、複数の装置間でデータ転送を行いながら、処理を連鎖的に短時間で行う必要のある産業分野において利用することが可能である。また、耐タンパ装置やコマンドの暗号化を用いた場合には、不正なアクセスを受けることなく、かつ、処理内容やコマンドの内容を秘匿にして処理を行う必要がある産業分野、例えば、電子商取引の分野において利用可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の実施の形態に係る耐タンパネットワークシステムの構成を示すブロック図である。
【図２】同実施の形態に係るＩＣカードの機能構成を示すブロック図である。
【図３】同実施の形態に係るコマンド転送処理の流れを示すフローチャートである。
【図４】本発明の第２の実施の形態に係る耐タンパネットワークシステムの構成を示すブロック図である。
【図５】同実施の形態に係るＩＣカードの機能構成を示すブロック図である。
【図６】同実施の形態に係るコマンド転送処理の流れを示すフローチャートである。
【符号の説明】
【００５１】
１      耐タンパネットワークシステム
１０，１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ｅ，１０ｆ    ＩＣカード
１１，１１ａ，１１ｂ，１１ｃ，１１ｄ，１１ｅ，１１ｆ    入力手段
１２，１２ａ，１２ｂ，１２ｃ，１２ｄ，１２ｅ，１２ｆ    処理手段
１３，１３ａ，１３ｂ，１３ｃ，１３ｄ，１３ｅ，１３ｆ    出力手段
１４，１４ｄ，１４ｅ，１４ｆ    復号化手段
１５，１５ｄ，１５ｅ，１５ｆ    暗号化手段
２０，２０ａ，２０ｂ 外部入力装置
【図１】
2005165649.tif 000003
【図２】
2005165649.tif 000004
【図３】
2005165649.tif 000005
【図４】
2005165649.tif 000006
【図５】
2005165649.tif 000007
【図６】
2005165649.tif 000008