(57)【要約】【課題】  より速く処理を実行することができるＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムを提供する。【解決手段】  一実施形態に係るＩＣカードは、外部機器から入力されるコマンドに応じて処理を行うＩＣカードであって、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第１の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第２の演算手段と、前記第２の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、を具備する。【選択図】      図２
2013118473.tif 000002
【特許請求の範囲】
【請求項１】
外部機器から入力されるコマンドに応じて処理を行うＩＣカードであって、
前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、
前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第１の演算手段と、
前記秘密情報に基づいて秘密鍵を算出する第２の演算手段と、
前記第２の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、
を具備するＩＣカード。
【請求項２】
前記ＩＣカードの動作を制御する制御手段をさらに具備し、
前記受信手段は、前記外部機器から送信された初期設定コマンドを受信し、
前記制御手段は、前記初期設定コマンドに付加されている特定情報に応じて、前記秘密鍵を前記鍵記憶手段から読み出すか、前記第１の演算手段及び前記第２の演算手段により前記秘密鍵を算出するか、を選択する、
請求項１に記載のＩＣカード。
【請求項３】
識別情報を記憶する識別情報記憶手段をさらに具備し、
前記制御手段は、前記特定情報と、前記識別情報とを比較し、一致した場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、
請求項２に記載のＩＣカード。
【請求項４】
前記外部機器との間で相互認証を行う相互認証手段をさらに具備し、
前記受信手段は、前記外部機器から送信された相互認証コマンドを受信し、
前記相互認証手段は、前記鍵記憶手段から読み出された前記秘密鍵を用いて前記相互認証を行なう、
請求項３に記載のＩＣカード。
【請求項５】
前記初期設定コマンドに付加されている特定情報を前記鍵記憶手段により記憶されている前記秘密鍵により復号する復号手段をさらに具備し、
前記制御手段は、復号された前記特定情報と、前記識別情報とを比較し、一致した場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、
請求項２に記載のＩＣカード。
【請求項６】
識別情報を記憶する識別情報記憶手段と、
前記秘密鍵が有効な期限を示す期限情報を記憶する期限情報記憶手段と、
をさらに具備し、
前記制御手段は、前記初期設定コマンドに付加されている特定情報と前記識別情報とが一致し、且つ、前記初期設定コマンドに付加されている日付情報が前記期限情報を満たす場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、
請求項２に記載のＩＣカード。
【請求項７】
前記各部を備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備する請求項１に記載のＩＣカード。
【請求項８】
外部機器から入力されるコマンドに応じて処理を行う携帯可能電子装置であって、
前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、
前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第１の演算手段と、
前記秘密情報に基づいて秘密鍵を算出する第２の演算手段と、
前記第２の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、
を具備する携帯可能電子装置。
【請求項９】
外部機器から入力されるコマンドに応じて処理を行うＩＣカードにおいて実行される制御プログラムであって、前記ＩＣカードを、
前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、
前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第１の演算手段と、
前記秘密情報に基づいて秘密鍵を算出する第２の演算手段と、
前記第２の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、
して動作させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムに関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵと、ＣＰＵの処理に利用されるＲＡＭメモリなどを有している。
【０００３】
ＩＣカードは、例えば、国際標準規格ＩＳＯ／ＩＥＣ７８１６に準拠したＩＣカードである。ＩＣカードは、ＩＣチップのメモリに種々のアプリケーションを格納することができる。ＩＣカードは、ＩＣカードを処理する端末（リーダライタ）から送信されたコマンドに応じてアプリケーションを実行することにより、種々の処理を実行することができる。
【０００４】
また、ＩＣカードは、保持している情報の安全性を高める為に、暗号鍵を用いてデータを暗号化し、暗号化したデータをリーダライタと送受信することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−４５７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＣカード及びリーダライタは、通信が確立した後に、コマンド及びレスポンスを互いに交換し、鍵共有方式により種々の処理に用いることができる暗号鍵（秘密鍵）を生成する。ＩＣカード及びリーダライタは、秘密鍵を用いて送受信するデータの暗号化及び復号を行う。これにより、ＩＣカード及びリーダライタは、互いに暗号化された通信を行なうことができる。
【０００７】
しかし、ＩＣカード及びリーダライタは、鍵共有方式による鍵共有処理で、複雑な暗号アルゴリズムを用いた認証処理を行う場合がある。これらの認証処理の中には、非常に時間を要する処理がある。例えば、ＩＣカード及びリーダライタは、通信（セッション）が切れた場合、この認証処理を再度実行する必要がある。この為、処理に時間を要する可能性があるという課題がある。
【０００８】
そこで、より速く処理を実行することができるＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一実施形態に係るＩＣカードは、外部機器から入力されるコマンドに応じて処理を行うＩＣカードであって、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第１の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第２の演算手段と、前記第２の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、を具備する。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【図２】図２は、一実施形態に係るＩＣカードの例について説明するための図である。
【図３】図３は、一実施形態に係るＩＣカードの処理の例について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、一実施形態に係るＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムについて詳細に説明する。
【００１２】
本実施形態に係る端末装置１０のカードリーダライタ１７及びＩＣカード２０は、例えば、ＥＴＳＩ  ＴＳ  １０２  ６１３により規定されているＳｉｎｇｌｅ  Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ（ＳＷＰ）、二重伝送通信などの接触通信の機能、及びＩＳＯ／ＩＥＣ１４４４３などにより規定されている非接触通信の機能の両方またはいずれかの機能を備える。これにより、カードリーダライタ１７及びＩＣカード２０は、互いにデータの送受信を行うことができる。
【００１３】
図１は、一実施形態に係るＩＣカード処理システム１の構成例について示す。  
ＩＣカード処理システム１は、携帯可能電子装置（ＩＣカード）２０を処理する端末装置１０と、ＩＣカード２０と、を備える。端末装置１０とＩＣカード２０とは、上記したように接触通信、または非接触通信により互いに種々のデータを送受信する。
【００１４】
端末装置１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、不揮発性メモリ１４、操作部１５、表示部１６、及びカードリーダライタ１７を備える。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、操作部１５、表示部１６、及びカードリーダライタ１７は、それぞれバス１９を介して互いに接続されている。
【００１５】
ＣＰＵ１１は、端末装置１０全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１３に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１７を介してＩＣカード２０とコマンド及びレスポンスの送受信を行う。
【００１６】
ＲＡＭ１２は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１２は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１２は、カードリーダライタ１７を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１２は、ＣＰＵ１１が実行するプログラムを一時的に格納する。ＲＯＭ１３は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。
【００１７】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭ、ＦＲＡＭなどを備える。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【００１８】
操作部１５は、例えば操作キーなどを備える。操作部１５は、端末装置１０の操作者により入力される操作に基づいて、操作信号を生成する。操作部１５は、生成した操作信号をＣＰＵ１１に入力する。
【００１９】
表示部１６は、ＣＰＵ１１、またはＣＰＵ１１により制御されるグラフィック処理部から入力される表示信号に基づいて、種々の情報を表示する。なお、端末装置１０は、操作部１５と表示部１６とが一体に形成されるタッチパネルを備える構成であってもよい。
【００２０】
カードリーダライタ１７は、ＩＣカード２０と通信を行うためのインターフェース装置である。カードリーダライタ１７は、ＩＣカード２０が装着されるスロット１８を備える。カードリーダライタ１７は、接触通信、または非接触通信によりスロット１８に装着されたＩＣカード２０とデータの送受信を行う。
【００２１】
接触通信のインターフェースとして用いられる場合、カードリーダライタ１７は、ＩＣカード２０が備えるコンタクトパターンと接続される複数の接触端子を備える。スロット１８にＩＣカード２０が装着される場合、カードリーダライタ１７の複数の接触端子は、ＩＣカード２０のコンタクトパターンに接続される。これにより、端末装置１０とＩＣカード２０とは電気的に接続される。カードリーダライタ１７は、スロットに装着されたＩＣカード２０に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【００２２】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ１７は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【００２３】
カードリーダライタ１７は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ１７は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置１０は、スロットに装着されたＩＣカード２０に対してデータを非接触で送信することができる。
【００２４】
さらに、カードリーダライタ１７のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ１７は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置１０は、スロットに装着されたＩＣカード２０から送信された元のデータを取得することができる。
【００２５】
ＣＰＵ１１は、カードリーダライタ１７によりＩＣカード２０に対して種々のコマンドを入力する。ＩＣカード２０は、例えば、カードリーダライタ１７からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【００２６】
また、ＣＰＵ１１は、ＩＣカード２０に読み取りコマンドを送信することにより、ＩＣカード２０からデータを読み出す。ＣＰＵ１１は、ＩＣカード２０から受信したデータに基づいて種々の処理を行う。
【００２７】
図２は、図１に示すＩＣカード２０の構成例を示す。  
図２に示すように、ＩＣカード２０は、矩形状の本体と、本体内に内蔵されるＩＣモジュール２１を備えている。ＩＣモジュール２１は、ＩＣチップ２２を備える。
【００２８】
ＩＣチップ２２は、通信インターフェース２３、ＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、不揮発性メモリ２７、電源部２８、及びコプロセッサ２９を備える。
【００２９】
通信インターフェース２３は、ＩＣカード２０に接続される外部機器（例えば端末装置１０）との間で送受信するデータに対して符号化、復号、変調、及び復調などを行う。
【００３０】
ＩＣカード２０が端末装置１０との間で接触通信によりデータの送受信を行う構成である場合、通信インターフェース２３は、コンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりＩＣモジュール２１の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置１０と接触可能な状態で形成されている。コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれコンタクトパターンの端子として機能する。通信インターフェース２３は、コンタクトパターンを介してカードリーダライタ１７とデータの送受信を行うことができる。
【００３１】
また、非接触通信のインターフェースとして用いられる場合、通信インターフェース２３は、信号処理部とアンテナとを備える。
【００３２】
信号処理部は、端末装置１０に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置１０に送信するデータの変調（増幅）を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【００３３】
アンテナは、例えば、ＩＣモジュール２１が内蔵される本体に所定の形状で配設される金属線により構成される。ＩＣカード２０は、端末装置１０に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ＩＣカード２０は、端末装置１０に対してデータを送信することができる。また、ＩＣカード２０は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置１０から送信されるデータを認識する。
【００３４】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信インターフェース２３は、２値の論理データを取得する。通信インターフェース２３は、解析したデータをバスを介してＣＰＵ２４に送信する。
【００３５】
また、通信インターフェース２３は、受信レジスタ及び送信レジスタを備える。受信レジスタ及び送信レジスタは、一般的なレジスタであり、ＩＣカード２０が送受信するデータを一時的に格納する。即ち、受信レジスタは、通信インターフェース２３を介して端末装置１０から受信するデータを一時的に格納する。また、送信レジスタは、通信インターフェース２３を介して端末装置１０に送信するデータを一時的に格納する。
【００３６】
ＣＰＵ２４は、種々の演算を行う演算素子である。ＣＰＵ２４は、ＲＯＭ２５あるいは不揮発性メモリ２７に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。これにより、ＣＰＵ２４は、ＩＣカード２０の全体の制御を司ることができる。例えば、ＣＰＵ２４は、端末装置１０のカードリーダライタ１７から受信したコマンドに応じて種々の処理を行い、処理結果に基づいて、レスポンスの生成を行なう。
【００３７】
ＲＯＭ２５は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２５は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２０内に組み込まれる。即ち、ＲＯＭ２５に記憶される制御プログラム及び制御データは、予めＩＣカード２０の仕様に応じて組み込まれる。
【００３８】
ＲＡＭ２６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２６は、ＣＰＵ２４の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２６は、ＣＰＵ２４が実行するプログラムを一時的に格納する。
【００３９】
不揮発性メモリ２７は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２７は、ＩＣカード２０の運用用途に応じて制御プログラム及び種々のデータを格納する。
【００４０】
たとえば、不揮発性メモリ２７では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。ＣＰＵ２４は、不揮発性メモリ２７、または、ＲＯＭ２５に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００４１】
電源部２８は、通信インターフェース２３を介してカードリーダライタ１７から電力を受給し、受給した電力をＩＣカード２０の各部に供給する。ＩＣカード２０が接触通信を行う構成を備える場合、電源部２８は、通信インターフェース２３のコンタクトパターンを介してカードリーダライタ１７から供給される電力をＩＣカード２０の各部に供給する。
【００４２】
また、ＩＣカード２０が非接触通信を行う構成を備える場合、カードリーダライタ１７のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部２８は、動作クロックを生成する。電源部２８は、発生させた電力及び動作クロックをＩＣカード２０の各部に電力を供給する。ＩＣカード２０の各部は、電力の供給を受けた場合、動作可能な状態になる。
【００４３】
コプロセッサ２９は、演算素子及びレジスタなどを有する演算処理部である。コプロセッサ２９は、演算処理をハードウエアにより行う。例えば、コプロセッサ２９は、端末装置１０からのコマンドに基づいて、暗号化、復号、ハッシュ計算、及び乱数の生成などの処理を行う。例えば、端末装置１０から相互認証コマンドを受信する場合、コプロセッサ２９は、相互認証処理に係る演算処理を実行する。ＣＰＵ２４は、コプロセッサ２９にデータを入力し、コプロセッサ２９に演算処理を実行させ、処理結果をコプロセッサ２９から受け取る。
【００４４】
コプロセッサ２９は、例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、またはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の規格に基づいて暗号処理を行う。コプロセッサ２９は、例えば不揮発性メモリ２７、またはＲＯＭ２５に格納された暗号鍵を用いて暗号化、及び復号などの暗号処理を行う。
【００４５】
ＩＣカード２０は、一次発行と二次発行とにより発行される。ＩＣカード２０を発行する発行装置は、一次発行において、ＩＣカード２０にコマンド（初期化コマンド）を送信することにより、ＩＣカード２０の不揮発性メモリ２７の初期化を行う。これにより、端末装置１０は、ＩＣカード２０の不揮発性メモリ２７内にＩＣカード２０の使用目的、及び使用用途などに応じた鍵ファイルやデータファイル等を定義する。
【００４６】
発行装置は、例えば、ＩＳＯ／ＩＥＣ７８１６により規定されているファイル構造を不揮発性メモリ２７内に創成する。上記の初期化が行われた不揮発性メモリ２７は、Ｍａｓｔｅｒ  Ｆｉｌｅ（ＭＦ）、Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ（ＤＦ）、及びＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＥＦ）などを有する。
【００４７】
ＭＦは、ファイル構造の根幹となるファイルである。ＤＦは、ＭＦの下位に創成される。ＤＦは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。ＥＦは、ＤＦの下位に創成される。ＥＦは、様々なデータを格納するためのファイルである。また、ＭＦの直下にＥＦが置かれる場合もある。
【００４８】
ＥＦには、Ｗｏｒｋｉｎｇ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＷＥＦ）とＩｎｔｅｒｎａｌ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＩＥＦ）などの種類がある。ＷＥＦは、作業用ＥＦであり、個人情報などを格納する。ＩＥＦは、内部ＥＦであり、例えば、セキュリティのための暗号鍵などのデータを記憶する。
【００４９】
二次発行では、ＥＦに例えば顧客データなどの個別データが格納される。これにより、ＩＣカード２０が運用可能な状態になる。即ち、ＣＰＵ２４は、不揮発性メモリ２７、または、ＲＯＭ２５に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００５０】
ＩＣカード２０と端末装置１０とは、通信（セッション）が確立した後に、鍵共有方式により種々の処理に用いることができる暗号鍵（秘密鍵）を生成し、共有する。ＩＣカード２０及び端末装置１０は、例えば、ディフィー・ヘルマン鍵共有（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ  ｋｅｙ  ｅｘｃｈａｎｇｅ：ＤＨ方式）により秘密鍵を共有する。また、例えば、ＩＣカード２０及び端末装置１０は、Ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ＤＨ方式（ＥＣＤＨ方式）により秘密鍵を共有する。
【００５１】
ＩＣカード２０及び端末装置１０は、上記したような鍵共有方式により、秘密情報を共有することができる。ＩＣカード２０及び端末装置１０は、共有した秘密情報から秘密鍵を生成する。ＩＣカード２０及び端末装置１０は、例えば、共有した秘密情報からＳＨＡ２５６などのハッシュ関数により秘密鍵を生成する。ＩＣカード２０及び端末装置１０は、生成した秘密鍵により、上記のＤＥＳ、またはＡＥＳなどによる暗号処理を行う。
【００５２】
鍵共有方式を行う場合、端末装置１０は、公開情報Ｐ（例えば素数及びドメインパラメータ）をＩＣカード２０との間で共有化する。端末装置１０は、鍵共有方式をＩＣカード２０に行わせるためのコマンドにより、素数及びドメインパラメータを指定する。これにより、端末装置１０とＩＣカード２０との間で素数及びドメインパラメータが共有化される。
【００５３】
端末装置１０は、まず乱数Ａを生成する。端末装置１０は、公開情報Ｐと、生成した乱数Ａとに基づいて演算結果ＰＡを算出する。また、ＩＣカード２０は、まず乱数Ｂを生成する。ＩＣカード２０は、上記した公開情報Ｐと、生成した乱数Ｂとに基づいて演算結果ＰＢを算出する。
【００５４】
端末装置１０は、演算結果ＰＡをＩＣカード２０に送信する。また、ＩＣカード２０は、演算結果ＰＢを端末装置１０に送信する。
【００５５】
端末装置１０は、ＩＣカード２０から送信された演算結果ＰＢと乱数Ａとに基づいて演算結果ＰＢＡを算出する。また、ＩＣカード２０は、端末装置１０から送信された演算結果ＰＡと乱数Ｂとに基づいて演算結果ＰＡＢを算出する。
【００５６】
この演算結果ＰＢＡと演算結果ＰＡＢとは等しい。即ち、ＩＣカード２０及び端末装置１０は、上記の演算を行うことにより、秘密情報Ｊ＝ＰＢＡ＝ＰＡＢを共有することができる。
【００５７】
この方法によると、通信路により演算結果ＰＡ及び演算結果ＰＢが伝送される。この演算結果ＰＡ及び演算結果ＰＢからは、乱数Ａ及び乱数Ｂを特定することができない。この為、最終的に秘密鍵の算出に用いられる秘密情報Ｊを類推することができない。この結果、ＩＣカード２０及び端末装置１０は、安全に秘密情報Ｊを共有することができる。
【００５８】
ＩＣカード２０及び端末装置１０は、秘密情報Ｊに基づいてハッシュ関数の演算により秘密鍵Ｋを生成する。Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ（ＳＨＡ）は、一群の関連したハッシュ関数であり、ビット長によりＳＨＡ２２４、ＳＨＡ２５６、ＳＨＡ３８４、ＳＨＡ５１２などの種類が存在する。ＩＣカード２０及び端末装置１０は、これらのうちのいずれか、または他のハッシュ関数に基づいて、秘密情報Ｊから暗号処理に用いることができる秘密鍵Ｋを生成することができる。
【００５９】
端末装置１０は、生成した秘密鍵Ｋを格納する。端末装置１０は、例えば、不揮発性メモリ１４に生成した秘密鍵Ｋを格納する。また、端末装置１０は、秘密鍵Ｋを共有したＩＣカード２０を識別する為の識別情報（例えばＰＵＰＩ）を秘密鍵Ｋと対応付けて格納する。また、ＩＣカード２０は、生成した秘密鍵Ｋを格納する。例えば、ＩＣカード２０は、不揮発性メモリ２７に生成した秘密鍵Ｋを格納する。また、端末装置１０及びＩＣカード２０は、秘密情報Ｊを格納する構成であってもよい。
【００６０】
図３は、ＩＣカード２０の処理の例を示す。  
まず、ＩＣカード２０が端末装置１０のカードリーダライタ１７のスロット１８に装着される場合、端末装置１０は、カードリーダライタを介してＩＣカード２０に電力を供給する。これにより、ＩＣカード２０は、動作可能な起動状態になる。
【００６１】
端末装置１０は、ＩＣカード２０に対して初期設定コマンドを送信する。この初期設定コマンドは、通信における種々の設定をＩＣカード２０と端末装置１０との間で設定するためのコマンドである。
【００６２】
端末装置１０がＩＣカード２０に送信するコマンドは、「ＣＬＡ」、「ＩＮＳ」、「Ｐ１」、「Ｐ２」、「Ｌｃ」、「Ｄａｔａ」、及び「Ｌｅ」などのフィールドを有する。
【００６３】
「ＣＬＡ」は、コマンドの層別を示すｃｌａｓｓ  ｂｙｔｅである。「ＩＮＳ」は、コマンドの種別を示すｉｎｓｔｒｕｃｔｉｏｎ  ｂｙｔｅである。「Ｐ１」及び「Ｐ２」は、「ＩＮＳ」に応じたパラメータを示すｐａｒａｍｅｔｅｒ  ｂｙｔｅである。
【００６４】
「Ｌｃ」は、「Ｄａｔａ」のデータの長さ（バイト数）を示すｌｅｎｇｔｈ  ｆｉｅｌｄ  ｆｏｒ  ｃｏｒｄｉｎｇ  ｎｕｍｂｅｒ  Ｎｃである。「Ｄａｔａ」は、当該コマンドのデータ本体を示すｃｏｍｍａｎｄ  ｄａｔａ  ｆｉｅｌｄである。「Ｌｅ」は、当該コマンドに対するレスポンスのデータ長を示すｌｅｎｇｔｈ  ｆｉｅｌｄ  ｆｏｒ  ｃｏｒｄｉｎｇ  ｎｕｍｂｅｒ  Ｎｅである。
【００６５】
即ち、「ＣＬＡ」及び「ＩＮＳ」により、当該コマンドの種類が示される。ＩＣカード２０は、受信したコマンドの「ＣＬＡ」及び「ＩＮＳ」の値を解析することにより、受信したコマンドの種類を認識する。
【００６６】
端末装置１０は、「ＣＬＡ」、「ＩＮＳ」、「Ｐ１」、「Ｐ２」、「Ｌｃ」、「Ｄａｔａ」、及び「Ｌｅ」の値を設定することにより、ＩＣカード２０に上記の初期設定を行なわせる為の初期設定コマンドを生成する。
【００６７】
また、端末装置１０は、不揮発性メモリ１４に格納されている秘密鍵Ｋに対応付けられているＩＣカードの識別情報を初期設定コマンドに付加する。
【００６８】
ＩＣカード２０は、端末装置１０から送信された初期設定コマンドを受信する（ステップＳ３１）。ＩＣカード２０は、受信した初期設定コマンドを解析する（ステップＳ３２）。これにより、ＩＣカード２０は、端末装置１０から指定された設定の内容を認識する。
【００６９】
ＩＣカード２０は、初期設定コマンドに応じて通信に関する種々の設定を行ない、処理結果に応じたレスポンスを端末装置１０に送信する。これにより、ＩＣカード２０は、端末装置１０との間で通信（セッション）を確立する（ステップＳ３３）。なお、ＩＣカード２０は、自身のＰＵＰＩをレスポンスに付加し、端末装置１０に送信する。
【００７０】
また、ＩＣカード２０は、初期設定コマンドを解析することにより、端末装置１０に秘密鍵Ｋが登録されているＩＣカードの識別情報を認識する。即ち、ＩＣカード２０は、この識別情報を認識することにより、端末装置１０に秘密鍵Ｋが登録されているＩＣカードを特定することができる。ＩＣカード２０は、特定情報が初期設定コマンドに含まれているか否か判断する（ステップＳ３４）。即ち、ＩＣカード２０は、自身の識別情報（ＰＵＰＩ）と一致する識別情報が初期設定コマンドに含まれているか否か判断する。
【００７１】
端末装置１０は、ＩＣカード２０からレスポンスを受信した場合、受信したレスポンス中のＰＵＰＩを認識する。端末装置１０は、受信したＰＵＰＩと対応付けられた秘密鍵Ｋが不揮発性メモリ１４に記憶されているか否か判断する。受信したＰＵＰＩと対応付けられた秘密鍵Ｋが不揮発性メモリ１４に記憶されている場合、端末装置１０は、ＩＣカード２０と共有化された秘密鍵Ｋが不揮発性メモリ１４に記憶されていることを認識する。
【００７２】
ＩＣカード２０と共有化された秘密鍵Ｋが不揮発性メモリ１４に記憶されていない場合、端末装置１０及びＩＣカード２０は、鍵共有方式により秘密鍵Ｋを共有化する。この場合、端末装置１０は、鍵共有方式をＩＣカード２０に行わせるためのコマンド（鍵共有化コマンド）を生成し、ＩＣカード２０に送信する。なお、端末装置１０は、公開情報Ｐを鍵共有化コマンドに付加する。
【００７３】
ＩＣカード２０は、端末装置１０から送信された鍵共有化コマンドを受信する。ＩＣカード２０は、受信した鍵共有化コマンドを解析する。これにより、ＩＣカード２０は、端末装置１０から指定された公開情報Ｐを認識する。この結果、ＩＣカード２０は、端末装置１０との間で公開情報Ｐを共有化する（ステップＳ３５）。即ち、ＩＣカード２０及び端末装置１０は、素数及びドメインパラメータを共有化する。
【００７４】
まず、ＩＣカード２０は、鍵共有方式の第１の処理を実行する（ステップＳ３６）。また、端末装置１０も同様に鍵共有方式の第１の処理を実行する。端末装置１０は、乱数Ａを生成する。端末装置１０は、公開情報Ｐと、生成した乱数Ａとに基づいて演算結果ＰＡを算出する。端末装置１０は、演算結果ＰＡをＩＣカード２０に送信する。
【００７５】
ＩＣカード２０は、乱数Ｂを生成する。ＩＣカード２０は、上記した公開情報Ｐと、生成した乱数Ｂとに基づいて演算結果ＰＢを算出する。また、ＩＣカード２０は、演算結果ＰＢを端末装置１０に送信する。
【００７６】
次に、ＩＣカード２０は、鍵共有方式の第２の処理を実行する（ステップＳ３７）。また、端末装置１０も同様に鍵共有方式の第２の処理を実行する。端末装置１０は、ＩＣカード２０から送信された演算結果ＰＢと乱数Ａとに基づいて演算結果ＰＢＡ（秘密情報Ｊ）を算出する。また、ＩＣカード２０は、端末装置１０から送信された演算結果ＰＡと乱数Ｂとに基づいて演算結果ＰＡＢ（秘密情報Ｊ）を算出する。これにより、ＩＣカード２０及び端末装置１０は、秘密情報Ｊを共有することができる。
【００７７】
さらに、ＩＣカード２０は、秘密鍵Ｋを生成する（ステップＳ３８）。また、端末装置１０も同様に秘密鍵Ｋを生成する。ＩＣカード２０及び端末装置１０は、秘密情報Ｊに基づいてハッシュ関数の演算により秘密鍵Ｋを生成する。即ち、ＩＣカード２０及び端末装置１０は、秘密情報Ｊをハッシュ関数の入力として演算を行い、秘密鍵Ｋを算出する。
【００７８】
ＩＣカード２０は、生成した秘密鍵Ｋを不揮発性メモリ２７に格納する（ステップＳ３９）。上記したように、ＩＣカード２０は、秘密鍵Ｋを不揮発性メモリ２７のＩＥＦに格納する。また、端末装置１０は、例えば、不揮発性メモリ１４に生成した秘密鍵Ｋを格納する。端末装置１０は、初期設定コマンドのレスポンスに付加されていたＰＵＰＩと、秘密鍵Ｋとを対応付けて、不揮発性メモリ１４に格納する。上記の処理により、秘密鍵ＫがＩＣカード２０と端末装置１０との間で共有化された。
【００７９】
さらに、ＩＣカード２０及び端末装置１０は、相互認証処理を行う。相互認証では、ＩＣカード２０及び端末装置１０は、秘密鍵Ｋを用いて乱数を使ったＧｅｔＣｈａｌｌｅｎｇｅ処理を行う。ＩＣカード２０及び端末装置１０は、相互認証が成功した場合、お互いに生成した乱数を共有し、以降のコマンドデータの秘匿のための暗号化のセッション鍵として利用する。
【００８０】
相互認証処理を行う場合、端末装置１０は、相互認証処理をＩＣカード２０に実行させる為の相互認証コマンドを生成し、ＩＣカード２０に送信する。
【００８１】
ＩＣカード２０は、端末装置１０から送信された相互認証コマンドを受信する（ステップＳ４０）。ＩＣカード２０は、受信した相互認証コマンドを解析する（ステップＳ４１）。ＩＣカード２０は、相互認証コマンドに相互認証処理を実行する（ステップＳ４２）。即ち、ＩＣカード２０は、乱数を生成し、秘密鍵Ｋと乱数とに基づいて、暗号化及び復号を行う。また、ＩＣカード２０は、端末装置１０から送信されたデータに対して、秘密鍵Ｋを用いて暗号化及び復号を行う。ＩＣカード２０及び端末装置１０は、この結果に基づいて互いを認証する。
【００８２】
また、ステップＳ３４で、特定情報が初期設定コマンドに含まれていると判断した場合、即ち、端末装置１０とＩＣカード２０とで共通した秘密鍵Ｋが端末装置１０に格納されていると判断した場合、ＩＣカード２０は、ステップＳ４０に移行する。即ち、端末装置１０及びＩＣカード２０は、不揮発性メモリ１４及び２７に格納されている秘密鍵Ｋをそれぞれ読み出し、相互認証処理に用いることが出来る。
【００８３】
この場合、端末装置１０及びＩＣカード２０は、鍵共有化方式による処理を省略することができる。即ち、ＩＣカード２０は、端末装置１０から送信された初期設定コマンドに、自身のＰＵＰＩと一致するＰＵＰＩが付加されていた場合、鍵共有方式の第１の処理と第２の処理とを行なうことなくＤＥＳ、またはＡＥＳなどを用いた相互認証処理を実行することができる。
【００８４】
これにより、ＩＣカード及びリーダライタは、通信（セッション）が切れた場合であっても、鍵共有方式による処理を再度実行することなく、種々の処理を実行することが出来る。即ち、ＩＣカード２０及び端末装置１０は、鍵の共有から相互認証、コマンドデータ秘匿までのセッション確立処理の一部を簡易化することで、大きくセキュリティレベルを下げることなく１つのトランザクションにかかる処理時間を低減することができる。この為、処理時間の短縮、及び省電力化を実現することができる。この結果、より速く処理を実行することができるＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムを提供することができる。
【００８５】
なお、上記の実施形態では、端末装置１０及びＩＣカード２０は、生成した秘密鍵Ｋを格納する構成であると説明したが、この構成に限定されない。端末装置１０及びＩＣカード２０は、秘密情報Ｊを格納する構成であってもよい。この場合も、端末装置１０及びＩＣカード２０は、図３のステップＳ３５乃至ステップＳ３９の処理を省略することができる。なお、この場合、端末装置１０及びＩＣカード２０は、相互認証処理の前に、秘密情報Ｊからハッシュ関数により秘密鍵Ｋを生成する必要がある。
【００８６】
また、端末装置１０から送られてくる初期設定コマンド内の特定情報は、前回共有した秘密情報Ｊから生成した秘密鍵Ｋで暗号化されていてもよい。この場合、ＩＣカード２０は、受信した初期設定コマンドの特定情報を、不揮発性メモリ２７に記憶されている秘密鍵Ｋにより復号する。ＩＣカード２０は、自身の識別情報（ＰＵＰＩ）と一致する情報が、復号した特定情報の中にある場合、秘密鍵Ｋが端末装置１０との間で共有化されていると判断する。
【００８７】
また、ＩＣカード２０は、特定情報と、自身のＰＵＰＩとを比較するのではなく、日付情報などを利用することも考えられる。即ち、端末装置１０は、日付情報を初期設定コマンドに付加する。ＩＣカード２０は、日付情報が所定の範囲に収まっているか否か判断する。日付情報が所定の範囲に収まっている場合、ＩＣカード２０は、鍵共有方式による処理を行わずに、不揮発性メモリ２７に格納されている秘密鍵Ｋを用いて処理を行う。また、日付情報が所定の範囲に収まっていない場合、ＩＣカード２０は、鍵共有方式により秘密鍵Ｋを端末装置１０と共有化する処理を行う。
【００８８】
即ち、ＩＣカード２０は、秘密鍵Ｋが有効である期限を示す期限情報を不揮発性メモリ２７に記憶する。ＩＣカード２０は、初期設定コマンドに付加されている日付情報が期限情報を満たすか否か判断する。即ち、ＩＣカード２０は、初期設定コマンドに付加されている日付情報が期限情報を満たし、且つ、自身の識別情報（ＰＵＰＩ）と一致する情報が、特定情報の中にある場合、有効な秘密鍵Ｋが端末装置１０との間で共有化されていると判断する。
【００８９】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００９０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００９１】
１…ＩＣカード処理システム、１０…端末装置、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…不揮発性メモリ、１５…操作部、１６…表示部、１７…カードリーダライタ、１８…スロット、１９…バス、２０…ＩＣカード、２１…ＩＣモジュール、２２…ＩＣチップ、２３…通信インターフェース、２３ａ…通信インターフェース、２４…ＣＰＵ、２５…ＲＯＭ、２６…ＲＡＭ、２７…不揮発性メモリ、２８…電源部、２９…コプロセッサ。
【図１】
2013118473.tif 000003
【図２】
2013118473.tif 000004
【図３】
2013118473.tif 000005