(57)【要約】      （修正有）【課題】演算時間を短縮しながら、端末装置で実行される鍵生成ロジック、暗号複合処理等の命令コードの解析を困難とするセキュリティを強化した耐タンパーシステムを提供する。【解決手段】端末装置１００と、端末装置と通信する耐タンパー装置２００とで構成される耐タンパーシステムであって、端末装置は、入力領域に存在する被暗号データに対する暗号命令の生成指令を耐タンパー装置に送信し、耐タンパー装置は、被暗号データに対する暗号命令を端末装置に送信し、端末装置は、暗号命令を実行し、暗号化データを出力領域に転送する。端末装置は、端末装置の処理装置の種別を、暗号命令の生成指令とともに耐タンパー装置に送信し、耐タンパー装置は、受信した端末装置の処理装置の種別に対応可能である場合にのみ、暗号命令の生成指令を端末装置に送信する。【選択図】図１
2007304903.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、該端末装置と通信する耐タンパー装置とで構成される耐タンパーシステムであって、
前記端末装置は、入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信し、
該耐タンパー装置は、前記被暗号データに対する暗号命令を前記端末装置に送信し、
該端末装置は、該暗号命令を実行し、暗号化データを出力領域に転送することを特徴とする耐タンパーシステム。
【請求項２】
前記端末装置は、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信し、
該耐タンパー装置は、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信することを特徴とする請求項１に記載の耐タンパーシステム。
【請求項３】
端末装置と、該端末装置と通信する耐タンパー装置とで構成される耐タンパーシステムを制御するためのプログラムであって、
前記端末装置が、入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信するステップと、
該耐タンパー装置が、前記被暗号データに対する暗号命令を前記端末装置に送信するステップと、
該端末装置が、該暗号命令を実行し、暗号化データを出力領域に転送するステップとを備えることを特徴とするプログラム。
【請求項４】
前記端末装置が、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信するステップと、
該耐タンパー装置が、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信するステップとを備えることを特徴とするプログラム。
【請求項５】
耐タンパー装置と通信を行う端末装置であって、
入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信し、
該耐タンパー装置から、前記被暗号データに対する暗号命令を受信し、
該暗号命令を実行し、暗号化データを出力領域に転送することを特徴とする端末装置。
【請求項６】
前記端末装置は、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信し、
該耐タンパー装置が、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を受信することを特徴とする請求項５に記載の端末装置。
【請求項７】
端末装置と通信する耐タンパー装置であって、
前記端末装置から、該端末装置の入力領域に存在する被暗号データに対する暗号命令の生成指令を受信し、
該被暗号データに対する暗号命令を前記端末装置に送信することを特徴とする耐タンパー装置。
【請求項８】
該耐タンパー装置は、前記端末装置から受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信することを特徴とする請求項７に記載の耐タンパー装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、耐タンパーシステムに関し、特に、ＩＣカードを用いてクレジット決済等を行うにあたって用いられる耐タンパーシステムに関する。
【背景技術】
【０００２】
電子ネットワーク上でサービスを提供する際に、不特定多数のアクセス要求者に対してサービスを受ける権限の有無を確認し、権限のある要求者のみにアクセスを許可する認証システムとして、例えば、特許文献１には、属性発行管理サーバと、利用者端末と、耐タンパー装置（ＩＣカード、スマートカード等）と、サービス提供サーバと、決済機関装置とで構成される認証システムであって、グループ署名方式において、利用者端末に着脱自在に保持される耐タンパー装置が秘密情報を生成し、かつ秘密情報による演算を実行することによって、利用者端末に秘密情報が漏洩することを防止する認証システムが記載されている。
【特許文献１】特開２００４−３２０５６２（図８）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記従来の匿名認証システム等においては、第１に、大量のデータ処理を行う場合には、耐タンパー装置に秘密情報による演算処理機能を実装し、データ処理を行わせているため、演算に長時間を要するという問題点があった。
【０００４】
また、第２に、耐タンパー装置は秘密情報の演算処理機能を有するが、端末装置のプログラムについては、例えば、プログラムコードの隠蔽、コードからアルゴリズムを解析不能とするコード解析の難解化等の対策が施されていないため、主装置のプログラムコードを解読されるおそれがあるという問題があった。
【０００５】
そこで、本発明は、上記従来の匿名認証システム等における問題点に鑑みてなされたものであって、演算時間を短縮しながら、セキュリティを強化した耐タンパーシステム等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明は、端末装置と、該端末装置と通信する耐タンパー装置とで構成される耐タンパーシステムであって、前記端末装置は、入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信し、該耐タンパー装置は、前記被暗号データに対する暗号命令を前記端末装置に送信し、該端末装置は、該暗号命令を実行し、暗号化データを出力領域に転送することを特徴とする。
【０００７】
そして、本発明によれば、耐タンパー装置が、端末装置の入力領域に存在する被暗号データに対する暗号命令を端末装置に送信し、端末装置がこの暗号命令を実行するため、端末装置で実行される鍵生成ロジック、暗号複合処理等の命令コードの解析を困難にして、セキュリティを強化することができるとともに、コンピュータ等の端末側で暗号命令を実行するため、高速で多量の処理を行うことができる。
【０００８】
前記耐タンパーシステムにおいて、前記端末装置は、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信し、該耐タンパー装置は、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信することができ、対応不可である場合には、処理を終了することができる。
【０００９】
また、本発明は、端末装置と、該端末装置と通信する耐タンパー装置とで構成される耐タンパーシステムを制御するためのプログラムであって、前記端末装置が、入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信するステップと、該耐タンパー装置が、前記被暗号データに対する暗号命令を前記端末装置に送信するステップと、該端末装置が、該暗号命令を実行し、暗号化データを出力領域に転送するステップとを備えることを特徴とする。これによって、上述のように、端末装置で実行される命令コードの解析を困難にして、セキュリティを強化し、高速で多量の処理を行うことができる。
【００１０】
前記耐タンパーシステムを制御するためのプログラムにおいて、前記端末装置が、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信するステップと、該耐タンパー装置が、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信するステップとを備えることができる。
【００１１】
さらに、本発明は、耐タンパー装置と通信を行う端末装置であって、入力領域に存在する被暗号データに対する暗号命令の生成指令を前記耐タンパー装置に送信し、該耐タンパー装置から、前記被暗号データに対する暗号命令を受信し、該暗号命令を実行し、暗号化データを出力領域に転送することを特徴とする。この端末装置を用いることにより、上述のように、端末装置で実行される命令コードの解析を困難にし、セキュリティを強化し、高速で多量の処理が可能となる。
【００１２】
前記端末装置において、該端末装置の処理装置の種別を、前記暗号命令の生成指令とともに前記耐タンパー装置に送信し、該耐タンパー装置が、受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を受信することができる。
【００１３】
また、本発明は、端末装置と通信する耐タンパー装置であって、前記端末装置から、該端末装置の入力領域に存在する被暗号データに対する暗号命令の生成指令を受信し、該被暗号データに対する暗号命令を前記端末装置に送信することを特徴とする。この耐タンパー装置を用いることで、端末装置で実行される命令コードの解析を困難にし、セキュリティを強化し、高速処理が可能となる。
【００１４】
前記耐タンパー装置において、前記端末装置から受信した該端末装置の処理装置の種別に対応可能である場合にのみ、前記暗号命令の生成指令を前記端末装置に送信することができる。
【発明の効果】
【００１５】
以上のように、本発明によれば、演算時間を短縮しながら、セキュリティを強化した耐タンパーシステム等を提供することができる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の実施の形態について図面を参照しながら説明する。
【００１７】
図１に示すように、本発明にかかる耐タンパーシステムは、大別して、プログラム制御により動作するコンピュータ（端末装置）１００と、同様に、プログラム制御により動作する耐タンパー装置２００とで構成される。
【００１８】
コンピュータ１００は、入力手段１０１と、通信手段１０２と、命令コード退避手段１０３と、重要処理生成手段１０４と、命令コード更新手段１０５と、暗号データ生成手段１０６と、命令コード復帰手段１０７と、出力手段１０８とで構成される。
【００１９】
入力手段１０１は、重要処理、すなわち暗号を行うデータの入力を司り、コンピュータ１００の内部の別のプログラムからの入力を行い、入力されたデータは、後に暗号データ生成手段１０６へ送られる。
【００２０】
通信手段１０２は、耐タンパー装置２００と接続され、重要処理生成手段１０４からの要求により、耐タンパー装置２００に命令コードの生成コマンドを送信する処理と、耐タンパー装置２００からの処理結果、すなわち、生成された重要処理の命令コードを受信して、重要処理生成手段１０４へ応答として返送する。
【００２１】
命令コード退避手段１０３は、既存の暗号データ生成手段１０６の命令コードを一時退避領域に移動する。
【００２２】
重要処理生成手段１０４は、通信手段１０２を介して、耐タンパー装置２００に重要処理の命令コードの生成を要求し、耐タンパー装置２００で生成された命令コードを受け取る。
【００２３】
命令コード更新手段１０５は、耐タンパー装置２００によって生成された命令コードを既存の暗号データ生成手段１０７の命令コードへ上書きする。
【００２４】
暗号データ生成手段１０６は、命令コード更新手段１０５により上書きされた命令コードを用いて、入力手段１０１で入力した被暗号データの暗号化を行う。
【００２５】
命令コード復帰手段１０７は、命令コード退避手段１０３で一時退避領域に移動した命令コードを復帰させる。
【００２６】
出力手段１０８は、暗号データ生成手段１０６で生成された暗号化データをコンピュータ１００内の別のプログラムへ出力する。
【００２７】
耐タンパー装置２００は、通信手段２０１と、ＣＰＵ判別手段２０２と、重要処理命令コード生成手段２０３とを含む。
【００２８】
通信手段２０１は、コンピュータ１００の通信手段１０２と接続され、重要処理生成手段１０４からの生成コマンドやレスポンスの受け渡しを行う。
【００２９】
ＣＰＵ判別手段２０２は、コンピュータ１００の重要処理生成手段１０４から要求されたコマンド識別子より、コンピュータ１００で使用されているＣＰＵの種別を判定する。
【００３０】
重要処理命令コード生成手段２０３は、ＣＰＵ判別手段２０２で判定したＣＰＵの種別に一致した重要処置の命令コードを生成する。
【００３１】
図２に示すように、コンピュータ１００は、ＣＰＵ１１０と、メモリ１２０と、通信インタフェース１３０とで構成される。メモリ１２０は、プログラムの命令コードが格納されるコードエリア１２１と、データなどを格納するワークエリア１２２とで構成される。
【００３２】
コードエリア１２１上には、図１に示した入力手段１０１と、通信手段１０２と、命令コード退避手段１０３と、重要処理生成手段１０４と、命令コード更新手段１０５と、暗号データ生成手段１０６と、命令コード復帰手段１０７と、出力手段１０８とを制御するプログラムが格納される。
【００３３】
耐タンパー装置２００は、ＣＰＵ２１０と、メモリ２２０と、通信インタフェース２３０とで構成される。メモリ２２０は、プログラムの命令コードが格納されるコードエリア２２１と、データなどを格納するワークエリア２２２とで構成される。
【００３４】
コードエリア２２１上には、図１に示した通信手段２０１と、ＣＰＵ判別手段２０２と、重要処理命令コード生成手段２０３とを制御するプログラムが格納される。
【００３５】
図３に示すように、メモリ１２０のコードエリア１２１には、入力手段１０１として機能する、被暗号データをワークエリア１２２に格納する命令コードＡ（アドレス００００）と、命令コード退避手段１０３として機能する、自プログラムのダミーの暗号命令コードをワークエリア１２２に移動する命令コードＢ（アドレス０００１）と、重要処理生成手段１０４として機能する、耐タンパー装置２００へ重要処理命令コードの生成の要求を通信手段１０２を介して行う命令コードＣ（アドレス０００２）と、耐タンパー装置２００から命令コードを受信する命令コードＤ（アドレス０００３）と、命令コード更新手段１０５として機能する、耐タンパー装置２００から受け取った重要処理を実行する命令コードを自プログラムに更新する命令コードＥ（アドレス０００４）と、暗号データ生成手段１０６として機能する、暗号処理を実行する命令コードＦ（アドレス０００５）と、暗号化データ２０１をワークエリア１２２に格納する命令コードＧ（アドレス０００６）と、命令コード復帰手段１０７として機能する、ワークエリア１２２に退避した命令コードを自プログラムに復帰させる命令コードＨ（アドレス０００７）と、出力手段１０８として機能する、暗号化データ２０１を出力する命令コードＩ（アドレス０００８）とで構成されるプログラムが格納される。
【００３６】
ワークエリア１２２には、被暗号データを格納するワークエリアａ（アドレス１０００）と、暗号データを格納するワークエリアｂ（アドレス１２００）と、既存の暗号処理の命令コードを退避するワークエリアｃ（アドレス１５００）とが確保されている。
【００３７】
図４に示すように、メモリ２２０のコードエリア２２１には、通信手段２０１として機能する、コンピュータ１００から受信したコマンドをワークエリア２２２に格納する命令コードＡ１（アドレス２０００）と、ＣＰＵ判別手段２０２として機能する、ワークエリア２２２に格納されたコマンドを解析してコンピュータ１００のＣＰＵの種別を判定する命令コードＢ１（アドレス２００１）と、重要処理命令コード生成手段２０３として機能する、ＣＰＵ判別手段２０２で判定したＣＰＵと一致する命令コードをワークエリア２２２より検索して取り出す命令コードＣ１（アドレス２００２）と、取り出した命令コードを通信インタフェース２３０を介してコンピュータ１００に送信する命令コードＤ１（アドレス２００３）からなるプログラムが格納される。
【００３８】
ワークエリア２２２には、コマンドを格納するワークエリアａ１（アドレス３０００）が確保されているとともに、ＣＰＵ毎の重要処理命令コードが格納されているワークエリアｂ１（アドレス３０１０〜３０３０）とで構成される。
【００３９】
図５は、本発明において重要処理を実施している間のコンピュータ１００のメモリ１２０のプログラム構成図である。図３に示したプログラム構成と比較すると、暗号処理（アドレス０００５）の命令コードがＸに入れ替わっている。
【００４０】
次に、図２〜図５、及び図６の流れ図を用い、上記構成を有する耐タンパーシステムの全体の動作について詳細に説明する。尚、説明を具体的にするため、コードエリア１２１のアドレス：０００４に格納される命令コードＥは、入力データを１ビット左にローテッドする命令とする。例えば、１６進数で０ｘ０Ａ（００００１０１０）の値が入力された場合には、命令コードＥを実行後は、０ｘ１４（０００１０１００）に暗号化されることとする。また、ワークエリア２２２のアドレス：３００１に格納される命令コードＩは、入力データを１ビット右にローテッドする命令とする。例えば、１６進数で０ｘ０Ａ（００００１０１０）の値が入力された場合には、命令コードＩを実行後は、０ｘ０５（０００００１０１）に暗号化されることとする。
【００４１】
通常の暗号処理が動作していないコンピュータ１００のコードエリア１２１は、図３に示す命令コードＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉが格納されている。本状態においては、重要処理を行う命令コードＦは、本来の暗号処理の命令コードではないため、コードエリア１２１の内容をリアセンブルなどの行為により、命令コードから暗号アルゴリズムの解読を行っても、入力データを１ビット左にローテッドするまでしか解読できず、本来の暗号処理を解読することは不可能である。
【００４２】
本状態より、暗号処理のプログラムが動作すると、図６に示すように、まず、コンピュータ１００は、命令コードＡを実行し、暗号処理を行うデータをワークエリア１２１へ転送する（ステップＳ１）。次に、コンピュータ１００は、命令コードＢを実行し、コードエリア１２１のアドレス０００５の命令コードＦをワークエリア１２２のアドレス１００２に転送する（ステップＳ２）。コンピュータ１００は、命令コードＣを実行し、ＣＰＵ１１０の種別を設定したコマンドを耐タンパー装置２００に送信して、一旦耐タンパー装置２００からのレスポンスを待ち合わせる（ステップＳ３）。
【００４３】
次に、耐タンパー装置２００は、命令コードＡ１を実行し、コンピュータ１００から受信したコマンドをワークエリア２２１へ転送し（ステップＰ１）、命令コードＢ１を実行し、コマンド内のＣＰＵ種別の判断を行う（ステップＰ２）。ここで、ＣＰＵ種別が耐タンパー装置２００で対応可能な場合には、ステップＰ３へと進み、対応していない場合には、ステップＰ５と進み、エラー送信をして耐タンパー装置２００のプログラムは終了する。
【００４４】
次に、耐タンパー装置２００は、命令コードＣ１を実行し、ＣＰＵ種別に一致した命令コードをワークエリア２２１から検索して取り出し（ステップＰ３）、命令コードＤ１を実行して、検索した命令コードＩをコンピュータ１００に送信する（ステップＰ４）。
【００４５】
次に、コンピュータ１００は、命令コードＤを実行し、耐タンパー装置２００から命令コードＩを受信する（ステップＳ４）。さらに、コンピュータ１００は、命令コードＥを実行し、命令コードＩをコードエリア１２１のアドレス０００５へ転送する（ステップＳ５）。
【００４６】
次に、コンピュータ１００は、命令コードＸを実行し、ワークエリア１２２に格納されている被暗号データに対して暗号処理を行い（ステップＳ６）、命令コードＧを実行し、暗号化データをワークエリア１２２へ転送する（ステップＳ７）。
【００４７】
次に、コンピュータ１００は、命令コードＨを実行し、ワークエリア１２２のアドレス１００２に退避した命令コードをコードエリア１２１のアドレス０００５に転送し（ステップＳ８）、命令コードＩを実行し、ワークエリア１２２の暗号データを出力エリアへ転送する（ステップＳ９）。
【産業上の利用可能性】
【００４８】
本発明は、ＩＣカードを使う端末、特にクレジット決済端末や、銀行のＡＴＭ等の用途に利用することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明にかかる耐タンパーシステムの一実施の形態の構成を示すブロック図である。
【図２】図１の耐タンパーシステムのシステム構成図である。
【図３】図１の耐タンパーシステムのコンピュータの通常時のメモリ状態を示す図である。
【図４】図１の耐タンパーシステムの耐タンパー装置の通常時のメモリ状態を示す図である。
【図５】図１の耐タンパーシステムのコンピュータの暗号処理実行時のメモリ状態を示す図である。
【図６】図１の耐タンパーシステムのシステムの動作を示す流れ図である。
【符号の説明】
【００５０】
１００  コンピュータ
１０１  入力手段
１０２  通信手段
１０３  命令コード退避手段
１０４  重要処理生成手段
１０５  命令コード更新手段
１０６  暗号データ生成手段
１０７  命令コード復帰手段
１０８  出力手段
１１０  ＣＰＵ
１２０  メモリ
１２１  コードエリア
１２２  ワークエリア
１３０  通信インタフェース
２００  耐タンパー装置
２０１  通信手段
２０２  ＣＰＵ判別手段
２０３  重要処理命令コード生成手段
２１０  ＣＰＵ
２２０  メモリ
２２１  コードエリア
２２２  ワークエリア
２３０  通信インタフェース
【図１】
2007304903.tif 000003
【図２】
2007304903.tif 000004
【図３】
2007304903.tif 000005
【図４】
2007304903.tif 000006
【図５】
2007304903.tif 000007
【図６】
2007304903.tif 000008