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