説明

スマートカード・システム

プログラマブル・デバイス(例えばスマートカード)は、オン・デバイス・ファイル・システムが、端末又はインターフェイス・デバイスにおける少なくとも1つのオフ・デバイス・ファイル及び/又はアプリケーションとインターフェイスすることを可能にする、ファイル・システム及びオペレーティング・ソフトウェアを担持する。スマートカードは、ファイル・システムの構造及び内容、又は、ファイル・システムにアクセスするために使用されるべきコマンド、又は、それに関連する任意のセキュリティ状態を修正するための、スクリプト・コマンドを走らせるためのスクリプト・エンジン等の手段を含む。本発明の改良版スマートカードでは、前記スクリプト・エンジンは、複数のスクリプト・コマンドを次々に走らせ、前記デバイスの入力/出力バッファをアキュムレータとして使用して、前記スクリプト・コマンドの内の1つ又は複数の制御下で、データ・ファイル内又は前記アキュムレータ自体の内に保持されている値に対する算術演算を可能にするように動作可能である。これにより、前記システムは、算術演算(ADD(加算)、SUBTRACT(減算)、又はCOMPARE(比較)、或いは他の同様のカスタマイズされた演算等)を行うことが可能になる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、国際特許出願の第WO03/049056号パンフレットに記載のスマートカード・システムの改良版に関連し、より詳細には、当該出願に記載のスクリプト及びスクリプト・エンジン機構の機能を拡張することにおける可能性、並びに、実施され得る演算の範囲の拡大に関連する。
【背景技術】
【0002】
国際特許出願の第WO03/049056号パンフレットは、スマートカード・システムを記載し、そこでは、オペレーティング・ソフトウェアが、オン・カード及びオフ・カード・ファイル並びに/或いはアプリケーションを、自己記述型メッセージ向けのWeb(インターネット)標準言語(好ましくはXML)でフォーマットされたファイルを用いて、互いにインターフェイスさせることを可能にする。このファイルは、オン・カード及びオフ・カード・ファイル並びに/或いはアプリケーション同士がインターフェイスすることを可能にする、ファイル・システムと、ファイル・システムにアクセスするためのコマンドと、の内の少なくとも幾つかを含む。カードは、ファイル・システムの構造及び内容、又は、ファイル・システムにアクセスするために使用されるべきコマンド、又は、それに関連する任意のセキュリティ状態を修正するために、XMLファイルから導出されるスクリプトを走らせるためのスクリプト・エンジンを、含む。
【0003】
国際特許出願の第WO03/049056号パンフレットに記載の既存のシステムを拡張するには、Read(読込み)、Update(更新)等のファイル・システム・コマンドに加えて他の演算も追加することが望ましいはずである。追加の演算は、ファイル内のレコード又はより簡易なデータ・オブジェクトの何れかに対する、ADD(加算)、SUBTRACT(減算)、又はCOMPARE(比較)、或いは他の何らかのカスタマイズされた演算等の算術演算を含むことが好ましいはずである。しかし、かかる機能は、複雑なアプリケーションにおいて広く使用可能ではあるが、WO03/049056に記載のシステムでは、かかる機能は、カードによって担持される簡易なスクリプト・エンジンに、システムのオペレーティング・システムと共に必要とされる演算を実行させることが可能になるような形で実装される必要がある。特に、
・システムは、入力データと、現在のアプリケーション状態と、変数とに基づいて、結果を返却し又は内部変数を更新するための機構をサポートすることができ、
・アプリケーション論理は、電子的な、例えばインターネット・ベースの分散システムを介してリモートの位置からフィールド単位で更新することができ、
・国際特許出願の第WO03/049056号パンフレットのスマートカード・システムにおける既存のアーキテクチャは、サポートされ、
・アプリケーション論理の実行を制御するために、アクセス条件を課すことが可能であること、
が望ましい。
【発明の開示】
【課題を解決するための手段】
【0004】
本発明によれば、上記で概略された種類のシステムにおいて使用するための及び国際特許出願の第WO03/049056号パンフレットの主題についてのプログラマブル・デバイスが提供され、そのデバイスは、スクリプトを走らせるための手段が、複数のスクリプト・コマンドを次々に走らせ、前記デバイスの入力/出力バッファをアキュムレータとして使用して、前記スクリプト・コマンドの内の1つ又は複数の制御下で、データ・ファイル内又は前記アキュムレータ自体の内に保持されている値に対する算術演算を可能にするように動作可能である、ことを特徴とする。
【0005】
国際特許出願の第WO03/049056号パンフレットにおいて定義されるように、スクリプトは、その大部分がファイル・システムの操作に関するISO 7816−4に従う、一続きの応用プロトコル・データ単位(Application Protocol Data Unit:APDU)である。
【0006】
値は、好ましくは、オペレーティング・ソフトウェアのRead Record(レコードの読込み)及びUpdate Record(レコードの更新)コマンドをそれぞれ使用して、データ・ファイル又はアキュムレータから読み込まれ、そこに書き込まれてもよい。
【0007】
従って、本発明者らは更に、マシン処理コードが、レジスタ間の比較及び算術演算を実施できることを理解している。標準的なREAD及びUPDATEコマンドは、レジスタ(レコード)にデータを入れ、そこからデータを取り出す基本的な演算を実施するために使用されてもよい。これを行う1つの手法は、比較及び算術をより容易にし、必要とされる開発時間を遥かに少なくする、固定サイズのレジスタ(レコード)を有することのはずである。従って、各レコードをレジスタとして効果的に扱い、既存のマシン・コード処理を使用することにより、提案される種類の追加の機能を達成することが可能である。
【0008】
スクリプトを走らせるための手段は、値の比較を実行することと、前記比較の結果に基づいて複数のスクリプト・コマンドの内の所定の1つに分岐することとが可能であることが、好ましい。
【0009】
従って、スクリプト・エンジン自体が、CONDITIONAL(条件)ステートメント(もし(IF)・・・であれば(THEN)、APDU Xに移行(GO TO))を含むように拡張されている場合、この機能は、国際特許出願の第WO03/049056号パンフレットに提案のオン・カード・スクリプト・エンジンによって走行され得るスクリプトとして構成される、電子財布処理(electronic purse operation)等のアプリケーションを可能にするように拡大されてもよい。かかる拡張版スクリプト・エンジンでは、次の一続きのADPUが実行されるよう指令するために、COMPAREコマンドの結果が、使用されてもよい。このことは実際に、例えばトランザクションの履歴を検査した後でカードに複雑な判断を行わせる際に必要とされるような、マクロ式の処理を実施するためのスクリプトの構築を可能にする、スクリプト・プログラム・フロー機能を与える。
【0010】
このプログラム・フロー機能をスクリプト・レベルで追加することにおける重大な利益は、低レベル通信等データ分離に関わる問題が全て、スマートカード・システムの下位層で対処されることである。カードのオペレーティング・システムだけではなく特定のアプリケーションのビジネス論理も、「カードから離れて(off the card)」構築され得、カード上で走るスクリプトに翻訳され得る、流れ図等のユーザ・フレンドリなインターフェイスを用いて非常に高いレベルで指定され捕捉され得る。XMLフォーマット化は恐らく、国際特許出願の第WO03/049056号パンフレットに既に記載されているXMLファイル・システム・モデルの拡張としての「擬似コード」の中間段階として使用されるはずであり、その場合は、当該システムの端末フレームワークへのビジネス論理入力として働く。国際特許出願の第WO03/049056号パンフレットに記載の構成ツールも、要件エントリ・ポイント(requirements entry point)のような流れ図及びラダー・シーケンス図を含むように拡張され得る。
【0011】
更に、この改良版システムでは、端末又はインターフェイス・デバイスから発行されるべきコマンド・シーケンスは、クレジット・カードの支払請求等、完全なビジネス・アプリケーションを構築するためのスクリプトの選択及び実行を含むはずである。
【0012】
その利益は、アプリケーションの高レベルの機能要件(人的に生成される図)から、何れか又は両方のプラットフォーム上で走るより複雑なビジネス論理を含めたコードの走行に直接移行することにより、端末及びカード・アプリケーションの同時開発が可能になることである。
【0013】
概略するために、国際特許出願の第WO03/049056号パンフレットに記載のシステムは、ビジネス論理の生成を自動化しない。上記で概略され以下で更に詳細に説明されるシステムにおけるスクリプト機構の拡張は、カード上で走るビジネス論理コードの自動化された生成を可能にし、また、端末上で走るようにも拡張され得る。このため、それ自体既に高効率な従来の方法によって開発されることが委ねられるのは、端末設計におけるユーザ・インターフェイス及びホスト通信の諸側面だけである。
【発明を実施するための最良の形態】
【0014】
ここで、かかるシステムに関する高レベル・アーキテクチャを示す添付の図面を参照して、本発明の一実施形態が、例示的な形で詳細に説明される。
【0015】
1つ又は複数の作業変数及び幾つかのシステム変数を有するシステムでは、次のような1組の基本的な制御及び論理関数を与えることが望ましい。
【0016】
【表1】

【0017】
これらのコマンドは、単一の作業アキュムレータとRAMに格納された複数のシステム変数とを用いて、簡易なコマンド・プロセッサ又はスクリプト・エンジン上でサポートされ得る。システムはまた、プログラム・カウンタ及び1組の状態フラグ、即ち、ZERO(EQUAL)と、CARRY(GEATER THAN)と、NEGATIVEとを必要とするはずである。
【0018】
上記で列挙されたコマンドを実装するのに必要とされる高レベル・アーキテクチャの概要が、添付の図面に示される。演算は全て、アキュムレータ上で実施され、このアキュムレータを介して、一方の変数から他方の変数にその内容を移動させることが可能である。次に、プログラム・カウンタは、命令のそれぞれを1つずつ経由していき、命令が、分岐命令である場合は、分岐テストによって定義された該当する命令へと移行する。
【0019】
アプリケーション論理は、国際特許出願の第WO03/049056号パンフレットのシステムによってサポートされる既存のスクリプト処理機構及びデータ構造上に実装され得る。このシステム内では、システム変数には、入力/出力(「IO」)バッファを使用して、レコード及び実装されるアキュムレータが移植され得る。変数からデータをロードし、変数にデータを格納するための機構は、システムのRead Record及びUpdate Recordコマンドの形で、既にシステム内に存在する。システムのセキュリティ・マネージャは、データを入力し出力する際の安全なメッセージングのためのサポートを提供する、変数へのアクセスを制御するためのセキュリティ環境の創出を可能にする。
【0020】
予期されるAPDU内のコマンド・データの長さである「Lc」が、APDU内で指定されている場合にも、スクリプト・マネージャは、スクリプトがデータを含んでいることを検査しないので、システムは、例えばLc値を伴うがデータを伴わないUpdate Recordコマンドのスクリプトを可能にすることになる。このコマンドは、以前のコマンドからのバッファ内のデータを使用することになる。この機構は、コマンドが、スクリプト・データ(絶対値)、又は、最終スクリプト結果からの既存のデータの何れか一方に対する演算を可能にする際に使用され得る。
【0021】
国際特許出願の第WO03/049056号パンフレットのシステムにおけるスクリプト・マネージャは既に、単一のコマンドを経由している。この追加のアプリケーション論理機能は、スクリプト(命令)のリスト内での分岐を可能にする。スクリプト・マネージャは既に、スクリプト内容の一貫性及び許可を検査するためのサポートを提供している。スクリプト・マネージャは、暗号化されたアプリケーション論理プログラムのダウンロードもサポートしている。
【0022】
想定される種類のスマートカード・アプリケーションは、それ自体のアプリケーション・データ用の1つ又は複数のレコード・ファイルを使用することができる。このスマートカード・アプリケーションは、ファイル内に最大254個のレコードを有することができる。ISO 7816ファイル・システムに定義される短いファイル識別子(short file identifier:SFI)を使用することにより、レコードの読込み、レコードの更新を行うためのコマンド、又は、他の任意のレコード・コマンドが、ファイル、レコード及び演算を指定する単一のコマンド・スクリプト内に、含まれてもよい。処理を簡略化するには、全てのレコードが、一定長であるべきである。4バイトのレコードを使用すると、−32768〜+32767の範囲の符号付き整数をサポートできるシステムが、提供され得る。
【0023】
上述の通り、システムのRead Record及びUpdate Recordコマンドは、Load及びStore処理を実装するために使用され得る。AND、OR、及びXOR論理演算をサポートするには、追加のコマンドが、必要とされる。国際特許出願の第WO03/049056号パンフレットのスマートカード・システム内には既に、ある程度のサポートが存在する。例えば、Write Recordコマンドが、ZERO(「Z」)フラグを有効化し得るAND又はOR論理更新を実施することになる。
【0024】
Add(加算)及びSubtract(減算)は、コマンド・データ内に保持される値を基に又はアキュムレータ内の値を基に、レコード内の値の加算又は減算を行う、新しいコマンドとして実装されるはずである。これらのコマンドは、Z又はNEGATIVE(「N」)フラグを更新することもできる。
【0025】
Compareコマンドは、単にコマンド内又はアキュムレータ内の値を指定されたレコード内の値と比較するだけの、新しいコマンドとして実装される必要があるはずである。このコマンドは、EQUAL(「Z」)又はCARRY(「C」)フラグを更新することもできる。
【0026】
Branch(分岐)コマンドは、フラグの状態に基づいてスクリプト・ポインタを更新するコマンドとして実装される。スクリプト・ポインタは、Branchコマンド内で指定される固定数のスクリプト(肯定又は否定)単位で、それ自体の位置に関連して修正(相対分岐)されるはずである。
【0027】
Exit(出口)コマンドは、結果又はエラーを伴うスクリプトから抜けるために必要とされる。出口データは、既存のシステムにおけるSW1、SW2パラメータの形で返却されるエラー・コードを含むはずである。
【0028】
国際特許出願の第WO03/049056号パンフレットに記載の既存のシステム下では、レコード・ファイルは、レコード・データの更新を許可するように設定されたそれ自体のアクセス条件を有することができる。更新は、アクセス条件を何ら有さなくてもよく、或いは入力データの事前認証又は安全なメッセージングを必要としてもよい。レコード・ファイルは、それに伴うデータを返却するために使用され得るので、アクセス条件は、安全なメッセージング(「SM」)に設定されるはずである。最終スクリプトが、このレコード・ファイルを読み込んだ場合は、セキュリティ環境が、データに符号を付け、それにより応答が、証明される。
【0029】
スクリプトには、符号が付けられ、任意選択で、それらが端末上に格納される前に、カード発行者/スキーム・オーナによって暗号化される。スクリプト・マネージャしか、検証済みのスクリプトを走らせることはないので、端末も他の如何なるものも、カード上にスクリプトをダウンロードし、そこでスクリプトを走らせ、或いは既存のスクリプトを修正することはできない。
【0030】
以下の例は、電子財布スキームにおいて提案される論理の諸機能を示す。
【0031】
(実施例)
電子財布は、4つの財布から成る。このスキームは、次の処理を必要とする:
・Read Balance(残高の読込み)
(残高が証明される)
・Decrement Balance(残高の減分)
(資金が十分でない場合の、1つの財布から別の財布への構成可能な資金(fund)の自動振替(auto transfer)。
財布内の資金が十分でない場合はエラーとし、財布の振替を行う)。
・Increment Balance(残高の増分)
(オンライン・ロードのみ)
・Transfer Balance(残高の振替)
(資金が十分でない場合は、エラーとする。
財布上限に到達した場合はエラーとする。)。
【0032】
各財布毎に、レコード・ファイルが、作成される
・残高を伴うレコード。
【0033】
次のレコードを伴うレコード・ファイルが、作成される
・減分され又は振り替えられるべき金額を指定するレコード。
【0034】
このシステムのスクリプトは、次の処理を行うことになる:
・Read Balance(残高の読込み)
(残高の読込みは、通常のRead Recordコマンドによってサポートされる。
ファイル用のSEは、値を証明するための読込み用のSMをサポートする。)
・Decrement Balance(残高の減分)
(端末によってダウンロードされ走行される、指定された財布を指定された金額だけ減分するためのスクリプトが、作成される。)
・Increment Balance(残高の増分)
(通常のUpdate Recordコマンドが、残高の増分をサポートする。ファイル用のSEは、更新用のSMにオンライン・ロードだけを許可するよう義務付ける。オンライン更新は、上限及び閾値を更新するためにも使用される。)
・Transfer Balance(残高の振替)
(端末によってダウンロードされ走行される、財布間で資金を振り替えるためのスクリプトが、作成される。財布及び金額が、入力される。)。
【0035】
これらのステップを実施するための低レベル・コーディングは、次の通りとし得る。
【0036】
Decrement Balance(残高の増分)
【0037】
【表2】

【0038】
Transfer Funds(資金の振替)
【0039】
【表3】

【0040】
財布内の残高を減分するための要求は、以下の通り処理されるはずである。
スクリプトを適切な形で走らせるのに先立ち、システムは、取引先又は仕入先から、ユーザの財布において減分されるべき金額を取得する必要があるはずである。ファイルのアクセス条件は、スクリプトのロード及び走行を許可するために使用される。
【0041】
【表4】

【0042】
次いで、システムは、スクリプト・コマンド自体を次のように走らせる。
【0043】
【表5】

【0044】
このスクリプトは、15個のスクリプト・コマンドを必要とし、暗号化及び符号付け前は、約100バイトとなるはずである。
【0045】
残高が振り替えられる場合のスクリプト・コマンド・シーケンスは、以下の通りである。ファイルのアクセス条件はここでも、スクリプトのロード及び走行を許可するために使用される。システムは、予備ステップとして、振り替えられるべき金額を取得する必要があるはずである。
【0046】
【表6】

【0047】
財布1=財布からの振替であり、財布2=財布への振替とする。
【0048】
この場合のスクリプト・コマンドは、次のようになるはずである。
【0049】
【表7】

【0050】
従って、上記の記載を読めば、上述の改良版システムは、国際特許出願の第WO03/049056号パンフレットのシステムにおいて利用されるスマートカード又は他のプログラマブル・デバイス上にダウンロードされ、そこで走行されることになるコードを制御する、アプリケーション論理を可能にすることが、理解されるであろう。上述の改良版システムは、簡易な1組の論理及び算術演算と制御機能とを提供し、使用されるプラットフォームとは独立したものである。
【図面の簡単な説明】
【0051】
【図1】

