(57)【要約】【課題】コマンドに応じてセキュリティ優先と速度優先とを切り替えることが可能な情報処理装置、ＩＣカード、コマンド処理方法、及びコマンド処理プログラムを提供する。【解決手段】マルチコアプロセッサ１０は、受信されたコマンドがセキュリティ優先または速度優先であるかを判定し、セキュリティ優先であると判定した場合、当該コマンドに応じた同一の処理を複数のＣＰＵに同一タイミングで実行させる一方、セキュリティ優先でないと判定した場合、当該コマンドに応じた一連の処理の中の別々の処理を複数のＣＰＵに同一タイミングで実行させる。【選択図】図３
2015146072.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備える情報処理装置であって、
前記コントローラは、
外部端末からコマンドが受信された場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定する判定手段と、
前記判定手段によりセキュリティ優先であると判定された場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させる制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記判定手段によりセキュリティ優先でないと判定された場合、前記コマンドに応じた一連の処理の中の別々の処理を前記複数のＣＰＵに同一タイミングで実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、コマンドを示す値と、セキュリティ優先または速度優先とを対応付けたテーブルを予め記憶する不揮発性メモリを備え、
前記判定手段は、前記コマンドが受信された場合に、前記不揮発性メモリに記憶されている前記テーブルを参照して、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記コマンドに応じた処理の結果に応じて、前記セキュリティ優先または速度優先を示すフラグを保持しておき、次のコマンドが受信された場合に、前記保持されているフラグを参照して、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定することを特徴とする請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
請求項１乃至４の何れか一項に記載の情報処理装置を搭載することを特徴とするＩＣカード。
【請求項６】
複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備える情報処理装置におけるコマンド処理方法であって、
前記コントローラが、外部端末からコマンドを受信した場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定するステップと、
前記コントローラが、前記セキュリティ優先であると判定した場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させるステップと、
を含むことを特徴とするコマンド処理方法。
【請求項７】
複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備えるプロセッサにおける前記コントローラを、
外部端末からコマンドが受信された場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定する判定手段と、
前記判定手段によりセキュリティ優先であると判定された場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させる制御手段として機能させることを特徴とするコマンド処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサにより構成されるＩＣ(Integrated Circuit)チップ等の技術分野に関する。
【背景技術】
【０００２】
従来から、悪意のある第三者によりＩＣチップに対してＤＦＡ(Differential Fault Analysis)などの攻撃が行われることが問題となっている。このような問題に対する対策として、例えば特許文献１には、攻撃が検出される毎に、セキュリティ対策の強度を段階的に上げる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０３８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１の技術では、通常時は速度を優先することができるが、その場合はセキュリティ的に脆弱な状態として動作することになってしまう。一方、近年、ＩＣカードは、多様な場面で用いられることが増え、実装されるコマンドの数や種類が増加している。コマンドにはそれぞれ、セキュリティが優先されるものと、速度が優先されるものに分かれているが、コマンドに応じてセキュリティ優先と速度優先とを切り替える技術は知られていなかった。
【０００５】
そこで、本発明は、上記問題等に鑑みてなされたものであり、コマンドに応じてセキュリティ優先と速度優先とを切り替えることが可能な情報処理装置、ＩＣカード、コマンド処理方法、及びコマンド処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備える情報処理装置であって、前記コントローラは、外部端末からコマンドが受信された場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定する判定手段と、前記判定手段によりセキュリティ優先であると判定された場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させる制御手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記判定手段によりセキュリティ優先でないと判定された場合、前記コマンドに応じた一連の処理の中の別々の処理を前記複数のＣＰＵに同一タイミングで実行させることを特徴とする。
【０００８】
請求項３に記載の発明は、請求項１または２に記載の情報処理装置において、前記情報処理装置は、コマンドを示す値と、セキュリティ優先または速度優先とを対応付けたテーブルを予め記憶する不揮発性メモリを備え、前記判定手段は、前記コマンドが受信された場合に、前記不揮発性メモリに記憶されている前記テーブルを参照して、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定することを特徴とする。
【０００９】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の情報処理装置において、前記制御手段は、前記コマンドに応じた処理の結果に応じて、前記セキュリティ優先または速度優先を示すフラグを保持しておき、次のコマンドが受信された場合に、前記保持されているフラグを参照して、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定することを特徴とする。
【００１０】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の情報処理装置を搭載することを特徴とするＩＣカードである。
【００１１】
請求項６に記載の発明は、複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備える情報処理装置におけるコマンド処理方法であって、前記コントローラが、外部端末からコマンドを受信した場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定するステップと、前記コントローラが、前記セキュリティ優先であると判定した場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させるステップと、を含むことを特徴とする。
【００１２】
請求項７に記載の発明は、複数のＣＰＵと、前記ＣＰＵを制御するコントローラとを備えるプロセッサにおける前記コントローラを、外部端末からコマンドが受信された場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定する判定手段と、前記判定手段によりセキュリティ優先であると判定された場合、前記コマンドに応じた同一の処理を前記複数のＣＰＵに同一タイミングで実行させる制御手段として機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、コマンドに応じてセキュリティ優先と速度優先とを切り替えることができる。
【図面の簡単な説明】
【００１４】
【図１】（Ａ）は、ＩＣカード１の概要構成例を示す図である。（Ｂ）は、コマンドテーブルの一例を示す図である。
【図２】コントローラ１０ｅの処理を示すフローチャートである。
【図３】ＣＰＵ１０ａ〜１０ｄの実行タイミングの一例を示す概念図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００１６】
先ず、図１を参照して、本実施形態に係るＩＣカードについて説明する。図１（Ａ）は、ＩＣカード１の概要構成例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１７】
ＩＣカード１には、図１（Ａ）に示すように、ＩＣチップ１ａが搭載されている。具体的には、ＩＣチップ１ａは、マルチコアプロセッサ１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。Ｉ／Ｏ回路１４には、例えばＩＳＯ／ＩＥＣ７８１６によって定められたＣ１〜Ｃ８の８個の端子が設けられている。例えば、Ｃ１端子は電源端子、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２とのデータ通信を行う端子である。外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣカード１が通信機器に組み込まれる場合、外部端末２には通信機器の機能を担う制御部が該当する。
【００１８】
マルチコアプロセッサ１０は、複数のＣＰＵ（コア）１０ａ〜１０ｄと、ＣＰＵ１０ａ〜１０ｄを制御するコントローラ１０ｅとを備える。ＣＰＵ（コア）１０ａ〜１０ｄは、外部端末２からコマンドが受信された場合に、コントローラ１０ｅの制御の下、ＲＯＭ１２または不揮発性メモリ１３に記憶されているプログラムに従って当該コマンドに応じた処理を実行する。ここで、外部端末２から受信されるコマンドは、ヘッダとボディを含むＡＰＤＵと呼ばれるデータ列から構成される。コマンドのヘッダは、ＣＬＡ（命令クラス）、ＩＮＳ（命令コード）、Ｐ１（命令パラメータ１）、及びＰ２（命令パラメータ２）からなる。また、コマンドには、セキュリティ優先のコマンドと、速度優先のコマンドとがある。セキュリティ優先とは、コマンドに応じた処理を、速度よりセキュリティを優先させることを意味する。一方、速度優先とは、コマンドに応じた処理を、セキュリティより速度を優先させることを意味する。
【００１９】
コントローラ１０ｅは、例えば不揮発性メモリ１３に記憶されているコマンド処理プログラムに従って本発明における判定手段及び制御手段として機能する。具体的には、コントローラ１０ｅは、外部端末２からコマンドが受信された場合に、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定する。例えば、コントローラ１０ｅは、不揮発性メモリ１３に予め記憶されたコマンドテーブルを参照して上記判定を行う。図１（Ｂ）は、コマンドテーブルの一例を示す図である。図１（Ｂ）に示すように、コマンドテーブルには、コマンドを示すＩＮＳ値と、セキュリティ優先または速度優先とが、コマンドごとに対応付けられて登録されている。なお、コマンドテーブルには、外部端末２から受信可能な全てのコマンドを示すＩＮＳ値を登録しなくてもよい。例えば、セキュリティ優先のコマンドを示すＩＮＳ値だけをコマンドテーブルに登録してもよいし、速度優先のコマンドを示すＩＮＳ値だけをコマンドテーブルに登録してもよい。
【００２０】
そして、コントローラ１０ｅは、セキュリティ優先である（言い換えれば、速度優先でない）と判定した場合、当該コマンドに応じた同一の処理（ＭＯＶやＡＤＤ等の命令）を複数のＣＰＵに同一タイミングで実行させる。一方、コントローラ１０ｅは、セキュリティ優先でない（言い換えれば、速度優先である）と判定した場合、当該コマンドに応じた一連の処理の中の別々の処理（ＭＯＶやＡＤＤ等の命令）を複数のＣＰＵに同一タイミングで実行させる。このことで、コマンドごとにマルチコアプロセッサ１０における複数のＣＰＵの動作が最適なものに切り替えられるため、速度が要求されるコマンドでは速度優先に、セキュリティが要求されるコマンドではセキュリティ優先にＩＣチップ１ａの動作を切り替えることが可能となる。
【００２１】
次に、図２及び図３を参照して、コマンド受信時のマルチコアプロセッサ１０の動作を説明する。図２は、コントローラ１０ｅの処理の一例を示すフローチャートである。図３は、ＣＰＵ１０ａ〜１０ｄの実行タイミングの一例を示す概念図である。なお、図３の例では、コマンドに応じた処理として、ＭＯＶ（データ移動）の処理と複数のＡＤＤ（加算）の処理とからなる一連の処理ａ〜ｄを例にとっている。
【００２２】
図２に示す処理は、外部端末２からコマンドが受信された場合に開始される。そして、コントローラ１０ｅは、受信されたコマンドが速度優先のコマンドであるか否かを、例えばコマンドテーブルを参照して判定する（ステップＳ１）。速度優先のコマンドであると判定された場合（ステップＳ１：ＹＥＳ）、ステップＳ２へ進む。一方、速度優先のコマンドでないと判定された場合（ステップＳ１：ＮＯ）、ステップＳ３へ進む。なお、ステップＳ１において、コントローラ１０ｅは、受信されたコマンドがセキュリティのコマンドであるか否かを判定するように構成してもよい。
【００２３】
ステップＳ２では、コントローラ１０ｅは、受信されたコマンドに応じた一連の処理の中の別々の（異なる）処理を複数のＣＰＵに同一タイミングで実行させる。これにより、例えば、図３（Ａ）に示すタイミング１（ｔ＝１）において、ＣＰＵ１０ａが処理ａを、ＣＰＵ１０ｂが処理ｂを、ＣＰＵ１０ｃが処理ｃを、それぞれ実行する（つまり、異なる処理が並列して実行される）ことになる。なお、この場合、ＣＰＵ１０ｄは処理を行わない。その後、図３（Ａ）に示すタイミング２（ｔ＝２）において、ＣＰＵ１０ａが処理ｄを実行することになる。つまり、処理ｄは、処理ａと処理ｂの終了後でないと実行できないため、タイミング２で実行される。このように、速度優先の場合、コマンドに応じた処理はタイミング２で終了し、セキュリティ優先よりも高速に当該処理が完了することになる。そして、コントローラ１０ｅは、ＣＰＵによる処理結果（図３（Ａ）の例では、ＣＰＵ１０ａによる処理ｄの結果）を外部端末２へ送信（応答）する（ステップＳ５）。
【００２４】
一方、ステップＳ３では、コントローラ１０ｅは、受信されたコマンドに応じた同一の処理を複数のＣＰＵに同一タイミングで実行させる。これにより、例えば、図３（Ｂ）に示すタイミング１（ｔ＝１）において、ＣＰＵ１０ａ〜１０ｄがそれぞれ処理ａを実行し（つまり、同一の処理が並列して実行される）、図３（Ｂ）に示すタイミング２（ｔ＝２）において、ＣＰＵ１０ａ〜１０ｄがそれぞれ処理ｂを実行し、図３（Ｂ）に示すタイミング３（ｔ＝３）において、ＣＰＵ１０ａ〜１０ｄがそれぞれ処理ｃを実行し、図３（Ｂ）に示すタイミング４（ｔ＝４）において、ＣＰＵ１０ａ〜１０ｄがそれぞれ処理ｄを実行することになる。
【００２５】
次いで、ステップＳ４では、コントローラ１０ｅは、複数のＣＰＵの処理結果（図３（Ｂ）の例では、ＣＰＵ１０ａ〜１０ｄによる処理ｄの結果）が一致するか否かを判定（タイミング５での検証）する。コントローラ１０ｅは、処理結果が一致すると判定した場合（ステップＳ４：ＹＥＳ）、何れかのＣＰＵによる処理結果を外部端末２へ送信（応答）する（ステップＳ５）。一方、処理結果が一致しないと判定した場合（ステップＳ４：ＮＯ）、外部端末２へエラー応答が行われるか、コントローラ１０ｅの動作が停止される（ステップＳ６）。このように、セキュリティ優先の場合、タイミング５まで時間がかかるが、複数のＣＰＵで並列に同一の処理が実行され、その結果が検証されるため、外部からの攻撃などでデータが改ざんされた場合も、高い確率で検知することが可能となる。
【００２６】
以上説明したように、上記実施形態によれば、マルチコアプロセッサ１０は、受信されたコマンドがセキュリティ優先または速度優先であるかを判定し、セキュリティ優先であると判定した場合、当該コマンドに応じた同一の処理を複数のＣＰＵに同一タイミングで実行させる一方、セキュリティ優先でないと判定した場合、当該コマンドに応じた一連の処理の中の別々の処理を複数のＣＰＵに同一タイミングで実行させるように構成したので、コマンドに応じてセキュリティ優先と速度優先とを切り替えることができ、そのため、コマンドごとに最適な動作をさせることができる。すなわち、速度が優先されるコマンドでは高速に動作し、セキュリティ性が優先されるコマンドでは高いセキュリティ性を担保することが可能となる。
【００２７】
なお、上記実施形態では、コントローラ１０ｅは、コマンドテーブルを利用してセキュリティ優先または速度優先であるかを判定するように構成したが、これ以外にも、判定フラグを利用してセキュリティ優先または速度優先であるかを判定するように構成してもよい。この場合、コントローラ１０ｅは、受信されたコマンドに応じた処理の結果に応じて、セキュリティ優先または速度優先を示す判定フラグ（例えば、判定フラグが“１”の場合、セキュリティ優先、判定フラグが“０”の場合、速度優先）を保持する。例えば、ＩＣチップ１ａの起動時には、判定フラグが速度優先を示すように設定（保持）される。そして、特定のコマンドに応じた処理が正常に実行された場合、その結果に応じて、判定フラグがセキュリティ優先を示すように設定される。一方、特定のコマンドに応じた処理が失敗した場合、その結果に応じて、判定フラグが速度優先を示すように設定される。このように、一定の条件に応じて判定フラグの値が切り替えられる。これにより、特定の状況に応じて、速度優先かセキュリティ優先かを動的に切り替えることができる。そして、コントローラ１０ｅは、次のコマンドが受信された場合に、保持されている判定フラグを参照して、当該受信されたコマンドがセキュリティ優先または速度優先であるかを判定し、判定結果に応じて、上述したように複数のＣＰＵを動作させる。
【符号の説明】
【００２８】
１  ＩＣカード
１ａ  ＩＣチップ
１０  マルチコアプロセッサ
１０ａ〜１０ｄ  ＣＰＵ
１０ｅ  コントローラ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図１】
2015146072.tif 000003
【図２】
2015146072.tif 000004
【図３】
2015146072.tif 000005