JP5019210B2 - 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法 - Google Patents

携帯可能電子装置、icカード、および携帯可能電子装置の制御方法 Download PDF

Info

Publication number
JP5019210B2
JP5019210B2 JP2007157870A JP2007157870A JP5019210B2 JP 5019210 B2 JP5019210 B2 JP 5019210B2 JP 2007157870 A JP2007157870 A JP 2007157870A JP 2007157870 A JP2007157870 A JP 2007157870A JP 5019210 B2 JP5019210 B2 JP 5019210B2
Authority
JP
Japan
Prior art keywords
data
portable electronic
electronic device
storage means
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007157870A
Other languages
English (en)
Other versions
JP2008310595A (ja
JP2008310595A5 (ja
Inventor
哲 関谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007157870A priority Critical patent/JP5019210B2/ja
Publication of JP2008310595A publication Critical patent/JP2008310595A/ja
Publication of JP2008310595A5 publication Critical patent/JP2008310595A5/ja
Application granted granted Critical
Publication of JP5019210B2 publication Critical patent/JP5019210B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、例えば、個人情報あるいは取引情報などが記憶されているICチップが内蔵されているICカードあるいはICタグなどの携帯可能電子装置、および、上記携帯可能電子装置の制御方法などに関する。
近年、ICカードなどの携帯可能電子装置は、様々な用途に利用されている。特に、ICカードには、個人情報や金銭的な取引情報などが記憶されることが多い。このようなICカードあるいはICカードを用いたシステムでは、高いセキュリティ性が求められており、不正なアクセスを確実に防止する技術が求められている。一方、近年、ICカードに対して電源にノイズを印加したり、電磁波、光波あるいは温度などのストレスを与えたりして、ICカードを誤動作させることにより、ICカード内の内部情報あるいは処理手順などを解析しようとする脅威が高まっている。
従来、たとえば、特開昭60−207957号公報(特許文献1)、あるいは、特開平11−282991号公報(特許文献2)には、ICカードに対するコマンドの種類と実行順とに基づいて不正なアクセスを検出する技術が記載されている。これらの技術では、ICカード内のメモリに格納するフラグ(識別情報)に基づいて処理の実行順などを監視する。しかしながら、当該ICカード内のメモリの情報は、上述のような外的な要因により変化してしまう可能性がある。このような場合、ICカード内のメモリに格納されるフラグなどの情報も変化してしまう可能性がある。すなわち、外的な要因によりICカード内のメモリの情報が変化されると、上記したような技術を適用してもICカードが誤動作する可能性があるという問題点がある。
特開昭60−207957号公報 特開平11−282991号公報
この発明の一形態は、セキュリティ性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
この発明の一形態としての携帯可能電子装置は、外部装置から供給されるコマンドに応じて動作するものにおいて、複数ビット長の第1のデータを格納する第1の記憶手段と、当該携帯可能電子装置の状態を示す情報として、前記第1の記憶手段に記憶されている前記第1のデータ、あるいは、前記第1のデータとは異なる第2のデータの何れかを格納する第2の記憶手段と、前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致するか否かを判断する判断手段と、この判断手段により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致すると判断した場合、前記第2の記憶手段に記憶されている内容に応じて外部装置から供給されるコマンドに対応する本処理を実行する実行手段とを有する。
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置から供給されるコマンドに応じて動作する携帯可能電子装置に用いられる方法であって、複数ビット長の第1のデータを第1の記憶手段に格納しておき、当該携帯可能電子装置の状態を示す情報として、前記第1の記憶手段に記憶されている前記第1のデータ、あるいは、前記第1のデータとは異なる第2のデータの何れかを前記第2の記憶手段に格納し、前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致するか否かを判断し、この判断により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致すると判断した場合、前記第2の記憶手段に記憶されている内容に応じて外部装置から供給されるコマンドに対応する本処理を実行する。
この発明の一形態によれば、セキュリティ性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
以下、この発明に係る実施の形態について図面を参照しつつ説明する。
図1は、第1の実施の形態に係る携帯可能電子装置としてのICカード1およびICカード1を含むICカードシステムの構成例を示すブロック図である。
上記ICカード1は、外部装置としてのICカード処理装置2からの電源供給により動作可能な状態となる。動作可能となったICカード1は、上記ICカード処理装置2からのコマンドに応じて種々の処理を行う。上記ICカード処理装置2は、ICカード1を動作させるための電源を供給するとともに、当該ICカード1に対して種々の処理を要求するコマンドを供給する。上記ICカード処理装置2がICカード1に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
また、上記ICカード1は、アンテナあるいは無線通信部等により上記ICカード処理装置2と非接触の状態で無線通信を行う非接触式の携帯可能電子装置(非接触式ICカード)であっても良し、上記ICカード処理装置2と物理的に接触して通信を行う接触式の携帯可能電子装置(接触式ICカード)であっても良い。さらには、上記ICカード1は、非接触式ICカードとしての通信機能と接触式ICカードとしての通信機能とを有する複合型のICカード(デュアルインターフェースICカード)であっても良い。なお、第1および第2の実施の形態では、主に、非接触式ICカードを想定して説明する。非接触式ICカードと接触式ICカードとはICカード処理装置2との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ICカードにも同様に適用できる。
次に、上記ICカード1の構成例について説明する。
図1に示すように、上記ICカード1は、CPU10、プログラムメモリ11、ワーキングメモリ12、データメモリ13、乱数生成部14、通信制御部15、電源部16、および、インターフェース17などにより構成される。
また、上記ICカード1は、カード状の本体により構成される。上記ICカード1を形成するカード状の本体には、1つ(あるいは複数)のICチップ1aとアンテナ17とが埋設される。上記ICチップ1aは、CPU10、プログラムメモリ11、ワーキングメモリ12、データメモリ13、通信制御部15および電源部16などにより構成される。上記ICチップ1aは、上記インターフェース17としてのアンテナに接続された状態でモジュール化され、当該ICカード1を形成するカード状の本体内に埋設される。たとえば、図2は、非接触式ICカード全体の構成例を示す図である。図2に示す非接触式ICカードは、カード状の本体1cを有している。この本体1c内には、図2に点線で示すように、1つ(あるいは複数)のICチップ1aとアンテナ17とを有するモジュール1bが埋め込まれている。
上記CPU10は、ICカード1全体の制御を司るものである。上記CPU10は、データを記憶するための内部メモリとしてのレジスタ10aを有している。上記CPU10は、上記プログラムメモリ11あるいはデータメモリ13に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記CPU10は、基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。たとえば、外部装置から上記データメモリ13へのデータの書込みを要求するコマンドが与えられれば、上記CPU10は、上記データメモリ13へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ13に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記CPU10は、上記データメモリ13からのデータの読み出し処理を実行する。さらに、上記CPU10は、当該ICカード1の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
上記プログラムメモリ11は、読み出し専用のメモリ(ROM:リードオンリーメモリ)により構成される。上記プログラムメモリ11には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ11には、予め当該ICカード1の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記CPU10は、上記プログラムメモリ11に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。また、上記プログラムメモリ11には、データメモリ13におけるメモリ領域の属性などを指定するための情報なども記憶されている。
上記ワーキングメモリ12は、揮発性のメモリ(RAM;ランダムアクセスメモリ)により構成される。上記ワーキングメモリ12は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ12には、ICカード処理装置(外部装置)2との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ12には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。さらに、上記ワーキングメモリ12には、当該ICカード1における処理状況あるいは設定情報などを識別するための情報を格納するステータスフラグ(以下、単にフラグとも称する)が設定されるフラグ領域12aが設けられる。
上記データメモリ(不揮発性メモリ)13は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ13は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。上記データメモリ13には、当該ICカード1の使用目的に応じた種々の情報が記憶される。上記データメモリ13には、種々の設定情報などを記憶するためのデータテーブルなども設けられる。たとえば、当該ICカードを複数の使用者が使用することが想定される場合、上記データメモリ13には、各使用者の識別情報(ID)、パスワード、および、各使用者ごとの各種のデータに対するアクセス権を示す情報などが格納されるデータテーブル13aが設けられる。
また、当該ICカードの使用目的に応じたアプリケーション(処理プログラムおよび運用データなど)は、上記データメモリ13に記憶される。また、当該ICカード1が複数の使用目的に使用される場合、上記データメモリ13には、各使用目的に応じた複数のアプリケーションが記憶される。なお、当該ICカード1の使用目的に応じたアプリケーションは、上記データメモリ13上に定義された使用目的ごとのプログラムファイルおよびデータファイルなどの各ファイルに記憶される。このようなファイル構造は、たとえば、ISO/IEC7816−4に基づくものである。つまり、上記ICカード1のデータメモリ13には、種々のアプリケーションおよび種々の運用データが記憶可能である。
上記乱数生成部14は、任意のデータとしての乱数を生成するものである。上記乱数生成部14は、ICチップなどにより構成しても良いし、上記CPUなどの制御素子がプログラムを実行することにより実現するようにしても良い。
上記通信制御部15は、上記インターフェース17を介して外部装置(たとえば、ICカード処理装置2)とのデータ通信を制御するものである。外部装置からデータを受信する場合、上記通信制御部15は、上記インターフェース17により受信した電波としての送信データを復調し、復調した信号を上記CPU10に供給する。また、外部装置へデータを送信する場合、上記通信制御部15は、上記CPU10から与えられるデータを変調し、変調したデータを上記インターフェース17としてのアンテナにより電波として発信する。なお、接触式ICカードの場合、上記インターフェース17は、外部装置のコンタクト部と物理的に接触する端子などにより構成されるものとなる。
上記電源部16は、上記インターフェース17により受信した電波から当該ICカード1の各部を動作させるための電源およびクロックパルスを生成する。上記電源部16は、上記アンテナ17により受信した電波から生成した電源電圧およびクロックパルスを各部に供給するようになっている。また、上記電源部16からの電源供給により起動した場合、上記CPU10は、当該ICカード1の処理状態をリセットする処理を行うようになっている。なお、接触式ICカードの場合、インターフェース17を介して外部装置から直接的に供給される電源およびクロックパルスにより各部が動作するようになっている。
次に、上記ICカード処理装置2について説明する。
上記ICカード処理装置2は、図1に示すように、制御装置21およびカードリーダライタ22を有している。上記制御装置21は、パーソナルコンピュータ(PC)などにより構成される。上記制御装置21は、CPUなどの演算処理部、RAM、ROM、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置21では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置21は、ICカード1とのデータ通信を行う上記カードリーダライタ22とのデータの入出力を行うようになっている。
たとえば、上記制御装置21には、上記ICカード1を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置21では、上記のような制御プログラムを実行することにより上記ICカード1を用いた各種の処理を実行する。たとえば、上記ICカード1を用いた各種の処理において、上記制御装置21は、所定のコマンドを所定の手順で供給する。上記制御装置21では、上記のような各コマンドに対するICカード1からの各レスポンス(コマンドに対する処理結果等を示す情報)に基づいて各種の処理を行うようになっている。
上記カードリーダライタ22は、上記ICカード1とのデータ通信を行う通信手段として機能する。上記カードリーダライタ22は、上記ICカード1の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ22を介して制御装置21は、上記ICカード1とのデータ通信を実現している。
上記ICカード1が非接触型のICカードである場合、上記カードリーダライタ22は、上記ICカード1との無線によるデータ通信を行うためのアンテナおよび通信制御部(変復調回路等)などにより構成される。非接触型のICカード1へデータを送信する場合、上記カードリーダライタ22では、上記制御装置21から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のICカード1からデータを受信する場合、上記カードリーダライタ22では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置21へ供給する。また、上記カードリーダライタ22では、上記のようなデータの送受信とともに、上記ICカード1を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
また、上記ICカード1が接触型のICカードである場合、上記カードリーダライタ22は、ICカード1と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のICカードとのデータの送受信を行う場合、上記カードリーダライタ22では、上記コンタクト部がICカード1側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ22では、ICカード1に物理的に接触しているコンタクト部を介して当該ICカード1に対して電源およびクロックパルスを供給するようになっている。
次に、上記第1の実施の形態に係るICカード1の動作について概略的に説明する。
上記ICカード処理装置2からコマンドを受信した場合、上記ICカード1は、コマンドの種類によっては、当該コマンドを実行するための実行条件のチェック処理を前処理として実行する。また、上記データメモリ13などに記憶されている各種のデータに対するアクセス権を設定されている場合、当該ICカード1では、外部からのコマンド処理を行う前の処理(前処理)として、各種のデータに対するアクセス権を設定する処理を実行することもある。ここでは、これらのような外部装置からのコマンドに対応する所定の処理を実行する前に実行される処理を前処理と総称するものとする。
上記のような前処理の結果として得られる情報は、上記フラグ領域12aに設けられる各フラグに格納され、CPU10により適宜参照される。たとえば、外部装置からのコマンドに対応する処理を実行するための実行条件のチェック結果は、当該コマンドに対応する所定の処理を実行する前に各実行条件に対応づけたフラグに格納される。また、各種のデータに対するアクセス権を示す情報は、各種のデータへのアクセスを要求するコマンドを実行する前に各種のデータに対応づけたフラグに格納される。
また、上記のような各フラグは、処理結果あるいは設定情報などを示す2値情報が格納されるものである。各フラグに格納される2値情報は、当該フラグが示す状態が第1の状態(たとえば、オン状態)であるか第2の状態(たとえば、オフ状態)であるかを示すものである。また、本実施の形態において、各フラグに格納される2値情報は、複数ビット長の第1のデータ、あるいは、第1のデータとは値が異なる複数ビット長の第2のデータの何れかである。このため、各フラグとしては、第1のデータおよび第2のデータを構成する複数ビットのデータが格納可能なデータ領域が設定される。
まず、各フラグに格納される2値情報としての第1のデータおよび第2のデータについて説明する。
上記のように、各フラグには、処理結果あるいは設定内容などに応じて、複数ビット長の第1のデータあるいは複数ビット長の第2のデータが格納される。第1のデータは、当該フラグが第1の状態(オン状態)であることを示し、第2のデータは、当該フラグが第2の状態(オフ状態)であることを示すものである。各フラグに格納される第1のデータおよび第2のデータは、ICカード1内のCPU10が識別できるようになっている必要がある。このため、各フラグに格納される第1のデータおよび第2のデータを示す情報は、たとえば、CPU10内のレジスタ10aなどの当該ICカード1内のメモリに格納される。
また、上記各フラグに格納される第1のデータおよび第2のデータは、任意の値が設定可能である。ここでは、第1のデータおよび第2のデータは、主に、上記乱数生成部14により生成される乱数に基づいて決定されるランダムな値であるものとする。ただし、第1のデータおよび第2のデータは、予め設定されている値(固定値)であっても良い。この場合、第1のデータおよび第2のデータとしての固定値は、たとえば、当該ICカード1を利用可能な状態とする発行処理時に設定されるようにすれば良い。また、第1のデータおよび第2のデータは、予め設定されている固定値と上記乱数生成部14により生成される乱数とに基づいて決定される値であっても良い。この場合、第1のデータおよび第2のデータは、たとえば、予め設定されている固定値と上記乱数生成部14により生成される乱数との排他的論理和などの演算処理により生成することが可能である。
また、第1のデータおよび第2のデータは、それぞれ関連性のない異なる値を設定するようにしても良いし、何れか一方の値から他方の値を算出できるようにしても良い。前者の場合、第1のデータおよび第2のデータがそれぞれ上記ICカード1内のメモリ(例えば、レジスタ10a)に記憶される。また、後者の場合、たとえば、第1のデータをICカード1内のメモリ(例えば、レジスタ10a)に記憶しておき、その第1のデータの各ビットの値を反転させた反転値を第2のデータとすることにより実現可能である。なお、以下の説明では、主に、第1のデータを基準値としてCPU10内のレジスタ10aに格納し、第1のデータ(基準値)の反転値を第2のデータとする場合を想定する。
また、第1のデータおよび第2のデータは、任意のタイミングで設定することが可能である。たとえば、ICカード内で発生させる乱数などに基づいて第1のデータおよび第2のデータを決定する場合、第1のデータおよび第2のデータは、当該ICカードのリセット処理を行う際に決定するようにしても良いし、コマンドを受信するごとに決定するようにしても良いし、各フラグを初期化する際に決定するようにしても良い。
なお、以下の説明では、ICカード1は、リセット処理において、上記乱数生成部14が生成する乱数に基づいて第1のデータとしての基準値Rを決定し、第1のデータの反転値を第2のデータとするものとする。また、第1のデータとしての基準値Rは、上記内部レジスタ10aに格納されるものとする。
図3(a)は、基準値Rの設定例を示す図である。図3(a)に示す例では、基準値Rとして、8ビットのデータ「10100011」がCPU10の内部メモリとしてのレジスタ10aに格納されている。すなわち、図3(a)に示す例では、外部装置からの電力供給を受けてリセットされたICカード1のCPU10は、上記乱数生成部14により乱数を生成させ、生成された乱数に基づく基準値(第1のデータ)Rとして、8ビットのデータ「10100011」をレジスタ10aに格納する。これにより、当該ICカード1のCPU10は、次に当該ICカード1がリセットされるまで、レジスタ10aに格納した基準値Rと基準値Rの反転値R´とを識別する。
次に、上記各フラグの設定について説明する。
各フラグは、たとえば、ワーキングメモリ12などのICカード1内のメモリ上に設けられる。ここでは、図1に示すように、各フラグは、ワーキングメモリ12上のフラグ領域12aに設定されるものとする。
図3(b)、(c)、(d)、(e)は、フラグ領域12aに設定された3つのフラグA、B、Cの設定例を示す図である。図3(b)は、3つのフラグが初期化された状態を示している。各フラグA、B、Cは、第1のデータおよび第2のデータのデータ長に応じたワーキングメモリ12上の領域が設定される。図3(b)に示す例では、図3(a)に示す基準値R(第1のデータ)および反転値R´(第2のデータ)が8ビットのデータであるため、各フラグは、8ビットのデータが格納可能な領域として設定されている。なお、図3(b)に示す例では、初期化された状態の各フラグには、初期値として「00000000」が格納されている。
図3(b)に示すように初期化された各フラグA、B、Cには、図3(c)、(d)、(e)に示すように、処理結果あるいは設定情報などに応じて基準値Rあるいは反転値R´が格納される。たとえば、図3(c)に示す例では、フラグAに基準値R「10100011」が格納された状態を示している。また、図3(d)に示す例では、フラグBに基準値R「10100011」が格納された状態を示している。また、図3(e)に示す例では、フラグCに反転値R´「01011100」が格納された状態を示している。
このように、各フラグには、8ビットの第1のデータとしての基準値R、あるいは、8ビットの第2のデータとしての反転値R´が格納される。このようなフラグでは、全てのビットの値が反転させられなければ、状態が変化しない。つまり、上記のようなフラグは、外的な要因により何れかのビットの値が反転させられても、フラグが示す状態が変化しない(ビット異常のエラーとなる)。また、電源にノイズを付加したり、電磁波、光波あるいは温度などのストレスを与えたりしても8ビットのデータを全て反転させるのは、困難であると考えられる。したがって、上記のように、フラグに8ビットのデータを格納するようにすることにより、当該ICカードのセキュリティ性を向上させることができる。
さらに、上記のように、ICカード1内で発生させる乱数に基づいて基準値Rを決定するようにすることにより、基準値Rを推定されにくくすることが可能である。なお、第1のデータとしての基準値Rだけでなく、第2のデータも乱数に基づく値とするようにしても良い。この場合、上記ICカード1では、2つの乱数を発生させ、各乱数に基づいて第1のデータと第2のデータとを設定するようにすれば良い。
次に、上記第1の実施の形態に係る第1の処理例について説明する。
この第1の処理例は、コマンドに対応する処理を実行するための種々の実行条件が設定されている場合の処理例である。すなわち、第1の処理例において、上記ICカード1では、外部装置から与えられたコマンドに対応する処理を実行するための種々の実行条件を順次チェックし、それらのチェック結果を順次各フラグに格納する(前処理)。この場合、各実行条件について、実行条件を満たしていれば、対応するフラグに基準値R(第1のデータ)が格納され、実行条件を満たしていなければ、対応するフラグに反転値R´(第2のデータ)が格納されるようになっている。なお、第1の実施の形態として説明する第1の処理例および第2の処理例は、上記CPU10がプログラムメモリ11あるいはデータメモリ13に記憶されているプログラムを実行することにより実現されるものとする。
図4は、第1の処理例を説明するためのフローチャートである。
上記ICカード1は、上記ICカード処理装置2からの電力の供給を受けて起動するようになっている。上記ICカード処理装置2から電力の供給を受けて起動すると、上記ICカード1のCPU10は、リセット処理を行う(ステップS11)。上記リセット処理が完了すると、上記ICカード1のCPU10は、上記乱数生成部14により乱数を生成する(ステップS12)。上記乱数生成部14により乱数が生成されると、上記ICカード1のCPU10は、生成された乱数に基づいて所定の桁数(ビット数)の基準値(第1のデータ)Rを決定し、決定した基準値Rを内部レジスタ10aに格納する(ステップS13)。たとえば、図3(a)に示す例では、乱数生成部14により発生させた乱数に基づく基準値Rとして「10100011」が決定され、その基準値Rが内部レジスタ10aに格納される
内部レジスタ10aに基準値Rを格納すると、上記CPU10は、ICカード処理装置2からのコマンドに対する処理が実行可能な状態となる。この状態においてICカード処理装置2からコマンドを受信すると、上記CPU10は、当該コマンドの実行準備として、当該コマンドを実行するための実行条件に対応づけたフラグの初期化を行う(ステップS14)。ここで、上記ICカード処理装置2から受信したコマンドには、3つの実行条件が設定されているものとする。このような場合、上記CPU10は、たとえば、図3(b)に示すように、当該コマンドに対応する処理の3つの実行条件に対応する3つのフラグA、B、Cを初期化する。
このようなコマンドの実行準備としての各フラグA、B、Cの初期化が完了すると、上記CPU10は、当該コマンドに対応する処理を実行するための各実行条件(第1、第2、第3の実行条件)をチェックする処理(前処理手段)を行う。すなわち、各フラグA、B、Cの初期化が完了すると、上記CPU10は、第1の実行条件をチェックする(ステップS15)。この結果として第1の実行条件を満たすと判定した場合、上記CPU10は、図3(c)に示すように、フラグAに上記内部レジスタ10aに格納している基準値Rを格納する(ステップS16)。なお、第1の実行条件を満たしていないと判定した場合、上記CPU10は、内部レジスタに格納されている基準値Rの各ビットを反転させた値(以下、単に反転値と称する)(第2のデータ)R´をフラグAにセットする(ステップS16)。
上記第1の実行条件のチェックが完了すると、上記CPU10は、第2の実行条件をチェックする(ステップS17)。上記第2の実行条件を満たすと判定した場合、上記CPU10は、図3(d)に示すように、内部レジスタ10aに格納している基準値RをフラグBに格納する(ステップS18)。また、上記第2の実行条件を満たさないと判定した場合、上記CPU10は、上記反転値R´をフラグBにセットする(ステップS18)。
同様に、上記第2の実行条件のチェックが完了すると、上記CPU10は、第3の実行条件をチェックする(ステップS19)。上記第3の実行条件を満たすと判定した場合、上記CPU10は、フラグBに内部レジスタに格納した基準値Rを格納する(ステップS20)。また、上記第3の実行条件を満たさないと判定した場合、上記CPU10は、図3(e)に示すように、上記反転値R´をフラグCにセットする(ステップS20)。
全ての実行条件のチェックが完了すると、上記CPU10は、各フラグA、B、Cの値が基準値Rまたは反転値R´であるか否かを判定する(ステップS21)。これは、各フラグA、B、Cに格納されている値が正常な値であるか否かを判定する処理である。上記のような処理が正常に実行され、かつ、外的な要因などで値が変化させられていなければ、各フラグA、B、Cには、基準値Rまたは反転値R´が格納されているはずである。したがって、何れかのフラグA、B、Cに基準値Rまたは反転値R´以外の値が格納されている場合、何かの異常がICカード内で発生したものと判断できる。すなわち、外的な要因によりフラグA、B、Cの値が変更された場合、フラグA、B、Cの値は、基準値Rまたは反転値R´以外に値になることが予測される。言い換えると、各フラグの値が基準値Rまたは反転値R´であれば、各実行条件のチェックが正常に実行されたものと判定できる。
上記判定により基準値Rまたは反転値R´以外の値がフラグに格納されていると判定した場合(ステップS21、NO)、上記CPU10は、フラグ内のビット異常が発生したものと判定し、動作を停止するなどのエラー処理を行う(ステップS22)。この場合、外的な要因により異常となったことが考えられる。このため、上記CPU10は、セキュリティ確保のために、エラー処理として、強制的に動作を停止するようにする。
また、上記判定により各フラグが基準値Rまたは反転値R´であると判定した場合(ステップS21、YES)、上記CPU10は、各フラグの値が全て基準値Rであるか否かを判定する(ステップS23)。これは、コマンドに応じた処理の全ての実行条件を満たしているか否かを判定する処理である。
すなわち、上記判定により何れかのフラグが基準値Rでないと判定した場合(ステップS23、NO)、上記CPU10は、ICカード処理装置2に実行条件が満たされていない旨のレスポンスを出力するなどのエラー処理を行う(ステップS24)。この場合、当該ICカード1内の動作異常ではないと考えられる。このため、上記CPU10は、通常のエラー処理を行う。
また、上記判定により各フラグA、B、Cの値が全て基準値Rであると判定した場合(ステップS23、YES)、上記CPU10は、ICカード処理装置2から受信したコマンドに応じた本処理を実行する(ステップS25)。
上記のような第1の処理例では、コマンドを実行するための種々の実行条件に対応づけた複数ビットからなるフラグを設定し、各フラグには乱数に基づいて決定した複数ビットの基準値あるいは上記基準値に対する反転値の何れかを各実行条件のチェック結果としてセットする。これにより、各フラグに記憶されている情報に基づいて、実行の可否を判定できる。また、各フラグが複数ビットからなっているため、外的なエネルギーでフラグとして利用するメモリ領域の一部のビットの値を反転されても、フラグ全体が示す状態が反転することがなく、ビット異常としてエラー処理することが可能となる。
次に、上記第1の実施の形態としての第2の処理例について説明する。
この第2の処理例では、設定情報をフラグに格納し、フラグに格納されている情報に基づいて各種の処理を実行する場合の処理例である。ここでは、各種のデータのアクセス権を示す情報をフラグに格納する処理(前処理)を実行し、各フラグに格納しているアクセス権に従ってデータの出力処理を行う処理例について説明する。また、アクセス可能なデータに対応するフラグには基準値R(第1のデータ)が格納され、アクセスが禁止されているデータに対応するフラグには反転値R´(第2のデータ)が格納されるものとする。
次に、上記ICカード1における複数の使用者に対する各種のデータへのアクセス権の設定例について説明する。ここでは、当該ICカード1には、複数の使用者ごとに各種のデータに対するアクセス権が設定されているものとする。
図5は、複数の使用者ごとの各種のデータに対するアクセス権を示す情報を記憶するデータテーブル13aの例を示す図である。図5に示す例では、各使用者ごとに、各使用者の識別情報としてのID、各使用者のパスワード、各データX、Y、Zに対するアクセスの可否を示す情報が格納されている。上記IDは、各使用者を識別するための識別情報であり、上記パスワードは、各使用者に与えられている認証情報である。これにより、上記CPU10は、上記データテーブル13aを参照して、上記IDおよび上記パスワードにより使用者が特定(認証)できる。また、上記のようなデータテーブル13aを参照して、上記CPU10は、認証が成功した使用者に対する各データX、Y、Zへのアクセス権が判別できるようになっている。
また、図6は、フラグ領域12aに設けたフラグによるアクセス権の設定例を示す図である。図6(a)は、図3(a)と同様に、基準値Rの設定例を示す図である。
図6(b)、(c)は、フラグ領域12aに設定された3つのフラグX、Y、Zの設定例を示す図である。図6(b)は、3つのデータXYZに対応づけた3つのフラグX、Y、Zが初期化された状態を示している。ここで、各フラグX、Y、Zは、それぞれデータX、Y、Zに対するアクセス権を示すものとする。各フラグX、Y、Zは、基準値(第1のデータ)および反転値(第2のデータ)のデータ長に応じてワーキングメモリ12上のフラグ領域12aに設定される。図6(b)に示す例では、図6(a)に示す基準値R(第1のデータ)および反転値R´(第2のデータ)が8ビットのデータであるため、各フラグX、Y、Zは、8ビットのデータが格納可能な領域として設定されている。なお、図6(b)に示す例では、初期化された状態の各フラグには、初期値として「00000000」が格納されている。
図6(b)に示すように初期化された各フラグA、B、Cには、図3(c)に示すように、各データへのアクセス権に応じて基準値Rあるいは反転値R´が格納される。たとえば、図6(c)に示す例では、図5に示す使用者ID「10002」の使用者に対する各データへのアクセス権を反映したものとなっている。すなわち、図5に示す例では、ID「10002」の使用者は、データXへのアクセスが許可され、データY、Zへのアクセスが禁止されている。このため、図6(c)に示す例では、フラグXに基準値R「10100011」が格納され、フラグYおよびフラグZに反転値R´「01011100」が格納されている。つまり、図6(c)に示す例では、基準値RがセットされたフラグXに対応するデータXへのアクセスが許可され、反転値R´がセットされたフラグY、Zに対応するデータY、Zへのアクセスが禁止されていることを示している。
次に、上記第2の処理例の流れについて説明する。
図7は、第2の処理例の流れを説明するためのフローチャートである。
すなわち、上記ICカード処理装置2から電力供給を受けて起動すると、上記ICカード1のCPU10は、リセット処理を行う(ステップS31)。上記リセット処理が完了すると、上記ICカード1のCPU10は、上記乱数生成部14により乱数を生成する(ステップS32)。上記乱数生成部14により乱数が生成されると、上記ICカード1のCPU10は、生成された乱数に基づいて所定の桁数(ビット数)の基準値(第1のデータ)Rを決定し、決定した基準値Rを内部レジスタ10aに格納する(ステップS33)。
上記内部レジスタ10aに基準値Rを格納すると、上記CPU10は、各コマンドの実行準備として、各種のデータへのアクセス権を示すフラグの初期化を行う(ステップS34)。ここでは、例として、使用者ごとに設定されている3つのデータX、Y、Zに対するアクセス権をフラグX、Y、Zで示すものとする。このような場合、上記CPU10は、3つのデータX、Y、Zへのアクセス権を示す3つのフラグX、Y、Zを初期化する。
各フラグX、Y、Zの初期化が完了すると、上記CPU10は、まず、使用者を特定するための使用者の認証処理を行う(ステップS35)。ここでは、使用者が指定するIDおよびパスワードにより使用者認証を行うものとする。たとえば、IDおよびパスワードは、使用者がICカード処理装置2に接続された操作部により入力し、認証コマンドとともにICカードへ供給されるものとする。IDおよびパスワードを取得すると、当該ICカード1のCPU10は、取得したIDおよびパスワードと上記データテーブル13aに記憶されている各使用者のIDおよびパスワードと照合する。このような照合処理により使用者が特定される。なお、使用者が特定できない場合、つまり、使用者認証が失敗した場合(ステップS36、NO)、上記CPU10は、使用者認証の失敗に伴うエラー処理を実行する(ステップS37)。
上記使用者認証により使用者が特定されると(ステップS36、YES)、上記CPU10は、アクセス権の設定処理(前処理手段)として、当該使用者の各データに対するアクセス権を上記データテーブル13aにより照会し(ステップS38)、上記データテーブル13aにおける設定内容に従って各フラグに基準値Rまたは反転値R´をセットする(ステップS39)。つまり、各データへのアクセス権を示す各フラグには、当該使用者のアクセス権に応じた値がセットされる。たとえば、アクセス可能なデータに対応するフラグには、基準値Rがセットされ、アクセスが禁止されているデータに対応するフラグには、反転値R´がセットされる。
上記のような各フラグにアクセス権を示す値をセットした状態において、上記CPU10は、データのアクセスを要求するコマンドを受信した場合(ステップS40、YES)、各データへのアクセスをフラグの状態に応じて制御する。すなわち、データへのアクセス要求を受けた場合、上記CPU10は、まず、各フラグX、Y、Zが正常な値であるか否かを判定する(ステップS42)。これは、上記CPU10は、各フラグX、Y、Zの値が基準値Rまたは反転値R´であるか否かを判定する処理である。すなわち、外的な要因などでフラグの値が変化させられていなければ、各フラグX、Y、Zには、基準値Rまたは反転値R´が格納されているはずである。したがって、何れかのフラグX、Y、Zに基準値Rまたは反転値R´以外の値が格納されている場合、何かの異常がICカード内で発生したものと判断できる。
上記判定により基準値Rまたは反転値R´以外の値がフラグに格納されていると判定した場合(ステップS42、NO)、上記CPU10は、フラグ内のビット異常が発生したものと判定し、エラー処理を行う(ステップS43)。この場合、外的な要因によりフラグ内のビット異常が発生した可能性が考えられる。このため、上記CPU10は、たとえば、セキュリティ確保のために、エラー処理として、強制的に動作を停止するようにする。また、上記CPU10は、エラー処理として、データへのアクセスを行わずに、ビット異常を示す応答を送信する処理のみを行うようにしても良い。
また、上記判定により各フラグが基準値Rまたは反転値R´であると判定した場合(ステップS42、YES)、上記CPU10は、アクセスが要求されているデータがアクセス可能なデータであるか否かを判定する(ステップS44)。これは、アクセスが要求されているデータに対応するフラグが基準値R(アクセス可能な状態であることを示す第1のデータ)であるか否かを判定する処理である。
上記判定によりアクセスが要求されたデータがアクセス可能なデータでないと判定した場合、つまり、当該データに対応するフラグの値が反転値R´である場合(ステップS44、NO)、上記CPU10は、アクセスが要求されたデータに対するアクセス権がない旨のレスポンスを出力するなどのエラー処理を行う(ステップS44)。この場合、当該ICカード1内の動作異常ではないと考えられる。このため、上記CPU10は、通常のエラー処理を行う。
また、上記判定によりアクセスが要求されたデータがアクセス可能なデータであると判定した場合、つまり、当該データに対応するフラグの値が基準値Rである場合(ステップS44、YES)、上記CPU10は、ICカード処理装置2から受信したコマンドに応じた本処理を実行する(ステップS46)。
上記のような第2の処理例では、アクセス権が設定されている各種のデータに対応づけて複数ビットからなるフラグを設定し、上記各フラグには使用者認証により特定された使用者のアクセス権を示す情報として、乱数に基づいて決定した複数ビットの基準値あるいは上記基準値に対する反転値の何れかをセットする。これにより、各フラグに記憶されている情報に基づいて、各データへのアクセス権を判定できる。また、各フラグが複数ビットからなっているため、外的な要因でフラグとして利用するメモリ領域の一部のビットの値を反転されても、フラグ全体が示す状態が反転することがなく、ビット異常としてエラー処理することが可能となる。
次に、第2の実施の形態について説明する。
本第2の実施の形態では、上記CPU内のハードウエア構成によって、上記第1の実施の形態で説明したような処理におけるフラグによる制御を実現するものである。すなわち、第2の実施の形態は、たとえば、上記第1の実施の形態で説明したステップS21およびS23の処理、あるいは、ステップS12およびS13の処理などをCPU内のハードウエア構成によって実現するものである。
図8は、第2の実施の形態に係る携帯可能電子装置としてのICカード101およびICカード101を含むICカードシステムの構成例を示すブロック図である。
図8に示すICカード101およびICカードシステムは、図1に示すICカード1およびICカードシステムとほぼ同様な機能を有している。このため、図8に示すICカード101およびICカードシステムにおいて、図1に示すICカード1と同様な構成については、同一箇所に同一符号を付して詳細な説明を省略するものとする。なお、上記ICカード101は、ICチップ101aを有するモジュール101bが埋設された本体101cにより構成されている。
図8に示すICカード101と図1に示すICカード1とでは、主に、CPU110内の構成が異なっている。つまり、第2の実施の形態に係るICカード101では、上記第1の実施の形態で説明したようなフラグによる制御(たとえば、図4のステップS21、S23の処理、あるいは、図7のステップS42、S44の処理)を実現するための構成を主としてCPU110内のハードウエア構成によって実現している。
図8に示すCPU110は、レジスタ110aおよびロジック回路110bなどを有している。上記レジスタ110aは、各種のステータスフラグ、あるいは、各ステータスフラグにセットすべき基準値などが記憶されるようになっている。なお、上記基準値は、上記第1の実施の形態で説明したような複数ビット長のデータ(第1のデータ)である。また、本第2の実施の形態では、上記第1の実施の形態と同様に、上記基準値の各ビットを反転させた反転値を第2のデータとするものとする。ただし、第2のデータを反転値以外の値とする場合、第2のデータも上記レジスタ110aに格納される。
上記ロジック回路110bは、上記レジスタ110aに設けられた各種のステータスフラグにセットされているデータを処理するためのハードウエアにより構成される。上記ロジック回路110bは、たとえば、各ステータスフラグの値と基準値および反転値を比較する比較回路などを有している。なお、上記レジスタ110aおよび上記ロジック回路110bについては、後で詳細に説明するものとする。
次に、上記CPU110内の第1の構成例について説明する。
図9は、上記CPU110内の第1の構成例を示す図である。
図9に示す構成例では、上記CPU110内のレジスタ110aに設定データ領域131とステータスフラグ領域132とが設けられている。また、図9に示す構成例では、各種のステータスフラグとして、ゼロフラグ132a、キャリーフラグ132b、×××フラグ132c、…が上記ステータスフラグ領域132に設けられている。また、図9に示す構成例では、上記設定データ領域131には、予め決定されている1つの基準値Rが記憶されているものとする。従って、各ステータスフラグ132a、132b、132c、…には、上記基準値Rあるいはその反転値R´の何れかの値が格納されるようになっている。
上記CPU110内のロジック回路110bには、各ステータスフラグ132a、132b、132c、…に対応する複数の比較回路141a、141b、141c、…が設けられている。上記比較回路141a、141b、141c、…は、各ステータスフラグの値に対して、基準値Rおよび反転値R´を比較し、その比較結果を出力する。
たとえば、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値が基準値Rと一致する場合、ステータスフラグ132a(132b、132c、…)が第1の状態(オンの状態)であることを示すオン信号を出力する。また、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値と反転値R´とが一致する場合、ステータスフラグ132a(132b、132c、…)が第2の状態(オフの状態)であることを示すオフ信号を出力する。また、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値が基準値R及び反転値R´の何れとも一致しない場合、ステータスフラグ132a(132b、132c、…)がエラー状態であることを示すエラー信号を出力するようになっている。
また、上記エラー信号は、各ステータスフラグにおけるビット異常が検出された場合に出力される信号である。このため、上記エラー信号は、各ステータスフラグにおけるビット異常に伴う動作を指示する信号であっても良い。たとえば、フラグのビット異常が検出された場合にCPU110の動作を強制的に停止させる形態では、エラー信号として、CPU110の動作を停止させるための信号(停止信号)を出力する。これにより、ステータスフラグにおけるビット異常が検出された場合、強制的にCPU110の動作を停止させることができる。この結果として、外的な要因による不正な動作を防止できる。
また、ステータスフラグにおけるビット異常が検出された場合にCPU110が優先的(強制的)にステータスフラグにおけるビット異常に伴う所定の処理(エラー処理)を実行する形態では、エラー信号として、CPU110の演算部にステータスフラグにおけるビット異常に伴う所定のエラー処理を優先的に実行させるための割り込み信号を出力する。これにより、上記CPU110は、ステータスフラグにおけるビット異常が検出された場合に、優先的にCPU110がビット異常の伴う所定のエラー処理を実行するようにできる。この結果として、外的な要因による不正な動作を防止できる。
上記のように、第1の構成例のCPU110には、各ステータスフラグ132a、132b、132c、…に対応づけた比較回路141a、141b、141c、…が設けられ、各比較回路141a、141b、141c、…が各ステータスフラグ132a、132b、132c、…の状態(オン、オフ、エラーの何れかであるか)を示す信号を出力する。このような処理は、上記第1の実施の形態で説明した図4のステップS21およびS23の処理あるいは図7のステップS42およびS44の処理に相当する処理である。言い換えると、第1の構成例では、CPU110内のハードウエア構成により、複数ビットからなる基準値が格納されるフラグのチェック処理を実現している。これにより、第1の構成例では、ステータスフラグを参照すべき処理において、複数ビット化された各ステータスフラグのチェック処理などを高速化することができる。また、上記第1の構成例では、CPU内のハードウエア構成によってステータスフラグの状態(オン、オフ、エラー)を機械的に出力することができるため、CPU内の演算部(図示しない)によるソフトウエア処理に負荷をかけることなく、ステータスフラグによる制御を効率的に実現できる。
次に、第2の実施の形態に係る上記CPU110内の第2の構成例について説明する。
図10は、上記CPU110内の第2の構成例を示す図である。
図10に示す構成例では、上記CPU110内のレジスタ110aの設定データ領域131には、各種のステータスフラグに対する複数の基準値を格納するための複数の基準値格納領域131a、131b、131c、…が設けられている。また、上記CPU110内のレジスタ110aのステータスフラグ領域132には、図9に示す第1の構成例と同様に、各種のステータスフラグとして、ゼロフラグ132a、キャリーフラグ132b、×××フラグ132c、…が設けられている。つまり、図10に示す第2の構成例では、各ステータスフラグごとに基準値が設定されている。
たとえば、図10に示す構成例では、各基準値格納領域131a、131b、131c、…は、それぞれゼロフラグ132a、キャリーフラグ132b、×××フラグ132c、…に対応づけられ、ゼロフラグ132aに基準値としてセットすべき値、キャリーフラグ132bに基準値としてセットすべき値、×××フラグ132cに基準値としてセットすべき値が格納されている。つまり、各ステータスフラグ132a、132b、132cには、それぞれ対応する基準値格納領域131a、131b、131cに格納されている基準値Ra、Rb、Rcあるいはその反転値Ra´、Rb´、Rc´の何れかの値が格納されるようになっている。
すなわち、図9に示す第1の構成例では、各ステータスフラグに格納すべき基準値を共通の値としたのに対して、図10に示す第2の構成例では、各ステータスフラグごとに基準値を設定するようにしたものである。なお、図10に示す構成例において、一部の基準値を共通化するようにしても良い。上記のような第2の構成例によれば、特定のステータスフラグに対応する基準値が第3者に推定された場合であっても、全てのステータスフラグに対する基準値が推定されることがなく、安全性を高めることが可能となる。
また、図10に示す第2の構成例において、上記CPU110内のロジック回路110bには、図9に示す第1の構成例と同様に、各ステータスフラグ132a、132b、132c、…に対応する複数の比較回路141a、141b、141c、…が設けられている。上記比較回路141a、141b、141c、…は、各ステータスフラグの値に対して、対応する各基準値Ra、Rb、Rcおよび各基準値Ra、Rb、Rcの反転値Ra´、Rb´、Rc´を比較し、その比較結果を出力する。
たとえば、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値が基準値格納領域131a(131b、131c、…)に格納されている基準値Ra(Rb、Rc、…)と一致する場合、ステータスフラグ132a(132b、132c、…)が第1の状態(オンの状態)であることを示すオン信号を出力する。また、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値と基準値格納領域131a(131b、131c、…)に格納されている基準値の反転値Ra´(Rb´、Rc´、…)とが一致する場合、ステータスフラグ132a(132b、132c、…)が第2の状態(オフの状態)であることを示すオフ信号を出力する。また、上記比較回路141a(141b、141c、…)は、ステータスフラグ132a(132b、132c、…)の値が基準値Ra(Rb、Rc、…)及び反転値Ra´(Rb´、Rc´、…)の何れとも一致しない場合、ステータスフラグ132a(132b、132c、…)がエラー状態であることを示すエラー信号を出力するようになっている。
なお、ステータスフラグにおけるビット異常が検出された場合のエラー信号としては、上述した第1の構成例と同様に、CPU110を強制的に停止させるための停止信号を出力するようにしても良いし、ステータスフラグにおけるビット異常に伴う所定のエラー処理を優先的に実行させるための割り込み信号を出力するようにしても良い。これにより、上記CPU110は、ステータスフラグにおけるビット異常が検出された場合に、強制的(優先的)に停止したり、ビット異常の伴う所定のエラー処理を実行したりすることができる。この結果として、外的な要因による不正な動作を防止できる。
上記のように、第2の構成例のCPU110には、各ステータスフラグ132a、132b、132c、…に対応づけた基準値格納領域131a、13b、131cをレジスタに設け、さらに、各ステータススラグと基準値とに対応づけた比較回路141a、141b、141c、…をロジック回路に設けられている。上記CPU110では、各比較回路141a、141b、141c、…がそれぞれ基準値格納領域131a、13b、131cの値と各ステータスフラグ132a、132b、132c、…の値とを比較することにより、各ステータスフラグ132a、132b、132c、…の状態(オン、オフ、エラーの何れかであるか)を示す信号を出力する。上記のような処理は、上記第1の実施の形態で説明した図4のステップS21およびS23の処理あるいは図7のステップS42およびS44の処理に適用可能である。
言い換えると、上記第2の構成例では、CPU内のハードウエア構成により各フラグごとに設定されている複数ビットからなる基準値に基づくフラグの制御を実現している。これにより、上記第2の構成例では、複数ビット化された基準値が各ステータスフラグごとに設定されている場合であっても、ソフトウエア制御による負荷をかけることなく、各ステータスフラグのチェック処理などを高速に実行することができる。
次に、上記CPU110内の第3の構成例について説明する。
図11は、上記CPU110内の第3の構成例を示す図である。
図11に示す第3の構成例では、図9に示す第1の構成例に加えて、上記CPU110内のロジック回路110bに乱数生成回路142が追加されている。上記乱数生成回路142は、リセット信号を受けて乱数を生成し、生成した乱数を基準値Rとしてレジスタ110a内の設定データ領域131に格納する。上記設定データ領域131に基準値Rが設定された状態では、上述した図9に示す第1の構成例と同様な動作を行う。
すなわち、図11に示す第3の構成例では、当該ICカード101がリセットされるごとに、ロジック回路110b内の乱数生成回路142が乱数を生成し、生成した乱数に基づく基準値Rが設定データ領域131に格納されるようになっている。なお、乱数生成回路142が乱数を生成し、生成した乱数に基づく基準値を設定データ領域131に格納する処理は、リセット時に実行することに限定されるものではなく、たとえば、コマンドを受信するごとなどの任意のタイミングで実現することも可能である。なお、第3の構成例による乱数に基づく基準値の設定処理は、たとえば、第1の実施の形態で説明した図4のステップS11〜S13の処理あるいは図7のステップS31〜S33の処理に適用可能である。
上記のように、第3の構成例では、設定データ領域131に格納される基準値がリセットされるごとに任意のデータに変更されるため、基準値が第3者に特定されるリスクを軽減し、第3者が種々の解析手法で基準値を推定したととしても、その基準値をリセット時に無効とすることが可能となる。この結果として、上記第3の構成例によれば、ICカードのセキュリティ性を向上させることができる。さらに、上記第3の構成例では、乱数により基準値を設定する処理、および、ステータスフラグのチェック処理などをハードウエアにより実行するため、ICカードにおける処理の高速化および効率化が期待できる。
次に、上記CPU110内の第4の構成例について説明する。
図12は、上記CPU110内の第4の構成例を示す図である。
図12に示す第4の構成例では、図10に示す第2の構成例に加えて、上記CPU110内のロジック回路110bに乱数生成回路142が追加されている。上記乱数生成回路142は、リセット信号を受けて各基準値格納領域131a、131b、131c、…ごとに乱数を生成し、生成した各乱数を基準値Ra、Rb、Rcとしてレジスタ110a内の各基準値格納領域131a、131b、131c、…に格納する。各基準値格納領域131a、131b、131c、…に基準値Ra、Rb、Rcが設定された状態において、上記第4の構成例では、上述した第2の構成例と同様な動作を行う。
すなわち、図12に示す第4の構成例では、当該ICカード101がリセットされるごとに、ロジック回路110b内の乱数生成回路142が各基準値となる乱数をそれぞれ生成し、生成した乱数に基づく各基準値Ra、Rb、Rc、…が各基準値格納領域131a、131b、131c、…に格納されるようになっている。なお、乱数生成回路142が各基準値用の乱数を生成し、生成した乱数に基づいて各基準値を各基準値格納領域に格納する処理は、リセット時に実行することに限定されるものではなく、たとえば、コマンドを受信するごとなどの任意のタイミングで実現することも可能である。また、第4の構成例による乱数に基づく基準値の設定処理は、たとえば、第1の実施の形態で説明した図4のステップS11〜S13の処理あるいは図7のステップS31〜S33の処理に適用可能である。
上記のように、第4の構成例では、各基準値格納領域131a、131b、131c、…に格納される基準値Ra、Rb、Rc、…がリセットされるごとに任意のデータに変更される。このため、第4の構成例では、各ステータスフラグごとに基準値を設定することにより何れかの基準値が第3者に解析された場合のリスクを軽減するだけでなく、基準値が第3者に特定されるリスクを軽減し、第3者が種々の解析手法で基準値を推定したととしても、その基準値をリセット時に無効とすることが可能となる。この結果として、上記第4の構成例によれば、ICカードのセキュリティ性を向上させることができる。さらに、上記第4の構成例では、乱数により各基準値を設定する処理、および、ステータスフラグのチェック処理などをハードウエアにより実行するため、ICカードにおける処理の高速化および効率化が期待できる。
第1の実施の形態に係るICカードおよびICカードを含むシステムの構成例を示すブロック図。 非接触式ICカードの全体の構成例を示す図。 実行条件のチェック結果を示す各フラグの設定例を示す図。 第1の実施の形態としての第1の処理例の流れを説明するためのフローチャート。 各使用者に対する各種データへのアクセス権を示すデータテーブルの構成例を示す図。 各種データへのアクセス権を示す各フラグの設定例を示す図。 第1の実施の形態としての第1の処理例の流れを説明するためのフローチャート。 第2の実施の形態に係るICカードおよびICカードを含むシステムの構成例を示すブロック図。 第2の実施の形態に係るICカードのCPUにおける第1の構成例を示す図。 第2の実施の形態に係るICカードのCPUにおける第2の構成例を示す図。 第2の実施の形態に係るICカードのCPUにおける第3の構成例を示す図。 第2の実施の形態に係るICカードのCPUにおける第4の構成例を示す図。
符号の説明
R、Ra、Rb、Rc…基準値(第1のデータ)、R´、Ra´、Rb´、Rc´…反転値(第2のデータ)、1、101…ICカード(携帯可能電子装置)、1a、101a…ICチップ、1b、101b…モジュール、1c、101c…本体、2…ICカード処理装置、10、110…CPU(判断手段、実行手段、停止手段、エラー処理手段)、10a、110a…レジスタ(第1の記憶手段)、11…プログラムメモリ、12…ワーキングメモリ、12a…フラグ領域(第2の記憶手段)、13…データメモリ(第3の記憶手段)、13a…データテーブル、14…乱数生成部(乱数生成手段)、15…通信制御部、16…電源部、17…インターフェース、110b…ロジック回路、131…設定データ領域(第1の記憶手段)、131a、131b、131c…基準値格納領域(第1の記憶手段)、132…ステータスフラグ領域(第2の記憶手段)、132a、132b、132c…ステータスフラグ(ゼロフラグ、キャリーフラグ、×××フラグ)(第2の記憶手段)、141a、141b、141c…比較回路(判断手段)、142…乱数生成回路(乱数生成手段)

Claims (12)

  1. 外部装置から供給されるコマンドに応じて動作する携帯可能電子装置において、
    複数ビット長の第1のデータを格納する第1の記憶手段と、
    当該携帯可能電子装置の状態を示す情報として、前記第1の記憶手段に記憶されている前記第1のデータ、あるいは、前記第1のデータとは異なる第2のデータの何れかを格納する第2の記憶手段と、
    前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致するか否かを判断する判断手段と、
    この判断手段により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致すると判断した場合、前記第2の記憶手段に記憶されている内容に応じて外部装置から供給されるコマンドに対応する本処理を実行する実行手段と、
    を有することを特徴とする携帯可能電子装置。
  2. さらに、乱数を生成する乱数生成手段を有し、
    前記第1の記憶手段は、前記乱数生成手段により生成された乱数に基づくデータを第1のデータとして格納する、
    ことを特徴とする前記請求項1に記載の携帯可能電子装置。
  3. 前記乱数生成手段は、互いに異なる2つの乱数を生成し、
    前記第1の記憶手段は、前記乱数生成手段により生成された一方の乱数に基づく第1のデータと前記乱数生成手段により生成された他方の乱数に基づく第2のデータとを記憶する、
    ことを特徴とする前記請求項2に記載の携帯可能電子装置。
  4. さらに、前記判断手段により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかとも一致しないと判断した場合、当該携帯可能電子装置の動作を停止する停止手段を有することを特徴とする前記請求項1又は3に記載の携帯可能電子装置。
  5. さらに、前記判断手段により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかとも一致しないと判断した場合、前記第2の記憶手段に異常が発生していることを示す情報を前記外部装置へ送信するエラー処理手段を有することを特徴とする前記請求項1又は3に記載の携帯可能電子装置。
  6. さらに、前記外部装置から受信したコマンドに対応する処理を実行するための実行条件をチェックし、そのチェック結果を前記第2の記憶手段に記憶する処理を行う前処理手段を有する、
    ことを特徴とする前記請求項1乃至5に記載の携帯可能電子装置。
  7. さらに、各種のデータを記憶する第3の記憶手段と、
    前記第3の記憶手段に記憶されている各種のデータに対するアクセス権を示す情報を前記第2の記憶手段に格納する処理を行う前処理手段と、を有する、
    ことを特徴とする前記請求項1乃至5に記載の携帯可能電子装置。
  8. さらに、使用者を認証する認証手段を有し、
    前記前処理手段は、前記認証手段により認証が成功した使用者に対する各種のデータに対するアクセス権を示す情報を前記第2の記憶手段に格納する処理を行う、
    ことを特徴とする前記請求項7に記載の携帯可能電子装置。
  9. 前記判断手段は、前記第2の記憶手段に記憶されているデータが前記第1のデータと一致する場合に第1の状態であることを示す信号を出力し、前記第2の記憶手段に記憶されているデータが前記第2のデータと一致する場合には第2の状態であることを示す信号を出力し、前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れとも一致しない場合にはエラー状態であることを示す信号を出力する比較回路である、
    ことを特徴とする前記請求項1乃至8に記載の携帯可能電子装置。
  10. 前記第2の記憶手段は、第1のデータあるいは第2のデータを格納するための複数のフラグを有し、
    前記第1の記憶手段は、前記第2の記憶手段の各フラグに対応する種々の第1のデータを格納する、
    ことを特徴する前記請求項1乃至9に記載の携帯可能電子装置。
  11. 外部装置から供給されるコマンドに応じて動作する携帯可能電子装置に用いられる制御方法であって、
    複数ビット長の第1のデータを第1の記憶手段に格納しておき、
    当該携帯可能電子装置の状態を示す情報として、前記第1の記憶手段に記憶されている前記第1のデータ、あるいは、前記第1のデータとは異なる第2のデータの何れかを前記第2の記憶手段に格納し、
    前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致するか否かを判断し、
    この判断により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致すると判断した場合、前記第2の記憶手段に記憶されている内容に応じて外部装置から供給されるコマンドに対応する本処理を実行する、
    ことを特徴とする携帯可能電子装置の制御方法。
  12. 外部装置から供給されるコマンドに応じて動作するICカードにおいて、
    複数ビット長の第1のデータを格納する第1の記憶手段と、当該携帯可能電子装置の状態を示す情報として、前記第1の記憶手段に記憶されている前記第1のデータ、あるいは、前記第1のデータとは異なる第2のデータの何れかを格納する第2の記憶手段と、前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致するか否かを判断する判断手段と、この判断手段により前記第2の記憶手段に記憶されているデータが前記第1のデータあるいは前記第2のデータの何れかと一致すると判断した場合、前記第2の記憶手段に記憶されている内容に応じて外部装置から供給されるコマンドに対応する本処理を実行する実行手段とを具備するモジュールと、
    前記モジュールを具備する本体と、
    を有することを特徴とするICカード。
JP2007157870A 2007-06-14 2007-06-14 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法 Active JP5019210B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007157870A JP5019210B2 (ja) 2007-06-14 2007-06-14 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007157870A JP5019210B2 (ja) 2007-06-14 2007-06-14 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法

Publications (3)

Publication Number Publication Date
JP2008310595A JP2008310595A (ja) 2008-12-25
JP2008310595A5 JP2008310595A5 (ja) 2010-04-30
JP5019210B2 true JP5019210B2 (ja) 2012-09-05

Family

ID=40238137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007157870A Active JP5019210B2 (ja) 2007-06-14 2007-06-14 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法

Country Status (1)

Country Link
JP (1) JP5019210B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5262941B2 (ja) * 2009-04-10 2013-08-14 ソニー株式会社 認証装置、認証方法、及びプログラム
JP7020969B2 (ja) * 2018-03-16 2022-02-16 株式会社東芝 携帯可能電子装置、及びicカード

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005027403A1 (ja) * 2003-09-11 2005-03-24 Renesas Technology Corp. 情報処理装置
JP2005149438A (ja) * 2003-11-20 2005-06-09 Matsushita Electric Ind Co Ltd 半導体装置

Also Published As

Publication number Publication date
JP2008310595A (ja) 2008-12-25

Similar Documents

Publication Publication Date Title
US7392404B2 (en) Enhancing data integrity and security in a processor-based system
US20080120726A1 (en) External storage device
US7080258B2 (en) IC, IC-mounted electronic device, debugging method and IC debugger
JP4896837B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP2009540395A (ja) 携帯可能電子装置およびその制御方法
JP2008243045A (ja) 携帯可能電子装置およびicカード
US20090184799A1 (en) Information storage medium and information storage medium processing apparatus
EP1331600A2 (en) Memory card
KR20190032546A (ko) 휴대 가능 전자 장치
JP5019210B2 (ja) 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
US20060289656A1 (en) Portable electronic apparatus and data output method therefor
US9912471B2 (en) Method for operating a portable data carrier, and such a portable data carrier
JP2009032003A (ja) 携帯可能電子装置、端末装置、認証システム、及び認証方法
JP2020009305A (ja) Icチップ、icカード及びプログラム
JP2007141113A (ja) バイオメトリクス認証機能を備えたicカード、および、icカードプログラム
JP4104990B2 (ja) メモリカード
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
JP2006195901A (ja) 半導体装置
TWM504286U (zh) 內嵌智能晶片之安全數位記憶卡及行動讀卡終端機
JP2011171946A (ja) 携帯可能電子装置、携帯可能電子装置の制御方法及びicカード
JP2010128510A (ja) 生体情報認証システム
JP2004185419A (ja) 携帯可能電子媒体と、その携帯可能電子媒体の発行システム、処理方法及び発行方法
JP6969114B2 (ja) Icカード、icカードの起動処理方法、およびicカードの起動処理プログラム
JP2015130001A (ja) 可搬型電子媒体、及び入出力制御方法
JP2005044191A (ja) 記憶装置、記憶装置における認証方法、記憶装置における認証プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120601

R151 Written notification of patent or utility model registration

Ref document number: 5019210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3