(57)【要約】【課題】より安全性の高いＩＣカード、携帯可能電子装置、ＩＣカード処理装置及びＩＣカード処理システムを提供する。【解決手段】実施形態によれば、ＩＣカードは、通信部と、第１記録部と、復号化部と、更新部と、を備える。通信部は、外部装置とデータを送受信する。第１記録部は、前記外部装置が暗号化した暗号化データを復号化するための復号鍵を格納する。復号化部は、前記通信部が受信した前記暗号化データを前記第１記録部が格納する前記復号鍵を用いて復号化する。更新部は、前記復号化部が前記暗号化データを復号する際に復号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する復号鍵を更新する。【選択図】図５
2014182649.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドを実行するＩＣカードにおいて、
外部装置とデータを送受信する通信部と、
前記外部装置が暗号化した暗号化データを復号化するための復号鍵を格納する第１記録部と、
前記通信部が受信した前記暗号化データを前記第１記録部が格納する前記復号鍵を用いて復号化する復号化部と、
前記復号化部が前記暗号化データを復号する際に復号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する復号鍵を更新する更新部と、
を備えるＩＣカード。
【請求項２】
さらに、
前記復号鍵の有効期限を示す有効期限データを格納する第２記録部を備え、
復号鍵を使用不可能とする前記条件は、前記復号化部が前記暗号化データを復号化する時が、前記第２記録部が格納する前記有効期限データが示す有効期限内に含まれていないことである、
前記請求項１に記載のＩＣカード。
【請求項３】
さらに、
前記復号化部が前記復号鍵を使用して前記暗号化データを復号化した復号化回数を格納する第３記録部と、
前記第３記録部が格納する前記復号化回数の上限値である復号化回数上限値を格納する第４記録部と、
復号鍵を使用不可能とする前記条件は、前記第３記録部が格納する前記復号化回数が、前記第４記録が格納する前記復号化回数上限値に達することである、
前記請求項１又は２に記載のＩＣカード。
【請求項４】
前記更新部は、前記通信部を通じて前記外部装置へ復号鍵を更新させる復号鍵更新コマンドの送信を要求し、前記通信部を通じて前記外部装置から前記復号鍵更新コマンドを受信した場合に前記第１記録部が格納する復号鍵を更新する、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記更新部が前記復号鍵を更新した場合に、前記復号鍵を更新したことを示す情報を含むレスポンスを前記通信部を通じて前記外部装置へ送信する返信部を備える、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記返信部は、前記更新部が更新した復号鍵を含むレスポンスを前記通信部を通じて前記外部装置へ送信する、
前記請求項５に記載のＩＣカード。
【請求項７】
外部装置からのコマンドを実行する携帯可能電子装置において、
外部装置とデータを送受信する通信部と、
前記外部装置が暗号化した暗号化データを復号化するための復号鍵を格納する第１記録部と、
前記通信部が受信した前記暗号化データを前記第１記録部が格納する前記復号鍵を用いて復号化する復号化部と、
前記復号化部が前記暗号化データを復号する際に復号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する復号鍵を更新する更新部と、
を備える携帯可能電子装置。
【請求項８】
ＩＣカードに対してコマンドを供給するＩＣカード処理装置において、
ＩＣカードとデータを送受信する通信部と、
前記ＩＣカードへ送信する送信データを暗号化するための暗号鍵を格納する第１記録部と、
前記送信データを前記第１記録部が格納する前記暗号鍵を用いて暗号化する暗号化部と、
前記暗号化部が暗号化した送信データを含むコマンドを前記ＩＣカードへ送信する第１送信部と、
前記第１送信部が前記コマンドを送信する際に暗号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する暗号鍵を更新する更新部と、
を備えるＩＣカード処理装置。
【請求項９】
さらに、
前記暗号鍵の有効期限を示す有効期限データを格納する第２記録部を備え、
暗号鍵を使用不可能とする前記条件は、前記暗号化部が前記送信データを暗号化する時が、前記第２記録部が格納する前記有効期限データが示す有効期限内に含まれていないことである、
前記請求項８に記載のＩＣカード処理装置。
【請求項１０】
さらに、
前記暗号化部が前記暗号鍵を使用して前記送信データを暗号化した暗号化回数を格納する第３記録部と、
前記第３記録部が格納する前記暗号化回数の上限値である暗号化回数上限値を格納する第４記録部と、
暗号鍵を使用不可能とする前記条件は、前記第３記録部が格納する前記暗号化回数が、前記第４記録が格納する前記暗号化回数上限値に達することである、
前記請求項８又は９に記載のＩＣカード処理装置。
【請求項１１】
暗号鍵を使用不可能とする前記条件は、前記ＩＣカードから復号鍵を更新させる復号鍵更新コマンドを要求する情報を含むレスポンスを前記通信部を通じて受信したことであって、
さらに、
前記通信部を通じて前記レスポンスを受信した場合、前記通信部を通じて前記復号鍵更新コマンドを前記ＩＣカードへ送信する第２送信部を備える、
前記請求項８乃至１０の何れか１項に記載のＩＣカード処理装置。
【請求項１２】
ＩＣカードとＩＣカード処理装置とを有するＩＣカードシステムにおいて、
前記ＩＣカードは、
外部装置とデータを送受信する第１通信部と、
前記外部装置が暗号化した暗号化データを復号化するための復号鍵を格納する第１記録部と、
前記通信部が受信した前記暗号化データを前記第１記録部が格納する前記復号鍵を用いて復号化する復号化部と、
前記復号化部が前記暗号化データを復号する際に復号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する復号鍵を更新する第１更新部と、
を備え、
前記ＩＣカード処理装置は、
ＩＣカードとデータを送受信する第２通信部と、
前記ＩＣカードへ送信するデータを暗号化するための暗号鍵を格納する第２記録部と、
暗号化前記ＩＣカードへ送信する送信データを前記第２記録部が格納する前記暗号鍵を用いて暗号化する暗号化部と、
前記暗号化部が暗号化した送信データを含むコマンドを前記ＩＣカードへ送信する第１送信部と、
前記第１送信部が前記コマンドを送信する際に暗号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する暗号鍵を更新する第２更新部と、
を備える、
ＩＣカード処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、ＩＣカード処理装置及びＩＣカード処理システムに関する。
【背景技術】
【０００２】
携帯可能電子装置であるＩＣカードは、暗号化されたデータを復号するための復号鍵を備える。ＩＣカードは、処理装置から暗号鍵を用いて暗号化されたデータを受信すると、受信されたデータを復号鍵を用いて復号し、復号されたデータを処理装置へ送信する。従来、ＩＣカードは、同じ復号鍵を使用し続け、復号鍵を更新することができないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２６２４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、より安全性の高いＩＣカード、携帯可能電子装置、ＩＣカード処理装置及びＩＣカード処理システムを提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、第１記録部と、復号化部と、更新部と、を備える。通信部は、外部装置とデータを送受信する。第１記録部は、前記外部装置が暗号化した暗号化データを復号化するための復号鍵を格納する。復号化部は、前記通信部が受信した前記暗号化データを前記第１記録部が格納する前記復号鍵を用いて復号化する。更新部は、前記復号化部が前記暗号化データを復号する際に復号鍵を使用不可能とする条件が満たされている場合に、前記第１記録部が格納する復号鍵を更新する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】図２は、第１実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、第１実施形態に係るＩＣカードの機能例を示すブロック図である。
【図４】図４は、第１実施形態に係るＩＣカード処理装置の動作例を説明するためのフローチャートである。
【図５】図５は、第１実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図６】図６は、第２実施形態に係るＩＣカードの機能例を示すブロック図である。
【図７】図７は、第２実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図８】図８は、第３実施形態に係るＩＣカードの機能例を示すブロック図である。
【図９】図９は、第３実施形態に係るＩＣカードの機能例を示すブロック図である。
【図１０】図１０は、第３実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図１１】図１１は、第３実施形態に係るＩＣカード処理装置の動作例を説明するためのフローチャートである。
【図１２】図１２は、第３実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図１３】図１３は、第３実施形態に係るＩＣカード処理装置の動作例を説明するためのフローチャートである。
【図１４】図１４は、第４実施形態に係るＩＣカードの機能例を示すブロック図である。
【図１５】図１５は、第４実施形態に係るＩＣカード処理装置の動作例を説明するためのフローチャートである。
【図１６】図１６は、第４実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図１７】図１７は、第５実施形態に係るＩＣカード機能例を示すブロック図である。
【図１８】図１８は、第５実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図１９】図１９は、第６実施形態に係るＩＣカード機能例を示すブロック図である。
【図２０】図２０は、第６実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図２１】図２１は、第６実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
（第１実施形態）
実施形態に係る携帯可能電子装置は、外部装置とデータ通信を確立し、外部装置が送信するコマンドに従って動作する。外部装置は、携帯可能電子装置へコマンドを送信する。携帯可能電子装置は、受信されたコマンドに従って動作し、動作結果などを格納したレスポンスを外部装置へ送信する。
【０００８】
以下、図面を参照しながら、詳細に説明する。  
図１は、第１実施形態に係るＩＣカード２とＩＣカード処理装置１とを有するＩＣカード処理システム１０の構成例を示す図である。
【０００９】
図１が示す構成例において、ＩＣカード処理装置１（処理装置）は、基本的な構成として、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６及びディスプレイ１７などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ＩＣカード処理装置１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【００１０】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２あるいはＮＶＭ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。
【００１１】
ＣＰＵ１１は、カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、ＣＰＵ１１は、カードリーダライタ１５を介して操作部１６で入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１２】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１３】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めＩＣカード処理装置１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、ＩＣカード処理装置１の回路基板を制御するプログラム（例えば、ＢＩＯＳ）などを格納している。
【００１４】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１５】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、ＩＣカード処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。  
また、ＮＶＭ１４は、暗号鍵を記録する記録領域１４ａ及び暗号鍵の有効期限を示すデータを記録する記録領域１４ｂなどを有する。暗号鍵、及び暗号鍵有効期限データについては、後述する。
【００１６】
カードリーダライタ１５は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１７】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１８】
このような機能によってカードリーダライタ１５は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１９】
操作部１６は、ＩＣカード処理装置１の使用者によって、種々の操作指示及びデータなどが入力される。操作部１６は、入力された操作指示及びデータなどをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００２０】
ディスプレイ１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１７は、たとえば、液晶モニタなどである。なお、ディスプレイ１７は、タッチパネルとして操作部１６と一体的に形成されてもよい。
【００２１】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２２】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００２３】
次に、ＩＣカード２の構成例について説明する。  
図２は、第１実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。また、ＩＣカード２のモジュールＭは、図２に示すように、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４及び通信部２５を備えている。これらの各部は、データバスを介して互いに接続されている。
【００２４】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２５】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２６】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、通信部２５を通じてＩＣカード処理装置１から送信されたコマンドを保持する。計算用バッファとしては、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、通信部２５を通じてＩＣカード処理装置１に送信するデータを保持する。
【００２７】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２８】
ＮＶＭ２４は、復号鍵を記録する記録領域２４ａ及び復号鍵の有効期限を示すデータを記録する記録領域２４ｂなどを有する。復号鍵、及び復号鍵の有効期限を示すデータについては、後述する。
【００２９】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００３０】
次に、ＩＣカード処理装置１のＮＶＭ１４が格納する暗号鍵について説明する。  
前述のとおり、暗号鍵は、記録領域１４ａに格納される。  
暗号鍵は、ＩＣカード処理装置１のＣＰＵ１１がＩＣカード２へ送信するデータを暗号化するために使用される。即ち、ＩＣカード処理装置１のＣＰＵ１１は、所定の暗号化アルゴリズムに従って暗号鍵を用いてＩＣカード２へ送信するデータを暗号化する。暗号鍵は、ＣＰＵ１１が行う暗号化アルゴリズムに応じて決定される。たとえば、暗号鍵は、数字、文字、記号、又はこれらの組み合わせから構成されるデータ列である。暗号鍵の長さ及び内容は、特定の構成に限定されるものではない。  
ここでは、初期状態において、記録領域１４ａは、暗号鍵Ａ１を格納しているものとする。
【００３１】
次に、ＩＣカード処理装置１のＮＶＭ１４が格納する有効期限データ（暗号鍵有効期限データ１４ｂ）について説明する。  
前述のとおり、暗号鍵有効期限データ１４ｂは、記録領域１４ｂに格納される。  
暗号鍵有効期限データ１４ｂは、暗号鍵の有効期限を示す。即ち、暗号鍵有効期限データ１４ｂは、ＣＰＵ１１が当該暗号鍵を使用することができる期限を示す。ＩＣカード処理装置１のＣＰＵ１１は、暗号鍵有効期限データ１４ｂが示す有効期限と現在の日時とを比較して、暗号鍵を使用することができるか判定する。現時の日時が有効期限内であれば、ＩＣカード処理装置１のＣＰＵ１１は、現在格納されている暗号鍵（たとえば、暗号鍵Ａ１）を使用してＩＣカード２へ送信するデータを暗号化する。また、現時の日時が有効期限内でなければ、ＩＣカード処理装置１のＣＰＵ１１は、暗号鍵を更新する。更新の手順については後述する。
【００３２】
次に、ＩＣカード２のＮＶＭ２４が格納する復号鍵について説明する。  
前述のとおり、復号鍵は、記録領域２４ａに格納される。  
復号鍵は、ＩＣカード２のＣＰＵ２１がＩＣカード処理装置１から送信される暗号化されたデータを復号化するために使用される。即ち、ＩＣカード２のＣＰＵ２１は、所定の復号化アルゴリズムに従って復号鍵を用いてＩＣカード処理装置１から送信される暗号化されたデータを復号化する。復号化アルゴリズムは、ＩＣカード処理装置１のＣＰＵ１１が実行する暗号化アルゴリズムに対応する方法である。即ち、復号化アルゴリズムは、ＣＰＵ１１が暗号化アルゴリズムに従って暗号化したデータを復号化する方法である。また、復号鍵は、ＣＰＵ２１が行う復号化アルゴリズムに応じて決定される。たとえば、復号鍵は、数字、文字、記号、又はこれらの組み合わせから構成されるデータ列である。復号鍵の長さ及び内容は、特定の構成に限定されるものではない。また、復号鍵は、暗号鍵と同一でなくともよい。たとえば、暗号化アルゴリズムが共有鍵法に基づく場合、復号鍵と暗号鍵とは同一である。一方、暗号化アルゴリズムが公開鍵法に基づく場合、復号鍵は、暗号鍵とは異なる。  
ここでは、初期状態において、記録領域２４ａは、復号鍵Ｂ１を格納する。
【００３３】
次に、ＩＣカード２のＮＶＭ２４が格納する有効期限データ（復号鍵有効期限データ２４ｂ）について説明する。  
前述のとおり、復号鍵有効期限データ２４ｂは、記録領域２４ｂに格納される。  
復号鍵有効期限データ２４ｂは、復号鍵の有効期限を示す。即ち、暗号鍵有効期限データ１４ｂは、ＣＰＵ２１が復号鍵を使用することができる期限を示す。ＩＣカード２のＣＰＵ２１は、復号鍵有効期限データ２４ｂが示す有効期限と現在の日時とを比較して、復号鍵を使用することができるか判定する。現時の日時が有効期限内であれば、ＩＣカード２のＣＰＵ２１は、現在格納されている復号鍵（たとえば、復号鍵Ｂ１）を使用してＩＣカード処理装置１から送信される暗号化されたデータを復号化する。また、現時の日時が有効期限内でなければ、ＩＣカード２のＣＰＵ２１は、復号鍵を更新する。更新の手順については後述する。  
復号鍵有効期限データ２４ｂは、ＩＣカード処理装置１のＮＶＭ１４が格納する暗号鍵有効期限データ１４ｂと同一のデータである。即ち、復号鍵の有効期限と暗号鍵の有効期限とは、同一の期間である。
【００３４】
次に、ＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
ここでは、暗号鍵Ａ１と復号鍵Ｂ１との有効期限は、切れているものとする。また、ＩＣカード処理装置１のＣＰＵ１１がＩＣカード２へ送信するデータは、鍵Ｋであるものとする。また、ＩＣカード処理装置１のＣＰＵ１１は、鍵Ｋを暗号化した鍵Ｋ’をＩＣカード２に復号化させるコマンド（復号化コマンド）を送信しようとする。
【００３５】
図３は、ＩＣカード２の機能例を示すブロック図である。  
まず、ＩＣカード処理装置１のＣＰＵ１１は、暗号鍵有効期限データ１４ｂが示す有効期限が現在の日付を含んでいるか判定する。即ち、ＣＰＵ１１は、記録領域１４ｂから暗号鍵有効期限データ１４ｂを読み出し、現在の日付と比較する。ここでは、現在の日付は、有効期限に含まれない。したがって、ＣＰＵ１１は、記録領域１４ａが現在格納する暗号鍵Ａ１の有効期限が切れていると判定する。
【００３６】
現在格納している暗号鍵Ａ１の有効期限が切れていると判定すると、ＣＰＵ１１は、所定の暗号鍵生成アルゴリズムに従って新たな暗号鍵Ａ２を生成する。暗号鍵生成アルゴリズムは、新たな暗号鍵を生成するアルゴリズムである。暗号鍵生成アルゴリズムは、現在格納されている暗号鍵Ａ１に基づいて暗号鍵Ａ２を生成してもよいし、暗号鍵Ａ１から独立に暗号鍵Ａ２を生成してもよい。暗号鍵生成アルゴリズムは、特定の構成に限定されるものではない。暗号鍵生成アルゴリズムは、予め決定され、ＮＶＭ１４又はＲＯＭ１２などにプログラムとして格納される。ＣＰＵ１１は、当該プログラムを実行することで、暗号鍵生成アルゴリズムを実現する。
【００３７】
暗号鍵Ａ２を生成すると、ＣＰＵ１１は、暗号鍵Ａ２を記録領域１４ａに暗号鍵として格納する。ＣＰＵ１１は、暗号鍵Ａ１を削除してもよいし、履歴として暗号鍵Ａ１をＮＶＭ１４の他の領域に格納してもよい。
【００３８】
暗号鍵Ａ２を格納すると、ＣＰＵ１１は、暗号鍵Ａ２を用いて鍵Ｋを暗号化する。鍵Ｋを暗号化すると、ＣＰＵ２１は、暗号化された鍵Ｋ（Ｋ’）及び現在の日付を示す日付情報Ｄを含む復号化コマンドを生成し、生成された復号化コマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する。図３が示すように、コマンドのデータ部は、暗号化された鍵Ｋ’及び日付情報Ｄを含む。
【００３９】
ＣＰＵ１１が当該復号化コマンドを送信すると、ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該復号化コマンドを受信する。当該復号化コマンドを受信すると、ＣＰＵ２１は、当該復号化コマンドから日付情報Ｄを抽出する。日付情報Ｄを抽出すると、ＣＰＵ２１は、日付情報が示す現在の日付と復号鍵有効期限データ２４ｂが示す有効期限とを比較し、現在の日付が有効期限内であるか判定する。前述のとおり、現在の日付は、有効期限内ではない。したがって、ＣＰＵ２１は、記録領域２４ａが格納する復号鍵Ｂ１の有効期限が切れていると判定する。
【００４０】
復号鍵Ｂ１の有効期限が切れていると判定すると、ＣＰＵ２１は、所定の復号鍵生成アルゴリズムに従って新たな復号鍵Ｂ２を生成する。復号鍵生成アルゴリズムは、暗号鍵生成アルゴリズムが生成した暗号鍵で暗号化したデータを復号化するために用いられる復号鍵を生成する。復号鍵生成アルゴリズムは、現在格納されている復号鍵Ｂ１に基づいて復号鍵Ｂ２を生成してもよいし、復号鍵Ｂ１から独立に復号鍵Ｂ２を生成してもよい。たとえば、暗号鍵と復号鍵とが同一である場合、復号鍵生成アルゴリズムは、暗号化鍵生成アルゴリズムと同一であってもよい。また、暗号鍵と復号鍵とが異なる場合、復号鍵生成アルゴリズムは、暗号鍵生成アルゴリズムが生成する暗号鍵に対応する復号鍵を生成する。
【００４１】
復号鍵生成アルゴリズムは、予め決定され、ＮＶＭ２４又はＲＯＭ２２などにプログラムとして格納される。ＣＰＵ２１は、当該プログラムを実行することで、復号鍵生成アルゴリズムを実現する。
【００４２】
復号鍵Ｂ２を生成すると、ＣＰＵ２１は、生成された復号鍵Ｂ２を記録領域２４ａに復号鍵として格納する。ＣＰＵ２１は、復号鍵Ｂ１を削除してもよいし、履歴として復号鍵Ｂ１をＮＶＭ２４の他の領域に格納してもよい。
【００４３】
復号鍵Ｂ２を記録領域２４ａに格納すると、ＣＰＵ２１は、ＩＣカード処理装置１へ送信するレスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納する。
【００４４】
レスポンスにデータＳを格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ２を用いて当該コマンドのデータ部が格納する鍵Ｋ’を復号化する。鍵Ｋ’を復号化すると、ＣＰＵ２１は、鍵Ｋを得る。鍵Ｋを得ると、ＣＰＵ２１は、生成されたレスポンスのデータ部に鍵Ｋを格納する。図３が示すように、レスポンスのデータ部は、鍵Ｋ及びデータＳを格納する。
【００４５】
レスポンスに鍵Ｋを格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する。ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。
【００４６】
次に、ＩＣカード処理装置１がコマンドを送信する動作例について説明する。  
図４は、ＩＣカード処理装置１がコマンドを送信する動作例を説明するためのフローチャートである。
【００４７】
まず、ＩＣカード処理装置１のＣＰＵ１１は、現在の日付が有効期限内であるか判定する（ステップＳ１１）。即ち、ＣＰＵ１１は、現在の日付と暗号鍵有効期限データ１４ｂが示す有効期限とを比較する。
【００４８】
現在の日付が有効期限内でないと判定すると（ステップＳ１２、ＮＯ）、ＣＰＵ１１は、暗号鍵生成アルゴリズムに従って新しい暗号鍵を生成する（ステップＳ１３）。新しい暗号鍵を生成すると、ＣＰＵ１１は、記録領域１４ａに新しい暗号鍵を格納する（ステップＳ１４）。
【００４９】
現在の日付が有効期限内であると判定した場合（ステップＳ１２、ＹＥＳ）、又は、記録領域１４ａに新しい暗号鍵を格納した場合（ステップＳ１４）、ＣＰＵ１１は、記録領域１４ａが格納する暗号鍵でＩＣカード２へ送信するデータ（送信データ）（たとえば、鍵Ｋ）を暗号化する（ステップＳ１５）。即ち、記録領域１４ａに新しい暗号鍵を格納した場合、ＣＰＵ１１は、新しい暗号鍵を用いて送信データを暗号化する。また、現在の日付が有効期限内であると判定した場合、ＣＰＵ１１は、元の暗号鍵を用いて送信データを暗号化する。
【００５０】
暗号鍵で送信データを暗号化すると、ＣＰＵ１１は、暗号化された送信データ（暗号化データ）、及び、現在の日付を示す日付情報Ｄを格納する復号化コマンドを生成する（ステップＳ１６）。復号化コマンドを生成すると、ＣＰＵ１１は、生成された復号化コマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する（ステップＳ１７）。復号化コマンドを送信すると、ＣＰＵ１１は、動作を終了する。
【００５１】
次に、ＩＣカード２が復号化コマンドを実行する動作例について説明する。  
図５は、ＩＣカード２が復号化コマンドを実行する動作例について説明するためのフローチャートである。  
まず、ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１からコマンドを受信したか判定する（ステップＳ２１）。
【００５２】
コマンドを受信していないと判定すると（ステップＳ２１、ＮＯ）、ＣＰＵ２１は、ステップＳ２１へ戻る。  
コマンドを受信したと判定すると（ステップＳ２１、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドの内容を判定する（ステップＳ２２）。即ち、ＣＰＵ２１は、受信されたコマンドが、復号化コマンドであるか判定する。
【００５３】
受信されたコマンドが復号化コマンドであると判定すると（ステップＳ２３、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドから日付情報Ｄを抽出する（ステップＳ２４）。日付情報Ｄを抽出すると、ＣＰＵ２１は、抽出された日付情報が示す現在の日付と復号鍵有効期限とを比較する（ステップＳ２５）。
【００５４】
現在の日付が有効期限内でないと判定すると（ステップＳ２６、ＮＯ）、ＣＰＵ２１は、復号鍵生成アルゴリズムに従って新しい復号鍵を生成する（ステップＳ２７）。新しい復号鍵を生成すると、ＣＰＵ２１は、生成された復号鍵を記録領域２４ａに格納する（ステップＳ２８）。
【００５５】
生成された復号鍵を記録領域２４ａに格納すると、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵が更新されたことを示す情報（即ち、データＳ）を格納する（ステップＳ２９）。なお、ＣＰＵ２１は、生成されたレスポンスを、ＲＡＭ２３の送信バッファに格納してもよい。
【００５６】
現在の日付が有効期限内であると判定した場合（ステップＳ２６、ＹＥＳ）、又は、生成されたレスポンスのデータ部に復号鍵が更新されたことを示す情報を格納した場合（ステップＳ２９）、ＣＰＵ２１は、受信された復号化コマンドから暗号化データを抽出する（ステップＳ３０）。
【００５７】
受信された復号化コマンドから暗号化データを抽出すると、ＣＰＵ２１は、復号化アルゴリズムに従って記録領域２４ａが格納する復号鍵を用いて暗号化データを復号化する（ステップＳ３１）。暗号化データを復号化すると、ＣＰＵ２１は、復号化されたデータ（送信データ）をレスポンスのデータ部に格納する（ステップＳ３２）。送信データをレスポンスのデータ部に格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する（ステップＳ３３）。
【００５８】
受信されたコマンドが復号化コマンドでないと判定すると（ステップＳ２３、ＮＯ）、ＣＰＵ２１は、受信されたコマンドに応じた処理を実行する（ステップＳ３４）。なお、ステップＳ３４において、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信してもよい。
【００５９】
通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信した場合（ステップＳ３３）、又は、受信されたコマンドに応じた処理を実行した場合（ステップＳ３４）、ＣＰＵ２１は、動作を終了する。
【００６０】
なお、ＩＣカード処理装置１のＣＰＵ１１は、新しい暗号鍵を生成した場合に、暗号鍵有効期限データ１４ｂを更新してもよい。また、同様に、ＩＣカード２のＣＰＵ２１は、新しい復号鍵を生成した場合に、復号鍵有効期限データ２４ｂを更新してもよい。この場合、更新された暗号鍵有効期限データ１４ｂと更新された復号鍵有効期限データ２４ｂは、同一である。
【００６１】
以上のように構成されたＩＣカード処理装置は、有効期限が過ぎた暗号鍵を更新することができる。同様に、ＩＣカードは、有効期限が過ぎた復号鍵を更新することができる。そのため、ＩＣカード処理装置及びＩＣカードは、それぞれ同じ暗号鍵及び同じ復号鍵を使用し続けず、両者間の通信の安全性は、向上する。
【００６２】
（第２実施形態）
次に、第２実施形態について説明する。  
第２実施形態は、ＩＣカード２のＣＰＵ２１がレスポンスのデータ部に新たに生成された復号鍵を格納する点で第１実施形態と異なる。したがって、その他の点については同一の符号を付して詳細な説明を省略する。
【００６３】
次に、第２実施形態に係るＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
ＩＣカード処理装置１がコマンドを送信する動作例は、第１実施形態に係るＩＣカード処理装置１と同様であるので、その説明を省略する。
【００６４】
図６は、ＩＣカード２の機能例を示すブロック図である。  
ＩＣカード２のＣＰＵ２１は、第１実施形態においてＣＰＵ２１がＩＣカード処理装置１からコマンドを受信してからレスポンスのデータ部に復号鍵を更新したことを示す情報を格納するまでの動作と同様の動作を行う。したがって、レスポンスのデータ部に復号鍵を更新したことを示す情報を格納する動作以降について説明する。
【００６５】
レスポンスのデータ部に復号鍵の更新したことを示す情報を格納すると、ＩＣカード２のＣＰＵ２１は、生成された復号鍵Ｂ２を暗号化する。ＣＰＵ２１が行う暗号化の方法は、ＩＣカード処理装置１が復号化できる方法であればよく、特定の方法に限定されるものではない。
【００６６】
復号鍵Ｂ２を暗号化すると、ＣＰＵ２１は、暗号化された復号鍵Ｂ２（Ｂ２’）をレスポンスのデータ部に格納する。  
レスポンスのデータ部にＢ２’を格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ２を用いて復号化コマンドのデータ部が格納する鍵Ｋ’を復号化する。
【００６７】
ＣＰＵ２１は、この動作以降の動作については、第１実施形態に係るＩＣカード２のＣＰＵ２１の動作と同様の動作を行う。したがって、この動作以降については、説明を省略する。
【００６８】
ＩＣカード処理装置１は、カードリーダライタ１５を通じてＩＣカード２からレスポンスを受信する。レスポンスを受信すると、ＩＣカード処理装置１は、レスポンスが格納するＢ２’を復号化し、復号鍵Ｂ２を得る。復号鍵Ｂ２を得ると、ＩＣカード処理装置１は、レスポンスから得られた復号鍵Ｂ２が適切な復号鍵であるか確認する。
【００６９】
図７は、ＩＣカード２の動作例を説明するためのフローチャートである。  
図７が示すフローチャートは、ステップＳ２９とステップＳ３０との間にステップＳ４１及びステップＳ４２が挿入される点で図５が示すフローチャートと異なる。したがって、他の点については説明を省略する。
【００７０】
生成されたレスポンスのデータ部に復号鍵が更新されたことを示す情報を格納すると（ステップＳ２９）、ＣＰＵ２１は、生成された新しい復号鍵を暗号化する（ステップＳ４１）。生成された新しい復号鍵を暗号化すると、ＣＰＵ２１は、暗号化された復号鍵をレスポンスのデータ部に格納する（ステップＳ４２）。暗号化された復号鍵をレスポンスのデータ部に格納すると、ＣＰＵ２１は、ステップＳ３０へ進む。
【００７１】
以上のように構成されたＩＣカードは、新たに生成した復号鍵をＩＣカード処理装置へ送信する。その結果、ＩＣカード処理装置は、ＩＣカードにおいて復号鍵が適切に生成されたか確認することができる。
【００７２】
（第３実施形態）
次に、第３実施形態について説明する。  
第３実施形態は、ＩＣカード２が復号鍵を更新するコマンドを要求する点で第１実施形態と異なる。したがって、その他の点については詳細な説明を省略する。
【００７３】
第２実施形態に係るＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
図８は、復号化コマンドの実行に関するＩＣカード２の機能例を示すブロック図である。図９は、復号鍵更新コマンドの実行に関するＩＣカード２の機能例を示すブロック図である。
【００７４】
まず、ＩＣカード処理装置１のＣＰＵ１１は、暗号化アルゴリズムに従って暗号鍵Ａ１を用いて鍵Ｋを暗号化する。鍵Ｋを暗号化すると、ＣＰＵ１１は、暗号化された鍵Ｋ（Ｋ’）及び現在の日付を示す日付情報Ｄを含むコマンドを生成し、生成されたコマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する。
【００７５】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該コマンドを受信する。当該コマンドを受信すると、ＣＰＵ２１は、当該コマンドから日付情報Ｄを抽出する。日付情報Ｄを抽出すると、ＣＰＵ２１は、日付情報が示す現在の日付と復号鍵有効期限データ２４ｂが示す有効期限とを比較し、現在の日付が有効期限内であるか判定する。前述のとおり、現在の日付は、有効期限内ではない。したがって、ＣＰＵ２１は、記録領域２４ａが格納する復号鍵Ｂ１の有効期限が切れていると判定する。
【００７６】
復号鍵Ｂ１の有効期限が切れていると判定すると、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新させる復号鍵更新コマンドを要求することを示すデータＴを格納する。
【００７７】
レスポンスのデータ部にデータＴを格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ１を用いて鍵Ｋ’を復号化する。鍵Ｋ’を復号化すると、ＣＰＵ２１は、復号化した鍵Ｋをレスポンスのデータ部に格納する。図８が示すように、レスポンスのデータ部は、鍵Ｋ及びデータＴを格納する。
【００７８】
復号化した鍵Ｋをレスポンスのデータ部に格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する。  
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ１１は、当該レスポンスが、復号鍵を更新する復号鍵更新コマンドを要求することを示すデータＴを含むか判定する。ここでは、ＣＰＵ１１は、当該レスポンスがデータＴを含むと判定する。当該レスポンスがデータＴを含むと判定すると、ＣＰＵ１１は、カードリーダライタ１５を通じて、復号鍵を更新させる復号鍵更新コマンドをＩＣカード２へ送信する。
【００７９】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該コマンドを受信する。当該コマンドを受信すると、ＣＰＵ２１は、ＣＰＵ２１は、所定の復号鍵生成アルゴリズムに従って新たな復号鍵Ｂ２を生成する。
【００８０】
復号鍵Ｂ２を生成すると、ＣＰＵ２１は、生成された復号鍵Ｂ２を記録領域２４ａに復号鍵として格納する。ＣＰＵ２１は、復号鍵Ｂ１を削除してもよいし、履歴として復号鍵Ｂ１をＮＶＭ２４の他の領域に格納してもよい。
【００８１】
復号鍵Ｂ２を記録領域２４ａに格納すると、ＣＰＵ２１は、ＩＣカード処理装置１へ送信するレスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納する。生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納すると、ＣＰＵ２１は、通信部２５を通じて当該レスポンスをＩＣカード処理装置１へ送信する。
【００８２】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ２１は、当該レスポンスが、復号鍵を更新したことを示すデータＳを含むか判定する。ここでは、ＣＰＵ２１は、当該レスポンスがデータＳを含むと判定する。当該レスポンスがデータＳを含むと判定すると、ＣＰＵ１１は、暗号鍵生成アルゴリズムに従って暗号鍵Ａ２を生成し、生成された暗号鍵Ａ２を記録領域１４ａに格納する。暗号鍵Ａ２を記録領域１４ａに格納すると、ＣＰＵ１１は、動作を終了する。
【００８３】
なお、暗号鍵生成コマンドは、復号鍵を生成するためのパラメータを含んでもよい。この場合、ＩＣカード２のＣＰＵ２１は、当該パラメータを用いて復号鍵を生成する。  
また、ＩＣカード処理装置１のＣＰＵ１１は、復号鍵生成コマンドを送信する前に、暗号鍵を更新してもよい。
【００８４】
次に、ＩＣカード２が復号化コマンドを受信した場合の動作例について説明する。  
図１０は、ＩＣカード２が復号化コマンドを受信した場合の動作例について説明するためのフローチャートである。  
図１０が示すフローチャートは、ステップＳ２７、ステップＳ２８及びステップＳ２９がなく、ステップ５１がある点で、図５が示すフローチャートと異なる。したがって、その他の点については、説明を省略する。
【００８５】
現在の日付が有効期限内でないと判定すると（ステップＳ２６、ＮＯ）、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵の更新を要求する情報（即ち、データＴ）を格納する（ステップＳ５１）。生成されたレスポンスのデータ部にデータＴを格納すると、ＣＰＵ２１は、ステップＳ３０へ進む。
【００８６】
次に、ＩＣカード処理装置１が復号鍵更新コマンドを送信する動作例について説明する。  
図１１は、ＩＣカード処理装置１が復号鍵更新コマンドを送信する動作例を説明するためのフローチャートである。  
ここでは、ＩＣカード処理装置１のＣＰＵ２１は、暗号化データを含むコマンドをＩＣカード２へ送信したものとする。
【００８７】
まず、ＩＣカード処理装置１のＣＰＵ２１は、カードリーダライタ１５を通じてＩＣカード２からのレスポンスを受信したか判定する（ステップＳ５４）。  
レスポンスを受信していないと判定すると（ステップＳ５４、ＮＯ）、ＣＰＵ２１は、ステップＳ５４へ戻る。
【００８８】
レスポンスを受信したと判定すると（ステップＳ５４、ＹＥＳ）、ＣＰＵ２１は、受信されたレスポンスに復号鍵を更新するコマンドを要求することを示すデータＴが含まれるか判定する（ステップＳ５５）。
【００８９】
当該レスポンスにデータＴが含まれると判定すると（ステップＳ５５、ＹＥＳ）、ＣＰＵ２１は、カードリーダライタ１５を通じて復号鍵更新コマンドをＩＣカード２へ送信する（ステップＳ５６）。  
当該レスポンスにデータＴが含まれていないと判定する場合（ステップＳ５５、ＮＯ）、又は、復号鍵更新コマンドをＩＣカード２へ送信した場合（ステップＳ５６）、ＣＰＵ２１は、動作を終了する。
【００９０】
次に、ＩＣカード２のＣＰＵ２１が復号鍵を更新する場合の動作例について説明する。  
図１２は、ＩＣカード２のＣＰＵ２１が復号鍵を更新する場合の動作例について説明するためのフローチャートである。  
まず、ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１からコマンドを受信したか判定する（ステップＳ６１）。
【００９１】
コマンドを受信していないと判定すると（ステップＳ６１、ＮＯ）、ＣＰＵ２１は、ステップＳ６１へ戻る。  
コマンドを受信したと判定すると（ステップＳ６１、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドの内容を判定する（ステップＳ６２）。即ち、ＣＰＵ２１は、受信されたコマンドが、復号鍵更新コマンドであるか判定する。
【００９２】
受信されたコマンドが復号鍵更新コマンドであると判定すると（ステップＳ６３、ＹＥＳ）、ＣＰＵ２１は、復号鍵生成アルゴリズムに従って新しい復号鍵を生成する（ステップＳ６４）。新しい復号鍵を生成すると、ＣＰＵ２１は、生成された復号鍵を記録領域２４ａに格納する（ステップＳ６５）。
【００９３】
生成された復号鍵を記録領域２４ａに格納すると、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵が更新されたことを示す情報（即ち、データＳ）を格納する（ステップＳ６６）。生成されたレスポンスのデータ部にデータＳを格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する（ステップＳ６７）。
【００９４】
受信されたコマンドが復号化コマンドでないと判定すると（ステップＳ６３、ＮＯ）、ＣＰＵ２１は、受信されたコマンドに応じた処理を実行する（ステップＳ６８）。なお、ステップＳ６８において、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信してもよい。
【００９５】
通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信した場合（ステップＳ６７）、又は、受信されたコマンドに応じた処理を実行した場合（ステップＳ６８）、ＣＰＵ２１は、動作を終了する。
【００９６】
次に、ＩＣカード処理装置１がデータＳを含むレスポンスを受信した場合に暗号鍵を生成する動作例について説明する。  
図１３は、ＩＣカード処理装置１がデータＳを含むレスポンスを受信した場合に暗号鍵を生成する動作例について説明するためのフローチャートである。  
まず、ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２からレスポンスを受信したか判定する（ステップＳ５７）。
【００９７】
レスポンスを受信していないと判定すると（ステップＳ５７、ＮＯ）、ＣＰＵ１１は、ステップＳ５７へ戻る。  
レスポンスを受信したと判定すると（ステップＳ５７、ＹＥＳ）、ＣＰＵ１１は、受信されたレスポンスにデータＳが含まれるか判定する（ステップＳ５８）。
【００９８】
受信されたレスポンスにデータＳが含まれると判定すると（ステップＳ５８、ＹＥＳ）、ＣＰＵ１１は、暗号鍵生成アルゴリズムに従って新しい暗号鍵を生成する（ステップＳ５９）。新しい暗号鍵を生成すると、ＣＰＵ１１は、記録領域１４ａに新しい暗号鍵を格納する（ステップＳ６０）。
【００９９】
受信されたレスポンスにデータＳが含まれていないと判定した場合（ステップＳ５８、ＮＯ）、又は、記録領域１４ａに新しい暗号鍵を格納した場合（ステップＳ６０）、ＣＰＵ１１は、動作を終了する。
【０１００】
なお、受信されたレスポンスにデータＳが含まれていないと判定した場合（ステップＳ５８、ＮＯ）、ＣＰＵ１１は、再度、ＩＣカード２へ復号鍵更新コマンドを送信するなどのエラー処理を行ってもよい。
【０１０１】
以上のように構成されたＩＣカードは、有効期限が切れた復号鍵を更新させるコマンドをＩＣカード処理装置へ要求することができる。そのため、ＩＣカード処理装置１は、暗号鍵及び復号鍵の有効期限を管理することなく、有効期限を過ぎた暗号鍵、及び、有効期限を過ぎた復号鍵を更新することができる。
【０１０２】
（第４実施形態）
次に、第４実施形態について説明する。  
第４実施形態は、暗号鍵が所定の回数使用された場合にＩＣカード処理装置１が暗号鍵を更新する点、及び、復号鍵が所定の回数使用された場合にＩＣカード２が復号鍵を更新する点において、第１実施形態と異なる。したがって、その他の点については、詳細な説明を省略する。
【０１０３】
まず、ＩＣカード処理装置１及びＩＣカード２の構成例について説明する。  
ＩＣカード処理装置１のＮＶＭ１４は、暗号化回数カウンタを格納する記録領域１４ｃ、及び、暗号化回数上限値を格納する記録領域１４ｄを有する。  
ＩＣカード２のＮＶＭ２４は、復号化回数カウンタを格納する記録領域２４ｃ、及び、復号化回数上限値を格納する記録領域２４ｄを有する。
【０１０４】
記録領域１４ｃが格納する暗号化回数カウンタ（暗号化回数カウンタ１４ｃ）は、ＩＣカード処理装置１のＣＰＵ１１が、記録領域１４ａが格納する暗号鍵を用いてデータを暗号化した回数をカウントする。たとえば、記録領域１４ａが暗号鍵Ａ１を格納する場合、暗号化回数カウンタ１４ｃは、ＣＰＵ１１が暗号鍵Ａ１を用いてデータを暗号化した回数を示す。
【０１０５】
ＣＰＵ１１は、記録領域１４ａが格納する暗号鍵を用いてデータを暗号化するたびに、暗号化回数カウンタ１４ｃをカウントアップする。また、記録領域１４ａが格納する暗号鍵が更新されると、ＣＰＵ１１は、暗号化回数カウンタ１４ｃをリセットする。
【０１０６】
記録領域１４ｄが格納する暗号化回数上限値（実行回数上限値１４ｄ）は、ＣＰＵ１１が、記録領域１４ａが格納する暗号鍵を用いてデータを暗号化する回数の上限を示す。たとえば、記録領域１４ａが暗号鍵Ａ１を格納する場合、暗号化回数上限値１４ｄは、ＣＰＵ１１が暗号鍵Ａ１を用いてデータを暗号化する回数の上限値を示す。
【０１０７】
暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達した場合、ＣＰＵ１１は、暗号鍵を更新する。ＣＰＵ１１は、暗号鍵に応じて暗号化回数上限値１４ｄも更新してもよいし、しなくともよい。
【０１０８】
記録領域２４ｃが格納する復号化回数カウンタ（復号化回数カウンタ２４ｃ）は、ＩＣカード２のＣＰＵ２１が、記録領域２４ａが格納する復号鍵を用いてデータを復号化した回数をカウントする。たとえば、記録領域２４ａが復号鍵Ｂ１を格納する場合、復号化回数カウンタ２４ｃは、ＣＰＵ２１が復号鍵Ｂ１を用いてデータを復号化した回数を示す。
【０１０９】
ＣＰＵ２１は、記録領域２４ａが格納する復号鍵を用いてデータを復号化するたびに、復号化回数カウンタ２４ｃをカウントアップする。また、記録領域２４ａが格納する復号鍵が更新されると、ＣＰＵ２１は、復号化回数カウンタ２４ｃをリセットする。
【０１１０】
ＩＣカード処理装置１のＣＰＵ１１がデータを暗号化する回数とＩＣカード２のＣＰＵ２１がデータを復号化する回数とは同一であるので、復号化回数カウンタ２４ｃは、暗号化回数カウンタ１４ｃと同一の値を格納する。
【０１１１】
記録領域２４ｄが格納する復号化回数上限値（復号化回数上限値２４ｄ）は、ＣＰＵ２１が、記録領域２４ａが格納する復号鍵を用いてデータを復号化する回数の上限を示す。たとえば、記録領域２４ａが復号鍵Ｂ１を格納する場合、復号化回数上限値２４ｄは、ＣＰＵ２１が復号鍵Ｂ１を用いてデータを復号化する回数の上限値を示す。
【０１１２】
復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達した場合、ＣＰＵ２１は、復号鍵を更新する。ＣＰＵ２１は、復号鍵に応じて復号化回数上限値２４ｄも更新してもよいし、しなくともよい。  
復号化回数上限値２４ｄは、暗号化回数上限値１４ｄと同一の値を格納する。
【０１１３】
次に、ＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
ここでは、暗号化回数カウンタ１４ｃは暗号化回数上限値１４ｄに達しており、復号化回数カウンタ２４ｃは復号化回数上限値２４ｄに達しているものとする。また、ＩＣカード処理装置１のＣＰＵ１１がＩＣカード２へ送信するデータは、鍵Ｋであるものとする。また、ＩＣカード処理装置１のＣＰＵ１１は、鍵Ｋを暗号化した鍵Ｋ’をＩＣカード２に復号化させるコマンド（復号化コマンド）を送信しようとする。
【０１１４】
図１４は、ＩＣカード２の機能例を示すブロック図である。  
まず、ＩＣカード処理装置１のＣＰＵ１１は、暗号化回数カウンタ１４ｃが示す値が暗号化回数上限値１４ｄに達しているか判定する。即ち、ＣＰＵ１１は、記録領域１４ｃから暗号化回数カウンタ１４ｃと、記録領域１４ｄから暗号化回数上限値１４ｄとを読み出し、両者を比較する。ここでは、暗号化回数カウンタ１４ｃは暗号化回数上限値１４ｄに達している。したがって、ＣＰＵ１１は、暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達していると判定する。
【０１１５】
暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達していると判定する、ＣＰＵ１１は、所定の暗号鍵生成アルゴリズムに従って新たな暗号鍵Ａ２を生成する。  
暗号鍵Ａ２を生成すると、ＣＰＵ１１は、暗号鍵Ａ２を記録領域１４ａに暗号鍵として格納する。ＣＰＵ１１は、暗号鍵Ａ１を削除してもよいし、履歴として暗号鍵Ａ１をＮＶＭ１４の他の領域に格納してもよい。
【０１１６】
暗号鍵Ａ２を格納すると、ＣＰＵ１１は、暗号化回数カウンタ１４ｃをリセットする。即ち、ＣＰＵ１１は、暗号化回数カウンタ１４ｃを「０」にする。  
暗号化回数カウンタ１４ｃをリセットすると、ＣＰＵ１１は、暗号鍵Ａ２を用いて鍵Ｋを暗号化する。鍵Ｋを暗号化すると、ＣＰＵ１１は、暗号化回数カウンタ１４ｃをカウントアップする。即ち、ＣＰＵ１１は、暗号化回数カウンタ１４ｃに１を加えた値を暗号化回数カウンタ１４ｃとして記録領域１４ｃに格納する。
【０１１７】
暗号化回数カウンタ１４ｃをカウントアップすると、ＣＰＵ２１は、暗号化された鍵Ｋ（Ｋ’）を含む復号化コマンドを生成し、生成された復号化コマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する。図１４が示すように、復号化コマンドのデータ部は、暗号化された鍵Ｋ’を含む。
【０１１８】
ＣＰＵ１１がカードリーダライタ１５を通じて当該復号化コマンドを送信すると、ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該復号化コマンドを受信する。当該復号化コマンドを受信すると、ＣＰＵ２１は、復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達しているか判定する。即ち、ＣＰＵ２１は、記録領域２４ｃから復号化回数カウンタ２４ｃと、記録領域２４ｄから復号化回数上限値２４ｄとを読み出し、両者を比較する。ここでは、復号化回数カウンタ２４ｃは復号化回数上限値２４ｄに達している。したがって、ＣＰＵ２１は、復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定する。
【０１１９】
復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定すると、ＣＰＵ２１は、所定の復号鍵生成アルゴリズムに従って新たな復号鍵Ｂ２を生成する。  
復号鍵Ｂ２を生成すると、ＣＰＵ２１は、生成された復号鍵Ｂ２を記録領域２４ａに復号鍵として格納する。ＣＰＵ２１は、復号鍵Ｂ１を削除してもよいし、履歴として復号鍵Ｂ１をＮＶＭ２４の他の領域に格納してもよい。
【０１２０】
復号鍵Ｂ２を記録領域２４ａに格納すると、ＣＰＵ２１は、ＩＣカード処理装置１へ送信するレスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納する。
【０１２１】
レスポンスにデータＳを格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ２を用いて当該コマンドのデータ部が格納する鍵Ｋ’を復号化する。鍵Ｋ’を復号化すると、ＣＰＵ２１は、復号化回数カウンタ２４ｃをカウントアップする。即ち、ＣＰＵ２１は、復号化回数カウンタ２４ｃに１を加えた値を復号化回数カウンタ２４ｃとして記録領域２４ｃに格納する。
【０１２２】
復号化回数カウンタ２４ｃをカウントアップすると、ＣＰＵ２１は、生成されたレスポンスのデータ部に復号化された鍵Ｋを格納する。図１４が示すように、レスポンスのデータ部は、鍵Ｋ及びデータＳを格納する。
【０１２３】
レスポンスに鍵Ｋを格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する。ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。
【０１２４】
次に、ＩＣカード処理装置１が復号化コマンドを送信する動作例について説明する。  
図１５は、ＩＣカード処理装置１が復号化コマンドを送信する動作例を説明するためのフローチャートである。
【０１２５】
まず、ＩＣカード処理装置１のＣＰＵ１１は、暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達しているか判定する（ステップＳ７１）。即ち、ＣＰＵ１１は、暗号化回数カウンタ１４ｃと暗号化回数上限値１４ｄとを比較する。
【０１２６】
暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達していると判定すると（ステップＳ７２、ＹＥＳ）、ＣＰＵ１１は、暗号鍵生成アルゴリズムに従って新しい暗号鍵を生成する（ステップＳ７３）。新しい暗号鍵を生成すると、ＣＰＵ１１は、記録領域１４ａに新しい暗号鍵を格納する（ステップＳ７４）。記録領域１４ａに新しい暗号鍵を格納すると、ＣＰＵ１１は、暗号化回数カウンタをリセットする（ステップＳ７５）。
【０１２７】
暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達していないと判定した場合（ステップＳ７２、ＮＯ）、又は、暗号化回数カウンタをリセットした場合（ステップＳ７５）、ＣＰＵ１１は、記録領域１４ａが格納する暗号鍵でＩＣカード２へ送信するデータ（送信データ）（たとえば、鍵Ｋ）を暗号化する（ステップＳ７６）。即ち、記録領域１４ａに新しい暗号鍵を格納した場合、ＣＰＵ１１は、新しい暗号鍵を用いて送信データを暗号化する。また、暗号化回数カウンタ１４ｃが暗号化回数上限値１４ｄに達していないと場合、ＣＰＵ１１は、元の暗号鍵を用いて送信データを暗号化する。
【０１２８】
暗号鍵で送信データを暗号化すると、ＣＰＵ１１は、暗号化回数カウンタ１４ｃをカウントアップする（ステップＳ７７）。  
暗号化回数カウンタ１４ｃをカウントアップすると、ＣＰＵ１１は、暗号化された送信データ（暗号化データ）を含む復号化コマンドを生成する（ステップＳ７８）。復号化コマンドを生成すると、ＣＰＵ１１は、生成された復号化コマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する（ステップＳ７９）。復号化コマンドを送信すると、ＣＰＵ１１は、動作を終了する。
【０１２９】
次に、ＩＣカード２が復号化コマンドを実行する動作例について説明する。  
図１６は、ＩＣカード２が復号化コマンドを実行する動作例を説明するためのフローチャートである。
【０１３０】
図１６が示すフローチャートは、ステップＳ２４がない点、ステップＳ２５及びステップＳ２６がそれぞれステップＳ８１及びステップ８２に代わる点、ステップＳ２８とステップＳ２９の間にステップＳ８３が挿入される点、及び、ステップＳ３１とステップＳ３２の間にステップＳ８４が挿入される点で図５が示すフローチャートと異なる。したがって、他の点については説明を省略する。
【０１３１】
受信されたコマンドが復号化コマンドであると判定すると（ステップＳ２３、ＹＥＳ）、ＣＰＵ２１は、復号化回数カウンタ２４ｃと復号化回数上限値２４ｄとを比較する（ステップＳ８１）。
【０１３２】
復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定すると（ステップＳ８２、ＹＥＳ）、ＣＰＵ２１は、ステップＳ２７へ進む。復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していないと判定すると（ステップＳ８２、ＮＯ）、ＣＰＵ２１は、ステップＳ３０へ進む。
【０１３３】
また、生成された復号鍵を記録領域２４ａに格納すると（ステップＳ２８）、ＣＰＵ２１は、復号化回数カウンタ２４ｃをリセットする（ステップＳ８３）。復号化回数カウンタ２４ｃをリセットすると、ＣＰＵ２１は、ステップＳ２９へ進む。
【０１３４】
また、暗号化データを復号化すると（ステップＳ３１）、ＣＰＵ２１は、復号化回数カウンタをカウントアップする（ステップＳ８４）。復号化回数カウンタをカウントアップすると、ＣＰＵ２１は、ステップＳ３２へ進む。
【０１３５】
なお、第４実施形態に係るＩＣカード処理装置１及びＩＣカード２は、第１実施形態に係るＩＣカード処理装置１及びＩＣカード２の特徴を同時に備えてもよい。
【０１３６】
以上のように構成されるＩＣカード処理装置は、所定の回数使用された暗号鍵を更新することができる。同様に、ＩＣカードは、所定の回数使用された復号鍵を更新することができる。
【０１３７】
（第５実施形態）
次に、第５実施形態について説明する。
【０１３８】
第５実施形態は、ＩＣカード２のＣＰＵ２１がレスポンスのデータ部に新たに生成された復号鍵を格納する点で第４実施形態と異なる。したがって、その他の点については同一の符号を付して詳細な説明を省略する。
【０１３９】
次に、第５実施形態に係るＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
ＩＣカード処理装置１がコマンドを送信する動作例は、第１実施形態に係るＩＣカード処理装置１と同様であるので、その説明を省略する。
【０１４０】
図１７は、ＩＣカード２の機能例を示すブロック図である。  
ＩＣカード２のＣＰＵ２１は、第４実施形態においてＣＰＵ２１がＩＣカード処理装置１からコマンドを受信してからレスポンスのデータ部に復号鍵を更新したことを示す情報を格納するまでの動作と同様の動作を行う。したがって、レスポンスのデータ部に復号鍵を更新したことを示す情報を格納する動作以降について説明する。
【０１４１】
レスポンスのデータ部に復号鍵の更新したことを示す情報を格納すると、ＩＣカード２のＣＰＵ２１は、生成された復号鍵Ｂ２を暗号化する。ＣＰＵ２１が行う暗号化の方法は、ＩＣカード処理装置１で復号できる方法であればよく、特定の方法に限定されるものではない。
【０１４２】
復号鍵Ｂ２を暗号化すると、ＣＰＵ２１は、暗号化された復号鍵Ｂ２（Ｂ２’）をレスポンスのデータ部に格納する。  
レスポンスのデータ部にＢ２’を格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ２を用いて復号化コマンドのデータ部が格納する鍵Ｋ’を復号化する。
【０１４３】
ＣＰＵ２１は、この動作以降の動作については、第４実施形態に係るＩＣカード２のＣＰＵ２１の動作と同様の動作を行う。したがって、この動作以降については、説明を省略する。
【０１４４】
ＩＣカード処理装置１は、カードリーダライタ１５を通じてＩＣカード２からレスポンスを受信する。レスポンスを受信すると、ＩＣカード処理装置１は、レスポンスが格納するＢ２’を復号化し、復号鍵Ｂ２を得る。復号鍵Ｂ２を得ると、ＩＣカード処理装置１は、レスポンスから得られた復号鍵Ｂ２が適切な復号鍵であるか確認する。
【０１４５】
図１８は、ＩＣカード２の動作例を説明するためのフローチャートである。  
図１８が示すフローチャートは、ステップＳ２９とステップＳ３０との間にステップＳ４１及びステップＳ４２が挿入される点で図１６が示すフローチャートと異なる。したがって、他の点については説明を省略する。
【０１４６】
生成されたレスポンスのデータ部に復号鍵が更新されたことを示す情報を格納すると（ステップＳ２９）、ＣＰＵ２１は、生成された新しい復号鍵を暗号化する（ステップＳ４１）。生成された新しい復号鍵を暗号化すると、ＣＰＵ２１は、暗号化された復号鍵をレスポンスのデータ部に格納する（ステップＳ４２）。暗号化された復号鍵をレスポンスのデータ部に格納すると、ＣＰＵ２１は、ステップＳ３０へ進む。
【０１４７】
以上のように構成されたＩＣカードは、新たに生成した復号鍵をＩＣカード処理装置へ送信する。その結果、ＩＣカード処理装置は、ＩＣカードにおいて復号鍵が適切に生成されたか確認することができる。
【０１４８】
（第６実施形態）
次に、第６実施形態について説明する。  
第６実施形態は、ＩＣカード２が復号鍵を更新するコマンドを要求する点で第４実施形態と異なる。したがって、その他の点については詳細な説明を省略する。
【０１４９】
まず、ＩＣカード処理装置１の構成例について説明する。  
ＩＣカード処理装置１のＮＶＭ１４は、暗号化回数カウンタ１４ｃを格納する記録領域１４ｃ及び暗号化回数上限値１４ｄを格納する記録領域１４ｄを有しなくともよい。即ち、ＮＶＭ１４は、暗号化回数カウンタ１４ｃ及び暗号化回数上限値１４ｄを格納しなくともよい。
【０１５０】
第６実施形態に係るＩＣカード処理装置１とＩＣカード２との動作例について説明する。  
図１９は、復号化コマンドの実行に関するＩＣカード２の機能例を示すブロック図である。復号鍵更新コマンドの実行に関するＩＣカード２の機能例を示すブロック図は、図９と同様であるので省略する。
【０１５１】
まず、ＩＣカード処理装置１のＣＰＵ１１は、暗号化アルゴリズムに従って暗号鍵Ａ１を用いて鍵Ｋを暗号化する。鍵Ｋを暗号化すると、ＣＰＵ１１は、暗号化された鍵Ｋ（Ｋ’）を含む復号化コマンドを生成し、生成された復号化コマンドをカードリーダライタ１５を通じてＩＣカード２へ送信する。図１９が示すように、コマンドのデータ部は、暗号化された鍵Ｋ’を含む。
【０１５２】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該復号化コマンドを受信する。当該復号化コマンドを受信すると、ＣＰＵ２１は、復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達しているか判定する。ここでは、復号化回数カウンタ２４ｃは復号化回数上限値２４ｄに達している。したがって、ＣＰＵ２１は、復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定する。
【０１５３】
復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定すると、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新するコマンドを要求することを示すデータＴを格納する。
【０１５４】
レスポンスのデータ部にデータＴを格納すると、ＣＰＵ２１は、復号化アルゴリズムに従って復号鍵Ｂ１を用いて鍵Ｋ’を復号化する。鍵Ｋ’を復号化すると、ＣＰＵ２１は、復号化した鍵Ｋをレスポンスのデータ部に格納する。図１９が示すように、レスポンスのデータ部は、鍵Ｋ及びデータＴを格納する。
【０１５５】
復号化した鍵Ｋをレスポンスのデータ部に格納すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する。
【０１５６】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じて、復号鍵を更新させる復号鍵更新コマンドをＩＣカード２へ送信する。
【０１５７】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じて当該復号鍵更新コマンドを受信する。当該復号鍵更新コマンドを受信すると、ＣＰＵ２１は、ＣＰＵ２１は、所定の復号鍵生成アルゴリズムに従って新たな復号鍵Ｂ２を生成する。
【０１５８】
復号鍵Ｂ２を生成すると、ＣＰＵ２１は、生成された復号鍵Ｂ２を記録領域２４ａに復号鍵として格納する。ＣＰＵ２１は、復号鍵Ｂ１を削除してもよいし、履歴として復号鍵Ｂ１をＮＶＭ２４の他の領域に格納してもよい。
【０１５９】
復号鍵Ｂ２を記録領域２４ａに格納すると、ＣＰＵ２１は、復号化回数カウンタ２４ｃをリセットする。即ち、ＣＰＵ２１は、復号化回数カウンタ２４ｃを「０」にする。  
復号化回数カウンタ２４ｃをリセットすると、ＣＰＵ２１は、ＩＣカード処理装置１へ送信するレスポンスを生成し、生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納する。生成されたレスポンスのデータ部に復号鍵を更新したことを示すデータＳを格納すると、ＣＰＵ２１は、通信部２５を通じて当該レスポンスをＩＣカード処理装置１へ送信する。
【０１６０】
ＩＣカード処理装置１のＣＰＵ２１は、カードリーダライタ１５を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ２１は、暗号鍵生成アルゴリズムに従って暗号鍵Ａ２を生成し、生成された暗号鍵Ａ２を記録領域１４ａに格納する。暗号鍵Ａ２を記録領域１４ａに格納すると、ＣＰＵ２１は、動作を終了する。
【０１６１】
なお、暗号鍵生成コマンドは、復号鍵を生成するためのパラメータを含んでもよい。この場合、ＩＣカード２のＣＰＵ２１は、当該パラメータを用いて復号鍵を生成する。  
次に、ＩＣカード２が復号化コマンドを受信した場合の動作例について説明する。
【０１６２】
図２０は、ＩＣカード２が復号化コマンドを受信した場合の動作例について説明するためのフローチャートである。  
図２０が示すフローチャートは、ステップＳ２７、ステップＳ２８、ステップＳ８３及びステップＳ２９がなく、ステップ５１がある点で、図１６が示すフローチャートと異なる。したがって、その他の点については、説明を省略する。
【０１６３】
復号化回数カウンタ２４ｃが復号化回数上限値２４ｄに達していると判定すると（ステップＳ８２、ＹＥＳ）、ＣＰＵ２１は、レスポンスを生成し、生成されたレスポンスのデータ部に復号鍵の更新を要求する情報（即ち、データＴ）を格納する（ステップＳ５１）。データＴを格納すると、ＣＰＵ２１は、ステップＳ３０へ進む。
【０１６４】
ＩＣカード処理装置１が復号鍵更新コマンドを送信する動作例は、第３実施形態に係るＩＣカード処理装置１が復号鍵更新コマンドを送信する動作例と同様であるので説明及びフローチャートを省略する。  
次に、ＩＣカード２のＣＰＵ２１が復号鍵を更新する場合の動作例について説明する。  
図２１は、ＩＣカード２のＣＰＵ２１が復号鍵を更新する場合の動作例について説明するためのフローチャートである。  
図２１が示すフローチャートは、ステップＳ６５とステップＳ６６との間にステップＳ９１がある点で、図１２が示すフローチャートと異なる。したがって、その他の点については、説明を省略する。
【０１６５】
生成された復号鍵を記録領域２４ａに格納すると（ステップＳ６５）、ＣＰＵ２１は、復号化回数カウンタをリセットする（ステップＳ９１）。  
復号化回数カウンタをリセットすると、ＣＰＵ２１は、ステップＳ６６へ進む。
【０１６６】
ＩＣカード２がデータＳを含むレスポンスを受信した場合の動作例は、第３実施形態のＩＣカード２の動作例と同様であるので説明を省略する。
【０１６７】
以上のように構成されたＩＣカードは、復号化回数カウンタが復号化回数上限値に達した場合に復号鍵を更新させるコマンドをＩＣカード処理装置へ要求することができる。そのため、ＩＣカード処理装置１は、暗号化の回数又は復号化の回数を管理することなく、復号鍵を更新することができる。
【０１６８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６９】
１…ＩＣカード処理装置、２…ＩＣカード、１０…ＩＣカード処理システム、１１…ＣＰＵ、１４…ＮＶＭ、１４ａ乃至１４ｄ…記録領域、１５…カードリーダライタ、２１…ＣＰＵ、２４…ＮＶＭ、２４ａ乃至２４ｄ…記録領域、２５…通信部、Ｃ…本体、Ｃａ…ＩＣチップ、Ｍ…モジュール。
【図１】
2014182649.tif 000003
【図２】
2014182649.tif 000004
【図３】
2014182649.tif 000005
【図４】
2014182649.tif 000006
【図５】
2014182649.tif 000007
【図６】
2014182649.tif 000008
【図７】
2014182649.tif 000009
【図８】
2014182649.tif 000010
【図９】
2014182649.tif 000011
【図１０】
2014182649.tif 000012
【図１１】
2014182649.tif 000013
【図１２】
2014182649.tif 000014
【図１３】
2014182649.tif 000015
【図１４】
2014182649.tif 000016
【図１５】
2014182649.tif 000017
【図１６】
2014182649.tif 000018
【図１７】
2014182649.tif 000019
【図１８】
2014182649.tif 000020
【図１９】
2014182649.tif 000021
【図２０】
2014182649.tif 000022
【図２１】
2014182649.tif 000023