説明

携帯可能電子装置、携帯可能電子装置の制御方法

【課題】 間接的に、且つ、より高い精度でデータを検査することができる携帯可能電子装置、携帯可能電子装置の制御方法を提供する。
【解決手段】 一実施形態に係る携帯可能電子装置は、データを記憶するメモリと、外部機器から送信されたコマンドを受信する受信部と、前記受信部により発行コマンドを受信した場合、前記発行コマンドに基づいてデータを取得し、取得したデータを前記メモリに書き込むコマンド処理部と、前記受信部により検査コマンドを受信した場合、前記メモリのデータに基づいてハッシュ値を算出するハッシュ値算出部と、前記ハッシュ値算出部により算出されたハッシュ値に基づいてレスポンスを生成するレスポンス処理部と、前記レスポンス処理部により生成されたレスポンスを前記外部機器に送信する送信部と、を具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、携帯可能電子装置、携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、国際標準規格ISO/IEC7816に準拠したICカードである。ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
ICカードは、通常、出荷前にアプリケーション、制御データ、または他のデータなどを書き込む発行処理が行われる。このような発行処理によりICカードに書き込まれるデータは、例えば暗号鍵などの高い機密性が要求されるデータである場合が多い。この為、ICカードは、これらのデータを外部に容易に出力しないように構成されている。そこで、ICカードを発行する発行装置は、ICカードにコマンドを送信し、ICカードからのレスポンスが正しいか否かに基づいて、発行処理により正しくデータが格納されたか否かを判断する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−175403号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、コマンドに対するレスポンスの正否に基づいてICカード内のデータを検査する場合、全てのデータを確認することができない可能性がある。即ち、ICカードに送信したコマンドにより扱われないデータに不具合が生じている場合、上記の方法によると不具合が発見されない可能性がある。
【0007】
そこで、間接的に、且つ、より高い精度でデータを検査することができる携帯可能電子装置、携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
一実施形態に係る携帯可能電子装置は、データを記憶するメモリと、外部機器から送信されたコマンドを受信する受信部と、前記受信部により発行コマンドを受信した場合、前記発行コマンドに基づいてデータを取得し、取得したデータを前記メモリに書き込むコマンド処理部と、前記受信部により検査コマンドを受信した場合、前記メモリのデータに基づいてハッシュ値を算出するハッシュ値算出部と、前記ハッシュ値算出部により算出されたハッシュ値に基づいてレスポンスを生成するレスポンス処理部と、前記レスポンス処理部により生成されたレスポンスを前記外部機器に送信する送信部と、を具備する。
【図面の簡単な説明】
【0009】
【図1】図1は、一実施形態に係るICカード処理システムの例について説明するための図である。
【図2】図2は、一実施形態に係るICカードの例について説明するための図である。
【図3】図3は、一実施形態に係るICカード処理システムの例について説明するための図である。
【図4】図4は、一実施形態に係るICカード処理システムの例について説明するための図である。
【図5】図5は、一実施形態に係るICカード処理システムの例について説明するための図である。
【図6】図6は、一実施形態に係るICカード処理システムの例について説明するための図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、一実施形態に係る携帯可能電子装置、携帯可能電子装置の処理装置、及び携帯可能電子装置の処理システムについて詳細に説明する。
【0011】
本実施形態に係る携帯可能電子装置(ICカード)20及びICカード20を処理する処理装置(端末装置)10は、例えば、接触通信、及び/または非接触通信の機能を備える。これにより、ICカード20及び端末装置10は、互いにデータの送受信を行うことができる。
【0012】
図1は、一実施形態に係るICカード処理システム1の構成例を示す。
ICカード処理システム1は、ICカード20を処理する端末装置10と、ICカード20と、を備える。
【0013】
端末装置10は、CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、ディスプレイ18、及び電源部19を備える。CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、及びディスプレイ18は、それぞれバスを介して互いに接続されている。
【0014】
CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM12又は不揮発性メモリ14に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、カードリーダライタ15を介してICカード20とコマンド及びレスポンスの送受信を行う。
【0015】
ROM12は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。RAM13は、ワーキングメモリとして機能する揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM13は、カードリーダライタ15を介して外部の機器と送受信するデータを一時的に格納する。また、RAM13は、CPU11が実行するプログラムを一時的に格納する。
【0016】
不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【0017】
カードリーダライタ15は、ICカード20と通信を行うためのインターフェース装置である。カードリーダライタ15は、接触通信、または非接触通信によりICカード20とデータの送受信を行う。
【0018】
接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、ICカード20が装着されるスロットと、ICカード20が備えるコンタクトパターンと接続される複数の接触端子を備える。
【0019】
スロットにICカード20が装着される場合、カードリーダライタ15の複数の接触端子は、ICカード20のコンタクトパターンに接続される。これにより、端末装置10とICカード20とは電気的に接続される。カードリーダライタ15は、スロットに装着されるICカード20に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【0020】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【0021】
カードリーダライタ15は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ15は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置10は、通信可能範囲に存在するICカード20に対してデータを非接触で送信することができる。
【0022】
さらに、カードリーダライタ15のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ15は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置10は、ICカード20から送信された元のデータを取得することができる。
【0023】
操作部17は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部17は、生成した操作信号をCPUに入力する。これにより、CPU11は、操作者により入力された操作に基づいて処理を事項することができる。
【0024】
ディスプレイ18は、CPU11、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【0025】
電源部19は、端末装置10の各部に電力を供給する。電源部19は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置10の各部に供給する。
【0026】
図2は、一実施形態に係るICカード20の構成例を示す。
図2に示すように、ICカード20は、例えば、矩形状の本体21と、本体21内に内蔵されたICモジュール22とを備える。ICモジュール22は、ICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22内に形成されている。
【0027】
なお、本体21は、少なくとも通信部24が配設されるICモジュール22を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【0028】
ICチップ23は、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32などを備える。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32は、バスを介して互いに接続されている。
【0029】
通信部24は、端末装置(外部機器)10のカードリーダライタ15と通信を行うためのインターフェースである。通信部24は、接触通信、または非接触通信により、端末装置10とデータの送受信を行う。
【0030】
接触通信のインターフェースとして用いられる場合、通信部24は、カードリーダライタ15の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりICモジュール22の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置10のカードリーダライタ15の接触端子と接触可能に形成されている。
【0031】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部24は、コンタクトパターンを介してカードリーダライタ15とデータの送受信を行うことができる。
【0032】
また、非接触通信のインターフェースとして用いられる場合、通信部24は、信号処理部とアンテナとを備える。
【0033】
信号処理部は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置10に送信するデータの変調(増幅)を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【0034】
アンテナは、例えば、ICモジュール22内に所定の形状で配設される金属線により構成される。ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。
【0035】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信部24は、2値の論理データを取得する。通信部24は、解析したデータをバスを介してCPU25に送信する。
【0036】
CPU25は、ICカード20全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置10から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【0037】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。
【0038】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介して端末装置10から受信したデータを一時的に格納する。またRAM27は、通信部24を介して端末装置10に送信するデータを一時的に格納する。またさらに、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0039】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ28は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。
【0040】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROM26に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0041】
電源部31は、端末装置10の各部に電力を供給する。ICカード20が接触通信を行う構成を備える場合、電源部31は、通信部24のコンタクトパターンを介してカードリーダライタ15から供給される電力をICカード20の各部に供給する。
【0042】
また、ICカード20が非接触通信を行う構成を備える場合、カードリーダライタ15のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部31は、動作クロックを生成する。電源部31は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。
【0043】
ロジック部32は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部32は、端末装置10からのコマンドに基づいて、暗号化、復号、ハッシュ計算、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、ロジック部32は、乱数を生成し、生成した乱数をCPU25に伝送する。
【0044】
例えば、端末装置10がICカード20の発行装置として機能する場合、端末装置10は、種々のコマンドをICカード20に送信することにより、ICカード20の不揮発性メモリ28内にアプリケーション、制御データ、暗号鍵などの種々のデータを格納することができる。
【0045】
図3は、端末装置10によるICカード20の発行処理の例を示す。
まず、端末装置10は、ICカード20にコマンド(初期化コマンド)を送信することにより、ICカード20の不揮発性メモリ28の初期化を行う(ステップS11)。これにより、端末装置10は、ICカード20の不揮発性メモリ28内にICカード20の使用目的、及び使用用途などに応じた鍵ファイルやデータファイル等を定義する。
【0046】
これにより、端末装置10は、例えば、ISO/IEC7816により規定されているファイル構造を不揮発性メモリ28内に創成する。上記の初期化が行われた不揮発性メモリ28は、Master File(MF)、Dedicated File(DF)、及びElementary File(EF)などを有する。
【0047】
MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
【0048】
EFには、Working Elementary File(WEF)とInternal Elementary File(IEF)などの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵(暗証番号)などのデータを記憶する。
【0049】
次に、端末装置10は、ICカード20にコマンド(フェーズ切り替えコマンド)を送信することにより、ICカード20フェーズを切り替える(ステップS12)。この場合、端末装置10は、ICカード20のフェーズを初期化処理などが行われる初期フェーズから一次発行が行われる一次発行フェーズに切り替える。
【0050】
端末装置10は、ICカード20にコマンド(一次発行コマンド)を送信することにより、ICカード20の不揮発性メモリ28内に創成されたファイル内に種々のデータを書き込む(ステップS13)。例えば、端末装置10は、WRITEコマンドを複数回ICカード20に送信することにより、上記のようなアプリケーション、制御データ、暗号鍵などの種々のデータを所定のファイルに書き込む。
【0051】
なお、一次発行で書き込まれるデータは、通常、複数のカードに共通するデータである。また、ICカード20は、一次発行コマンドを受信した場合、上記のロジック部32などにより乱数などのデータを生成し、生成した乱数をファイルに格納する場合もある。即ち、ICカード20の不揮発性メモリ28は、外部から受信した発行コマンドから取得したデータを書き込む領域(第1のメモリ)と、ICカード20内部で生成したデータを書き込む領域(第2のメモリ)とを有する。
【0052】
さらに、端末装置10は、全ての一次発行コマンドの最後のコマンドとして、検査コマンドをICカード20に送信する。ICカード20は、検査コマンドを受信した場合、不揮発性メモリ28内のデータに基づいてハッシュ計算を行い、算出されたハッシュ値を含むレスポンスを端末装置10に送信する。また、端末装置10は、ICカード20に書き込んだデータを逐次認識している。端末装置10は、認識しているICカード20の不揮発性メモリ28のデータに基づいてハッシュ値を算出する。端末装置10は、算出したハッシュ値と、受信したレスポンスに含まれるハッシュ値とが一致する場合、後段の処理を行う。
【0053】
受信したレスポンスに含まれるハッシュ値が正しい値である場合、端末装置10は、ICカード20にコマンド(フェーズ切り替えコマンド)を送信する。これにより、端末装置10は、ICカード20フェーズを切り替える(ステップS14)。この場合、端末装置10は、ICカード20のフェーズを一次発行フェーズから二次発行が行われる二次発行フェーズに切り替える。
【0054】
端末装置10は、ICカード20にコマンド(二次発行コマンド)を送信することにより、ICカード20の不揮発性メモリ28内に創成されたファイル内に種々のデータを書き込む(ステップS15)。例えば、端末装置10は、WRITEコマンドを複数回ICカード20に送信することにより、個人データなどの個別データを所定のファイルに書き込む。なお、一次発行と二次発行とは、それぞれ異なる端末装置10が処理を実行する構成あってもよいし、同じ端末装置10が一次発行及び二次発行を実行する構成であってもよい。
【0055】
二次発行を完了させた場合、端末装置10は、ICカード20にコマンド(フェーズ切り替えコマンド)を送信する。これにより、端末装置10は、ICカード20フェーズを切り替える(ステップS16)。この場合、端末装置10は、ICカード20のフェーズを二次発行フェーズから運用フェーズに切り替える(ステップS17)。これ以降、ICカード20は、端末装置10から受信したコマンドに応じて不揮発性メモリ28に格納されているアプリケーションなどを実行することができる。これにより、ICカード20は、交通系、金融系などの種々の用途に用いられる。
【0056】
図4は、上記の一次発行、または二次発行におけるICカード20の処理の例を示す。
ICカード20は、端末装置10からのコマンドを待つ状態を保持する。即ち、ICカード20は、一次発行コマンドまたは二次発行コマンドなどの発行コマンドを受信したか否か逐次判定する(ステップS21)。
【0057】
ここで、発行コマンドを受信したと判定した場合、ICカード20は、受信した発行コマンドに応じてデータを不揮発性メモリ28の所定のファイルに書き込む(ステップS22)。ICカード20は、データの書き込みを行った後、ステップS21に移行し、次の発行コマンドを待つ状態を維持する。
【0058】
また、ステップS21で、発行コマンドを受信しなかったと判定した場合、ICカード20は、検査コマンドを受信したか否か判定する(ステップS23)。ここで、検査コマンドを受信しなかったと判定した場合、ICカード20は、ステップS21に移行し、次の発行コマンドを待つ状態を維持する。
【0059】
端末装置10は、例えば、図5により示されるようなコマンドをICカード20に送信する。
【0060】
図5により示されるように、端末装置10がICカード20に送信するコマンドは、
「CLA」501、「INS」502、「P1」503、「P2」504、「Lc」505、「Data」506、及び「Le」507を有する。
【0061】
「CLA」501は、コマンドの層別を示すclass byteである。「INS」502は、コマンドの種別を示すinstruction byteである。「P1」503及び「P2」504は、「INS」502に応じたパラメータを示すparameter byteである。
【0062】
「Lc」505は、「Data」506のデータの長さ(バイト数)を示すlength field for cording number Ncである。「Data」506は、当該コマンドのデータ本体を示すcommand data fieldである。「Le」507は、当該コマンドに対するレスポンスのデータ長を示すlength field for cording number Neである。
【0063】
即ち、「CLA」501及び「INS」502により、当該コマンドが検査コマンドであるのか、発行コマンドであるのか、または他のコマンドであるのかが示される。ICカード20は、受信したコマンドの「CLA」501及び「INS」502の値を解析することにより、受信したコマンドの種類を認識する。
【0064】
例えば、コマンドが書き込みコマンドである場合、ICカード20は、「Data」506内のデータを不揮発性メモリ28の「P1」503及び「P2」504などにより指定された位置、またはファイルに書き込む。
【0065】
また、「Data」506は、複数のTLVデータオブジェクトを含む構成であってもよい。この場合、「Data」506は、Tag Length Value(TLV)構造のデータを複数含む。TLVデータオブジェクトのTagは、ICカード20のCPU25にTLVデータオブジェクトを識別させる為の情報である。Lengthは、TLVデータオブジェクトのValueのデータ長を示す情報である。Valueは、TLVデータオブジェクトのデータ本体である。
【0066】
例えば、「Data」506が、データの書き込み先を示すTLVデータオブジェクト、及びデータ本体を示すTLVデータオブジェクトなどを有する場合、ICカード20は、TLVデータオブジェクトが示す書き込み先にデータ本体を書き込む。
【0067】
さらに、ICカード20のCPU25は、内部でデータを生成することが必要なコマンドを受信した場合、データを生成し、生成されたデータ(生成データ)を不揮発性メモリ28の所定のファイルに書き込む。例えば、CPU25は、ロジック部32により乱数を生成させ、生成された乱数に基づいて、生成データを生成する。さらに、CPU25は、生成データを不揮発性メモリ28内のコマンドにより指定される位置、または、予め設定された位置に書き込む。
【0068】
上記の処理を繰り返し行うことにより、ICカード20の不揮発性メモリ28には、種々のデータが書き込まれる。
【0069】
図6は、ICカード20の不揮発性メモリ28の例を示す。
データ281及び282は、発行コマンドから取得したデータを示す。またデータ283は、上記の処理によりICカード28内部で生成された生成データを示す。さらに、不揮発性メモリ28内には、管理ファイルなどが格納される。ICカード20は、管理ファイルにより、不揮発性メモリ28内のデータをファイル構造として認識することができる。
【0070】
さらに、ICカード20は、図4により示されたステップS23で、検査コマンドを受信したと判定した場合、不揮発性メモリ28により記憶されているデータに基づいて、ハッシュ値を算出する(ステップS24)。
【0071】
ICカード20は、例えば、ハッシュ関数としてSHA256を用いてハッシュ値を算出する。ICカード20は、例えば、不揮発性メモリ28の全てのデータに基づいてハッシュ値を算出する。
【0072】
また、検査コマンドの「Data」506に不揮発性メモリ28上の領域を指定するデータが含まれている場合、ICカード20は、不揮発性メモリ28上の検査コマンドにより指定された領域のデータに基づいてハッシュ値を算出する構成であってもよい。この場合、検査コマンドは、例えば、先頭アドレスを示すデータとデータ長を示すデータとを含む。ICカード20は、不揮発性メモリ28に格納されているデータのうちの、先頭アドレスが示す位置からデータ長が示す長さのデータに基づいてハッシュ値を算出する。
【0073】
また、検査コマンドの「Data」506に不揮発性メモリ28上の領域を指定するデータが複数含まれている場合、ICカード20は、不揮発性メモリ28上の検査コマンドにより指定された複数の領域のデータを結合し、結合したデータに基づいてハッシュ値を算出する構成であってもよい。
【0074】
またさらに、ハッシュ値の算出に用いるデータの中に、上記したような生成データが含まれている場合、ICカード20は、生成データを予め設定された値(例えば「0」など)に置き換え、置き換えたデータを含むデータに基づいてハッシュ値を算出する構成であってもよい。また、この場合、端末装置10も生成データに該当する領域のデータを予め設定された所定の値に置き換え、ハッシュ値を算出する。なお、ICカード20において置き換えられた値と、端末装置10において置き換えられた値とは一致する必要がある。
【0075】
また、ハッシュ値の算出に用いるデータの中に、暗号化されたデータが含まれている場合、ICカード20は、暗号化されたデータを復号し、復号されたデータに基づいてハッシュ値を算出する構成であってもよい。これにより、不揮発性メモリ28に記憶されているデータが暗号化されている場合であっても、ICカード20は、ハッシュ値を算出することができる。
【0076】
ICカード20は、算出したハッシュ値に基づいて、レスポンスを生成する(ステップS25)。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS26)。
【0077】
さらに、ICカード20は、上記のハッシュ値の算出及び算出されたハッシュ値をレスポンスとして出力する機能(総じてハッシュ機能と称する)を停止させ(ステップS27)、処理を終了する。
【0078】
例えば、ICカード20は、ハッシュ機能を停止させるか否かを示す情報(ハッシュフラグ)を不揮発性メモリ28に記憶する。ICカード20は、所定のタイミングでこのハッシュフラグをOFFすることにより、ハッシュ機能を停止させることができる。
【0079】
例えば、ICカード20が一次発行フェーズから二次発行フェーズに切り替えられるタイミングでハッシュ機能を停止させる場合、ICカード20は、二次発行フェーズ以降においてハッシュ値の出力を行わない。また、例えば、ICカード20が二次発行フェーズから運用フェーズに切り替えられるタイミングでハッシュ機能を停止させる場合、ICカード20は、運用フェーズにおいてハッシュ値の出力を行わない。これにより、Icカード20のより高いセキュリティ性を実現することができる。
【0080】
なお、上記の例では、ICカード20は、一次発行フェーズ、または二次発行フェーズの最後の処理としてハッシュ値の算出及び出力を行い、ハッシュ機能を停止させる構成として説明したが、この構成に限定されない。例えば、ICカード20は、フェーズ切り替えコマンドを受信した場合にハッシュ機能を停止させる構成であってもよい。
【0081】
また、端末装置10は、発行フェーズにおいてICカード20に送信した発行コマンドに基づいて、ICカード20の不揮発性メモリ28の状態を管理(把握)することができる。端末装置10は、自身が管理している不揮発性メモリ28の状態に基づいてハッシュ値を算出する。端末装置10は、算出したハッシュ値と、受信したレスポンスに含まれるハッシュ値とを比較する。端末装置10は、算出したハッシュ値と、受信したレスポンスに含まれるハッシュ値とが一致する場合、後段の処理を行う。
【0082】
なお、端末装置10は、予めICカード20に書き込むデータが一定である場合、予め算出されたハッシュ値を記憶する構成であってもよい。この場合、端末装置10は、記憶しているハッシュ値と、受信したレスポンスに含まれるハッシュ値とが一致する場合、後段の処理を行う。
【0083】
上記したように、一実施形態に係るICカード20は、発行フェーズにおいて検査コマンドを受信した場合、不揮発性メモリ28により記憶されているデータに基づいてハッシュ値を算出する。ICカード20は、算出したハッシュ値をレスポンスに付加し、端末装置10に送信する。端末装置10は、レスポンスに付加されていたハッシュ値が正しいか否か判定することにより、ICカード20に正確にデータを書き込むことが出来たか否かを判断する。
【0084】
このように、ハッシュ関数を利用して不揮発性メモリ28のデータに基づいてハッシュ値を算出することにより、ICカード処理システム1は、不揮発性メモリ28内のデータの正確性を1ビット単位で判断することができる。また、ICカード処理システム1は、個人データ、または暗号鍵などのセキュアに管理しなければならない初期化データをICカード20から出力することなく、不揮発性メモリ28内のデータの正確性を確認することができる。この結果、間接的に、且つ、より高い精度でデータを検査することができる携帯可能電子装置、携帯可能電子装置の制御方法を提供することができる。
【0085】
なお、上記の実施形態では、ICカード20は、ハッシュ関数としてSHA256を用いてハッシュ値を算出すると説明したが、この構成に限定されない。ICカード20がハッシュ値の算出に用いるハッシュ関数は、少なくとも端末装置10が用いるハッシュ関数と同一であれば如何なるものであってもよい。
【0086】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0087】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0088】
1…ICカード処理システム、10…端末装置、11…CPU、12…ROM、13…RAM、14…不揮発性メモリ、15…カードリーダライタ、17…操作部、18…ディスプレイ、19…電源部、20…ICカード、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、31…電源部。

【特許請求の範囲】
【請求項1】
データを記憶するメモリと、
外部機器から送信されたコマンドを受信する受信部と、
前記受信部により発行コマンドを受信した場合、前記発行コマンドに基づいてデータを取得し、取得したデータを前記メモリに書き込むコマンド処理部と、
前記受信部により検査コマンドを受信した場合、前記メモリのデータに基づいてハッシュ値を算出するハッシュ値算出部と、
前記ハッシュ値算出部により算出されたハッシュ値に基づいてレスポンスを生成するレスポンス処理部と、
前記レスポンス処理部により生成されたレスポンスを前記外部機器に送信する送信部と、
を具備する携帯可能電子装置。
【請求項2】
前記コマンド処理部は、前記発行コマンドに基づいてデータを生成し、生成したデータを前記メモリに書き込み、
前記ハッシュ値算出部は、前記メモリの生成されたデータを予め設定されたデータに置き換えて、前記メモリのデータに基づいてハッシュ値を算出する、
請求項1に記載の携帯可能電子装置。
【請求項3】
前記ハッシュ値算出部は、前記メモリの中の前記検査コマンドにより指定された領域のデータに基づいてハッシュ値を算出する、請求項1に記載の携帯可能電子装置。
【請求項4】
前記ハッシュ値算出部は、前記メモリの中の前記検査コマンドにより指定された複数の領域のデータを結合し、結合されたデータに基づいてハッシュ値を算出する、請求項3に記載の携帯可能電子装置。
【請求項5】
前記ハッシュ値算出部は、前記メモリのデータを復号し、複合されたデータに基づいてハッシュ値を算出する、請求項1に記載の携帯可能電子装置。
【請求項6】
前記各部を備えるICモジュールと、
前記ICモジュールが配設される本体と、
を具備する請求項1に記載の携帯可能電子装置。
【請求項7】
データを記憶するメモリを具備する携帯可能電子装置に用いられる携帯可能電子装置の制御方法であって、
外部機器から送信された発行コマンドを受信した場合、前記発行コマンドに基づいてデータを取得し、取得したデータを前記メモリに書き込み、
外部機器から送信された検査コマンドを受信した場合、前記メモリのデータに基づいてハッシュ値を算出し、
算出された前記ハッシュ値に基づいてレスポンスを生成し、
生成された前記レスポンスを前記外部機器に送信する、
携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−243133(P2012−243133A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113496(P2011−113496)
【出願日】平成23年5月20日(2011.5.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】