(57)【要約】【課題】不正なアクセスを簡単かつ確実に防止することができるようにする。【解決手段】取得部１１が、データを記憶するメモリ１４にアクセスするための第1のアドレスを取得し、変換部１２が、第1のアドレスを第2のアドレスに変換し、ＭＭＵ１３が、第2のアドレスが予め設定されている予測値と等しい場合、第1のアドレスに基づくアクセスを禁止し、予測値と等しくない場合、第1のアドレスに基づくメモリ１４へのアクセスを許容する。変換部１２は、第1のアドレスを第2のアドレスに変換する演算部２１、予測値を演算する予測部２２、およびＭＭＵ１３を制御する初期化部２３を有する。【選択図】図１
2009265728.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメモリにアクセスするための第1のアドレスを取得する取得部と、
前記第1のアドレスを第2のアドレスに変換する変換部と、
前記第2のアドレスが予め設定されている予測値と等しい場合、前記第1のアドレスに基づく前記メモリへのアクセスを禁止し、前記予測値と等しくない場合、前記第1のアドレスに基づく前記メモリへのアクセスを許容する制御部と
を備える情報処理装置。
【請求項２】
前記予測値は、前記第1のアドレスを前記第2のアドレスに変換する変換式のパラメータが０または最大値である場合の前記第2のアドレスと等しい
請求項１に記載の情報処理装置。
【請求項３】
前記第1のアドレスは、論理ブロックアドレス空間の論理ブロックアドレスであり、
前記第2のアドレスは、前記論理ブロックアドレスから変換された物理ブロックアドレス空間の物理ブロックアドレスを、さらに変換した物理アドレスである
請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置はＩＣカードであり、
前記第2のアドレスは、前記ＩＣカードのメモリの物理アドレスである
請求項３に記載の情報処理装置。
【請求項５】
前記第2のアドレスが前記予測値と等しい場合、さらに前記メモリに記憶されているデータを消去するか、または任意のデータに書き換える処理を実行するタンパ部をさらに備える
請求項２に記載の情報処理装置。
【請求項６】
取得部が、データを記憶するメモリにアクセスするための第1のアドレスを取得し、
変換部が、前記第1のアドレスを第2のアドレスに変換し、
制御部が、前記第2のアドレスが予め設定されている予測値と等しい場合、前記第1のアドレスに基づく前記メモリへのアクセスを禁止し、前記予測値と等しくない場合、前記第1のアドレスに基づく前記メモリへのアクセスを許容する
情報処理装置の情報処理方法。
【請求項７】
データを記憶するメモリにアクセスするための第1のアドレスを取得し、
前記第1のアドレスを第2のアドレスに変換し、
前記第2のアドレスが予め設定されている予測値と等しい場合、前記第1のアドレスに基づく前記メモリへのアクセスを禁止し、前記予測値と等しくない場合、前記第1のアドレスに基づく前記メモリへのアクセスを許容する
処理をコンピュータに実行させるプログラム。
【請求項８】
データを記憶するメモリにアクセスするための第1のアドレスを取得し、
前記第1のアドレスを第2のアドレスに変換し、
前記第2のアドレスが予め設定されている予測値と等しい場合、前記第1のアドレスに基づく前記メモリへのアクセスを禁止し、前記予測値と等しくない場合、前記第1のアドレスに基づく前記メモリへのアクセスを許容する
処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、プログラムおよび記録媒体に関し、特に、不正なアクセスを簡単かつ確実に防止することができるようにした情報処理装置および方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ＩＣカードが普及し、鉄道、バスの運賃の支払いや、販売店での商品の代金の支払いなど、さまざまな分野で利用されるようになってきた。
【０００３】
このようなＩＣカードの普及に伴って、フォルトアタックと称される、ＩＣカードにレーザ光線を照射し、そのエネルギーによりＩＣカードを誤動作させることでＩＣカードに不正にアクセスし、悪用しようとする試みもなされるようになってきた。
【０００４】
従来、このような不正なアクセスを防止するために、ＩＣカードに対してアクセスを行うリーダーライターに不正なアクセスを防止する機能を設けることも提案されている（例えば特許文献１）。しかし、リーダーライターにこのような機能を設けても、ＩＣカードそのものに対する不正なアクセスを防止することが困難である。
【０００５】
そこで、ＩＣカードにおいて、論理ブロックアドレスの物理アドレスへの不正な変換を検出し、不正な変換が検出された場合には、アクセスを禁止することも知られている。
【０００６】
【特許文献１】特開２００８−３３５９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、不正な変換であることは、変換後の物理アドレスの値が、予め設定されている範囲内であるかによって判断するようにされていた。その結果、変換後の値が所定の範囲内の値である場合には、不正なセキュリティ攻撃であることの検出が困難であった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、不正なアクセスを簡単かつ確実に防止することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面は、データを記憶するメモリにアクセスするための第1のアドレスを取得する取得部と、前記第1のアドレスを第2のアドレスに変換する変換部と、前記第2のアドレスが予め設定されている予測値と等しい場合、前記第1のアドレスに基づく前記メモリへのアクセスを禁止し、前記予測値と等しくない場合、前記第1のアドレスに基づく前記メモリへのアクセスを許容する制御部とを備える情報処理装置である。
【００１０】
本発明の一側面においては、取得部が、データを記憶するメモリにアクセスするための第1のアドレスを取得し、変換部が、第1のアドレスを第2のアドレスに変換し、制御部が、第2のアドレスが予め設定されている予測値と等しい場合、第1のアドレスに基づくメモリへのアクセスを禁止し、予測値と等しくない場合、第1のアドレスに基づくメモリへのアクセスを許容する。
【発明の効果】
【００１１】
以上のように、本発明の一側面によれば、不正なアクセスを簡単かつ確実に防止することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図を参照して本発明の実施の形態について説明する。
【００１３】
図１は本発明の情報処理装置の一実施の形態の構成を表している。この情報処理装置１は、取得部１１、変換部１２、メモリマネージメントユニット（ＭＭＵ）１３、およびメモリ１４により構成されている。
【００１４】
取得部１１は、メモリ１４にアクセスするためのアドレスである第1のアドレスを取得する。この第1のアドレスは、外部装置がメモリ１４のアドレスを管理するためのアドレス空間１１Ａのアドレスとされる。しかし、実際にはメモリ１４は物理的なメモリであるため、その物理的なアドレス空間１４Ａのアドレスである第２のアドレスに基づいてアクセスが行われる。そこで、変換部１２が第1のアドレスを第2のアドレスに変換する。
【００１５】
制御部としてのMMU１３は変換部１２により変換された第２のアドレスに基づいてメモリ１４の所定の領域へのアクセスの制御を行う。すなわち、MMU１３は、第2のアドレスが予め設定されている予測値と等しい場合、第1のアドレスに基づくアクセスを禁止し、予測値と等しくない場合、第1のアドレスに基づくアクセスを許容するように制御を行う。メモリ１４は、第２のアドレスで指定される領域に所定のデータを書き込み、また読み出す処理を実行する。
【００１６】
変換部１２は、演算部２１、予測部２２、および初期化部２３を有している。演算部２１は、第1のアドレスを第2のアドレスに変換する演算を行う。予測部２２は、第1のアドレスに基づく予測値を予測する演算を行う。初期化部２３は、演算部２１により演算された第2のアドレスと、予測部２２により予測された予測値に基づいてMMU１３を制御する。
【００１７】
次に図２のフローチャートを参照して、情報処理装置１のアクセス制御処理について説明する。この処理は、図示せぬ外部装置が不揮発性のメモリ１４にデータを書き込んだり、記憶されているデータを読み出すコマンドを、アドレスを指定して情報処理装置１に入力したとき実行される。
【００１８】
ステップＳ１において、取得部１１は外部装置により指定された第1のアドレスを取得する。この第1のアドレスは、外部装置がメモリ１４を管理するためのアドレス空間１１Ａのアドレスとされる。図１の例においては、メモリ１４は「０」乃至「６」などの論理アドレスで管理されているので、外部装置は「０」乃至「６」などの論理アドレスのいずれかを指定する。従って、ステップＳ１においては、「０」乃至「６」の論理アドレスのいずれかが取得される。
【００１９】
ステップＳ２において演算部２１は、ステップＳ１で取得された第1のアドレスに基づいて第2のアドレスを演算する。この演算は、例えば次の変換式（１）に従って行われる。
Ａｄｄ＝Ａ＋Ｂ×１６    （１）
【００２０】
式（１）において、Ａｄｄは変換後のアドレス（第2のアドレス）である。Ａ，Ｂは、第1のアドレスに基づくパラメータであり、Ａは第１のアドレスのベースアドレスを表し、Ｂは第1のアドレスのブロック番号を表す。１６はアドレス空間１４Ａのブロックの幅をバイト数で表した定数である。
【００２１】
例えば、取得された第1のアドレスのパラメータＡが「１０００」、パラメータＢが「１０」であるとする。この場合、正常なアクセスが行われたとすれば、第2のアドレスＡｄｄは、「１１６０」となる。
【００２２】
ステップＳ３において予測部２２は、予測値を演算する。この実施の形態の場合、式（１）の係数（パラメータ）Ａ，Ｂを「０」に設定して式（１）を演算することで予測値が演算される。
【００２３】
パラメータＡを「０」に設定することで、第2のアドレスＡｄｄとして、「１６０」が演算される。パラメータＢを「０」に設定することで、第2のアドレスＡｄｄとして、「１０００」が演算される。パラメータＡ，Ｂの両方を「０」に設定することで、第2のアドレスＡｄｄとして、「０」が演算される。このように予測部２２は、予測値として「０」、「１６０」、および「１０００」を演算する。
【００２４】
ステップＳ４において初期化部２３は、第2のアドレスが予測値と一致するかを判定する。すなわち、ステップＳ２で演算された第2のアドレスの値が、ステップＳ３で演算された予測値と一致するかが判定される。不正な攻撃が行われた場合、ステップＳ１の処理で取得される第1のアドレスであるパラメータＡとＢの少なくとも一方が、正常の値から「０」に変化することが多い。ステップＳ１の処理で取得された第1のアドレスであるパラメータＡとＢの少なくとも一方が「０」である場合、上述したように、ステップＳ２で演算された第2のアドレスは「０」、「１６０」、または「１０００」となり、ステップＳ３で演算された予測値と一致する。
【００２５】
そこで、初期化部２３は、ステップＳ２で演算された第2のアドレスの値が、ステップＳ３で演算された予測値と等しい場合、不正な攻撃を受けたと判定し、ステップＳ７において、ＭＭＵ１３に対してアクセス禁止を指示する。ＭＭＵ１３はこの指示に基づく制御を行う。すなわち、ステップＳ１の処理で取得された第１のアドレスに基づくメモリ１４に対するアクセスを禁止するように制御が行われる。具体的には、ステップＳ２で演算された第２のアドレスへのアクセスが禁止される。
【００２６】
不正な攻撃が行われた場合、読み出されるデータや、所定のレジストリのデータが、正常な値から「０」に変化する確率が高い。すなわちステップＳ１の処理で取得される第1のアドレスであるパラメータＡとＢの少なくとも一方が、正常な値から「０」に変化する確率が高い。そこで、演算された第2のアドレスが予測値と一致する場合にアクセスを禁止することで、不正なアクセスを簡単かつ確実に防止することができる。
【００２７】
一方、不正な攻撃が行われなければ、ステップＳ１で取得された第1のアドレスのパラメータＡ，Ｂとして正しい値が取得される。上述の例では、パラメータＡとして「１０００」が、パラメータＢとして「１０」が、それぞれ取得される。この場合、第2のアドレスの演算値は「１１６０」となり、予測値である「０」、「１６０」、および「１０００」とは一致しない。
【００２８】
この場合、ステップＳ５において、初期化部２３はＭＭＵ１３に対して、第2のアドレスへのアクセスの許容を指示する。従って、ステップＳ６において、メモリ１４は演算部２１により演算された第２のアドレスに対して、必要な処理を実行する。すなわち、コマンドに応じて、第1のアドレスのパラメータ「１０００」と「１０」で指定された第2のアドレス「１１６０」の領域にデータを書き込んだり、そこに記憶されているデータを読み出す処理が実行される。
【００２９】
図３は、以上のようなアドレス変換処理を行う情報処理装置１を、リーダーライター５１からアクセスを受けるＩＣカード５２に適用した場合の処理を表している。
【００３０】
ステップＳ２１においてリーダーライター５１は、ＩＣカード５２に対して、例えばデータを読み出すためのコマンドを出力する。このとき読み出す領域のアドレスが第１のアドレスとして指定される。
【００３１】
ステップＳ３１でこのコマンドを受信したＩＣカード５２は、上述したように、指定された第１のアドレスを第２のアドレスに変換する。そしてＩＣカード５２は、変換された第２のアドレスからデータを読み出す。
【００３２】
ステップＳ３２でＩＣカード５２は、コマンドに対応するレスポンスをリーダーライター５１に返す。リーダーライター５１はこのレスポンスをステップＳ２２で受信する。このとき読み出されたデータがリーダーライター５１に送出される。
【００３３】
不正なアクセスでなければ、このようにして指定されたアドレスからデータが読み出され、リーダーライター５１に供給される。しかし、不正なアクセスである場合には、ＩＣカード５２が返すレスポンスには、読み出されたデータが付随しないことになる。
【００３４】
図４は、以上のようにしてリーダーライター５１からアクセスを受けるＩＣカード５２の一実施の形態の構成を表している。
【００３５】
情報処理装置としてのＩＣカード５２は、取得部６１、変換部６２、メモリアクセス装置６３、ＭＭＵ６４、メモリ６５、およびタンパ検出ハンドラ６６を有している。
【００３６】
取得部６１は、論理ブロックアドレス空間６１Ａのアドレスを第１のアドレスとしてリーダーライター５１から取得する。換言すれば、リーダーライター５１は、ＩＣカード５２のメモリ６５に対してデータを書き込んだり読み出したりする場合、そのアドレスを論理ブロックアドレス空間６１Ａのアドレスで指定する。
【００３７】
第1のアドレスを第2のアドレスに変換する変換部６２は、演算部７１、予測部７２、および初期化部７３よりなる部分と、演算部７４、予測部７５、および初期化部７６よりなる部分とで構成される。前者の部分は、第1のアドレスとしての論理ブロックアドレス空間６１Ａの論理ブロックアドレスを、中間のアドレスとしてのメモリ６５の物理ブロックアドレス空間６５Ａの物理ブロックアドレスに変換する処理を行い、後者の部分は中間のアドレスを第2のアドレスとしてのメモリ６５の物理アドレスに変換する処理を行う。
【００３８】
演算部７１は、取得された論理ブロックアドレス空間６１Ａの論理ブロックアドレスを、物理ブロックアドレス空間６５Ａの物理ブロックアドレスに変換する。予測部７２は取得された論理ブロックアドレス空間６１Ａのアドレスの予測値を演算する。初期化部７３は演算部７１により演算された物理ブロックアドレスと、予測部７２により予測された予測値とに基づいて不正なアクセスの有無を検出し、不正なアクセスが検出された場合、そのアクセス先の物理アドレスを演算し、その物理アドレスに対するアクセス禁止の指示をＭＭＵ６４に出力する。
【００３９】
演算部７４は、演算部７１により演算された物理ブロックアドレス空間６５Ａの物理ブロックアドレスを、第2のアドレスとしての物理アドレスに変換する。予測部７５は演算部７１により演算された物理ブロックアドレスの予測値を演算する。初期化部７６は演算部７４により演算された物理ドレスと、予測部７５により予測された予測値とに基づいて不正なアクセスの有無を検出し、不正なアクセスが検出された場合、そのアクセス先の物理アドレスに対するアクセス禁止の指示をＭＭＵ６４に出力する。
【００４０】
メモリアクセス装置６３は、演算部７４により演算された物理アドレスに基づいて、メモリ６５にアクセスする。制御部としてのＭＭＵ６４は初期化部７３，７６からの指示に基づいて、メモリ６５に対するアクセスを禁止したり、許容する制御を行う。
【００４１】
不揮発性のメモリ６５は、物理アドレスで指定される各領域にデータを書き込んだり、そこに記憶されているデータを読み出したりする。メモリ６５の先頭の領域（物理アドレスが最小の「０００００」である領域）はタンパ領域とされ、実質的に使用されない領域とされる。「０００００」の物理アドレスは、不正なアクセスが行われた場合に指定される確率が高いので、その領域は初めから使用禁止の領域とされるのである。同様の理由で、メモリ６５の最後の領域（物理アドレスが最大の「ＦＦＦＦＦ」である領域）もタンパ領域とされ、実質的に使用されない領域とされている。例えば、無意味なダミーのデータが記録されていたり、まったくデータが記録されない領域とされる。
【００４２】
このように、不正なアクセスが行われた場合に誤変換され易いアドレス「０００００」、「ＦＦＦＦＦ」の領域を実質的に使用しないようにすれば、ＩＣカード５２のセキュリティをより向上させることができる。
【００４３】
メモリ６５の一部の領域は、物理ブロックアドレスが「１００００」乃至「１００１１」である物理ブロックアドレス空間６５Ａの領域とされている。リーダーライター５１は、物理ブロックアドレス空間６５Ａの領域のみアクセス可能であり、タンパ領域やその他の領域にはアクセスできない。
【００４４】
タンパ部としてのタンパ検出ハンドラ６６は、ＭＭＵ６４により制御され、不正なアクセスが行われたとき、ＩＣカード５２の不正な使用を防止するために必要な処理を行う。
【００４５】
次に図５のフローチャートを参照して、ＩＣカード５２のアクセス制御処理について説明する。この処理も、リーダーライター５１がＩＣカード５２にデータを書き込んだり、記憶されているデータを読み出すコマンドを、アドレスを指定してＩＣカード５２に入力したとき実行される。
【００４６】
ステップＳ５１において、取得部６１はリーダーライター５１から第1のアドレスとしての指定アドレスを取得する。この指定アドレスは、リーダーライター５１がＩＣカード５２のメモリ６５を管理するための第1のアドレス空間としての論理ブロックアドレス空間６１Ａのアドレスとされる。図４の実施の形態においては、メモリ６５は「００００」乃至「０００９」の論理ブロックアドレスで管理されているので、リーダーライター５１は「００００」乃至「０００９」の論理ブロックアドレスのいずれかを指定する。従って、ステップＳ５１では、「００００」乃至「０００９」の論理ブロックアドレスのいずれかが取得される。
【００４７】
ステップＳ５２において演算部７１は、ステップＳ５１で取得された論理ブロックアドレスに基づいて中間のアドレスとしての物理ブロックアドレスを演算する。この演算は、例えば次の変換式（２）に従って行われる。
ＰＢＡｄｄ＝ａ１＋ａ２＋ａ３    （２）
【００４８】
式（２）において、ＰＢＡｄｄは変換後の物理ブロックアドレスである。ａ１，ａ２，ａ３は、論理ブロックアドレスのパラメータである。
【００４９】
例えば、ステップＳ５１で取得された論理ブロックアドレスのパラメータａ１が「５００」、パラメータａ２が「５」、パラメータａ３が「１」であるとする。この場合、正常なアクセスが行われたとすれば、物理ブロックアドレスＰＢＡｄｄは、「５０６」となる。
【００５０】
ステップＳ５３において予測部７２は、予測値を演算する。この実施の形態の場合、式（２）のパラメータａ１，ａ２，ａ３を「０」に設定して式（２）を演算することで予測値が演算される。
【００５１】
パラメータａ１を「０」に設定することで、ＰＢＡｄｄとして、「６」が演算される。パラメータａ２を「０」に設定することで、ＰＢＡｄｄとして、「５０１」が演算される。パラメータａ３を「０」に設定することで、ＰＢＡｄｄとして、「５０５」が演算される。パラメータａ１，ａ２の２つを「０」に設定することで、ＰＢＡｄｄとして、「１」が演算される。パラメータａ１，ａ３の２つを「０」に設定することで、ＰＢＡｄｄとして、「５」が演算される。パラメータａ２，ａ３の２つを「０」に設定することで、ＰＢＡｄｄとして、「５００」が演算される。パラメータａ１，ａ２，ａ３の全部を「０」に設定することで、ＰＢＡｄｄとして、「０」が演算される。
【００５２】
このように予測部７２は、予測値として「０」、「１」、「５」、「６」、「５００」、「５０１」、および「５０５」を演算する。
【００５３】
ステップＳ５４において初期化部７３は、物理ブロックアドレスは予測値と一致するかを判定する。すなわち、ステップＳ５２で演算された物理ブロックアドレスの値が、ステップＳ５３で演算された予測値と一致するかが判定される。不正な攻撃が行われた場合、ステップＳ５１の処理で取得される論理ブロックアドレスであるパラメータａ１，ａ２，ａ３の少なくとも１つが、正常な値から「０」に変化することが多い。取得されたパラメータａ１，ａ２，ａ３の少なくとも１つが「０」である場合、上述したように、ステップＳ５２で演算された物理ブロックアドレスは「０」、「１」、「５」、「６」、「５００」、「５０１」、または「５０５」となり、ステップＳ５３で演算された予測値と一致する。
【００５４】
そこで、初期化部７３は、ステップＳ５２で演算された物理ブロックアドレスの値が、ステップＳ５３で演算された予測値と一致する場合、不正な攻撃を受けたと判定し、ステップＳ６０において、ＭＭＵ６４に対してアクセス禁止を指示する。ＭＭＵ６４はこの指示に基づいて、ステップＳ５１で取得されたアドレスに基づくメモリ６５に対するアクセスを禁止するように制御する。すなわち、ステップＳ５２で演算された物理ブロックアドレスからさらに演算された物理アドレスへのアクセスが禁止される。
【００５５】
不正な攻撃が行われた場合、読み出されるデータや、所定のレジストリのデータが、正常な値から「０」に変化する確率が高い。すなわちステップＳ５１の処理で取得される論理ブロックアドレスであるａ１，ａ２，ａ３の少なくとも１つが、正常な値から「０」に変化する確率が高い。そこで、演算された物理ブロックアドレスが予測値と一致する場合にアクセスを禁止することで、不正なアクセスを簡単かつ確実に防止することができる。
【００５６】
ステップＳ６１においてタンパ検出ハンドラ６６は、タンパ検出処理を実行する。すなわちタンパ検出ハンドラ６６は、メモリ６５の各領域に記憶されているデータを全て消去したり、任意のデータに書き換えたり、ＩＣカード５２を破棄するなど、ＩＣカード５２が不正に使用されるのを完全に防止する処理を実行する。
【００５７】
ただし、この処理は、ＩＣカード５２のその後の正常な使用をも困難にするので、必要に応じて実行される。
【００５８】
ステップＳ５４において物理ブロックアドレスと予測値が一致しないと判定された場合、ステップＳ５５において演算部７４は、ステップＳ５２で、演算部７１により演算された物理ブロックアドレスに基づいて、第2のアドレスとしての物理アドレスを演算する。この演算は、例えば上述した式（１）に従って行われる。
【００５９】
この場合においても、例えば、演算された物理ブロックアドレスのパラメータＡが「１０００」、パラメータＢが「１０」であるとする。この場合、正常なアクセスが行われたとすれば、物理アドレスＡｄｄは、「１１６０」となる。
【００６０】
ステップＳ５６において予測部７５は、予測値を演算する。この実施の形態の場合、式（１）の係数（パラメータ）Ａ，Ｂを「０」に設定して式（１）を演算することで予測値が演算される。
【００６１】
上述したように、パラメータＡを「０」に設定することで、物理アドレスＡｄｄとして、「１６０」が演算される。パラメータＢを「０」に設定することで、物理アドレスＡｄｄとして、「１０００」が演算される。パラメータＡ，Ｂの両方を「０」に設定することで、物理アドレスＡｄｄとして、「０」が演算される。このように予測部７５は、予測値として「０」、「１６０」、および「１０００」を演算する。
【００６２】
ステップＳ５７において初期化部７６は、物理アドレスは予測値と一致するかを判定する。すなわち、ステップＳ５５で演算された物理アドレスの値が、ステップＳ５６で演算された予測値と一致するかが判定される。不正な攻撃が行われた場合、物理ブロックアドレスであるパラメータＡとＢの少なくとも一方が、正常な値から「０」に変化することが多い。物理ブロックアドレスであるパラメータＡとＢの少なくとも一方が「０」である場合、上述したように、ステップＳ５５で演算された物理アドレスは「０」、「１６０」、または「１０００」となり、ステップＳ５６で演算された予測値と一致する。
【００６３】
そこで、初期化部７６は、ステップＳ５５で演算された物理アドレスの値が、ステップＳ５６で演算された予測値と一致する場合、不正な攻撃を受けたと判定する。このとき上述した場合と同様に、ステップＳ６０におけるアクセス禁止処理が実行される。すなわちステップＳ５５で演算された物理アドレスへのアクセスが禁止される。さらに必要に応じて、ステップＳ６１におけるタンパ検出処理が実行される。
【００６４】
一方、ステップＳ５７で物理アドレスと予測値が一致しないと判定された場合、不正な攻撃が行われなかったとして、ステップＳ５８において、初期化部２３はＭＭＵ６４に対して、物理アドレスへのアクセスの許容を指示する。従って、ステップＳ５９において、メモリ６５はメモリアクセス装置６３により指定される物理アドレスに対して必要な処理を実行する。すなわち、コマンドに応じて、指定された論理ブロックアドレス「５０６」に対応する物理アドレス「１１６０」の領域にデータを書き込んだり、そこに記憶されているデータを読み出す処理が実行される。
【００６５】
以上においては、本発明をＩＣカードに適用したが、本発明は、セキュアにデータを記憶するメモリを有する携帯電話機、電子手帳、その他の情報処理装置に適用することができる。
【００６６】
図６は、上述した一連の処理をプログラムにより実行するコンピュータの構成の例を示すブロック図である。ＣＰＵ（Central Processing Unit）１２１は、ＲＯＭ（Read Only Memory）１２２、または記憶部１２８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）１２３には、ＣＰＵ１２１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ１２１、ＲＯＭ１２２、およびＲＡＭ１２３は、バス１２４により相互に接続されている。
【００６７】
ＣＰＵ１２１にはまた、バス１２４を介して入出力インターフェース１２５が接続されている。入出力インターフェース１２５には、キーボード、マウス、マイクロホンなどよりなる入力部１２６、ディスプレイ、スピーカなどよりなる出力部１２７が接続されている。ＣＰＵ１２１は、入力部１２６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ１２１は、処理の結果を出力部１２７に出力する。
【００６８】
入出力インターフェース１２５に接続されている記憶部１２８は、例えばハードディスクからなり、ＣＰＵ１２１が実行するプログラムや各種のデータを記憶する。通信部１２９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部１２９を介してプログラムを取得し、記憶部１２８に記憶してもよい。
【００６９】
入出力インターフェース１２５に接続されているドライブ１３０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１３１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１２８に転送され、記憶される。
【００７０】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【００７１】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図６に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア１３１、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ１２２や、記憶部１２８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部１２９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【００７２】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００７３】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００７４】
【図１】本発明の情報処理装置の一実施の形態の構成を示すブロック図である。
【図２】情報処理装置のアクセス制御処理を説明するフローチャートである。
【図３】リーダーライターとＩＣカードの処理を説明する図である。
【図４】本発明のＩＣカードの一実施の形態の構成を示すブロック図である。
【図５】ＩＣカードのアクセス制御処理を説明するフローチャートである。
【図６】コンピュータの一実施の形態の構成を示すブロック図である。
【符号の説明】
【００７５】
１  情報処理装置，  １１  取得部，  １１Ａ  アドレス空間，１２  変換部，  １３  メモリマネージメントユニット，  １４  メモリ，  １４Ａ  アドレス空間，  ２１  演算部，  ２２  予測部，  ２３  初期化部，  ５１  リーダーライター，  ５２  ＩＣカード，  ６１  取得部，  ６１Ａ  論理ブロックアドレス空間，６２  変換部，  ６３  メモリアクセス装置，  ６４  メモリマネージメントユニット，  ６５  メモリ，  ６５Ａ  物理ブロックアドレス空間，  ６６  タンパ検出ハンドラ，  ７１  演算部，  ７２  予測部，  ７３  初期化部，７４  演算部，  ７５  予測部，  ７６  初期化部
【図１】
2009265728.tif 000003
【図２】
2009265728.tif 000004
【図３】
2009265728.tif 000005
【図４】
2009265728.tif 000006
【図５】
2009265728.tif 000007
【図６】
2009265728.tif 000008