説明

ICカード用半導体装置、ICカード、及びICカード用端末装置

【課題】利用可能なメモリ領域をコスト増大を抑制して容易に増やすことができ、メモリ領域のデータに対するセキュリティ処理にも容易に対応する。
【解決手段】ICカード用半導体装置(100)は、外部との間で入出力制御を行う入出力インタフェース制御回路(120)の他に外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路(160)を有し、メモリカードのホスト機能を持つ。前記入出力インタフェース制御回路に供給されるセキュリティ処理要求には中央処理装置(150)が応答する。中央処理装置は前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与えることも可能である。前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求には転送制御回路(140)が応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はセキュリティ処理とメモリカードアクセス処理に応答するICカード用半導体装置、この半導体装置を搭載したICカード、並びに当該ICカードに接続されるICカード用端末装置に関する。
【背景技術】
【0002】
ICカードは、従来の磁気カードに置き換わるデバイスとして、交通システムや認証装置で広く利用されている。ICカードは一般に電流差分解析や物理的なタンパリングに抗する仕組みを取り入れた小型のマイクロコンピュータと、接触または非接触のインタフェースをID−0またはID−1等の形状のカードに組み込んだ構成を備える。このICカードは、電気的な認証を行うことなくカード内の情報にアクセスできない方式を取り得ることから、従来の磁気カードで問題となっていた不正な改ざんや摩耗による読み取り不良に強いという特性がある。また電気的に読み書き可能であると言う特性は、磁気カードでは非常に困難であった小型化を容易にし、携帯電話機などの小型端末内の認証デバイスとして優れている。
【0003】
現在ICカードまたはICカードチップ(ICカード用半導体装置)は、様々な装置の認証デバイスとして利用されており、ICカードまたはICカードチップへの機能並びに性能に対する要求は年々増大している。特にICカードチップ内に格納するアプリケーションの多様化と大規模化により、ICカードチップに要求される記憶容量も増大しており、これは今後とも増大する傾向にある。さらにICカードチップ内のデータ量の増大は、ICカードチップ内で処理するデータ量の増大と、端末装置とやりとりするデータ量の増大にもつながり、既存の仕組みでICカードの能力を向上させることは困難になってきている。
【0004】
このような流れの中で、ISO/IEC 7816―12に記載されているような、高速通信インタフェースを有するICカードの規格が策定されており、インタフェース部分の速度に関する課題に対しては一定の解決がなされている。しかしながら、ICカードチップ内のデータ容量の増大に対しては、ICカード内に大容量のフラッシュメモリなどを組み込むことが解決策になるが、ICカードチップのコストに比べてフラッシュメモリのコストが大きいことから、ICカード製造者にとって大きな負担となっている。
【0005】
このような課題に対する解決策の一つとして、特許文献1に見られるような、ICカードとメモリカードを、インタフェースを独立にして一枚のカードに混載するという構成が考えられる。この場合、ICカード部分とフラッシュメモリ部分を独立に製造できるため、各インタフェースに対して従来品がそのまま利用できるという効果があるものの、製品としての価格は単品としてもトータルとしても増大してしまうと言う問題がある。また回路が独立であることから、ICカードのセキュリティデータの一部を格納するという用途には使いにくい。
【0006】
【特許文献1】特開2005−322109号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のように、ICカードの記憶容量の増大に対しては、ICカードを利用する端末装置上に大容量メモリを組み込んだり、メモリカードデバイスを接続する手段が考えられるが、これらは端末装置自身が制御するデバイスであることから、ICカードの記憶容量に関する課題の解決には適さない。
【0008】
本発明の目的は、利用可能な不揮発性メモリ領域をコストの増大を抑制して容易に増やすことができ且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができるICカード用半導体装置を提供することにある。
【0009】
本発明の別の目的は、利用可能な不揮発性メモリ領域をコスト増大を抑制して容易に増やすことができ且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができるICカード並びのそのICカードに好適なICカード用端末装置を提供することにある。
【0010】
本発明の更に別の目的は、メモリカードホスト機能を備えたICカードでアクセス可能なメモリカードにも単独アクセス可能なICカード用端末装置を提供することにある。
【0011】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0013】
すなわち、ICカード用半導体装置は、外部との間で入出力制御を行う入出力インタフェース制御回路の他に外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路を有し、メモリカードのホスト機能を持つ。前記入出力インタフェース制御回路に供給されるセキュリティ処理要求には中央処理装置が応答する。中央処理装置は前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与えることも可能である。前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求には転送制御回路が応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。
【0014】
上記手段によれば、ICカード用半導体装置が利用する不揮発性メモリ領域を増設するには前記メモリカードインタフェース制御回路に接続するメモリカードを当該半導体装置の外部に追加すれば良い。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。中央処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。
【発明の効果】
【0015】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0016】
すなわち、外付けのメモリカードを追加することで、ICカード用半導体装置から直接外付けのメモリカード内のデータを扱うことが出来るようになり、利用可能な不揮発性メモリ領域をコスト増大を抑制して増やすことができ、且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができる。
【発明を実施するための最良の形態】
【0017】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0018】
〔1〕ICカード用半導体装置(105)は、所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路(120)と、メモリカードインタフェース制御回路(160)と、中央処理装置(150)と、転送制御回路(140)とを有する。メモリカードインタフェース制御回路は所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行う。中央処理装置は前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行ない、また、前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える。転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える。
【0019】
上記手段によれば、ICカード用半導体装置はメモリカードホスト機能を有するから、利用する不揮発性メモリ領域を増設するにはメモリカードを当該半導体装置の外部に追加して前記メモリカードインタフェース制御回路に接続すればよい。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。中央処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。したがって、利用可能な不揮発性メモリ領域をコスト増大を抑制して増やすことができ、且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができる。
【0020】
〔2〕項1のICカード用半導体装置は更に、前記転送制御回路と前記メモリカードインタフェース制御回路との間にバッファ(145)を有する。前記転送制御回路は前記メモリカードへの書込みデータを前記バッファに転送制御し、前記メモリカードインタフェース制御回路は前記メモリカードからのリードデータを前記バッファに転送制御する。バッファッメモリは転送制御回路と前記メモリカードインタフェース制御回路による共有バッファになるから、メモリカードに対する書込みデータ及びリードデータのデータ転送制御の容易化に資することができる。
【0021】
〔3〕項2のICカード用半導体装置は更に、前記入出力インタフェース制御回路と中央処理装置とを接続する内部バス(130)と、前記入出力インタフェース制御回路から転送制御回路を経由して前記データバッファに至る内部バス(133A,133B)とを別々に持つ。メモリカードアクセス処理とセキュリティ処理との間でデータ転送のバス競合を回避することが容易になり、データ処理の効率化に資することができる。
【0022】
〔4〕項1のICカード用半導体装置において、前記メモリカードインタフェース制御回路は、メモリカードのアクセス動作を指示するアクセスコマンドが格納される命令キュー(165)を有する。前記中央処理装置と転送制御回路は前記命令キューにアクセスコマンドを書込み可能である。前記メモリカードインタフェース制御回路は命令キューに書込まれたアクセスコマンドに従って外部のメモリカードに対するインタフェース制御を行う。
【0023】
〔5〕項4のICカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が書き込みの場合、前記転送制御回路からバッファへの転送経路のバス権を獲得し、前記バッファの空き領域に書込みデータを転送する。そして、前記メモリカードインタフェース制御回路の命令キューに書込みアクセスコマンドを転送して、前記メモリカードインタフェース制御回路にバッファの書込みデータをメモリカードに書込む制御を開始させる。命令キューへの書き込みアクセスコマンドのセットはバッファに書込みデータを転送した後に行うから、前記バッファに空き領域が無くても、先に設定されている書込みアクセスコマンド又は読み出しアクセスコマンドが実行されることになり、前記バッファに空き領域が無ければ空くまで待てばよい。
【0024】
〔6〕項4のICカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が読出しの場合、前記メモリカードインタフェース制御回路の命令キューに読出しアクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードからデータリードさせてバッファの空き領域に格納させる。そして、バッファから転送制御回路への転送経路のバス権を獲得して、バッファのリードデータを前記入出力インタフェース制御回路に供給する。
【0025】
〔7〕項6のICカード用半導体装置において、前記メモリカードインタフェース制御回路は、読出しアクセスコマンドに応答するとき、前記バッファに空き領域がない場合には前記命令キューに格納されている書込みアクセスコマンドによる書込みを先に行ってバッファに空き領域を確保する。命令キューへの読出しアクセスコマンドのセットはバッファに読出しデータが転送される前に行うから、前記バッファに空き領域が無いときそのまま待っているだけではバッファには空きが生じないので、先に設定されている書込みアクセスコマンドを先に実行させることにより、強制的に前記バッファに空き領域を確保することが可能になる。
【0026】
〔8〕項4のICカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が消去の場合、前記メモリカードインタフェース制御回路の命令キューに消去アクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードに対する消去動作を開始させる。
【0027】
〔9〕項1のICカード用半導体装置を適用したICカード(100)は、カード基板に、当該ICカード用半導体装置(105)と、前記ICカード用半導体装置の入出力インタフェース制御回路に接続する第1インタフェース端子(704,708)と、前記ICカード用半導体装置のメモリカードインタフェース制御回路に接続する第2インタフェース端子(702,703,706,707)と、を有す。例えば第1インタフェース端子及び第2インタフェース端子がICカード用端末装置にインタフェースされるとき、ICカード用端末装置に装着された増設用のメモリカードをICカード用端末装置内部で第2インタフェース端子に接続すれば良い。第2インタフェース端子が直接メモリカードを着脱可能であれば、ICカードに直接メモリカードを装着して増設することができる。メモリカードが単一の半導体チップで形成された半導体デバイスである場合には当該デバイスをICカードに予め組み込んでおくことも可能である。
【0028】
〔10〕項9のICカードが利用される一つのICカード用端末装置(180)は、当該ICカードにおける前記第1インタフェース端子のうちICカードの外部に露出した前記第1インタフェース端子に接続される第1端末インタフェース端子(182)と、項9のICカードにおける前記第2インタフェース端子のうちICカードの外部に露出した前記第2インタフェース端子に接続される第2端末インタフェース端子(181A)とを有する。更に、メモリカードが接続される第3端末インタフェース端子(181B)と、前記第2端末インタフェース端子を前記第3端末インタフェース端子に接続するバイパス経路(183)と、を有する。これにより、前記ICカードに好適なICカード用端末装置を実現することができる。
【0029】
〔11〕別の観点によるICカード用半導体装置(105)は、所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路(120)と、メモリカードインタフェース制御回路(160)と、第1データ処理装置(150)と、第2データ処理回路(140)とを有する。メモリカードインタフェース制御回路は所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行う。第1データ処理装置は前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行なう。第2データ処理回路は前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。このとき、前記メモリカードインタフェース制御回路は、メモリカードに動作電源を供給するための電源端子に入力端子が接続された第1電圧検出回路(210)を有し、前記第1電圧検出回路により外部から電圧が供給されていないときにメモリカードに対するアクセス動作を開始する。
【0030】
上記手段によれば、ICカード用半導体装置はメモリカードホスト機能を有するので、利用する不揮発性メモリ領域を増設するにはメモリカードを当該半導体装置の外部に追加して前記メモリカードインタフェース制御回路に接続すればよい。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。また、第1電圧検出回路を持つことによりメモリカードホスト機能を有するICカードからのアクセスが端末装置からのアクセスと競合することをICカード用半導体装置自らで回避可能になる。
【0031】
〔12〕項11のICカード用半導体装置において前記第1データ処理装置は前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能である。これにより、第1データ処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。
【0032】
〔13〕項11のICカード用半導体装置を適用したICカード(100)は、カード基板に、当該ICカード用半導体装置と、前記ICカード用半導体装置の入出力インタフェース制御回路に接続する第1インタフェース端子と、前記ICカード用半導体装置のメモリカードインタフェース制御回路に接続する第2インタフェース端子と、を有する。例えば第1インタフェース端子及び第2インタフェース端子がICカード用端末装置にインタフェースされるとき、ICカード用端末装置に装着された増設用のメモリカードをICカード用端末装置内部で第2インタフェース端子に接続すれば良い。
【0033】
〔14〕項13のICカードが利用される一つのICカード用端末装置(180A)は、当該ICカードにおける前記第1インタフェース端子のうちICカードの外部に露出した第1インタフェース端子に接続される第1端末インタフェース端子(182)と、前記ICカードにおける前記第2インタフェース端子のうちICカードの外部に露出した第2インタフェース端子に接続される第2端末インタフェース端子(181A)とを有する。更に、メモリカードが接続される第3端末インタフェース端子(181B)と、前記ICカードからメモリカードに動作電源を供給するための前記第2端末インタフェース端子のうちの電源端子に入力端子が接続された第2電圧検出回路(220)とを有し、前記第2電圧検出回路により外部から電圧が供給されていないときに第3端末インタフェース端子を介してメモリカードに対するアクセス動作を開始する。これにより、ICカード用端末装置は第2電圧検出回路を持つことによりメモリカードホスト機能を有するICカードによるメモリカードのアクセスとの競合をICカード用端末装置自らで回避可能になる。
【0034】
2.実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。なお、発明を実施するための最良の形態を説明するための全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【0035】
図1には本発明に係るICカード(ICCRD)100の一例が示される。ICカード100は端末装置(TRML)180とインタフェース可能にされると共に、端末装置180に接続されたメモリカード190を当該端末装置180経由でアクセス可能にされる。ICカード100は外部インタフェース端子を有するカード基板にICカードチップ(ICCRDCHP)105を搭載して構成される。ICカードチップ105は例えば相補型MOS集積回路製造技術等にとって単結晶シリコン等の半導体基板に形成され、マイクロコンピュータ若しくはデータプロセッサを構成する。外部インタフェース端子は接触端子、或いは非接触インタフェースのためのアンテナ端子とされる。
【0036】
ICカードチップ105は、外部インタフェース端子を介して端末装置180にインタフェースされる入出力インタフェース制御回路である端末インタフェース制御回路(TRMIFCNT)120と、前記メモリカード190に対してカードホストと同様のインタフェース制御を行うメモリカード制御回路(MCRDCNT)160を有する。端末インタフェース制御回路120は入出力インタフェース127を介して端末装置(TRML)180の外部インタフェース端子182とインタフェース可能にされる。メモリカード制御回路160はメモリカードインタフェース167Aを介して端末装置180のインタフェース端子181Aに結合される。メモリカード190はメモリカードインタフェース167Bを介して端末装置180のインタフェース端子181Bに結合される。インタフェース端子181Aと181Bとは端末装置180の内部で対応端子がバイパス経路もしくはスルー経路を構成するバス183によって接続可能にされる。
【0037】
ICカードチップ105の全体的な制御を行うために、中央処理装置(CPU)150と共に、バッファメモリ(MEM)155等が設けられ、それらは内部バス130を介して端末インタフェース制御回路120とメモリカード制御回路160に接続される。中央処理装置150は例えばプロセッサコとしての構成を有する。中央処理装置150は、暗号化・復号や認証などのセキュリティ処理等を行ない、必要に応じてメモリカードを各種データ処理のための補助記憶装置として用いる。また、メモリカード190は端末装置180にとっても画像データ等の大量のストリームデータを格納するためのストレージとして利用可能にされる。端末装置180からの要求に答えてメモリカード190を利用可能に制御するとき、CPU150の負担を軽減するために、転送制御回路(TRCNT)140、セレクタ132及びバッファ(BUFF)145を有する。端末インタフェース制御回路120と転送制御回路140はバス133Aで接続され、転送制御回路140とバス130はセレクタ141を介して選択的にバス141に接続され、バス141にバッファ145が接続される。
【0038】
端末インタフェース制御回路120と端末装置180の入出力インタフェース270はUSB(universal serial bus)インタフェース等の適宜のインタフェースであってよい。例えば端末インタフェース制御回路120は端末装置のUSBマス・ストレージ・クラスのドライバソフトを介するアクセス(単にMSCアクセス)要求を受け付けると共に、セキュリティ処理用のICカードコマンドを受け付ける。端末インタフェース制御回路120は、MSCアクセス要求を伴うデータストレージ処理のための命令及びデータ(単にMSCデータストリームともも称する)が入力されるとこれをMSCバッファ(MSCBUF)120Aに格納し、ICコマンドを伴うセキュリティ処理のための命令及びデータ(単にICCデータストリームとも称する)が供給されるとこれをICCバッファ(ICCBUF)120Bに格納する。端末インタフェース制御回路120は、MSCアクセス要求がリード要求であるときは、これに応答するリードデータがMSCバッファ120Aに内部転送されるのを待って端末装置180に出力し、セキュリティ処理がリード要求を伴うときにはこれに応答するリードデータがICCバッファ120Bに内部転送されるのを待って端末装置180に出力する。
【0039】
端末インタフェース制御回路120は、MSCデータストリームをMSCBUF120Aに格納すると、TRCNT140に転送要求を発行する。TRCNT140は、MSCアクセス要求がMCRD190に対する書込み、読出し、又は消去の要求に応じて、バス141の利用権獲得、BUFF145のリード/ライト制御、及びMCRDCNT160に対する動作制御を行う。書き込みの場合にTRCNT140は、バス141の利用権を獲得してバススイッチ132をTRCNT140側に切換え、BUFF145の空き領域に書込みデータを転送し、MCRDCNT160の命令キュー(IQUE)165に書込みコマンド(書込み命令)を転送し、制御レジスタ(CREG)163を操作する。命令キュー165と制御レジスタ163に対する操作はバス134を経由して行われる。これによってMCRDCNT160はBUFF145に格納されている書込みデータをMCRD190に書込むためのメモリカード190の書込み制御を行う。読出しの場合にTRCNT140は、MCRDCNT160の命令キュー(IQUE)165にバス134経由で読出しコマンド(読出し命令)を転送し、制御レジスタ(CREG)163を操作する。そして、MCRDCNT160からのリードデータの転送要求を待ってバス141の利用権を獲得してバススイッチ132をTRCNT140側に切換え、MCRDCNT160によってBUFF145の空き領域に転送されたリードデータをMSCBUF120Aに転送する制御を行う。消去の場合にTRCNT140は、MCRDCNT160の命令キュー(IQUE)165にバス134経由で消去コマンド(消去命令)を転送し、制御レジスタ(CREG)163を操作して、MCRDCNT160に消去コマンドに従ったアドレス領域のデータをMCRD190から削除させる。TRCNT140は端末装置から受取ったMSCデータストリームの処理を行なっていないときはその状態をCPU150に通知する。
【0040】
端末インタフェース制御回路120は、ICCデータストリームをICCCBUF120Bに格納すると、CPU150に割り込みを要求する。CPU150はその割込み要求に応答してICCBUF120BのICCデータストリームを読み込んでICカードコマンドで所持されるセキュリティ処理を実行する。セキュリティ処理に際してMCRD190のアクセスが必要な場合は、TRCNT140がMSCデータストリームの処理を行なっていないこと条件に、MCDCNT163にアクセスコマンドを発行する。ICカードコナンドによるセキュリティ処理にリード要求を伴うときCPU150はこれに応答するリードデータをICCバッファ120Bに内部転送する。
【0041】
図1のシステムを更に詳述する。前記端末180は携帯電話やPC、自動現金預け払い機、ICカードリーダ・ライタ、ネットワーク端末等の装置であるが、入出力のためのインタフェース(IF)と演算処理装置を有する装置であれば、この例に限定されるものではない。このようなIFとしては、USB(登録商標)、MMC(登録商標)IF、 Bluetooth(登録商標)、WiMAX(登録商標)、Ethernet(登録商標)、ATA IF、ISO 14443に基づいた非接触IF等が該当する。ICカード100はISO7810で規定されているID−1やID−0の形状のICカードであるが、USBトークンやメモリカードの形状であってもよく、認証処理などのセキュリティ処理を安全に実施可能なデバイスであればこの限りではない。またメモリカード190は、SD(Secure Digitalの略である)カード、MMC(MultiMediaCardの略である)、メモリースティック(登録商標)、コンパクトフラッシュ(登録商標)等のメモリカードに限らず、USBメモリやHDD等の装置、コントローラ付きNANDフラッシュ(登録商標)等であっても良く、データストレージ用のデバイスであればこの限りではない。これらの場合、メモリカード制御回路160は、対応するデバイスに適した制御回路になるが、本発明は接続するデータストレージ用のデバイスの種類に依らないため、ここでは代表してMMCで実現した場合を記載する。入出力インタフェース127及び端末インタフェース制御回路167は、ISO7816で定められたICカードの端子にアサインされていても良いし、別の端子を利用して接続されてもよい。例えば、入出力インタフェース127としてICカード端子C1〜C8の規格を採用する場合には、C1:VCC、C4: (D+)、C5: GND、C8: (D-)を利用してUSB通信を行い、C1: VCC、C2: CMD、C3:CLK、C5:GND、C6:VCC2、C7:DATAを利用してMMC通信を行っても良い。ここでC6はICカード100からメモリカード190へ供給する電源のための端子に利用する。この構成のICカード100が特開2005−322109の構成と異なるのは、メモリカード190がICカードチップ105によりドライブされる点で、その結果、メモリカードへクロックやコマンド、データ、電力を供給するために信号の入出力が逆になる点である。要するに、それらはICカードチップ105からメモリカード190に供給される。特開2005−322109と同様に、ICカード規格の端子とは別の端子を用いてその機能を実現しても良い。ここでメモリカード190がコンパクトフラッシュなどのパラレル転送方式のデバイスで、ICカード100のインタフェースとして割り当てるには数が多すぎる場合、ICカードとは別の端子を実装し、この端子を用いてアクセスすることとしてもよい。上記のICカード100のインタフェースへの割り当ては、ICカードへ適用した際の、互換性を重視した実装のためのものであり、別の端子を設けて運用が可能ならばこの限りではなく、前述の端子への割り当てもこれに限定されるものではない。
【0042】
入出力インタフェース127を介して送られてきた前記ICCデータストリームに含まれる命令及びデータは、内部バス130を介してCPU150及びメモリ155に送られて処理される。ここでCPU150は、演算処理装置の他に、剰余除算などの特定の演算を高速に処理するためのアクセラレータ、更には、マスクROM又はEEPROM等のプログラムやデータを格納するメモリ、SRAM等のワークメモリ等を含んだものを指す。またCPU150が大容量のデータを格納したい場合には、メモリカード制御回路160を介してメモリカード190にデータを格納することができる。このとき、メモリカード190へ格納するデータは格納したいデータ全体の一部だけでも良く、残りのデータをCPU150が有するEEPROMに格納しても良い。またデータを格納する際に、CPU150またはメモリカード制御回路160により暗号化して格納しても良い。その際に、格納するデータのハッシュ値をCPU150のEEPROMに格納し、読出し時にこのハッシュ値と比較することで改ざんの検知を行っても良い。また、本来書き込みたいデータとは別に、書き込みたいデータを隠蔽するためのデータを書き込んでも良く、アドレス変換テーブルやアドレス変換式を用いることで、データの格納場所を分散させても良い。例えばデータを暗号化して格納する場合、暗号化されたデータは元データとの相関がわかりにくい乱数的性質を有するデータに変換される。したがって任意のタイミングで乱数値を書き込むことで、攻撃者に対してどれが正しいデータかをわかりにくくさせる効果がある。
【0043】
メモリカード190はメモリカード制御回路160により電力及び転送クロックを供給され、この転送クロックに基づき命令やデータを転送すればよい。ただし、データ転送が非同期なメモリカードインタフェース167A,167Bで接続されている場合は、転送クロックはなくても良い。図1ではメモリカードインタフェース167A,167Bは一度端末装置180を経由してメモリカード190に接続されていることから、メモリカード190用の電源は端末から供給するという方式を採ることも可能である。その場合には、メモリカード190への電力を端末装置180側で制御することになることから、データを転送したい場合に、何らかの手段を用いて端末装置180にメモリカード制御回路160からデータ転送開始を通知するか、常にメモリカード190の電源を入れておく必要がある。データの通信開始を端末装置180に知らせる手段としては、メモリカード制御回路160からのクロック信号線を利用する方法や、命令又はデータ転送用の信号線を利用して、データ転送が必要ないときはプルダウンしておき、データ転送が必要になった際にプルアップしてデータ転送開始を通知する仕組みであっても良い。また、メモリカード190をICカード100からのデータを格納する目的の他に、端末装置180のデータを格納する目的でも利用したい場合がある。この時、入出力インタフェース167の電力供給線またはクロック信号線を利用することで制御を行うことも可能である。
【0044】
図2には別の端末装置180Aが例示される。端末装置180Aはメモリカード190に対する直接アクセス機能を有し、アクセス競合回避の構成を備えることが図1の端末装置180と相違する点である。即ち、メモリカード制御回路160に信号レベル検出回路(SIGDTC)210を配置し、端末装置180Aに信号レベル検出回路(SIGDTC)220を配置し、信号レベル検出回路210と220との間をメモリカードインタフェース230で接続し、信号レベル検出回路220とメモリカード190間をメモリカードインタフェース235で接続した例が示される。メモリカードインタフェース230は図1の167Aに対応され、メモリカードインタフェース230は図1の167Bに対応される。240は端末装置1809がメモリカード190をアクセスするときの電力供給方向を示し、241はメモリカード制御回路160がメモリカード190をアクセスするときの電力供給方向を示す。
【0045】
図3は図2の構成に基づいてメモリカード190を端末装置180とICカード100のどちらが制御するかを決定するためのフローチャートである。メモリカード190を利用しない場合、消費電力削減のために電源をオフにし、クロックを停止しているとする。ここでICカード100からメモリカード190へのアクセス要求が発生した場合(310)、メモリカード制御回路160は信号レベル検出回路210を用いて、メモリカードインタフェース230供給される電力レベルを測定する(320)。自分が電力を供給していない状態で、メモリカードインタフェース230からの電力が検出される場合、それは端末装置180が電力を供給していることから端末装置180がメモリカード190へアクセス中であることを意味する。このときICカード100はその電力供給が停止されるまで待って再び判断を行う(330)。信号レベル検出回路210は、電力が検出されない場合、メモリカード190への電力供給を開始し(340)、メモリカード190へアクセスを行う。逆に端末装置180がメモリカード190へのアクセス要求を発行する場合(350)、端末装置180は信号レベル検出回路220を用いて、メモリカードインタフェース230からの電力供給レベルを測定する(360)。自分が電力を供給していない状態で、メモリカードインタフェース230からの電力が検出される場合、それはICカード100が電力を供給していることから、ICカード100がメモリカード190へアクセス中であることを意味する。このとき端末装置180はICカード100からの電力供給が停止するまで待って再び判断を行う(370)。電力供給が検出されない場合、端末装置180はメモリカード190への電力供給を開始し(380)、メモリカード190へアクセスを行う。ステップ330またはステップ370において、メモリカード190の準備が出来ていない場合、ICカード100または端末装置180に内蔵のメモリを利用して、書き込みデータのキャッシュを行い、書き込みが完了したことにしても良い。このときメモリが揮発メモリならば電源遮断の考慮と書き込みサイズに関する注意が必要であり、不揮発メモリの場合は、書き込みサイズに関する注意が必要になる。メモリが揮発性で、実際の書き込みが終了するまでに電源が切られてしまうと、書き込むはずのデータの保証が出来ない。またキャッシュに用意したデータサイズを超えるデータの書き込み要求が発生した場合には、キャッシュに頼ることはできず、バスが解放されるまで待つ必要が生じる。
【0046】
このように端末180とICカード100の双方から制御する場合、排他制御の仕組みが複雑になる。図1に示す構成のように、端末装置180からのメモリカード190へのアクセス要求であっても、前記MSCデータストリームを用いる場合に代表されるように、前記ICカード100を経由して書き込む構成にすれば、その制御を簡略化できるという効果がある。以下、その場合の制御形態について詳細に説明する。
【0047】
端末インタフェース制御回路120がUSBのような複数のデータストリームを制御できるインタフェースである場合、認証や鍵交換などのセキュリティ処理のための前記ICCデータストリームのようなデータストリームを処理する経路と、コンテンツやファイルなどのデータ転送処理のための前記MSCデータストリームのようなデータストリームを処理する経路とを分けた。これにより、効率的な処理が可能になる。例えば、図1に基づいて説明したように、認証や鍵交換などのセキュリティ処理のためのデータストリーム用のエンドポイントとしてのICCBUF120Bにデータが格納された場合、そのデータはCPU150により読み出され処理される。一方、コンテンツやファイルなどのデータ転送処理のためのデータストリーム用のエンドポイントとしてのMSCBUF120Aにデータが格納された場合、CPU150ではなく専用の制御回路を用い、CPU150のリソースをほとんど消費することなく転送する処理を行なう。そのために、例えば前記転送制御回路140、セレクタ132、バッファ145、命令キュー165、及び制御レジスタ163に代表される制御モジュールが設けられている。
【0048】
図6には命令キュー165と制御レジスタ163の詳細が例示される。命令キュー165は、命令コード(INST)610をキューイングするためのバッファであり、要求種別612、要求元614、転送サイズ616、バッファアドレス618、パラメータ620を有してもよい。要求種別612はリード(読出し)、ライト(書込み)、イレーズ(消去)等のメモリカード190へ転送する命令の種別を格納し、SDカードやMMCにおけるコマンドコードを格納しても良い。要求元614には処理要求を発行したのが端末装置180なのかCPU150なのかに関する情報を格納する。転送サイズは、実際に転送するデータのサイズを格納し、バッファアドレス618はバッファ145上のどこにデータが格納されるかを表す。パラメータ620は付加情報で、メモリカード190からデータを呼び出してくる番地やオプション番号、セキュリティパラメータなどを格納する。制御レジスタ630は、キューポインタ630、ベースポインタ632、空きバッファレジスタ634、転送要求レジスタ636、ライトロックレジスタ638、バスイネーブルレジスタ640、カードディスエブルレジスタ642、処理終了レジスタ644を有しても良い。キューポインタ630とベースポインタ632は命令コードキュー165上の番地を表す。通常、メモリカード制御回路160はベースポインタ632から検索を開始するが、リード処理時にリードのための空きバッファがない場合、ポインタを進めてキューに溜まったライト処理を実行していく。この処理によりバッファに空きが出来た場合、メモリカード制御回路160はベースポインタ632のリード処理を実行する。転送制御回路140又はCPU150からの命令コード610をセットしたい場合、命令コードキュー165のキューポインタ630の位置に格納し、ポインタを一つ進める。空きバッファレジスタ634は、バッファ145の空き番地を管理するためのレジスタである。通常、メモリカード190へのリードライトは512バイトなどの規程のデータサイズをベースに行われるため、レジスタが管理するバッファも、このサイズで管理した方が効率的である。例えば、512バイト単位で管理する場合、32ビットのレジスタを用意すれば16KB迄のバッファを管理可能となる。転送要求レジスタ636はリード要求時に転送回路が入出力制御回路120へ転送するデータが、バッファ145のどこに格納されているかを表す。この情報は、空きバッファレジスタ634と同じ要領で転送したいデータが格納されている領域に“1”をセットし、それ以外の領域に“0”をセットする事で表しても良いし、絶対アドレスや、転送回路140との間で有効な相対アドレス、又は固定アドレスを格納することで通知しても良い。転送要求636は、端末装置180からのリード要求とCPU150からのリード要求を処理するために、2つ以上用意されていても良い。またこのような方式を採る代りにリード要求時のバッファアドレス618にこの情報を格納するようにしても良い。ライトロックレジスタ638はリード要求時に空きバッファがないとき、追加のライト要求のセットを禁止するためのレジスタである。バスイネーブルレジスタ640は、バッファ145へのアクセスを、転送回路140とバス130との間で切替えるためのレジスタである。カードディスエブルレジスタ642は、カードが利用できないことを転送回路140またはCPU150に通知するためのレジスタである。処理終了レジスタ644は命令コードキュー165にセットされた処理が完了したことを通知するためのレジスタである。処理終了レジスタ644を用いる代りに命令コードの一部に処理終了の通知を格納する領域を設けてもよい。この場合、命令キュー163にキューイングされている命令を消去するのは転送制御回路140又はCPU150である。メモリカード制御回路160のデータ制御部は、要求元以外がキューを消そうとしたときに、要求元614の情報を用いてアクセス制限を行っても良い。また、メンテナンスを可能とするために、CPU150からは転送元が端末180の時の要求を削除できるようにしても良い。転送制御回路140はキューが消去された場合、リード要求時は処理がリセットされたとして扱っても良い。
【0049】
図4には転送制御回路140の動作フローが例示される。転送制御回路140は、端末インタフェース制御回路120からの転送要求を割り込みの発生(又はポーリング)によって確認を行う(410)。転送要求がある場合、まずそれが書き込み要求かどうかを判断する(412)。書き込み要求である場合、転送制御回路140は、バッファ145へアクセスが可能かどうかを、バスイネーブルレジスタ640を読み出すことで確認する(432)。バスイネーブルレジスタ640がセットされていないならば、バスイネーブルレジスタ640をセットし、セレクタ132を転送制御回路140からバッファ145へアクセス可能なように設定を行う(436)。バスイネーブルレジスタ640が既にセットされているならば、リセットされるまで待ち(434)、再び確認を行う。ただし、CPU150がメモリカード190のとのバスが占有されており、端末との取り決めによる一定期間、バスが解放されない状態が続いた場合、エラーとして処理を中断しても良い。セレクタ132を切換えてデータ転送可能な状態にした後、転送制御回路140はバッファ145に空きがあるかどうかを空きバッファレジスタ634を用いて確認する(438)。空きがない場合はバッファ145に空きが出来るまで待機し(440)、再びバッファ145に空きがあるかどうかを確認する。通常、端末装置180から直接メモリカード190に対して要求が出される場合、それらは同時に実行されない。すなわち、バッファ145に空きがない状態というのは、CPU150からのメモリアクセスが存在している場合を意味する。従って時間が経てばバッファ145の空きが生じることになる。ただし、空きが生じないケースとして、メモリカード190に不具合が生じた場合が考えられる。メモリカード制御回路160は、メモリカード190に不具合が発生したことを検知した場合、カードディスエブルレジスタ642をセットし、転送回路140にエラーがあることを通知しても良い。カードディスエブルレジスタ642はメモリカード190へのアクセス要求が発生し、その時メモリカード190の初期化が出来なかった場合や、転送エラー後の再初期化処理で失敗した場合などにセットされる。バッファ145に空きがある場合、転送制御回路140は書き込み要求に基づいた命令を命令キュー165にセットし、かつ空きバッファレジスタ634をセットする(442)。その後、端末インタフェース制御回路内120内のデータをバッファ145に格納し(444)、バスイネーブルレジスタ640をリセットすることでバス利用権を解放する(446)。転送制御回路140は処理終了レジスタ644を利用して書き込みが完了したかどうかを判断する(448)。また転送回路140は命令キュー165内の当該命令が削除された事をもって処理の終了を判断しても良い。書き込みが終了したことを確かめると、そのことを端末インタフェース制御回路120に通知する。
【0050】
次に図4において読出し要求に応答する場合(414)について説明する。読出し要求が合った場合、転送制御回路140は、読出し要求に基づいた命令を、命令キュー165にセットする(462)。セットされた命令に従ってメモリカード制御回路160がメモリカード190に対して読出しの処理を行う。この例では、メモリカード190からの読出しデータを一時的に蓄えるバッファ145の確保はメモリカード制御回路160が行っているが、転送制御回路140又はCPU150が行っても良い。メモリカード制御回路160が行う場合、転送制御回路140は、メモリカードからの読出しが終わるまで待つことになる。転送制御回路140は転送要求レジスタ636と処理終了レジスタ644を利用して読出しが完了したかどうかを確かめる。転送要求レジスタ636にはバッファ145のアドレスが記載されていたり、バッファを複数の領域に分けてその領域のデータの有無を示すビットマップ表示されていてもよい。このアドレス情報が、一意であったり、相対的なアドレスによる通知から計算して求める場合等、他の方式で実現されていてもよい。また端末装置180との転送用と、CPU150との転送用に、転送要求レジスタ636と処理終了レジスタ644は二組あっても良い。またこれらのレジスタを複数組持つ代りに、命令コード610を拡張し、データが格納されたアドレスをBuffer Addr. 618に、終了通知を追加のデータとしてもたせ、転送回路140は自分が書き込んだ命令コード160を確認することにしてもよい。この場合、転送後に命令キュー165内の当該命令を削除するのは転送制御回路140の役割になる。転送要求があった場合、転送制御回路140は、バッファ145へのアクセスが可能かどうかをバスイネーブルレジスタ640を利用して確かめる(466)。バスイネーブルレジスタ640が既にセットされている場合、バスが解放されるまで待つ(468)。バスが利用可能になった場合、バスイネーブルレジスタ640をセットすることでバス利用権を設定し、セレクタ132で転送制御回路140からバッファ145がアクセス可能なように切換える(470)。その後、データを端末インタフェース制御回路120に転送し(472)、バスイネーブルレジスタ640をリセットすることでバス利用権を解放し、命令キュー165内の当該命令を削除し、利用中だった空きバッファレジスタ634をクリアする(474)。これらの処理が終わると、入出力制御回路120に完了を通知する(476)。
【0051】
処理が書き込み要求でも読出し要求でもない場合、削除要求かどうかを判断する(416)。転送制御回路140は削除要求の場合、削除要求に基づいた命令を命令キュー165にセットする(492)。その命令に従ってメモリカード制御回路160がメモリカード190に対して削除の処理を行う。セットした後、転送制御回路140は削除処理が完了したかどうかを処理終了レジスタ644を利用して調べる(494)。処理が終了した場合、入出力制御回路120へ完了を通知する(496)。
【0052】
要求がこれのどれにも当てはまらない場合、CPU150に通知して処理をCPU150に任せてもよい(418)。このような処理としては、メモリカード190のロックやIDの読出し、プロテクトの設定、セキュリティ処理などが考えられるが、これらの処理を転送制御回路140で処理できるようにしても良い。
【0053】
図5にはメモリカード制御回路160の動作フローが例示される。メモリカード制御回路160は、ベースポインタ632の位置にある命令コードキュー165の内容を参照し、命令コード610が存在するかどうかを確認する(510)。キューポインタ630とベースポインタ632の位置が等しい場合は、キューが溜まっていない状態なので、積まれていないと判断しても良い。積まれている場合、命令がリード系の要求であるかを判断する(512)。リード系の要求とは、メモリカード190から引き出してきた何らかの情報を、バッファ145に格納する必要がある要求を指す。リード系の要求である場合は、空きバッファレジスタ634に転送サイズ616で指定された空き容量があるかどうかを確認する(514)。空き容量がない場合、追加のライト要求を発生させないためにライトロックレジスタ638をセットする(516)。ライト処理をしている間に他のライト系命令が挿入されることで大きな遅延が発生する危険がなかったり、遅延が問題にならない場合は、ライトロック638を利用した処理を行わなくても良い。次にベースポインタ632の次の命令を調べ(530)、ライト系命令が積まれているかどうかを確認する(532)。ここでライト系要求が積まれていないならば再びポインタを進めてライト系要求を確認する。また命令がリード系命令であった場合も再びポインタを進めても良い。ここで説明する方式を用いる場合、リード系命令は実行の直前までバッファ145を要求しないため、バッファ145に空きがないのは、ライト系命令が積まれているか、CPU150又は転送制御回路140へ転送中のデータがあるためであると判断できる。データが転送中の場合、時間が経てば処理が完了してバッファ145の空きが生じるが、ライト系命令は処理を進めないと空きバッファが生じないため、ライト処理を優先して実施することで空き容量を確保することができる。端末装置180からの転送要求とCPU150からの転送要求により、バッファ145のシェアが必要になる場合、お互いに相手の通信量を見積もることは難しい。しかしながら、そのことを想定してバッファ145に空きを設けると、片方の通信がないときでもバッファ145の一部が空いたままとなるため効率が悪くなる。この方法を用いると、非常に単純な方式ながらも効率的にスケジューリングが行えると言う効果がある。このループはキューポインタ630に達するまで行い、その結果、ライト系要求がない場合は(534)、再び空きバッファ634の状態を確認する。ライト系要求がある場合は、ライト処理を実施する(540)。ここでライト処理は、処理552,554,556を併せたものを指す。手順514で空きバッファレジスタ634に空きがあることがわかった場合、空きバッファレジスタ634をセットし、ライトロックレジスタ638をセットしているなら、リセットする(518)。次にメモリカード190用のコマンドの生成を行う(520)。SDカードやMMC等のコマンドは、コマンド番号とパラメータから構成され、これは要求種別612とパラメータ620を利用することで生成可能である。コマンドを生成すると、それを用いてメモリカード190からのデータの読出しを開始する(522)。読出しが終了すると(524)、転送要求に利用中のバッファ145の場所をバッファアドレス618または転送要求634にセットし、処理終了レジスタ644をセットすることで転送終了を通知する(526)。
【0054】
手順512でリード系要求でない場合、ライト系要求かどうかを判断する(550)。ライト系要求とは、バッファ145におかれた何らかの値を、メモリカード190に転送する処理が該当する。ライト系要求である場合、メモリカード190用のコマンドを手順520と同様に生成し(552)、メモリカード190へのライト処理を開始する(554)。この後、命令キュー165内の当該命令を削除し、ベースポインタを進め、利用していた空きバッファレジスタ634を解放し、ライト終了を通知する(556)。このとき転送回路140は転送要求レジスタ636を確認することで処理の終了を受け取っても良いし、命令キュー165内の当該命令が削除された事をもって処理の終了を判断しても良い。
【0055】
手順550で命令がライト系でもない場合、データ転送を伴わない命令と解釈して処理を行う。メモリカード制御回路160はコマンドを手順520と同様に生成し(570)、メモリカード190に対する処理を開始する(572)。この後、現在のキューを削除し、ベースポインタを進め、処理終了を通知する(574)。
【0056】
以上のような仕組みを採ることで、ICカード100は、メモリカード190のホストとして動作し、端末からはメモリカードリーダライタのように動作し、ICカード100からは拡張データ領域であるかのように動作させることが可能となる。
【0057】
上記仕組みを持つICカード100は、従来のICカードの端末装置と互換性を保った状態で動作可能である。
【0058】
図7は既存のシステムとの互換性を考えた構成である。UARTCNT740はUART(Universal Asynchronous Receiver/Transmitter)ようなシリアルインタフェース制御回路、OTHCNTはその他の制御回路であり、例えば内部バス130に接続された回路モジュールである。記号710は信号伝播方向が矢印で示された一方向であることを意味する。CLKDTC720はクロック検出回路、LVLDTC730は電位検出回路である。
【0059】
端末装置でUART(Universal Asynchronous Receiver/Transmitter)が有効である場合、端末装置180は電源投入後、端子C3にクロック、端子C2にリセット信号を入力するが、メモリカード制御回路160がメモリカード190の電源をオンにしていない状態でこれらの通信が発生した場合、ICカードチップ100はその状態をクロック検出回路720等で検知できる。このため、ICカード100は、UARTを利用した通常の動作が期待されていることを認識できてもよい。例えば、端子C3:703からクロックの入力があった場合、クロック検出回路(CLKDTC)720を利用することでUART制御回路(UARTCNT)740を動作させるように回路を切替えることが出来る。また、外部より端子C6に電気的なアクセスがあった場合、ICカード100は端子C6が別の目的で利用されていることを検出できるため、メモリカード制御回路160の動作をオフにし、別の機能を割り当ててもよい。例えば、メモリカード制御回路160が動作されるよりも前に、端子C6:706からの電位が電位検出回路(LVLDTC)730により検出された場合、端子C6:706を利用する他の制御回路(OTHCNT)750を利用するように回路を切替える事ができる。
【0060】
図1に代表される上述の構成を採用することにより、端末装置180はそのユーザにより、ICカード100とメモリカードスロットがついた端末装置であるかのように利用できる。例えば端末装置180を携帯電話機とする。携帯電話器はSIM(登録商標)カードスロットと、メモリカードスロットを持つが、従来の機種ではこの両者に強い相関はなかった。しかし、本発明を適用することにより、ユーザからは全く同じ構成にみえながらも、メモリカード190へ格納するデータは端末装置のソフトウエアの脆弱性に関わりなく暗号化され、またアドレススクランブルを施して格納可能であり、またICカード100内で生成する乱数を利用してメモリカード190をロックすることも可能となる。またICカード100がメモリカード190にデータを格納したい場合も、可能な限り安全な方法でメモリカード190へデータを格納することが可能である。例えば書き込んだデータは乱数と共に暗号化しておき、そのハッシュ値をICカード100で保持しておけば、改ざんや盗聴が非常に困難な仕組みを採ることが出来る。またメモリカード190側にICカード100とセキュアセッションを構築できる機能を設ければ、メモリカードインタフェース167A,167B上に流れるデータを隠蔽することもできる。
【0061】
図8にはICカードチップ105を適用した第2の例が示される。前記メモリカードのホスト機能を備えたICカードチップ105はUSBトークン(USNTKN)810等のUSBインタフェース820を備えた装置に組み込むことができる。このとき、USBトークン810はメモリカードスロット830を持つ。このメモリカードスロット830の端子をICカードチップ105のメモリカード制御回路160に接続することで、メモリカードスロット付きUSBトークンを実現することができる。この構成を採用することにより、端末装置側の部品数を削減できるという効果がある。また、上記同様に、メモリカード190へ書き込むデータをICカードチップ105が暗号化やアドレススクランブル、更には予測困難なデータをパスワードとして利用することによるカードロックを行うことができることから、通常のICカードリーダ・ライタのような端末装置を利用して直接メモリカードを利用する場合に比べて安全性を向上させることができるという効果がある。尚、一般的に、トークンは、ICカードと同様に証明書等を格納して持ち運びのできる認証デバイスであるが、ICカードがリーダを必要とするのに対し、トークンではリーダを必要とせず、標準のUSBポート等に接続できたりするものである。
【0062】
図9にはICカードチップ105を適用した第3の例が示される。前記ICカードチップ105は、携帯電話会社が発行する契約者情報を記録したICカードであるSIM(Subscriber Identity Module)カード910に適用される。SIMカード910の基板上にICカードチップ105が搭載され、メモリカード制御回路160からの信号を、同基板上に配置したフラッシュメモリカードインタフェース回路(FMCNT)921とフラッシュメモリ(FMEM)922を有する単体チップとしてのフラッシュメモリカードチップ(FMCRDCHP)920へ接続することで、大容量フラッシュメモリ付きSIMカードを実現することができる。フラッシュメモリカードインタフェース回路921はメモリカードコントローラ160から供給されるコマンドを受けてフラッシュメモリ922をアクセスするためのフラッシュメモリコマンドをフラッシュメモリ922に発行して制御するフラッシュメモリコントローラとカードホストインタフェース機能を備える。この構成を採用することで、通常は大容量フラッシュメモリを外付けで搭載する場合、単価の安いICチップに複雑で大規模なフラッシュメモリコントローラを搭載する必要があることから、ICカードチップ105のコストに大きく影響すると言う問題があった。このとき、メモリカードインタフェース回路付きフラッシュメモリカードチップ920を利用することで、複雑なフラッシュメモリコントローラを単価の高いフラッシュメモリ部に持って行くことが出来るため、フラッシュメモリの互換性に関する問題をケアする必要がなくなり、またシリアルインタフェースで通信できることから、配線を簡略化できるという効果がある。
【0063】
図10にはICカードチップの変形例が示される。同図に示されるICチップ(ICCRDCHP)1070は、複数のメモリカード制御回路(MCRDCNT)160及び1030を持ち、複数のメモリカード(MCRD)190及び1020を接続可能な構成を有する。この場合、メモリカード190とメモリカード1020は同じ種類のデバイスであっても良いし、違う種類のデバイスであっても良い。メモリカード制御回路の拡張数は3以上であってもよい。例えば図10においてICカードチップ1070はメモリカードリーダライタ(MCRDRD/WR)1060に適用される。この構成において、様々なメモリカード仕様をサポートすることで、どんなメモリカードであっても暗号化やアドレススクランブルによりセキュアに管理可能となる効果を奏することができる。また、図1の例と同様にメモリカード190を端末装置のデータストレージとして、メモリカード1020をICカードチップ1070の拡張メモリとして利用するように使い方を分けることも可能である。この場合には、メモリカード制御回路160及び1030中にバスの競合を回避する仕組みを入れなくても済むという効果がある。ここでは、入出力インタフェースとしてUSBインタフェース(USBIF)1050をもち、端末インタフェース制御回路(TRMIFCNT)1080は夫々専用バスを介してメモリカード制御回路160,1030に接続され、図1と同様の構成を備える。
【0064】
図11にはICカードチップの更に別の変形例が示される。同図に示されるICチップ(ICCRDCHP)1190は、メモリカード制御回路160に代えてUSB制御回路1160を持ち、USBデバイスをUSBインタフェース(USBIF)1130及び1110経由で接続可能な構成を有する。先に説明したように、端末装置インタフェース制御回路1150がUSBの場合、ファイルなどのデータストリーム対して140のような転送制御回路を用いてメモリカード190へデータを転送することも可能である。ここでは、ICカードチップ1190が処理するデータストリーム以外のデータをそのままUSBIF1130、1110に受け渡すか、CPU150が制御する新しいエンドポイントを追加する構成とする。例えば、図11はUSBハブ1180に適用した場合を例示する。この構成を採用することで、USBIF1170からのデータストリームを端末装置に負荷を与えることなく暗号化する事が可能となる効果がある。
【0065】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0066】
例えば、入出力インタフェース制御回路としての端末インタフェース制御回路はUSBインタフェースに限定されず、メモリカードインタフェース制御回路はMMCインタフェースに限定されず、メモリカードはフラッシュメモリカードに限定されず、適宜変更可能である。ICカード用半導体装置は暗号化復号処理又は認証処理等のセキュリティ処理が可能なマイクロコンピュータと同義である。ICカード用半導体装置は図1に示されていないその他の周辺回路や演算回路等を備えてよいことは言うまでもない。
【図面の簡単な説明】
【0067】
【図1】本発明を適用したICカードの一例を示すブロック図である。
【図2】ICカードからだけでなく端末装置からもメモリカードをアクセス可能にする例を示すブロック図である。
【図3】図2の構成に基づいてメモリカードを端末装置とICカードのどちらが制御するかを決定するためのフローチャートである。
【図4】転送制御回路による処理を示す動作フローチャートである。
【図5】メモリカード制御回路による処理を示す動作フローチャートである。
【図6】命令キューと制御レジスタの詳細を例示する説明図である。
【図7】図1のICカードにおいて従来のICカードとの互換性を保つための構成を例示するブロック図である。
【図8】ICカードチップをメモリカードスロット付きUSBトークンカードに適用した例を示す概略構成図である。
【図9】ICカードチップを大容量フラッシュメモリ付きSIMカードに適用した例を示す概略構成図である。
【図10】セキュアメモリカードリーダライタに適用したICカードチップの変形例を示す概略構成図である。
【図11】セキュアUSBハブに適用したICカードチップの変形例を示す概略構成図である。
【符号の説明】
【0068】
100 ICカード(ICCRD)
105 ICカードチップ(ICCRDCHP)
120 端末インタフェース制御回路(TRMIFCNT)
120A MSCバッファ(MSCBUF)
120B ICCバッファ(ICCBUF)
127 入出力インタフェース
130 内部バス
132 セレクタ132
140 転送制御回路(TRCNT)
145 バッファ(BUFF)
150 中央処理装置(CPU)
155 内部メモリ(MEM)
160 メモリカード制御回路(MCRDCNT)
163 制御レジスタ(CREG)
165 命令キュー(IQUE)
167A、167B メモリカードインタフェース
180 端末装置(TRML)
181A,181B インタフェース端子
190 メモリカード(MCRD)
270 入出力インタフェース

【特許請求の範囲】
【請求項1】
所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路と、
所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路と、
前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行ない、前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能な中央処理装置と、
前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える転送制御回路と、を有するICカード用半導体装置。
【請求項2】
前記転送制御回路と前記メモリカードインタフェース制御回路との間にバッファメモリを有し、
前記転送制御回路は前記メモリカードへの書込みデータを前記データバッファに転送制御し、前記メモリカードインタフェース制御回路は前記メモリカードからのリードデータを前記データバッファに転送制御する、請求項1記載のICカード用半導体装置。
【請求項3】
前記入出力インタフェース制御回路と中央処理装置とを接続する内部バスと、前記入出力インタフェース制御回路から転送制御回路を経由して前記バッファに至る内部バスとを別々に持つ、請求項2記載のICカード用半導体装置。
【請求項4】
前記メモリカードインタフェース制御回路は、メモリカードのアクセス動作を指示するアクセスコマンドが格納される命令キューを有し、
前記中央処理装置と転送制御回路は前記命令キューにアクセスコマンドを書込み可能であり、
前記メモリカードインタフェース制御回路は命令キューに書込まれたアクセスコマンドに従って外部のメモリカードに対するインタフェース制御を行う、請求項1記載のICカード用半導体装置。
【請求項5】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が書き込みの場合、前記転送制御回路からバッファへの転送経路のバス権を獲得し、前記バッファの空き領域に書込みデータを転送し、前記メモリカードインタフェース制御回路の命令キューに書込みアクセスコマンドを転送して、前記メモリカードインタフェース制御回路にバッファの書込みデータをメモリカードに書込む制御を開始させる、請求項4記載のICカード用半導体装置。
【請求項6】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が読出しの場合、前記メモリカードインタフェース制御回路の命令キューに読出しアクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードからデータをリードさせてバッファの空き領域に格納させ、バッファから転送制御回路への転送経路のバス権を獲得して、バッファのリードデータを前記入出力インタフェース制御回路に供給する、請求項4記載のICカード用半導体装置。
【請求項7】
前記メモリカードインタフェース制御回路は、読出しアクセスコマンドに応答するとき、前記バッファに空き領域がない場合には前記命令キューに格納されている書込みアクセスコマンドによる書込みを先に行ってバッファに空き領域を確保する、請求項6記載のICカード用半導体装置。
【請求項8】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が消去の場合、前記メモリカードインタフェース制御回路の命令キューに消去アクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードに対する消去動作を開始させる、請求項4記載のICカード用半導体装置。
【請求項9】
カード基板に、請求項1記載のICカード用半導体装置と、前記ICカード用半導体装置の入出力インタフェース制御回路に接続する第1インタフェース端子と、前記ICカード用半導体装置のメモリカードインタフェース制御回路に接続する第2インタフェース端子と、を有すICカード。
【請求項10】
請求項9記載のICカードにおける前記第1インタフェース端子のうちICカードの外部に露出した前記第1インタフェース端子に接続される第1端末インタフェース端子と、請求項9記載のICカードにおける前記第2インタフェース端子のうちICカードの外部に露出した前記第2インタフェース端子に接続される第2端末インタフェース端子と、メモリカードが接続される第3端末インタフェース端子と、前記第2端末インタフェース端子を前記第3端末インタフェース端子に接続するバイパス経路と、を有するICカード用端末装置。
【請求項11】
所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路と、
所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路と、
前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行なう第1データ処理装置と、
前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える第2データ処理回路と、を有し、
前記メモリカードインタフェース制御回路は、メモリカードに動作電源を供給するための電源端子に入力端子が接続された電圧検出回路を有し、前記電圧検出回路により外部から電圧が供給されていないときにメモリカードに対するアクセス動作を開始する、ICカード用半導体装置。
【請求項12】
前記第1データ処理装置は前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能である、請求項11記載のICカード用半導体装置。
【請求項13】
カード基板に、請求項11記載のICカード用半導体装置と、前記ICカード用半導体装置の入出力インタフェース制御回路に接続する第1インタフェース端子と、前記ICカード用半導体装置のメモリカードインタフェース制御回路に接続する第2インタフェース端子と、を有するICカード。
【請求項14】
請求項13記載のICカードにおける前記第1インタフェース端子のうちICカードの外部に露出した第1インタフェース端子に接続される第1端末インタフェース端子と、請求項13記載のICカードにおける前記第2インタフェース端子のうちICカードの外部に露出した第2インタフェース端子に接続される第2端末インタフェース端子と、メモリカードが接続される第3端末インタフェース端子と、前記ICカードからメモリカードに動作電源を供給するための前記第2端末インタフェース端子のうちの電源端子に入力端子が接続された電圧検出回路とを有し、前記電圧検出回路により外部から電圧が供給されていないときに第3端末インタフェース端子を介してメモリカードに対するアクセス動作を開始する、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

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−129402(P2009−129402A)
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願番号】特願2007−306994(P2007−306994)
【出願日】平成19年11月28日(2007.11.28)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】