(57)【要約】【課題】プロセス毎に分離されたデータ構造の提供【解決手段】プロセッサによって実行されるプロセスと関連するデータ構造を記憶するメモリであり、前記データ構造が、（ｉ）少なくとも一つのデータとテータへの参照、及び（ｉｉ）少なくとも一つのオペレーションとオペレーションへの参照を、前記プロセスと関連して定義するアプリケーションディスクリプション、及び前記プロセスを別のプロセスから分離する様に構成された、前記アプリケーションディスクリプションと関連する少なくとも一つのインタラクションコンテキストから成ることを特徴とするメモリ。【選択図】      図４
2007226839.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって実行されるアプリケーションと関連するデータ構造を格納するメモリにおいて、前記データ構造は一つ又はそれ以上のアプリケーションデスクリプションを有しており、各アプリケーションデスクリプションは、
（１）データ及び／又はデータの参照を具備する第１データリストと、
（２）前記アプリケーションと関連する、オペレーション及び／又はオペレーションへの参照を具備する第１手順リストと、
（３）少なくとも一つのインタラクションコンテキストであって、
（ａ）第１データ処理ユニットが第２データ処理ユニットと通信する場合に受け付けられる１組の基本通信プリミティブであって、前記少なくとも一つのインタラクションコンテキストの内の一つを選択的にエンターするために使用される少なくとも一つのプリミティブを包含している１組の基本通信プリミティブ、
（ｂ）受け付けられた通信プリミティブの各々に応答して実施される一つ又はそれ以上のアクションを定義する１組の手順デスクリプションであって、少なくとも、選択された一つのインタラクションコンテキストを活性化させると実施される第１手順デスクリプションと、該選択された一つのインタラクションコンテキストを不活性化させる直前に実施される第２手順デスクリプションと、を有している１組の手順デスクリプション、
（ｃ）該１組の手順デスクリプションにおける一つ又はそれ以上の手順が実施される場合に使用するために使用可能であり、永続的に格納されているか又は計算されるものであり、且つ、空の場合もある、１組のデータ要素、
（ｄ）該データ要素の一つ又はそれ以上への、空の場合もある、１組の参照であって、該１組の参照は該１組の手順デスクリプションと関連しており、該データ要素の一つ又はそれ以上はその他のインタラクションコンテキストによりアクセス可能であり且つ該手順デスクリプションにおいて定義されている一つ又はそれ以上の手順が実施される場合に使用することが可能である、１組の参照、
（ｅ）該通信プリミティブと関連する手順デスクリプションによって使用すされるべき通信プリミティブの一部として参照のために使用可能な一つ又はそれ以上のデータ要素への参照のリストを有している、空の場合もある、データリスト、
（ｆ）該手順デスクリプションと関連して参照されるデータ要素と関連している１組のアクセス条件、
（ｇ）該データリストにおけるデータ参照のリストと関連している１組のアクセス条件、
を有している、少なくとも一つのインタラクションコンテキスト、
を有していることを特徴とするメモリ。
【請求項２】
アプリケーションを実行するための少なくとも１個のプロセッサと、前記プロセッサによって実行される該アプリケーションを関連するデータ構造を格納しているメモリと、を有している装置において、
前記データ構造は一つ又はそれ以上のアプリケーションデスクリプションを有しており、各アプリケーションデスクリプションは、
（１）データ及び／又はデータの参照を具備する第１データリストと、
（２）前記アプリケーションと関連する、オペレーション及び／又はオペレーションへの参照を具備する第１手順リストと、
（３）少なくとも一つのインタラクションコンテキストであって、
（ａ）第１データ処理ユニットが第２データ処理ユニットと通信する場合に受け付けられる１組の基本通信プリミティブであって、前記少なくとも一つのインタラクションコンテキストの内の一つを選択的にエンターするために使用される少なくとも一つのプリミティブを包含している１組の基本通信プリミティブ、
（ｂ）受け付けられた通信プリミティブの各々に応答して実施される一つ又はそれ以上のアクションを定義する１組の手順デスクリプションであって、少なくとも、選択された一つのインタラクションコンテキストを活性化させると実施される第１手順デスクリプションと、該選択された一つのインタラクションコンテキストを不活性化させる直前に実施される第２手順デスクリプションと、を有している１組の手順デスクリプション、
（ｃ）該１組の手順デスクリプションにおける一つ又はそれ以上の手順が実施される場合に使用するために使用可能であり、永続的に格納されているか又は計算されるものであり、且つ、空の場合もある、１組のデータ要素、
（ｄ）該データ要素の一つ又はそれ以上への、空の場合もある、１組の参照であって、該１組の参照は該１組の手順デスクリプションと関連しており、該データ要素の一つ又はそれ以上はその他のインタラクションコンテキストによりアクセス可能であり且つ該手順デスクリプションにおいて定義されている一つ又はそれ以上の手順が実施される場合に使用することが可能である、１組の参照、
（ｅ）該通信プリミティブと関連する手順デスクリプションによって使用すされるべき通信プリミティブの一部として参照のために使用可能な一つ又はそれ以上のデータ要素への参照のリストを有している、空の場合もある、データリスト、
（ｆ）該手順デスクリプションと関連して参照されるデータ要素と関連している１組のアクセス条件、
（ｇ）該データリストにおけるデータ参照のリストと関連している１組のアクセス条件、
を有している、少なくとも一つのインタラクションコンテキスト、
を有しており、前記プロセッサは、前記アクセス条件の内の一つ又はそれ以上に従って前記プロセッサにおって実行される前記メモリ内に格納されているいずれかその他のアプリケーションから前記アプリケーションを隔離させるために前記インタラクションコンテキストを使用する構成とされていることを特徴とする装置。
【請求項３】
請求項２において、前記装置がスマートカードであることを特徴とする装置。
【請求項４】
請求項２において、前記装置がＰＣＭＩＡカードであることを特徴とする装置。
【請求項５】
複数のデータ処理ユニットを有するデータ交換システムにおいて、前記データ処理ユニットの各々は、データ通信機構と、プロセッサと、メモリと、を有しており、前記メモリは実行プログラムを有しており、前記メモリは、更に、インタラクションコンテキストとして前記データ処理ユニット間の可能な通信モードのデスクリプションを有しており、前記データ処理ユニットの各々が請求項２乃至４の内のいずれかに記載されている装置であることを特徴とするデータ交換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータ処理ユニットを含むデータ交換システムにおいて、このユニットのうちのポータブル式であるいくつかのものが一時的通信リンクを樹立し、そのうちの移動式でないユニットが常設通信リンクを有することができる、データ交換システムに関する。処理ユニットは、データ通信手段、処理手段及びメモリ手段を含み、後者は実行プログラムを含む。
【背景技術】
【０００２】
このようなシステムは、多くのアプリケーションファイルをもつポータブルデータキャリヤのためのシステムが記載された国際特許出願 (WO-A-87/07063)から知られている。このようなポータブルデータキャリヤの最も重要な用途の１つとして、多くのアプリケーションに適したスマートカードがある。既知のデータキャリヤは、同じデータキャリヤに多くのアプリケーションをサポートするというセキュリティの特徴をもつ階層的に構成されたデータのキャリヤとして説明されている。上記特許出願には、アクセス許容の階層セットと組み合わせて変更可能データを記憶するため、データキャリヤに階層的ファイルシステムを導入することが記載されている。データキャリヤは、１セットの共通コマンドに応答する。ファイルアクセス許可は、異なる演算について別個のものであり且つパスワード検証に基づいて承諾される。パスワード検証試みカウンタ（password verifica-tionattempt counter）が導入され且つ非常に多いアクセスの試みに対する認可（sanction）として、記憶データの破壊が行なわれる。既知のデータキャリヤは、主として記憶デバイスとして（プロセッサとしてではなく）与えられる。非常に簡単な機能のみが、２進論理演算のような実行プログラムにより遂行される。データキャリヤに通じる端末のリクエストがあったときに、不特定セットの演算を遂行することはできない。セキュリティオプションのみに、パスワード検証が導入される。既知のシステム内では、他のいかなるアクセス条件の検証も不可能である。その上、データキャリヤの各アプリケーションは、データキャリヤのメモリ手段内にそれ自身のファイルを有している。利用可能なメモリスペース（特にスマートカードの場合、該メモリスペースは非常に制限されており、従って可能なアプリケーション数に対する制限をセットする）の効率を高めるためにいかなる特殊測度も行なわれない。
【０００３】
EP-A-0,479,655は、は、スマートカードでのアクセス条件のチェックの実施に関するものである。これについての１つの仕様技術（specification technique）が開示されているけれども、測度（measures）に、他のアクセス条件の検証ができるようにするのが好ましい。
【０００４】
EP-A-0,361,491は、カードの保護（再）プログラミングを可能にするチップカードプログラミングシステムに関する。この特許出願は、プログラムされる書込み可能メモリの部分のアクセスを制御する追記アクセス条件 (write-once-acce-ss conditions)の使用を記載している。この方法で、単一カードでのアプリケーション数が拡大される。暗号プロトコルを含む種々の技術によるアクセス条件も記載されている。
【０００５】
EP-A-0,292,248は、変更不可能なオペレーティングシステムプログラムを用いてスマートカードにアプリケーションをローディングする技術に関する。このローディング技術は、割当てアクセス属性（assigned access attributes）をもつメモリゾーンを用いてデータアクセス条件施行法の実施を有している。特別なアクセス条件は、「追記 (write-once)」（これは、暗示的に記載されているに過ぎない）及び「実行オンリー (execute-only)」である。
【０００６】
米国特許第4,874,935号は、データ辞書（このデータ辞書には、カードのメモリに記憶されたデータ要素のレイアウトが記載されている）を用いたカードプログラミングに関する。データ辞書には、実際に記憶されているデータだけでなく、後で記憶されたデータもが記載されている点で、データ辞書はディレクトリとは異なっていると一般的に理解されている。また、通常、データ辞書はデータフォーマットの記載を有している。コンパイルドフォーマットデータでは、辞書は、データベースの一部としてハードディスクに記憶されるデータベース管理システムに使用される。辞書はまた、ソフトウェア開発環境におけるプログラムコンパイルから得られる目的ロードファイルにおいても見られる。しかしながら、この特許は、スマートカードに特に適したデータ辞書の表現を特許請求していない。
【０００７】
ＥＰ０４６６９６７Ａ１は、スマートカードと端末装置の間のメッセージシーケンスの正しい伝達を支援するために、状態情報の記憶としてカードのメモリの一部分を充当することによって、スマートカード実行プログラム内に複数の機能を提供すること及び状態遷移を制御する状態エンジンを実現するための特定な手段を提供することに関するものである。このような状態情報は、メッセージの受理時点で実行すべき動作を決定する上で非常に重要である。可変的メッセージシーケンスを受け入れる状態エンジンは、コンピュータ言語コンパイラ設計及び計算複雑性理論から周知のものである。この特許は、スマートカード内に同時に常駐できる複数のアプリケーションに特定の動作の種々のセット（組合せ）を実施することができるかについてはとり扱っていない。
【０００８】
【特許文献１】国際特許出願（ＷＯ−Ａ−８７／０７０６３）
【特許文献２】ＥＰ−Ａ−０，４７９，６５５
【特許文献３】ＥＰ−Ａ−０，３６１，４９１
【特許文献４】ＥＰ−Ａ−０，２９２，２４８
【特許文献５】米国特許第４，８７４，９３５号
【特許文献６】ＥＰ０４６６９６７Ａ１
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の主たる目的は、複数の処理ユニットからなるシステムを、これら処理ユニットが、値又はその他の信頼された情報の転送を目的としてそれらの間での通信に利用された時に、それら処理ユニットがどの様に作動するかということを、精確にかつ一意的に記述（ディスクリプション）するための手段を提示することにある。データ処理ユニット間で可能な通信モードについてのこのような広範なディスクリプションは、システム全体と個々の処理デバイスの詳細な演算の両方に適用可能である。かかる形式的ディスクリプションは、世界的な展開を意図されたシステムを受け入れるために必要とされることになる、実施の正当性確認の形式的推論のベースを提供している。
【００１０】
本発明のもう１つの目的は、ポータブルデータ処理ユニット特にスマートカード上の利用可能なメモリースペースの制限された物理的寸法によって課せられる制約条件を最適な形で対処することにある。
【００１１】
本発明の他の目的は、プログラムコードの保護ローディングを行なうより一般的な機構を提供し且つ各ポータブルデータ処理ユニットの各一アプリケーションに対して多プログラムをローディングできるようにすることにある。
【００１２】
また、本発明は、ポータブルデータ処理ユニットの製造業者により規定されるものではなく、アプリケーションデザイナが彼らの特定目的に適合するように選択されるアクセス条件検証を使用することに関する。
【００１３】
さらに、本発明は、任意の介入又は媒介デバイスによって中味及び順序シーケンスが分断され得ないように、処理ユニットの間での通信を保護するためのメカニズムを提供することに向けられている。
【課題を解決するための手段】
【００１４】
従って、本発明に従ったシステムは、処理ユニット全体のメモリ手段には、ａ．データ処理ユニットのうちの１つがその他のユニットのうちの単数又は複数のものと通信する場合つねに受け入れられる基本的な互いに異なる複数の通信プリミティブ (communication primitive)の１セット（組）；
ｂ．受け入れられた通信プリミティブに応答して実行すべき動作を定義する１セットの手順ディスクリプション；
ｃ．手順ディスクリプションの中で定義された通りの手順が実行される時点で利用可能な、常設記憶されているか又は計算される１セットのデータ要素；
ｄ．生じうる更なるインタラクションコンテキストに対しアクセス可能でしかも手順ディスクリプションの中に定義されているような手順が実行される時点で利用可能であるデータ要素に対する参照の１セットであり、手順ディスクリプションに結びつけられた１セットの参照；
ｅ．通信プリミティブの一部として明示的参照のために利用可能であり、通信プリミティブと関連付けられた手順ディスクリプションにより使用されるべきデータ要素に対する順序づけ可能な１セットの参照を含む、空のこともあるデータリスト；
ｆ．手順ディスクリプションに関連して参照されるデータ要素に関連して照会されるデータ要素に関連させられた１セットのアクセス条件；
ｇ．データリスト内のデータ参照リストに関連付けられた１セットのアクセス条件、といったデータ構造に従って構造化されたディスクリプション的データを含む「インタラクションコンテキスト」としてのデータ処理ユニット間の考えられる通信モードのディスクリプションがさらに含まれていることを特徴とする。
【００１５】
この厳密な枠組の中で、通信する信任された処理ユニットのシステムのディスクリプションを組織することによって、デバイス間の考えられる通信の条件及び効果に関するそのオペレーションは完全かつ網羅的に記述される。構造要素の形式的に精確な意味的定義で増大させられて、データは形式的推論を受けやすくすることになり、従ってシステムの実施は、正当性の形式的見直しに対してより受けやすくすることになる。この目的で、全てのデータが、個々の処理ユニットの全てのメモリ手段内に常駐することは必要でない。このようなデータが使用に先立ち処理ユニット内にロードされるだけで充分である。当該発明には、かかるデータの完全なローディングも含まれている。
【００１６】
第１の好ましい実施形態においては、上述のようにディスクリプションしたデータ交換システム内の個々の処理ユニットは、そのメモリ手段に、ａ．データ処理ユニットのうちの１つがその他のユニットのうちの単数又は複数のものと通信する場合につねに受け入れられる１セットの基本的な互いに異なる複数の通信プリミティブの１セット；
ｂ．受け入れられた通信プリミティブに応えて実行すべき動作を定義する１セットの手順ディスクリプション；
ｃ．手順ディスクリプションの中で定義された通りの手順が実行される時点で利用可能な、常設記憶されているか又は計算されている空のこともある１セットのデータ要素；
ｄ．生じうる更なるインタラクションコンテキストに対しアクセス可能でしかも手順ディスクリプションの中に定義されているような手順が実行される時点で利用可能であるデータ要素に対する参照の１セットであり、手順ディスクリプションに関連させられる空のこともある１セットの参照；
ｅ．通信プリミティブの一部として明示的参照のために利用可能であり、通信プリミティブと関連付けられた手順ディスクリプションにより使用されるべきデータ要素に対する順序づけ可能な１セットの参照を含む、空のこともあるデータリスト；
ｆ．手順ディスクリプションに関連されて参照されるデータ要素に関連されて照会されるデータ要素に関連付けられた１セットのアクセス条件；
ｇ．データリスト内のデータ参照リストに結びつけられた１セットのアクセス条件、といったコヒーレントデータ構造を内含する少なくとも１つのインタラクションコンテキストがさらに含まれており、ｈ．データユニットが１つ以上のインタラクションコンテキストを内含し、それが受け入れられる通信プリミティブのうち少なくとも１つは、その通信プリミティブを受容する処理ユニット内のさらなる参照のため前記インタラクションコンテキストのうちの１つを選択的に表示することとなることを特徴とする。
【００１７】
このような形でポータブル処理ユニットのメモリ手段内でデータを定義づけすることによって、処理ユニットは真に１つのプロセッサとして組織される。すなわちこれは、加算及び減算のみを可能にするだけでなく、例えば銀行の職員といったそれを行なう許可を得た人物によって処理ユニット内にロードされ得るプロセスを実行する。受理されたコマンドに応えて任意の複雑な演算を提供することのできる手順を提供し、かつこのようなコマンドの一部としてアドレス可能な記憶されたデータ要素の明示リストを提供することによって、通信帯域幅を最適な形で使用することができ、その結果、交換されるコマンドの数は減少する。本発明に従ったシステムを用いると、システムの数多くの実際の使用には、２つのコマンドの交換しか必要とされない。固定されている唯一のものは、例えばできるかぎりわずかな付加的メモリースペースを用いることなどによる非常に効率の良い方法でユニットのいくつかのアプリケーションを付加できるような形で定義づけされるメモリ手段内の構造である。これは特に、ユニットが利用可能なメモリスペースに関して著しく制限されているスマートカードである場合、きわめて重要なことである。その上、本発明に従った構造は、無許可の人間が、自ら使用権をもたないプロセス又はデータにアクセスするのを禁止するためのセキュリティ措置を含み入れる可能性を全て提供している。
【００１８】
手順ディスクリプションのセットには少なくとも、その通信プリミティブを受容する処理ユニット内のさらなる参照のためインタラクションコンテキストのうちの１つを表示する単数又は複数の通信プリミティブに応えて実行すべき第１の手順ディスクリプションが含まれており、かかる実行の結果、表示されたインタラクションコンテキストが適切に活動化されることになることを、多数のインタラクションコンテキストを内含する処理ユニットがそのさらなる特徴としている場合に、本発明の有利な実施形態を実現することができる。このコンテキスト活動化手順のディスクリプションは、コンテキストを選択することと結びつけられたセキュリティ必要条件を定義づけし、メモリ手段の揮発性部分の中の任意のセキュリティ及び演算データの初期化を実行するために使用すると有利でありうる。
【００１９】
手順ディスクリプションのセットに少なくとも、その通信プリミティブを受容する処理ユニット内のさらなる参照のためインタラクションコンテキストのうちの１つを表示する単数又は複数の通信プリミティブに応えて実行すべき最後の手順ディスクリプションが含まれており、かかる実行の結果、通信プリミティブが受理された間に表示されたインタラクションコンテキストが適切に非活動化されることになることを特徴とするような、多数のインタラクションコンテキストを内含する処理ユニットにより、さらなる利点を得ることができる。この非活動化手順は、通信プリミティブの受理によって取って替わられようとしているアプリケーションに対する制御を提供する。こうしてアプリケーション設計者には、予想外のものでありうるアプリケーションの中止の時点で、メモリ内容の消去及び四捨五入演算を実行する機会が与えられることになる。
【００２０】
もう１つの好ましい実施形態においては、上述のデータ交換システムは、メモリ手段が、さらに少なくとも２つのインタラクションコンテキスト、少なくとも１つのアプリケーションディスクリプション及び現在有効状態にあるインタラクションコンテキストに対する参照を記憶するメモリ要素を含んでおり、各々のアプリケーションディスクリプションには、以下のものが含まれていることを特徴とする。
【００２１】
ａ．データ要素に関する参照からなるデータリストを備え、前記参照は、２つ以上のインタラクションコンテキストにアクセスでき且つ賦課データ要素により拡大され、ｂ．前記参照又は前記付加データ要素に関連し且つ使用の制限を定めるアクセス条件の他のセットを備えている。
【００２２】
これらの測度により、異なるインタラクションコンテキストに共通のデータ要素についての全ての参照は、これらの全てのインタラクションコンテキストにアクセスできるため、これらは一回記憶させる必要があるに過ぎず、メモリスペースを節約できる。また、前記データ参照への共通アクセス条件は、所定のインタラクションコンテキストにアクセスできる。従って、これらの共通アクセス条件は一回記憶すればよく、これによりメモリスペースを節約でき且つ効率を高めることができる。各々のアプリケーションディスクリプションは、このアプリケーションディスクリプションの各々に結びつけられた各々のインタラクションコンテキストの手順ディスクリプションによって使用されうるコードを含む手順ライブラリも含んでいる可能性がある。
【００２３】
処理ユニットは、付加メモリスペースを使用することなく、少なくとも２つのアプリケーションに適合できることが好ましい。この目的を達成するため、本発明のデータ交換システムは、メモリ手段が、少なくとも２つのアプリケーションディスクリプションと、各アプリケーションディスクリプション内の各インタラクションコンテキストの手順ディスクリプションにより、又は各アプリケーションディスクリプション内の各手順ライブラリの実行可能コードの各ユニットにより使用される実行可能コードのユニットとを備えていることを特徴とする。
【００２４】
手順ライブラリの実行可能コードのユニットが、計算の実際値としてパスされるデータ要素に関する属性についてのクラスに、演算パラメータの使用の仕様を含めることにより増強されることが好ましい。これは、非常に効率的な実施が存在するデータレベル及び関数レベルの両者に関するアクセス条件を検証する有効な方法である。
【００２５】
実行プログラムには正常な演算状態への回復中の内部的一貫性欠如の検出後又は実行プログラムが活動状態にあり類似のデータ処理ユニットから受理された通信プリミティブによっていかなる明示インタラクションコンテキストも規定されていない場合にはつねに、最終的動作を行なうように、現在有効状態にあるインタラクションコンテキストに対する参照を記憶するメモリー要素を初期化するのに使用される省略時解釈インタラクションコンテキストに対する参照が含まれていることを、本発明に従ったデータ交換システムが特徴としている場合、システムのより高い信頼性が提供される。
【００２６】
手順ディスクリプション、手順ライブラリ、コードフラグメント及び実行プログラムの実施のコンパクト性をさらに改善するために、本発明に従ったデータ交換システムは、実行プログラムが、抽象プロセッサ用としてコード化された命令のためのインタプリタを構成するルーチンを含んでおり、かくして、手順ディスクリプションの大部分及び実行可能コードのユニットのいくつかが前記インタプリタルーチンによる解釈のため数値にコード化されることをその特徴とすることができる。さらに、実行プログラムにより提供される抽象コードインタプリタは、抽象的に設計された命令セット及び少数の小さな実施ルーチンの使用によってこのような確認を形式的な推論及び証明に対しより敏感に反応するものにすることができることから、実施された機能の正当性を形式的に確認する上での助けとなる。
【００２７】
インタラクションコンテキストディスクリプション及びアプリケーションディスクリプションの記憶のコンパクト性に関するさらなる利点と共に、本発明に従ったデータ交換システムは、手順ディスクリプションが実行可能コードのユニットを含む手順ライブラリの中に内含された手順のサブセットの上のリストの中で索引としてコード化されていることを特徴とすることができる。特定的に言うと、本発明のコンテキストにおいては、手順ディスクリプションのコード化が、きわめて小さい値であり、そのため１つ以上のディスクリプションをメモリ手段用の基本アクセスユニットの中に保持することができるか又はディスクリプションを同じ基本的メモリアクセスユニット内のその他の関連情報と組合わせることができるようになっていることを、システムがそのさらなる特徴とすることができるようにデータ構造の本来の全く異なる手順ディスクリプションの数が一般にきわめて少ない、例えば１６未満であるため、これらのタスク指名テーブルを有利に展開することが可能である。単一のインタラクションコンテキスト内の手順ディスクリプションの数がコード化スペースが直接許容するものより多いといった稀にしか予想されないケースに対処するためには、手順ディスクリプションのコード化値の少なくとも１つは、恐らくは特殊な値でコード化された手順ディスクリプションと結びつけて記憶された付加的なコード化情報を組込むことによってコード化された手順ディスクリプションのために実行すべき実際の機能を間接的に選択するように設計されている実行プログラムの特殊機能を指示するものであることをその特徴とすることができるように、本発明に従って実施されたシステムは有利にも間接的な参照の付加的レベルを使用することができる。実行コンテキストデータ構造の中の記憶のこのような付加的なコンパクト性は、一般に多大な数の異なるアプリケーション及びコンテキストディスクリプションを保持するためにメモリー手段が必要とされていることを考慮した場合、特に有益である。
【００２８】
処理ユニット内のデータ及び機能のセキュリティを高めるため、本発明のデータ交換システムは、メモリ手段が、暗唱番号を構成することを専用化されたインタラクションコンテキストを有し、実行プログラムが、データ交換システムのユーザにより与えられる暗唱番号を検証すべく配置されていることを特徴とする。
【００２９】
同じデバイスホルダアプリケーションの一部として、暗唱番号（ＰＩＮ）管理のインタラクションコンテキスト及び省略時のコンテキスト (default context)を実施できるのが有効である。本発明のデバイスが通信する殆どのデバイスによるこのアプリケーションのサポートは、デバイスの所有者（例えばスマートカードの所有者）に、デバイスのメモリに記憶された彼のパーソナルデータを吟味する機会を与えるであろう。スマートカードの所有者は、適当なユーザインターフェースを与える任意のスマートカード端末で、彼のＰＩＮを修正できるであろう。
【００３０】
インタラクションコンテキスト及びアプリケーションをディスクリプションするデータをメモリ手段をロードするために使用すべき暗号化保護方法の選択において有利な汎用性は、同様にそのメモリ手段中に内含されているその他のインタラクションコンテキストの数及び内容を管理するのに専用とされた少なくとも１つのインタラクションコンテキストがメモリー手段内に含まれていることを特徴とする本発明に従ったデータ交換システムにおいて提供されうる。異なるレベルのセキュリティ及び演算上の複雑性を伴うこのような汎用性をポータブル処理ユニット内に提供することが、同じカード上に異なるアプリケーションをロードするためならびに本発明によって提供されているような同じ基本的アプリケーションインフラストラクチャに従って全て構築されている発行組織のための全く異なる製品の選択を樹立する目的で、市場から要求される可能性もある。現在、この問題に対する解決法は稀にしか存在せず、一般に、均質な方法もオプション範囲も提供しない実行プログラムの一部として実施された特許で保護された特別な機能に基づくものである。
【００３１】
各々のアプリケーションディスクリプションには、全てのインタラクションコンテキストのための識別子を提供するべく構築された数値リストが含まれており、さらに、アプリケーションタイプを表わす第１の数値、アプリケーションを提供するエンティティの一意的識別を表わす第２の数値、アプリケーションディスクリプションの性質を表示する第３の数値そして各々アプリケーションディスクリプションと結びつけられた１つのインタラクションコンテキストを一意的に指示するさらなる数字といった数値のうちの少なくとも１つが含まれていてもよい。
【００３２】
インタラクションコンテキストにユニークに関連する数値のストリングは、２つの通信デバイス間の相互運用性（interoperability）を確立する手段を構成する。この手段は、現在考えられているもの（例えばスマートカード）より効率的である。エンティティを与えるアプリケーションは、実施バージョン及び秘密鍵発生情報を組み込むユニークなコンテキスト数を割り当てることができる。
【００３３】
本発明に従ったデータシステムは、データ通信手段が少なくとも２つの部分を含むデータブロックの形でデータ交換を構造化するように配置され得、ここで第１の部分は、それが通信プリミティブ又は実施された演算の結果得られたデータによって表示されるような１つのコマンドによって実行される演算の性質に影響を及ぼすように使用されるという点で演算データとして分類されたデータであり、第２の部分は、それが、１つの演算を実行することの適切性又は演算内で使用されるべき演算部分内のデータの受容可能性の適切性を見極めるか又は演算の完了又は結果として得られたデータの正当性を証明するために使用されるという点でセキュリティとして分類されることを特徴とするような形で実施可能でもある。このような適切性、受容可能性、証明及び正当性は、データについて関連する暗号化演算を実行することによって得られる。
【００３４】
データ交換におけるメッセージのこのような構造及びこれがもたらす正しい演算定義の実行前後の暗号化計算の順序は、データ交換のプロトコルへの中間攻撃に対する保護の１つのメカニズムを提供する。特に、これは、セキュリティのために指定された部分の中に含まれている各々のメッセージの中で暗号化によりコード化された状態情報が交換され得るようにすることから、処理ユニットの各々のメモリ手段内の明示的に維持されたセキュリティ状態に対するニーズを回避するために用いることができる。暗号化条件を確認することは、応答メッセージが送られるまでだけメモリ手段内に記憶されることを必要する状態変数を安全に初期化し、かくしていたずらの試みにかかる状態情報がさらされる時間を低減させる。最後に、このメッセージ構造は、通信のセキュリティがいかなる介入又は媒介デバイスにも依存していない終端間セキュリティのより自由な使用を可能にする。
【００３５】
かくして認証及びデータ保護は、コマンド実行の一部分となっており、かくして現在のシステム例えばスマートカードで得ることのできるものよりも優れたセキュリティを提供している。
【００３６】
実行プログラムは、現行のインタラクションコンテキストの中で規定された演算を実行するよう通信プリミティブを受け入れた時点で、各々受け入れられた通信プリミティブに関連付けられた手順ディスクリプションの一部として別々に規定されている予め定められた一定の動作シーケンスの一部として各々の演算を実行するように配置されており、この手順ディスクリプションは少なくとも、ａ．通信プリミティブの使用許可；
ｂ．演算データ又はその任意の一部分の解読、ｃ．入力データを用いたコマンドの実行、ｄ．実行されたいずれかの演算の結果として得られる任意の演算データの暗号化；
ｅ．任意の実行された動作の完了又はセキュリティ計算において使用されるべき結果として得たデータの正当性の証明計算、といった動作のために、そのいずれかがボイドであり得る全く異なるディスクリプションを含んで成る。
【００３７】
データ処理ユニットが、データ転送を初期化するとランダムなトランザクション番号を発生し、該トランザクション番号が暗号計算のベースとして機能するならば、セキュリティは更に高められる。
【００３８】
新しいインタラクションコンテキストを入力できるようにするため、必要ならば、１つの通信プリミティブには、新しいインタラクションコンテキストを入力するリクエストとして常に解釈される特定値を割り当てることができる。
【００３９】
好ましい一実施形態においては、本発明に従ったデータ交換システムは、交換された通信プリミティブシーケンスに対する制御をユーザーに対して与えるため、又はそれらの中で転送されたデータに影響を及ぼすため又は交換中に受理したデータをさらに処理するために付加的なコンピュータプログラムを実施できるようにするべく設計されたプログラムコードから成るアプリケーションプログラマーズインタフェースをそのメモリー内に任意に内含していてよいデータ処理ユニットと同じ要素を含むさらなるデータ処理ユニットを含んで成ること、を特徴とする。
【００４０】
本発明のこのような好ましい実施形態においては、特定されたインタラクションコンテキストを入力するのに用いられる基本命令には、その後の通信において、セキュリティ計算の中で用いられるべき数値、処理ユニットの１つによりランダムに又は同様に一意的に生成された第１の値そして恐らくは前記１つのユニットの真正性を証明するため又はこの１つの処理ユニットをその他の形で識別するために役立つ第２の値が含まれている可能性がある。
【００４１】
本発明からの利益をさらに得るためには、各々の通信プリミティブはさらに、命令プログラムによる解釈のための通信プリミティブの表現力を増強させる２つ以上の数値で構成されるように構造化されてもよい。第１の変形形態としてはリセットを信号送りする第１のものを除いて各々の通信プリミティブは、２つ以上の数値から成り、第１の値は、通信プリミティブに結びつけられた動作の手順ディスクリプションを指示するのに用いられ、第２の値は、各々単一のデータ要素に対する参照として実行プログラムによって解釈される一定数の２進値で構成される可能性がある。
【００４２】
第２の変形形態としては、リセットを信号送りする第１のものを除いて各々の通信プリミティブは、２つ以上の数値から成り、第１の値は、通信プリミティブに結びつけられた動作の手順ディスクリプションを指示するのに用いられ、第２の値は、任意のデータ要素がこの値に一致する値を含んでいるか又はその他の形でそれを表示するのに充分であるような値を含んでいる場合にそのデータ要素が選択されるような形で応答動作を実行する間、活動状態のインタラクションコンテキストの中の外部参照のために利用可能なデータ要素のうちのいずれが使用されることになるかを決定するために使用される可能性がある。
【００４３】
第３の変形形態としては、リセットを信号送りする第１のものを除いて各々の通信プリミティブは、２つ以上の数値から成り、第１の値は、通信プリミティブに結びつけられた動作の手順ディスクリプションを指示するのに用いられ、第２の値は、通信プリミティブ内のデータ書式を解釈する上で及び応答動作を実行する上で使用されるべき実行プログラムにより特定の意味が割当てられた一定数の２進値で構成されている。上述のポータブル処理ユニットはスマートカード又はＰＣＭＣＩＡカードの形で実施できる。
【００４４】
本発明のさらなる実施形態においては、通信手段は、データリンクを樹立するために、データ処理ユニット自体が自ら利用できるようにするような外部通信手段又はデータ処理ユニットを実施する、ＰＣＭＣＩＡ又はスマートカードをホストする類似のこのような電子デバイスを利用する。
【００４５】
本発明の１変形形態においては、データ処理ユニットは、ポータブルパーソナルコンピュータとして実施される。
【００４６】
通信手段は、スマートカード読取り装置又はＰＣＭＣＩＡカードスロットを利用できる。
【００４７】
さらに、通信手段は、主として又は付加的に、無接点データ転送を利用する。
【００４８】
上記コンテキスト機構及び技術によれば、より広範囲のスマートカードの使用ができ且つ従来のものに比べて多くの長所をもつスマートカードのアプリケーション開発が可能になる。
【００４９】
先ず、他のアプリケーションのために記憶されたデータのセキュリティに対する潜在的脅威があるコードを完全に試験する必要なく、スマートカードのアプリケーションの特定プログラムコードの実行を可能にする。カードにデータが記憶されたアクセス条件が、アプリケーションコードの実行中に外的干渉の可能性なく、カードオペレーティングシステムにより実施されるので、マルチアプリケーションカード方式は、プログラムコードの調査権限を必要としない。伝統的なスマートカードでは、このような権限は、プライベートコードの実行ファシリティが許容する唯一の方法である。実行コードをカードに認証することにより、調査権限はシステム全体のセキュリティに関して責任を課せられる。すなわち、これは、マルチアプリケーションスマートカードの形式の管理を非常に複雑にする。付随する複雑さ及びコストは、伝統的なカード形式のアプリケーション特定コードを殆ど実行不能にする。新しい技術によれば、スマートカードアプリケーションプロバイダからのこのファシリティに対する要望に適合できる。
【００５０】
第２に、カード内の保護されたアプリケーション特定的プログラムの直接的結果として、カード内にその他のアプリケーションをロードするため専用の１つの特定的アプリケーションを実施することが可能である。この要領で、アプリケーションはひとたびカード内にロードされた時点で、それらをロードしたアプリケーション自体から保護され得る。この保護により、マルチアプリケーションカードスキームに関与する当事者、特にカード発行エンティティ及びアプリケーション提供エンティティに対し、その事業契約のためのベースが与えられることになる。「信頼」及び「適正管理」といったような抽象的な概念ではなく、各カード上に必要とされる記憶量、装備されるべきカード数及びカード上のアプリケーションの持続時間といった有形事物に基づいていることから、アプリケーションプロバイダーの契約は、従来実施されてきたスマートカードの場合よりも公式化しやすい。その上、カード発行者とアプリケーションプロバイダーは、秘密キーを共用する必要がなく、又契約による義務及び相互に承認されたキー輸送機能を用いてこの共用を保護する必要もない。
【００５１】
第３に、アプリケーションソフトウェアは、新しい技術に基づいて実施された場合、先行技術のスマートカードオペレーティングシステムと比べいくつかの利点を有する：＊カードと端末装置の間の相互運用性を確立するため、端末装置とカードの間には最小限のデータ交換しか必要とされない。例えばこれらは同じアプリケーションを支援する。交換すべきデータの値は、ＩＳＯ国際規格草案７８１６−５の中で提案されているとおりに構造化できる。
【００５２】
＊カードと端末との間のトランザクションを完了するため、理論的に推論されるような最小のデータ交換数を実際に使用できる。なぜならば、標準コマンドの長いシーケンスを使用する代わりに、トランザクションがプライベート計算として完了するからである。
【００５３】
＊ディレクトリにより規定された内包アクセス経路及び現在使用され且つ標準化のため提案されているように全てのアプリケーションにより共用されるファイル階層を必要とすることなく、データへの制御されたアクセスが可能である。
【００５４】
＊タンデムな形態の端末及びスマートカードアプリケーション開発が可能であり、この開発プロセスは、コンパイラ及びエミュレータのようなコンピュータソフトウェアツールによりサポートされる。かくして、カード及び端末ソフトウェアの設計及び実施が、現在必要とされている長ったらしく且つエラーの多いアセンブリ言語コーディングより向上される。
【００５５】
＊カード製造業者又は端末製造業者により提案されている新しい特徴のように、将来の開発に向かってフレキシビリティを与える装置の能力を述べる抽象的形式主義を用いて、カード及び端末の両機器の標準化が可能になる。標準化された端末能力としてＡＰＩを含めることができる。これに対し、スマートカードにおける現在の標準化努力は、規格により決定されている方法で識別値を解釈できるように、メッセージの固定データ内容を規定することに集中しており、これでは、新たな開発を行なう余地がなくなってしまう。
【００５６】
最後に、本発明の新たな技術によれば、スマートカードオペレーティングシステムの実施者には、カードオペレーティングシステムのカーネル及び端末オペレーティングシステムの最適実施を設計する最大自由度が与えられる。スマートカードのハードウェア設計業者には、システムのカーネルに包含されるベーシックオペレーションのためのハードウェアサポートを用いて、チップシリコンの使用を最適化するための幾つかのオプションが与えられる。上記特殊設計により得られるハードウェアのコスト低減は、汎用の単チップコンピュータでの改良に基づく場合より大きくできる。
【発明を実施するための最良の形態】
【００５７】
以下、本発明の一般的原理を実施する一例を示す幾つかの図面を参照して本発明を説明する。
【００５８】
先行技術システム内のデータ及びファイル構造は図１に描かれている。基本的に、複数の基本ファイル３及び単数又は複数の専用ファイル２が存在する。各々の専用ファイルは、単数又は複数のさらなる専用ファイル２に又は単数又は複数の基本ファイル３に接続することができる。先行技術では、ディレクトリ及びファイルの樹状階層が用いられていた。先行技術の構造における下位レベルの数は、原則的に制限されていない。図１で使用されている用語は、ＩＳＯ国際規格７８１６−４から採用されたものである。図２に示されてているようなポータブルデータ処理ユニット５と類似のデータ処理ユニット４の間の通信フローのための標準フォーマットに従うと、通信は１セットのブロック対を含んで成る。通信はデータ処理ユニット４からのリセット信号ｍφで開始する。このようなリセット信号は、データ処理ユニット５内のパワー・オン・ロジックにより生成されるような通信帯域幅の外にあってよいが、概念上はメッセージの順序立った交換の一部を成す、ポータブルデータ処理ユニット５は、アンサーツーリセット（ＡＴＲ）ｍ１と恐らくはそれに続く内容でもって応答する。その後に続く全てのブロック対ｍ２，ｍ３，…，ｍ（ｎ−１），ｍｎは、識別用の値を見出しとしてそれに内容が続くブロックから成り、互いに異なる基礎的命令を構成する。
【００５９】
図３は、データを送受信することによって互いに通信している本発明に従った２つのデータ処理ユニットの内部構造を示す。左側のデータ処理ユニット４はなかでも１つの端末装置であってよく、右側のデータ処理ユニットは、なかでも例えはスマートカードなどのポータブルデータ処理ユニットであってよい。しかしながら、本発明は同様に、適切な通信手段又は適切な接続技術によって互いに通信することのできる２つ以上のポータブルデータ処理ユニットに対しても応用できる。データ処理ユニット４，５の各々は、データ通信手段７，１４を含み、これを通して、構造化されたデータブロックを交換することが可能である。データ処理ユニットの各々は、処理手段８，１５とメモリ手段９，１６を含んで成る。メモリ手段９，１６は、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）及びプログラマブル読取り専用メモリ例えば電気的に消去可能なプログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）のいずれの構成のものであってもよい。メモリ手段９，１６は、ここでは「ＭＡＸＯＳ」で表わされている実行プログラム１２，１７を有する。ポータブルデータ処理ユニット５が２つ以上のアプリケーションに適している場合、メモリ手段９，１６はアプリケーションディスクリプション１３（１）…１３（ｎ），１８（１）…１８（ｎ）を含む。関連するデータ処理ユニットのアプリケーションと同数のアプリケーションディスクリプションが存在する。各々のアプリケーションディスクリプションは「ＣＳＡ」で示されている。第２のアプリケーションディスクリプション１３（２），１８（２）は、各アプリケーションディスクリプションの内容の表示を可能にするため図３に拡大して示されている。各アプリケーションディスクリプション１３（ｉ），１８（ｉ）は少なくとも１つの「インタラクションコンテキスト」１１（１）…１１（ｍ），１９（１）…１９（ｍ）を含んで成る。各々のインタラクションコンテキストは「ＣＴＡ」で示されている。これらのインタラクションコンテキストのうちの最初のもの１１（１），１９（１）は、その内容の表示を可能にするべく拡大して示されている。各々のインタラクションコンテキストには、次のものが含まれる：・インタラクションコンテキストにより認識された通信プリミティブを特定し且つ１セットの手順に特定された適当な手順に関する１セットのコマンド、・１セットのデータ、・もしも何かあるならば、他のインタラクションコンテキストにあるデータに関する１セットのデータ、・実行プログラム１２、１７により遂行される１セットの手順、・データ要素への１セットのアクセス条件、・他のデータ処理ユニットにより発せられるコマンドに使用すべきデータ要素に関する１セットの外的参照、・任意的事項であるが、開発者が特定した他のリスト、である。
【００６０】
最後に、メモリ手段９、１６は、「現在のＣＴＡ」すなわち現在実施されているインタラクションコンテキストに関する参照を保有している。
【００６１】
１つのアプリケーションディスクリプション内の幾つかのインタラクションコンテキストの意図するところは、処理ユニット４、５間の可能インタラクションに機能的分離を与えることである。これは、機能的分離がセキュリティ条件の分離でもあるときに、特に関係がある。一例は、スマートカードと例えばドアを開くための端末との間の第１インタラクションと、開くことを許容されたドアをプログラミングするときの第２インタラクションとで構成できる。第２インタラクションは第１インタラクションより良いセキュリティを必要とし且つそれ自身のインタラクションコンテキストが割り当てられる。インタラクションコンテキストへのアクセスを得ることは、インタラクションコンテキスト内で実行される演算のセキュリティを確保する第１ステップである。
【００６２】
図４は、データ要素アクセス条件と手順との間の関係を示すメモリ組織モデルとして示したコンテキストの機構の実施への実際的アプローチを示す。図４の構造は、ポータブルデータ処理ユニット５の２つ以上のアプリケーションがあるあらゆる場合に適用される。アプリケーションが１つのみであるときは、後で説明するように、構造は極めて簡単化される。図４には、データ処理ユニット５の参照番号が示されているけれども、図４の構造はデータ処理ユニット４のメモリ手段９にも同様に適用できる。図４では、データ要素のディスクリプション及び手順のディスクリプションは、１つのアプリケーション（ＣＳＡ）を構成する異なるインタラクションコンテキスト（ＣＴＡのもの）間のプログラムコードのシェアリング及びデータのシェアリングを反映するように最適に組織化される。
【００６３】
メモリ手段１６は、データ要素Ｈ（１）・・・Ｈ（７）と、実行可能コード要素Ｇ（１）・・・Ｇ（５）（これらは、オペレーティングシステムの一部である）と、アプリケーションディスクリプション１８（１）、１８（２）（ＣＳＡ１、ＣＳＡ２）とを有している。図４では、オペレーティングシステムと同一のデータ及びコードは省略されている。図４に示すように、データ要素、実行可能コード要素及びアプリケーションディスクリプションの数は一例として示したに過ぎず、その数は実際の必要に応じて変えることができる。
【００６４】
各アプリケーションディスクリプション１８（１）、１８（２）は、メモリ手段内に物理的にプリセットされている。これらは、メモリの使用を反映する第１の抽象化底部層を与える。各アプリケーションディスクリプション１８（１）、１８（２）は、次のものからなる。すなわち、・矢印Ｐ（１）…Ｐ（５）で示されているように、この目的で利用可能にされているオペレーティングシステムのコード要素を指示することのできる実行可能コードユニットＦ（１）…Ｆ（４）で構成された手順ライブラリ；
・現在のアプリケーションディスクリプション１８内のインタラクションコンテキスト１９（１）・・・１９（２）内の手順により使用すべきデータ要素Ｅ（１）・・・Ｅ（７）のリスト（このデータリストは、データアクセス条件と、データ要素を保持する記憶領域へのポインタｑ（１）・・・ｑ（７）からなる）、・多数のインタラクションコンテキストのディスクリプション１９（１）、１９（２）からなるインタラクションコンテキストリスト、である。
【００６５】
図４に示す手順ライブラリ内の要素、データ要素、及びアプリケーションディスクリプション１８（１）内のインタラクションコンテキストの数は、単に例示の目的に過ぎず、要素の数は所望のアプリケーションに基づいて変化する。
【００６６】
データ交換に参加する処理ユニット４，５内のアプリケーションディスクリプション１８（１）データ構造及びインタラクションコンテキスト１９（１），１９（２）の内容は、１つのユニットからの応答がもう１つのユニットによるコマンドとして解釈されるという点で相補的である。この相補性を通して、データ構造の恐らくはコンパクトにコード化された内容を単一のテキストディスクリプションから生成することができる。一般にデータ交換システムは，システムの演算中に、その目的を達成するためのデータ交換のための通信に入ることができる、異なる目的をもつ処理ユニットの数多くの実施で構成されている。各々の処理ユニットはそのメモリ手段の中に、システム内のその意図された目的に関係するようなデータ構造の一部分のみを含んでいるだけでよい。システム全体は、インタラクションコンテキストの異なる内容全ての収集によって記述される。同様に、インタラクションコンテキストのいくつか又はその内容の一部分は必要に応じていつでもロードされ得る。このようなローディングは、例えば、以上で示唆した管理アプリケーションによって保護されるといったように、安全な形で行なうことができる。
【００６７】
インタラクションコンテキスト１９（１）、１９（２）は、アプリケーションディスクリプション１８（１）を記憶するメモリ手段内に物理的に存在する。論理的に、インタラクションコンテキストは、メモリを用いた制御の第２層を形成する。この第２層及びアプリケーションディスクリプション層により与えられる組合せ制御は、スマートカードのようなポータブルデータ処理ユニットのための実行コンテキスト機構 (execution context mechanism)の有効実施を与える。各インタラクションコンテキスト19(1)、19(2)は、次のものからなる。すなわち、・手順ディスクリプションＣ（１）・・・Ｃ（５）のリスト。これらの手順ディスクリプションは、例示矢印ｓ（１）により示されるアプリケーションディスクリプション１８内の手順ライブラリの手順ディスクリプションに関する。或いは、これらの手順ディスクリプションは、例示矢印Ｔ（１）により示されるように、オペレーティングシステムにより与えられる実行可能なコード要素Ｇ（１）・・・Ｇ（５）に関するものでもよい。更に別の構成として、これらの手順ディスクリプションには、実行中の手順により使用され且つ矢印ｒ（１）・・・ｒ（６）で示すように、関連するアプリケーションディスクリプションのデータリストに存在するあらゆるデータ要素に関する明確な参照を含めることができる。
【００６８】
・関連するインタラクションコンテキストでの手順による使用に専ら利用できるデータ要素Ｂ（１）・・・Ｂ（５）を含むデータリスト。データ要素は、矢印u(1)・・・ｕ（５）により示すように、実際のデータにアクセスするときの関連アクセス条件についてのアプリケーションディスクリプション１８のデータ要素に関して表される。
【００６９】
・インタラクションコンテキスト１９（１）、１９（２）によりコマンドとして受け入れられる通信プリミティブＡ（１）・・・Ａ（４）からなる外的インターフェースリスト。通信プリミティブ内の各コマンドは、矢印ｖ（１）・・・ｖ（４）で示すように、関連するインタラクションコンテキスト内の手順リストの複数の手順ディスクリプションＣ（１）・・・Ｃ（５）を参照する。通信デバイス４により発せられるとき、コマンドは、該コマンドに続く１つ以上のアドレスによるアプリケーションディスクリプションのデータリストにおける要素に関するものでもよい。各コマンドは、コマンド処理への入力としてデータ要素により達成される。ここに与えられるようなアドレスの数は例示したに過ぎず、実際上の必要に応じて各コマンドについて決定される。
【００７０】
データ要素の保護は、アクセス条件を設けることにより与えられる。通信プリミティブＡ（１）・・・Ａ（４）内の外的コマンドは、関連するインタラクションコンテキスト１９のデータリストに参照をもつデータ要素をアドレスするに過ぎない。これらのアクセス条件は、コマンドを許容するアクセスの形式を特定する。
【００７１】
すなわち、このようなアクセス条件は、ノーアクセス、リードオンリアクセス、読取り／書込みアクセス及び秘密鍵の使用であってもよい。他のアクセス条件を加えることもできる。例えば、通信プリミティブＡ（１）のコマンドは参照矢印ｗ（２）を通るデータ要素Ｂ（２）へのリードオンリアクセスにし、一方、通信プリミティブＡ（２）は参照矢印ｗ（３）を通る同じデータ要素Ｂ（２）への読取り／書込みアクセスにすることができる。
【００７２】
手順ディスクリプションＣ（１）・・・Ｃ（５）は、関連するアプリケーションディスクリプション１８のデータリストのデータ要素に関するものにすることができる。ここでも、アクセス条件が適合するものであれば、アクセスがなされるに過ぎない。これらのアクセスはまた、例えば、ノーアクセス、リードオンリアクセス、読取り／書込みアクセス及び秘密鍵を許容できるアクセスの形式を特定する。同じインタラクションコンテキスト１９内の異なる手順ディスクリプションについてのアクセス条件は、同じアプリケーションディスクリプションデータリスト要素Ｅ（１）・・・Ｅ（７）について異ならせることができる。例えば、参照矢印ｒ（１）はリードオンリアクセス条件を表し、一方、参照矢印ｒ（２）は読取り／書込みアクセス条件を表すことができる。
【００７３】
アクセス条件は、関連レベル、すなわちアプリケーションディスクリプションレベル又はインタラクションコンテキストレベルに関し、一回だけチェックされる。インタラクションコンテキスト１９（１）、１９（２）内のデータリストのＢ（１）・・・Ｂ（５）は、矢印ｕ（１）・・・ｕ（５）により、アプリケーションディスクリプション１８（１）のデータリスト内のデータ要素のポインタに直接関連付けられている。なぜならば、アクセス条件は、既に、アプリケーションディスクリプション１８（１）のデータリスト要素Ｅ（１）・・・Ｅ（７）に合致しているからである。しかしながら、アプリケーションディスクリプション１８（１）内のデータリスト要素に関するインタラクションコンテキスト１９（１）、１９（２）内の手順ディスクリプションＣ（１）・・・Ｃ（５）は、アプリケーションディスクリプション１８（１）内のデータリスト要素Ｅ（１）・・・Ｅ（７）に関連するアクセス条件に先ず合致しなければならない。アプリケーションディスクリプション１８（１）及びその関連インタラクションコンテキスト１９（１）、１９（２）のデータリスト内の任意のデータ要素又は手順ディスクリプション要素は、メモリ手段１６内の任意の他のアプリケーションディスクリプションとは関連付けられない。手順ディスクリプションを構成する実行コードは、各手順ディスクリプションＣ（１）・・・Ｃ（５）と関連する一定セットのデータ参照を介して、間接的にデータをアドレスするに過ぎない。Ｂ（１）・・・Ｂ（５）により記述されるデータを使用し、参照のリストは、手順ディスクリプションと関連するコマンドとして受け入れられる通信メッセージに実際に特定されたアドレスを評価することにより得られたものとして、データ要素に関する実行プログラムにより一時的に拡大される。かくして、明確に特定されたもの以外のものにアクセスされることはなく、特定の使用条件が観察されるに過ぎない。換言すれば、その関連するインタラクションコンテキストをもつアプリケーションディスクリプションに関しては、図４の好ましいメモリ参照モデルが、データ処理ユニット５の一回のみの適用内での演算についての専用コンテキストを与える。データ要素Ｈ（１）・・・Ｈ（７）はあらゆるアプリケーションに共通なメモリ手段１６に記憶されるけれども、アプリケーションディスクリプション１８（１）のコンテキスト内に、専用使用のためのデータを収容している。この専用性 (exclusivity)は、Ｅ（１）からＨ（２）までのｑ（１）のような各記憶位置への単一ポインタの存在を許容する実行プログラムにより保証される。コード要素Ｇ（１）・・・Ｇ（５）のみが、メモリ手段１６内に記憶された任意のアプリケーションディスクリプション１８（１）に関係付けられる。共通コードＧ（１）・・・Ｇ（５）についてのアプリケーションディスクリプション１８（１）以外のアプリケーションディスクリプションのこれらの最後の参照は、図４には明確に示されていない。しかしながら、当業者ならば、図４の構造を、２つ以上のアプリケーションディスクリプション１８（１）、１８（２）・・・に容易に拡大できるであろう。
【００７４】
異なる種類のアクセス条件の使用により、いかなるデータ要素が保護されるかを説明した後、ここで、メモリ管理規定（memory management provisions）を説明する。メモリ管理の場合には、変更可能データ（データ要素）及び変更不可能データ（オペレーティングシステムコード）は、オペレーティングシステムにより別々に管理される。図４に示すメモリ参照モデルは、関連するアプリケーションディスクリプション１８内のデータリスト及び手順ライブラリから、それぞれ、ポインタｑ（１）・・・ｑ（７）；ｐ（１）・・・ｐ（５）により関連付けられるメモリ手段１６内でのコードとデータ要素との分離を与える。各インタラクションコンテキスト１９（１）、１９（２）内のデータリスト要素は、これらのポインタに関する参照のみを含んでおり、メモリ手段１６内のコードＧ（１）・・・Ｇ（５）及びデータ要素Ｈ（１）・・・Ｈ（７）に直接関連する参照は含んでいない。関連するアプリケーションディスクリプション１８のデータリストは、オペレーティングシステムが必要とする間接 (indirection)のレベルを与え、メモリ管理を遂行する。
【００７５】
コード複製は、異なるインタラクションコンテキストの間に共通コードを共有させるため、２つのレベルに、共通のコードライブラリすなわちアプリケーションディスクリプション１８（１）の手順ライブラリのコード要素Ｆ（２）に関する手順ディスクリプションＣ（３）のような「コマンドボディ」を与えることにより回避される。しかしながら、手順ディスクリプションＣ（３）のボディはまた、メモリ手段１６内に記憶され且つオペレーティングシステムにより与えられるコードＧ（３）にも直接関連する。オペレーティングシステムにより与えられる要素コードＧ（１）・・・Ｇ（５）のあらゆるものは、効率的実行のために実施される。
【００７６】
コード要素Ｆ（１），Ｆ（２）に対する参照は、メモリーアドレスを用いてか、又は付加的な間接的レベルで適切に構築されたテーブル内の索引を用いて、行なうことができる。ここで提供される参照の階層的構造化は、索引を用いたこのような実施にはきわめて適している。
【００７７】
根本的に、図４に従ったメモリ構造は、データ処理ユニット５のわずか１つのアプリケーションしか提供されていない状況下でも適用可能である。この場合、その唯一のアプリケーションディスクリプション１８（１）は１つのインタラクションコンテキスト１９（１）と一致する可能さえあり、このときこのインタラクションコンテキストは次のようなコヒーレントな定義セットを含んでいる：ａ．データ処理ユニット５が類似のユニット４と通信するときにつねに受容される１セットの基本的な通信プリミティブＡ（１）…。このプリミティブは少なくとも前記少なくとも１つのインタラクションコンテキストを入力するために用いられるプリミティブを内含している。
【００７８】
ｂ．１セットの手順ディスクリプションＣ（１）・・・。これは、受け入れられた通信の各プリミティブＡ（１）・・・に応答して遂行されるアクションを定め、少なくとも、インタラクションコンテキストを付勢するときに遂行される第１手順ディスクリプションと、コンテキストを除勢する直前に遂行される少なくとも手順ディスクリプションとからなる。
【００７９】
ｃ．空のこともある１セットのデータ要素Ｈ（１）・・・。これは、永久的に記憶されるか又は計算され、このデータ要素は、手順ディスクリプションＣ（１）・・・で定められた手順が遂行されるときに、使用のために利用される。
【００８０】
ｄ．空のこともある１セットのデータ要素。この参照は手順ディスクリプションＣ（１）・・・に関連する。前記データ要素はまた、別のインタラクションコンテキストにもアクセスでき且つ手順ディスクリプションＣ（１）・・・に定められた手順が遂行されるときに、使用のために利用される。
【００８１】
ｅ．通信プリミティブの一部としての明確な参照として利用でき、空のこともあるデータリスト。該データリストは、通信プリミティブに関連する手順ディスクリプションにより使用すべきデータ要素に関するデータ参照のリストからなる。
【００８２】
ｆ．手順ディスクリプションに関連するデータリストに関連する参照をもつ１セットのアクセス条件。
【００８３】
ｇ．データリストにおけるデータ参照Ｂ（１）・・・のリストに関連する１セットのアクセス条件。
【００８４】
データ処理ユニット５に１つのみのアプリケーションがあり且つ少なくとも２つのインタラクションコンテキスト１９（１）、１９（２）がある場合には、各アプリケーションディスクリプションは次のものからなる。
【００８５】
ａ．データ要素に関する参照Ｅ（１）・・・からなるデータリスト。前記参照は、２つ以上のインタラクションコンテキスト１９（１）・・・にアクセスでき且つ賦課データ要素により拡大される。
【００８６】
ｂ．前記参照Ｅ（１）・・・又は前記付加データ要素に関連し且つ使用の制限を定めるアクセス条件の他のセット。
【００８７】
２つ以上のインタラクションコンテキストの各々における手順ディスクリプションのセットはまた、コンテキストの除勢の直前に遂行すべき付加的な最終手順ディスクリプションをも含んでいる。
【００８８】
図５は、上記「ＭＡＸＯＳ」により定められる実行プログラム（１２、１７）での制御のフローチャートを示す。
【００８９】
システムにスイッチを入れた後、ソフトウェアは、ステップ３０でのリセットコードを処理することからスタートする。ステップ３１では、データ処理ユニットのカーネル演算セキュリティレベル (Kernel operations security levels)が入力される。このレベルを記述するアクセス条件は、例えばＲＯＭ又はハードウェアロジック等のメモリの修正不可能部分に記憶される。ステップ３２では、無矛盾性について不揮発性メモリがチェックされ、且つ例えばスマートカードの引出しによる突然のスイッチ遮断により未完のまま残されることのあるあらゆる修正がキャンセルされる。不揮発性メモリの無矛盾性のチェックは、メモリに記憶され且つ検査合計を計算する試験状態の情報を含んでいるに過ぎない。いくらかでもアクセスがなされた場合には、メモリの内容は検査合計の計算にのみ使用される。かくして、無矛盾性のチェックは安全演算（safe operation）である。無矛盾性チェックファシリティの正確な性質は、データ処理ユニット内のハードウェアの細部及び特定セキュリティのアーキテクチャとは無関係な広範囲の不揮発性メモリの修正ルーチンに基づいている。一般的なメモリの無矛盾性チェックの後、メモリに記憶された安全性のコンテキストの予め計算されたレベルが検証される。最後に、データ処理ユニットのランダムアクセスメモリが始動される。
【００９０】
ステップ３３では、実行環境が安全であるとこのように宣言されたならば、データ処理ユニットの安全なアプリケーションのセキュリティレベルが入力される。このレベルでは、カーネル演算に関するメモリへのあらゆるアクセスが阻止される。このレベルからのアプリケーションデータ及びディスクリプションへのアクセスは、進行中の演算に関する状態情報を維持するカーネルのルーチンを通して専ら与えられる。ステップ３４では、リセット後の最初の入力時に、アプリケーションのデータ要素のディスクリプションを使用して、記憶されたデータとディスクリプションとの無矛盾性がチェックされ且つ前述の属性と矛盾する状態にあれば、メモリが変化される。アプリケーションディスクリプションに記憶されたアプリケーション識別子から、リセットメッセージに対するアンサー（answerto reset message、ＡＴＲ）が構成され且つ他のデータ処理ユニット４の受信により予測できないものとして計算されるトランザクション数により完成される。データ処理ユニットの内部では、端末コマンドが発生され、省略時のインタラクションコンテキストを付勢する。ＡＴＲメッセージがデータ処理ユニット４に送られた直後に、このインタラクションコンテキストの付勢コマンドが実行されて、次のコマンドのためのインタラクションコンテキストが与えられる。ＡＴＲメッセージは、データ処理ユニットの読みを明瞭に表示して、他のコマンドを受け入れる。省略時のインタラクションコンテキストは、「スマートカードホルダアプリケーション」（これは、あらゆるマルチアプリケーションスマートカードにおける１つの標準アプリケーションとして存在する）の一部として設計できる。この特定のアプリケーションコンテキストでは、ユーザすなわちスマートカードの所有者は、彼のパーソナルデータを調査するか、カードの他の何らかのアプリケーションを開くことができる。
【００９１】
ステップ３５では、コンテキストの付勢コマンドの結果として、標準スマートカードホルダＣＴＡにインタラクションコンテキスト（ＣＴＡ）のセキュリティレベルが入力される。
【００９２】
アプリケーションが完全に付勢された後は、他のデータ処理ユニットからのコマンドを受ける用意が整ったことになる。他の処理は受け入れたコマンドに基づいて行なわれる。アプリケーションを付勢するコマンドは、実行すべきコマンドとは異なる方法で取り扱われる。従って、ステップ３８では、通信プリミティブがステップ３６で受け入れられ且つステップ３７で受け入れられることが確立された後、新しいアプリケーションを付勢すべきか否かが試験される。これらのチェックは、アプリケーションディスクリプションに特定化された場合にのみ遂行される。また、ステップ３９で、入力データの復号（decryption）を行なうことができる。
【００９３】
試験が成功であれば、ステップ４０で、「データアクセス保護レベル」が入力される。このレベル（最高のセキュリティレベル）で、ステップ４１では、アプリケーションプロバイダにより符号化されたルーチンが実行される。このようなルーチンは、アプリケーションディスクリプションに記憶され且つ他のデータ処理ユニット４により発せられる特定コマンドに対するアプリケーション特定リアクションとして機能する。このセキュリティレベルは、実行されるコマンドについて特別に定められる部分集合（subset）にアクセスする。
【００９４】
ステップ４１において、提示された入力データを用いてコマンドを実行した後、ステップ４２でデータアクセス保護レベルが残される。
【００９５】
出力データ及びコマンド完了の（暗号化）証明がステップ４３で生成される。このような機能は、定義用合成動作のいずれかについてボイドとなりうる。手順ディスクリプションの中でそのように特定されている場合の１つのコマンドについてのみ、実行される。ステップ４３の後、プログラムは新しい通信プリミティブを待機する（ステップ３６）。
【００９６】
特別なコマンドルーチンが定められておらず且つコマンドが単にオペレーティングシステムからなる手順により実行できる場合には、データアクセス保護レベル（ステップ４０）が入力されず、オペレーティングシステムのルーチンがいかなるデータ保護も壊さないように設計されているため、コマンドは、直接、インタラクションコンテキストのセキュリティレベルで遂行されるであろう。
【００９７】
ステップ３８で、いかなる新しいアプリケーションも付勢されないことが確立された場合には、プログラムはステップ４４に進行し、該ステップ４４でコンテキスト除勢手順が遂行される。ステップ４５では、現在のアプリケーションの特定セキュリティレベルが残され、且つステップ４６で、実行プログラム「ＭＡＸＯＳ」のセキュリティレベル内で、コマンドを伴うデータがチェックされる。
【００９８】
コマンドが、適正な認証により、要求アプリケーションに特定されることが許容される場合には、新たなアプリケーションの特定ＣＴＡセキュリティレベルが入力される（ステップ４７）。このレベルは、新しく開かれたアプリケーションに関するデータへのアクセスを制限する。
【００９９】
データ処理ユニットは、手順に定められた初期化情報の実行により、コンテキスト付勢コマンドに応答するデータを作る（ステップ４８）。このようなアプリケーションプロバイダ符号化ルーチンが存在する場合には、ステップ４９で、データアクセス保護レベルが入力される。ステップ５０では、コンテキスト付勢手順が遂行される。ステップ５１では、データアクセス保護レベルが残され且つこの応答が他のデータ処理ユニット４に通信される。データ処理ユニット４自体は、ステップ４３以降の、上記に特定された新しいコマンドを受け入れる用意が整ったことになる。
【０１００】
図１〜図５について説明したので、本発明によるデータ交換システムについての新たな幾つかの一般的注意を述べる。
【０１０１】
各アプリケーションディスクリプション１８（１）、１８（２）内の手順ライブラリのコードは、これらの演算パラメータの使用の仕様を、計算（この計算は、データの属性とパラメータのクラスとが一致する場合にのみ進行する）における実際値として通されるデータ要素についての属性に関するクラスに含めることにより増強される。これは、データ要素及び関数の両者に関するアクセス条件を検証する１つの方法を与える。データ属性の適正に復号化されたビットマップとパラメータクラスとをそれぞれ比較することにより、この付加技術についての効率的実施が行なえる。
【０１０２】
実行プログラム１２、１７には、現在有効なインタラクションコンテキストについての参照を記憶するメモリ要素２０における現在のインタラクションコンテキストの初期化に使用されるインタラクションコンテキストについての参照を設けることができる。このため、通常の演算状態への復帰時の内部矛盾の検出後、又は実行プログラム１２、１７が付勢されており且つ明確なインタラクションコンテキストが他のデータ処理ユニット５から受けた通信プリミティブにより全く特定されていないときには最終作動を実施できる。この省略時のインタラクションコンテキストは、上記カードホルダのアプリケーションに含まれるこのようなコンテキストとなる。また、メモリ手段９、１６には、暗唱番号（ＰＩＮ）を設けるべく専用化されたインタラクションコンテキスト１１、１９を含めることができる。実行プログラム１２、１７は、データ交換システムのユーザにより供給される暗唱番号を検証するように構成されている。このような幾つかの暗唱番号、パスワードを使用できる。このような１つのパスワードは、プライバシー感知データが暴露されるトランザクションでのデバイスの使用の保護に使用できる。第２パスワードは、パスワード所有者により支払い可能な価値を表すデータが通信されるトランザクションを保護するのに使用できる。第３パスワードは、各インタラクションコンテキスト１８内で特定化されることを必要とする保護モードのようなアプリケーションのセキュリティにとって厳格であると思われる演算が遂行されるトランザクションを保護するのに使用される。他のパスワードを与えることもできる。このＰＩＮ管理インタラクションコンテキストは、上記カードホルダのアプリケーションに含まれるこのようなコンテキストに都合よいものであろう。
【０１０３】
各アプリケーションディスクリプション１３、１８は、全てのインタラクションコンテキスト１１、１９についての識別子を与えるように構成された数値リストで構成でき、各アプリケーションディスクリプション１３、１８は、少なくとも、アプリケーションの種類を表示する第１数値と、アプリケーションを形成するエンティティのユニークな識別を表示する第２数値と、アプリケーションディスクリプション１３、１８の性質を表示する第３数値と、各々が１つのインタラクションコンテキスト１１、１９にユニークに関係する他の数値との内の何れかのものの組合せで構成できる。最初の２つの数字は商業においてうまく確立されているルールに従って割り当てられる。一方、残りの数字は、適当と思われるエンティティを形成するアプリケーションにより選択されよう。より詳しくは、異なる実施バージョンを区別するための数値又は暗唱計算のアプリケーションに用いられる暗唱キーセットの創成を識別するための数値を割り当てる。インタラクションコンテキストの識別数字のリストにおける第１要素は、省略時のコンテキストを識別する。
【０１０４】
データ通信手段７、１４は、データブロックでのデータ交換を構成するように配置するのが好ましい。これらのデータブロックは少なくとも１つの２つの部分からなり、第１部分は、通信プリミティブ又は実行される演算から得られるデータにより表示されるコマンドにより遂行される演算の性質に影響を与えるのに使用される点で、演算的に修飾されたデータである。第２部分は、これが、演算を遂行する上での適当性又は演算に使用すべき演算部分内でのデータの受容性の適当性を決定すること又は暴露データの演算又は訂正に完全性を与えることに使用される点で、セキュリティとして修飾される。
【０１０５】
データがこのようにして構成されると、実行プログラム１７は、現在のインタラクションコンテキスト２０、２１で特定された演算を遂行する通信プリミティブを受け入れると、所定の及び固定された作動シーケンスの一部として各演算を遂行し、各演算は、受け入れられた通信プリミティブに関連する手順ディスクリプションルールの一部として別々に特定される。第１作動は、通信のシーケンスにおけるこの部分での通信プリミティブの使用を許可する機能として特定される。第２作動は、演算データ又はその任意部分を復号する機能として特定され、これに対し、第３作動は演算手順の真部分（operational procedure proper）として特定される。第４部分は、遂行される演算から得られる任意の演算データを暗号化すべく特定され、第５作動は、遂行された作動又は結果データの訂正の完了の証明を計算し、又は受入れデータ処理ユニットでのセキュリティ計算に使用する機能として特定される。これらの作動は、図５のフローチャートに反映されている。
【０１０６】
また、データ処理ユニット５は、リセットメッセージに対するアンサーに、受入れデータ処理ユニット４による値に予測できないように選択された番号（この番号は、暗号計算用のベースとして機能できる）を含む。このような番号は、「カードトランザクション番号」として指定される。
【０１０７】
新しいインタラクションコンテキスト１１、１９を入力するリクエストとして常に解釈される特定値を割り当てた１つの通信プリミティブが与えられる。この通信プリミティブは、「付勢コマンド (activation command)」として指定できる。付勢コマンドを伴うデータは、リセットメッセージへのアンサーの一部として通信される識別番号に関係付けることにより付勢されるように、コンテキストを充分に特定する。付勢コマンドに応答して遂行される作動は、除勢として指定されたプリミティブを受け入れるコンテキストに含まれる手順ディスクリプションにより第１に記述され且つ入力すべきものとして特定されたコンテキストに含まれる付勢として指定された手順ディスクリプションに第２に記述される。
【０１０８】
好ましくは、特定のインタラクションコンテキスト１１，１９を入力するのに用いられる通信プリミティブは、その後に続く通信におけるセキュリティ計算で使用されるべき数値である。第１の値は、処理ユニットの１つによりランダムに生成され得、第２の値は、その１つの処理ユニットを識別するのに役立つことができる。このような値は、使用された暗号化プロトコルの必要条件に従って異なる形で計算でき、このような差異は手順ディスクリプションＣ１の一部として特定され得る。この識別は、結果として得られる値が、活動化すべきインタラクションコンテキスト１１，１９の中のその後のデータ交換において行なわれる得る計算又はその他の動作によって要求されるようなデバイス及びそのメモリの状態を充分に識別するようなものである計算の結果であり得る。この第２の値を「端末識別」と呼ぶことができる。
【０１０９】
また、付勢コマンドは、丁度付勢されているコンテキストにおけるデータの次の交換において行なわれることがある計算又は他の作動により要求されると、結果データの一部として、特別に応答するデータ処理ユニットを識別すべく機能する番号を与え、この番号は、「スマートカード識別 (smart card identification)」と指定できる。
【０１１０】
更に、スマートカード識別番号は、データ処理ユニット５に記憶されたデータからの暗号関数又は付勢コマンドの一部として受け入れられるデータからの暗号関数を用いて、異なる端末識別番号をもつ開始デバイスから受け入れた付勢コマンドに応答して計算されるときに数字が予測できない態様で変化するようにして計算できる。かくして、計算されるスマートカード識別は、「スマートカード筆名 (smartcard pseudonym)」として指定できる。また、入力すべきコンテキストの付勢手順の手順ディスクリプションに記述された作動を遂行する前に、実行プログラムは、コンテキストが付勢されているか否かを決定すべく付勢時に遂行されるように指定されたコンテキストでの手順ディスクリプションとして特定された暗号計算を遂行できる。この計算には、スマートカードトランザクション識別、端末トランザクション識別、及び端末識別及びメモリ手段に記憶された他の値を含めることができる。
【０１１１】
コマンドを遂行する特定データによりサポートされたこれらの暗号プロクトコルとは別に、参照データ要素のビットフィールド仕様 (bitfield specification)」を備えたコマンドを使用できる。この場合には、各通信プリミティブは２つ以上の数値からなり、第１の数値は、通信プリミティブに関連する作動の手順ディスクリプションについて使用され、第２の数値は、２進数値（各２進数値は、実行プログラム１２、１７により単一データ要素についての参照として解釈される）の固定数字からなる。このデータ要素は、関連するインタラクションコンテキスト１１、１９における外的データ参照のリストに特定され、リスト中の各データ要素は、２進数値のリスト中の対応する位置における２進数字の１つの２進数値の存在により特定される。この第２の数値は、「オペランドアドレス (operandaddress)」として指定することができる。このように特定された各データ要素は、応答作動の手順ディスクリプションに記述されたようにして、応答作動に使用される演算実行プログラム１２、１７により利用できるようにされる。
【０１１２】
参照データ要素のビットフィールド仕様をもつ特定データ及びコマンドによる暗号プロクトコルとは異なり、データ要素のデータマッチ仕様 (data match specification)をもつコマンドフォーマットを適用できる。この場合、各通信プリミティブは２つ以上の数値からなる。第１の数値は、通信プリミティブに関連する作動の手順ディスクリプションに関して使用され、第２の数値は、該第２の数値にマッチする値を含む場合に任意のデータ要素が選択されるように応答する作動を遂行する間に、アクティブなインタラクションコンテキスト１２、１９の外的参照に利用できるどのデータ要素を使用するかを決定するのに使用される。この第２の数値は、「オペランドタッグ規制詞 (operand tag specifier)」と指定することができる。また、インタラクションコンテキスト１１、１９には、コマンドの一部として与えられたオペランドタッグ規制詞を、如何にして、コンテキストの外的参照に利用できるいずれかのデータ要素に含まれるデータと比較するかを示す手順ディスクリプションを含めることができ、この手順ディスクリプションは、該手順ディスクリプションが、コマンド作動を適正に特定化して遂行される前に、意図したデータ要素を選択すべく遂行される。
【０１１３】
更に別の態様として、コマンド解釈のビットフィールド仕様をもつコマンドフォーマットを使用できる。この場合には、各通信プリミティブを２つ以上の数値で構成できる。第１の数値は、通信プリミティブに関する作動の手順ディスクリプションに関連して使用され、第２の数値は、通信プリミティブのデータフォーマットの解釈及び対応する作動の遂行に使用される実行プログラム１２、１７により割り当てられた特別な意味をもつ多数の２進数値からなる。ここで、第２数値は「コマンド修飾子（command modifier）」と指定することができる。これらの数値は、この付加技術を備えたあらゆるユニットにより割り当てられる、これらの意味が認識される。
【０１１４】
後者の別の構成が適用される場合には、コマンド修飾子には、コマンドの第３部分がオペランドアドレス又はオペランドタッグ規制詞として使用されるか否かを決定する２進数値を含むことができる。しかしながら、別の構成として、コマンド修飾子には、コマンドに対する応答として遂行される演算が１つのデータ要素としてデータを使用するか、データ要素（データ要素は、オペランドアドレス又はオペランドタッグ規制詞を用いたコマンド値の一部として特定された各データ要素と関連して処理される）の連結 (concatenation)からなるかを決定する２進数値を含めることができる。或いは、コマンド修飾子には、コマンドが設けられたデータが、連続的に連結されたデータ要素を判断するタグ・長さ・値法（tag-length-value method）を用いて符号化されるか否かを決定する２進数値を含めることができる。
【０１１５】
別の任意事項であるが、コマンド修飾子には、コマンドに含まれる作動が、データ処理ユニット５（スマートカード）に記憶されたデータの有効変化に実際に導くか、データ処理ユニット５により計算されるデータを実際に得るか、コマンド結果はコマンドの受容性に関するユニットの状態を反映するデータであるかを決定する２進数値を含めることができる。データはそれを同伴し、データのサイズは、計算又は他の種々の属性から定まるであろう。
【０１１６】
要するに、スマートカードでの実施においての上記新しい技術は、別の実行環境の概念である。このアプローチでは、コンピュータの処理手段及び他の構成部分は、あたかもアプリケーションがコンピュータの単一ユーザであるように、種々のアプリケーション間で共有される。スマートカードの実施におけるこの新しい技術には、多数の関連アプリケーションにより共有されるデータについて多数のアクセス条件を作る機構が設けられる。別の実行環境によりサポートされる第２の技術は、データ交換システム内の２つの同様なデータ処理ユニット４、５間の各インタラクションにおける最小数のコマンドを得るため、各環境でのコマンドの機能的意味を定めることができることである。最後に、新しい技術によれば、記憶されたデータ要素を各コンテキスト内に別々に割り当てることができる。かくして、データ処理ユニット４、５のうちの一方のデータ処理ユニットから受けるコマンドの一部として、記憶されたデータ要素についての参照は非常に効率的なものとなる。すなわち、非常に少数のデータ要素及び各環境における今日の実際のスマートカードに使用されている少数の別個の演算のため、名前及び情報スペースを符号化するのに、数ビットのみが必要であるに過ぎない。同様な態様において、実際のスマートカードにおいてこの目的のために利用できるアクセス条件、アクセス条件の検証方法、及び暗号的演算は数が非常に制限されており且つこれらは、アプリケーションディスクリプション１８に含まれるインタラクションコンテキストディスクリプション１９（１）・・・の２つの階層に非常に効率的に表現できる。
【図面の簡単な説明】
【０１１７】
【図１】データ要素の階層的に組織されたコレクションに基づく、スマートカードの従来のアプリケーション設計を示すものである。
【図２】ポータブルデータ処理ユニットと、現在標準として受け入れられているフォーマットでの同様な処理ユニットとの間の通信フロー図である。
【図３】スマートカード又はＰＣＭＣＩＡカードといったようなポータブル処理ユニット及びカード端末装置又はポータブルパーソナルコンピュータといったようなより静止型の処理ユニットの中でインタラクションコンテキストを用いた本発明の基本的実施を提示している。
【図４】手順の遂行の間に使用される、インタラクションコンテキストと、データ要素と、ライブラリ関数との間の種々の関係を強調する実行コンテキスト（execution context）の実用組織の一例を示すものである。
【図５】通信プリミティブにより呼び出される設定手順（procedural description）の遂行に含まれるプログラム実行制御及びセキュリティコンテキストスイッチ (security context switches)の一例を示すフローチャートである。
【図１】
2007226839.tif 000003
【図２】
2007226839.tif 000004
【図３】
2007226839.tif 000005
【図４】
2007226839.tif 000006
【図５】
2007226839.tif 000007