説明

携帯可能電子装置及びICカード

【課題】 多種多様な動作環境に柔軟に対応することのできる携帯可能電子装置及びICカードを提供する。
【解決手段】外部機器からコマンドを受信する受信部501と、受信したコマンドに対応した処理を実行するアプリケーション部503と、特定の処理機能をハードウェアで構成したモジュールを複数有するハードウェアモジュール部200bと、前記アプリケーション部からの指示に基づいて前記モジュールを制御してその結果を取得して前記アプリケーション部に返信するAPI(アプリケーション・プログラミング・インターフェース)部504と、前記アプリケーション部から前記コマンドの処理結果を取得して前記外部機器に送信する送信部501とを備えた携帯可能電子装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、ハードウェア(HW)モジュールとAP(アプリケションプログラム)との間で情報の授受を行うAPI(アプリケーション・プログラミング・インタフェース)を備えた携帯可能電子装置及びICカードに関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
ICカードは、上位端末から電源・磁界・クロックを供給されることにより動作する。
【0005】
既存のICカードでは、これらの外部から供給される電源・磁界・クロックがICカードの動作に十分なだけ供給されているかをICカード内に搭載された検知モジュールにて検知し、十分であれば動作し、十分でなければ動作を止める制御を行っていた。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−48642号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、ICカードは携帯電話端末、テレビ受像機、自動改札機など多様な上位端末と接続して情報を授受する。これら上位端末から供給される電源・磁界・クロックは、上位端末が使用される環境、条件によってそれぞれ異なる。例えば、携帯電話端末では電源が限られているため、携帯電話端末から供給される電源電圧が低い。従って、ICカードとアプリケーションとの組み合わせがその条件に対応していない場合には、動作が出来ない。また、供給される電源電圧が高く、クロック周波数も高い場合ではICカード内部の温度が上昇する。その結果、温度検知モジュールが温度高を検知してICカードの動作が停止する。
【0008】
逆に、供給される電源・磁界・クロックに十分な余裕があり、ICカードを高電圧、高クロックで動作させることが可能であったとしても、そのような高負荷状態を継続すると、消費電力が高くなり、電源を供給する端末の電源負荷を増大させる。
【0009】
一方、ICカードにおいては、メモリの高密度化、CPUの高速化が図られている。その結果、ICカード発行後に送受信インターフェースを介してアプリケーションの追加・削除を行うことが出来るICカードも登場している。またアプリケーションが高級言語で記述され、準拠しているICカードプラットフォーム仕様が同じであれば、LSIの種類によらずアプリケーションを搭載することが可能となりつつある。しかしながら、ICカードプラットフォーム仕様が同じであっても上述のようにアプリケーションが動作する環境は多様であり、更にLSIには性能差があるため、ICカードによっては、アプリケーションの機能を完全には実行出来ない、あるいはアプリケーションの動作が不安定になる等の制約が発生していた。
【0010】
従って、多種多様な動作環境に柔軟に対応することのできる携帯可能電子装置及びICカードに対するニーズがある。
【課題を解決するための手段】
【0011】
上記課題を解決するための本発明の実施の形態によれば、外部機器からコマンドを受信する受信部と、受信したコマンドに対応した処理を実行するアプリケーション部と、特定の処理機能をハードウェアで構成したモジュールを複数有するハードウェアモジュール部と、前記アプリケーション部からの指示に基づいて前記モジュールを制御してその結果を取得して前記アプリケーション部に返信するAPI(アプリケーション・プログラミング・インターフェース)部と、前記アプリケーション部から前記コマンドの処理結果を取得して前記外部機器に送信する送信部とを備えた携帯可能電子装置が提供される。
【図面の簡単な説明】
【0012】
【図1】本実施の形態のICカードを利用した処理システムの構成を示す図。
【図2】本実施の形態のICカードの構成例について説明するための図。
【図3】本実施の形態のICカードの通信部の接続端子構成を示す図。
【図4】従来技術のICカードのソフトウェア構成例を示す図。
【図5】本実施の形態のICカードのソフトウェア構成例を示す図。
【図6】従来技術におけるコマンド送受信シーケンス例を示す図。
【図7】本実施の形態におけるコマンド送受信シーケンス例を示す図。
【図8】HWモジュール部の各モジュールに対応する入力パラメータの例を示す図。
【発明を実施するための形態】
【0013】
(第1の実施形態)
以下、図面を参照しつつ本実施の形態の携帯可能電子装置について説明する。なお、本実施の形態では、携帯可能電子装置はICカードとして説明するが、ICカードに限られない。
【0014】
図1は、本実施の形態のICカードを利用した処理システム100の構成を示す図である。この処理システム100は、ICカード101、カードリーダ/ライタ102、端末103、キーボード104、モニタ105及びプリンタ106を備える。ICカード101はカードリーダ/ライタ102と接続可能である。端末103は、カードリーダ/ライタ102、キーボード104、モニタ105及びプリンタ106を接続して構成される。
【0015】
カードリーダライタ102は、ICカード101と通信を行うためのインターフェース装置である。カードリーダライタ102は、ICカード101に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【0016】
端末103は、カードリーダライタ102を介してICカード101に対して種々のコマンドを入力する。ICカード101は、例えば、カードリーダライタ102からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。また、端末103は、ICカード101に読み取りコマンドを送信することにより、ICカード101からデータを読み出す。端末103は、ICカード101から受信したデータに基づいて種々の処理を行う。
【0017】
モニタ105は、端末103によって制御されて種々の情報を表示する。キーボード104は、処理システム100の操作者による操作を信号に変換して端末103に出力する。プリンタ106は、端末103からの情報を印字出力する。
【0018】
図2は、本実施の形態のICカード101の構成例について説明するための図である。
ICカード101は、カード状の本体と、本体に内蔵されたICモジュール200とを備えている。そしてICモジュール200には、メモリ部200a、HW(ハードウェア)モジュール部200b、制御素子201及び通信部206が設けられている。
【0019】
制御素子201は、例えばCPU、レジスタなどを備え、ICカード101における処理を統括して制御する。通信部206は、カードリーダ/ライタ102との間の通信処理を実行する。通信方式は、接触式に限られず、無線式、SWP式、USB式のいずれを採用しても良い。
【0020】
メモリ部200aは、記憶内容が消去可能な不揮発性のデータメモリ202、ワーキングメモリ203、プログラムメモリ204及びコプロメモリ205を備えている。
【0021】
データメモリ202は、各種データの記憶に使用され、たとえば、EEPROM、Flash Memoryなどで構成されている。ワーキングメモリ203は、制御素子201が処理を行う際の処理データを一時的に保持するためのメモリであり、たとえば、RAMなどで構成される。プログラムメモリ204は、たとえば、マスクROMで構成されており、制御素子201のプログラムなどを記憶するものである。コプロメモリ205は、暗号処理を行う際の処理データを一時的に保持するためのメモリであり、たとえば、RAMなどで構成される。
【0022】
HWモジュール部200bには、暗号処理を行う暗号モジュール207、乱数を生成する乱数生成モジュール208、電源端子に供給された電源電圧を検知する電圧検知モジュール209、クロック端子に供給されるクロック周波数を検知するクロック検知モジュール210、ICカード101の温度状態を検知する温度検知モジュール211及び内部クロックモジュール212が備えられている。
【0023】
暗号モジュール207は、暗号計算を実行する。暗号モジュール207は、たとえば、DES、RSA、AESのコプロセッサ、転置回路などで構成される。乱数生成モジュール208は、乱数を生成する。電圧検知モジュール209は、供給される電源の電圧値を検知し、予め設定されたICカード動作可能範囲を電圧が外れた場合に、ICカード101の動作を停止する信号を制御素子201に送信する。クロック検知モジュール210は、供給されるクロック周波数を検知し、予め設定されたICカード動作可能範囲をクロック周波数が外れた場合に、ICカード101の動作を停止する信号を制御素子201に送信する。
【0024】
温度検知モジュール211は、ICカード101の温度を検知し、予め設定されたICカード動作可能範囲をICカード101の温度が外れた場合に、ICカード101の動作を停止する信号を制御素子201に送信する。内部クロックモジュール212は、カードリーダ/ライタ102から供給されるクロック(外部クロックと定義する。)とは別に、ICカード構成例200の内部で利用するクロック(内部クロックと定義する。)を生成し、制御素子201とHWモジュール部200bの各モジュール207、208に供給する。
【0025】
図3は、本実施の形態のICカード101の通信部206の接続端子構成を示す図である。なお、上述のように、通信部206の通信方式は、接触式に限られず、無線式、SWP式、USB式のいずれを採用しても良い。
【0026】
電源端子301は、カードリーダ/ライタ102から供給電源を受け入れる。リセット端子302は、カードリーダ/ライタ102からリセット信号を受信する。クロック端子303は、カードリーダ/ライタ102から供給されるクロックを受信する。グランド端子305は、カードリーダ/ライタ102を経由して接地される、通信端子307は、カードリーダ/ライタ102と通信信号を授受する。なお、未使用端子304、306、308は、I無線式、SWP式、USB式により通信端子として利用される場合がある。
【0027】
図4は、従来技術のICカードのソフトウェア構成例を示す図である。ICカード101は、ソフトウェアとして、通信ドライバ部401、ICカードOS部402及びアプリケーション部403を備えている。
【0028】
通信ドライバ部401は、通信部206を制御する。ICカードOS部402は、ICカードに搭載されたHWの制御、メモリ管理、アプリケーション管理、コマンド管理を行う。アプリケーション部403は、受信したコマンドに対応した処理を実行する。
【0029】
図5は、本実施の形態のICカードのソフトウェア構成例を示す図である。ICカード101は、ソフトウェアとして、通信ドライバ部501、ICカードOS部502、アプリケーション部503及びAPIライブラリ部504を備えている。
【0030】
通信ドライバ部501は、通信部206を制御する。ICカードOS部502は、ICカードに搭載されたHWの制御、メモリ管理、アプリケーション管理、コマンド管理を行う。アプリケーション部503は、受信したコマンドに対応した処理を実行する。APIライブラリ部504は、API(アプリケーション・プログラミング・インタフェース)を備える。APIは、ソフトウェアアプリケーションが使用できる命令、関数の集合である。アプリケーション部503のアプリケーションA,B,Cは、APIを用いて通信部206、暗号モジュール207、乱数生成モジュール208、各検知モジュール209、210、211、内部クロックモジュール212を利用することができる。即ち、APIは、アプリケーション部503とHWモジュール部との間で、情報を取得して授受する機能を備えている。
【0031】
なお、アプリケーションA、B、Cは、高級言語で記述されるICカード用アプリケーションである。通信部206は、アプリケーションA、B、Cをデータとして受信する。ICカードOS部502は、ICカード発行後であってもアプリケーションA、B、CをICカード101に追加・削除することができる。アプリケーションA、B、Cは、同じ高級言語の仕様に準拠した別のICカードにも搭載可能である。ここで、本実施の形態では、高級言語とは、機械語、アセンブリ言語と比べてOS、ICカードの構成に依存することの少ないプログラミング言語のことを意味する。
【0032】
続いて、ICカード101の動作を説明する。
【0033】
図1のICカードを利用した処理システム100に示すように、ICカード101は、カードリーダ/ライタ102と接続される。接続方法が接触方式の場合は、図3に示すICカード101の接続端子と、対応するカードリーダ/ライタ102の端子とが接続される。接続が完了すると、カードリーダ/ライタ102は、電源、クロックをICカード101に供給し、リセット信号(RST)を送信する。ICカード101は供給された電源、クロックと、温度が予め設定された動作可能範囲内であることを検知回路により検知し、リセット信号をリセット端子302で受信したことを通知する信号(ATR)を通信端子307より送信する。なお、電源、クロック、温度いずれかが、動作可能範囲外となった場合、検知モジュールにより検知され、ICカード101の動作は停止する。
【0034】
この後、カードリーダ/ライタ102とICカード101は通信端子を介してデータの送受信を行う。
【0035】
図6は、従来技術におけるコマンド送受信シーケンス例を示す図である。
【0036】
上述の初期応答が完了し、ICカード101で処理を実行するアプリケーションが起動した後、カードリーダ/ライタ102は、コマンドをICカード101に対して送信する。ステップ601において、通信ドライバ部401はコマンドを含む受信データを受信する。ステップ602において、通信ドライバ部401は受信処理を実行する。通信ドライバ部401は受信データに含まれるプロトコルを解釈してコマンドデータを抽出する。通信ドライバ部401は、抽出したコマンドデータをICカードOS部402とアプリケーション部403で使用する形式に変換を行い、ステップ603において、変換したコマンドデータをICカードOS部402に送信する。
【0037】
ステップ604において、ICカードOS部402は、受け取ったコマンドデータに対応した処理をコマンド処理として実行する。コマンド処理ごとに、アプリケーションが割当てられている。そして、ステップ605において、ICカードOS部402は、対応した処理を実行するための関数を呼び出す。関数とは、例えば暗号計算を実行する、メモリの内容を書き換えるなどのHWを直接制御する処理である。ステップ606において、アプリケーションは指定された関数を実行する。関数は、ICカードOS部402の制御の下で実行される。即ち、HWモジュール部はICカードOS部402により制御される。ステップ607において、アプリケーション部403は、関数を実行した結果を戻り値としてICカードOS部402に返信する。
【0038】
ステップ608において、ICカードOS部402は、戻り値を通信用のフォーマットに変換すると共に、コマンド処理が成功したか否かを表すステータスワードを付加してレスポンスデータを生成する。ステップ609において、ICカードOS部402は、通信ドライバ部401にレスポンスデータを送信する。ステップ610において、通信ドライバ401は、レスポンスデータ609にプロトコル情報などカードリーダ/ライタとの通信に必要な情報を付加する送信処理を実行する。ステップ611において、カードリーダ/ライタ102は、通信ドライバ部401から送信された送信データを受信する。
【0039】
以上のように、従来技術では検知モジュール209、210、211を含むHWモジュール部200bは、ICカードOS部402により制御されている。従って、HWモジュールの取扱を変更しようとするとそれに整合するようにICカードOS部402を変更する必要がある。更にアプリケーションが後で追加された場合、そのアプリケーションでHWモジュールを取り扱うことをICカードOS部402に規定して整合を図らなければならない。
【0040】
図7は、本実施の形態におけるコマンド送受信シーケンス例を示す図である。
【0041】
初期応答が完了し、ICカード101で処理を実行するアプリケーションが起動した後、カードリーダ/ライタ102は、コマンドをICカード101に対して送信する。ステップ701において、通信ドライバ部501はコマンドを含む受信データを受信する。ステップ702において、通信ドライバ部501は受信処理を実行する。通信ドライバ部501は受信データに含まれるプロトコルを解釈してコマンドデータを抽出する。通信ドライバ部501は、抽出したコマンドデータをICカードOS部502とアプリケーション部503で使用する形式に変換を行い、ステップ703において、変換したコマンドデータをICカードOS部502に送信する。
【0042】
ステップ704において、ICカードOS部502は、受信したコマンドデータが起動しているアプリケーションが処理するコマンドかどうかを確認する。確認がOKの場合、ステップ705おいて、アプリケーション部503に受信したコマンドデータを送信する。従って、ICカードOS部502は、従来のようにコマンドデータを解釈してHWモジュールを制御する関数を指定する動作を実行しない。
【0043】
ステップ706おいて、アプリケーション部503に所属するアプリケーションは、受信したコマンドにHWモジュールを制御する命令が含まれているかどうかを調べる。そのような命令が含まれていた場合は、ステップ707おいて、アプリケーションは、APIライブラリ部504に入力パラメータを送信する。この入力パラメータによってどのHWモジュールをどのように制御するかを指定することができる。例えば、APIライブラリ部504に検知回路から情報を取得するAPIが存在していた場合、電圧回路から電圧を取得したいときは、入力パラメータに01を設定して当該APIを起動する。クロック回路からクロック数を取得したいときは入力パラメータに02を設定して当該APIを起動する。
【0044】
ステップS708において、APIはAPI処理を実行する。API処理では、APIは、入力パラメータを解析し、該当するHWモジュールが処理できる形の入力パラメータに変換してHWモジュール部200bに送信する。さらに、HWモジュール部200bからの処理結果を受信する。
【0045】
APIとHWモジュール部200bとの情報授受を具体的に説明する。例えば、電源電圧を検知する場合、ステップ709において、APIは、「現在発生している電圧が何ボルトであるかを検知せよ」との指示を表す入力パラメータをHWモジュール部200bに送信する。ステップ710において、HWモジュール部200bは、電源電圧を測定し、ステップ711において、測定した電源電圧値をAPIに送信する。
【0046】
図8は、HWモジュール部200bの各モジュールに対応する入力パラメータの例を示す図である。なお、図8の各検知モジュールに記載した動作遮断指示とは、それぞれの検知モジュールがICカード101の動作を遮断する機能を有効にする指示である。例えば、クロック検知モジュール210には、クロック数が1MHz〜数MHzの範囲を超えている場合は、ICカード101の動作を停止させる機能を備えている。このような動作遮断もAPIは指示することができる。
【0047】
ステップ712において、APIライブラリ部504に所属するAPIはアプリケーションに戻り値を送信する。APIは、電圧が正常に取得できたときは戻り値に電圧値を表すコードを設定し、正常に電圧が設定できなかったときはそのことを表すコードを戻り値に設定する。アプリケーションは、送信された戻り値に従って処理を進める。たとえば、電源電圧がソフトウェア実行上の制限となる状態であるかどうかを調べる場合、アプリケーションは、APIライブラリ部504に所属するAPIを介して電圧検知モジュール209を用いて検知した電圧値を取得し、ソフトウェアが実行可能かを判定する。アプリケーションは、処理結果に応じて別のAPIを呼び出して次の処理を実行させることもできるし、繰返しAPIを呼び出すこともできる。
【0048】
従来は図6で示したように、ICカードOS部502がHWモジュールを制御していた。しかし上述のように、アプリケーションがAPIを介してHWモジュールを制御するように構成することで、ICカード101は、より柔軟にHWモジュールを制御することができる。
【0049】
例えば、カードリーダ/ライタ102がICカード101に供給可能な電圧値が、5V、3V、1.8Vの3段階であって、カードリーダ/ライタ102が、5Vを供給していたとする。APIは戻り値(=“0x03”)を返却する。この戻り値(=“0x03”)は、この電圧(=5V)の下では、HWモジュールが全て実行可能であり、ソフトウェアの実行には制限が設けられていないことを意味する。このように、アプリケーションは、取得した戻り値により、現在カードリーダ/ライタ102が供給している電圧値を知るだけでなく、ICカード101に搭載されている全てのHWモジュールを実行可能であることも知ることが出来る。
【0050】
またアプリケーションは、電源電圧が5Vと、3V、1.8Vに対して十分に供給されているため、一般的に消費電力が高くなる暗号処理や、高クロック動作を実行することができる判断する。更に、アプリケーションは、これらの機能を用いて、一連の処理を高速に行うことが可能と判断する。
【0051】
ステップ713において、アプリケーションは、コマンド実行結果を作成し、ICカードOS部502に送信する。コマンド実行結果には、HWモジュールが動作して取得した値、HWモジュールの動作が成功か失敗かの結果などが含まれる。ステップ714において、ICカードOS部502は、レスポンス処理によりレスポンスデータを作成し、ステップ715において、通信ドライバ部501へ送信する。レスポンスデータには、コマンド実行結果とともに、コマンド処理が成功か否かを表す、ICカードの規格で定められるステータスワードが付加されている。
【0052】
ステップ716において、通信ドライバ部501は、レスポンスデータ715にプロトコル情報などカードリーダ/ライタ102との通信に必要なプロトコル情報を付加して送信データを生成する。ステップ717において、通信ドライバ部501は、カードリーダ/ライタ102に対して送信処理を行う。
【0053】
上述のように、アプリケーションはHWモジュールの測定値に基づいてICカード101が動作する環境を判断する。動作環境を判断するために用いられる物理量には、ICカード101周辺の温度、外部からICカード101に供給される電源電圧、クロック周波数などがある。また、アプリケーションは、この測定値によってHWモジュールの動作を制限する。動作制限を受けるHWモジュールには、暗号モジュール207、乱数生成モジュール208、内部クロックモジュール212などがある。
【0054】
次に、アプリケーションが実施するコマンド処理は以下に説明するようにフレキシブルに構成することが可能である。アプリケーションは、供給されている電圧・クロック情報に基づいて、処理方法を柔軟に選択することができる。
【0055】
(1)供給される電圧・クロックに応じて、HWモジュールを制御するAPIにより内部クロックモジュールを制御し、内部クロックを変更する。電圧が所定値よりも低い、またはクロック周波数が所定値よりも低い場合、内部クロック周波数を低くする。
【0056】
(2)供給される電圧・クロックに応じて、サポート可能な暗号の鍵長を変更する。電圧が所定値よりも高い、またはクロック周波数が所定値よりも高い場合、暗号の鍵長を長くする。電圧が低い、またはクロック周波数が低い場合、暗号の鍵長を短くする。
【0057】
(3)供給される電圧・クロックに応じて、アプリケーションが実行可能かを判断し、実行不可の場合、エラーを送信する。例えば、電圧が所定電圧以上かつクロック周波数が所定の周波数以上である場合は、ハードウェア暗号モジュールの使用を可能とし、そうでない場合は、ハードウェア暗号モジュールの使用を不可としてエラーを送信する。
【0058】
(4)供給される電圧・クロックに応じて、アプリケーションが実行可能かを判断し、実行不可の場合、実行可能となる電圧・クロックの値をレスポンスデータとして応答する。例えば、電圧が所定電圧以下あるいはクロック周波数が所定の周波数以下である場合、ハードウェア暗号モジュールの使用を不可とし、さらにレスポンスデータに所定電圧、所定周波数を設定する。
【0059】
(5)供給される電圧・クロックに応じて、アプリケーションが実行可能かを判断し、実行不可の場合、実行可能となるように内部クロックモジュール、暗号モジュール、乱数生成モジュールの機能を、HWモジュールを制御するAPIにより順次停止する。例えば、電圧が第1の所定値以下になったときはまず内部クロックモジュールを停止する。さらに電圧が第2所定値以下になったときは暗号モジュールを停止する。そして、電圧が第3所定値以下になったときは乱数生成モジュールを停止する。
【0060】
(6)供給される電圧・クロックに応じて、アプリケーションが実行可能かを判断し、実行不可の場合、HWモジュールの実行を禁止し、ソフトウェアによる代替機能用いる。例えば、電圧が所定電圧以下あるいはクロック周波数が所定の周波数以下である場合、暗号モジュール、乱数生成モジュールをハードウェアの機能からソフトウェアの機能に切換える。即ち、暗号モジュールに対しては、ソフトウェアによる暗号処理関数を使用し、乱数生成モジュールに対しては、ソフトウェアによる乱数生成関数を用いる。
【0061】
また本実施の形態の携帯可能電子装置は、つぎのような機能を備えることができる。
API内処理においてソフトウェア継続実行不可と判断した場合、APIを呼び出したソフトウェア処理へ制御を渡すことなく外部へ特定の結果を出力する。
ソフトウェア継続実行不可との判断が供給電力不足に起因し、暗号モジュールの動作が継続できず、外部からの指示を処理できないときは、外部へ電力供給不足である旨を出力する。
【0062】
[効果]
以上説明した実施の形態によれば、種々の効果を奏することができる。
【0063】
アプリケーションは、HWモジュールの状態を取得し、ICカードの制限事項を参照してアプリケーションの動作を制御することが出来る。そのためアプリケーションは、ICカードシステムの状態に適した最適な動作を実行することができる。例えば、電源電圧が高く安定していて、制限が設けられていない場合には、内部クロックを上げてアプリケーション実行速度を上げることが可能であり、また、ハードウェアの暗号モジュールの機能を利用して暗号計算処理を高速に行うことも可能である。
一方で電源電圧が低く安定しないためHWモジュールの動作に制限がある場合、例えば、電圧が低くクロックを下げないと暗号モジュールが動作しない場合は、アプリケーションは、内部クロックモジュールを制御するAPIを利用して内部クロックを下げて実行速度を遅くし、暗号モジュール実行APIの利用を止めて、暗号処理をソフトウェア処理に切り替えることで、消費電力を抑えることが可能である。
このような対応が柔軟に追加削除変更できることは顕著な効果として挙げられる。
【0064】
また、アプリケーションは、同一の高級言語仕様に準拠したICカード上で動作する。そして、アプリケーションは高級言語仕様に準拠したAPIによりHW状態を検知し、ソフトウェア実行上の制限事項を取得し、ハードウェアの制御を行うことが出来る。このため、個別のハードウェア仕様を意識せずにアプリケーションをプログラミングすることができる。
【0065】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0066】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0067】
101…ICカード、102…リーダライタ、103…端末、104…キーボード、105…モニタ、106…プリンタ、200…ICモジュール、200a…メモリ部、200b…ハードウェアモジュール部、201…制御素子、202…データメモリ、203…ワーキングメモリ、204…プログラムメモリ、205…コプロメモリ、206…通信部、207…暗号モジュール、208…乱数生成モジュール、209…電圧検知モジュール、210…クロック検知モジュール、211…温度検知モジュール、212…内部クロックモジュール、501…通信ドライバ部、503…アプリケーション部、504…APIライブラリ部。

