(57)【要約】【課題】無駄に電力が消費されるのを抑制しつつ、不正なアクセスを簡単に防止できるようにする。【解決手段】取得部２１はコマンドを取得する。コマンド実行部２２は、取得部２１により取得されたコマンドに対応する処理を実行し、揺れ処理部２５は、コマンド実行部２２がコマンドに対応する処理を実行する前に、コマンド実行部２２がコマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する。揺れ処理部１２の乱数発生部３１は乱数を発生し、揺れ幅設定部３３は、乱数発生部３１により発生された乱数に基づいて揺れ幅を設定する。パラメータ取得部３２は、揺れ幅設定部３３が設定する揺れ幅に最大値を設定するパラメータを取得する。検出部３５は不正なアクセスを検出する。本発明は、例えばＩＣカードに適用することができる。【選択図】図１
2009289017.tif 000002
【特許請求の範囲】
【請求項１】
コマンドに対応する処理を実行する実行部と、
前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する揺れ処理部と
を備え、
前記揺れ処理部は、
乱数を発生する乱数発生部と、
前記乱数に基づいて揺れ幅を設定する揺れ幅設定部と
を備える情報処理装置。
【請求項２】
前記揺れ幅設定部は、前記揺れ幅に最大値を設定する
請求項１に記載の情報処理装置。
【請求項３】
前記揺れ幅の期間内に、不正なアクセスを検出する検出部をさらに備える
請求項２に記載の情報処理装置。
【請求項４】
前記不正なアクセスが検出された場合、保護のための処理を実行する保護処理部をさらに備える
請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、ＩＣカードである
請求項３に記載の情報処理装置。
【請求項６】
実行部が、コマンドに対応する処理を実行し、
揺れ処理部が、前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングを、乱数に基づいて揺れ幅を設定することでランダムに変化させる揺れ処理を実行する
情報処理装置の情報処理方法。
【請求項７】
コマンドに対応する処理を実行し、
前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングを、乱数に基づいて揺れ幅を設定することでランダムに変化させる揺れ処理を実行する
処理をコンピュータに実行させるプログラム。
【請求項８】
コマンドに対応する処理を実行し、
前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングを、乱数に基づいて揺れ幅を設定することでランダムに変化させる揺れ処理を実行する
処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【請求項９】
他の情報処理装置に対して、所定の処理を実行させるコマンドと、前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理の最大値を規制するパラメータとを出力する出力部と、
前記他の情報処理装置から前記コマンドに対応するレスポンスを受信する時間を、前記パラメータに対応する時間に基づいて制御する制御部と
を備える情報処理装置。
【請求項１０】
前記情報処理装置は、リーダーライターであり、
前記他の情報処理装置は、前記リーダーライターによりアクセスを受けるＩＣカードである
請求項９に記載の情報処理装置。
【請求項１１】
出力部が、他の情報処理装置に対して、所定の処理を実行させるコマンドと、前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理の最大値を規制するパラメータとを出力し、
制御部が、前記他の情報処理装置から前記コマンドに対応するレスポンスを受信する時間を、前記パラメータに対応する時間に基づいて制御する
情報処理装置の情報処理方法。
【請求項１２】
他の情報処理装置に対して、所定の処理を実行させるコマンドと、前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理の最大値を規制するパラメータとを出力し、
前記他の情報処理装置から前記コマンドに対応するレスポンスを受信する時間を、前記パラメータに対応する時間に基づいて制御する
処理をコンピュータに実行させるプログラム。
【請求項１３】
他の情報処理装置に対して、所定の処理を実行させるコマンドと、前記コマンドに対応する処理を実行する前に、前記コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理の最大値を規制するパラメータとを出力し、
前記他の情報処理装置から前記コマンドに対応するレスポンスを受信する時間を、前記パラメータに対応する時間に基づいて制御する
処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、プログラム並びに記録媒体に関し、特に、無駄に電力が消費されるのを抑制しつつ、不正なアクセスを簡単に防止するようにした情報処理装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
ＩＣカードが普及し、鉄道、バスの運賃の支払いに利用されたり、販売店での商品の代金の支払いなど、さまざまな分野で利用されるようになってきた。
【０００３】
このようなＩＣカードの普及に伴って、ＩＣカードに不正にアクセスし、悪用しようとする試みもなされるようになってきた。
【０００４】
そこで、例えば特許文献１に開示されているように、ランダムな数の命令を暗号化アルゴリズムに挿入し、差分電力解析などの消費電流パターンの解析による不正な攻撃から防御することも考えられる。
【０００５】
しかし、そのようにすると、プログラムの構成が複雑になり、プログラムの開発に時間がかかる。
【０００６】
ＩＣカードにおいてよく行われる不正な攻撃は、フォルトアタックと称されるような、ＩＣカードにレーザ光線を照射し、そのエネルギーによりＩＣカードを誤動作させることで、ＩＣカードに不正にアクセスしようとするものである。
【０００７】
このフォルトアタックでは、例えばＩＣカードの電力や電磁波をモニタリングし、電力消費量が多いなどの特徴から所望の処理を行っているタイミングを特定し、そのタイミングに合わせてレーザ光線を照射することで、データを任意の値に変更させたり、処理をスキップさせたりすることが行われる。
【０００８】
そこで、本来の処理をマスキングするための電流を流すことが知られている。
【０００９】
【特許文献１】特開２００８−５０２２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、本来の処理をマスキングするための電流を流すと、無駄に電力が消費される。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、無駄に電力が消費されるのを抑制しつつ、不正なアクセスを簡単に防止することができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面は、コマンドに対応する処理を実行する実行部と、コマンドに対応する処理を実行する前に、コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する揺れ処理部とを備え、揺れ処理部は、乱数を発生する乱数発生部と、乱数に基づいて揺れ幅を設定する揺れ幅設定部とを備える情報処理装置である。
【００１３】
本発明の一側面においては、実行部が、コマンドに対応する処理を実行し、揺れ処理部が、コマンドに対応する処理を実行する前に、コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する。乱数発生部により発生された乱数に基づいて揺れ幅設定部により揺れ幅が設定される。
【発明の効果】
【００１４】
以上のように、本発明の一側面によれば、無駄に電力が消費されるのを抑制しつつ、不正なアクセスを簡単に防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図を参照して本発明の実施の形態について説明する。
【００１６】
図１は本発明の情報処理システムの一実施の形態の構成を示すブロック図である。この情報処理システム１は、情報処理装置１１と情報処理装置５１とにより構成されている。情報処理装置５１は、情報処理装置１１に対してコマンドを出力し、所定の処理を実行させる。情報処理装置１１は処理の結果をレスポンスとして情報処理装置５１に出力する。
【００１７】
情報処理装置１１は、取得部２１、コマンド実行部２２、メモリ２３、出力部２４、揺れ処理部２５、および保護処理部２６を有している。
【００１８】
取得部２１は、情報処理装置５１から出力される信号を取得する。例えばマイクロコンピュータなどにより構成されるコマンド実行部２２は、取得された信号に含まれるコマンドに対応する処理を実行する。メモリ２３はデータを記憶する。出力部２４は、コマンド実行部２２によるコマンド処理の結果に対応する信号を、情報処理装置５１に出力する。なお、取得部２１と出力部２４は一体化したアンテナとして構成することもできる。
【００１９】
揺れ処理部２５は、コマンド実行部２２がコマンドに対応する処理を実行する前に、コマンド実行部２２がコマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する。保護処理部２６は、不正なアクセスが検出された場合に、情報処理装置１１を保護する処理を実行する。
【００２０】
揺れ処理部２５は、乱数発生部３１、パラメータ取得部３２、揺れ幅設定部３３、揺れ発生部３４、および検出部３５により構成されている。
【００２１】
乱数発生部３１は、乱数を発生する。もちろんここでいう乱数とは、数学的に正確な乱数である必要はなく、実用的に乱数として扱うことが可能な疑似乱数であればよい。パラメータ取得部３２は、乱数の最大値を決定するパラメータを取得する。このパラメータは情報処理装置５１などの外部装置から供給されるものを取得してもよいし、予め記憶されているものを取得してもよい。
【００２２】
揺れ幅設定部３３は、乱数に基づいて揺れ幅を設定する。揺れ発生部３４は、設定された揺れ幅に基づいて、すなわち乱数に基づいて揺れを発生する。検出部３５は、不正なアクセスを検出する。保護処理部２６は、不正なアクセスが検出された場合、情報処理装置１１を保護する処理を実行する。
【００２３】
情報処理装置５１は、取得部６１、制御部６２、および出力部６３を有している。取得部６１は情報処理装置１１の出力部２４からの信号を取得する。出力部６３は情報処理装置１１の取得部２１に対して信号を出力する。なお、情報処理装置１１の取得部２１と出力部２４に対応して、取得部６１と出力部６３は一体化したアンテナとして構成することもできる。制御部６２は例えばマイクロコンピュータなどにより構成され、各種の制御動作を実行する。
【００２４】
次に図２と図３のフローチャートを参照して、情報処理システム１の動作について説明する。最初に図２を参照して、情報処理装置５１の処理について説明する。
【００２５】
ステップＳ１において出力部６３は、制御部６２の制御に基づいて、コマンドを出力する。例えば情報処理装置１１がＩＣカードであり、情報処理装置５１がリーダーライターである場合、ＩＣカードのメモリ２３に記憶されているデータを読み出したり、メモリ２３にデータを書き込んだりするコマンドが情報処理装置５１から出力される。このコマンドは、後述する図３のステップＳ２１において、情報処理装置１１の取得部２１により取得される。
【００２６】
ステップＳ２において取得部６１は、情報処理装置１１の出力部２４からレスポンスを取得する。このレスポンスは、情報処理装置１１がコマンドに対応して、後述する図３のステップＳ３１で出力するものである。
【００２７】
ステップＳ３において制御部６２は、取得したレスポンスに対応する処理を実行する。例えば情報処理装置１１がＩＣカードである場合、そのメモリ２３から読み出された残高を確認する処理が実行される。
【００２８】
情報処理装置１１は、以上の情報処理装置５１の処理に対応して、図３のフローチャートに示されるような処理を実行する。
【００２９】
すなわち、ステップＳ２１において取得部２１は、情報処理装置５１の出力部６３から出力されたコマンドを取得する。このコマンドは図２のステップＳ１の処理で出力されたものである。
【００３０】
コマンド実行部２２がステップＳ２３でクリティカルセクションの処理を実行する前に、ステップＳ２２において揺れ処理部２５は、揺れ処理を実行する。この揺れ処理の詳細は、図４に示されている。
【００３１】
すなわち、コマンドに対応する処理を実行する前に、コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理を実行する揺れ処理部として機能する揺れ処理部２５の乱数発生部３１は、ステップＳ４１において、乱数ｒを発生する。ステップＳ４２においてパラメータ取得部３２は、パラメータｄを取得する。このパラメータｄは乱数ｒの最大値を規制するものであり、この実施の形態の場合、パラメータ取得部３２に予め記憶されている。
【００３２】
乱数に基づいて揺れ幅を設定する機能を有する揺れ幅設定部３３は、ステップＳ４３において、乱数ｒに基づいて揺れ幅ｗを設定する。この乱数ｒは、パラメータｄにより最大値が設定されているので、揺れ幅ｗはその最大値が規制され、最大値の範囲内で揺れ幅ｗがランダムに変化する。例えば乱数ｒとパラメータｄの値のモジュロ演算を行うことで揺れ幅ｗを設定するようにすると、揺れ幅ｗは最大値ｄ以下の乱数ｒで規定される値となる。
【００３３】
なお、パラメータｄとして、情報処理装置５１からランダムな値を供給する場合には、パラメータｄ自体に基づいて揺れ幅ｗを設定するようにしてもよい。
【００３４】
ステップＳ４４において揺れ発生部３４は揺れ発生処理を実行する。
【００３５】
この揺れ発生処理の詳細は、図５のフローチャートに示されている。
【００３６】
すなわちステップＳ６１において揺れ発生部３４は、揺れ幅設定部３３により設定された揺れ幅ｗを変数ｉに設定する。ステップＳ６２において揺れ発生部３４は所定の処理を実行する。なお、この処理の例は、図６を参照して後述するが、ステップＳ６２の処理は省略してもよい。
【００３７】
ステップＳ６３において揺れ発生部３４は、ステップＳ６１の処理で揺れ幅ｗが設定されている変数ｉを１だけデクリメントする。ステップＳ６４において揺れ発生部３４は、変数ｉが０より大きいかを判定する。変数ｉが０より大きい場合、処理はステップＳ６２に戻り、それ以降の処理が繰り返される。
【００３８】
揺れ幅ｗが正の整数である場合、ステップＳ６２乃至Ｓ６４の処理がｗ回繰り返されるとｉ＝０となり、ステップＳ６４でｉが０以下であると判定され、処理は図４のステップＳ４４に戻る。
【００３９】
図３に戻って、以上のようにして、ステップＳ２２において揺れ処理が実行された後、ステップＳ２３においてコマンド実行部２２はクリティカルセクションの処理を実行する。このときデータがメモリ２３から適宜読み出されたり、書き込まれたりする。クリティカルセクションの処理は重要な処理であり、不正な使用者から保護する必要がある処理である。
【００４０】
このクリティカルセクションの処理の前に行われる揺れ処理の時間は、上述したように、揺れ幅ｗに対応する時間になる。そしてこの揺れ幅ｗは乱数ｒに基づき設定されているので、クリティカルセクションの処理が実行されるタイミングは、揺れ幅ｗに応じて変化する。従って、不正な使用者が、クリティカルセクションのタイミングを特定することが困難になるので、それだけ情報処理装置１１をフォルトアタックなどから保護することができ、セキュリティが向上する。
【００４１】
また、揺れ処理はクリティカル処理と内容的に無関係な処理でよいから、揺れ処理を挿入することにより、全体の構成が複雑になったり、開発に時間がかかるようなことがない。従って、簡単に不正なアタックから保護することができる。
【００４２】
ステップＳ２４においてコマンド実行部２２は、通常の処理を実行する。この通常の処理とは、不正な使用者から保護する必要がないか、あってもその程度が低い処理である。
【００４３】
ステップＳ２５において揺れ処理が行われた後、ステップＳ２６，Ｓ２７において、クリティカルセクションの処理が実行される。この場合、ステップＳ２７のクリティカルセクションの処理の前に揺れ処理が挿入されていないが、ステップＳ２６，Ｓ２７の処理をまとめて考えれば、その前のステップＳ２５で揺れ処理が実行されているので、不正使用者は、ステップＳ２６，Ｓ２７の処理のタイミングを特定することが困難になる。
【００４４】
この実施の形態の場合、さらにステップＳ２８で通常の処理が行われた後、ステップＳ２９で揺れ処理が行われ、ステップＳ３０でクリティカルセクションの処理が行われている。
【００４５】
このように、この実施の形態では、クリティカルセクションの処理の前に揺れ処理をその都度挿入するようにしたが、原理的には、最初のクリティカルセクションの処理の前だけに揺れ処理を挿入してもよい。それによっても、その後の処理は全てその揺れの分だけタイミングがずれるので、ほぼ同様の効果を奏することが可能である。ただし、セキュリティの観点からは、できるだけ多くの位置に揺れ処理を挿入することが好ましい。
【００４６】
ステップＳ３１において出力部２４は、コマンド実行部２２による処理の結果に基づくレスポンスを情報処理装置５１に出力する。上述したように、このレスポンスは図２のステップＳ２において、情報処理装置５１の取得部６１により取得される。
【００４７】
図６は図４のステップＳ４４の揺れ発生処理の他の実施の形態を表している。
【００４８】
この実施の形態におけるステップＳ８１，Ｓ８５，Ｓ８６は、図５のステップＳ６１，Ｓ６３，Ｓ６４の処理と同様の処理である。すなわち、図６の処理では、図５のステップＳ６２の所定の処理の代わりに、ステップＳ８２，Ｓ８３，Ｓ８４，Ｓ８７の処理が実行される。
【００４９】
すなわちステップＳ８１において揺れ発生部３４は、揺れ幅設定部３３により設定された揺れ幅ｗを変数ｉに設定する。ステップＳ８２において検出部３５はＤＥＳ（Data Encryption Standard）を演算する。具体的には、所定のデータを読み出し、６４ビット長のブロックに分割し、各ブロックを５６ビット長の鍵で暗号化する処理が行われる。
【００５０】
ステップＳ８２の処理が完了した後、ステップＳ８３で検出部３５は、再びＤＥＳを演算する。ステップＳ８４において検出部３５は、ステップＳ８２のタイミングで処理した演算値と、テップＳ８３のタイミングで処理した演算値の２つの値は同じであるかを判定する。
【００５１】
不正な攻撃を受けていない場合、ステップＳ８２とステップＳ８３の異なるタイミングで実行した同じ処理により得られる２つの演算値は通常同じ値となる。この場合、ステップＳ８５において揺れ発生部３４は、ステップＳ８１の処理で揺れ幅ｗが設定されている変数ｉを１だけデクリメントする。ステップＳ８６において揺れ発生部３４は、変数ｉが０より大きいかを判定する。変数ｉが０より大きい場合、処理はステップＳ８２に戻り、それ以降の処理が繰り返される。
【００５２】
揺れ幅ｗが正の整数である場合、ステップＳ８２乃至Ｓ８６の処理がｗ回繰り返されるとｉ＝０となり、ステップＳ８６でｉが０以下であると判定され、処理は図４のステップＳ４４に戻る。
【００５３】
一方、不正な攻撃を受けている場合、ステップＳ８２とステップＳ８３の異なるタイミングで実行した同じ処理により得られる２つの演算値は異なる値となることが多い。この場合、ステップＳ８７において、保護処理部２６は保護処理として、タンパ検出処理を実行する。例えば、保護処理部２６は、メモリ２３に記憶されているデータを全て消去したり、任意のデータに書き換えたり、情報処理装置１１を回復不可能に使用不能にする処理を実行する。これにより、情報処理装置１１が不正に使用されるのを完全に防止することができる。
【００５４】
不正なアクセスが検出された場合、保護のための処理を実行する保護処理部２６によりステップＳ８７の処理が実行された場合、図３の処理はその時点で終了される。
【００５５】
図７は、以上の情報処理装置１１がＩＣカード１０１であり、情報処理装置５１がリーダーライター１０２であるとして、リーダーライター１０２がＩＣカード１０１からデータを読み出す場合の時間管理の処理を表している。
【００５６】
ステップＳ１０１においてリーダーライター１０２は、ＩＣカード１０１に対して、データを読み出すためのコマンドを出力する。
【００５７】
ステップＳ１１１でこのコマンドを受信したＩＣカード１０１は、リーダーライター１０２により指定されたアドレスからデータを読み出す。
【００５８】
ステップＳ１１２でＩＣカード１０１は、コマンドに対応するレスポンスをリーダーライター１０２に返す。このとき読み出されたデータがリーダーライター１０２に送出される。リーダーライター１０２はこのレスポンスをステップＳ１０２で受信する。
【００５９】
不正なアクセスでなければ、このようにしてＩＣカード１０１の指定されたアドレスからデータが読み出され、リーダーライター１０２に供給される。ＩＣカード１０１がステップＳ１１１でコマンドを受信してからステップＳ１１２でレスポンスを返すまでの時間ｈは時間ｈ１と充分短くなり、リーダーライター１０２がステップＳ１０１でコマンドを送信してから、ステップＳ１０２でレスポンスを受信するまでの時間Ｔは、標準の時間Ｔｎ以内の時間となる。
【００６０】
しかし、何等かの不具合が発生したり、不正なアクセスがあった場合には、リーダーライター１０２がレスポンスを返すまでの時間ｈは、時間ｈ２，ｈ３と、標準の時間ｈ１より長くなり、リーダーライター１０２がレスポンスを受信するまでの時間Ｔも、標準の待ち時間Ｔｎより長くなる。リーダーライター１０２は、レスポンスを受信するまでの時間Ｔが標準の待ち時間Ｔｎより長くなったとき、所定の追加時間Ｔｄずつ時間を延長し、時間Ｔが予め設定されているタイムアウト時間Ｔｍより長くなったとき、エラー処理を実行する。追加時間Ｔｄは、パラメータｄに対応する値、すなわち揺れ幅ｗの最大値に対応する時間とすることができる。
【００６１】
このようにすれば、リーダーライター１０２は、タイムアウト時間Ｔｍを必要以上に長い時間に設定する必要がなくなり、必要最低限の時間でＩＣカード１０１と通信を完了させることができる。
【００６２】
リーダーライター１０２が以上のようにしてＩＣカード１０１に対してアクセスする場合の時間管理の処理をさらに詳細に説明すると図８に示されるようになる。なお、以下においては、図１の情報処理装置１１をＩＣカード１０１、情報処理装置５１をリーダーライター１０２として説明を行う。
【００６３】
すなわち、ステップＳ１４１においてリーダーライター１０２の制御部６２は出力部６３を介して、ＩＣカード１０１に対してパラメータｄを指定して、コマンドを出力する。このとき出力部６３は、他の情報処理装置としてのＩＣカード１０１に対して、所定の処理を実行させるコマンドと、コマンドに対応する処理を実行する前に、コマンドに対応する処理を実行するタイミングをランダムに変化させる揺れ処理の最大値を規制するパラメータとを出力する出力部として機能する。ＩＣカード１０１の取得部２１により取得されたパラメータｄはパラメータ取得部３２に供給される。
【００６４】
上述したようにこのパラメータｄは、乱数ｒの最大値を規制する値である。ステップＳ１４２において制御部６２は、取得部６１を介して、ＩＣカード１０１の出力部２４からレスポンスを受け取ったかを判定する。レスポンスを受け取った場合、ステップＳ１４３においてリーダーライター１０２の制御部６２は、レスポンスに対応する処理を実行する。例えばＩＣカード１０１のメモリ２３から読み出されたデータに基づき、そこに記憶されている残高を確認する。
【００６５】
ステップＳ１４２においてまだレスポンスを受け取っていないと判定された場合、ステップＳ１４４においてリーダーライター１０２の制御部６２は、標準の待ち時間Ｔｎが経過したかを判定する。すなわち、制御部６２は、他の情報処理装置としてのＩＣカード１０２からコマンドに対応するレスポンスを受信する時間を、パラメータに対応する時間に基づいて制御する制御部として機能する。まだ標準の待ち時間Ｔｎが経過していない場合、処理はステップＳ１４２に戻り、それ以降の処理が繰り返される。
【００６６】
例えば図３の実施の形態の場合、揺れ処理は３回行われる。標準の待ち時間Ｔｎは、この３回の揺れ処理を除く各処理の標準的な処理時間の合計の時間とされる。
【００６７】
ステップＳ１４４において標準の待ち時間Ｔｎが経過したと判定された場合、ステップＳ１４５において、リーダーライター１０２の制御部６２はＩＣカード１０１からレスポンスを受け取ったかを判定する。ＩＣカード１０１からレスポンスを受け取った場合、ステップＳ１４３において対応する処理が実行される。
【００６８】
ステップＳ１４５において、まだＩＣカード１０１からレスポンスを受け取っていないと判定された場合、ステップＳ１４６においてリーダーライター１０２の制御部６２は、揺れ処理の回数分の追加時間Ｔｄが経過したかを判定する。このことは、揺れ処理の回数をＮとするとき、タイムアップ時間Ｔｍを、次式（１）に従って設定することを意味する。
Ｔｍ＝Ｔｎ＋Ｎ・Ｔｄ    （１）
【００６９】
例えば図３の実施の形態の場合、揺れ処理は３回行われる。そこでＴｎ＋３Ｔｄの時間がタイムアップ時間Ｔｍとされる。
【００７０】
ステップＳ１４６において、標準の待ち時間Ｔｎが経過した後、さらにＮ・Ｔｄの時間がまだ経過していないと判定された場合、リーダーライター１０２がコマンドを出力してからレスポンスを受信するまでの時間Ｔが、まだタイムアウト時間Ｔｍ以上になっていないので、処理はステップＳ１４５に戻り、それ以降の処理が繰り返される。
【００７１】
ステップＳ１４６において、揺れ処理の回数分の追加時間Ｔｄが経過したと判定された場合、タイムアウト時間Ｔｍ以内にレスポンスを受け取ることができなかったことになるので、リーダーライター１０２の制御部６２は、ステップＳ１４７においてエラー処理を実行する。
【００７２】
リーダーライター１０２の制御部６２は、パラメータｄの値を自身で指定しているので、その値から追加時間Ｔｄを演算することができる。また、ＩＣカード１０１が実行する揺れ処理の回数Ｎと、リーダーライター１０２とＩＣカード１０１との間の標準の待ち時間Ｔｎは、リーダーライター１０２の制御部６２に予め設定されている。従って、リーダーライター１０２の制御部６２は、タイムアップ時間Ｔｍを適切な値、すなわち必要最低限の時間に設定することができ、エラー処理を実行する場合にも、効率的な時間制御が可能となる。
【００７３】
なお、本発明は、ＩＣカードの他、セキュアに保護する必要がある携帯電話機、電子手帳、その他の情報処理装置に適用することができる。
【００７４】
図９は、上述した一連の処理をプログラムにより実行するコンピュータの構成の例を示すブロック図である。ＣＰＵ（Central Processing Unit）１２１は、ＲＯＭ（Read Only Memory）１２２、または記憶部１２８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）１２３には、ＣＰＵ１２１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ１２１、ＲＯＭ１２２、およびＲＡＭ１２３は、バス１２４により相互に接続されている。
【００７５】
ＣＰＵ１２１にはまた、バス１２４を介して入出力インターフェース１２５が接続されている。入出力インターフェース１２５には、キーボード、マウス、マイクロホンなどよりなる入力部１２６、ディスプレイ、スピーカなどよりなる出力部１２７が接続されている。ＣＰＵ１２１は、入力部１２６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ１２１は、処理の結果を出力部１２７に出力する。
【００７６】
入出力インターフェース１２５に接続されている記憶部１２８は、例えばハードディスクからなり、ＣＰＵ１２１が実行するプログラムや各種のデータを記憶する。通信部１２９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部１２９を介してプログラムを取得し、記憶部１２８に記憶してもよい。
【００７７】
入出力インターフェース１２５に接続されているドライブ１３０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１３１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１２８に転送され、記憶される。
【００７８】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【００７９】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図９に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア１３１、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ１２２や、記憶部１２８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部１２９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【００８０】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００８１】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００８２】
【図１】本発明の情報処理装置を適用した情報処理システムの一実施の形態の構成を示すブロック図である。
【図２】図1の一方の情報処理装置の処理を説明するフローチャートである。
【図３】図1の他方の情報処理装置の処理を説明するフローチャートである。
【図４】図３のステップＳ２２の揺れ処理を説明するフローチャートである。
【図５】図４のステップＳ４４の揺れ発生処理を説明するフローチャートである。
【図６】図４のステップＳ４４の他の揺れ発生処理を説明するフローチャートである。
【図７】リーダーライターとＩＣカードの処理を説明するフローチャートである。
【図８】リーダーライターの時間管理の処理を説明するフローチャートである。
【図９】コンピュータの構成を示すブロック図である。
【符号の説明】
【００８３】
１  情報処理システム，  １１  情報処理装置，  ２１  取得部，  ２２  コマンド実行部，  ２３  メモリ，  ２４  出力部，  ２５  揺れ処理部，  ２６  保護処理部，  ３１  乱数発生部，  ３２  パラメータ取得部，  ３３  揺れ幅設定部，  ３４  揺れ発生部，  ３５  検出部，  ６１  取得部，  ６２  制御部，  ６３  出力部，  １０１  ＩＣカード，  １０２  リーダーライター
【図１】
2009289017.tif 000003
【図２】
2009289017.tif 000004
【図３】
2009289017.tif 000005
【図４】
2009289017.tif 000006
【図５】
2009289017.tif 000007
【図６】
2009289017.tif 000008
【図７】
2009289017.tif 000009
【図８】
2009289017.tif 000010
【図９】
2009289017.tif 000011