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