【特許請求の範囲】
【請求項1】
外部機器からコマンドを受信する受信部と、
受信したコマンドに対応した処理を実行するアプリケーション部と、
特定の処理機能をハードウェアで構成したモジュールを複数有するハードウェアモジュール部と、
前記アプリケーション部からの指示に基づいて前記モジュールを制御してその結果を取得して前記アプリケーション部に返信するAPI(アプリケーション・プログラミング・インターフェース)部と、
前記アプリケーション部から前記コマンドの処理結果を取得して前記外部機器に送信する送信部と
を備えたことを特徴とする携帯可能電子装置。
【請求項2】
少なくとも一つの前記モジュールは、前記携帯可能電子装置が動作する環境に関する情報を検知し、
前記アプリケーション部は、前記API部を介して取得した前記環境に関する情報に基づいて前記コマンドに対応した処理を実行する方法を選択すること
を特徴とする請求項1に記載の携帯可能電子装置。
【請求項3】
前記ハードウェアモジュール部は、環境に関する情報を検知するモジュールとして、
外部から供給されるクロック周波数を検知するクロック検知モジュール、前記携帯可能電子装置の周辺温度を検知する温度検知モジュール、及び外部から供給される電源電圧を検知する電圧検知モジュールを備えたことを特徴とする請求項2に記載の携帯可能電子装置。
【請求項4】
前記ハードウェアモジュール部は、暗号の生成と解読を処理する暗号モジュール、及び乱数を生成する乱数生成モジュールを備え、
前記アプリケーション部は、前記環境に関する情報に基づいて前記暗号モジュール、及び乱数生成モジュールの動作可否、あるいはソフトウェアによる代替を選択して処理を実行することを特徴とする請求項2に記載の携帯可能電子装置。
【請求項5】
前記ハードウェアモジュール部は、前記携帯可能電子装置の内部クロックを発生する内部クロックモジュールを更に有し、
前記アプリケーション部は、
前記API部を介して電圧検知モジュールから取得した電源電圧が第1の所定値以上のときは、前記API部を介して前記内部クロックモジュールが発生するクロック周波数を増加し、
前記API部を介して電圧検知モジュールから取得した電源電圧が前記第1の所定位置よりも小さい第2の所定値以下のときは、前記API部を介して前記内部クロックモジュールが発生するクロック周波数を減少することを特徴とする請求項3に記載の携帯可能電子装置。
【請求項6】
請求項1乃至5の内のいずれか1項に記載の各部を有するICモジュールと、
このICモジュールを収納したICカード本体と
を備えたことを特徴とするICカード。
【請求項7】
前記アプリケーション部は、ソースプログラムが高級言語であるソフトウェアで構成され、前記ソフトウェアは追加、削除可能であることを特徴とする請求項6に記載のICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−18635(P2012−18635A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−157174(P2010−157174)
【出願日】平成22年7月9日(2010.7.9)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】