(57)【特許請求の範囲】
【請求項１】
ＩＣカードの接続によって作動するＩＣカード供給手段を備えた少なくとも１つのＩＣカードリーダ（１）と、トランザクション管理プログラム（４３）を自身の有するメモリ内に格納したＩＣカード（４）とを含むスマートＩＣカード用のシステムであって、
前記ＩＣカードリーダ（１）が、
一方で、前記ＩＣカード（４）において展開された命令及びデータのパケットであって「カードメッセージ」といわれるパケットの提供を求める要求と、他方で、前記ＩＣカード（４）からのカードメッセージ内にあって予め受信されている命令の、リーダ（１）による実行に関するレポートメッセージを伴っており、該レポートメッセージと合わせて「リーダレポート」といわれるレポート宣言とを、接続されたＩＣカード（４）に送信することを目的として、交互にかつ繰り返し生成する手段と、
カードメッセージの提供を求める要求の後に、前記ＩＣカード（４）によって配信されるカードメッセージを受信して処理するための手段と、
前記ＩＣカード（４）から受信された、カードメッセージ内の命令の実行後に、リーダのレポートメッセージを展開して送信するための手段と
を含んでおり、前記ＩＣカード（４）が、
前記ＩＣカード（４）が電力を投入された場合に作動して、前記リーダ（１）に第１のカードメッセージを取得させる初期化手段と、
前記リーダ（１）から発生している、カードメッセージの提供要求を認識し、そのようなカードメッセージの提供要求に応答して、前記リーダ（１）にカードメッセージを送信するための手段と、
レポート宣言を認識し、前記リーダ（１）から到来する付随したレポートメッセージを処理するための手段と、
前記リーダ（１）によって送信されたカードメッセージの提供要求及びレポート宣言の速度で、カードメッセージの命令及びデータを展開して、前記トランザクション管理プログラムを実行するための手段と
を含むことを特徴とするシステム。
【請求項２】
前記トランザクション管理プログラムを実行するための手段が、
オペレータを対象としたメッセージの表示要求と、
メニューの選択要求と、
グリッドの入力要求と、
グリッド又はフィールドの表示要求と、
前記カードメッセージの受信と、前記リーダ（１）の処理手段とによるコマンドの実行要求と、
ファイルの記録要求と、
外部認証を求める要求と、
暗号化を求める要求と、
複号化を求める要求と、
ファイル署名を求める要求と、
プログラムをインストールすることの要求と、
予めインストールされているプログラムの実行要求と
の命令を展開することを特徴とする請求項１に記載のシステム。
【請求項３】
前記リーダ（１）のレポートメッセージを展開するための手段が、
メニュー選択と、
フィールド入力と、
前記カードメッセージの受信と、前記リーダ（１）の処理手段とによるコマンドの実行要求に対する応答と、
前記リーダ（１）へのＩＣカード（４）の挿入と、
前記リーダ（１）からのＩＣカード（４）の取り出しと、
キーボードの非動作化と、
前記リーダ（１）の認証と、
挿入レポートと、
非同期リンクを求める要求と
に関するレポートメッセージを展開することを特徴とする請求項１に記載のシステム。
【請求項４】
カードメッセージの提供を求める要求と、前記リーダ（１）の部分に関するレポートメッセージを伴ったレポート宣言とを交互にかつ繰り返し生成する前記リーダ（１）の手段が、コマンド識別フィールドと予測されるカードメッセージの長さを宣言するためのフィールドとを含む、複数の連続フィールドを有するデジタルシーケンスの形式で、カードメッセージの提供要求を展開することを特徴とする請求項１に記載のシステム。
【請求項５】
カードメッセージの提供を求める要求と、前記リーダ（１）の部分に関するレポートメッセージを伴ったレポート宣言とを交互にかつ繰り返し生成する前記リーダ（１）の手段が、コマンド識別フィールドと随伴したレポートメッセージの長さを宣言するためのフィールドとを含む、複数の連続フィールドを有するデジタルシーケンスの形式で、レポート宣言を展開することを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
ＩＣカードという語は、通常、クレジットカードのサイズを有するカードを指して用いられるが、他の形態として、メモリに基づく電子マイクロ回路と、例えば財務又は医療取引のようなトランザクションを行うことを可能とするように設計されたマイクロコントローラとを有する代用貨幣（token）を指して用いられる場合もある。
本発明は、ＩＣカードが意図するトランザクションを実行することを可能とするＩＣカード及びＩＣカードリーダ（IC card reader）によって形成されたシステムに関する。
ＩＣカード及びリーダを有する公知のシステムは、一方で、メモリあるいはマイクロコントローラを有し、且つセキュリティ手段で補われた単にデータ媒体として用いられるＩＣカードと、他方で、問題となるトランザクションの実行を制御するに十分な処理能力があるＩＣカードリーダとを含む。
ＩＣカードリーダは、多数ピンの電子コネクタを用いるか又は容量性若しくは誘導性アンテナを用いて、ＩＣカードへのリンクを提供するシステムを備えている。このリーダは、内蔵型であって自ら作動するか、又はトランスペアレント型で且つコンピュータシステムにアクセスして使用される。内蔵型である場合、特定の人に対してトランザクションのステップを十分にモニタ可能にする通信エレメントを、すなわち、ＩＣカードへのリンクと同じく、問題となるトランザクションに特有のアプリケーションプログラムを有するリーダ自身のマイクロコントローラによって管理されたキーボード及びディスプレイを有する。それらがトランスペアレント型である場合、問題となるトランザクションのために特別にプログラムされたコンピュータシステムに対して、ＩＣカードに専用の簡単な入力／出力ポートとして動作する。両方の場合に、それらはＩＣカードに命令を転送し、しばしば規格ＩＳＯ７８１６−３に規定される特定の交換プロトコルと一致する形に設定され、ＩＣカードは、単にこれら命令を実行し且つレポートを与えるにすぎない。
トランザクションの処理能力は、リーダか又はリーダに係合するコンピュータシステムにある。この場合の欠点は、トランザクションのタイプに従って、リーダ又は係合するコンピュータシステムの特定化を必要とすることである。従って、トランザクションのタイプが変更される必要がある場合、ＩＣカードのプログラミングを変更するだけでは十分でない。リーダが内蔵型であればリーダのプログラミングを変更するか、又はリーダがトランスペアレント型であれば係合したコンピュータシステムのプログラミングを変更することも必要となる。これは、ＩＣカードアプリケーションの発展に対する障害を構成する要素となる。
この欠点を克服するために、ＩＣカード自身に情報、すなわちトランザクションの管理を移し替えることが提案されてきた。その際、ＩＣカードがそのメモリ内にトランザクション管理プログラムを格納し且つそれを実行することになる。
この場合、リーダは、その主機能がトランザクションを実行するために必要とされるリソースを提供すること、特に、キーボード、ディスプレイ、非同期リンク、及び他のＩＣカード又はコンピュータシステムに接続するための手段のようなインタフェースをＩＣカードに提供することにある外部コンポーネントとなる。
ここで、ＩＣカードのメモリ内に格納され、且つそれによって実行されるトランザクション管理プログラムに関連して実行すべき特定の命令を、リーダに供給するという問題が生じる。
この問題を解決するために、例えば欧州特許出願第０，４９０，４５５号のように、ＩＣカード及びリーダの種々のタイプに適合させるために、ＩＣカードによって要求されたリーダのある動作に対する少数の特定コマンドと、これらのコマンドに準拠したリーダの部分における要求及び応答とを用いて、かなり一般的な特性を有するＩＣカードとＩＣカードリーダとの間の通信プロトコルを規定することは公知である。しかしながら、この解決法は、コマンドと要求及び応答との仕様のために、かなり狭い枠組にＩＣカードとそのリーダとの間の交換の可能性及び特性を限定するという欠点を有する。また、ＩＣカードとＩＣカードリーダとの間の通信管理に関する既存の規格に準拠することが、もはやできないという欠点を有する。
本発明の目的は、特定のタイプのＩＣカードにおける、ＩＣカードリーダの特定化を回避するために、ＩＣカードとそのリーダとの間の交換において最少の可能な限定をした、スマートＩＣカードとＩＣカードリーダとの間の通信プロトコルを提供することである。ここで、このプロトコルは、ＩＣカードとそのリーダとの間の通信管理に関する既存の規格に準拠することが容易なものとなる。
本発明は、ＩＣカードの接続によって作動するＩＣカード供給手段を備えた少なくとも１つのＩＣカードリーダと、トランザクション管理プログラムを自身の有するメモリ内に格納したＩＣカードとを含むスマートＩＣカード用のシステムに関する。このシステムは、ＩＣカードリーダが、
一方で、ＩＣカードにおいて展開された命令及びデータのパケットであって「カードメッセージ」といわれるパケットの提供を求める要求と、他方で、ＩＣカードからのカードメッセージ内にあって予め受信されている命令の、リーダによる実行に関するレポートメッセージを伴っており、このレポートメッセージと合わせて「リーダレポート」といわれるレポート宣言とを、接続されたＩＣカードに送信することを目的として、交互にかつ繰り返し生成する手段と、
カードメッセージの提供を求める要求の後に、ＩＣカードによって配信されるカードメッセージを受信して処理するための手段と、
ＩＣカードから受信された、カードメッセージ内の命令の実行後に、リーダのレポートメッセージを展開して送信するための手段と
を含んでおり、ＩＣカードが、
ＩＣカードが電力を投入された場合に作動して、リーダに第１のカードメッセージを取得させる初期化手段と、
リーダから発生している、カードメッセージの提供要求を認識し、そのようなカードメッセージの提供要求に応答して、リーダにカードメッセージを送信するための手段と、
レポート宣言を認識し、リーダから到来する付随したレポートメッセージを処理するための手段と、
リーダによって送信されたカードメッセージの提供要求及びレポート宣言の速度で、カードメッセージの命令及びデータを展開して、トランザクション管理プログラムを実行するための手段と
を含むことに注目すべきである。
有利な点として、ＩＣカードリーダから発信されるカードメッセージ提供要求は、用意されたデータをリーダに送信するための規格ＩＳＯ７８１６／ｐｒＥＮ７２６において、通常使用される「ゲットレスポンス（get response）」タイプのコマンドからなる。一方で、リーダから発信されるレポート宣言は、データを送信するための、又はＩＣカード内でプログラムを実行させるための規格ＩＳＯ７８１６／ｐｒＥＮ７２６において、通常使用される「エンベロープ（envelope）」タイプ又は「エクセキュート（execute）」タイプのコマンドからなる。
本発明の他の特徴及び効果は、例として与えられた本発明の実施形態の以下の説明から浮かび上がるであろう。この説明は、図を参照して与えられ、簡単な図が本発明によるシステムのスマートＩＣカード及び関連するリーダのプログラムの種々の論理階層を概略的に説明する。
この図は、ディスプレイスクリーン２及びキーボード３を備えたＩＣカードリーダ１と、スマートＩＣカード４とのマイクロコントローラの管理プログラムの概略的な区分を示している。
リーダ１において、その動作プログラムの最下位層は、マイクロコントローラのタイプによって設計され、且つそのメモリを管理する、実行可能なコードの基本オペレーティングシステム１０である。この基本オペレーティングシステム１０は、カードメッセージが含むかもしれない種々の高水準言語命令を認識するコマンドインタプリタ１１に係合する。この組み合わせの上層に、リーダの種々のエレメントを監督する制御プログラム１２からなる中間層と、規格ＩＳＯ７８１６−３に従うＩＣカードとの通信を管理するためにプログラム１３、ディスプレイスクリーン管理用のプログラム１４、キーボード管理用のプログラム１５、及び遠隔コンピュータシステムとの接続を可能とするための非同期シリアルポート管理用のプログラム１６を含む、種々の周辺管理プログラムからなる外部層とを有する。制御プログラム１２は、コマンドインタプリタ１１へカードメッセージから生じるコマンドを指示し、ＩＣカードに向けられるレポートメッセージを構成し、ＩＣカードに向けられる連続のカードメッセージ提供要求及びレポート宣言を展開し、基本オペレーティングシステム及び種々の周辺管理プログラムとのインタフェースをとる。
スマートＩＣカード４において、その動作プログラムの最下位層もまた、ＩＣカード用の通常のセキュリティシステムを有する、マイクロコントローラのタイプによって設計され、且つそのメモリを管理する、実行可能コードの基本オペレーティングシステム４０と、外部通信プロトコル４１とである。この基本オペレーティングシステム４０は、ＲＯＭに内在し且つ高水準言語コマンドを認識するコマンドインタプリタ４２に係合する。基本オペレーティングシステム４０及びコマンドインタプリタ４２の組み合わせの上層で、ＩＣカードに向けられるトランザクションを管理するために高水準言語プログラム４３からなる外部層があり、このプログラムは、ＥＥＰＲＯＭメモリ内に格納される。
リーダ１は、規格ＩＳＯ７８１６／ｐｒＥＮ７２６から２つの連続コマンドの連続サイクル、即ち「ゲットレスポンス」コマンドと「エンベロープ」又は「エクセキュート」コマンドとを用いて、両方向交互接続によって、スマートＩＣカード４と通信する。
「ゲットレスポンス」コマンドは、５つの連続する１バイトのフィールド、すなわち、
例えば財務アプリケーション用にリザーブされた命令のクラスを識別する１バイトを含む、「ＣＬＡ」を示した第１のフィールドと、
「ゲットレスポンス」コマンドタイプを識別する１６進数のバイトＣ０を含む、「ＩＮＳ」を示した第２のフィールドと、
１６進数のバイト００を含む、「Ｐ１」を示した第３のリザーブフィールドと、
１６進数のバイト００を含む、「Ｐ２」を示した第４のリザーブフィールドと、
その値ｎがＩＣカードからの応答で、予期されたバイト数に対応する１バイトを含む、「Ｌｅフィールド」を示した第５のフィールドと
を有する２進数メッセージを送信することからなる。
この「ゲットレスポンス」コマンドは、ｎ個のデータバイトを含む、ＩＣカードからの「データフィールド」レスポンスと称されるものを指示させる。ｎは、カードレポートで与える、その「Ｌｅフィールド」内に宣言された数と、２バイト「ＳＷ１、ＳＷ２」とである。
「エクセキュート」コマンドは、５つの連続する１バイトのフィールド及び最後の複数バイトのデータフィールド、すなわち、
例えば財務アプリケーションのためにリザーブされた命令のクラスを識別する１バイトを含む、「ＣＬＡ」を示した第１のフィールドと、
「エクセキュート」コマンドタイプを識別する、１６進数のバイトＡＥを含む、「ＩＮＳ」を示した第２のフィールドと、
１６進数のバイト００を含む、「Ｐ１」を示した第３のフィールドと、
１６進数のバイト００を含む、「Ｐ２」を示した第４のリザーブフィールドと、
その値ｎが「エクセキュート」コマンドを伴うメッセージのバイト数に対応する１バイトを含む、「Ｌｃフィールド」を示した第５のフィールドと、
第５のフィールド「Ｌｃフィールド」の告知されたｎ個のデータバイトを含む、「データフィールド」を示した第６の最終フィールドと
からなる２進数メッセージを送信することからなる。
この「エクセキュート」コマンドは、カードレポートを与える、２バイト「ＳＷ１、ＳＷ２」を有するＩＣカードからの応答を指示される。
「エンベロープ」コマンドは、「エクセキュート」コマンドと同じ構造を有しておいり、１６進数の値Ｃ２を有するコマンドを識別するその第２のフィールド「ＩＮＳ」のバイトの値が異なる。
これら３つのメッセージにおいて、それぞれのフィールドの「Ｌｅフィールド」及び「Ｌｃフィールド」は、予期したカードメッセージの長さ、又はリーダからのレポートメッセージの長さを宣言する。従って、実行すべき命令と、ＩＣカードから来るデータを実行し且つ関連すべき命令をもたらすために用いられ、応答として、リーダによって実行された動作のレポートと結果データとが用いられる。
ＩＣカード４がリーダ１内へ挿入されると、ＩＣカードは、リーダ１によって検出され且つ電源投入されて、規格ＩＳＯ７８１６−３に従ってリセットするための応答をこのリーダに送る。これにより、ＩＣカード４のマイクロコントローラの初期化プロセスが引き起こされる。このプロセスは、リセットするための応答がＩＣカード４からリーダ１に送信されて、さらに、リーダ１が「ゲットレスポンス」コマンドの形式のメッセージ提供要求によってＩＣカード４にカードメッセージを求めると直ちに、このカードにおいてリーダ１と通信することが可能となる第１のカードメッセージの準備をもたらす第１の処理サイクルのためのＩＣカード４のトランザクション管理プログラムが開始されることで終了する。
リセットするための応答に対する受理応答を受け取り次第、リーダ１は、ＩＣカード４とのデータ交換の第１のサイクルを開始する。
この第１の交換サイクル中に、その初期化の後にＩＣカード４によって準備されたカードメッセージの送信を要求するために、リーダ１は、「ゲットレスポンス」コマンドの形成のメッセージ提供要求をＩＣカード４に送信する。
「ゲットレスポンス」コマンドを介するこのような要求を受け取り次第、ＩＣカード４は、準備されたカードメッセージをリーダ１に送信する。
リーダ１は、カードメッセージを受信し、それが含むデータを識別し、メッセージを読み取り、要求されたコマンドを実行し、求められたものを如何に実行したかをＩＣカード４に伝えるレポートメッセージとこの処理結果とを合わせて、「エンベロープ」又は「エクセキュート」コマンドの形式のレポート宣言によってＩＣカード４に応答する。これにより第１の交換サイクルが完了する。
リーダ１から来る第１の交換サイクルに対する「エンベロープ」又は「エクセキュート」コマンドを受け取り次第、ＩＣカード４は、レポートメッセージを用いて、まず送ったばかりのカードメッセージの正確な実行をチェックする第２の処理サイクルにおいて、トランザクション管理プログラムを実行し続け、次いで他のカードメッセージを準備する。
リーダ１は、次に、新しいカードメッセージを読み出すために、ＩＣカード４に第２の「ゲットレスポンス」コマンドを送信することによって、第２の交換サイクルを開始する。この新しいカードメッセージのデータを処理した後、リーダ１は、第２の「エンベロープ」又は「エクセキュート」コマンドに結合させたレポートメッセージを用いて、ＩＣカード４にその実行を報告する。これにより、第２の交換サイクルが完了する。
リーダ１から来るこの第２の「エンベロープ」又は「エクセキュート」コマンドを受け取り次第、ＩＣカード４は、なおトランザクション管理プログラムの制御の下で、リーダ１から受信したレポートメッセージを用いて、送信したばかりのカードメッセージの正確な実行をチェックする第３の処理サイクルを開始し、次いで、他のカードメッセージを準備する。
リーダ１は、次に、このカードメッセージを受信するために、ＩＣカード４に第３の「ゲットレスポンス」コマンドを送信することによって、第３の交換サイクルを開始する。
ＩＣカード４によって誘発された処理サイクルと、リーダ１によって誘発された交換サイクルとは、このように、ＩＣカード４に格納されたトランザクション管理プログラムに従ってお互いに継続する。
規格ＩＳＯ７８１６−３に従って、リーダ１は、電気的な関係における交換を制御しているが、トランザクションは、スマートカードであるＩＣカード４の誘発で実行される。
システムがいくつかのＩＣカードを含む場合に、その時点の１つのカードだけがトランザクションを実行する。トランザクションを実行しているＩＣカードは、「アクティブ（active）」と見なされる。その他は「パッシブ（passive）」と見なされる。リーダからの「ゲットレスポンス」命令に答えることが可能な第１のＩＣカードが、アクティブであると宣言されたものである。
上述したように、「アクティブ」を宣言されたＩＣカードに、トランザクション中に実行すべきオペレーションのタイプを求めるために、「ゲットレスポンス」コマンドがリーダによって使用される。
アクティブであるＩＣカードがリーダから求めることができるオペレーションのタイプには、幅広い種類がある。これらの例は、以下のものを含んでいる。
・リーダがそれに対して、その主な特徴を要約したレポートを返信する、リーダを設定することの要求。
・リーダがそれに対して、その動作状態を与えるレポートを返信する、リーダの停止／再開。
・例えば、プログラム名、プログラムの長さ及び内容である、カードメッセージ内に含まれている呼び出しパラメータを用いた、リーダ内へのプログラムのインストール。このインストールに応答して、リーダは、その状態及び実行されたインストールデータのレポートを返信する。
・例えば、プログラム名、データ長、プログラムの読み出しデータである、カードメッセージ内に含まれている呼び出しパラメータを用いた、インストールされたプログラムの実行。この実行に応答して、リーダは、その状態及び返信のデータ長のレポートを返信する。
・例えば、ポート番号、対応識別子、指示手順である、カードメッセージ内に含まれている呼び出しパラメータを用いた、非同期リンクの開閉要求。この要求に応答して、リーダは、その状態及び問題となっているポートの番号のレポートを返信する。
・例えば、メッセージのタイプ（確定、未処理等）、表示のタイプ（定常、フラッシング等）、メッセージ中のエレメント数、メッセージ中の各エレメントのコーディネート、ラベルの長さ、ラベルである、カードメッセージ内に含まれている呼び出しパラメータを用いた、オペレータメッセージの表示要求。この要求に応答して、リーダは、状態レポートを返信する。
・例えば、メニューのタイプ、メニューの線の数、ライン名、選択の各々のコーディネート、ラベルである、カードメッセージ内に含まれた呼び出しパラメータを用いて、メニューからの選択要求。この要求に応答して、リーダは、選択されたラインの番号を指示するレポートを返信する。
・例えば、グリッド名、グリッドのタイプ（初期化、連結等）、質問の数、各質問のラベルのコーディネート、各応答のコーディネート、入力すべき最大文字数、フィールドのタイプ（必須の入力、非表示、修正不能等）、質問のラベルの長さ、質問のラベル、応答のデフォルト値の文字数、応答のデフォルト値（長さが零の場合、省略される）である、カードメッセージ内に含まれている呼び出しパラメータを用いた、グリッドへの入力要求。この要求への応答として、リーダは、
・グリッド名、質問の番号、及び相補動作又は入力値を求める要求
・中断
・グリッド名、確認、日時
のいずれかを含むレポートを返信する。
・例えば、ファイル名、ファイル内のアドレス、書き込むべきデータの長さ、書き込むべき実際のデータである、カードメッセージ内に含まれている呼び出しパラメータを用いた、リーダのファイルへの書き込み。この要求に応答して、リーダは、その状態及びファイル名を与えるレポートを返信する。
・外部認証を求める要求。応答として、リーダの正当性の証明を与えるレポートを返信する。
・例えば、暗号化／復号化データの長さ及び暗号化／復号化である、カードメッセージ内に含まれている呼び出しパラメータを用いた、暗号化／復号化データの交換。リーダからの応答として、キー番号、データ長及びそれらのデータを与えるレポートが返信される。
・例えば、ファイル名である、カードメッセージ内に含まれている呼び出しパラメータを用いた、ファイルの署名要求。リーダからの応答として、要求された署名を与えるレポートが返信される。
・カードメッセージ内に含まれている呼び出しパラメータを用いた、パッシブであるＩＣカードに対するコマンドであって、規格ＩＳＯ７８１６−４に従う、パッシブであるカードのフォーマットのコマンドの実行要求。応答として、状態、データ長さ及び返信データを与えるレポートが返信される。
・リーダレポートと共に、カードメッセージ内に含まれている呼び出しパラメータを用いた、リーダの「スタンダード（standard）」コマンドの実行要求。応答として、リーダはレポートを返信する。
「スタンダード」リーダコマンドという用語は、リーダのオペレーティングシステムが実行可能な任意のコマンドを意味する。「スタンダード」コマンドは、特に、
・リーダのメモリ内のディレクトリの生成／削除を求める要求
・リーダのメモリからディレクトリを選択することを求める要求
・リーダのディレクトリの内容を読み出すことを求める要求
・リーダの現在のディレクトリ内のファイルの生成／削除を求める要求
・通信ポート（ＩＣカード又は非同期）に、リーダのファイルをコピー／バックアップ／格納することを求める要求
・実行可能ファイルの実行要求
・リーダのアプリケーション内のプログラムの、リーダファイルからのインストール
・リーダがプリンタを備えているか又はプリンタに接続されている場合の、印刷要求
・日時の要求
等を備えている。
更に、リーダは、特定の外部イベント、すなわち、
・非同期リンクの接続要求（ポート番号、要求者の識別子）
・カードの挿入（挿入されたカードの番号、ＡＴＲ）
・カードの取り出し（取り出されたカードの番号）
・キーボードの非動作化
等を自ら知らせてもよい。
0003900536.tif 000002