外部機器から入力されるコマンドに応じて処理を行うICカードであって、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第1の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第2の演算手段と、前記第2の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、を具備するICカード。前記ICカードの動作を制御する制御手段をさらに具備し、前記受信手段は、前記外部機器から送信された初期設定コマンドを受信し、前記制御手段は、前記初期設定コマンドに付加されている特定情報に応じて、前記秘密鍵を前記鍵記憶手段から読み出すか、前記第1の演算手段及び前記第2の演算手段により前記秘密鍵を算出するか、を選択する、請求項1に記載のICカード。識別情報を記憶する識別情報記憶手段をさらに具備し、前記制御手段は、前記特定情報と、前記識別情報とを比較し、一致した場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、請求項2に記載のICカード。前記外部機器との間で相互認証を行う相互認証手段をさらに具備し、前記受信手段は、前記外部機器から送信された相互認証コマンドを受信し、前記相互認証手段は、前記鍵記憶手段から読み出された前記秘密鍵を用いて前記相互認証を行なう、請求項3に記載のICカード。前記初期設定コマンドに付加されている特定情報を前記鍵記憶手段により記憶されている前記秘密鍵により復号する復号手段をさらに具備し、前記制御手段は、復号された前記特定情報と、前記識別情報とを比較し、一致した場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、請求項2に記載のICカード。識別情報を記憶する識別情報記憶手段と、前記秘密鍵が有効な期限を示す期限情報を記憶する期限情報記憶手段と、をさらに具備し、前記制御手段は、前記初期設定コマンドに付加されている特定情報と前記識別情報とが一致し、且つ、前記初期設定コマンドに付加されている日付情報が前記期限情報を満たす場合、前記秘密鍵を前記鍵記憶手段から読み出すように制御する、請求項2に記載のICカード。前記各部を備えるICモジュールと、前記ICモジュールが配設される本体と、を具備する請求項1に記載のICカード。外部機器から入力されるコマンドに応じて処理を行う携帯可能電子装置であって、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第1の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第2の演算手段と、前記第2の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、を具備する携帯可能電子装置。外部機器から入力されるコマンドに応じて処理を行うICカードにおいて実行される制御プログラムであって、前記ICカードを、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第1の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第2の演算手段と、前記第2の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、して動作させる制御プログラム。ICカード及びリーダライタは、通信が確立した後に、コマンド及びレスポンスを互いに交換し、鍵共有方式により種々の処理に用いることができる暗号鍵秘密鍵を生成する。ICカード及びリーダライタは、秘密鍵を用いて送受信するデータの暗号化及び復号を行う。これにより、ICカード及びリーダライタは、互いに暗号化された通信を行なうことができる。しかし、ICカード及びリーダライタは、鍵共有方式による鍵共有処理で、複雑な暗号アルゴリズムを用いた認証処理を行う場合がある。これらの認証処理の中には、非常に時間を要する処理がある。例えば、ICカード及びリーダライタは、通信セッションが切れた場合、この認証処理を再度実行する必要がある。この為、処理に時間を要する可能性があるという課題がある。そこで、より速く処理を実行することができるICカード、携帯可能電子装置、及びICカードの制御プログラムを提供することを目的とする。一実施形態に係るICカードは、外部機器から入力されるコマンドに応じて処理を行うICカードであって、前記外部機器から送信された鍵共有化コマンドを受信する受信手段と、前記鍵共有化コマンドに応じて秘密情報を算出し、前記秘密情報を前記外部機器と共有化する第1の演算手段と、前記秘密情報に基づいて秘密鍵を算出する第2の演算手段と、前記第2の演算手段により算出された前記秘密鍵を格納する鍵記憶手段と、を具備する。以下、図面を参照しながら、一実施形態に係るICカード、携帯可能電子装置、及びICカードの制御プログラムについて詳細に説明する。本実施形態に係る端末装置10のカードリーダライタ17及びICカード20は、例えば、ETSITS102613により規定されているSingleWireProtocolSWP、二重伝送通信などの接触通信の機能、及びISO/IEC14443などにより規定されている非接触通信の機能の両方またはいずれかの機能を備える。これにより、カードリーダライタ17及びICカード20は、互いにデータの送受信を行うことができる。図1は、一実施形態に係るICカード処理システム1の構成例について示す。ICカード処理システム1は、携帯可能電子装置ICカード20を処理する端末装置10と、ICカード20と、を備える。端末装置10とICカード20とは、上記したように接触通信、または非接触通信により互いに種々のデータを送受信する。端末装置10は、CPU11、RAM12、ROM13、不揮発性メモリ14、操作部15、表示部16、及びカードリーダライタ17を備える。CPU11、RAM12、ROM13、操作部15、表示部16、及びカードリーダライタ17は、それぞれバス19を介して互いに接続されている。CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM13に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、カードリーダライタ17を介してICカード20とコマンド及びレスポンスの送受信を行う。RAM12は、ワーキングメモリとして機能する揮発性のメモリである。RAM12は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM12は、カードリーダライタ17を介して外部の機器と送受信するデータを一時的に格納する。また、RAM12は、CPU11が実行するプログラムを一時的に格納する。ROM13は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。操作部15は、例えば操作キーなどを備える。操作部15は、端末装置10の操作者により入力される操作に基づいて、操作信号を生成する。操作部15は、生成した操作信号をCPU11に入力する。表示部16は、CPU11、またはCPU11により制御されるグラフィック処理部から入力される表示信号に基づいて、種々の情報を表示する。なお、端末装置10は、操作部15と表示部16とが一体に形成されるタッチパネルを備える構成であってもよい。カードリーダライタ17は、ICカード20と通信を行うためのインターフェース装置である。カードリーダライタ17は、ICカード20が装着されるスロット18を備える。カードリーダライタ17は、接触通信、または非接触通信によりスロット18に装着されたICカード20とデータの送受信を行う。接触通信のインターフェースとして用いられる場合、カードリーダライタ17は、ICカード20が備えるコンタクトパターンと接続される複数の接触端子を備える。スロット18にICカード20が装着される場合、カードリーダライタ17の複数の接触端子は、ICカード20のコンタクトパターンに接続される。これにより、端末装置10とICカード20とは電気的に接続される。カードリーダライタ17は、スロットに装着されたICカード20に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ17は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。カードリーダライタ17は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ17は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置10は、スロットに装着されたICカード20に対してデータを非接触で送信することができる。さらに、カードリーダライタ17のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ17は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置10は、スロットに装着されたICカード20から送信された元のデータを取得することができる。CPU11は、カードリーダライタ17によりICカード20に対して種々のコマンドを入力する。ICカード20は、例えば、カードリーダライタ17からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。また、CPU11は、ICカード20に読み取りコマンドを送信することにより、ICカード20からデータを読み出す。CPU11は、ICカード20から受信したデータに基づいて種々の処理を行う。図2は、図1に示すICカード20の構成例を示す。図2に示すように、ICカード20は、矩形状の本体と、本体内に内蔵されるICモジュール21を備えている。ICモジュール21は、ICチップ22を備える。ICチップ22は、通信インターフェース23、CPU24、ROM25、RAM26、不揮発性メモリ27、電源部28、及びコプロセッサ29を備える。通信インターフェース23は、ICカード20に接続される外部機器例えば端末装置10との間で送受信するデータに対して符号化、復号、変調、及び復調などを行う。ICカード20が端末装置10との間で接触通信によりデータの送受信を行う構成である場合、通信インターフェース23は、コンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりICモジュール21の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置10と接触可能な状態で形成されている。コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれコンタクトパターンの端子として機能する。通信インターフェース23は、コンタクトパターンを介してカードリーダライタ17とデータの送受信を行うことができる。また、非接触通信のインターフェースとして用いられる場合、通信インターフェース23は、信号処理部とアンテナとを備える。信号処理部は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置10に送信するデータの変調増幅を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。アンテナは、例えば、ICモジュール21が内蔵される本体に所定の形状で配設される金属線により構成される。ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信インターフェース23は、2値の論理データを取得する。通信インターフェース23は、解析したデータをバスを介してCPU24に送信する。また、通信インターフェース23は、受信レジスタ及び送信レジスタを備える。受信レジスタ及び送信レジスタは、一般的なレジスタであり、ICカード20が送受信するデータを一時的に格納する。即ち、受信レジスタは、通信インターフェース23を介して端末装置10から受信するデータを一時的に格納する。また、送信レジスタは、通信インターフェース23を介して端末装置10に送信するデータを一時的に格納する。CPU24は、種々の演算を行う演算素子である。CPU24は、ROM25あるいは不揮発性メモリ27に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。これにより、CPU24は、ICカード20の全体の制御を司ることができる。例えば、CPU24は、端末装置10のカードリーダライタ17から受信したコマンドに応じて種々の処理を行い、処理結果に基づいて、レスポンスの生成を行なう。ROM25は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM25は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM25に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。RAM26は、ワーキングメモリとして機能する揮発性のメモリである。RAM26は、CPU24の処理中のデータなどを一時的に格納する。例えば、RAM26は、CPU24が実行するプログラムを一時的に格納する。不揮発性メモリ27は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ27は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。たとえば、不揮発性メモリ27では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU24は、不揮発性メモリ27、または、ROM25に記憶されているプログラムを実行することにより、種々の処理を実現することができる。電源部28は、通信インターフェース23を介してカードリーダライタ17から電力を受給し、受給した電力をICカード20の各部に供給する。ICカード20が接触通信を行う構成を備える場合、電源部28は、通信インターフェース23のコンタクトパターンを介してカードリーダライタ17から供給される電力をICカード20の各部に供給する。また、ICカード20が非接触通信を行う構成を備える場合、カードリーダライタ17のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部28は、動作クロックを生成する。電源部28は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。コプロセッサ29は、演算素子及びレジスタなどを有する演算処理部である。コプロセッサ29は、演算処理をハードウエアにより行う。例えば、コプロセッサ29は、端末装置10からのコマンドに基づいて、暗号化、復号、ハッシュ計算、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、コプロセッサ29は、相互認証処理に係る演算処理を実行する。CPU24は、コプロセッサ29にデータを入力し、コプロセッサ29に演算処理を実行させ、処理結果をコプロセッサ29から受け取る。コプロセッサ29は、例えば、DESDataEncryptionStandard、またはAESAdvancedEncryptionStandard等の規格に基づいて暗号処理を行う。コプロセッサ29は、例えば不揮発性メモリ27、またはROM25に格納された暗号鍵を用いて暗号化、及び復号などの暗号処理を行う。ICカード20は、一次発行と二次発行とにより発行される。ICカード20を発行する発行装置は、一次発行において、ICカード20にコマンド初期化コマンドを送信することにより、ICカード20の不揮発性メモリ27の初期化を行う。これにより、端末装置10は、ICカード20の不揮発性メモリ27内にICカード20の使用目的、及び使用用途などに応じた鍵ファイルやデータファイル等を定義する。発行装置は、例えば、ISO/IEC7816により規定されているファイル構造を不揮発性メモリ27内に創成する。上記の初期化が行われた不揮発性メモリ27は、MasterFileMF、DedicatedFileDF、及びElementaryFileEFなどを有する。MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。EFには、WorkingElementaryFileWEFとInternalElementaryFileIEFなどの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵などのデータを記憶する。二次発行では、EFに例えば顧客データなどの個別データが格納される。これにより、ICカード20が運用可能な状態になる。即ち、CPU24は、不揮発性メモリ27、または、ROM25に記憶されているプログラムを実行することにより、種々の処理を実現することができる。ICカード20と端末装置10とは、通信セッションが確立した後に、鍵共有方式により種々の処理に用いることができる暗号鍵秘密鍵を生成し、共有する。ICカード20及び端末装置10は、例えば、ディフィーヘルマン鍵共有Diffie-Hellmankeyexchange:DH方式により秘密鍵を共有する。また、例えば、ICカード20及び端末装置10は、EllipticcurveDH方式ECDH方式により秘密鍵を共有する。ICカード20及び端末装置10は、上記したような鍵共有方式により、秘密情報を共有することができる。ICカード20及び端末装置10は、共有した秘密情報から秘密鍵を生成する。ICカード20及び端末装置10は、例えば、共有した秘密情報からSHA256などのハッシュ関数により秘密鍵を生成する。ICカード20及び端末装置10は、生成した秘密鍵により、上記のDES、またはAESなどによる暗号処理を行う。鍵共有方式を行う場合、端末装置10は、公開情報P例えば素数及びドメインパラメータをICカード20との間で共有化する。端末装置10は、鍵共有方式をICカード20に行わせるためのコマンドにより、素数及びドメインパラメータを指定する。これにより、端末装置10とICカード20との間で素数及びドメインパラメータが共有化される。端末装置10は、まず乱数Aを生成する。端末装置10は、公開情報Pと、生成した乱数Aとに基づいて演算結果PAを算出する。また、ICカード20は、まず乱数Bを生成する。ICカード20は、上記した公開情報Pと、生成した乱数Bとに基づいて演算結果PBを算出する。端末装置10は、演算結果PAをICカード20に送信する。また、ICカード20は、演算結果PBを端末装置10に送信する。端末装置10は、ICカード20から送信された演算結果PBと乱数Aとに基づいて演算結果PBAを算出する。また、ICカード20は、端末装置10から送信された演算結果PAと乱数Bとに基づいて演算結果PABを算出する。この演算結果PBAと演算結果PABとは等しい。即ち、ICカード20及び端末装置10は、上記の演算を行うことにより、秘密情報J=PBA=PABを共有することができる。この方法によると、通信路により演算結果PA及び演算結果PBが伝送される。この演算結果PA及び演算結果PBからは、乱数A及び乱数Bを特定することができない。この為、最終的に秘密鍵の算出に用いられる秘密情報Jを類推することができない。この結果、ICカード20及び端末装置10は、安全に秘密情報Jを共有することができる。ICカード20及び端末装置10は、秘密情報Jに基づいてハッシュ関数の演算により秘密鍵Kを生成する。SecureHashAlgorithmSHAは、一群の関連したハッシュ関数であり、ビット長によりSHA224、SHA256、SHA384、SHA512などの種類が存在する。ICカード20及び端末装置10は、これらのうちのいずれか、または他のハッシュ関数に基づいて、秘密情報Jから暗号処理に用いることができる秘密鍵Kを生成することができる。端末装置10は、生成した秘密鍵Kを格納する。端末装置10は、例えば、不揮発性メモリ14に生成した秘密鍵Kを格納する。また、端末装置10は、秘密鍵Kを共有したICカード20を識別する為の識別情報例えばPUPIを秘密鍵Kと対応付けて格納する。また、ICカード20は、生成した秘密鍵Kを格納する。例えば、ICカード20は、不揮発性メモリ27に生成した秘密鍵Kを格納する。また、端末装置10及びICカード20は、秘密情報Jを格納する構成であってもよい。図3は、ICカード20の処理の例を示す。まず、ICカード20が端末装置10のカードリーダライタ17のスロット18に装着される場合、端末装置10は、カードリーダライタを介してICカード20に電力を供給する。これにより、ICカード20は、動作可能な起動状態になる。端末装置10は、ICカード20に対して初期設定コマンドを送信する。この初期設定コマンドは、通信における種々の設定をICカード20と端末装置10との間で設定するためのコマンドである。端末装置10がICカード20に送信するコマンドは、CLA、INS、P1、P2、Lc、Data、及びLeなどのフィールドを有する。CLAは、コマンドの層別を示すclassbyteである。INSは、コマンドの種別を示すinstructionbyteである。P1及びP2は、INSに応じたパラメータを示すparameterbyteである。Lcは、Dataのデータの長さバイト数を示すlengthfieldforcordingnumberNcである。Dataは、当該コマンドのデータ本体を示すcommanddatafieldである。Leは、当該コマンドに対するレスポンスのデータ長を示すlengthfieldforcordingnumberNeである。即ち、CLA及びINSにより、当該コマンドの種類が示される。ICカード20は、受信したコマンドのCLA及びINSの値を解析することにより、受信したコマンドの種類を認識する。端末装置10は、CLA、INS、P1、P2、Lc、Data、及びLeの値を設定することにより、ICカード20に上記の初期設定を行なわせる為の初期設定コマンドを生成する。また、端末装置10は、不揮発性メモリ14に格納されている秘密鍵Kに対応付けられているICカードの識別情報を初期設定コマンドに付加する。ICカード20は、端末装置10から送信された初期設定コマンドを受信するステップS31。ICカード20は、受信した初期設定コマンドを解析するステップS32。これにより、ICカード20は、端末装置10から指定された設定の内容を認識する。ICカード20は、初期設定コマンドに応じて通信に関する種々の設定を行ない、処理結果に応じたレスポンスを端末装置10に送信する。これにより、ICカード20は、端末装置10との間で通信セッションを確立するステップS33。なお、ICカード20は、自身のPUPIをレスポンスに付加し、端末装置10に送信する。また、ICカード20は、初期設定コマンドを解析することにより、端末装置10に秘密鍵Kが登録されているICカードの識別情報を認識する。即ち、ICカード20は、この識別情報を認識することにより、端末装置10に秘密鍵Kが登録されているICカードを特定することができる。ICカード20は、特定情報が初期設定コマンドに含まれているか否か判断するステップS34。即ち、ICカード20は、自身の識別情報PUPIと一致する識別情報が初期設定コマンドに含まれているか否か判断する。端末装置10は、ICカード20からレスポンスを受信した場合、受信したレスポンス中のPUPIを認識する。端末装置10は、受信したPUPIと対応付けられた秘密鍵Kが不揮発性メモリ14に記憶されているか否か判断する。受信したPUPIと対応付けられた秘密鍵Kが不揮発性メモリ14に記憶されている場合、端末装置10は、ICカード20と共有化された秘密鍵Kが不揮発性メモリ14に記憶されていることを認識する。ICカード20と共有化された秘密鍵Kが不揮発性メモリ14に記憶されていない場合、端末装置10及びICカード20は、鍵共有方式により秘密鍵Kを共有化する。この場合、端末装置10は、鍵共有方式をICカード20に行わせるためのコマンド鍵共有化コマンドを生成し、ICカード20に送信する。なお、端末装置10は、公開情報Pを鍵共有化コマンドに付加する。ICカード20は、端末装置10から送信された鍵共有化コマンドを受信する。ICカード20は、受信した鍵共有化コマンドを解析する。これにより、ICカード20は、端末装置10から指定された公開情報Pを認識する。この結果、ICカード20は、端末装置10との間で公開情報Pを共有化するステップS35。即ち、ICカード20及び端末装置10は、素数及びドメインパラメータを共有化する。まず、ICカード20は、鍵共有方式の第1の処理を実行するステップS36。また、端末装置10も同様に鍵共有方式の第1の処理を実行する。端末装置10は、乱数Aを生成する。端末装置10は、公開情報Pと、生成した乱数Aとに基づいて演算結果PAを算出する。端末装置10は、演算結果PAをICカード20に送信する。ICカード20は、乱数Bを生成する。ICカード20は、上記した公開情報Pと、生成した乱数Bとに基づいて演算結果PBを算出する。また、ICカード20は、演算結果PBを端末装置10に送信する。次に、ICカード20は、鍵共有方式の第2の処理を実行するステップS37。また、端末装置10も同様に鍵共有方式の第2の処理を実行する。端末装置10は、ICカード20から送信された演算結果PBと乱数Aとに基づいて演算結果PBA秘密情報Jを算出する。また、ICカード20は、端末装置10から送信された演算結果PAと乱数Bとに基づいて演算結果PAB秘密情報Jを算出する。これにより、ICカード20及び端末装置10は、秘密情報Jを共有することができる。さらに、ICカード20は、秘密鍵Kを生成するステップS38。また、端末装置10も同様に秘密鍵Kを生成する。ICカード20及び端末装置10は、秘密情報Jに基づいてハッシュ関数の演算により秘密鍵Kを生成する。即ち、ICカード20及び端末装置10は、秘密情報Jをハッシュ関数の入力として演算を行い、秘密鍵Kを算出する。ICカード20は、生成した秘密鍵Kを不揮発性メモリ27に格納するステップS39。上記したように、ICカード20は、秘密鍵Kを不揮発性メモリ27のIEFに格納する。また、端末装置10は、例えば、不揮発性メモリ14に生成した秘密鍵Kを格納する。端末装置10は、初期設定コマンドのレスポンスに付加されていたPUPIと、秘密鍵Kとを対応付けて、不揮発性メモリ14に格納する。上記の処理により、秘密鍵KがICカード20と端末装置10との間で共有化された。さらに、ICカード20及び端末装置10は、相互認証処理を行う。相互認証では、ICカード20及び端末装置10は、秘密鍵Kを用いて乱数を使ったGetChallenge処理を行う。ICカード20及び端末装置10は、相互認証が成功した場合、お互いに生成した乱数を共有し、以降のコマンドデータの秘匿のための暗号化のセッション鍵として利用する。相互認証処理を行う場合、端末装置10は、相互認証処理をICカード20に実行させる為の相互認証コマンドを生成し、ICカード20に送信する。ICカード20は、端末装置10から送信された相互認証コマンドを受信するステップS40。ICカード20は、受信した相互認証コマンドを解析するステップS41。ICカード20は、相互認証コマンドに相互認証処理を実行するステップS42。即ち、ICカード20は、乱数を生成し、秘密鍵Kと乱数とに基づいて、暗号化及び復号を行う。また、ICカード20は、端末装置10から送信されたデータに対して、秘密鍵Kを用いて暗号化及び復号を行う。ICカード20及び端末装置10は、この結果に基づいて互いを認証する。また、ステップS34で、特定情報が初期設定コマンドに含まれていると判断した場合、即ち、端末装置10とICカード20とで共通した秘密鍵Kが端末装置10に格納されていると判断した場合、ICカード20は、ステップS40に移行する。即ち、端末装置10及びICカード20は、不揮発性メモリ14及び27に格納されている秘密鍵Kをそれぞれ読み出し、相互認証処理に用いることが出来る。この場合、端末装置10及びICカード20は、鍵共有化方式による処理を省略することができる。即ち、ICカード20は、端末装置10から送信された初期設定コマンドに、自身のPUPIと一致するPUPIが付加されていた場合、鍵共有方式の第1の処理と第2の処理とを行なうことなくDES、またはAESなどを用いた相互認証処理を実行することができる。これにより、ICカード及びリーダライタは、通信セッションが切れた場合であっても、鍵共有方式による処理を再度実行することなく、種々の処理を実行することが出来る。即ち、ICカード20及び端末装置10は、鍵の共有から相互認証、コマンドデータ秘匿までのセッション確立処理の一部を簡易化することで、大きくセキュリティレベルを下げることなく1つのトランザクションにかかる処理時間を低減することができる。この為、処理時間の短縮、及び省電力化を実現することができる。この結果、より速く処理を実行することができるICカード、携帯可能電子装置、及びICカードの制御プログラムを提供することができる。なお、上記の実施形態では、端末装置10及びICカード20は、生成した秘密鍵Kを格納する構成であると説明したが、この構成に限定されない。端末装置10及びICカード20は、秘密情報Jを格納する構成であってもよい。この場合も、端末装置10及びICカード20は、図3のステップS35乃至ステップS39の処理を省略することができる。なお、この場合、端末装置10及びICカード20は、相互認証処理の前に、秘密情報Jからハッシュ関数により秘密鍵Kを生成する必要がある。また、端末装置10から送られてくる初期設定コマンド内の特定情報は、前回共有した秘密情報Jから生成した秘密鍵Kで暗号化されていてもよい。この場合、ICカード20は、受信した初期設定コマンドの特定情報を、不揮発性メモリ27に記憶されている秘密鍵Kにより復号する。ICカード20は、自身の識別情報PUPIと一致する情報が、復号した特定情報の中にある場合、秘密鍵Kが端末装置10との間で共有化されていると判断する。また、ICカード20は、特定情報と、自身のPUPIとを比較するのではなく、日付情報などを利用することも考えられる。即ち、端末装置10は、日付情報を初期設定コマンドに付加する。ICカード20は、日付情報が所定の範囲に収まっているか否か判断する。日付情報が所定の範囲に収まっている場合、ICカード20は、鍵共有方式による処理を行わずに、不揮発性メモリ27に格納されている秘密鍵Kを用いて処理を行う。また、日付情報が所定の範囲に収まっていない場合、ICカード20は、鍵共有方式により秘密鍵Kを端末装置10と共有化する処理を行う。即ち、ICカード20は、秘密鍵Kが有効である期限を示す期限情報を不揮発性メモリ27に記憶する。ICカード20は、初期設定コマンドに付加されている日付情報が期限情報を満たすか否か判断する。即ち、ICカード20は、初期設定コマンドに付加されている日付情報が期限情報を満たし、且つ、自身の識別情報PUPIと一致する情報が、特定情報の中にある場合、有効な秘密鍵Kが端末装置10との間で共有化されていると判断する。なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。