(57)【特許請求の範囲】
【請求項１】
集積回路カード（１０）であって、該集積回路カードは、
マイクロプロセッサ（１００）と、
該マイクロプロセッサに接続されたメモリ（１１０）と、
該メモリ（１１０）に格納されたデータであって、該集積回路カードのオペレーティングモードを示すデータと、
該メモリ（１１０）に格納されたオペレーティングシステムであって、第１のＩＣカードフォーマットで情報を処理するオペレーティングシステムと、
該メモリ（１１０）に格納されたシェルアプリケーションであって、該オペレーティングシステムと通信し、第２のＩＣカードフォーマットで情報を処理し、該第２のＩＣカードフォーマットは、該第１のＩＣカードフォーマットとは異なり、該第２のＩＣカードフォーマットの情報は、該オペレーティングシステムによって処理することができない、シェルアプリケーションと
を備え、
該オペレーティングシステムは、該データが該第１のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、情報を処理するためのオペレーティングシステムルーチンを選択し、該データが該第２のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、該シェルアプリケーションに情報を伝送する、集積回路カード。
【請求項２】
前記情報は、コマンドである、請求項１に記載の集積回路カード。
【請求項３】
前記コマンドは、ファイルアクセスコマンドである、請求項２に記載の集積回路カード。
【請求項４】
前記情報は、ファイル構造フォーマットに関連付けられている、請求項１から３のいずれかに記載の集積回路カード。
【請求項５】
前記シェルアプリケーション以外の複数のアプリケーションであって、該シェルアプリケーションによって処理される情報以外の情報を前記第２のＩＣカードフォーマットで処理し、該複数のアプリケーションのそれぞれは、アプリケーションＩＤを含み、アプリケーションのアプリケーションＩＤは、該アプリケーションの識別を示し、該シェルアプリケーションは、ファイルモードタイプとアプリケーションＩＤと含み、該シェルアプリケーションのファイルモードタイプは、該シェルアプリケーションによって処理されるべき情報のタイプを示し、該シェルアプリケーションのアプリケーションＩＤは、該シェルアプリケーションの識別を示す、複数のアプリケーションと、
該複数のアプリケーションのうちの１つに、前記オペレーティングシステムに要求を送らせる手段であって、該要求は、該複数のアプリケーションのうちのどれに制御を委任するかを示す、手段と、
前記ＩＣカードのオペレーティングモードを示す前記データが該シェルアプリケーションのファイルモードタイプに等しいか否かを決定する手段と、
該制御を受け取るべき該アプリケーションのアプリケーションＩＤが該シェルアプリケーションのアプリケーションＩＤに等しいか否かを決定する手段と、
該ＩＣカードのオペレーティングモードを示す該データが該シェルアプリケーションのファイルモードタイプに等しく、かつ、該制御を受け取るべき該アプリケーションのアプリケーションＩＤが該シェルアプリケーションのアプリケーションＩＤに等しい場合には、該制御を受け取るべき該アプリケーションによって、該制御を委任するのに失敗したことを示す委任応答を該複数のアプリケーションのうちの１つに送る手段と
をさらに備えた、請求項１から４のいずれかに記載の集積回路カード。
【請求項６】
ＩＣカード（１０）にアプリケーションをロードする方法であって、
該アプリケーションは、該アプリケーションによって処理されるべき情報のタイプを示すファイルモードタイプを含み、該ＩＣカードは、マイクロプロセッサ（１００）と、該マイクロプロセッサに接続されたメモリ（１１０）と、該メモリ（１１０）に格納されたオペレーティングシステムであって、第１のＩＣカードフォーマットで情報を処理するオペレーティングシステムと、該メモリ（１１０）に格納されたシェルアプリケーションであって、該オペレーティングシステムと通信し、第２のＩＣカードフォーマットで情報を処理し、該第２のＩＣカードフォーマットは、該第１のＩＣカードフォーマットとは異なり、該第２のＩＣカードフォーマットの情報は、該オペレーティングシステムによって処理することができない、シェルアプリケーションと、該メモリに格納されたデータであって、該ＩＣカードのオペレーティングモードを示すデータとを含み、該オペレーティングシステムは、該データが該第１のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、情報を処理するためのオペレーティングシステムルーチンを選択し、該データが該第２のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、アプリケーションに情報を伝送し、
該方法は、
該アプリケーションのファイルモードタイプが該シェルアプリケーションによって処理されるべき情報のタイプを示す該シェルアプリケーションのファイルモードタイプに等しいか否かを決定するステップと、
該アプリケーションのファイルモードタイプが該シェルアプリケーションのファイルモードタイプに等しい場合には、該ＩＣカードが該シェルアプリケーションにおいて動作していることを示すように該ＩＣカードのオペレーティングモードを示す該データを変更するステップと
を包含する、方法。
【請求項７】
前記ＩＣカードのオペレーティングモードを示す前記データを変更するステップの前に、アプリケーションを格納するＯＳ制御情報ディレクトリが空であるどうかをチェックすることによって、いずれのアプリケーションがすでに該ＩＣカードにロードされているか否かを決定するステップをさらに包含する、請求項６に記載の方法。
【請求項８】
前記アプリケーションのファイルモードタイプが前記シェルアプリケーションのファイルモードタイプに等しく、かつ、いずれのアプリケーションも前記ＩＣカードにロードされていない場合には、該アプリケーションを該ＩＣカードにロードにするステップをさらに包含する、請求項６または７に記載の方法。
【請求項９】
前記変更するステップは、前記アプリケーションのファイルモードタイプが前記シェルアプリケーションのファイルモードタイプに等しく、かつ、いずれのアプリケーションも前記ＩＣカードにロードされていない場合にのみ、該ＩＣカードのオペレーティングモードを示す前記データを変更することを包含する、請求項７に記載の方法。
【請求項１０】
コマンドを処理するためにオペレーティングシステムルーチンが選択されるべきか、または、該コマンドを処理するためにＩＣカードにロードされるアプリケーションに該コマンドが伝送されるべきかをオペレーティングシステムが決定する方法であって、該ＩＣカードは、マイクロプロセッサ（１００）と、該マイクロプロセッサに接続されたメモリ（１１０）と、該メモリ（１１０）に格納されたオペレーティングシステムであって、第１のＩＣカードフォーマットで情報を処理するオペレーティングシステムと、該メモリ（１１０）に格納されたシェルアプリケーションであって、該オペレーティングシステムと通信し、第２のＩＣカードフォーマットで情報を処理し、該第２のＩＣカードフォーマットは、該第１のＩＣカードフォーマットとは異なり、該第２のＩＣカードフォーマットの情報は、該オペレーティングシステムによって処理することができない、シェルアプリケーションと、該メモリに格納されたデータであって、該ＩＣカードのオペレーティングモードを示すデータとを含み、該オペレーティングシステムは、該データが該第１のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、情報を処理するためのオペレーティングシステムルーチンを選択し、該データが該第２のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、該シェルアプリケーションに情報を伝送し、
該方法は、
該ＩＣカードのオペレーティングモードを示す該データが該オペレーティングシステムによって処理されるべき情報のタイプを示す該オペレーティングシステムのファイルモードタイプに等しいか否かを決定するステップと、
該ＩＣカードのオペレーティングモードを示す該データが該オペレーティングシステムのファイルモードタイプに等しくない場合には、該コマンドをアプケーションに直接的に伝送するステップと
を包含する、方法。
【請求項１１】
前記ＩＣカードのオペレーティングモードを示す前記データが前記オペレーティングシステムのファイルモードタイプに等しい場合には、前記コマンドが該オペレーティングシステムによって処理されるべき選択ファイルコマンドに等しいかどうかを決定するステップと、
該コマンドが該オペレーティングシステムによって処理されるべき該選択ファイルコマンドに等しい場合には、該選択ファイルコマンドを処理するためのオペレーティングシステムルーチンを選択するステップと
をさらに包含する、請求項１０に記載の方法。
【請求項１２】
前記ＩＣカードは、ファイルタイプを含むファイルをさらに含み、該ファイルタイプは、該ファイルのファイルタイプを示し、
前記方法は、
前記ＩＣカードのオペレーティングモードを示す前記データが前記オペレーティングシステムのファイルモードタイプに等しい場合には、該ファイルのファイルタイプが該オペレーティングシステムによって処理されるべき複数のファイルタイプのうちの１つに等しいかどうかを決定するステップと、
該ファイルのファイルタイプが該オペレーティングシステムによって処理されるべき該複数のファイルタイプのうちの１つに等しい場合には、該ファイルタイプを処理するためのオペレーティングシステムルーチンを選択するステップと
をさらに包含する、請求項１０または１１に記載の方法。
【請求項１３】
前記ファイルのファイルタイプが前記オペレーティングシステムによって処理されるべき前記複数のファイルタイプのうちの１つに等しくない場合には、該ファイルをアプリケーションに伝送するステップをさらに包含する、請求項１２に記載の方法。
【請求項１４】
ＩＣカードのオペレーティングシステムによって、制御をアプリケーションに与える方法であって、該ＩＣカードは、マイクロプロセッサ（１００）と、該マイクロプロセッサに接続されたメモリ（１１０）と、該メモリ（１１０）に格納されたオペレーティングシステムであって、第１のＩＣカードフォーマットで情報を処理するオペレーティングシステムと、該メモリ（１１０）に格納されたシェルアプリケーションであって、該オペレーティングシステムと通信し、第２のＩＣカードフォーマットで情報を処理し、該第２のＩＣカードフォーマットは、該第１のＩＣカードフォーマットとは異なり、該第２のＩＣカードフォーマットの情報は、該オペレーティングシステムによって処理することができない、シェルアプリケーションと、該メモリに格納されたデータであって、該ＩＣカードのオペレーティングモードを示すデータとを含み、該オペレーティングシステムは、該データが該第１のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、情報を処理するためのオペレーティングシステムルーチンを選択し、該データが該第２のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、該シェルアプリケーションに情報を伝送し、
該方法は、
第１のアプリケーションが、該オペレーティングシステムに要求を送るステップであって、該第１のアプリケーションは、該シェルアプリケーションによって処理することができない情報を該第２のＩＣカードフォーマットで処理し、該要求は、該シェルアプリケーションと該第１のアプリケーションとによって処理することができない情報を該第２のＩＣカードフォーマットで処理する第２のアプリケーションに制御を委任するためである、ステップと、
該ＩＣカードのオペレーティングモードを示す該データが該シェルアプリケーションによって処理されるべき情報のタイプを示す該シェルアプリケーションのファイルモードタイプに等しくなく、かつ、該第２のアプリケーションの識別を示す該第２のアプリケーションのアプリケーションＩＤが該シェルアプリケーションの識別を示す該シェルアプリケーションのアプリケーションＩＤに等しい場合には、該第１のアプリケーションが、該第２のアプリケーションに制御を委任するのに失敗したことを示す委任応答を該オペレーティングシステムに送るステップと
を包含する、方法。
【請求項１５】
ＩＣカード（１１０）と端末（２０）との間で通信を開始する方法であって、該ＩＣカードは、マイクロプロセッサ（１００）と、メモリ（１１０）と、該メモリ（１１０）に格納されたオペレーティングシステムであって、第１のＩＣカードフォーマットで情報を処理するオペレーティングシステムと、該メモリ（１１０）に格納されたシェルアプリケーションであって、該オペレーティングシステムと通信し、第２のＩＣカードフォーマットで情報を処理し、該第２のＩＣカードフォーマットは、該第１のＩＣカードフォーマットとは異なり、該第２のＩＣカードフォーマットの情報は、該オペレーティングシステムによって処理することができない、シェルアプリケーションと、該ＩＣカードのオペレーティングモードを示すデータとを含み、該オペレーティングシステムは、該データが該第１のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、情報を処理するためのオペレーティングシステムルーチンを選択し、該データが該第２のＩＣカードフォーマットで情報を処理するためのオペレーティングモードを示した場合には、該シェルアプリケーションに情報を伝送し、
該方法は、
該ＩＣカードが、該端末からリセット信号を受け取るステップと、
該ＩＣカードのオペレーティングモードを示す該データが該オペレーティングシステムによって処理されるべき情報のタイプを示す該オペレーティングシステムのファイルモードタイプに等しい場合には、該ＩＣカードが、該リセット信号が送られてきた該端末に該ＩＣカードのオペレーティングモードに対応するアンサートゥリセットファイルを送り返すステップと
を包含する、方法。
【請求項１６】
複数のアンサートゥリセットファイルが前記ＩＣカードのメモリに格納されており、前記アンサートゥリセットファイルを送り返すステップは、前記オペレーティングシステムが、該複数のアンサートゥリセットファイルから該ＩＣカードのオペレーティングモードに対応するアンサートゥリセットファイルを選択することを包含する、請求項１５に記載の方法。
【請求項１７】
前記情報は、コマンドである、請求項１５または１６に記載の方法。
【請求項１８】
前記コマンドは、ファイルアクセスコマンドである、請求項１７に記載の方法。
【請求項１９】
前記情報は、ファイル構造フォーマットに関連付けられている、請求項１５に記載の方法。
【発明の詳細な説明】
発明の背景
集積回路（ＩＣ）カードは、主に、配布された安全な情報処理を低価格で提供するために理想的なツールであるため、今日の世界において多くの異なる目的のために、ますます多く用いられつつある。ＩＣカードは「スマートカード」とも呼ばれ、典型的には従来のクレジットカードのサイズのカードであるが、カード上にコンピュータチップを含む。ＩＣカード上のコンピュータチップは典型的には、マイクロプロセッサと、読出し専用メモリ（ＲＯＭ）と、電気消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）と、ランダムアクセスメモリ（ＲＡＭ）と、入／出力（Ｉ／Ｏ）メカニズムと、動作中のマイクロプロセッサをサポートする他の回路とを含む。コンピュータチップは、カードに格納された１以上のアプリケーションを実行し得る。格納し実行するためにＩＣカードが用いられているアプリケーションの例は、クレジット／デビット、電子マネー／パース、電話コーリングカード、および得意客報酬アプリケーションを含む。
ＩＣカードの使用および適用が増加するにつれて、ＩＣカードの規格が普及してきている。例えば、国際標準化機構（ＩＳＯ）および国際電気標準機関（ＩＥＣ）は、ＩＳＯ／ＩＥＣ７８１６−１からＩＳＯ／ＩＥＣ７８１６−８という様々なＩＣカードの産業的に広範囲な規格を普及させている。ＩＳＯ／ＩＥＣ規格は、例えば、ファイル構造および参照方法のための一般的なガイドラインを提供し、様々な適用およびＩＣカードオペレーティングシステムが互いに理解し合い、密接した態様で作用することができるようになっている。さらに、決済システム（クレジットおよびデビットカードシステムのような）の分野においては、ＭａｓｔｅｒＣａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｉｎｃｏｒｐｏｒａｔｅｄ▲Ｒ▼により入手可能な、ＥＭＶ’９６  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃａｒｄ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  Ｐａｙｍｅｎｔ  Ｓｙｓｔｅｍ，ｖｅｒ３．０（１９９６年６月３０日）は、ＩＳＯ／ＩＥＣ規格である７８１６−４から７８１６−５に一般的に準拠しているファイル構造およびファイル参照方法の仕様を規定している。それでもなお、ＩＳＯ／ＩＥＣ規格に準拠していない独自のＩＣカード規格が存在する。
マルチＩＣカード規格の存在は、異なった規格に対して互換性のある異なったオペレーティングシステムを備えたＩＣカードの異なったバージョンを生み出すことが要求されるＩＣカード製造業者において問題である。さらに、オペレーティングシステムは、最初に生産されるときにＩＣカードのＲＯＭに典型的にロードされ、規格が更新される、または新しい規格が採用される度に、ＩＣカード製造業者は、新しいまたは更新された規格に対して互換性のある更新されたオペレーティングシステムを備えた新しいＩＣカードを配布することを要求し得る。
もし、新しいまたは更新されたＩＣカード規格が公布される度に、ＩＣカードのオペレーティングシステムを更新することが要求されないならば、カード製造業者、カード発行者、アプリケーションプロバイダおよびカードユーザにとって有利である。本発明の実施形態によって、これらおよび他の技術的課題に取り組む。
発明の要旨
本発明は、オペレーティングシステムの「on top」で実行し、ＩＣカードの初期にロードされたオペレーティングシステムと互換しないＩＣカード規格の実施を取り扱う「shell」アプリケーションの導入によって、上述の技術的課題に取り組む。有利な点として、シェルアプリケーションは、ＩＣカードが互換するＩＣカード規格を補う。したがって、規格が変更したり新しい規格が導入された場合、ＩＣカードは、新しいオペレーティングシステムを更新するよりはむしろ新しいシェルアプリケーションのみを更新する必要がある。
本発明の好適な実施形態において、オペレーティングモードに関連するする集積回路カードが提供される。集積回路カードは、マイクロプロセッサと、マイクロプロセッサに結合するメモリと、オペレーティングモードの代表のメモリに格納されるデータと、第１のＩＣカードフォーマット内の選択された情報を処理するメモリに格納されたオペレーティングシステムと、第２のＩＣカードフォーマット内の選択された情報を処理するメモリに格納されたシェルアプリケーションと、オペレーティングモードに応答してオペレーティングシステムもしくはシェルアプリケーションの何れかへ選択された情報をルーティングする手段とを含んでいる。選択された情報はファイルアクセスコマンドのようなコマンドであり得る。さらに、選択された情報はファイル構造フォーマットに関連し得る。
本発明の更なる好適な実施形態において、ＩＣカード上へアプリケーションをロードする方法が提供され、ここでアプリケーションはファイルモードタイプに関連し、ＩＣカードはオペレーティングモードに関連している。上記方法は、アプリケーションのファイルモードタイプが所定のファイルモードタイプであるかを決定する工程と、ファイルモードタイプが所定のファイルモードタイプに対応しているならばＩＣカードのオペレーティングモードを変更する工程とを含む。所定のファイルモードタイプは、例えば「shell」ファイルモードタイプであり、ＩＣカードのオペレーティングモードは、例えば「ＯＳ」もしくは「shell」である。したがって、アプリケーションが「shell」のファイルモードタイプに関連するとき、ＩＣカードのオペレーティングモードは、「ＯＳ」から「shell」へ変更される。
好ましくは、シェルアプリケーションは、第１のアプリケーションがロードされる場合を除いてロードされない。このように、ノンシェル（non-shell）アプリケーションがＩＣカード上へロードされる動作性は保証され得る。本発明の更なる好適な実施形態におけるアプリケーションをロードする方法は、好ましくは、任意の他のアプリケーションがＩＣカード上へ既にロードされているかを判定する工程と、アプリケーションのファイルモードタイプが所定のファイルモードタイプに対応し、他のアプリケーションが既にＩＣカード上へロードされていないならば、ＩＣカード上へアプリケーションをロードする工程と、ファイルモードタイプが所定のファイルモードタイプに対応し、アプリケーションが既にＩＣカード上へロードされていないならば、ＩＣカードのオペレーティングモードを変更する工程とを含む。
本発明の他の好適な実施形態において、ＩＣカードのオペレーティングシステムによるコマンドをルーティングする方法もまた提供され、ＩＣカードはオペレーティングモードに関連する。上記方法は、ＩＣカードのオペレーティングモードが所定のオペレーティングモードであるかを決定する工程と、ＩＣカードのオペレーティングモードが所定のオペレーティングモードに対応しているならばコマンドを直接アプリケーションにルーティングする工程とを含む。例えば、ＳＥＬＥＣＴ  ＦＩＬＥコマンドが端末からのＩＣカードにより受け取られ、ＩＣカードがＩＣカード上へロードされたシェルアプリケーションを持つことを前提とし、ＩＣカードのオペレーティングモードおよび所定のオペレーティングモードの両方共に「シェル」であるならば、オペレーティングシステムはＳＥＬＥＣＴ  ＦＩＬＥコマンドをシェルアプリケーションへルート（route）する。
好ましくは、ルーティングする方法は、ＩＣカードのオペレーティングモードが所定のオペレーティングモードに対応していないならば、コマンドがオペレーティングシステムによってサポートされる選択されたファイルコマンドであるかを決定する工程と、コマンドがオペレーティングシステムによってサポートされる選択されたファイルコマンドであるならば、コマンドを選択されたファイルコマンドへ責任を負うオペレーティングシステムルーチンへルーティングする工程とを含む。
好ましくは、ＩＣカードはファイルタイプに関連している現在選択されているファイルを更に含み、ルーティングする方法は、ＩＣカードのオペレーティングモードが所定のオペレーティングモードに対応していない場合、現在選択されているファイルのファイルタイプがオペレーティングシステムによってサポートされているかを判定する工程と、現在の選択されたファイルのファイルタイプがオペレーティングシステムによってサポートされるタイプであるならば、コマンドをファイルタイプに責任を負うオペレーティングシステムルーチンへルーティングする工程とを更に含む。現在選択されているファイルのファイルタイプがオペレーティングシステムによってサポートされていないならば、上記方法は、コマンドをアプリケーションへルーティングする工程を更に含む。
本発明の他の好適な実施形態において、ＩＣカードのオペレーティングシステムによるアプリケーション間の制御を委任する方法もまた提供され、ＩＣカードは、定義されたＩＣカードフォーマットとともに使用され、オペレーティングモードに関連している。上記方法は、オペレーティングシステムと通信するためおよび定義されたＩＣカードフォーマットに準拠するフォーマット内の情報を処理するためのシェルアプリケーションをＩＣカードへ格納する工程と、オペレーティングシステムによって第２のアプリケーションに制御を委任するための第１のアプリケーションから要求を受け取る工程と、ＩＣカードのオペレーティングモードが所定のオペレーティングモードであるかを決定する工程と、第２のアプリケーションがシェルアプリケーションに対応しているかを決定する工程と、ＩＣカードのオペレーティングモードが所定のオペレーティングモードに対応し、第２のアプリケーションがシェルアプリケーションに対応しているならば、制御を委任するための要求をフェイルする工程とを含む。
本発明の他の好適な実施形態において、ＩＣカードと端末間の通信を開始する方法もまた提供され、ここでＩＣカードは、マイクロプロセッサおよびメモリと、オペレーティングシステムを内部に格納しているメモリと、シェルアプリケーションと、ＩＣカードのオペレーティングモードを代表するデータとを含み、選択された情報がオペレーティングシステムもしくはシェルアプリケーションへルートされる（to be routed）かを示すオペレーティングモードとを含む。上記開始する方法は、端末からのＩＣカードによるリセット信号を受け取る工程と、ＩＣカードのオペレーティングモードに基づいてＩＣカードから端末へアンサートゥリセット（answer-to-reset）を返す工程とを含む。
好ましくは、複数のアンサートゥリセットファイルはＩＣカードのメモリ内に格納され、アンサートゥリセットを返す工程は、オペレーティングモードに基づいてアンサートゥリセットファイルの一つを選択する工程を含む。選択された情報はファイルアクセスコマンドのようなコマンドであり得る。さらに、選択された情報はファイル構造フォーマットに関連し得る。
【図面の簡単な説明】
本発明の好適な実施形態は、添付された図面を参照して例示としてのみ開示される。
図１は、本発明の好適な実施形態によるＩＣカードの模式的表示である。
図２は、本発明の好適な実施形態によるＩＣカードおよび端末の斜視図である。
図３は、本発明の好適な実施形態によるＩＣカードの機能的ブロック図である。
図４は、ＥＭＶ仕様に関連する階層ファイル構造の例示であり、
図５Ａおよび図５Ｂは、本発明の好適な実施形態において用いられるｌｏａｄ＿ｆｉｌｅコマンドのステップを示すフローチャートであり、
図６は、本発明の好適な実施形態において用いられるｄｅｌｅｔｅ＿ｆｉｌｅコマンドのステップを示すフローチャートであり、
図７は、本発明の好適な実施形態において用いられるルートコマンドのステップを示すフローチャートであり、
図８は、本発明の好適な実施形態において用いられるｄｅｌｅｇａｔｅ＿ｒｅｑｕｅｓｔコマンドのステップを示すフローチャートであり、
図９は、本発明の好適な実施形態において用いられるｄｅｔｅｒｍｉｎｅ＿ＡＴＲ＿ｓｔａｔｕｓコマンドのステップを示すフローチャートである。
本発明の詳細な説明
図１は、本発明において用いられ得る典型的なＩＣカード１０を説明する概略図である。ＩＣカード１０は、集積回路１２と、集積回路１２とＩＣカード１０の外部のデバイスとが通信できるように集積回路に接続される、一つ以上の電気接触部１４とを含む。
図２は、ＩＣカード１０が通信するデバイスの一つの実施例である。本発明の明細書中および添付の請求の範囲において、「端末」という文言は、ＩＣカード１０が通信し得る一般的に示されるデバイスを指すものとして用いられる。図２に示されるような典型的な端末２０は、カードリーダ２２と、キーパット２４と、ディスプレイ２６とを含む。キーパット２４およびディスプレイ２６は、ＩＣカード１０のユーザが端末とやりとりを行うことを可能にする。キーパット２４は、ユーザがトランザクションを選択し、個人識別番号（「ＰＩＮ」）の入力およびトランザクション情報を入力することを可能にする。ディスプレイ２６は、ユーザが情報メッセージおよびデータ入力のためのプロンプトを受け取ることを可能にする。その他のタイプの端末は、ＩＣカード互換性ＡＴＭ機および電話を含み得る。
図３は、集積回路１２の機能的ブロック図である。集積回路１２は、少なくとも、プロセシングユニット１００およびメモリユニット１１０を含む。好適には、集積回路１２はさらに、制御ロジック１５０、タイマ１６０、セキュリティ回路１７０、入／出力ポート１８０、およびコプロセッサ１９０を含む。制御ロジック１５０は、プロセシングユニット１００と共に、メモリユニット１１０と入／出力ポート１８０との間の通信を処理するために必要な制御を提供する。タイマ１６０は、プロセシングユニット１００および制御ロジック１５０のためのタイミング基準信号を提供する。セキュリティ回路１７０は好適には、製造中のテストのために、入／出力ポート１８０を内部回路に接続する可溶性リンクを提供する。可溶性リンクは、テストの完了後焼けて、敏感な回路領域への後のアクセスを制限する。コプロセッサ１９０は、暗号作成アルゴリズムにより必要とされるような、複雑な演算をリアルタイムに行う能力を提供する。
メモリユニット１１０は、揮発性および不揮発性メモリ並びに読出し専用およびプログラマブルメモリなどの異なるタイプのメモリを含み得る。例えば、図３に示すように、メモリユニット１１０は、読出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）、およびランダムアクセスメモリ（ＲＡＭ）を含み得る。
メモリユニット１１０は、秘密暗号作成鍵およびユーザＰＩＮなどのＩＣカードデータを格納する。秘密暗号作成鍵は、公開鍵対のプライベート鍵などの、任意のタイプの周知の暗号作成鍵であり得る。好適には、秘密暗号作成鍵は、ＩＣカードの外部からアクセス不可能であるかまたは非常に限定されたアクセス可能性を有するＲＯＭまたはＥＥＰＲＯＭの安全な領域に格納される。
メモリユニット１１０はさらに、ＩＣカードのオペレーティングを格納する。オペレーティングは、ＩＣカードアプリケーションをロードし実行し、ＩＣカードアプリケーションに対するファイル管理および他の基本的なカードサービスを提供する。好適には、オペレーティングはＲＯＭに格納される。
オペレーティングによって提供される基本的サービスに加えて、メモリユニット１１０はさらに、１以上のＩＣカードアプリケーションを含み得る。例えば、ＩＣカードが電子キャッシュカードとして用いられる場合、ＭＯＮＤＥＸTMＰＵＲＳＥと呼ばれるアプリケーションがＩＣカードに含まれ得る。上記アプリケーションは、金融機関におけるユーザの口座からのある通貨の電子値をＩＣカードにロードする。アプリケーションは、ＲＯＭまたはＥＥＰＲＯＭの何れかに格納され得るプログラムおよびデータファイルの両方を含み得る。
異なるＩＣカードおよびアプリケーションを伴う異なる端末の内部動作をイネーブルするために、ＩＣカードに格納されたファイル構成に関連した規格が公布されている。例えば、決済システム業界ではＭａｓｔｅｒＣａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｉｎｃｏｒｐｏｒａｔｅｄ▲Ｒ▼により入手可能な、ＥＭＶ’９６  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃａｒｄ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  Ｐａｙｍｅｎｔ  Ｓｙｓｔｅｍ，ｖｅｒ３．０（１９９６年６月３０日）（以下「ＥＭＶ仕様」と記述する）は、ＩＳＯ／ＩＥＣ７８１６−４から７８１６−５規格に一般的に準拠している、ファイルにアクセスするための階層ツリー構造を示す。このような階層ツリー構造の実施例の図は、図４に示される。
図４において、４つのタイプのファイルカテゴリが示される。すなわち、ディレクトリ定義ファイル（ＤＤＦ）、ディレクトリファイル（ＤＩＲ）、アプリケーション定義ファイル（ＡＤＦ）およびアプリケーション要素ファイル（ＡＥＦ）である。ＥＭＶ仕様において、各ＤＤＦはＤＩＲを含む。各ＤＩＲは、１つ以上のＡＤＦおよび／またはＤＤＦを含み得る。各ＡＤＦは、１つ以上のＡＥＦを含み、それは特定のアプリケーションに関連したデータを含むファイルである。
ＥＭＶ仕様において、ファイルは、固有名もしくはショートファイル識別子（ＳＦＩ）の何れかに参照される。ＤＤＦもしくはＡＤＦは、ＳＥＬＥＣＴコマンドを用いるその固有名によって参照される。一旦、特定のＤＤＦもしくはＡＤＦが選択されると、対応するＤＩＲもしくはＡＥＦは、ＲＥＡＤ  ＲＥＣＯＲＤコマンドを用いるＳＦＩとともに参照される。ＤＩＲの場合、ＳＦＩの範囲は１から１０である。ＡＥＦの場合、ＳＦＩの範囲は１から３０である。ＥＭＶ仕様は、少なくとも一つの必須のＤＤＦを固有名「１ＰＡＹ．ＳＹＳ．ＤＤＦ０１」で示す。
ＥＭＶ仕様における選択されるＤＤＦもしくはＡＤＦへのＳＥＬＥＣＴコマンドのフォーマットは、表１で示される。ＤＤＦへのＳＥＬＥＣＴコマンドの応答において、ＩＣカードは、ＤＤＦに属するＤＩＲのＳＦＩを戻す。ＡＤＦが選択されると、他のコマンドと関連して、ＩＣカードは端末が使用し得る情報を戻し、ＡＤＦに関連するＡＥＦのＳＦＩを取り出す。
一旦、ＤＩＲもしくはＡＥＦのＳＦＩが知られると、端末はＲＥＡＤ  ＲＥＣＯＲＤコマンドを用い得、ＤＩＲもしくはＡＥＦのレコードを読む。ＥＭＶ仕様におけるＲＥＡＤ  ＲＥＣＯＲＤコマンドのフォーマットは、表２において示される。
0004129063.tif 000002
0004129063.tif 000003
ＥＭＶ仕様は、決済システム業者内のファイル構成のための規格を定めているが、他の業者においては他のＩＣカードファイル構成規格が存在し得る。いくつかは独自のものであり得、また一般的にＥＭＶ仕様もしくはＩＳＯ／ＩＥＣ７８１６−４もしくは７８１６−５と互換し得ない。
典型的には、ＥＭＶ仕様および他の独自の規格と互換するＩＣカードを製造することを望んでいるＩＣ製造業者は、様々な仕様によって定義される異なるファイル構造および異なるファイル参照およびアクセス方法を実行するための異なるオペレーティングシステムを備えたＩＣカードを製造しなければならない。本発明の実施形態において、しかしながら、製造業者は、単一のオペレーティングシステムを備え、異なる規格を実行するための異なるシェルアプリケーションを実行するＩＣカードを製造し得る。
図５Ａから図９は、シェルアプリケーションをサポートすることのできるＩＣカードオペレーティングシステムルーチンの好適な実施形態を示すフローチャートである。図５Ａから図９における実施形態において、オペレーティングシステムは、Ｍｏｎｄｅｘ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  ＬｉｍｉｔｅｄのＭＵＬＴＯＳTMオペレーティングシステムなどのＩＣカードを実行するマルチアプリケーションオペレーティングシステムである。そのようなオペレーティングシステムは、アプリケーションをロードもしくは削除するルーチン、適切なオペレーティングシステムプロセスもしくはアプリケーションへのルーティングコマンドのためのルーチン、アプリケーション間の処理の委任（delegation）を操作するルーチン、およびアンサー−トゥ−リセット（ＡＴＲ）メッセージを操作するルーチンを含む。
図５Ａから図９における実施形態において、一つのシェルアプリケーションのみが、任意の時にＩＣカードへロードされ得る。一旦、シェルアプリケーションがロードされると、それはＩＣカードにロードされる全てのアプリケーションにとって有効（valid）なる。好ましくは、オペレーティングシステムは、Ｅｖｅｒｅｔｔらの１９９８年４月２３日に出願された「Ｍｕｌｔｉ−Ａｐｐｌｉｃａｔｉｏｎ  ＩＣ  Ｃａｒｄ  ｗｉｔｈ  Ｄｅｌｅｇａｔｉｏｎ  Ｆｅａｔｕｒｅ」という発明の名称の米国特許に記載されている委任機能のような委任機能を有する。上記米国特許は、本明細書に添付されたＡｎｎｅｘ  Ａを参照することにより本明細書中において組み込まれる。対応する国際出願は、番号ＷＯ−９８５２１５９−８２として公開されている。シェルアプリケーションがオペレーティングシステムからのコマンドを受け取ると、コマンドを解釈し、および／または制御をコマンドに関連するアプリケーションに委任する。もし、制御がアプリケーションに委任されると、アプリケーションが終了したとき、制御をシェルアプリケーションに戻す。そしてシェルアプリケーションは、端末への伝送のための適切なフォーマットでオペレーティングシステムへ任意の応答を戻す。
単純化のために本好適な実施形態では一度に単一のシェルアプリケーションのみをロードするが、本発明は、このような実施形態に限定されない。本発明は、ＩＣカードへロードされ、異なるアプリケーションのセットとともに用いられるマルチシェルアプリケーションのための本発明の実施形態の範囲も含む。
表記事項として、図５Ａから図９のフローチャートにおいて表現されるデータエレメントは、ドット（［．］）に従うデータエレメントがドットに先行するデータエレメントの構成要素であるドット表記慣例に従う。例えば、データエレメントfile_modeは２つの構成要素、file_mode_typeおよびapplication_idを含む。使用されるドット表記において、第１の構成要素データエレメントは、file_mode.file_mode_typeと表現され、第２の構成要素データエレメントは、file_mode.application_idと表現される。
図５Ａおよび図５Ｂは、シェルアプリケーションをサポートすることのできるオペレーティングシステムによるファイルローディングルーチンの実行を示すフローチャートである。ステップ５１０において、ルーチンは、オペレーティングシステムのセキュリティマネージャであるOS_Security_Managerからのファイルローディングコマンドload_file_commandを受け取る。ステップ５２０において、コマンドを受け取った後、ルーチンは、オペレーティングシステム制御情報os_control_info.application_id.に存在するコマンドload_file_command.application_idに関連するアプリケーション識別番号であるかどうかチェックする。もし、アプリケーション識別番号が既に存在していたならば、ステップ５２１において、ルーチンは、「failed」へ応答ステータスload_file_response.statusをセットし、および「duplicate application id.」へエラー記述load_file_response.error_causeをセットする。このエラー応答は、アプリケーションが既にロードされており、再びロードされ得ないことを示す。そこでエラー応答load_file_responseは、OS_Security_Managerへ戻される。
もし、ロードされるアプリケーションのアプリケーション識別番号が存在しない場合、ステップ５３０において、ルーチンは、load_file_commandのファイルモードタイプをチェックする。ファイルモードタイプは、例えば「shell」または「non-shell」であり得る。「shell」ファイルモードタイプは、ロードされるアプリケーションがシェルアプリケーションであることを示し、「non-shell」ファイルモードタイプは、ロードされるアプリケーションがシェルアプリケーションでないことを示す。
もし、ロードされるアプリケーションがシェルアプリケーションである場合、ルーチンは、os_control_infoが空であるかをチェックする。もし、os_control_infoが空でない場合、１つ以上のアプリケーションはその時既にＩＣカードにロードされている。もしそうである場合、ステップ５３１において、ルーチンは、「failed」へ応答ステータスload_file_response.statusをセットし、および「application already loaded.」へエラー記述load_file_response.error_causeをセットする。このエラー応答は、ＩＣカードへロードした全てのアプリケーションにとってシェルアプリケーションが有効となる制限の結果である。全てのアプリケーションがシェルアプリケーションとともに正常に動作し得ることを確実にするために、シェルアプリケーションは、ＩＣカードへロードした最初のアプリケーションでなければならない。
工程５２０および５３０において、エラー状態がトリガーされていないならば、ディレクトリファイルおよびos_control_infoは工程５４０および５５０において適切なアプリケーション情報を用いて更新される。
図５Ｂを参照して、工程５６０においてload_file_commandのファイルモードタイプは再びチェックされる。ファイルモードタイプが「shell」であれば、その後、工程５７０においてfile_modeおよびselected_fileのデータエレメントが更新される。file_modeデータエレメントはＩＣカードのfile_mode_typeおよびシェルアプリケーションのapplication_idを含む。file_mode.file_mode_type変数はＩＣカードのオペレーティングモードを示し、したがって、「operating mode」として、また参照され得る。ＩＣカードのオペレーティングモードは例えば、「ＯＳ」あるいは「shell」であり得る。「ＯＳ」モードはシェルがロードされないことを示し、一方「shell」モードはシェルがロードされることを示す。selected_fileデータエレメントは現在選択されたファイルのapplication_idおよびfile_typeを含む。
工程570において、file_mode.file_mode_typeは「shell」にセットされる。file_mode.file_mode_typeはＩＣカードのオペレーティングモードを示し、したがって、「operating mode」として参照される。更に、現在選択されたファイルのアプリケーション識別番号はシェルアプリケーションのアプリケーション識別番号にセットされる。選択されたファイルのfile_typeは、オペレーティングシステムによって操作されないファイルコマンドを示す「dedicated file」にセットされる。
工程５８０において、応答状態load_file_response.statusは、「success」にセットされ、OS_Security_Managerへ戻る。
図６はシェルアプリケーションをサポートし得るオペレーティングシステムによるファイル削除ルーチンの実施を示したフローチャートである。工程６１０において、delete_file_commandはOS_Security_Managerから受け取る。工程６２０において、チェックは削除されたアプリケーションがos_control_infoに存在していること即ちＩＣカードへアプリケーションがロードされることを検証するために実施される。アプリケーション識別番号がos_control_infoにない場合、工程６７０において、応答状態delete_file_response.statusは「failed」にセットされ、エラーディスクリプションdelete_file_response.error_causeは、「application not loaded」にセットされる。
アプリケーションがＩＣカードへロードされる場合、工程６３０において、削除されているアプリケーションのファイルモードタイプdelete_file_command.file_mode_typeが「shell」と同じになるかどうかの判断をチェッキングが実施する。チェッキングはまた削除されたアプリケーション識別番号delete_file_command.application_idがＩＣカードのファイルモードに指定されるアプリケーション識別番号つまり、file_mode.application_idに同じであるかどうかの判定を実施する。つまり、チェッキングはロードされたシェルアプリケーションが削除されるかどうかの判定を実施する。
ロードされたシェルアプリケーションが削除された場合、工程６８０において、file_mode.file_mode_typeが「ＯＳ」にセットされ、selested_file.file_typeがＩＣカードに関するデフォルトファイルタイプつまり「master file」にセットされる。
工程６４０において、アプリケーションに対応するディレクトリファイルレコードは記憶されているディレクトリから削除される．工程６５０において、アプリケーションのアプリケーション識別番号はos_control_infoから削除される。工程６６０において、delete_file_response.satusは「success」にセットされ、応答状態はOS_Security_Managerに戻る。
図７はシェルアプリケーションをサポートし得るオペレーティングシステムによってコマンドをルーティングするルーチンの実施を示すフローチャートである。工程７１０において、ルートルーチンは、カードホルダからのコマンド、つまりＩＣカードの外部からのコマンドを受け取る。工程７２０において、チェッキングはＩＣカードのオペレーティングモードの判定を実施する。file_mode.file_mode_typeが「ＯＳ」に等しくない場合、シェルアプリケーションはＩＣカードへロードされている。したがって、カードホルダからのコマンドは現在選択されたアプリケーションあるいは複数のアプリケーションに直接送られる。典型的な場合、現在選択されているアプリケーションはシェルアプリケーションである。しかしシェルアプリケーションが他のアプリケーションへの委任された制御を有してもよいし、アプリケーションが直接コマンドを受け取り処理してもよい。
ＩＣカードのオペレーティングモードが「ＯＳ」に等しい場合、工程730から750において規定された種々の状態がチェックされる。工程730において、コマンドがselect_fileコマンドの場合、コマンドは、オペレーティングシステムのselect_fileルーチンに送られる。工程740において、現在選択されたファイルのファイルタイプが「master_file」の場合、コマンドはオペレーティングシステムのprovide_card_facilitiesルーチンに送られる。provide_card_facilitiesルーチンはマスターファイルタイプに関系付けるコマンドを操作する。同様に、工程750において、ファイルタイプが「directory file」の場合、コマンドはオペレーティングシステムのread_card-level_data_filesルーチンに送られる。read_card-level_data_filesルーチンはディレクトリファイルタイプに関系付けるコマンドを操作する。工程730から750における状態が少しも満足でなければ、その後選択されたファイルはアプリケーションでなければならない。したがって、コマンドは現在選択されたアプリケーションに送られる。
図8はオペレーティングシステムがシェルアプリケーションおよび委任構造双方をサポートする場合に必要である委任要求チェッキングルーチンを示すフローチャートである。工程810において、delegate_requestはアプリケーションから受け取る。工程820において、チェッキングはＩＣカードのオペレーティングモードが「「shell」であるかおよび委任されたアプリケーション（制御が転送されようとするアプリケーション）のアプリケーション識別番号がＩＣカードのシェルアプリケーションのアプリケーション認識番号と同一であるかの判定を実施する。双方の状態が真の場合、アプリケーションはシェルアプリケーションに対する制御を委任するように試みる。シェルアプリケーションはロードされ、選択された第1のアプリケーションであり、したがって、他のすべてのアプリケーションに制御を委任するのでそのような委任は再帰的である。再帰的な委任は許されない。したがって、工程830において、delegate_response.statusは「failed」にセットされ、delegate_response.error_causeは「recursive shell delegation」にセットされる。委任応答は委任者アプリケーションに戻る。工程820において、委任者アプリケーションが適切な再帰的でない委任要求を申し立てることを判定した場合、要求はオペレーティングシステムの委任操作手順にしたがって進む。
ＩＣカードが端末に挿入されたとき、ＩＣカードはリセット信号を受け取る。端末との通信を起動するためにＩＣカードは適切なアンサートゥリセット（ＡＴＲ）メッセージを用いたリセット信号に応答しなければならない。図9は、シェルアプリケーションをサポートするシステムをＩＣカードオペレーティングシステムに関するＡＴＲルーチンを示すフローチャートである。
工程910において、ＩＣカードのオペレーティングモードはチェックされる．file_mode.file_mode_typeが工程920において「ＯＳ」に等しい場合、selected_fileのファイルタイプはデフォルト「master file」にセットされ、s_ATR_statusは「default ATR」にセットされる。さもなければ、工程930において、ＩＣカードのオペレーティングモードが「shell」の場合、選択されたファイルのファイルタイプおよびアプリケーション識別番号は「dedicated file」およびfile_mode.application_idにそれぞれセットされる。s_ATR_statusは「shell ATR」にセットされる。双方の場合、s_ATR_statusはオペレーティングシステムのcontrol_ATRルーチンに戻される。s_ATR_statusを用いた場合、control_ATRルーチンは端末から適切なＡＴＲを用いてリセット信号に応答する。適切なＡＴＲは、ＩＣカード上で異なったファイルに記憶され得る。異なったファイルはs_ATR_statusに基づいて選択される。
本発明は、特定の好適な実施形態を参照して説明してきたが、添付の特許請求の範囲によって規定される発明の範囲から逸脱することなく、さまざまな改変、変更および置換は、当業者には知られており、または明らかである。
本開示の範囲は、請求された発明に関連するか否か、あるいは本発明で対処される課題の一部または全てを緩和するか否かに関わりなく、明示的または黙示的に開示された新規の特徴または特徴の組み合わせあるいはそれを一般化したものを含む。本出願は、本出願または本出願に由来する任意のさらなる出願の手続中に、そのような特徴に関する新しい請求項が作成され得ることの注意を促すものである。特に、付属の請求項に関しては、従属項に由来する特徴は、請求の範囲に挙げた特定の組み合わせのみならず、任意の適切な方法で独立項の特徴と組み合わせ得る。
【図１】
0004129063.tif 000004
【図２】
0004129063.tif 000005
【図３】
0004129063.tif 000006
【図４】
0004129063.tif 000007
【図５Ａ】
0004129063.tif 000008
【図５Ｂ】
0004129063.tif 000009
【図６】
0004129063.tif 000010
【図７】
0004129063.tif 000011
【図８】
0004129063.tif 000012
【図９】
0004129063.tif 000013