JP2005528689A - 漏洩防止性を有するプログラム分割システム、プログラム分割方法、プログラム分割コンピュータプログラムプロダクト - Google Patents
漏洩防止性を有するプログラム分割システム、プログラム分割方法、プログラム分割コンピュータプログラムプロダクト Download PDFInfo
- Publication number
- JP2005528689A JP2005528689A JP2004509787A JP2004509787A JP2005528689A JP 2005528689 A JP2005528689 A JP 2005528689A JP 2004509787 A JP2004509787 A JP 2004509787A JP 2004509787 A JP2004509787 A JP 2004509787A JP 2005528689 A JP2005528689 A JP 2005528689A
- Authority
- JP
- Japan
- Prior art keywords
- program
- partitions
- partition
- recursive function
- function
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004590 computer program Methods 0.000 title claims abstract description 56
- 230000002265 prevention Effects 0.000 title description 17
- 238000005192 partition Methods 0.000 claims abstract description 177
- 230000006870 function Effects 0.000 claims description 243
- 238000000638 solvent extraction Methods 0.000 claims description 21
- 238000005457 optimization Methods 0.000 claims description 11
- 230000002829 reductive effect Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 7
- 238000004454 trace mineral analysis Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 abstract description 17
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000004422 calculation algorithm Methods 0.000 description 95
- 238000010586 diagram Methods 0.000 description 17
- 230000003068 static effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003405 preventing effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- AYCPARAPKDAOEN-LJQANCHMSA-N N-[(1S)-2-(dimethylamino)-1-phenylethyl]-6,6-dimethyl-3-[(2-methyl-4-thieno[3,2-d]pyrimidinyl)amino]-1,4-dihydropyrrolo[3,4-c]pyrazole-5-carboxamide Chemical compound C1([C@H](NC(=O)N2C(C=3NN=C(NC=4C=5SC=CC=5N=C(C)N=4)C=3C2)(C)C)CN(C)C)=CC=CC=C1 AYCPARAPKDAOEN-LJQANCHMSA-N 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
Abstract
Description
不正使用防止性を有する安全な環境を提供する重要な埋込み型装置の一つとして、スマートカードがある。通常、スマートカードにおいてアプリケーションを実行する場合、データを暗号化してスマートカードにダウンロードし、スマートカードの内部でアプリケーション全体を実行する。この結果、重要な不正使用防止特性が得られる。アプリケーションのどの部分も外部に存在しないので、攻撃者にとって、スマートカードは内部で何が行われているか分からないブラックボックスのようなものである。すなわち、不正使用防止性を有するカードの外部からアプリケーションの特性を観察することはできない。
利用可能なメモリが限られた装置(例えば、スマートカード)でかなり大きいプログラムを実行しやすくするため、本発明のシステム、方法、コンピュータプログラムプロダクトは、プログラムが装置のメモリに収まらない場合、プログラム全体を分割する。実行直前に、要求に応じて、サーバから埋込み型装置に最小安全プログラムパーティションをダウンロードする。本システム、方法、コンピュータプログラムプロダクトは、プログラムの制御流れ挙動に関する情報が漏洩しないように、プログラムのコードおよびデータを分割する。すなわち、攻撃者は、サーバからダウンロードされるプログラムパーティションを観察することによって、プログラムがどのように分岐するか、また、プログラムの制御流れがどのような状況かを推測することはできない。この特性(本書では「不正使用防止性」と呼ぶ)は、感知可能情報の保持、および/または、金融取引等の重要な計算を行うことができるスマートカード等の安全埋込み型装置にとって有用である。
以下、本発明の好適な実施形態を示す添付図面を参照して、本発明をより詳細に説明する。但し、本発明は多種多様な形態で実施することができ、本書に記載の実施形態に限定されると考えるべきではない。すなわち、これらの実施形態は本開示を徹底的かつ完全にするためのものであり、当業者に本発明の範囲を十分に伝えるであろう。全体を通して同じ構成要素に同じ番号を付した。
この順序では、プログラムパーティションLiはある時点でプログラムパーティションLkの前の順序で発生するが、後に、LiはLkとは異なるプログラムパーティションLmの前に再び発生する。このような順序が発生すると、攻撃者は、プログラムパーティションLiが、LkまたはLmへの実行経路を制御する制御ブロックである可能性があることを推測することができる。したがって、安全プログラムパーティションが、上記パーティション順序のような順序で二回発生することは決してあり得ないプログラムパーティションであることが分かる。本発明のシステム、方法、コンピュータプログラムプロダクトは安全パーティションの概念を用いて、装置42に送信されたプログラムを分割する。さらに、最小安全パーティションは最も小さい安全パーティションなので、最小安全パーティションのサブパーティションはいずれも順序および制御情報を明らかにする。
L1180の後にL2186とL1284がそれぞれ続く。これは厳密な不正使用防止性の定義に反する。なぜならば、L11が制御パーティションである可能性があると見られる可能性があるからである。このため、「受信したパーティションのいずれも保持しない」というポリシによって、関数呼び出しのある関数を分割できないことが分かる。「制御が戻ることが保障されたパーティションを保持する」というポリシの場合も、同様の結果となる。しかしながら、L1180はL2186またはL1284への分岐を制御する制御ブロックではなく、上記順序から、攻撃者は関数内の目的の制御流れ情報を得ることはできない。最悪の場合、攻撃者が、L11に関数呼び出しがあることと、L21、L22、L23が関数本体からなることを知る可能性がある。しかしながら、「受信したパーティションのいずれも保持しない」というポリシと「制御が戻ることが保障されたパーティションを保持する」というポリシの両方によって、関数呼び出しが分岐時にプログラムの制御流れ情報を漏らすことはない。なぜならば、呼び出しの正常復帰を仮定して、関数呼び出しの後のブロックを常に実行するからである。すなわち、関数呼び出しは単にモジュラ設計を示しているだけであり、制御流れを変更するために効果的に利用することができないモジュール性情報を明らかにする可能性がある。
Claims (61)
- 装置に送信するプログラムを分割する方法において、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別することと、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割することとを備え、
前記複数のプログラムパーティションの少なくとも一つを装置に送信するとき、前記複数のプログラムパーティションが前記プログラムの制御流れ情報を漏らさない、
プログラム分割方法。 - さらに、前記複数のプログラムパーティションの少なくとも一つを装置に送信し、実行することを備える、請求項1に記載のプログラム分割方法。
- コンピュータプログラムコードによって、前記プログラムの解析を行う、請求項1に記載のプログラム分割方法。
- コンピュータプログラムコードによって、プログラムを複数のプログラムパーティションに分割する、請求項1に記載のプログラム分割方法。
- さらに、前記複数のプログラムパーティションの少なくとも二つを併合して併合プログラムパーティションを生成することを備える、請求項1に記載のプログラム分割方法。
- さらに、前記複数のプログラムパーティションの少なくとも二つを併合して併合プログラムパーティションを生成する前に、装置のメモリ容量を決定することを備える、請求項5に記載のプログラム分割方法。
- さらに、前記併合プログラムパーティションを装置に送信することを備える、請求項5に記載のプログラム分割方法。
- 前記再帰関数および非再帰関数の前記識別を用いてプログラムを分割することが、前記再帰関数および非再帰関数の前記識別を用いてプログラムを複数の最小安全プログラムパーティションに分割することを備える、請求項1に記載のプログラム分割方法。
- 前記最小安全プログラムパーティションのいずれかをさらに分割することによって制御情報を決定することができるように、最小安全パーティションを分割する、請求項8に記載のプログラム分割方法。
- 再帰関数または非再帰関数の実行時、各最小安全パーティションを一定の順序で装置に送信する、請求項8に記載のプログラム分割方法。
- さらに、前記最小安全プログラムパーティションの少なくとも二つを併合して安全併合プログラムパーティションを作成することを備える、請求項8に記載のプログラム分割方法。
- さらに、前記装置に、前記複数のプログラムパーティションの少なくとも一つをキャッシュするために割り当てられたメモリを確保することを備える、請求項1に記載のプログラム分割方法。
- 装置にダウンロードするプログラムを分割する方法において、
装置の必要メモリを超える大きさのプログラムを供給することと、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別することと、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割することと、
プログラム全体が装置に常駐することなく、前記プログラムの実行中のコードおよびデータが装置に完全に常駐するように、前記複数のプログラムパーティションの少なくとも一つを装置に送信することと、
を備えるプログラム分割方法。 - コンピュータプログラムコードによって、前記プログラムの解析を行う、請求項13に記載のプログラム分割方法。
- コンピュータプログラムコードによって、プログラムを複数のプログラムパーティションに分割する、請求項13に記載のプログラム分割方法。
- 前記複数のプログラムパーティションの少なくとも二つを併合して併合プログラムパーティションを生成することと、
前記併合プログラムパーティションを前記装置に送信することと、
をさらに備える請求項13に記載のプログラム分割方法。 - さらに、前記複数のプログラムパーティションの少なくとも二つを併合する前に、装置のメモリ容量を識別することを備える、請求項16に記載のプログラム分割方法。
- 前記再帰関数および非再帰関数の前記識別を用いてプログラムを分割することが、前記再帰関数および非再帰関数の前記識別を用いてプログラムを複数の最小安全プログラムパーティションに分割することを備える、請求項13に記載のプログラム分割方法。
- 前記最小安全プログラムパーティションのいずれかをさらに分割することによって、プログラムパーティションを装置に送信するとき、前記プログラムの制御情報を決定することができるように、最小安全パーティションを分割する、請求項18に記載のプログラム分割方法。
- 再帰関数または非再帰関数の実行時、各安全パーティションを一定の順序で装置に送信する、請求項18に記載のプログラム分割方法。
- さらに、前記最小安全プログラムパーティションの少なくとも二つを併合して安全併合プログラムパーティションを作成することを備える請求項18に記載のプログラム分割方法。
- 前記少なくとも二つの最小安全プログラムパーティションを併合することによって、装置に送信するパーティションの数を減らす、請求項21に記載のプログラム分割方法。
- さらに、前記装置に、前記複数のプログラムパーティションの少なくとも一つをキャッシュするために割り当てられたメモリを確保することを備える、請求項13に記載のプログラム分割方法。
- 装置にプログラムパーティションを記憶する方法において、
大きすぎて装置に常駐できないプログラムの実行可能部分を備える少なくとも一つのプログラムパーティションをサーバに要求することと、
前記少なくとも一つのプログラムパーティションを前記装置のメモリに記憶することと、
前記少なくとも一つのプログラムパーティションを前記装置で実行することと、
を備えるプログラムパーティション記憶方法。 - さらに、前記少なくとも一つのプログラムパーティションを実行した直後に、前記少なくとも一つのプログラムパーティションを前記メモリから除去することによって、メモリに追加コンテンツを記憶できるようにすることを備える、請求項24に記載のプログラムパーティション記憶方法。
- さらに、前記少なくとも一つのプログラムパーティションを再実行することを前記装置が知らない場合、前記少なくとも一つのプログラムパーティションを前記メモリから除去することを備える、請求項24に記載のプログラムパーティション記憶方法。
- さらに、前記少なくとも一つのプログラムパーティションを装置に再送信することを備える、請求項25に記載のプログラムパーティション記憶方法。
- 装置にプログラムパーティションを記憶する方法において、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別することと、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割することと、
プログラムの実行に必要なプログラムブロックに対応するパーティションのみを装置に記憶することと、
を備えるプログラムパーティション記憶方法。 - パーティションの記憶が、プログラムの実行に必要なプログラムブロックに対応するパーティションのみを選択的に記憶することを備え、この選択的記憶が装置によって行われる、請求項28に記載のプログラムパーティション記憶方法。
- 装置に送信するプログラムを分割するコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトが、
コンピュータ可読コード手段が埋め込まれたコンピュータ使用可能媒体を備え、
前記コンピュータ可読コード手段が、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別するコンピュータ可読プログラムコード手段と、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割するコンピュータ可読プログラムコード手段とを備え、
前記複数のプログラムパーティションの少なくとも一つを装置に送信するとき、前記複数のプログラムパーティションが前記プログラムの制御流れ情報を漏らさない、
プログラム分割コンピュータプログラムプロダクト。 - さらに、前記複数のプログラムパーティションの少なくとも一つを装置に送信し実行するコンピュータ可読プログラムコード手段を備える、請求項30に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記複数のプログラムパーティションの少なくとも二つを併合して併合プログラムパーティションを生成するコンピュータ可読プログラムコード手段を備える、
請求項30に記載のプログラム分割コンピュータプログラムプロダクト。 - さらに、前記複数のプログラムパーティションの少なくとも二つを併合する前に、装置のメモリ容量を識別するコンピュータ可読プログラムコード手段を備える、請求項32に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記併合プログラムパーティションを装置に送信するコンピュータ可読プログラムコード手段を備える、請求項32に記載のプログラム分割コンピュータプログラムプロダクト。
- 前記再帰関数および非再帰関数の前記識別を用いてプログラムを分割するコンピュータ可読プログラムコード手段が、前記再帰関数および非再帰関数の前記識別を用いてプログラムを複数の最小安全プログラムパーティションに分割するコンピュータ可読プログラムコード手段を備える、請求項30に記載のプログラム分割コンピュータプログラムプロダクト。
- 前記最小安全プログラムパーティションのいずれかをさらに分割することによって制御流れ情報を決定することができるように、最小安全パーティションを分割する、請求項35に記載のプログラム分割コンピュータプログラムプロダクト。
- 再帰関数または非再帰関数の実行時、各安全パーティションを一定の順序で装置に送信する、請求項35に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記最小安全プログラムパーティションの少なくとも二つを併合して安全併合プログラムパーティションを作成するコンピュータ可読プログラムコード手段を備える、請求項35に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記複数のプログラムパーティションの少なくとも一つをキャッシュするために割り当てられたメモリを前記装置に確保するコンピュータ可読プログラムコード手段を備える、請求項30に記載のプログラム分割コンピュータプログラムプロダクト。
- メモリが限られた装置にプログラムの一部のみをダウンロードし該装置で該プログラム部分を実行するように、プログラムを分割するシステムにおいて、
前記システムが、
装置の必要メモリを超える大きさのプログラムが常駐するメモリを含むサーバと、
前記サーバと通信する装置とを備え、
前記サーバが、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別し、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割し、
前記複数のプログラムパーティションの少なくとも一つを装置に送信することによって、
プログラム全体が装置に常駐することなく、前記プログラムの実行中の部分が装置に完全に常駐するように動作することができる、
プログラム分割システム。 - 前記サーバが、前記複数のプログラムパーティションの少なくとも一つを受信するのに使用できる前記装置のメモリを決定するように動作することができる、請求項40に記載のプログラム分割システム。
- 前記サーバが、前記複数のプログラムパーティションの少なくとも二つを併合して、装置に送信する併合パーティションを作成することによって、装置に送信する個々のパーティションの数を減らすように動作することができる、請求項40に記載のプログラム分割システム。
- 前記装置がスマートカードを備える、請求項40に記載のプログラム分割システム。
- セキュリティ装置にプログラムの一部のみをダウンロードするようにプログラムを分割するシステムにおいて、
前記システムが、
プログラムを記憶し、プログラムを複数のプログラムパーティションに分割するように動作することができるサーバと、
前記サーバと通信し、前記サーバから前記複数のプログラムパーティションの少なくとも一つを受信する装置とを備え、
前記複数のプログラムパーティションの少なくとも一つを装置に送信するとき、前記複数のプログラムパーティションが前記プログラムの制御流れ情報を漏らさない、
プログラム分割システム。 - 前記サーバが、前記複数のプログラムパーティションの少なくとも一つを受信するのに使用できる前記装置のメモリを決定するように動作することができる、請求項44に記載のプログラム分割システム。
- 前記サーバが、前記複数のプログラムパーティションの少なくとも二つを併合して、装置に送信する併合パーティションを作成することによって、装置に送信する個々のパーティションの数を減らすように動作することができる、請求項44に記載のプログラム分割システム。
- 前記装置がスマートカードを備える、請求項44に記載のプログラム分割システム。
- セキュリティ装置にプログラムの一部のみをダウンロードするようにプログラムを分割するコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトが、
コンピュータ可読コード手段が埋め込まれたコンピュータ使用可能媒体を備え、
前記コンピュータ可読コード手段が、
装置の必要メモリを超える大きさのプログラムを供給するコンピュータ可読プログラムコード手段と、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別するコンピュータ可読プログラムコード手段と、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割するコンピュータ可読プログラムコード手段と、
プログラム全体が装置に常駐することなく、前記プログラムの実行中の部分が装置に完全に常駐するように、前記複数のプログラムパーティションの少なくとも一つを装置に送信するコンピュータ可読プログラムコード手段とを備える、
プログラム分割コンピュータプログラムプロダクト。 - 前記複数のプログラムパーティションの少なくとも二つを併合して併合プログラムパーティションを生成するコンピュータ可読プログラムコード手段と、
前記併合プログラムパーティションを前記装置に送信するコンピュータ可読プログラムコード手段とをさらに備える、
請求項48に記載のプログラム分割コンピュータプログラムプロダクト。 - さらに、装置を調べて、前記複数のプログラムパーティションの少なくとも二つを併合する前に装置のメモリ容量を決定するコンピュータ可読プログラムコード手段を備える、請求項48に記載のプログラム分割コンピュータプログラムプロダクト。
- 前記再帰関数および非再帰関数の前記識別を用いてプログラムを分割するコンピュータ可読プログラムコード手段が、前記再帰関数および非再帰関数の前記識別を用いてプログラムを複数の最小安全プログラムパーティションに分割するコンピュータ可読プログラムコード手段を備える、請求項48に記載のプログラム分割コンピュータプログラムプロダクト。
- 前記最小安全プログラムパーティションのいずれかをさらに分割することによって、プログラムパーティションを装置に送信するとき、前記プログラムの制御情報を決定することができるように、最小安全パーティションを分割する、請求項51に記載のプログラム分割コンピュータプログラムプロダクト。
- 再帰関数または非再帰関数の実行時、各安全パーティションを一定の順序で装置に送信する、請求項51に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記最小安全プログラムパーティションの少なくとも二つを併合して安全併合プログラムパーティションを作成するコンピュータ可読プログラムコード手段を備える、請求項51に記載のプログラム分割コンピュータプログラムプロダクト。
- 前記少なくとも二つの最小安全プログラムパーティションの併合によって装置に送信する個々のパーティションの数を減らすように、前記安全併合プログラムパーティションを装置に送信する、請求項54に記載のプログラム分割コンピュータプログラムプロダクト。
- さらに、前記複数のプログラムパーティションの少なくとも一つをキャッシュするために割り当てられたメモリを前記装置に確保するコンピュータ可読プログラムコード手段を備える、請求項48に記載のプログラム分割コンピュータプログラムプロダクト。
- 装置にダウンロードするプログラムを分割する方法において、
プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別し、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割し、
装置が要求する前記複数のプログラムパーティションの少なくとも一つを識別し、これにより、前記少なくとも一つのプログラムパーティションを装置に送信すると、プログラム全体が装置に常駐することなく、前記少なくとも一つのプログラムパーティションがプログラムの関数を能動的に実行し、
送信されたパーティションの実行に必要な必要最低限のプログラムデータを識別し、識別された必要最低限のプログラムデータを装置にダウンロードする
ことを備えるプログラム分割方法。 - 一部のみが装置で実行するプログラムを供給し、
プログラムを複数の最小安全パーティションに分割し、
前記複数の最小安全パーティションの少なくとも一つに関連する少なくとも一つの呼び出し位置を識別し、
識別された前記少なくとも一つの呼び出し位置を用いて、装置で頻繁に実行される関数集合を識別し、
識別された関数集合のみを装置に記憶する
ことを備える装置性能最適化方法。 - 装置で頻繁に実行される関数集合を識別するステップにおいて、トレース分析を用いて、各呼び出し位置毎に、頻繁に実行される関数集合を識別することを備える、請求項58に記載の装置性能最適化方法。
- さらに、少なくとも一つの呼び出し位置を識別することによって、装置が実行可能関数を重複してロードしないようにすることを備える、請求項58に記載の装置性能最適化方法。
- プログラムを解析することによって、前記プログラムの少なくとも一つの再帰関数および少なくとも一つの非再帰関数を識別することと、
前記再帰関数および非再帰関数の識別を用いて、プログラムを複数のプログラムパーティションに分割することと、
装置のメモリを理想的なコードセグメント成分およびデータセグメント成分に分割するように勧告を装置に送信することとを備え、
前記複数のプログラムパーティションの少なくとも一つを装置に送信するとき、前記複数のプログラムパーティションが前記プログラムの制御流れ情報を漏らさない、
装置性能最適化方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38571302P | 2002-06-04 | 2002-06-04 | |
US60/385,713 | 2002-06-04 | ||
PCT/US2003/017578 WO2003102769A2 (en) | 2002-06-04 | 2003-06-04 | System, method and computer program product for leakage-proof program partitioning |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005528689A true JP2005528689A (ja) | 2005-09-22 |
JP2005528689A5 JP2005528689A5 (ja) | 2006-07-20 |
JP4727984B2 JP4727984B2 (ja) | 2011-07-20 |
Family
ID=29712204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004509787A Expired - Fee Related JP4727984B2 (ja) | 2002-06-04 | 2003-06-04 | 漏洩防止性を有するプログラム分割システム、プログラム分割方法、プログラム分割コンピュータプログラムプロダクト |
Country Status (6)
Country | Link |
---|---|
US (1) | US7269671B2 (ja) |
EP (1) | EP1516249B1 (ja) |
JP (1) | JP4727984B2 (ja) |
CN (1) | CN100378666C (ja) |
AU (1) | AU2003238876A1 (ja) |
WO (1) | WO2003102769A2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003238876A1 (en) * | 2002-06-04 | 2003-12-19 | Georgia Tech Research Corporation | System, method and computer program product for leakage-proof program partitioning |
EP1613111A3 (en) * | 2004-07-02 | 2007-12-26 | Groundhog Technologies Inc. | Partitioning method for mobile communication network |
US20080021973A1 (en) * | 2006-06-02 | 2008-01-24 | Topia Technology | Communications network architecture |
US8321666B2 (en) * | 2006-08-15 | 2012-11-27 | Sap Ag | Implementations of secure computation protocols |
US20090075698A1 (en) * | 2007-09-14 | 2009-03-19 | Zhimin Ding | Removable Card And A Mobile Wireless Communication Device |
US8805949B2 (en) * | 2008-01-16 | 2014-08-12 | Netapp, Inc. | System and method for populating a cache using behavioral adaptive policies |
US8572674B2 (en) * | 2008-08-13 | 2013-10-29 | International Business Machines Corporation | System, method, and apparatus for modular, string-sensitive, access rights analysis with demand-driven precision |
US9117094B2 (en) | 2008-10-29 | 2015-08-25 | Microsoft Technology Licensing, Llc | Data location obfuscation |
CN102143158B (zh) * | 2011-01-13 | 2013-10-09 | 北京邮电大学 | 基于tpm的数据防泄漏方法 |
CN104350504B (zh) * | 2012-02-10 | 2018-06-12 | 爱迪德技术有限公司 | 用于软件操作中的程序流的方法和装置 |
CN105468543B (zh) * | 2014-09-11 | 2020-06-16 | 中兴通讯股份有限公司 | 一种保护敏感信息的方法及装置 |
KR102392642B1 (ko) * | 2017-11-08 | 2022-04-29 | 한국전력공사 | Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000350185A (ja) * | 1998-08-03 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 制御プログラム送信方法及び制御プログラムダウンロード方法 |
JP2001084220A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | 通信システム |
JP2001333461A (ja) * | 2000-05-23 | 2001-11-30 | Hitachi Building Systems Co Ltd | 端末用プログラムの遠隔書換え方法 |
JP2001350684A (ja) * | 2000-06-05 | 2001-12-21 | Nec Gumma Ltd | ソフトウェア提供システム及びソフトウェア提供装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428793A (en) * | 1989-11-13 | 1995-06-27 | Hewlett-Packard Company | Method and apparatus for compiling computer programs with interproceduural register allocation |
JPH04337843A (ja) * | 1991-05-15 | 1992-11-25 | Hitachi Ltd | プログラム動作表示方法 |
US5696971A (en) * | 1994-12-23 | 1997-12-09 | Recursive Technologies Associates | Recursive functions optimizier (RFO) for compliers of high-level programming languages |
JPH08234975A (ja) * | 1995-02-28 | 1996-09-13 | Fujitsu Ltd | プログラム生成装置および方法 |
US5859982A (en) * | 1996-06-05 | 1999-01-12 | Sun Microsystems, Inc. | Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements |
EP1125196B1 (en) * | 1998-10-26 | 2003-10-08 | STMicroelectronics Asia Pacific Pte Ltd. | Modem architecture and method of data transfer |
GB2386100A (en) * | 2000-07-03 | 2003-09-10 | Neville Anthony Wyli Samuelson | A means for applying images to other images |
FR2817055B1 (fr) * | 2000-11-22 | 2003-02-14 | Gemplus Card Int | Execution d'une application dans un objet electronique portable a faible capacite de memoire |
AU2003238876A1 (en) * | 2002-06-04 | 2003-12-19 | Georgia Tech Research Corporation | System, method and computer program product for leakage-proof program partitioning |
-
2003
- 2003-06-04 AU AU2003238876A patent/AU2003238876A1/en not_active Abandoned
- 2003-06-04 US US10/454,037 patent/US7269671B2/en not_active Expired - Lifetime
- 2003-06-04 EP EP03734391A patent/EP1516249B1/en not_active Expired - Lifetime
- 2003-06-04 WO PCT/US2003/017578 patent/WO2003102769A2/en active Application Filing
- 2003-06-04 JP JP2004509787A patent/JP4727984B2/ja not_active Expired - Fee Related
- 2003-06-04 CN CNB038167239A patent/CN100378666C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000350185A (ja) * | 1998-08-03 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 制御プログラム送信方法及び制御プログラムダウンロード方法 |
JP2001084220A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | 通信システム |
JP2001333461A (ja) * | 2000-05-23 | 2001-11-30 | Hitachi Building Systems Co Ltd | 端末用プログラムの遠隔書換え方法 |
JP2001350684A (ja) * | 2000-06-05 | 2001-12-21 | Nec Gumma Ltd | ソフトウェア提供システム及びソフトウェア提供装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1516249A2 (en) | 2005-03-23 |
CN100378666C (zh) | 2008-04-02 |
CN1708750A (zh) | 2005-12-14 |
WO2003102769A3 (en) | 2005-01-20 |
US20040073898A1 (en) | 2004-04-15 |
WO2003102769A2 (en) | 2003-12-11 |
AU2003238876A1 (en) | 2003-12-19 |
AU2003238876A8 (en) | 2003-12-19 |
JP4727984B2 (ja) | 2011-07-20 |
US7269671B2 (en) | 2007-09-11 |
EP1516249B1 (en) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Eliminating timing side-channel leaks using program repair | |
CN110245506B (zh) | 基于区块链的智能合约管理方法及装置、电子设备 | |
US11922149B2 (en) | Method for controlling the flow execution of a generated script of a blockchain transaction | |
US7313695B2 (en) | Systems and methods for dynamic threat assessment | |
Wang et al. | Software tamper resistance: Obstructing static analysis of programs | |
US8544089B2 (en) | Auditing a device | |
KR101071960B1 (ko) | 리소스들을 프리로딩 하기 위한 방법 및 시스템 | |
JP4727984B2 (ja) | 漏洩防止性を有するプログラム分割システム、プログラム分割方法、プログラム分割コンピュータプログラムプロダクト | |
US7809958B2 (en) | Method for guaranteeing freshness of results for queries against a non-secure data store | |
AU2020220465A1 (en) | Securing virtual-machine software applications | |
CN111143247B (zh) | 存储装置数据完整性保护方法及其控制器、片上系统 | |
EP3270319A1 (en) | Method and apparatus for generating dynamic security module | |
Su et al. | Survey of CPU cache-based side-channel attacks: systematic analysis, security models, and countermeasures | |
US8010773B2 (en) | Hardware constrained software execution | |
Chakraborty et al. | Are randomized caches truly random? Formal analysis of randomized-partitioned caches | |
Alawatugoda et al. | Countermeasures against Bernstein's remote cache timing attack | |
CN112906015A (zh) | 一种基于硬件标签的内存敏感数据加密保护系统 | |
Zhang et al. | Tamper-resistant whole program partitioning | |
CN115630392A (zh) | 一种基于无服务器架构的隐私数据管理方法和计算网关 | |
EP1782203B1 (en) | Method for guaranteeing freshness of results for queries against a non-secure data store | |
Zhang et al. | Leakage-proof program partitioning | |
CN108259490A (zh) | 一种客户端校验方法及装置 | |
JP6674368B2 (ja) | プログラムイメージを保護する方法 | |
Wang et al. | Topology-Aware Software Assignment in Networked Systems | |
CN117332831A (zh) | 分布式神经网络加速器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060530 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090721 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091019 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100409 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100906 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101109 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110209 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110414 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4727984 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |