JP7242675B2 - コンパイル装置及び方法 - Google Patents
コンパイル装置及び方法 Download PDFInfo
- Publication number
- JP7242675B2 JP7242675B2 JP2020533219A JP2020533219A JP7242675B2 JP 7242675 B2 JP7242675 B2 JP 7242675B2 JP 2020533219 A JP2020533219 A JP 2020533219A JP 2020533219 A JP2020533219 A JP 2020533219A JP 7242675 B2 JP7242675 B2 JP 7242675B2
- Authority
- JP
- Japan
- Prior art keywords
- subgraph
- nodes
- encoded
- node
- dataflow graph
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 57
- 238000004590 computer program Methods 0.000 claims description 79
- 238000003860 storage Methods 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 5
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 38
- 230000006870 function Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
Description
- 平文を暗号文に暗号化するために使用される公開キー;
- 暗号化ドメインで演算(例えば、乗算)を実行するために使用される評価キー;及び
- ユーザが出力を解読することを可能にする秘密キー;
が含まれる。
- コンピュータプログラム表現を受信するステップ610と、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得るステップ620であって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるステップ620と、
- 前記データフローグラフを、
- 前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフ210を識別し(631)、
- 前記部分グラフをエンコードされた第1部分グラフ210.1及びエンコードされていない第2部分グラフ210.2により置換し(632)、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られるものとし、
- 前記第1部分グラフの前にエンコードする演算を表す1以上のノード221を挿入して(633)該第1部分グラフがエンコードされたデータに対してのみ動作するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ動作するようにする、
ことにより補正するステップ(630)と、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップ(640)と、
を有する。
- コンピュータプログラム表現を受信するステップ660と、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得るステップ670であって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるステップ670と、
- 前記データフローグラフを、
- 補正された又は補正されていないデータフローグラフにおいてファイノード312、該ファイノードの前のエンコードする又はデコードする演算321、及び該ファイノードの後の演算ノード332を識別し(681)、
- 前記演算ノードをファイ演算の後から削除すると共に前記ファイ演算の前に1以上の演算ノードを挿入し(682)、
- 前記挿入された演算ノードを前記エンコードする又はデコードする演算と併合する(683)、
ことにより補正するステップ(680)と、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップ(690)と、
を有する。
- コンピュータプログラム表現を受信するステップ610,660と、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得るステップ620,670であって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるステップ620,670と、
- 前記データフローグラフを、
- 前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフ210を識別するか(631)、又は補正された若しくは補正されていないデータフローグラフにおいてファイノード312、該ファイノードの前のエンコードする又はデコードする演算321、及び該ファイノードの後の演算ノード332を識別し(681)、
- 第1のケースにおいては、
- 前記部分グラフをエンコードされた第1部分グラフ210.1及びエンコードされていない第2部分グラフ210.2により置換し(632)、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1部分グラフ及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られるものとし、
- 前記第1部分グラフの前にエンコードする演算を表す1以上のノード221を挿入して(633)該第1部分グラフがエンコードされたデータに対してのみ動作するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ動作するようにし、
- 第2のケースにおいては、
- 前記演算ノードをファイ演算の後から削除すると共に前記ファイ演算の前に1以上の演算ノードを挿入し(682)、
- 前記挿入された演算ノードを前記エンコードする又はデコードする演算と併合する(683)、
ことにより補正するステップ(630,680)と、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップ(640,690)と、
を有する。
1.コンパイラ装置であって、
- コンピュータプログラム表現を受信するように構成された入力インターフェース110と、
- プロセッサ回路と、
を有し、該プロセッサ回路は、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得、ここで、該データフローグラフにおけるノードの少なくとも一部はエンコードされたものとして又はエンコードされていないものとしてマーキングされるものとし、
- 前記データフローグラフを、
- 前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフ210を識別し、
- 前記部分グラフをエンコードされた第1部分グラフ210.1及びエンコードされていない第2部分グラフ210.2により置換し、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1部分グラフ及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られるものとし、
- 前記第1部分グラフの前にエンコードする演算を表す1以上のノード221を挿入して該第1部分グラフがエンコードされたデータに対してのみ動作するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ動作するようにする、
ことにより補正し、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得る、
ように構成される。
2.コンパイラ装置であって、
- コンピュータプログラム表現を受信するように構成された入力インターフェース110と、
- プロセッサ回路と、
を有し、該プロセッサ回路は、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得、ここで、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるようにし、
- 補正された又は補正されていないデータフローグラフにおいてフローノード312、該フローノードの前のエンコードする又はデコードする演算321、及び該フローノードの後の演算ノード332を識別し、ここで、前記フローノードはコピーノード又はファイノードとし、
- 前記データフローグラフを、
- 前記演算ノードを前記フローノードの後から削除すると共に前記フローノードの前に1以上の演算ノードを挿入し、
- 挿入された演算ノードを前記エンコードする又はデコードする演算と併合する、
ことにより補正し、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得る、
ように構成される。
3.コンパイラ方法600であって、
- コンピュータプログラム表現を受信するステップ610と、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得るステップ620であって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるステップ620と、
- 前記データフローグラフを、
- 前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフ210を識別し(631)、
- 前記部分グラフをエンコードされた第1部分グラフ210.1及びエンコードされていない第2部分グラフ210.2により置換し(632)、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1部分グラフ及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られるものとし、
- 前記第1部分グラフの前にエンコードする演算を表す1以上のノード221を挿入して(633)該第1部分グラフがエンコードされたデータに対してのみ動作するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ動作するようにする、
ことにより補正するステップ(630)と、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップ(640)と、
を有する。
4.コンパイラ方法650であって、
- コンピュータプログラム表現を受信するステップ660と、
- 前記コンピュータプログラム表現からデータフローグラフ201の表現を得るステップ670であって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされるステップ670と、
- 前記データフローグラフを、
- 補正された又は補正されていないデータフローグラフにおいてフローノード312、該フローノードの前のエンコードする又はデコードする演算321、及び該フローノードの後の演算ノード332を識別し(681)、ここで、前記フローノードはコピーノード又はファイノードとし、
- 前記演算ノードを前記フローノードの後から削除すると共に該フローノードの前に1以上の演算ノードを挿入し(682)、
- 前記挿入された演算ノードを前記エンコードする又はデコードする演算と併合する(683)、
ことにより補正するステップ(680)と、
- 少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップ(690)と、
を有する。
110 入力インターフェース
120 記憶部
130 構文解析(解析)部
132 データフロー解析器
134 エンコード分析器
140 修正部
142 データフロー分析器
144 データフロー補正ユニット
150 コンパイルユニット
200~204 データフローグラフ
210 コピー/ファイ部分グラフ
210.1 コピー/ファイ部分グラフ
210.2 コピー/ファイ部分グラフ
212~216 コピー又はファイノード
212.1~216.1 コピー又はファイノード
212.2~216.2 コピー又はファイノード
220 入力ノード
221 変換ノード
222~226 入力ノード
223 変換ノード
230 出力ノード
231 変換ノード
232~236 出力ノード
300 データフローグラフ
301 データフローグラフ
310 コピー/ファイ部分グラフ
312 ファイノード
314 コピーノード
320 入力ノード
321 変換ノード
322,324 入力ノード
323 ノード
325 併合されたノード
330 出力ノード
332 出力ノード
332.1,332.3 ノード
410 ノード
420 データ発生器(例えば、センサ)
422 エンコード及び暗号化(公開キー:pubK)
430 ソフトウェア
432 アルゴリズム(evalk)
440 ハードウェア
450 クラウド
460 ソフトウェア(セキュアな環境)
462 解読及びデコード
470 ハードウェア
472 セキュアな要素(秘密キー:pk)
1000 コンピュータ読取可能な媒体
1010 書込可能部分
1020 コンピュータプログラム
1110 集積回路
1120 処理ユニット
1122 メモリ
1124 専用の集積回路
1126 通信要素
1130 相互接続部
1140 プロセッサシステム
Claims (16)
- コンピュータプログラム表現を受信する入力インターフェースと、
プロセッサ回路と、
を有するコンパイラ装置であって、該プロセッサ回路が、
前記コンピュータプログラム表現からデータフローグラフの表現を得ることであって、ここで、該データフローグラフにおけるノードの少なくとも一部はエンコードされたものとして又はエンコードされていないものとしてマーキングされるものとし、エンコードされたノードはエンコードされたデータに対する演算を表し、エンコードされていないノードはエンコードされていないデータに対する演算を表す、得ることと、
前記データフローグラフを補正することであって、
前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフを識別し、
前記部分グラフをエンコードされた第1部分グラフ及びエンコードされていない第2部分グラフにより置換し、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1部分グラフ及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られ、
前記第1部分グラフの前にエンコードする演算を表す1以上のノードを挿入して該第1部分グラフがエンコードされたデータに対してのみ作用するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ作用するようにする、
ことにより補正することと、
少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得ることとを行う、
コンパイラ装置。 - 前記部分グラフにおける少なくとも入力ノードが前記第1及び第2部分グラフにおいて複製される、請求項1に記載のコンパイラ装置。
- 前記第1及び第2部分グラフが前記部分グラフの複製である、請求項1又は請求項2に記載のコンパイラ装置。
- 前記補正された部分グラフに対してデッドコード除去最適化を実行する、請求項3に記載のコンパイラ装置。
- 前記第1部分グラフにおけるノードはエンコードされているとマーキングされ、前記第2部分グラフにおけるノードがエンコードされていないとマーキングされる、請求項1から4の何れか一項に記載のコンパイラ装置。
- 前記データフローグラフが静的単一代入グラフである、請求項1から5の何れか一項に記載のコンパイラ装置。
- 前記部分グラフがファイノード及びコピーノードからなる、請求項1から6の何れか一項に記載のコンパイラ装置。
- 前記エンコードが準同型暗号化である、請求項1から7の何れか一項に記載のコンパイラ装置。
- 前記コンピュータプログラム表現が前記データフローグラフにおける1以上のノードをエンコードされた又はエンコードされていないものとして識別し、及び/又は
前記プロセッサ回路が、幾つかのノードをエンコードされていないものとしてマーキングすると共に残りのノードをエンコードされているものとしてマーキングするエンコーディング規則を適用する、
請求項1から8の何れか一項に記載のコンパイラ装置。 - 前記部分グラフが複数のソース及び複数の目標を持つデータを示す、請求項1から9の何れか一項に記載のコンパイラ装置。
- 前記データフローグラフにおける前記部分グラフが、エンコードされているものとしてマーキングされた1以上の入力ノード及びエンコードされていないものとしてマーキングされた1以上の入力ノードを有する、請求項1から10の何れか一項に記載のコンパイラ装置。
- 前記プロセッサ回路が、
前記補正された又は補正されていないデータフローグラフにおいて、フローノード、該フローノードの前のエンコードする又はデコードする演算及び該フローノードの後の演算ノードを識別し、ここで、前記フローノードはファイノード又はコピーノードであり、
前記演算ノードを前記フローノードの後から削除すると共に該フローノードの前に1以上の演算ノードを挿入し、
挿入された演算ノードを前記エンコードする又はデコードする演算と併合する、
請求項1から11の何れか一項に記載のコンパイラ装置。 - コンピュータプログラム表現を受信する入力インターフェースと、
プロセッサ回路と、
を有するコンパイラ装置であって、該プロセッサ回路が、
前記コンピュータプログラム表現からデータフローグラフの表現を得ることであって、ここで、該データフローグラフにおけるノードの少なくとも一部はエンコードされたものとして又はエンコードされていないものとしてマーキングされる、得ることと、
補正された又は補正されていないデータフローグラフにおいてフローノード、該フローノードの前のエンコードする又はデコードする演算及び該フローノードの後の演算ノードを識別することであって、ここで、前記フローノードはコピーノード又はファイノードであり、コピーノードは到来する値を1以上の他のノードに分配する、識別することと、
前記データフローグラフを補正することであって、
前記演算ノードを前記フローノードの後から削除すると共に前記フローノードの前に1以上の演算ノードを挿入し、
挿入された演算ノードにより表される演算を前記エンコードする又はデコードする演算と併合する、
ことにより補正することと、
少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得ることとを行う、
コンパイラ装置。 - コンピュータプログラム表現を受信するステップと、
前記コンピュータプログラム表現からデータフローグラフの表現を得るステップであって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされる、得るステップと、
前記データフローグラフを補正するステップであって、
前記データフローグラフにおいてエンコードされているとマーキングされた1以上の出力ノード及びエンコードされていないとマーキングされた1以上の出力ノードを有する部分グラフを識別し、ここで、エンコードされたノードはエンコードされたデータに対する演算を表し、エンコードされていないノードはエンコードされていないデータに対する演算を表し、
前記部分グラフをエンコードされた第1部分グラフ及びエンコードされていない第2部分グラフにより置換し、ここで、前記第1部分グラフはエンコードされた出力ノードのみを有し、前記第2部分グラフはエンコードされていない出力ノードのみを有し、これら第1部分グラフ及び第2部分グラフは前記部分グラフの更なる部分グラフとして得られ、
前記第1部分グラフの前にエンコードする演算を表す1以上のノードを挿入して該第1部分グラフがエンコードされたデータに対してのみ作用するようにし、及び/又は前記第2部分グラフの前にデコードする演算を表す1以上のノードを挿入して該第2部分グラフがエンコードされていないデータに対してのみ作用するようにする、
ことにより補正するステップと、
少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップと、
を有する、コンパイラ方法。 - コンピュータプログラム表現を受信するステップと、
前記コンピュータプログラム表現からデータフローグラフの表現を得るステップであって、該データフローグラフにおけるノードの少なくとも一部がエンコードされたものとして又はエンコードされていないものとしてマーキングされる、得るステップと、
前記データフローグラフを補正するステップであって、
補正された又は補正されていないデータフローグラフにおいてフローノード、該フローノードの前のエンコードする又はデコードする演算及び該フローノードの後の演算ノードを識別し、ここで、前記フローノードはコピーノード又はファイノードであり、コピーノードは到来する値を1以上の他のノードに分配し、
前記演算ノードを前記フローノードの後から削除すると共に該フローノードの前に1以上の演算ノードを挿入し、
挿入された演算ノードにより表される演算を前記エンコードする又はデコードする演算と併合する、
ことにより補正するステップと、
少なくとも前記補正されたデータフローグラフから前記コンピュータプログラム表現のコンパイルを得るステップと、
を有する、コンパイラ方法。 - プロセッサシステムに請求項14又は請求項15に記載の方法を実行させる命令を表わした非一時的データを有する、記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17208868.4 | 2017-12-20 | ||
EP17208868.4A EP3502935A1 (en) | 2017-12-20 | 2017-12-20 | Compiling device and method |
PCT/EP2018/085714 WO2019121831A1 (en) | 2017-12-20 | 2018-12-19 | Compiling device and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021507391A JP2021507391A (ja) | 2021-02-22 |
JP7242675B2 true JP7242675B2 (ja) | 2023-03-20 |
Family
ID=60781785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020533219A Active JP7242675B2 (ja) | 2017-12-20 | 2018-12-19 | コンパイル装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11119741B2 (ja) |
EP (2) | EP3502935A1 (ja) |
JP (1) | JP7242675B2 (ja) |
CN (1) | CN111512307B (ja) |
WO (1) | WO2019121831A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3534253A1 (en) | 2018-02-28 | 2019-09-04 | Koninklijke Philips N.V. | Compiling device and method |
CN113055152B (zh) * | 2019-12-26 | 2022-10-18 | 郑珂威 | 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统 |
CN112633502B (zh) * | 2020-12-29 | 2022-03-22 | 北京百度网讯科技有限公司 | 一种深度学习模型的跨平台执行方法、装置及电子设备 |
CN115495095B (zh) * | 2022-11-18 | 2023-03-21 | 上海燧原科技有限公司 | 张量程序的整程序编译方法、装置、设备、介质及集群 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138729A1 (en) | 2007-11-22 | 2009-05-28 | Kabushiki Kaisha Toshiba | Information processing device, program verification method, and recording medium |
US20120066770A1 (en) | 2010-09-13 | 2012-03-15 | Kabushiki Kaisha Toshiba | Information processing apparatus and information processing program |
JP2014509029A (ja) | 2011-03-24 | 2014-04-10 | イルデト ビー ヴイ | 攻撃耐性のためにアプリケーション全体に依存関係ネットワークを提供するシステムおよび方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594761B1 (en) | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
US6779114B1 (en) * | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
CA2363795A1 (en) | 2001-11-26 | 2003-05-26 | Cloakware Corporation | Computer system protection by communication diversity |
CN101416197A (zh) * | 2006-02-06 | 2009-04-22 | 松下电器产业株式会社 | 程序混淆装置 |
WO2009157795A1 (en) * | 2008-06-27 | 2009-12-30 | Intel Corporation | Static code recognition for binary translation |
US9116712B2 (en) * | 2013-02-28 | 2015-08-25 | Microsoft Technology Licensing, Llc | Compile based obfuscation |
CN103218246A (zh) * | 2013-04-19 | 2013-07-24 | 中国科学院自动化研究所 | 一种基于图描述语言的将二进制工具生成方法 |
EP3127271B1 (en) * | 2014-03-31 | 2018-07-25 | Irdeto B.V. | Obfuscated performance of a predetermined function |
US9361102B2 (en) * | 2014-06-09 | 2016-06-07 | Lehigh University | Methods for enforcing control flow of a computer program |
-
2017
- 2017-12-20 EP EP17208868.4A patent/EP3502935A1/en not_active Withdrawn
-
2018
- 2018-12-19 CN CN201880083244.7A patent/CN111512307B/zh active Active
- 2018-12-19 EP EP18819135.7A patent/EP3729306B1/en active Active
- 2018-12-19 JP JP2020533219A patent/JP7242675B2/ja active Active
- 2018-12-19 US US16/955,113 patent/US11119741B2/en active Active
- 2018-12-19 WO PCT/EP2018/085714 patent/WO2019121831A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138729A1 (en) | 2007-11-22 | 2009-05-28 | Kabushiki Kaisha Toshiba | Information processing device, program verification method, and recording medium |
JP2009129206A (ja) | 2007-11-22 | 2009-06-11 | Toshiba Corp | 情報処理装置、プログラム検証方法及びプログラム |
US20120066770A1 (en) | 2010-09-13 | 2012-03-15 | Kabushiki Kaisha Toshiba | Information processing apparatus and information processing program |
JP2012059221A (ja) | 2010-09-13 | 2012-03-22 | Toshiba Corp | 情報処理装置、情報処理プログラム |
JP2014509029A (ja) | 2011-03-24 | 2014-04-10 | イルデト ビー ヴイ | 攻撃耐性のためにアプリケーション全体に依存関係ネットワークを提供するシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111512307B (zh) | 2023-10-13 |
WO2019121831A1 (en) | 2019-06-27 |
CN111512307A (zh) | 2020-08-07 |
US11119741B2 (en) | 2021-09-14 |
JP2021507391A (ja) | 2021-02-22 |
EP3729306B1 (en) | 2021-06-16 |
US20200310767A1 (en) | 2020-10-01 |
EP3502935A1 (en) | 2019-06-26 |
EP3729306A1 (en) | 2020-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7242675B2 (ja) | コンパイル装置及び方法 | |
KR102107872B1 (ko) | 컴파일러 기반 난독화 기법 | |
JP7285850B2 (ja) | コンパイルデバイス及び方法 | |
US20170116410A1 (en) | Software protection | |
JP7132926B2 (ja) | コンパイルデバイス及びコンパイル方法 | |
US10735179B2 (en) | Automatic insertion of masking into an algorithm | |
MX2015006158A (es) | Dispositivo de computo configurado con una red de tablas. | |
CN105074712A (zh) | 代码处理装置和程序 | |
CN107871066B (zh) | 基于安卓系统的代码编译方法及装置 | |
JP2021530057A (ja) | マスク関数を用いるコンパイラデバイス | |
KR102352066B1 (ko) | 암호화 알고리즘에 사용될 때 비밀 데이터를 보호하는 방법 | |
CN109478212A (zh) | 按需代码解密 | |
US6931634B2 (en) | Encrypted compiler | |
Brain et al. | Verifying Classic McEliece: examining the role of formal methods in post-quantum cryptography standardisation | |
Táborský et al. | Encryption and Reversible Computations: Work-in-progress Paper | |
JP2019506031A (ja) | 計算装置及び方法 | |
EP3451214A1 (en) | Computing device with computer program bounded thereto | |
Shin et al. | Key protection scheme for secure Internet of Things | |
RIERA | LO! LLVM Obfuscator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230126 |
|
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: 20230208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7242675 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |