WO2013042409A1 - モジュールの暗号化/復号化プログラム - Google Patents
モジュールの暗号化/復号化プログラム Download PDFInfo
- Publication number
- WO2013042409A1 WO2013042409A1 PCT/JP2012/065246 JP2012065246W WO2013042409A1 WO 2013042409 A1 WO2013042409 A1 WO 2013042409A1 JP 2012065246 W JP2012065246 W JP 2012065246W WO 2013042409 A1 WO2013042409 A1 WO 2013042409A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- program
- executed
- execution
- complex
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000037430 deletion Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion 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/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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
- 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
-
- 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
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
<概要>
図1は、本実施例のプログラム複合体の動作の一例を説明するための概念図である。この図にあるように、プログラムAとしたプログラム複合体は記憶域のアドレスXからアドレスYの間にモジュールP個が存在している。モジュール2からモジュールPは暗号化されている。プログラムは、モジュール1から順にモジュールPまで実行されることとする。モジュール1はモジュール2を呼び出し、モジュール2はモジュール3を呼び出すという階層的な実行方式をとる。
図3は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(0300)は、「プログラム本体」(0301)と、「モジュールの集合体」(0302)と、「復号化プログラム」(0303)と、を有する。
図5は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS0501)。暗号化されている場合には、復号化するための処理を実行する(ステップS0502)。暗号化されていない場合には、ステップS0502はスキップする。その後次モジュールを実行し(ステップS0503)、プログラムの終了か否かの判断を行い(ステップS0504)、終了で無ければ、ステップS0501に戻る。終了であれば、プログラムを終了させる。
図6は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(0601)と、「揮発性メモリ」(0602)と、「不揮発性メモリ」(0603)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(0604)を有する。そしてそれらが「システムバス」(0605)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
以上のように本実施例のプログラム複合体によって、暗号化された次に実行されるべきモジュールを呼び出し元のモジュールによって復号化し、実行することができる。これにより、モジュールは階層的に実行されることとなり、実行直前まで保護すべきモジュールを暗号化したままとすることが可能である。これにより、一度に全てのモジュールを復号化する場合よりも、解析に手間がかかることとなるため、プログラムの耐タンパ性が向上する。
<概要>
図7は、本実施例のプログラム複合体の適用例について説明するための概念図である。この図にあるように、プログラムの実行開始時(0801)においては、モジュール1以外のモジュールが暗号化されている。復号化プログラムによりモジュール1の実行終了前に、次に実行すべきモジュール2を復号化する。そして、モジュール1の終了後においては、モジュール1を記憶域から削除する(0802)。
図8は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(0800)は、「プログラム本体」(0801)と、「モジュールの集合体」(0802)と、「復号化プログラム」(0803)と、を有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のプログラム複合体の特徴点は、「プログラム複合体」(0800)が「削除プログラム」(0804)を新たに有する点である。
<処理の流れ>
図9は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS0901)。暗号化されている場合には、復号化するための処理を実行する(ステップS0902)。暗号化されていない場合には、ステップS0902はスキップする。その後次モジュールを実行開始(ステップS0903)する。次いで、次モジュールは呼出元モジュールの削除を行う(ステップS0904)。その後、プログラムの終了か否かの判断を行い(ステップS0905)、終了で無ければ、ステップS0901に戻る。終了であれば、プログラムを終了させる。
図10は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(1001)と、「揮発性メモリ」(1002)と、「不揮発性メモリ」(1003)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(1004)を有する。そしてそれらが「システムバス」(1005)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
このようにして、実行後のモジュールを削除していくことによって、実行後に記憶域に残っている平文のコードを除くことができる。これにより、実行後のモジュールのコードを解析することが不可能となる。したがって、耐タンパ性の高いプログラム複合体の実行が可能となる。
<概要>
図11は、本実施例のプログラム複合体の適用例について説明するための概念図である。この図にあるように、プログラムの実行開始時(1101)においては、モジュール1以外のモジュールが暗号化されている。復号化プログラムによりモジュール1の実行終了前に、次に実行すべきモジュール2を復号化する。そして、モジュール1の終了後においては、モジュール1を再度暗号化する(1102)。
図12は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(1200)は、「プログラム本体」(1201)と、「モジュールの集合体」(1202)と、「復号化プログラム」(1203)と、を有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のプログラム複合体の特徴点は、「プログラム複合体」(1200)が「再暗号化プログラム」(1204)を新たに有する点である。
図13は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS1301)。暗号化されている場合には、復号化するための処理を実行する(ステップS1302)。暗号化されていない場合には、ステップS1302はスキップする。その後次モジュールを実行開始(ステップS1303)する。次いで、次モジュールは呼出元モジュールの再暗号化を行う(ステップS1304)。その後、プログラムの終了か否かの判断を行い(ステップS1305)、終了で無ければ、ステップS1301に戻る。終了であれば、プログラムを終了させる。
図14は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(1401)と、「揮発性メモリ」(1402)と、「不揮発性メモリ」(1403)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(1404)を有する。そしてそれらが「システムバス」(1405)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
このようにして、本実施例のプログラム複合体は、実行後に記憶域に残っている平文のコードを再び暗号化できる。これにより、実行後のモジュールのコードを解析することが不可能となる。したがって、耐タンパ性の高いプログラム複合体の実行が可能となる。
0301 プログラム本体
0302 モジュールの集合体
0303 復号化プログラム
Claims (5)
- モジュールの集合体からなるプログラム本体であって、
各モジュールのうち少なくとも一つは非実行時には暗号化された状態であるプログラム本体と、
次に実行されるモジュールである次モジュールが、暗号化されている場合には、現在実行中のモジュールの終了前のタイミングにて演算装置が実行可能に復号化するための処理を計算機に実行させるための復号化プログラムと、からなるプログラム複合体。 - 請求項1に記載の復号化プログラム。
- 請求項1に記載の復号化プログラムを実行可能に前記暗号化を計算機に実行させるための暗号化プログラム。
- 次モジュールの実行開始後に次モジュールを呼び出したモジュールである呼出元モジュールを演算装置用記憶媒体から削除する処理を計算機に実行させるための削除プログラムをさらに有する請求項1に記載のプログラム複合体。
- 次モジュールの実行開始後に呼出元モジュールを演算装置用記憶媒体にて再暗号化する処理を計算機に実行させるための再暗号化プログラムをさらに有する請求項1に記載のプログラム複合体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020167028810A KR20160123395A (ko) | 2011-09-20 | 2012-06-14 | 모듈의 암호화/복호화 프로그램 |
KR1020147010195A KR101942010B1 (ko) | 2011-09-20 | 2012-06-14 | 모듈의 암호화/복호화 프로그램 |
US14/346,012 US9251356B2 (en) | 2011-09-20 | 2012-06-14 | Module encryption/decryption program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-204370 | 2011-09-20 | ||
JP2011204370A JP5988473B2 (ja) | 2011-09-20 | 2011-09-20 | モジュールの暗号化/復号化プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013042409A1 true WO2013042409A1 (ja) | 2013-03-28 |
Family
ID=47914190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/065246 WO2013042409A1 (ja) | 2011-09-20 | 2012-06-14 | モジュールの暗号化/復号化プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9251356B2 (ja) |
JP (1) | JP5988473B2 (ja) |
KR (2) | KR20160123395A (ja) |
WO (1) | WO2013042409A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6083348B2 (ja) * | 2013-07-31 | 2017-02-22 | 株式会社ソシオネクスト | プログラム実行方法および復号装置 |
CN107430650B (zh) | 2015-03-02 | 2020-10-09 | 因温特奥股份公司 | 保护计算机程序以抵御逆向工程 |
JP2019149763A (ja) * | 2018-02-28 | 2019-09-05 | オムロン株式会社 | データの処理方法、制御システム、制御装置 |
US11941109B2 (en) * | 2021-12-21 | 2024-03-26 | Cyberark Software Ltd. | Customizable and dynamically mutable operating systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005018725A (ja) * | 2002-08-01 | 2005-01-20 | Matsushita Electric Ind Co Ltd | 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法 |
JP2005050196A (ja) * | 2003-07-30 | 2005-02-24 | Matsushita Electric Ind Co Ltd | 暗号化プログラム実行方法およびその装置 |
JP2007148575A (ja) * | 2005-11-24 | 2007-06-14 | Fuji Xerox Co Ltd | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
JP2010217975A (ja) * | 2009-03-13 | 2010-09-30 | Nec System Technologies Ltd | 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752141B1 (en) * | 1999-10-18 | 2010-07-06 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
US7216110B1 (en) * | 1999-10-18 | 2007-05-08 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
EP1603001B1 (en) | 2002-08-01 | 2007-10-31 | Matsushita Electric Industrial Co., Ltd. | Apparatusses and methods for decrypting blocks of data and locating the decrypted blocks of data in memory space used for execution |
JP5374751B2 (ja) * | 2008-07-31 | 2013-12-25 | 株式会社ハイパーテック | メモリ管理方法 |
JP2011028506A (ja) | 2009-07-24 | 2011-02-10 | Renesas Electronics Corp | プログラムの難読化方法とプログラムと装置 |
US8782429B2 (en) * | 2009-12-23 | 2014-07-15 | Ab Initio Technology Llc | Securing execution of computational resources |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
-
2011
- 2011-09-20 JP JP2011204370A patent/JP5988473B2/ja active Active
-
2012
- 2012-06-14 WO PCT/JP2012/065246 patent/WO2013042409A1/ja active Application Filing
- 2012-06-14 KR KR1020167028810A patent/KR20160123395A/ko not_active Application Discontinuation
- 2012-06-14 KR KR1020147010195A patent/KR101942010B1/ko active IP Right Grant
- 2012-06-14 US US14/346,012 patent/US9251356B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005018725A (ja) * | 2002-08-01 | 2005-01-20 | Matsushita Electric Ind Co Ltd | 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法 |
JP2005050196A (ja) * | 2003-07-30 | 2005-02-24 | Matsushita Electric Ind Co Ltd | 暗号化プログラム実行方法およびその装置 |
JP2007148575A (ja) * | 2005-11-24 | 2007-06-14 | Fuji Xerox Co Ltd | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
JP2010217975A (ja) * | 2009-03-13 | 2010-09-30 | Nec System Technologies Ltd | 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2013065237A (ja) | 2013-04-11 |
US9251356B2 (en) | 2016-02-02 |
KR101942010B1 (ko) | 2019-01-24 |
JP5988473B2 (ja) | 2016-09-07 |
KR20140069176A (ko) | 2014-06-09 |
KR20160123395A (ko) | 2016-10-25 |
US20150006909A1 (en) | 2015-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170295013A1 (en) | Method for fulfilling a cryptographic request requiring a value of a private key | |
RU2620712C2 (ru) | Устройство виртуальной машины, имеющее управляемую ключом обфускацию, и способ | |
CN105227565B (zh) | 用于安卓系统的防逆向破解共享对象文件的方法和装置 | |
US20160117518A1 (en) | File Encryption/Decryption Device And File Encryption/Decryption Method | |
CN107612683B (zh) | 一种加解密方法、装置、系统、设备和存储介质 | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
JP5988473B2 (ja) | モジュールの暗号化/復号化プログラム | |
WO2011023051A1 (zh) | 数据加密方法、解密方法及移动终端 | |
CN108229190B (zh) | 透明加解密的控制方法、装置、程序、存储介质和电子设备 | |
Kotov et al. | Understanding crypto-ransomware | |
US8918653B2 (en) | Protection of interpreted source code in virtual appliances | |
CN114124364A (zh) | 密钥安全处理方法、装置、设备及计算机可读存储介质 | |
CN106375080B (zh) | 一种flash文件的加密及解密方法及其装置 | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
US9378395B2 (en) | Method, a device and a computer program support for execution of encrypted computer code | |
JP2010217975A (ja) | 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
JP6374454B2 (ja) | モジュールの暗号化/復号化プログラム | |
JP6374453B2 (ja) | モジュールの暗号化/復号化プログラム | |
CN109995526A (zh) | 一种密钥的存储方法和装置、密钥的调用方法和装置 | |
JP2009253490A (ja) | メモリシステムの暗号化方式 | |
JP2016028334A (ja) | モジュールの暗号化/復号化プログラム | |
CN107688729B (zh) | 基于可信主机的应用程序保护系统及方法 | |
JP6215468B2 (ja) | プログラム保護装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12834166 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14346012 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 20147010195 Country of ref document: KR Kind code of ref document: A |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12834166 Country of ref document: EP Kind code of ref document: A1 |