JP2003525482A - Icカード上に搭載されたシステムのコード変換器の検証方法 - Google Patents

Icカード上に搭載されたシステムのコード変換器の検証方法

Info

Publication number
JP2003525482A
JP2003525482A JP2001508686A JP2001508686A JP2003525482A JP 2003525482 A JP2003525482 A JP 2003525482A JP 2001508686 A JP2001508686 A JP 2001508686A JP 2001508686 A JP2001508686 A JP 2001508686A JP 2003525482 A JP2003525482 A JP 2003525482A
Authority
JP
Japan
Prior art keywords
code
source code
card
virtual machine
converted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001508686A
Other languages
English (en)
Other versions
JP2003525482A5 (ja
Inventor
ゴワール、クリスチャン
ジェンサン、トマス
フラド、パスカル
メタイエ、ダニエル ル
ドネイ、イーウァン
Original Assignee
ブル シーピー8
アンスチチュ ナショナル ド ラ ルシエルシュ アン アンフオルマティク エ アン オトマテイク
ル サントル ナショナル ドゥ ラ ルシエルシュ シアンティフィク(シーエヌアールエス)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブル シーピー8, アンスチチュ ナショナル ド ラ ルシエルシュ アン アンフオルマティク エ アン オトマテイク, ル サントル ナショナル ドゥ ラ ルシエルシュ シアンティフィク(シーエヌアールエス) filed Critical ブル シーピー8
Publication of JP2003525482A publication Critical patent/JP2003525482A/ja
Publication of JP2003525482A5 publication Critical patent/JP2003525482A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 本発明は、搭載システム(7)に向けられたソース・コードから変換済みコードへの変換器の検証方法に関する。この方法は少なくとも、これら二つのコード(1)、(3)の作用を因数に分解する唯一のバーチャル・マシンの決定のステップと、前記ソース・コード(1)および変換済みコード(3)の各々について前記ソース・コード(1)および変換済みコード(3)内に常駐する差異を表現する前記複数の補助関数を決定するステップと、補助関数の間の対応の適切さを検証することからなるステップを含んでいて、コードの変換器の検証(2)は、この最後のステップから得られる。特にICカード(7)に利用される。

Description

【発明の詳細な説明】
【0001】 本発明は、搭載されたシステムのコードの変換器を検証する方法に関する。
【0002】 本発明はまた、ICカード向けのコードを生成するための変換器へそうした方
法を適用することにも関する。
【0003】 本発明の範囲内で、「搭載(された)システム」という用語は最も一般的な意
味で考慮されるべきである。それは特にICカードへ向けられたシステムに関し
、ICカードは本発明の好ましい実施例を構成するが、しかし情報データ処理の
適当な手段を有する携帯用または移動用の装置へ向けられた全てのシステムに同
様に関係し、それらを以下に「処理のリソース」と呼ぶことにする。
【0004】 データ処理のリソースを備えたモデム搭載システムは、ますます複雑でますま
す多数の機能を遂行できるようになっている。しかしながら、技術市場への投資
とますます効率的な構成部品にもかかわらず、搭載システムの顕著な特性は、通
常の情報システム(マイクロ・コンピュータ、ワーク・ステーションなど)に関
して、それらがリソースの材料に課する制約(特に記憶容量とマイクロプロセッ
サの能力)に関係する。これらの制約を満足するために、搭載システム上で実行
するためのコードを変換することが必要である。この変換の目的は、リソースに
おいて一層効率的で一層経済的なコードを生成することである。
【0005】 思想を固定して、コードの非限定的な例とするために、「JAVA」(SUN
MICROSYSTEMS社の登録商標)言語のバーチャル・マシン内に書か
れたプログラムに従って考察するが、これは多数の環境内で実行できる有利さを
提示する。この言語のアプリケーションの領域は特にインターネット回路網の重
要な展開によって、実際に増殖した。「applets」と呼ばれる小さな記憶
容量の論理的利用の多くが、この言語で書かれていて、「WEB」タイプのナビ
ゲータによって実行できる。
【0006】 同様に本発明の好ましい利用の一つとして、ICカードの固有の情報リソース
によってこのタイプのコードを実行することがある。上述のように、重要な技術
進歩にもかかわらず、ICカードのメモリ容量は、それが装備するマイクロプロ
セッサの能力と同様に、比較的に限定されている。同様に重要なのは、ICカー
ド内にコードが常駐することであって、なぜならICカードとホスト端末機の間
の伝送は、それがどんなものであっても、実行速度が遅いからである。実際の規
格は、直列タイプの伝送しか用意していない。従って、この用途のために最適化
する全ての場合において「軽量化」できるコードで処理する必要が感じられる。
これをするために、「JAVA」から派生した言語で、「JAVA」の制限の形
で現れるもの、すなわち「JAVA CARD」(同様にSUN MICROS
YSTEMS社の登録商標)を使用することが提案された。
【0007】 搭載システムは一般に事実の信頼性と同時にセキュリティについて最も高度な
保証を要求する環境で使用されるという事実から、複雑な補足的機構が生じる。
ICカードの新バージョンの例として、調和的に協働すべき複数の論理アプリケ
ーションを、機密情報を明らかにせずにICカード上に設立することを希望でき
るものを挙げることができよう。実際アプリオリに、これらの複数のアプリケー
ションは、異なったユーザに関するものであり得る。前記の協働にもかかわらず
、厳格な仕切りを保って、所与のユーザに関する情報が機密のままであり、資格
のないユーザがそれらを知る(読取り)こと、および/または操作する(書込み
および連関した作業:消去、修正)ことが少しでも可能でないようにする。「機
密性」の面のほかに、他の要求が考慮に入れられ、特にいわゆる「完全性」:デ
ータの消失、不一致の修正などの要求を考慮に入れられる。
【0008】 「初期コード」の意味で「ソース」コードを考慮するならば、たとえば前記「
JAVA」言語の「バイト・コード」のように初期コードは必要な全ての保証を
提供し前記の諸要求を満足するが、この「バイト・コード」は「JAVA」言語
のバーチャル・マシン内に書かれるプログラムである。長期間にわたり実際多数
のテストが実行を可能にしてきた。
【0009】 前記「変換済み」コードは、コード変換器を使って「ソース・コード」から得
られ、コード変換器は一般に搭載システムの外部にあるが、しかし同様にその内
部にも常駐し得る。したがってソース・コードと変換済みコードの間では等価で
あることを示すことが必要である。
【0010】 このことはコードに実施された変換が(外部の観点において)どの点でもその
作用を変えないということと、セキュリティの欠陥が導入されないことを保証さ
れることにより実施される。言いかえれば(変換前の)初期コードは論理の観点
から(変換後の)結果のコードと等価な物でなければならない。
【0011】 変換はコードと操作されるデータの表現に上にグローバルな効果を有するので
、この特性を一般的に保証することはとくに困難である。実際のやり方では、こ
の作業により課される複雑性のために、経済的な条件および/または実際的な技
法において実施することができない。他方において、こうした必要は非常に最近
まで現れなかったことを理解すべきであり、とくにマルチ・アプリケーションお
よび/またはマルチ・ユーザのICカードの前記の技術開発に結びついて現れた
ものであることを理解すべきである。
【0012】 本発明はこの必要に対して、極端に長くかつ高価な手順を必要とすることなく
応答することを目指す。
【0013】 本発明による方法は、コードの変換の訂正を組織的でモジュール的な仕方で検
証することを可能にする。
【0014】 この発明の範囲内で、それ自体よく知られた二つのフォルマリスムが本質的な
仕方で使用される。それは操作的意味論と論理関係論である。これらのフォルマ
リスムの一層詳細な記述については、第1にH.R.Nielson、およびF
.Nielson著「意味論とその応用:正式な紹介」Wiley、1992年
および第2にMitchell著、「プログラミング言語の基礎」MITプレス
、1996年に出ているのが有益である。
【0015】 本発明の本質的特徴によれば、コード変換器の検証方法は、「補助関数」と呼
ばれる諸関数によりパラメータ表現された共通の一つのバーチャル・マシーンを
使って二つのコードの意味を明示することからなる。二つのコードの相違は、前
記補助関数で表現され再グループ化される。各補助関数は二つのバージョンを有
し、それはソース・コード内のバージョンと変換済みコード内のバージョンであ
る。最初のモジュールは二つのコードについて共通であるから同一であり、それ
らが等価ならば検証は行なわれない。二つのコードの等価を示すには前記補助関
数が二つずつ等価であることが示されれば充分である。これら二つの部分集合は
、ソース・コードと変換済みコードの二つの全体において考えて表現した二つの
集合よりもはるかに複雑さを少なくすることができる。本発明によれば検証処理
に固有の困難さは非常に減少されることになり、相関的な方法により検証のプロ
セスが経済的で技術的に実現可能なものになる。
【0016】 本発明のひとつの目的は、所定ソース・コードから搭載システム向けの所定変
換済みコードにする変換器の検証方法であって、前記ソース・コードと前記変換
済みコードはバーチャル・マシンに結合され、 前記ソース・コードと前記変換済みコードのそれぞれについて、これら2つの
コードの作用を因数分解する唯一のバーチャル・マシンを構成する共通の第1部
分集合を決定するステップと、 複数の所定補助関数で構成され、前記補助関数が前記ソース・コードおよび前
記変換済みコード内の常駐差異を表現する第2部分集合を、前記ソース・コード
と前記変換済みコードのそれぞれについて、決定するステップと、 前記ソース・コードに結合された前記第2部分集合に属する各ペアの第1補助
関数と、前記変換済みコードに結合された前記第2部分集合に属する各ペアの第
2補助関数を、前記補助関数のペアごとに結合するステップと、 前記全てのペアの前記補助関数の間で決定される対応の特性を検証するステッ
プと、前記コンバータによるソース・コードから変換済みコードへの前記変換は
前記決定される対応の特性を満足することを検証するステップを、少なくとも含
んでいることを特徴とする前記検証方法である。
【0017】 本発明の更なる目的は、ICカード内に登録されるためのコードの生成のため
の変換器のこのような方法の利用である。
【0018】 本発明によるコードの変換器の検証方法をこれから一層詳細な仕方で説明する
【0019】 図1は、最初または起源のコードという意味で、「ソース・コード」と呼ばれ
るコード1から、コード2の変換器を使って「変換済みコード」と呼ばれる最終
コード3へ変換する処理を図式的に示す。この変換器はおそらく情報手段または
一つの特定ソフトウェアである。従来の方法で変換済みコードは(実線の中の)
搭載システム4の中に常駐するように定められている。変換器2も同様に(点線
内の)参照番号4’の搭載システム内に常駐またはダウンロードされ得る。
【0020】 搭載システム4−4’内にローディングまたは記録の後に、変換済みコードは
唯一の参照番号5で表現された必要なだけの一つまたはいくつかのタスクの実行
を可能にする。搭載システム4が普通の自動的な情報資源(図示なし)を有する
ものと仮定する。
【0021】 アプリオリにコードの変換は全部で一回だけで所与の変換器により、またはま
れな機会すなわちたとえばオリジナルコード、またはソース・コード1のバージ
ョンの更新において実行される。
【0022】 したがって変換済みコード3がソース・コード1に等価であることの正式な証
明を確立できることが必要である。もし変換器2が正しい仕方で機能すればこの
プロセスが検証を可能にする。
【0023】 しかしながらすでに想起したように、全体としてソース・コードと変換済みコ
ードにより形成された二つの集合を考えるならば、このような決定が一般的に実
際的なやり方では理論的に不可能であることが証明される。
【0024】 本発明による方法の本質的な特徴は結局、二つのコードの各々について二つの
集合、すなわち第1部分集合と第2部分集合を見出すことで構成されることにな
る。本発明の方法の重要な特徴によれば、第1部分集合はソース・コードと変換
済みコードの二つのコードに共通のバーチャル・マシンを形成する。この事実に
より、第1部分集合の等価なことを検証することは不必要である。
【0025】 補助関数で構成される第2部分集合は、反対に一つのコードと他のコードを区
別する。ソース・コードと変換済みコードが等価であること決定は、このとき第
2部分集合の補助関数のペアが全て等価であることの決定になる。こうして補助
関数に常駐する複雑性を大きく減少し得る。結局等価であることの正確な決定が
可能になる。
【0026】 図2Aと図2Bは本発明による方法を非常に図式的に示す。
【0027】 図2Aが一層詳細に示すように、ソース・コード1および変換済みコード3の
第1部分集合が一つの共通のバーチャル・マシン13を形成する。第2部分集合
10と同30はそれぞれ一連の前記補助集合により構成され、それらが等価であ
ることは認証されるようになる。これらの補助集合10と同30は共通のバーチ
ャル・マシン13をパラメータ表現する。
【0028】 ソース・コード1と変換済みコード2の二つのコードの等価であることは、二
つずつ取った補助関数10と同30の等価であることを検証することになるが、
これは図2Bに関して後に示す。
【0029】 これから処理のステップを一層詳細な仕方で説明する。
【0030】 ソース・コードと変換済みコードが、それぞれ前記第1バーチャル・マシンお
よび第2バーチャル・マシンに結合される。
【0031】 第1ステップはソース・コードと変換済みコードの内容を因数分解できる唯一
のバーチャル・マシン(すなわち操作的意味論)の定義で構成される。二つのコ
ードの間の差異は、そのとき、二つのコードの中で異なって解釈されるかまたは
作動される補助関数を通して現れる。
【0032】 バーチャル・マシンは、下記の規則の集合により表現できる。
【0033】 諸前提(premisses)は、ある規則の適用条件、すなわちブール代数
式でも、状態変化を表現するために使用される変数への数の代入でもある。状態
の情報を引き出したり条件を表現したりするために、諸前提が補助関数の助けを
求める。諸前提が検証されて命令「Instruction1」が見出されたと
きに、マシンの状態がどのように展開するかを、各規則が指示する。コードの命
令の各タイプについて、この形式の規則を1つまたはいくつか定義される。
【0034】 第2のステップは、2つのコードの中に使用されるデータのタイプまたは構造
の定義からなる。基本的なタイプを例えば次のように定義できる。 そしていくつかのタイプは例えば次のように構成される。
【0035】 第3のステップは、θで参照され、諸バーチャル・マシンに使用されている諸
タイプの解釈からなる。各タイプθについてソース・コードについての解釈 と、変換済みコードについての解釈 と、2つの解釈 の間の関係 について1つの解釈が定義される。これらの関係は論理的関係と呼ばれて、諸タ
イプの構造を満足する。単純なタイプについては、それらは明示的に定義され、
構造化されたタイプについては、それらは構造の構成要素から推論される。
【0036】 例えば、下記の諸ペアについて、 これらの関係で、θ1とθ2はタイプであり、またa、b、a’、b’はタイプ
の要素である。
【0037】 同様に諸関数について、
【0038】 論理的諸関係が観察可能な諸タイプについて「同定される」関係であるはずで
あり、すなわち、2つのコードが同じ結果になることが望ましい。印刷可能なタ
イプおよび/または情報ディスプレイに表示可能なタイプが習慣的に問題になっ
ている。問題になるのは基本的なタイプであろうが、しかし例えばスタックすな
わち所与のプログラムの諸変数を表現する構造化されたタイプも問題であろう。
【0039】 第4のステップはバーチャル・マシン内で使用される補助関数の解釈からなる
。各補助関数fについて、 と記されるソース・コードについての解釈と、 と記される変換済みコードについての解釈が与えられる。
【0040】 等価の決定は、補助関数の定義が論理的関係を満足することを示すことからな
る。一層正確には、各補助関数f:θ→θ’について、下記のように示される。
【0041】 2つのバーチャル・マシンは下記の関係にあることになる。
【0042】 観察可能な諸タイプについて関係が同定されるように、ソース・コードと変換
済みコードが対話的に同定される。
【0043】 最後のステップは、論理的関係を満足する変換器Γ(図1:2)が存在するこ
とを示すことから構成される。それは、Γ:S→Tがその論証のタイプに連合し
た論理的関係を、ソース・コードS(図1:1)と変換済みコードT(図1:3
)によって満足することを検証することで為される。それを行なうには、下記の
関係に従うことが必要である。
【0044】 論理的関係が制約の集合を明示することが今や示された、従って、変換器2を
図面によって、洗練と抽出の技法を適用して、適当な証明の助けを求めながら、
正しく読み取ることができる。
【0045】 したがって本発明による方法は、検証のプロセスの大きな機械化を可能にする
ので重要な利点を提供し、特にこの検証が複雑さの一層少ない部分集合上で行わ
れるので、それを良好に実行することができる。
【0046】 ソース・コード1の変換は一層簡単な変換の連続のように書かれ得るが、この
方法は各変換を独立に示すために応用され得る。結局それはモジュール化の大き
な利点を提供する。
【0047】 図2Bに示すように物理的装置または論理的装置である装置6の助けを借りて
、補助機能10と同30の部分集合上だけで、検証を実行できる。n個の補助関
数が存在して、それぞれ10a、10b...、10i...、10n-1、10nおよび2
a、20b...、20i...、20n-1、20nと参照されるものと仮定する。装置
6が物理的装置であれば、検証回路60a、60b...、60i...、60n-1、60n (コンバータの記号により図2Bに任意に表現される)と同様に、たとえば関数
10iおよび30iのペアのための検証回路60iのように検証のための補助関数
のペアを含む。この装置6の出力または諸出力を一つの参照記号61で示すが、
ソース・コード1および変換済みコード3に対応する補助関数の全ての可能なペ
アの中の論理的関係が満足されることを指示する。この一連の操作は、二つのコ
ードの等価の正式な証明を、そのグローバル性においてもたらすのに充分である
【0048】 注意すべきは、本発明による方法はアポステリオリすなわち既存の変換器を検
証するために同様に、アプリオリに新しい変換器の開発の援助として使用できる
。特にこれは後者の場合に、正しく機能するための、言いかえればこの変換器に
よってソース・コードから生成される変換済みコードが前記の等価の要求を満足
するための、その特性を決定することができる。
【0049】 これからICカードの範囲内で説明する。図3は、ICカード7のアーキテク
チャを図式的に示す。この図には本発明による方法を良く理解するために必要な
要素のみを示している。
【0050】 ICカード7は特に、外部世界との通信を可能にする入出力装置70、固定ま
たはプログラム可能の(「ROM」、「PROM」、「EPROM」、または「
EEPROM」タイプの)1次メモリ装置71、およびランダム・アクセス・メ
モリ装置72を含んでいる。ICカード7はまたバスを介してICカード7の他
の構成要素と対話するマイクロプロセッサまたはマイクロコントローラ73を含
んでいる。
【0051】 このようなICカード7の論理的アーキテクチャはISO規格7816−3に
従って、プロトコル層によって翻訳されて入出力装置70に結合された最下層に
つながり、さらにICカード内に登録された論理アプリケーションに結合した最
上層につながっている。これらの規格は伝送が直列モードで実行されることを予
想している。
【0052】 ソース・コード1は変換器によってコード2へ変換されると、ICカード7へ
伝送されてそこへ登録されるが、一般に入出力装置70を介して固定または「半
固定の」メモリ装置71内に登録される。ICカード7により取扱われる単数ま
たは複数の論理アプリケーションはICカード7内、すなわちメモリ装置71内
に常駐として登録されるか、またはランダム・アクセス・メモリ72内に一時的
な仕方で登録され得る。後者の場合はアプリケーションは入出力装置70を介し
て通信回線によってロードされる。説明している例ではICカード7がマルチ・
アプリケーション・タイプであって、そのうえマルチ・ユーザのタイプであると
仮定している。したがってICカード7はm個の論理アプリケーションを取扱い
、A1ないしAmは変換された言語3で記述される。
【0053】 ICカードのために現在使用されている言語の一つは「Java Card」
と呼ばれてきた。それはICカードのプログラム作成の専用の言語であって、言
語「Java」の制約によって構成される。
【0054】 同様にICカード7はコードの諸部分にローディングを現場で変換するように
働く補助コンバータをストックすることができる。
【0055】 本発明による方法の諸ステップを一般的な範囲において以下に説明するが、こ
の好ましいアプリケーションの範囲以内で特に詳しく例示する。
【0056】 知られているように言語「Java Card」の設立は、ファイル「CAP
」内の「de Classes」と呼ばれるファイルを変換するコンバータによ
ってコンバータを呼び出す。クラスの一つのファイルは、コンパイルの単位であ
りまたプログラム「Java」のオブジェクトコードの表現である。ファイルC
APは同一の「package Java Card」の全てのクラスを再グル
ープして、唯一の「constant pool」しか含まない。「packa
ge Java Card」はクラスを再グループして、名称の種類を創設する
ための「Java」構成である。「constant pool」の役割はテー
ブルであって、「Java」のためのクラスの各ファイルに結合されたテーブル
であり、また「Java Card」のために各ファイル「CAP」に結合され
たテーブルである。このテーブルは定数(文字、実体などのストリング)を再グ
ループする。それは「Java」と「Java Card」のバーチャル・マシ
ン内で使用される。変換はトリビアルでなくグローバルである。すなわちそれは
「トークン」と呼ばれる実体、すなわち全部で7または8ビットの数字により、
全ての「パッケージ、クラス、フィールド、方法の」名称を取りかえる。これら
の「トークン」はテーブルにアクセスするための索引の役をする。そのうえ変換
はファイル「CAP」内の同一のパッケージのクラスの全てのファイルを、(「
constant pool」の併合と方法のテーブルの再組織化によって)再
グループする。
【0057】 言語「Java Card」は特に銀行用ICカード上で使用されるのを目的
としている。したがって、言語「Java」のバーチャル・マシン内に書かれた
プログラム(すなわち「バイト・コード」)から言語「Java Card」の
バーチャル・マシン内に書かれたプログラムへの変換の修正を検証すること、す
なわちこれら二つのプログラムの等価の証明をもたらすことが非常に重要である
【0058】 この正式な証明は、本発明による方法の諸ステップを実行することによりもた
らされる。
【0059】 第1のステップは操作的意味論の定義からなる。
【0060】 「バイト・コード」の各命令に一つまたは複数の意味論的規則が結合される。
「バイト・コード」はポータブルなアセンブラ・コードである。それは、バーチ
ャル・マシン「Java」または「Java Card」のためのオブジェクト
・コードである。たとえばこのコードの命令の一つに結合された意味論的規則で
ある命令「getfield」は下記のように記述される。
【0061】 例において状態は、最初にカレントな命令(getfield i;bc)と
共に実行されるコード、オペランドのスタック(r::ops)、ローカル変数
(l)、カレントのクラスの参照(c)およびスタック(h)から構成される。
getfield iの実行時に実行される操作を規則が規定する。 − 補助関数「constant_pool」はインデックスiを使用するが
、これは該当する「constant_pool」内のフィールド(ソース・コ
ードまたは変換済みコードがそれによって動かされる署名または「トークン」)
の参照f_refを得るためである。 − 参照τはオブジェクトを示し、それはスタック(stack)の頂上で読
まれて読み出されるべき領域のオブジェクトである。この参照により、ヒープ(
heap)(h(r))の中にc_ref(それによってソース・コードまたは
変換済みコードが動かされる資格ある名称またはトークンのペア)の動的クラス
およびオブジェクト(iv)のフィールドのリストを発見することができる。 − あらかじめ計算された参照とフィールドのリストを使用することによりフ
ィールドが、(v:=iv(f_ref))と読まれる。 − 命令getfieldはフィールドの値によってオブジェクトの参照を置
換えて状態を変更して、コード(bc)の続きにより実行が継続される。
【0062】 第2のステップはタイプの定義により構成される。
【0063】 「Java Card」言語の場合は貯蔵場所の統一を表現するためにタイプ
Wordを定義する。
【0064】 構築されるタイプの例としてconstant poolのタイプは下記の通
りである。 これと共に
【0065】 例において「constant pool」はインデックス(CP_inde
xは基本的と考えられる)を取り、また入力(ここでは一つのクラス、一つの方
法、または一つのフィールドへの参照)を返す関数と見られる。
【0066】 「byte code」のタイプは、下記の通りである。
【0067】 「byte code」は命令のシーケンスである。タイプInstruct
ionは、「Java Card」の「byte code」内に使用される全
ての命令を列挙する。
【0068】 第3ステップは諸タイプの解釈からなる。
【0069】 「Java Card」の場合において、ソース・コードについての解釈は、
(名称を使用する)クラスのファイルの形式のもとに と記され、(「tokens」を使用する)ファイルCAPの形式のもとに変換
されたコードについての解釈は と記される。
【0070】 例としてタイプ は、下記の通りソース・コードについて検証される。
【0071】 名称の基礎へのモデルにおいて、「constant pool」はクラスの
名称(参照される「constant pool」を指示するため)および一つ
のindexの名称からなる。
【0072】 タイプ は、下記の通り変換済みコードについて検証される。
【0073】 「constant pool」のインデックスは「package」の「t
oken」(説明する例においては、「package」またはファイルCAP
ごとに唯一の「constant pool」が存在する)および一つのインデ
ックスにより構成される。
【0074】 関係Rcp_indexは、下記の式(16)のような全単射として定義される
【0075】 名称の基礎へのモデル内で参照される「constant pool」を含む
クラスの「package」の名称は、「tokens」をベースとするモデル
内で参照される「constant pool」を含む「package」の「
token」と関係があるはずである。index iおよびi’上の唯一の制
約は、Rcp_indexが全単射であるべきことだけである。(したがって「cons
tant pools」の入力は再グループされ、再配列され得る)。
【0076】 第4ステップは補助関数の解釈で構成される。
【0077】 たとえば名称の基礎へのモデルについての補助関数「constant_po
ol」のバージョンは、下記の通りである。 これと共に
【0078】 関数pack_nameはクラスの名称を取って「package」の名称を
介し、また関数env_nameはパッケージの名称とクラスの名称を取って、
指定されたクラスのファイルを表現する構造を、クラスの階層の中に発見する。
constant poolはクラスのファイルから抽出される。
【0079】 「tokens」をベースとするモデルについて、補助関数のバージョンは は、下記の通りである。 これと共に
【0080】 「constant pool」は関数env_tokとパッケージのtok
enを使って環境(すなわちファイルCAP)内に発見される。
【0081】 第5のステップは、補助関数が論理的関係を尊重することの証明からなる。
【0082】 もし「constant pool」へのアクセスの関数の例が新しく参照さ
れるならば下記の通り決定することが必要である。
【0083】 は関係Rcp_indexと関係Rcp_infoの関数で完全に定義される。この定義を使用
して下記のように検証するのに充分であることが示される。 これにともに
【0084】 証明はRcp_infoおよび下の式(24)から想起される特性に基く。
【0085】 この方法の最後の第6ステップは、このコンバータによるコードとデータの変
換が、決定された論理的関係を尊重するように変換器を決定することからなる。
たとえば「packages」への参照は、モデルによって名称であったり「t
okenes」であったりする。Rpackage_refに結合した論理的関係は「pa
ckage」の名称と「package」の「tokens」の間の全単射のよ
うに定義される。「tokens」内のパッケージの名称の変換を実現するコン
バータの関数が実際に全単射であることを検証するだけで充分である。
【0086】 以上のことを読めば本発明が定めた目的を本発明が充分に達成することを容易
に認められる。
【0087】 しかしながらとくに図2と図3に関して明示的に説明した実施例だけに本発明
を限定すべきではない。
【0088】 最後に、ICカードまたは類似のタイプのアプリケーションのためにとくに関
係がある言語「Java Card」のバーチャル・マシンのプログラムにおけ
る言語「Java」のバーチャル・マシンのプログラムの変換の場合についての
詳細の仕方でこの方法を説明してきたが、本発明はいかなる場合もこの特別なア
プリケーションに限定されない。
【0089】 含まれる装置が比較的に限定された情報資源しか処理しない場合のたびに、本
発明を応用することができ、特にRAMまたはROMのメモリ容量および/また
は使用されるプロセッサの計算能力が比較的限定される場合には本発明を利用す
ることができる。例としては電子的な書物、たとえばインターネット・サイトの
出所のデータを送信し貯蔵するためのいわゆる「e−book」、たとえばいわ
ゆる「organiser」タイプのポケット電卓、インターネット・ネットワ
ークに接続できるある種の移動電話などを例としてあげることができる。これら
全ての場合において総合情報資源をより良く使用するためには最適な言語で処理
する必要がある。
【図面の簡単な説明】
添付図面を参照しながら本発明を詳細に説明してきた。
【図1】 ソース・コードから最終変換済みコードへの変換のプロセスを図式的に示す。
【図2A】 本発明による方法の本質的な特性の一つを図式的に示す。
【図2B】 本発明による方法の本質的な特性の一つを図式的に示す。
【図3】 ICカード上の本発明による方法の適用を図式的に示す。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06K 19/07 G06F 9/06 660J (71)出願人 ル サントル ナショナル ドゥ ラ ル シエルシュ シアンティフィク(シーエヌ アールエス) フランス国 パリ セデックス 16、 リ ユ ミシエル − アンジユ、3 (72)発明者 ゴワール、クリスチャン フランス国 レ クレイ − ス − ボ ワ、アレ デユ メイル、8 (72)発明者 ジェンサン、トマス フランス国 ルネ セデックス、カムピュ ユニベルシテール ド ボーリゥー、イ リサ/インリア (72)発明者 フラド、パスカル フランス国 ルネ セデックス、カムピュ ユニベルシテール ド ボーリゥー、イ リサ/インリア (72)発明者 ル メタイエ、ダニエル フランス国 ルネ セデックス、カムピュ ユニベルシテール ド ボーリゥー、イ リサ/インリア (72)発明者 ドネイ、イーウァン フランス国 ルネ セデックス、カムピュ ユニベルシテール ド ボーリゥー、イ リサ/インリア Fターム(参考) 5B035 BB09 BB11 CA29 5B042 GA02 GA08 HH08 HH11 HH31 HH32 5B076 BB06 EC02 EC10 5B081 AA09 BB07 CC01

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 所定ソース・コードから搭載システム向けの所定変換済みコ
    ードにする変換器の検証方法であって、前記ソース・コードと前記変換済みコー
    ドはバーチャル・マシンに結合され、 前記ソース・コード(1)と前記変換済みコード(3)のそれぞれについて、
    これら2つのコード(1,3)の作用を因数分解する唯一のバーチャル・マシン
    を構成する共通の第1部分集合(13)を決定するステップと、 前記唯一のバーチャル・マシンにより使用される複数の所定補助関数(10i
    −30i)で構成され、前記補助関数(10i−30i)が前記ソース・コード(
    1)および前記変換済みコード(3)内の常駐差異を表現する第2部分集合(1
    0,30)を、前記ソース・コード(1)と前記変換済みコード(3)のそれぞ
    れについて、決定するステップと、 前記ソース・コード(1)に結合された前記第2部分集合(10)に属する各
    ペアの第1補助関数(10i)と、前記変換済みコード(3)に結合された前記
    第2部分集合(30)に属する各ペアの第2補助関数(30i)を、前記補助関
    数のペアごとに結合するステップと、 前記全てのペアの前記補助関数(10i−30i)の間で決定される対応の特性
    を検証(6)するステップと、 前記コンバータ(2)によるソース・コード(1)から変換済みコード(3)
    への前記変換は前記決定される対応の特性を満足することを検証するステップを
    、少なくとも含んでいることを特徴とする前記検証方法。
  2. 【請求項2】 前記対応の特性が論理的関係であって、前記各ペアの前記補
    助関数(10i−30i)がそれらの実行のときに前記関係論理によって結ばれた
    結果を生成するようになっており、またこの関係が、前記ソース・コードと前記
    変換済みコードの各々の前記観察可能な実体について同一関係であるという点に
    おいて、補助関数の全てのペアについて、前記変換のときに前記ソース・コード
    (1)の相関関係が変換済み関数(3)のなかに保存されるようになっていて、
    コード変換器(2)の前記検証が実現されることを特徴とする請求項1記載の方
    法。
  3. 【請求項3】 コード変換器(2)がソース・コード(1)から変換済みコ
    ード(3)を生成し、この変換済みコード(3)は、ICカード(7)の記憶手
    段(71)の中に登録されるように定められている請求項1または請求項2によ
    る検証方法のアプリケーション。
  4. 【請求項4】 前記変換済みコードは特定情報言語のバーチャル・マシン内
    に書かれたプログラムであって、前記ICカード(7)がこの変換済みコード(
    3)で書かれた複数のアプリケーション・ソフトウェア(AlないしAn)を登録
    したICカードであることを特徴とする、請求項3記載のアプリケーション。
  5. 【請求項5】 前記ソース・コード(1)が「JAVA」(登録商標)言語
    のバーチャル・マシン内に書かれたプログラムであり、前記変換済みコード(3
    )が「JAVA CARD」(登録商標)言語のバーチャル・マシン内にかかれ
    たプログラムであることを特徴とする請求項3または請求項4記載のアプリケー
    ション。
JP2001508686A 1999-07-01 2000-06-28 Icカード上に搭載されたシステムのコード変換器の検証方法 Withdrawn JP2003525482A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9908460A FR2795835B1 (fr) 1999-07-01 1999-07-01 Procede de verification de transformateurs de codes pour un systeme embarque, notamment sur une carte a puce
FR99/08460 1999-07-01
PCT/FR2000/001815 WO2001002955A1 (fr) 1999-07-01 2000-06-28 Procede de verification de transformateurs de codes pour un systeme embarque, notamment sur une carte a puce

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011206844A Division JP2012027936A (ja) 1999-07-01 2011-09-22 Icカード上に搭載されたシステムのコード変換器の検証方法

Publications (2)

Publication Number Publication Date
JP2003525482A true JP2003525482A (ja) 2003-08-26
JP2003525482A5 JP2003525482A5 (ja) 2011-04-14

Family

ID=9547574

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001508686A Withdrawn JP2003525482A (ja) 1999-07-01 2000-06-28 Icカード上に搭載されたシステムのコード変換器の検証方法
JP2011206844A Pending JP2012027936A (ja) 1999-07-01 2011-09-22 Icカード上に搭載されたシステムのコード変換器の検証方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011206844A Pending JP2012027936A (ja) 1999-07-01 2011-09-22 Icカード上に搭載されたシステムのコード変換器の検証方法

Country Status (9)

Country Link
US (1) US7020872B1 (ja)
EP (1) EP1112536A1 (ja)
JP (2) JP2003525482A (ja)
CN (1) CN1231838C (ja)
BR (1) BR0006883A (ja)
CA (1) CA2342322C (ja)
FR (1) FR2795835B1 (ja)
HK (1) HK1040304B (ja)
WO (1) WO2001002955A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2840084A1 (fr) * 2002-05-27 2003-11-28 Gemplus Card Int Procede de verification de codes pour microcircuits a ressources limitees
EP1768263B1 (en) * 2004-05-26 2015-01-21 NEC Corporation Spatially-multiplexed signal detecting method and time space iterative decoder using same
KR100804207B1 (ko) 2006-08-01 2008-02-18 성인환 인삼씨를 재료로 하는 인삼차의 제조방법
US7810073B2 (en) * 2006-09-05 2010-10-05 International Business Machines Corporation Method of translating n to n instructions employing an enhanced extended translation facility
CN101458638B (zh) * 2007-12-13 2010-09-01 安凯(广州)微电子技术有限公司 一种用于嵌入式系统的大规模数据验证方法
US8869257B2 (en) 2008-05-27 2014-10-21 Open Invention Network, Llc Identity selector for use with a user-portable device and method of use in a user-centric identity management system
CN101382892B (zh) * 2008-09-24 2012-04-18 飞天诚信科技股份有限公司 下载.Net程序的方法和装置
US20120054501A1 (en) * 2010-08-25 2012-03-01 Toshiba Tec Kabushiki Kaisha Image processing apparatus
US8789033B2 (en) * 2012-02-03 2014-07-22 International Business Machines Corporation Reducing application startup time by optimizing spatial locality of instructions in executables
CN106201896A (zh) * 2016-07-26 2016-12-07 华中科技大学 一种嵌入式环境下基于检查点的调试方法、系统及装置
DE102018122920A1 (de) * 2018-09-19 2020-03-19 Endress+Hauser Conducta Gmbh+Co. Kg Verfahren zur Installation eines Programms auf einem eingebetteten System, ein eingebettetes System für ein derartiges Verfahren sowie ein Verfahren zur Erstellung einer Zusatzinformation

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736320A (en) * 1985-10-08 1988-04-05 Foxboro Company Computer language structure for process control applications, and translator therefor
DE3731736A1 (de) * 1986-09-27 1988-04-07 Toshiba Kawasaki Kk Verarbeitungssystem fuer tragbare elektronische vorrichtung
US5534857A (en) * 1991-11-12 1996-07-09 Security Domain Pty. Ltd. Method and system for secure, decentralized personalization of smart cards
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
GB9307623D0 (en) * 1993-04-13 1993-06-02 Jonhig Ltd Data writing to eeprom
EP0795844A1 (en) * 1996-03-11 1997-09-17 Koninklijke KPN N.V. Method of securely modifying data on a smart card
US5889941A (en) * 1996-04-15 1999-03-30 Ubiq Inc. System and apparatus for smart card personalization
US5923884A (en) * 1996-08-30 1999-07-13 Gemplus S.C.A. System and method for loading applications onto a smart card
BR9713267A (pt) * 1996-10-25 2004-06-15 Schlumberger Systems & Service Cartão de circuito integrado para uso com um terminal, processo para uso com o mesmo, microcontrolador e processo para sua programação
FR2757970B1 (fr) * 1996-12-30 1999-03-26 Gemplus Card Int Procede de chargement d'un programme d'utilisation dans un support a puce
CA2288824A1 (en) * 1997-03-24 1998-10-01 Marc B. Kekicheff A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
JPH1165832A (ja) * 1997-08-21 1999-03-09 Sony Corp ソースコード変換方法及び記録媒体
US5987256A (en) * 1997-09-03 1999-11-16 Enreach Technology, Inc. System and process for object rendering on thin client platforms
US6128774A (en) * 1997-10-28 2000-10-03 Necula; George C. Safe to execute verification of software
US6253370B1 (en) * 1997-12-01 2001-06-26 Compaq Computer Corporation Method and apparatus for annotating a computer program to facilitate subsequent processing of the program
US6324685B1 (en) * 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US5999732A (en) * 1998-03-23 1999-12-07 Sun Microsystems, Inc. Techniques for reducing the cost of dynamic class initialization checks in compiled code
US6216227B1 (en) * 1998-06-29 2001-04-10 Sun Microsystems, Inc. Multi-venue ticketing using smart cards
US6591229B1 (en) * 1998-10-09 2003-07-08 Schlumberger Industries, Sa Metrology device with programmable smart card
AU770396B2 (en) * 1998-10-27 2004-02-19 Visa International Service Association Delegated management of smart card applications
EP0997815A3 (en) * 1998-10-29 2004-05-26 Texas Instruments Incorporated Interactive translation system and method
US6115719A (en) * 1998-11-20 2000-09-05 Revsoft Corporation Java compatible object oriented component data structure
JP3173728B2 (ja) * 1998-12-07 2001-06-04 日本電気株式会社 半導体装置
US6390374B1 (en) * 1999-01-15 2002-05-21 Todd Carper System and method for installing/de-installing an application on a smart card
US6256690B1 (en) * 1999-01-15 2001-07-03 Todd Carper System and method for facilitating multiple applications on a smart card
US6581206B2 (en) * 1999-11-12 2003-06-17 Sun Microsystems, Inc. Computer program language subset validation
FR2794543B1 (fr) * 1999-06-04 2001-08-24 Gemplus Card Int Migration de differents langages sources vers un support d'execution

Also Published As

Publication number Publication date
FR2795835A1 (fr) 2001-01-05
HK1040304A1 (en) 2002-05-31
FR2795835B1 (fr) 2001-10-05
CA2342322C (en) 2011-10-18
CN1231838C (zh) 2005-12-14
BR0006883A (pt) 2001-06-12
EP1112536A1 (fr) 2001-07-04
CA2342322A1 (en) 2001-01-11
HK1040304B (zh) 2006-03-10
CN1316073A (zh) 2001-10-03
US7020872B1 (en) 2006-03-28
JP2012027936A (ja) 2012-02-09
WO2001002955A1 (fr) 2001-01-11

Similar Documents

Publication Publication Date Title
US11941381B2 (en) Method for compiling from a high-level scripting language to a blockchain native scripting language
JP2012027936A (ja) Icカード上に搭載されたシステムのコード変換器の検証方法
AU771699B2 (en) Token-based linking
USRE39269E1 (en) Data exchange system comprising portable data processing units
US5802519A (en) Coherent data structure with multiple interaction contexts for a smart card
Back DataScript-A specification and scripting language for binary data
US7506175B2 (en) File language verification
Deitel Java how to program
US7181725B1 (en) Method for verifying safety properties of java byte code programs
US6473893B1 (en) Information objects system, method, and computer program organization
WO2020259035A1 (zh) 一种业务代码的生成、执行方法及装置
CN107924326A (zh) 对经更新的类型的迁移方法进行覆盖
CN110263316A (zh) 一种文件处理方法、装置及计算机设备
CN109614325A (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
Saeki et al. Enhancing goal-oriented security requirements analysis using common criteria-based knowledge
US10606569B2 (en) Declarative configuration elements
Tatibouët et al. Java Card code generation from B specifications
US7437714B1 (en) Category partitioning markup language and tools
He Modeling and analyzing smart contracts using predicate transition nets
CN101853154A (zh) 简化具有动态库的接口的方法
JP2010146414A (ja) データ処理方法、半導体装置、icカード、半導体集積回路及びデータ処理システム
Jacobs et al. VerifiCard: A European project for smart card verification
CN114741131B (zh) 动态库导出符号的隐藏方法、装置、设备及存储介质
KR102610920B1 (ko) 모듈 관리 방법 및 장치
Barlas et al. Towards a correct translation from ASN. 1 into CafeOBJ

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20070607

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110215

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20111007