(57)【要約】【課題】  複数のアプリケーションを搭載可能なマルチアプリケーション対応ＩＣカードにおいて、ＩＣカード内のアプリケーションが個々に暗号処理機能を実装する場合、ＩＣカードのメモリ領域を圧迫し、また、個々のアプリケーションの構造を複雑化してしまうという課題がある。また、端末から、ＩＣカードに対して暗号処理を依頼するための命令体系と、ＩＣカード内のアプリケーションが暗号処理を行うための命令方法が、統一化されていないと、当該命令を解釈する機能が余分に必要となり、暗号処理部の構造を複雑にしてしまうという課題がある。【解決手段】  複数の端末およびＩＣカード内の複数のアプリケーションから共通的に利用できる暗号演算方法およびその方法が適用されるＩＣカード暗号処理システムを提供する。【選択図】  図１
2006164093.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードとコマンドの送受信を行う端末と、コマンドを受信し処理を行うＩＣカードと、から構成されるＩＣカード暗号処理システムであって、
前記端末は、前記ＩＣカードへのコマンドの送受信を行うＩＣカードアクセス部を備え、
前記ＩＣカードは、
コマンドを送受信する１つ以上のデータ送受信部と、
コマンドに従い処理を実行する１つ以上のアプリケーションと、コマンドに従い、暗号処理を行う暗号演算部と、
暗号処理で用いる鍵を保管する１つ以上の鍵保管部と、を備える
ことを、特徴とするＩＣカード暗号処理システム。
【請求項２】
請求項１記載のＩＣカード暗号処理システムであって、
前記ＩＣカードは、さらに、暗号処理で用いる証明書を保管する１つ以上の証明書保管部を備える
ことを、特徴とするＩＣカード暗号処理システム。
【請求項３】
請求項１または２記載のＩＣカード暗号処理システムであって、
前記暗号演算部は、前記端末からのコマンドを受信した前記データ送受信部から暗号処理命令を受けた場合には、当該命令に従い暗号処理を行い、また、前記アプリケーションからの命令を受けた場合には、当該命令に従い暗号処理を行う
ことを、特徴とするＩＣカード暗号処理システム。
【請求項４】
請求項１から３記載のＩＣカード暗号処理システムであって、
前記端末から入力された本人認証情報と、前記ＩＣカードの内部にあらかじめ設定された本人認証情報とが一致するかを検証し、一致した場合に、前記暗号演算部が、前記鍵保管部に保管されている鍵を使用することができる
ことを、特徴とするＩＣカード暗号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカード等の暗号演算方法に関し、さらに詳しくは、複数の端末と複数のカードアプリケーションから共通的に利用できるＩＣカード暗号演算システムおよびその方法に関する。
【背景技術】
【０００２】
複数のアプリケーションを搭載できるマルチアプリケーション対応ＩＣカードがある。ＩＣカード内のアプリケーションが暗号処理を行いたい場合、そこで使われる鍵はそれぞれ個別のアプリケーション領域に保管される。公開鍵暗号技術では鍵のほかに電子証明書なども保管する必要があるため、アプリケーションが個々に該データを保管する方法では、ＩＣカードのメモリ領域を圧迫し、また、個々のアプリケーションの構造を複雑化してしまう。
【０００３】
個々のＩＣカードアプリケーションから共通的に利用する本人認証を行う技術が知られている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００２−２９８０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
複数のアプリケーションを搭載可能なマルチアプリケーション対応ＩＣカードにおいて、ＩＣカード内のアプリケーションが暗号処理を行いたい場合、そこで使われる鍵はそれぞれ個別のアプリケーション領域に保管されるのが一般的である。しかし、公開鍵暗号技術では鍵のほかに電子証明書なども保管する必要があるため、アプリケーションが個々に該データを保管する方法では、ＩＣカードのメモリ領域を圧迫し、また、個々のアプリケーションの構造を複雑化してしまうという課題がある。
【０００６】
また、端末が、ＩＣカードに対して暗号処理を依頼するための命令体系と、ＩＣカード内のアプリケーションが暗号処理を行うための命令体系が、統一化されていないと、当該命令を解釈する機能が余分に必要となり、暗号処理部の構造を複雑にしてしまうという課題がある。
【課題を解決するための手段】
【０００７】
本発明は、上記事情に鑑みてなされたものであり、複数の端末およびＩＣカード内の複数のアプリケーションから共通的に利用できる暗号演算方法およびその方法が適用されるＩＣカード暗号処理システムを提供する。
【０００８】
具体的には，ＩＣカード内の暗号演算部は、端末からのコマンドを受信したデータ送受信部から暗号処理命令を受けた場合には、当該命令に従い暗号処理を行い、また、ＩＣカード内のアプリケーションからの命令を受けた場合には、当該命令に従い暗号処理を行う。さらに当該処理を行う際には、端末から入力された本人認証情報と、ＩＣカードの内部にあらかじめ設定された本人認証情報とが一致するかを検証し、一致した場合に処理を実行する。
【０００９】
本発明は、より具体的には、ＩＣカードとコマンドの送受信を行う端末と、コマンドを受信し処理を行うＩＣカードと、から構成されるＩＣカード暗号処理システムであって、上記端末は、上記ＩＣカードへのコマンドの送受信を行うＩＣカードアクセス部、を備え、上記ＩＣカードは、コマンドを送受信する１つ以上のデータ送受信部と、コマンドに従い処理を実行する１つ以上のアプリケーションと、コマンドに従い、暗号処理を行う暗号演算部と、暗号処理で用いる鍵を保管する１つ以上の鍵保管部と、を備えることを特徴とする。
【００１０】
さらに、上記ＩＣカードは、さらに、暗号処理で用いる証明書を保管する１つ以上の証明書保管部、を備えるものであってよい。
【００１１】
さらに、上記暗号演算部は、上記端末からのコマンドを受信した上記データ送受信部から暗号処理命令を受けた場合には、当該命令に従い暗号処理を行い、また、上記アプリケーションからの命令を受けた場合には、当該命令に従い暗号処理を行うものであってよい。
【００１２】
さらに、上記端末から入力された本人認証情報と、上記ＩＣカードの内部にあらかじめ設定された本人認証情報とが一致するかを検証し、一致した場合に、上記暗号演算部が、上記鍵保管部に保管されている鍵を使用することができるものであってよい。
【００１３】
上記態様によれば、ＩＣカード内の複数のアプリケーションが、暗号演算機能および当該機能で使用する鍵データを、個別に実装する必要がなく、ＩＣカードのメモリ領域の使用量を削減し、個々のＩＣカードアプリケーションの構造の複雑化を回避することができる。
【００１４】
また、端末が、ＩＣカードに対して暗号処理を依頼するための命令体系と、ＩＣカード内のアプリケーションが暗号処理を行うための命令体系を、統一化しているので、当該命令を解釈する機能を共通化でき、暗号処理部の構造の複雑化を回避することができる。
【００１５】
さらに、端末アプリケーションの作成者とＩＣカードアプリケーション作成者の負荷を軽減することができる。
【発明の効果】
【００１６】
本発明によれば、ＩＣカードのメモリ領域の使用量を削減し、個々のＩＣカードアプリケーションの構造を簡単にすることができる。また、ＩＣカードの暗号処理部の構造を簡単にすることができる。さらに、端末アプリケーションの作成者とＩＣカードアプリケーション作成者の負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１７】
本発明の一実施形態について説明する。なお、これにより本発明が限定されるものではない。
【００１８】
図１は、本発明の一実施形態が適用されたＩＣカード暗号処理システムの構成図である。
【００１９】
本実施形態のＩＣカード暗号処理システムは、図１に示すように、複数の端末装置２０１〜２０ｎ（以下、単に端末装置２０とも称する）と、ＩＣカード１０が、互いに接続されて構成されている。
【００２０】
端末２０は、前記ＩＣカード１０に対してコマンドを送信し、処理結果を受信する。端末２０は、前記ＩＣカード１０とコマンドを送受信するＩＣカードアクセス部２０１を含む。
【００２１】
ＩＣカード１０は、前記端末２０より、コマンドを受信し、受信したコマンドの内容により処理を行い、処理結果を返信する。ＩＣカード１０は、コマンドを送受信するデータ送受信部１０１１〜１０１n（以下、単にデータ送受信部１０１とも称する）と、コマンドに従い処理を実行する複数のアプリケーション１０３１〜１０３ｎ（以下、単にアプリケーション１０３とも称する）と、命令に従い暗号演算処理を実行する暗号演算部１０２と、前記暗号演算処理を実行するときに利用する鍵を保管する複数の鍵保管部１０４１〜１０４ｎ（以下、単に鍵保管部１０４とも称する）と、電子証明書を保管する複数の証明書保管部１０５１〜１０５ｎ（以下、単に証明書保管部１０５とも称する）と、
を含む。
【００２２】
図２は端末２０のハードウェア構成図である。端末２０は、通信装置２１と、入出力装置２２と、ＩＣカード入出力装置２３と、記憶装置２４と、ＣＰＵ２５とメモリ２６と、読取装置２７とがバスなどの内部通信線２９で連結され、記憶媒体２８を含めて構成されている。また、端末２０はＩＣカード入出力装置２３を経由して、ＩＣカード１０とつながる。
【００２３】
図３はＩＣカード１０のハードウェア構成図である。ＩＣカード１０は、入出力部１１と、ＣＰＵ１２と、耐タンパ記憶装置１３と、耐タンパメモリ１４と、がバスなどの内部通信線１５で連結されて構成されている。
【００２４】
本実施形態の証明書管理システムにおける処理フローについて説明する。以下に述べる処理フローは、各装置の記憶装置に格納されたプログラムがメモリにロードされ、ＣＰＵにより実行されることにより、ＩＣカード暗号処理システムを構成する各装置、ＩＣカード上に具現化される各処理部により実行されるものである。また、各プログラムは予め記憶装置に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する搬送波）を介して、必要なときに導入されても良い。
【００２５】
図４は、端末２０がＩＣカード１０の暗号演算部に対してコマンドを発行し暗号演算を行うフロー図である。
【００２６】
まず、端末２０よりパスワード（Ａ４０１）を入力する（ステップＳ４００）。端末２０は前記パスワード（Ａ４０１）を暗号演算部１０２に送信する。暗号演算部１０２は、事前に設定されているパスワードと、端末２０より送信されたパスワードを比較し、一致しているか否かを検証する（ステップＳ４０１）。暗号演算部１０２は、前記ステップＳ４０１の検証結果（Ａ４０２）を、端末２０に送信する。検証結果（Ａ４０２）が失敗をあらわす場合、再度パスワードを入力するか、あるいは処理を中断する。
【００２７】
検証結果（Ａ４０２）が成功をあらわす場合、端末２０は、暗号処理を示すコマンド（Ａ４０３）を生成し（ステップＳ４０２）、暗号演算部１０２へ送信する。暗号演算部１０２は、鍵保管部１０４に対して、暗号演算処理で必要な鍵を要求する（ステップＳ４０３）。鍵保管部１０４は鍵（Ａ４０４）を暗号演算部１０２に送信する（ステップＳ４０４）。次に、暗号演算部１０２は、証明書保管部１０５に対して、暗号演算処理で必要な証明書を要求する（ステップＳ４０５）。証明書保管部１０５は証明書（Ａ４０５）を暗号演算部１０２に送信する（ステップＳ４０５）。暗号演算部は、鍵保管部１０４および証明書保管部１０５から取得した鍵（Ａ４０４）および証明書（Ａ４０５）を用いて、暗号演算処理を行う（ステップＳ４０７）。最後に暗号演算の結果（Ａ４０６）を、端末２０に送信する。
【００２８】
図５は、ＩＣカード１０の中のアプリケーションが暗号演算部に対してコマンドを発行し暗号演算を行うフロー図である。
【００２９】
まず、端末２０よりパスワード（Ａ４０１）を入力する（ステップＳ４００）。端末２０は前記パスワード（Ａ４０１）を暗号演算部１０２に送信する。暗号演算部１０２は、事前に設定されているパスワードと、端末２０より送信されたパスワードを比較し、一致しているか否かを検証する（ステップＳ４０１）。暗号演算部１０２は、前記ステップＳ４０１の検証結果（Ａ４０２）を、端末２０に送信する。検証結果（Ａ４０２）が失敗をあらわす場合、再度パスワードを入力するか、あるいは処理を中断する。
【００３０】
検証結果（Ａ４０２）が成功をあらわす場合、端末２０は、アプリケーション１０３に対してコマンド（Ａ４１０）を生成し（ステップＳ４１０）、アプリケーション１０３へ送信する。アプリケーション１０３は、コマンドに従い処理を実行し、暗号処理が必要な場合、暗号演算部１０２に対して暗号処理命令（Ａ４１１）を送信する（ステップＳ４１１）。暗号処理命令を受信した暗号演算部１０２は、鍵保管部１０４に対して、暗号演算処理で必要な鍵を要求する（ステップＳ４０３）。鍵保管部１０４は鍵（Ａ４０４）を暗号演算部１０２に送信する（ステップＳ４０４）。次に、暗号演算部１０２は、証明書保管部１０５に対して、暗号演算処理で必要な証明書を要求する（ステップＳ４０５）。証明書保管部１０５は証明書（Ａ４０５）を暗号演算部１０２に送信する（ステップＳ４０５）。暗号演算部は、鍵保管部１０４および証明書保管部１０５から取得した鍵（Ａ４０４）および証明書（Ａ４０５）を用いて、暗号演算処理を行う（ステップＳ４０７）。暗号演算部は、アプリケーション１０３に対して暗号演算の結果（Ａ４０６）を、送信する。アプリケーションは、コマンド（Ａ４１０）の実行結果（Ａ４０７）を、端末２０に送信する。
【００３１】
なお、本発明は、上記の本実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
【００３２】
たとえば、暗号演算部１０２においてパスワードの検証（ステップＳ４０１）は、一度検証に成功した場合は、ＩＣカードがリセットされるまでは有効とし省略しても良い。またパスワード（Ａ４０１）そのものでなくて、パスワードのハッシュ値（一方向性関数による変換値）でも良い。また指紋等の生体情報や、その他の本人認証情報を用いても良い。
【００３３】
また、暗号演算の種類によって、鍵（Ａ４０４）だけ必要な場合や、証明書だけが必要な場合もありえるので、その場合は、暗号演算部１０２の鍵要求処理（ステップＳ４０３）や、証明書要求処理（ステップＳ４０５）は、省略しても良い。
【００３４】
また、鍵保管部１０４の鍵送信処理（Ｓ４０４）と、証明書保管部１０５の証明書送信処理（Ｓ４０６）は、それぞれ鍵（Ａ４０４）と、証明書（Ａ４０５）の実体を送信しているが、実体が存在する場所を示すポインタを返すようにしても良い。
【００３５】
上述のように、本実施例では、アプリケーション１０３が、暗号処理を行う必要がある場合でも、個々のアプリケーションに暗号演算処理を実装する必要がなく、暗号演算部に処理を委譲することができる。さらに暗号演算部１０２は、アプリケーション１０３からの暗号演算要求であっても、端末２０からの暗号演算要求であっても、同様の処理を行えば良く、呼び出し元の違いによる暗号演算部１０２の複雑化を避けることができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態が適用されたＩＣカード暗号処理システムの構成を説明するための図である。
【図２】図１に示す端末のハードウェア構成を示す図である。
【図３】図１に示すＩＣカードのハードウェア構成を示す図である。
【図４】本発明の一実施形態が適用されたＩＣカード暗号処理システムの第一のコマンド送信を説明するフロー図である。
【図５】本発明の一実施形態が適用されたＩＣカード暗号処理システムの第二のコマンド送信を説明するフロー図である。
【符号の説明】
【００３７】
１０・・・ＩＣカード、１１・・・入出力装置、１２・・・ＣＰＵ、１３・・・耐タンパ記憶装置、１４・・・耐タンパメモリ、１５・・・内部通信線、２０・・・端末、２１・・・通信装置、２２・・・入出力装置、２３・・・ＩＣカード入出力装置、２４・・・記憶装置、２５・・・ＣＰＵ、２６・・・メモリ、２７・・・読取装置、２８・・・記憶媒体、２９・・・内部通信線、１０１１〜１０１ｎ・・・データ送受信部、１０２・・・暗号演算部、１０３１〜１０３ｎ・・・アプリケーション、１０４１〜１０４ｎ・・・鍵保管部、１０５１〜１０５ｎ・・・証明書保管部、２０１・・・ＩＣカードアクセス部、Ａ４０１・・・パスワード、Ａ１０２・・・検証結果、Ａ４０３・・・暗号処理コマンド、Ａ４０４・・・鍵、Ａ４０５・・・証明書、Ａ４０６・・・結果、Ａ４０７・・・結果、Ａ４１０・・・コマンド、Ａ４１１・・・暗号処理命令。
【図１】
2006164093.tif 000003
【図２】
2006164093.tif 000004
【図３】
2006164093.tif 000005
【図４】
2006164093.tif 000006
【図５】
2006164093.tif 000007