JP5184489B2 - 命令レベルのソフトウェア暗号化のための方法及び装置 - Google Patents
命令レベルのソフトウェア暗号化のための方法及び装置 Download PDFInfo
- Publication number
- JP5184489B2 JP5184489B2 JP2009261037A JP2009261037A JP5184489B2 JP 5184489 B2 JP5184489 B2 JP 5184489B2 JP 2009261037 A JP2009261037 A JP 2009261037A JP 2009261037 A JP2009261037 A JP 2009261037A JP 5184489 B2 JP5184489 B2 JP 5184489B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- encrypted
- label
- instructions
- subsequent
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 241000257465 Echinoidea Species 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- ZINJLDJMHCUBIP-UHFFFAOYSA-N ethametsulfuron-methyl Chemical compound CCOC1=NC(NC)=NC(NC(=O)NS(=O)(=O)C=2C(=CC=CC=2)C(=O)OC)=N1 ZINJLDJMHCUBIP-UHFFFAOYSA-N 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000284 extract Substances 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
-
- 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/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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/30—Technical effects
- H01L2924/301—Electrical effects
- H01L2924/30107—Inductance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Description
−ベーシックブロック(basic block)、すなわち常に順次に実行される一組のマシンレベル命令。ベーシックブロックがジャンプまたはそれと同様の命令を含む場合、最後のマシンレベルの命令である。これは、次のマシンレベルの命令は、通常はコードが実行された時に決まるからである。
[外3]
となるようにする。簡単のため、図3には、命令を暗号化するのに用いる乱数Riは示していない。
[外4]
として計算できる。一方、C5を設定すると、C7は
[外5]
として計算できる。すでに述べたように、どちらの乱数補償値を設定するかは通常は問題ではなく、重要なことは、可能性のあるすべての先行命令から来る命令を復号できることである。
Claims (12)
- 複数の分岐命令とラベル命令とを含むコンパイルされたコンピュータコード命令のセットを暗号化して、実行時に命令ごとに復号する、コンパイルされたコンピュータコード命令の暗号化されたセットを求める方法であって、
前記コンパイルされたコンピュータコード命令のセットの実行は前記複数の分岐命令の各々から前記ラベル命令に続き、
前記方法は一装置において、
前記ラベル命令と、前記複数の分岐命令のうちの選択された分岐命令の値とを入力とするチェイン化された暗号化関数を用いて前記ラベル命令を暗号化するステップと、
前記複数の分岐命令のうちの前記選択された分岐命令以外の少なくとも1つの分岐命令の各々を、前記暗号化されたラベル命令と前記ラベル命令の直前に実行された分岐命令とを入力とする復号関数を用いる前記暗号化されたラベル命令の復号に用いる補償値と関連づけるステップと、
を含む方法。 - 前記ラベル命令の暗号化は、前記ラベル命令と関連づけられた擬似乱数にさらに依存する、請求項1に記載の方法。
- コード鍵と、前記擬似乱数を生成する命令のオフセットとの関数として前記擬似乱数を生成するステップをさらに含む、請求項2に記載の方法。
- 前記ラベル命令の値と前記複数の分岐命令のうちの前記選択した分岐命令の値とは、それぞれのオプコード部分の値である、請求項1に記載の方法。
- 前記暗号化は、前記ラベル命令の値と、前記複数の分岐命令のうちの選択された分岐命令の値との排他的論理和をとることにより実行される、請求項1に記載の方法。
- チェイン化された暗号化関数を用いて暗号化された、コンパイルされたコンピュータコード命令のセットを復号する方法であって、
前記コンパイルされたコンピュータコード命令の実行時に、一装置において、
実行された命令の補償値を求めるステップと、
前記コンパイルされたコンピュータコード命令の実行中に、前記実行された命令に続く後続の暗号化された命令であって前記後続の命令と擬似乱数と第3の命令とを入力として前記チェイン化された暗号化関数を用いて暗号化された前記後続の暗号化された命令を求めるステップと、
前記後続の暗号化された命令のための前記擬似乱数を求めるステップと、
前記チェイン化された暗号化関数に対応する復号関数を用いて前記後続の暗号化された命令を復号して前記後続の命令を生成するステップであって、前記暗号化関数は前記後続の暗号化された命令と、前記実行された命令と、前記擬似乱数と、前記補償値を入力とする、復号するステップと、を含む方法。 - コード鍵と、前記後続の暗号化された命令のオフセットとの関数として前記擬似乱数を生成するステップをさらに含む、請求項6に記載の方法。
- 暗号化された命令は暗号化されたオプコードと、もしあれば暗号化されていないパラメータとを含み、前記実行された命令と前記後続の暗号化された命令のオプコードの部分のみを復号に用いる、請求項6に記載の方法。
- 前記後続の暗号化された命令の値と、前記実行された関数の値と、前記擬似乱数と、前記補償値の排他的論理和をとることにより復号を行う、請求項6に記載の方法。
- 複数の分岐命令とラベル命令とを含む、コンパイルされたコンピュータコード命令のセットを暗号化して、実行時に命令ごとに復号する、コンパイルされたコンピュータコード命令の暗号化されたセットを求める装置であって、
前記コンパイルされたコンピュータコード命令のセットの実行は前記複数の分岐命令の各々から前記ラベル命令に直接続き、
前記ラベル命令と、前記複数の分岐命令のうちの選択された分岐命令の値とを入力とするチェイン化された暗号化関数を用いて前記ラベル命令を暗号化し、
前記複数の分岐命令のうちの前記選択された分岐命令以外の少なくとも1つの分岐命令の各々を、前記暗号化されたラベル命令と前記ラベル命令の直前に実行された分岐命令とを入力とする復号関数を用いる前記暗号化されたラベル命令の復号に用いる補償値と関連づけるように構成されたプロセッサを有する装置。 - チェイン化された暗号化関数を用いて暗号化された、コンパイルされたコンピュータコード命令のセットを復号する装置であって、
前記コンパイルされたコンピュータコード命令の実行時に、
実行された命令の補償値を求め、
前記コンパイルされたコンピュータコード命令の実行中に、前記実行された命令に続く後続の暗号化された命令であって前記後続の命令と擬似乱数と第3の命令とを入力として前記チェイン化された暗号化関数を用いて暗号化された前記後続の暗号化された命令を求め、
前記後続の暗号化された命令のための前記擬似乱数を求め、
前記チェイン化された暗号化関数に対応する復号関数であって前記後続の暗号化された命令と前記実行された命令と前記擬似乱数と前記補償値とを入力とする復号関数を用いて前記後続の暗号化された命令を復号して前記後続の命令を生成するように構成されたプロセッサを有する装置。 - コンピュータにおいて実行したとき、前記コンピュータに請求項6乃至9いずれか一項の方法を実行させるコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08305946A EP2196937A1 (en) | 2008-12-15 | 2008-12-15 | Methods and devices for instruction level software encryption |
EP08305946.9 | 2008-12-15 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010140473A JP2010140473A (ja) | 2010-06-24 |
JP2010140473A5 JP2010140473A5 (ja) | 2011-01-13 |
JP5184489B2 true JP5184489B2 (ja) | 2013-04-17 |
Family
ID=40627567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009261037A Expired - Fee Related JP5184489B2 (ja) | 2008-12-15 | 2009-11-16 | 命令レベルのソフトウェア暗号化のための方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8341426B2 (ja) |
EP (2) | EP2196937A1 (ja) |
JP (1) | JP5184489B2 (ja) |
KR (1) | KR101632658B1 (ja) |
CN (1) | CN101751243B (ja) |
AT (1) | ATE520091T1 (ja) |
TW (1) | TWI478050B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11918175B2 (en) | 2018-10-23 | 2024-03-05 | Amicro Semiconductor Co., Ltd. | Control method for carpet drift in robot motion, chip, and cleaning robot |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2541196C2 (ru) * | 2010-07-22 | 2015-02-10 | Награвисьон С.А. | Способ обеспечения целостности программного обеспечения |
US8745408B2 (en) * | 2011-04-08 | 2014-06-03 | Infineon Technologies Ag | Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update |
CN104272317B (zh) | 2012-06-01 | 2017-09-15 | 英特尔公司 | 在更安全的执行环境中标识并执行多个指令的子集 |
US8812873B2 (en) | 2012-09-26 | 2014-08-19 | Intel Corporation | Secure execution of a computer program using binary translators |
US9311493B2 (en) * | 2013-07-30 | 2016-04-12 | Battelle Memorial Institute | System for processing an encrypted instruction stream in hardware |
EP2884692B1 (en) * | 2013-12-13 | 2020-05-20 | Nxp B.V. | Updating software on a secure element |
US9547758B2 (en) | 2014-05-19 | 2017-01-17 | Nxp B.V. | Program cable obfuscation based upon recently executed program code |
EP2978159A1 (en) | 2014-07-21 | 2016-01-27 | Nxp B.V. | Nonce generation for encryption and decryption |
DE102015201430A1 (de) * | 2015-01-28 | 2016-07-28 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Intrinsische Authentifizierung von Programcode |
CN104917610B (zh) * | 2015-06-15 | 2018-03-06 | 上海交通大学 | 基于量子真随机数的通信中继服务器安全系统及方法 |
FR3047100B1 (fr) * | 2016-01-26 | 2018-03-02 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Methode de chiffrement d'un flot d'instructions et execution d'un flot d'instructions ainsi chiffre. |
TWI760546B (zh) * | 2017-08-23 | 2022-04-11 | 安地卡及巴布達商區塊鏈控股有限公司 | 用於高安全性高速資料加密及傳輸的電腦實施系統與方法 |
EP3614293A1 (en) * | 2018-08-24 | 2020-02-26 | Nagravision S.A. | Securing data stored in a memory of an iot device during a low power mode |
CN109698504A (zh) * | 2019-03-08 | 2019-04-30 | 张文韬 | 潮流计算结果分析方法及系统 |
EP4002165A1 (en) * | 2020-11-18 | 2022-05-25 | Thales DIS France SA | Code flow protection with error propagation |
US11409846B2 (en) * | 2021-01-14 | 2022-08-09 | Safelishare, Inc. | User controlled trusted and isolated computing environments |
US20220342655A1 (en) * | 2021-04-22 | 2022-10-27 | STMicroelectronics (Grand Ouest) SAS | Microcontroller, computer program product, and method for adding an additional function to a computer program |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4562305A (en) * | 1982-12-22 | 1985-12-31 | International Business Machines Corporation | Software cryptographic apparatus and method |
US5386469A (en) | 1993-08-05 | 1995-01-31 | Zilog, Inc. | Firmware encryption for microprocessor/microcomputer |
US5675645A (en) * | 1995-04-18 | 1997-10-07 | Ricoh Company, Ltd. | Method and apparatus for securing executable programs against copying |
JPH1055273A (ja) * | 1996-06-05 | 1998-02-24 | Matsushita Electric Ind Co Ltd | ソフトウェア保護装置 |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
US6345359B1 (en) | 1997-11-14 | 2002-02-05 | Raytheon Company | In-line decryption for protecting embedded software |
US6333983B1 (en) * | 1997-12-16 | 2001-12-25 | International Business Machines Corporation | Method and apparatus for performing strong encryption or decryption data using special encryption functions |
US6971022B1 (en) * | 1999-06-15 | 2005-11-29 | Matsushita Electric Industrial Co., Ltd. | Cryptographic apparatus for performing cryptography on a specified area of content data |
ATE366443T1 (de) * | 2000-05-22 | 2007-07-15 | Infineon Technologies Ag | Sicherheits-datenverarbeitungseinheit sowie dazugehöriges verfahren |
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
JP2004246637A (ja) * | 2003-02-14 | 2004-09-02 | Fainaaku Kk | 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム |
JP2005050116A (ja) * | 2003-07-28 | 2005-02-24 | Matsushita Electric Ind Co Ltd | 命令実行装置およびその方法 |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
JP4737592B2 (ja) * | 2005-02-16 | 2011-08-03 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US8495367B2 (en) * | 2007-02-22 | 2013-07-23 | International Business Machines Corporation | Nondestructive interception of secure data in transit |
US8538012B2 (en) * | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
JP2009169489A (ja) * | 2008-01-11 | 2009-07-30 | Oki Electric Ind Co Ltd | 暗号化方法、復号化方法、暗号化装置、復号化装置 |
-
2008
- 2008-12-15 EP EP08305946A patent/EP2196937A1/en not_active Withdrawn
-
2009
- 2009-11-16 JP JP2009261037A patent/JP5184489B2/ja not_active Expired - Fee Related
- 2009-11-17 AT AT09176197T patent/ATE520091T1/de not_active IP Right Cessation
- 2009-11-17 EP EP09176197A patent/EP2196938B1/en not_active Not-in-force
- 2009-11-20 TW TW098139417A patent/TWI478050B/zh not_active IP Right Cessation
- 2009-12-01 CN CN200910252802.0A patent/CN101751243B/zh not_active Expired - Fee Related
- 2009-12-10 US US12/653,224 patent/US8341426B2/en not_active Expired - Fee Related
- 2009-12-11 KR KR1020090123199A patent/KR101632658B1/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11918175B2 (en) | 2018-10-23 | 2024-03-05 | Amicro Semiconductor Co., Ltd. | Control method for carpet drift in robot motion, chip, and cleaning robot |
Also Published As
Publication number | Publication date |
---|---|
EP2196938B1 (en) | 2011-08-10 |
ATE520091T1 (de) | 2011-08-15 |
US20100153745A1 (en) | 2010-06-17 |
CN101751243A (zh) | 2010-06-23 |
TW201023031A (en) | 2010-06-16 |
KR101632658B1 (ko) | 2016-06-22 |
JP2010140473A (ja) | 2010-06-24 |
TWI478050B (zh) | 2015-03-21 |
CN101751243B (zh) | 2015-02-18 |
EP2196937A1 (en) | 2010-06-16 |
EP2196938A1 (en) | 2010-06-16 |
US8341426B2 (en) | 2012-12-25 |
KR20100069588A (ko) | 2010-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5184489B2 (ja) | 命令レベルのソフトウェア暗号化のための方法及び装置 | |
JP5779434B2 (ja) | セキュリティ装置及びセキュリティシステム | |
US8538015B2 (en) | Flexible architecture and instruction for advanced encryption standard (AES) | |
US8634549B2 (en) | Ciphertext key chaining | |
US8416947B2 (en) | Block cipher using multiplication over a finite field of even characteristic | |
US9515818B2 (en) | Multi-block cryptographic operation | |
JP5167348B2 (ja) | ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置 | |
JP6880017B2 (ja) | 信頼できないコンピュータ上でプライベートプログラムを実行するためのシステム及びプロセス | |
US20060023875A1 (en) | Enhanced stream cipher combining function | |
KR20100017844A (ko) | 데이터를 보호할 때 적용되는 프로그램 가능한 프로세싱 단계들을 정의하기위한 시스템 및 방법 | |
EP2629225A1 (en) | System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction | |
US8804953B2 (en) | Extensive ciphertext feedback | |
US8041033B2 (en) | Cipher feedback with variable block chaining | |
JP2018514816A (ja) | 変形鍵を用いる高速aes | |
JPS6281145A (ja) | デ−タ暗号化方式 | |
Mahalakshmi et al. | “Security-as-a-Service” for files in cloud computing—A novel application model | |
JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101119 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121127 |
|
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: 20121218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130116 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5184489 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: 20160125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |