説明

携帯可能電子装置及び携帯可能電子装置のデータ出力方法

【課題】処理プログラムが不正な処理を行った場合であっても、ICカード内のデータを保護することができ、セキュリティ性の高いICカードを実現することが可能となる。
【解決手段】データの出力を要求するコマンドに対応する種々の処理が全て正常に実行された場合に所定の値となるような初期値を監視フラグに設定し、データの出力を要求するコマンドに対応する種々の処理の実行状況に応じて監視フラグの値をセットし、データを出力するまでの各処理が完了すると、監視フラグの値に基づいて出力すべきデータをマスクし、マスクしたデータを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、外部装置との通信インターフェース、データを記憶しているメモリ、および処理プログラムを実行するCPUなどを有するICカードなどの携帯可能電子装置及び携帯可能電子装置のデータ出力方法に関する。
【背景技術】
【0002】
従来、携帯可能電子装置としてのICカードでは、外部機器からのデータの読み出しを要求する読み出しコマンドに応じて、メモリに記憶しているデータを出力するようになっている。従来のICカードでは、外部から読み出しコマンドを受信すると、データを出力するために必要な種々の処理を実行する。この際、ICカードでは、データを出力するために必要な種々の処理の実行状態を監視フラグにより監視している。従って、ICカードでは、実際にデータを出力する前に、監視フラグをチェックする。このチェックの結果として監視フラグが正常であると判断した場合、当該ICカードは、データを出力する。このように、従来のICカードでは、監視フラグを用いて処理内容を監視している。これにより、従来のICカードでは、不正にデータを出力することを抑えるようになっている。
【0003】
しかしながら、上記のようなICカードからデータを盗み出そうとする悪意のある者(不正アクセス者)は、ICカードに対する様々なアタックにより、当該ICカード内のデータを解読(読み出)しようとする。たとえば、不正アクセス者は、ICカードに対して外部からノイズを加えてプログラムを誤動作させることがある。この場合、当該ICカードは、上記のような処理における監視フラグのチェックが無効化され、当該ICカード内のデータを出力してしまう可能性がある。つまり、従来のICカードでは、外部からのノイズなどにより意図的にプログラムを誤動作させると、内部のデータを出力してしまう可能性があるという問題点がある。
【特許文献1】特開平10−154976号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の一形態では、外部へ出力するデータを保護することによりセキュリティ性を向上させることができ、安全性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、外部からデータの出力を要求するコマンドが供給された場合に、当該コマンドに応じた処理を全て実行した状態で所定の値となる監視情報の初期値を設定する設定手段と、この設定手段により初期値が設定された監視情報を実行した処理に応じて変更する変更手段と、この変更手段により実行した処理に応じて変更された監視情報に基づいて出力すべきデータを保護する保護手段と、この保護手段により保護されたデータを外部へ出力する出力手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置のデータ出力方法は、外部からデータの出力を要求するコマンドが供給された場合に、当該コマンドに応じた処理を全て実行した状態で所定の値となる監視情報の初期値を設定する第1のステップと、この第1のステップにより初期値が設定された監視情報を実行した処理に応じて変更する第2のステップと、この第2のステップにより実行した処理に応じて変更された監視情報に基づいて出力すべきデータを保護する第3のステップと、この第3のステップにより保護されたデータを外部へ出力する第4のステップとを有する。
【発明の効果】
【0007】
この発明の一形態によれば、外部へ出力するデータを保護することによりセキュリティ性を向上させることができ、安全性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【0008】
以下、この発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1は、この発明の実施の形態に係る携帯可能電子装置としてのICカード2との通信機能を有する外部装置としての端末システム(ICカード処理装置)1の構成例を概略的に示すブロック図である。
図1に示すように、上記端末システム1は、端末装置11、表示装置12、キーボード13、および、カードリーダライタ14などを有している。
【0009】
上記端末装置11は、上記端末システム1全体の動作を制御するものである。上記端末装置11は、CPU、種々のメモリおよび各種インターフェースなどを有する。上記端末装置11は、上記カードリーダライタ14により上記ICカード2へ処理命令としてのコマンドを送信する機能、上記ICカード2から受信したデータを基に種々の処理を行う機能などを有している。
【0010】
たとえば、上記端末装置11は、上記カードリーダライタ14を介して上記ICカード2にデータの書込みを要求する書込みコマンドを送信する。すると、この書込みコマンドを受けたICカード2では、ICカード2内のメモリにデータを書き込んむ処理を行う。また、上記端末装置11は、上記カードリーダライタ14を介して上記ICカード2にデータの読み出しを要求する読出コマンドを送信する。すると、この読出コマンドを受けたICカード2では、当該ICカード2内のメモリに記憶されているデータを読み出し、読み出したデータを上記端末装置11へ送信する処理を行う。
【0011】
上記表示装置12は、上記端末装置11の制御により種々の情報を表示するディスプレイ装置である。上記キーボード13は、当該端末システム1の操作員が操作する操作部である。上記キーボード13は、操作員により種々の操作指示やデータなどが入力される。上記カードリーダライタ14は、上記ICカード2との通信を行うためのインターフェース装置である。上記カードリーダライタ14では、上記ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信などを行うようになっている。つまり、上記カードリーダライタ14は、上記端末装置11による制御に基づいて上記ICカード2を活性化(起動)させ、活性化させたICカード2へ種々のコマンドを送信したり、送信したコマンドに対する応答を受信したりするようになっている。
【0012】
上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触式通信により上記端末システム1と通信を行う場合、つまり、上記ICカード2が接触式のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのコンタクト部21を介してICカード処理装置1からの動作電源および動作クロックの供給を受けて活性化される。
【0013】
また、ICカード2が非接触式の通信方式により上記端末システム1と通信を行う場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2の上記コンタクト部21は、通信インターフェースとしてのアンテナおよび通信制御部等により構成される。この場合、上記ICカード2は、通信インターフェースとしてのコンタクト部21のアンテナおよび通信制御部等を介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【0014】
次に、上記ICカード2の構成例について説明する。
図2は、上記ICカード2の内部構成例を概略的に示すブロック図である。図2に示すように、上記ICカード2は、コンタクト部21、制御部22、RAM23、ROM24、および不揮発性メモリ25などを有してしている。上記制御部22、RAM23、ROM24および不揮発性メモリ25は、例えば、ICチップ(図示しない)により構成され、ICカード2の筐体内に埋設されている。
【0015】
上記コンタクト部21は、上記端末システム1のカードリーダライタ14との通信用のインターフェースとして機能する。当該ICカード2が接触式のICカードとして実現される場合、上記コンタクト部21は、上記ICカード処理装置1のカードリーダライタ14と接触して信号の送受信を行うインターフェースとして構成される。また、当該ICカード2が非接触式のICカードとして実現される場合、上記コンタクト部21は、上記ICカード処理装置1のカードリーダライタ14との電波の送受信を行うインターフェースとして構成される。
【0016】
上記制御部22は、当該ICカード2全体の制御を司るものである。上記制御部22は、上記ROM24あるいは不揮発性メモリ25に記憶されている処理プログラムに基づいて動作する。上記RAM23は、ワーキングメモリとして機能する揮発性のメモリである。上記RAM23は、上記制御部22が処理中のデータなどを一時保管するバッファとして機能する。上記RAM23は、例えば、上記コンタクト部21を介して上記ICカード処理装置1から受信したデータを一時保管するようになっている。
【0017】
上記ROM24は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM24は、製造段階でICカード2内に組み込まれるものである。上記ROM24に記憶されている制御プログラムは、予め当該ICカード2の仕様に応じて組み込まれるものである。
【0018】
上記不揮発性メモリ25は、例えば、EEPROMあるいはフラッシュROMなどのデータの書込み及び書き換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ25には、当該ICカード2の運用用途に応じてプログラムファイルやデータファイルなどが定義され、それらのファイルにデータが書き込まれる。また、上記不揮発性メモリ25には、当該ICカードを認証するための認証情報、あるいは、当該ICカードに固有な固有データなども記憶されている。上記乱数生成部26は、乱数データを生成するものである。
【0019】
次に、上記のように構成されるICカード2における処理について説明する。
図3は、上記ICカード2における処理例を説明するためのフローチャートである。
まず、上記端末システム1では、上記カードリーダライタ14によりICカード2に対してデータの読み出しを要求する読出コマンドを出力する。これに対して、上記ICカード2では、上記通信インターフェース21により端末システム1からの読出コマンドを受信する(ステップS11)。上記端末システム1からの読出コマンドを受信すると、当該ICカード2の制御部22は、受信したコマンドに応じた監視フラグ(監視情報)を設定(初期化)する(ステップS12)。
【0020】
上記監視フラグは、受信したコマンドに応じた処理の実行状況を監視するための情報である。つまり、上記監視フラグは、コマンドに対応する各種の処理が確実に実行されたか否かを識別するための情報である。また、上記監視フラグは、当該ICカード2内のメモリに設定される。たとえば、上記監視フラグは、制御部22内の内部メモリ(図示しない)に記憶されるようにしても良いし、RAM23に記憶されるようにしても良いし、上記不揮発性メモリ25に記憶されるようにしても良い。
【0021】
このような監視フラグを初期化すると、上記ICカード2の制御部22は、受信したコマンドに応じた各種の処理を順次行い、それらの処理の実行に応じて所定のタイミングで監視フラグのセット(監視フラグの値の変更)を行う(ステップS13〜S20)。つまり、受信した読出コマンドに応じた各処理が正常に実行された場合に、上記制御部22は、上記監視フラグをセットする処理として監視フラグの値を変更する。
【0022】
また、上記監視フラグの値(初期値)は、データを出力するまでの各種の処理を終了した時点(データを出力する直前)で所定の値(「0」)となるような値に設定される。また、上記ICカード2では、受信したコマンドに応じて実行すべき種々の処理(処理内容)が決まる。このため、上記監視フラグには、受信したコマンドに応じた所定の初期値が設定される。また、上記監視フラグをセットするタイミング(処理チェックポイント)は、受信したコマンドに応じて予め設定されているものとする。
【0023】
なお、図3では、データを暗号化して出力する場合における代表的な処理内容と、監視フラグをセットすべき複数のタイミングとの例を示している。ここでは、データを出力する処理の具体例の1つとして、図3に示すようなデータを暗号化して出力する処理について説明する。なお、本実施の形態では、監視フラグをセットすべきタイミングを処理チェックポイントとも称することとする。
【0024】
すなわち、端末システム1からデータを暗号化して出力する旨のコマンドを受信した場合、上記制御部22は、まず、当該コマンドに応じた処理チェックポイントの数に基づく監視フラグの初期値を設定する(ステップS12)。なお、図3に示す例では、処理チェックポイントの数が4つである。このため、図3に示す例では、例えば、監視フラグの初期値として「4」が設定される。
【0025】
上記監視フラグを初期化すると、上記制御部22は、第1の処理としてセキュリティステータスのチェックを行う(ステップS13)。このセキュリティステータスのチェックとは、セキュリティステータスとして設定されている事項をチェックする処理である。このセキュリティステータスのチェックとしては、たとえば、コマンドの送信元としての端末システム1の認証、あるいは、受信したコマンドの認証などの処理が行われる。
【0026】
第1の処理としてのセキュリティステータスチェックが正常に終了すると、上記制御部22は、第1の処理チェックポイントであると判断する。上記第1の処理チェックポイントは、第1の処理に対応して監視フラグをセットするタイミングである。上記判断により第1の処理チェックポイントであると判断した場合、つまり、第1の処理としてのセキュリティステータスチェックが正常に終了したと判断した場合、上記制御部22は、上記監視フラグをセットする処理を行う。たとえば、第1の処理チェックポイントで監視フラグを「1」づつ減算する場合、上記制御部22は、現在の監視フラグの値(初期値)から「1」を減算することにより監視フラグのセットを行う。
【0027】
上記第1の処理チェックポイントで監視フラグをセットすると、上記制御部22は、第2の処理としての認証子データの検証処理を行う(ステップS15)。この認証子データの検証処理とは、認証子データを正当性を検証する処理である。上記第2の処理としての認証子データの検証処理が正常に終了すると、上記制御部22は、第2の処理チェックポイントであると判断する。上記第2の処理チェックポイントは、第2の処理に対応して監視フラグをセットするタイミングである。
【0028】
上記判断により第2の処理チェックポイントであると判断した場合、つまり、第2の処理としての認証子データの検証処理が正常に終了したと判断した場合、上記制御部22は、上記監視フラグをセットする処理を行う(ステップS16)。たとえば、第2の処理チェックポイントで監視フラグを「1」づつ減算する場合、上記制御部22は、現在の監視フラグの値から「1」を減算することにより監視フラグのセットを行う。
【0029】
上記第2の処理チェックポイントで監視フラグをセットすると、上記制御部22は、第3の処理としての暗号化処理を行う(ステップS17)。この暗号化処理では、出力すべきデータの暗号化を行う。上記第3の処理としての暗号化処理が正常に終了すると、上記制御部22は、第3の処理チェックポイントであると判断する。上記第3の処理チェックポイントは、第3の処理に対応して監視フラグをセットするタイミングである。
【0030】
上記判断により第3の処理チェックポイントであると判断した場合、つまり、第3の処理としての暗号化処理が正常に終了したと判断した場合、上記制御部22は、上記監視フラグをセットする処理を行う(ステップS18)。たとえば、第3の処理チェックポイントで監視フラグを「1」減算する場合、上記制御部22は、現在の監視フラグの値から「1」を減算することにより監視フラグのセットを行う。
【0031】
上記第3の処理チェックポイントで監視フラグをセットすると、上記制御部22は、第4の処理としての認証子データ処理を行う(ステップS19)。この認証子データ処理とは、暗号化した出力すべきデータに認証子データを付加する処理である。上記第4の処理としての認証子データ処理が正常に終了すると、上記制御部22は、第4の処理チェックポイントであると判断する。上記第4の処理チェックポイントは、第4の処理に対応して監視フラグをセットするタイミングである。
【0032】
上記判断により第4の処理チェックポイントであると判断した場合、つまり、第4の処理としての認証子データ処理が正常に終了したと判断した場合、上記制御部22は、上記監視フラグをセットする処理を行う(ステップS20)。たとえば、第4の処理チェックポイントで監視フラグを「1」減算する場合、上記制御部22は、現在の監視フラグの値から「1」を減算することにより監視フラグのセットを行う。
【0033】
図3に示す例では、第1、第2、第3および第4の処理がデータを出力するまでに実行すべき処理である。従って、上記第4の処理チェックポイントで監視フラグをセットすると、上記制御部22は、受信した読み出しコマンドに応じて、データを出力するまでに実行すべき種々の処理が完了したものと判断する。データを出力するまでに実行すべき種々の処理が終了したと判断した場合、上記制御部22は、マスクデータを生成する処理を行う(ステップS21およびS22)。
【0034】
上記マスクデータは、出力すべきデータを保護するために用いられるデータである。本実施の形態では、後述するステップS23において、上記マスクデータを用いて出力すべきデータに演算処理が施される。つまり、上記マスクデータは、監視フラグが所定の値である場合にマスクされるデータを変化させずに、監視フラグが所定の値でない場合にマスクされるデータを変化させるようになっている。
【0035】
また、上記マスクデータは、たとえば、監視フラグの値を用いても良いし、監視フラグの値と乱数データ(任意のデータ)とに基づいて生成するようにしても良いし、監視フラグの値と当該ICカードの固有データとに基づいて生成するようにしても良いし、過去の処理における監視フラグの値と今回の監視フラグの値とに基づいて生成するようにしても良い。ここでは、上記マスクデータが監視フラグの値と乱数データとに基づいて生成される場合を想定して説明する。
【0036】
この場合、上記マスクデータを生成する処理として、上記制御部22は、上記乱数生成部26により乱数データを生成する(ステップS21)。上記乱数生成部26により乱数データを生成すると、上記制御部22は、生成した乱数データと監視フラグの値とによりマスクデータを生成する(ステップS22)。ここでは、上記制御部22は、乱数データと監視フラグの値との所定の演算処理により上記マスクデータを生成する。上記マスクデータの生成処理の具体例としては、生成した乱数データに対して監視フラグの数値分のビットシフト演算を行い、その演算結果と乱数データとの排他的論理和を演算する。
【0037】
上記マスクデータを生成すると、上記制御部22は、生成したマスクデータにより出力すべきデータをマスク(保護)する処理を行う(ステップS23)。具体的には、上記制御部22は、生成したマスクデータと出力すべきデータとの所定の演算処理を行う(ステップS23)。つまり、上記制御部22は、出力すべきデータを保護するために、上記マスクデータを用いて出力すべきデータに演算処理を施す。たとえば、マスクデータを用いた出力すべきデータに対する演算処理として、上記制御部22は、マスクデータと出力すべきデータとの排他的論理和を演算する。また、上記ステップS23の演算処理としては、マスクデータと出力すべきデータとを、論理和演算、加算、あるいは、シフト演算などを施すようにしても良い。
【0038】
上記マスクデータを用いて出力すべきデータをマスクすると、上記制御部22は、受信した読出コマンドに対する応答として、上記マスクデータによりマスクされた出力すべきデータを上記通信インターフェース21により上記端末システム1へ出力する(ステップS25)。これにより、上記端末システム1では、送信した読出コマンドに対応する応答として当該ICカードからデータを取得する。
【0039】
上記のようなステップS22〜S24の具体例として、上記ステップS22で、乱数データを用いて監視フラグの数値分をシフトしたデータと乱数データとの排他的論理和演算を行い、上記ステップS23で、マスクデータと出力すべきデータとの排他的論理和演算を行う場合について説明する。
【0040】
この場合、監視フラグが「0」であれば、乱数データの値に関らず、上記ステップS22の演算結果としてのマスクデータは、「0」となる。このように、マスタデータが「0」であれば、出力すべきデータは、上記ステップS23の演算処理で改ざんされない。従って、監視フラグが「0」であればマスクデータも「0」となる。このため、上記ステップS24では、出力すべきデータが正常なデータのまま出力される。
【0041】
これに対して、監視フラグが「0」でなければ、上記ステップS22の演算結果としてのマスクデータは、「0」でなくなる。このように、マスタデータが「0」でなければ、出力すべきデータは、上記ステップS23の演算処理で改ざんされる。すなわち、監視フラグが「0」であればマスクデータも「0」でなくなる。このため、上記ステップS24では、出力すべきデータを改ざんした異常なデータが出力される。
【0042】
上記のように、本実施の形態のICカードは、データの出力を要求するコマンドに対応する種々の処理の実行状況を監視する監視フラグを全ての処理が正常に実行された場合に所定の値となるような初期値に設定し、実行した処理に応じて監視フラグの値を変更(セット)し、データの出力処理の前までの各処理が完了した段階において監視フラグの値に基づいて出力すべきデータをマスクし、マスクしたデータを出力する。
【0043】
これにより、上記ICカードでは、監視フラグのチェックが不要となるとともに、正常な処理が行われなければ、正常なデータを出力しないようにすることができる。たとえば、外乱によりプログラムが誤動作して特定の処理過程がスキップされると、監視フラグは正常な値にならない。このため、監視フラグに基づいてマスキングされる出力データは、正常なデータではなくなる。従って、上記のような実施の形態によれば、ICカード内のデータを保護することができ、セキュリティ性の高いICカードを実現することが可能となる。
【0044】
さらに、上記ICカードは、出力すべきデータに対して、上記マスクデータとの、排他的論理和演算、論理和演算、加算演算、あるいは、シフト演算などの所定の規則に基づいた演算を施し、その演算結果を出力データとして出力する。これにより、監視フラグが所定の値でなければ、実際に出力されるデータは、出力すべきデータとは異なる異常なデータとなる。この結果、ICカード内のデータを保護することが可能となる。
【0045】
さらに、上記監視フラグにより監視すべき全ての処理が終了すると、上記ICカードは、上記監視フラグの値と乱数データとによりマスクデータを生成し、生成したマスクデータに基づいて出力すべきデータをマスクして出力する。これにより、上記ICカードでは、出力すべきデータを乱数性を持たせてマスクすることができる。この結果、マスクされたデータ(出力されるデータ)の傾向から正しいデータを予測することもできないようにすることができ、セキュリティ性の高いICカードを実現することが可能となる。
【0046】
なお、上記ICカードでは、全ての処理が正常に行われた場合に「0」となるような初期値を監視フラグに設定し、特定の各処理が実行されるごとに監視フラグの値を減算するようにしても良い。この場合、上記監視フラグにより監視すべき全ての処理が正常に終了すると、上記ICカードは、上記監視フラグの値が「0」となる。このため、マスク処理としては、監視フラグの値が「0」であれば、出力すべきデータが変化しないような演算処理を施すようにする。これにより、上記ICカードでは、全ての処理が正常に終了すると、出力すべきデータをマスクしてもデータが変化しないようにでき、セキュリティ性を高めることができる。
【0047】
また、上記ICカードには、上記ステップS24でデータを出力するごとに不揮発性メモリ等に当該ICカードに固有な固有データを保持しておき、上記ステップS21〜S23において、固有データと監視フラグの値とによりマスクデータを生成するようにしても良い。この場合、上記監視フラグにより監視すべき全ての処理が終了すると、上記ICカードは、上記監視フラグの値と当該ICカードの固有データとによりマスクデータを生成し、生成したマスクデータに基づいて出力すべきデータをマスクして出力する。これにより、上記ICカードでは、出力すべきデータを各ICカードの固有データに応じてマスクすることができ、セキュリティ性を向上させることが可能となる。
【0048】
また、上記ICカードには、上記のような処理を行う毎(上記ステップS24でマスクしたデータを出力する毎)に当該出力データをマスクするために用いた監視フラグの値を不揮発性メモリ25に保存しておき、上記ステップS21〜S23において、前回の監視フラグの値と今回の監視フラグの値とによりマスクデータを生成するようにしても良い。この場合、上記監視フラグにより監視すべき全ての処理が終了すると、当該ICカードでは、今回の監視フラグの値と不揮発性メモリに保存している前回の監視フラグの値とを加算し、乱数データを用いて加算した数値分をシフトしたデータと乱数データとによりマスクデータを生成し、生成したマスクデータに基づいて出力すべきデータをマスクして出力する。これにより、監視フラグの値を保存しておくことで、毎回同じ箇所でプログラムが誤動作する場合に対しても、セキュリティ性を向上させることをが可能となる。
【0049】
次に、上記したような処理の変形例について説明する。
図4は、上記ICカード2における処理例を説明するためのフローチャートである。
なお、図4は、図3の処理の変形例を説明するためのフローチャートである。このため、図4に示す処理例の説明としては、図3に示す各ステップと同様な処理ステップについては、同一箇所に同一符号を付して詳細な説明を省略するものとする。図4に示すフローチャートでは、図3に示すフローチャートにステップS31およびS32が付加されたものとなっている。
【0050】
すなわち、データを出力する処理の前までに実行すべき種々の処理(第1、第2、第3および第4の処理)が完了したものと判断した場合、上記制御部22は、監視フラグの値が所定の値(例えば、「0」)であるか否かを判断する(ステップS31)。この判断により監視フラグが所定の値でないと判断した場合、上記制御部22は、エラーステータスを出力し(ステップS32)、当該処理を終了する。また、上記判断により監視フラグが所定の値であると判断した場合、上記制御部22は、上記ステップS21へ進む。
【0051】
従って、図4に示す変形例では、監視フラグが所定の値(「0」)でないと判断すれば、上記制御部22は、データを出力することなく、エラーステータスを出力して当該読出コマンドに対する処理を終了する。また、監視フラグの値が所定の値(「0」)であると判断すれば、上記制御部22は、マスクデータの生成し、マスクデータによりマスクしたデータを出力する。
【0052】
つまり、このような変形例によれば、監視フラグのチェックによって監視フラグが所定の値でないと判断した場合にはデータを出力せずにエラーであることを通知でき、監視フラグのチェックがスキップされてしまった場合であっても出力すべきデータを監視フラグの値に基づくマスクデータによってマスクすることができる。
【0053】
言い換えれば、通常のエラーによって監視フラグの値が所定の値でなくなった場合、ICカードは、エラーが発生した旨を通知でき、不正に監視フラグのチェックがスキップされた場合には、監視フラグの値が所定の値でなければ、出力すべきデータを改ざんして出力することができる。
【図面の簡単な説明】
【0054】
【図1】この発明の実施の形態に係る携帯可能電子装置としてのICカードとICカードとの通信を行う外部装置としてのICカード処理装置の構成例を概略的に示すブロック図。
【図2】ICカードの構成例を示すブロック図。
【図3】データの読み出しを要求する読出コマンドを受信した場合の処理を説明するためのフローチャート。
【図4】図3の処理の変形例を説明するためのフローチャート。
【符号の説明】
【0055】
1…端末システム(ICカード処理装置)、2…ICカード(携帯可能電子装置)、11…端末装置、12…表示装置、13…キーボード、14…カードリーダライタ、21…コンタクト部、22…制御部、23…RAM、24…ROM、25…不揮発性メモリ、26…乱数生成部

【特許請求の範囲】
【請求項1】
外部からデータの出力を要求するコマンドが供給された場合に、当該コマンドに応じた処理を全て実行した状態で所定の値となる監視情報の初期値を設定する設定手段と、
この設定手段により初期値が設定された監視情報を実行した処理に応じて変更する変更手段と、
この変更手段により実行した処理に応じて変更された監視情報に基づいて出力すべきデータを保護する保護手段と、
この保護手段により保護されたデータを外部へ出力する出力手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記設定手段、前記変更手段、前記保護手段および前記出力手段を具備するモジュールと、
前記モジュールが埋設された筐体と、を有する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報に基づいて出力すべきデータに対して所定の演算処理を施し、
前記出力手段は、前記保護手段による演算処理の結果として得られたデータを外部へ出力する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と任意のデータとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と任意のデータとに基づいて出力すべきデータに対して所定の演算処理を施し、
前記出力手段は、前記保護手段による演算処理の結果として得られたデータを外部へ出力する、
ことを特徴とする前記請求項4に記載の携帯可能電子装置。
【請求項6】
さらに、乱数データを生成する乱数生成手段を有し、
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記乱数生成手段により生成した乱数データとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項7】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記乱数生成手段により生成された乱数データとに基づいて出力すべきデータに対して所定の演算処理を施し、
前記出力手段は、前記保護手段による演算処理の結果として得られたデータを外部へ出力する、
ことを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項8】
さらに、当該携帯可能電子装置に固有な固有データが記憶されているメモリを有し、
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記メモリに記憶されている固有データとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項9】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記メモリに記憶されている固有データとに基づいて出力すべきデータに対して所定の演算処理を施し、
前記出力手段は、前記保護手段による演算処理の結果として得られたデータを外部へ出力する、
ことを特徴とする前記請求項8に記載の携帯可能電子装置。
【請求項10】
さらに、前記出力手段によりデータを出力した場合に、前記保護手段により当該データを保護するために用いた前記監視情報を記憶するメモリを有し、
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記メモリに記憶されている監視情報とに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項11】
前記保護手段は、前記変更手段により実行した処理に応じて変更された監視情報と前記メモリに記憶されている監視情報とに基づいて出力すべきデータに対して所定の演算処理を施し、
前記出力手段は、前記保護手段による演算処理の結果として得られたデータを外部へ出力する、
ことを特徴とする前記請求項10に記載の携帯可能電子装置。
【請求項12】
外部からデータの出力を要求するコマンドが供給された場合に、当該コマンドに応じた処理を全て実行した状態で所定の値となる監視情報の初期値を設定する第1のステップと、
この第1のステップにより初期値が設定された監視情報を実行した処理に応じて変更する第2のステップと、
この第2のステップにより実行した処理に応じて変更された監視情報に基づいて出力すべきデータを保護する第3のステップと、
この第3のステップにより保護されたデータを外部へ出力する第4のステップと、
を有する特徴とする携帯可能電子装置のデータ出力方法。
【請求項13】
前記第3のステップは、前記第2のステップにより実行した処理に応じて変更された監視情報と任意のデータとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項12に記載の携帯可能電子装置のデータ出力方法。
【請求項14】
さらに、乱数データを生成する乱数生成ステップを有し、
前記第3のステップは、前記第2のステップにより実行した処理に応じて変更された監視情報と前記乱数生成ステップにより生成した乱数データとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項12に記載の携帯可能電子装置のデータ出力方法。
【請求項15】
前記第3のステップは、前記第2のステップにより実行した処理に応じて変更された監視情報と当該携帯可能電子装置に固有な固有データとに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項12に記載の携帯可能電子装置のデータ出力方法。
【請求項16】
さらに、前記第4のステップによりデータを出力した場合に、前記第3のステップにおいて当該データを保護するために用いた前記監視情報をメモリに記憶する第5のステップを有し、
前記第3のステップは、前記第4のステップにより実行した処理に応じて変更された監視情報と前記メモリに記憶されている監視情報とに基づいて出力すべきデータを保護する、
ことを特徴とする前記請求項12に記載の携帯可能電子装置のデータ出力方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2007−4456(P2007−4456A)
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願番号】特願2005−183465(P2005−183465)
【出願日】平成17年6月23日(2005.6.23)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】