【特許請求の範囲】
【請求項1】
ファイル・システム及びオペレーティング・ソフトウェアを担持するプログラマブル・デバイスであって、
オン・デバイスのファイル・システムは、少なくとも1つのオフ・デバイス・ファイル及び/又はアプリケーションとインターフェイスすることを可能にし、
前記デバイスは、
前記ファイル・システムの構造及び内容、又は、前記ファイル・システムにアクセスするために使用されるべきコマンド、又は、それに関連する任意のセキュリティ状態を修正するための、スクリプト・コマンドを走らせるための手段を含み、
前記スクリプトを走らせるための前記手段は、複数のスクリプト・コマンドを次々に走らせ、前記デバイスの入力/出力バッファをアキュムレータとして使用して、前記スクリプト・コマンドの内の1つ又は複数の前記制御下で、データ・ファイル内又は前記アキュムレータ自体の内に保持されている値に対する算術演算を可能にするように動作可能である、ことを特徴とするプログラマブル・デバイス。
【請求項2】
請求項1に記載のデバイスであって、前記スクリプトを走らせるための前記手段は、値の比較を実行することと、前記比較の結果に基づいて前記複数のスクリプト・コマンドの内の所定の1つに分岐することとが可能である、デバイス。
【請求項3】
請求項1又は請求項2に記載のデバイスであって、値は、前記オペレーティング・ソフトウェアのRead Record及びUpdate Recordコマンドをそれぞれ使用して、データ・ファイル又は前記アキュムレータから読み込まれ、そこに書き込まれる、デバイス。
【請求項4】
請求項1〜請求項3の何れか1項に記載のプログラマブル・デバイスであって、前記オン・デバイスのファイル・システムの前記構造及び内容、前記ファイル・システムにアクセスするために使用されるべき前記コマンド、及び、それに関連する任意のセキュリティ状態は、自己記述型メッセージ向けのWeb(インターネット)標準言語でフォーマットされた少なくとも1つのファイルによって定義される、プログラマブル・デバイス。
【請求項5】
請求項1〜請求項4の何れか1項に記載のプログラマブル・デバイスであって、自己記述型メッセージ向けの前記Web(インターネット)標準言語は、拡張可能マークアップ言語(XML)であり、前記少なくとも1つのファイルは、XMLドキュメントである、プログラマブル・デバイス。
【請求項6】
請求項1に記載のデバイスであって、前記スクリプトを走らせるための前記手段は、アキュムレータ内のデータとレジスタ内のデータとの間の、加算又は減算演算を実行することが可能である、デバイス。
【請求項7】
請求項1に記載のデバイスであって、前記スクリプトを走らせるための前記手段は、アキュムレータ内のデータとレジスタ内のデータとの間の、論理AND、OR、及びXOR演算を実行することが可能である、デバイス。
【請求項8】
請求項1に記載のデバイスであって、1つ又は複数のフラグは、実行されたスクリプト・コマンドの結果に基づいて、セットされ、クリアされ得、その結果、実行すべき次の1つ又は複数のスクリプトにおけるフローは、論理的に制御され得る、デバイス。

【図1】
image rotate


【公表番号】特表2007−517301(P2007−517301A)
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2006−546327(P2006−546327)
【出願日】平成16年12月23日(2004.12.23)
【国際出願番号】PCT/GB2004/005434
【国際公開番号】WO2005/064555
【国際公開日】平成17年7月14日(2005.7.14)
【出願人】(504218369)エセブス・リミテッド (6)
【Fターム(参考)】