JP2018501578A - プログラム実行の隠蔽 - Google Patents
プログラム実行の隠蔽 Download PDFInfo
- Publication number
- JP2018501578A JP2018501578A JP2017533532A JP2017533532A JP2018501578A JP 2018501578 A JP2018501578 A JP 2018501578A JP 2017533532 A JP2017533532 A JP 2017533532A JP 2017533532 A JP2017533532 A JP 2017533532A JP 2018501578 A JP2018501578 A JP 2018501578A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- action
- expression
- representation
- condition
- 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
- 230000014509 gene expression Effects 0.000 claims abstract description 163
- 230000009471 action Effects 0.000 claims abstract description 100
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims description 40
- 230000008859 change Effects 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 59
- 238000009795 derivation Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 108010063499 Sigma Factor Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
Description
変数v1,v2,...,vnのうちの変数viの値wiであって、wiは集合Wの要素である、値wiを、表現riにより表現する値表現手段であって、
Vの部分集合V’の値に対するアクションを、V’に対するアクションと、
を有し、
V’に対するアクションは、
w’m=fm(wm)及び
のいずれかであるように、集合V3の各変数vmの表現
アクション表現手段(103)は、
を有する。
i=1,2,...,nについて、fiは、W上で定義された関数であり、
変数v1,v2,...,vnのうちの変数viの値wiであって、wは集合Wの要素である、値wiを、表現riにより表現するステップであって、
i=1,2,...,nについて、更新された表現
を含み、
V’に対するアクションは、変数の集合V’内の各変数vjの表現rjを、変数vjの変更された値w’jに応じて変更するよう構成され、
値wであって、wは集合Wの要素である、値wを、表現rにより表現する表現ユニットであって、
条件に関する入力に基づいて、表現rから、値w’の表現r’を導出する導出ユニットであって、w’は集合Wの要素であり、r’は、表現の集合
を有する。
導出ユニットは、
を有することができる。
値wであって、wは集合Wの要素である、値wを、表現rにより表現するステップであって、
条件に関する入力に基づいて、表現rから、値w’の表現r’を導出するステップであって、w’は集合Wの要素であり、r’は、表現の集合
を含む。
条件と、変数wに対して実行される条件付き演算fであって、条件が成立する場合、w’=f(w)であるように変数w’が計算されるように実行される条件付き演算fと、を特定する特定ユニットであって、w’は集合Wの要素であり、fは、W上で定義された写像である、特定ユニットと、
第1のコンピュータコードを生成する第1の生成ユニットであって、第1のコンピュータコードは、実行されたときに、変数wであって、wは集合Wの要素である、変数wを、表現rにより表現するよう構成され、
第2のコンピュータコードを生成する第2の生成ユニットであって、第2のコンピュータコードは、実行されたときに、条件に関する入力に基づいて、値w’の表現r’を決定するよう構成され、r’は、表現の集合
を有し、
入力に応じて条件が成立する場合、w’=f(w)であり、入力に応じて条件が成立しない場合、σ’=f(h(w,σ))であり、hは、W×ΣからWへの写像である。
条件と、変数wに対して実行される条件付き演算fであって、条件が成立する場合、w’=f(w)であるように変数w’が計算されるように実行される条件付き演算fと、を特定するステップであって、w’は集合Wの要素であり、fは、W上で定義された写像である、ステップと、
第1のコンピュータコードを生成するステップであって、第1のコンピュータコードは、実行されたときに、変数wであって、wは集合Wの要素である、変数wを、表現rにより表現するよう構成され、
第2のコンピュータコードを生成するステップであって、第2のコンピュータコードは、実行されたときに、条件に関する入力に基づいて、値w’の表現r’を決定するよう構成され、r’は、表現の集合
を含み、
入力に応じて条件が成立する場合、w’=f(w)であり、入力に応じて条件が成立しない場合、σ’=f(h(w,σ))であり、hは、W×ΣからWへの写像である。
・wの展開が、条件の結果に対応する分岐により決定され、
・σの展開が、条件の結果に対応しない分岐により決定される。
入力:b及びr、ここで、
入力:条件b及び表現r、ここで、
w’=f(w)及びσ’=σ(条件が真である場合)であるか、又は
w’=w及びσ’=f(h(w,σ))(条件が偽である場合)であるか、
のいずれかであるように、表現
・条件分岐のうちの少なくとも1つの分岐において変更される変数であって、条件分岐のうちの少なくとも1つの他の分岐においては変更されない変数を判別し、
・その判別された変数についてダミー演算を作成し、
・そのダミー演算を、条件分岐のうちの上記少なくとも1つの他の分岐に含める
ことにより、バランスされ得る。上記の3つのステップは、条件分岐に関わる各変数について繰り返され得る。
・
p:=expi+expi+1及びq:=expi−expi+1を補助変数として導入すると、このプログラムは、以下のように変換され得る:
Claims (14)
- プログラムの変数の集合V={v1,v2,...,vn}に対する変更を隠蔽するシステムであって、
前記変数v1,v2,...,vnのうちの変数viの値wiであって、wは集合Wの要素である、値wiを、表現riにより表現する値表現手段であって、
i=1,2,...,nについて、更新された表現
を有し、
V’に対する前記アクションは、変数の集合V’内の各変数vjの表現rjを、変数vjの変更された値w’jに応じて変更するよう構成され、
- 前記部分集合V’内の前記変数の前記値に対する前記アクションは、条件が成立する場合の変数の集合V1に対するアクションと、前記条件が成立しない場合の変数の集合V2に対するアクションと、を定義しているif文を含み、前記変数の集合V1は、前記変数の集合Vの部分集合であり、前記変数の集合V2も、前記変数の集合Vの部分集合であり、前記アクション表現手段は、前記条件が成立する場合には、前記変数の集合V’として前記変数の集合V1を使用し、前記条件が成立しない場合には、前記変数の集合V’として前記変数の集合V2を使用するよう構成される、請求項1記載のシステム。
- 前記変数の集合V1及び前記変数の集合V2は、前記変数の集合V1に対する前記アクション及び前記変数の集合V2に対する前記アクションの両方により影響が及ぼされる変数の積集合V3を有し、したがって、V3=V1∩V2であり、前記アクションは、前記条件が成立する場合には、関数fmに従って、前記条件が成立しない場合には、関数
w’m=fm(wm)及び
のいずれかであるように、前記集合V3の各変数vmの表現
- 前記アクション表現手段は、前記表現ri及び条件に関する入力に対応する前記表現r’iのルックアップを、前記表現ri及び前記条件に関する前記入力のタプルを、対応する前記表現r’iにマッピングしている少なくとも1つのルックアップテーブルを使用して生じさせるよう構成される、請求項1記載のシステム。
- |Σ|=|W|であり、前記アクション表現手段は、条件bを判定する1つ以上の入力変数を特定するよう構成され、
前記アクション表現手段は、
を有する、請求項1記載のシステム。 - w及びσの全ての値、並びに、{1,2,3,...,n}内のmの少なくとも1つの値について、hm(w,σ)=σである、請求項3記載のシステム。
- 第1の複数のネストされた条件を伴うネストされた条件付き演算を、第2の複数の条件を伴う機能的に等価な一連のネストされていない条件付き演算により表現する変換ユニットをさらに有する、請求項2又は3記載のシステム。
- 前記変換ユニットは、
前記ネストされた条件付き演算のそれぞれの条件分岐のそれぞれの式であって、前記それぞれの式は、特定の変数に割り当てられる代替値に関連付けられる、それぞれの式を、補助式の項に組み合わせ、
上記のステップを繰り返して、項が異なる様式で組み合わされる複数の補助式が生成されるように、それぞれの条件分岐のそれぞれの式を、補助式の項に組み合わせ、
前記補助式を評価し、それらの結果を記憶するためのコードを生成し、
組み合わされた条件であって、前記組み合わされた条件は、前記条件の観点から関連しない分岐に対応する項が相殺するような、前記複数の条件の組合せである、組み合わされた条件に応じて、前記補助式の前記結果を組み合わせるためのコードを生成する
よう構成される、請求項10記載のシステム。 - 前記アクション表現手段は、前記一連のネストされていない条件付き演算のうちの少なくとも1つの条件付き演算と、前記第2の複数の条件のうちの対応する条件と、を特定するよう構成され、前記アクション表現手段は、前記の特定された条件付き演算をアクションとして、前記の特定された対応する条件を前記if文の条件として、使用するよう構成される、請求項10記載のシステム。
- プログラムの変数の集合V={v1,v2,...,vn}に対する変更を隠蔽する方法であって、
前記変数v1,v2,...,vnのうちの変数viの値wiであって、wは集合Wの要素である、値wiを、表現riにより表現するステップであって、
i=1,2,...,nについて、更新された表現
を含み、
V’に対する前記アクションは、変数の集合V’内の各変数vjの表現rjを、変数vjの変更された値w’jに応じて変更するよう構成され、
- プロセッサに請求項13記載の方法を実行させる命令を含むコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14199750.2 | 2014-12-22 | ||
EP14199750 | 2014-12-22 | ||
PCT/EP2015/078894 WO2016102180A1 (en) | 2014-12-22 | 2015-12-08 | Hiding of a program execution |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018501578A true JP2018501578A (ja) | 2018-01-18 |
JP6303073B2 JP6303073B2 (ja) | 2018-03-28 |
Family
ID=52272903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017533532A Active JP6303073B2 (ja) | 2014-12-22 | 2015-12-08 | プログラム実行の隠蔽 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10685096B2 (ja) |
EP (1) | EP3238113B1 (ja) |
JP (1) | JP6303073B2 (ja) |
CN (1) | CN107113160B (ja) |
RU (1) | RU2715021C2 (ja) |
WO (1) | WO2016102180A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL2015599B1 (en) * | 2015-10-12 | 2017-05-02 | Koninklijke Philips Nv | A cryptographic device and an encoding device. |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269398A (ja) * | 2007-04-23 | 2008-11-06 | Fuji Xerox Co Ltd | プログラム難読化装置及びプログラム |
US20100115287A1 (en) * | 2008-10-31 | 2010-05-06 | Apple Inc. | System and method for obfuscating constants in a computer program |
US20100199354A1 (en) * | 2006-12-21 | 2010-08-05 | Johan Eker | Obfuscating Computer Program Code |
JP2011018119A (ja) * | 2009-07-07 | 2011-01-27 | Fuji Xerox Co Ltd | プログラム難読化装置及びプログラム |
US20130036473A1 (en) * | 2011-08-01 | 2013-02-07 | Apple Inc. | System and method for branch function based obfuscation |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594761B1 (en) | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
CA2327911A1 (en) | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US7383443B2 (en) * | 2002-06-27 | 2008-06-03 | Microsoft Corporation | System and method for obfuscating code using instruction replacement scheme |
US7620987B2 (en) * | 2005-08-12 | 2009-11-17 | Microsoft Corporation | Obfuscating computer code to prevent an attack |
DE602006008166D1 (de) * | 2006-12-21 | 2009-09-10 | Ericsson Telefon Ab L M | Verschleierung von Computerprogrammcodes |
EP2240857A4 (en) | 2007-12-21 | 2013-12-25 | Univ Virginia Patent Found | SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS |
JP5229166B2 (ja) | 2009-09-03 | 2013-07-03 | 富士通株式会社 | 通信方法、中継装置、端末装置および基地局 |
US8386803B2 (en) * | 2009-11-18 | 2013-02-26 | Apple Inc. | System and method for data obfuscation based on discrete logarithm properties |
US8665270B2 (en) * | 2010-12-16 | 2014-03-04 | Csi Ricerca & Ambiente Srl | Method of determining implicit hidden features of phenomena which can be represented by a point distribution in a space |
US8971526B2 (en) * | 2011-07-26 | 2015-03-03 | Crocus-Technology Sa | Method of counter-measuring against side-channel attacks |
RU2620712C2 (ru) | 2012-01-09 | 2017-05-29 | Конинклейке Филипс Н.В. | Устройство виртуальной машины, имеющее управляемую ключом обфускацию, и способ |
US8756435B2 (en) * | 2012-03-02 | 2014-06-17 | Apple Inc. | Obfuscation of control flow of software |
US10180824B2 (en) | 2012-12-21 | 2019-01-15 | Koninklijke Philips N.V. | Computing device comprising a table network |
MX343892B (es) | 2012-12-21 | 2016-11-28 | Koninklijke Philips Nv | Dispositivo de computo configurado con una red de tablas. |
KR20140097927A (ko) | 2013-01-30 | 2014-08-07 | 삼성전자주식회사 | 소프트웨어의 보안을 높이는 방법 |
CN104123503B (zh) | 2014-06-25 | 2017-02-15 | 中国人民解放军国防科学技术大学 | Sat问题求解外包过程中的cnf公式数据保护方法 |
-
2015
- 2015-12-08 US US15/535,734 patent/US10685096B2/en active Active
- 2015-12-08 RU RU2017126073A patent/RU2715021C2/ru active
- 2015-12-08 EP EP15805485.8A patent/EP3238113B1/en active Active
- 2015-12-08 JP JP2017533532A patent/JP6303073B2/ja active Active
- 2015-12-08 CN CN201580070397.4A patent/CN107113160B/zh active Active
- 2015-12-08 WO PCT/EP2015/078894 patent/WO2016102180A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100199354A1 (en) * | 2006-12-21 | 2010-08-05 | Johan Eker | Obfuscating Computer Program Code |
JP2008269398A (ja) * | 2007-04-23 | 2008-11-06 | Fuji Xerox Co Ltd | プログラム難読化装置及びプログラム |
US20100115287A1 (en) * | 2008-10-31 | 2010-05-06 | Apple Inc. | System and method for obfuscating constants in a computer program |
JP2011018119A (ja) * | 2009-07-07 | 2011-01-27 | Fuji Xerox Co Ltd | プログラム難読化装置及びプログラム |
US20130036473A1 (en) * | 2011-08-01 | 2013-02-07 | Apple Inc. | System and method for branch function based obfuscation |
Also Published As
Publication number | Publication date |
---|---|
RU2017126073A (ru) | 2019-01-24 |
US10685096B2 (en) | 2020-06-16 |
WO2016102180A1 (en) | 2016-06-30 |
EP3238113A1 (en) | 2017-11-01 |
RU2017126073A3 (ja) | 2019-07-17 |
JP6303073B2 (ja) | 2018-03-28 |
CN107113160B (zh) | 2020-05-15 |
BR112017013083A2 (pt) | 2018-01-02 |
RU2715021C2 (ru) | 2020-02-21 |
CN107113160A (zh) | 2017-08-29 |
EP3238113B1 (en) | 2018-09-26 |
US20180357396A1 (en) | 2018-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453481B (zh) | 包括表网络的计算设备 | |
JP5861018B1 (ja) | テーブルネットワークによって構成されたコンピューティングデバイス | |
US20190287427A1 (en) | Device and method for performing obfuscated arithmetic | |
CN111819542B (zh) | 编译设备和方法 | |
JP7132926B2 (ja) | コンパイルデバイス及びコンパイル方法 | |
US11119741B2 (en) | Compiling device and method | |
JP2021530057A (ja) | マスク関数を用いるコンパイラデバイス | |
US20160306973A1 (en) | A computing device for iterative appilcation of table networks | |
JP2017509942A (ja) | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 | |
JP6303073B2 (ja) | プログラム実行の隠蔽 | |
EP2947590B1 (en) | Program code obfuscation based upon recently executed program code | |
JP6522860B2 (ja) | 計算装置及び方法 | |
BR112017013083B1 (pt) | Sistema para ocultar uma alteração e método para ocultar uma alteração |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180122 |
|
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: 20180206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6303073 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |