JP2011081654A - Information processor, program protection system, program protection method and program - Google Patents
Information processor, program protection system, program protection method and program Download PDFInfo
- Publication number
- JP2011081654A JP2011081654A JP2009234251A JP2009234251A JP2011081654A JP 2011081654 A JP2011081654 A JP 2011081654A JP 2009234251 A JP2009234251 A JP 2009234251A JP 2009234251 A JP2009234251 A JP 2009234251A JP 2011081654 A JP2011081654 A JP 2011081654A
- Authority
- JP
- Japan
- Prior art keywords
- program
- virtual machine
- encrypted
- storage means
- key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 75
- 230000006870 function Effects 0.000 claims abstract description 11
- 230000010365 information processing Effects 0.000 claims description 19
- 244000035744 Hura crepitans Species 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 2
- 241000700605 Viruses Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
Images
Abstract
Description
本発明は、情報処理装置、プログラム保護システム、プログラム保護方法およびプログラムに関し、特には、プログラムを保護できる情報処理装置、プログラム保護システム、プログラム保護方法およびプログラムに関する。 The present invention relates to an information processing apparatus, a program protection system, a program protection method, and a program, and more particularly to an information processing apparatus, a program protection system, a program protection method, and a program that can protect a program.
ユーザにて使用されるコンピュータが、サーバ等のコンピュータから配布されたプログラムを受信し、そのプログラムを実行することがある。 A computer used by a user may receive a program distributed from a computer such as a server and execute the program.
この場合、ユーザが悪意を有していると、配布されたプログラムは、そのユーザによって改変される可能性がある。例えば、プログラムを違法コピーから保護する処理がスキップされたり、オンラインゲームにおいて不正に得点が上がるように、ユーザはプログラムを改変する可能性がある。 In this case, if the user has malicious intent, the distributed program may be altered by the user. For example, the user may modify the program so that the process of protecting the program from illegal copying is skipped or the score is raised illegally in an online game.
また、ユーザにプログラムの内容が知られてしまうと、そのプログラムで用いられている技術が流出する可能性がある。 Moreover, if the contents of the program are known to the user, the technology used in the program may be leaked.
非特許文献1には、悪意のあるユーザからプログラムを保護するためのプログラム保護システムが記載されている。 Non-Patent Document 1 describes a program protection system for protecting a program from a malicious user.
このプログラム保護システムは、プログラムに難読化処理を施すことによって、プログラムを保護する。難読化処理は、プログラムが実行された際に実現される機能を保ったまま、そのプログラムを複雑化する処理であり、暗号化処理とは異なる。このため、難読化処理が施されたプログラムの解析は困難になる。 This program protection system protects a program by performing an obfuscation process on the program. The obfuscation process is a process that complicates the program while maintaining the function realized when the program is executed, and is different from the encryption process. This makes it difficult to analyze a program that has been obfuscated.
特許文献1には、プログラムを保護するプログラム実行装置が記載されている。 Patent Literature 1 describes a program execution device that protects a program.
このプログラム実行装置は、プログラム鍵を用いて暗号化されたプログラムと、マスタ鍵を用いて暗号化されたプログラム鍵と、を受け付けて格納する。 The program execution device accepts and stores a program encrypted using a program key and a program key encrypted using a master key.
そして、プログラムを実行する状況になると、プログラム実行装置は、暗号化されたプログラム鍵を、マスタ鍵を用いて復号する。続いて、プログラム実行装置は、暗号化されたプログラムを、復号されたプログラム鍵を用いて復号し、復号されたプログラムを実行する。 When the program is executed, the program execution device decrypts the encrypted program key using the master key. Subsequently, the program execution device decrypts the encrypted program using the decrypted program key, and executes the decrypted program.
このプログラム実行装置は、暗号化されたプログラムと暗号化されたプログラム鍵とを格納することによって、プログラムを保護する。 The program execution device protects the program by storing the encrypted program and the encrypted program key.
特許文献2には、内部にプロセッサ固有鍵を秘匿可能なプロセッサという特殊なハードウェアを用いることによって、プログラムを保護するデータ利用装置が記載されている。 Patent Document 2 describes a data utilization device that protects a program by using special hardware called a processor that can conceal a processor unique key.
このデータ利用装置は、コンテンツ鍵を用いて暗号化されたプログラムと、コンテンツ鍵と、を受信すると、プロセッサ固有鍵を用いてコンテンツ鍵を暗号化し、暗号化されたプログラムと、暗号化されたコンテンツ鍵と、を格納する。 When the data utilization apparatus receives the program encrypted using the content key and the content key, the data utilization device encrypts the content key using the processor specific key, and encrypts the encrypted program and the encrypted content. Store the key.
そして、プログラムを実行する状況になると、データ利用装置内のプロセッサは、暗号化されたコンテンツ鍵を、プロセッサ固有鍵を用いて、プロセッサ内部で復号する。続いて、このプロセッサは、暗号化されたプログラムを、復号されたコンテンツ鍵を用いて、プロセッサ内部で復号し、復号されたプログラムを、プロセッサが有する内部メモリに配置し、そのプログラムを実行する。 Then, when the program is executed, the processor in the data utilization device decrypts the encrypted content key using the processor unique key. Subsequently, the processor decrypts the encrypted program inside the processor using the decrypted content key, places the decrypted program in an internal memory of the processor, and executes the program.
このデータ利用装置は、暗号化されたプログラムと暗号化されたコンテンツ鍵とを格納し、さらに、復号されたプログラムを、プロセッサの外には出力しないことによって、プログラムを保護する。 This data utilization device stores the encrypted program and the encrypted content key, and further protects the program by not outputting the decrypted program to the outside of the processor.
非特許文献1に記載のプログラム保護システムが利用された場合、プログラム配布者自身が、プログラムを難読化しなければならない。プログラムを難読化するには、プログラミング言語に応じた専用のツールが必要であり、プログラムを難読化することは容易ではない。このため、プログラム配布者の負担が大きいという課題があった。 When the program protection system described in Non-Patent Document 1 is used, the program distributor must obfuscate the program. In order to obfuscate the program, a dedicated tool corresponding to the programming language is required, and it is not easy to obfuscate the program. For this reason, there is a problem that the burden on the program distributor is large.
特許文献1に記載の技術では、暗号化技術が使用されることにより、プログラム配布者がプログラムを難読化するという負担をなくすことが可能になる。しかしながら、特許文献1には、プログラムを実行する際に復号されたプログラムに対する保護については記載されていないため、プログラムを実行する際に復号されたプログラムが改変されたり不正に解析されたりする可能性が生じるという課題があった。 With the technique described in Patent Document 1, it is possible to eliminate the burden of the program distributor obfuscating the program by using the encryption technique. However, since Patent Document 1 does not describe protection for a program decrypted when the program is executed, the decrypted program may be altered or illegally analyzed when the program is executed. There was a problem that occurred.
特許文献2に記載の技術では、暗号化技術が使用されることにより、プログラム配布者がプログラムを難読化するという負担をなくすことが可能になる。さらに、特許文献2に記載の技術では、暗号されたプログラムの復号処理をプロセッサ内で行い、復号されたプログラムをプロセッサの外には出力しないことによって、復号されたプログラムが改変されたり不正に解析されたりする可能性を低くできる。 With the technique described in Patent Document 2, it is possible to eliminate the burden that the program distributor obfuscates the program by using the encryption technique. Further, in the technique described in Patent Document 2, the decrypted program is decrypted in the processor, and the decrypted program is not output to the outside of the processor, so that the decrypted program is altered or illegally analyzed. It is possible to reduce the possibility of being.
しかしながら、特許文献2に記載の技術では、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止するために、内部にプロセッサ固有鍵を秘匿可能なプロセッサという特殊なハードウェアを使用しなければならないという課題があった。 However, in the technique described in Patent Document 2, the processor unique key can be concealed in order to reduce the burden on the program distributor and prevent the decrypted program from being altered or illegally analyzed. There is a problem that special hardware called a processor must be used.
なお、非特許文献1および特許文献1には、上記課題が生じるための前提となる技術、具体的には、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止する技術が記載されていない。 In Non-Patent Document 1 and Patent Document 1, the technology that is the premise for the above problem to occur, specifically, the burden on the program distributor is reduced, and the decrypted program is modified or illegally analyzed. There is no description of a technique for preventing this.
このため、非特許文献1に記載の技術および特許文献1に記載の技術では、当然のことながら、上記課題、つまり、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止するために、内部にプロセッサ固有鍵を秘匿可能なプロセッサという特殊なハードウェアを使用しなければならないという課題は解決されていない。 For this reason, the technique described in Non-Patent Document 1 and the technique described in Patent Document 1 naturally reduce the above problem, that is, the burden on the program distributor, and the decrypted program may be altered or illegal. However, the problem that special hardware called a processor capable of concealing the processor unique key must be used has not been solved.
本発明の目的は、上述した課題を解決可能な、情報処理装置、プログラム保護システム、プログラム保護方法およびプログラムを提供することにある。 The objective of this invention is providing the information processing apparatus, program protection system, program protection method, and program which can solve the subject mentioned above.
本発明の情報処理装置は、プログラムが実行された際に実現される機能を保ったまま当該プログラムを複雑化する処理である難読化処理が施された仮想マシン生成用プログラムを記憶するプログラム記憶手段と、前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成手段と、を含み、前記仮想マシンは、復号用鍵を記憶する記憶手段と、暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理手段と、を含む。 The information processing apparatus of the present invention stores a program for generating a virtual machine that has been subjected to an obfuscation process that is a process of complicating the program while maintaining a function that is realized when the program is executed. Generating means for generating a virtual machine by executing a virtual machine generation program in the program storage means, wherein the virtual machine stores storage means for storing a decryption key, and an encrypted program And processing means for decrypting the encrypted program using the decryption key in the storage means and executing the decrypted program.
本発明のプログラム保護システムは、上記情報処理装置と、前記情報処理装置内の処理手段に前記暗号化されたプログラムを送信する送信装置と、を含む。 The program protection system of the present invention includes the information processing apparatus and a transmission apparatus that transmits the encrypted program to processing means in the information processing apparatus.
本発明のプログラム保護方法は、情報処理装置でのプログラム保護方法であって、プログラムが実行された際に実現される機能を保ったまま当該プログラムを複雑化する処理である難読化処理が施された仮想マシン生成用プログラムをプログラム記憶手段に記憶するプログラム記憶ステップと、前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成ステップと、復号用鍵を前記仮想マシン内の記憶手段に記憶する記憶ステップと、前記仮想マシンが、暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理ステップと、を含む。 The program protection method of the present invention is a program protection method in an information processing apparatus, and is subjected to an obfuscation process that is a process of complicating the program while maintaining a function realized when the program is executed. A program storage step for storing the virtual machine generation program in the program storage means, a generation step for generating a virtual machine by executing the virtual machine generation program in the program storage means, and a decryption key for the virtual machine A storage step of storing in the storage means, and when the virtual machine receives the encrypted program, the encrypted program is decrypted using the decryption key in the storage means, and the decrypted And a processing step for executing the program.
本発明のプログラムは、コンピュータに、プログラムが実行された際に実現される機能を保ったまま当該プログラムを複雑化する処理である難読化処理が施された仮想マシン生成用プログラムをプログラム記憶手段に記憶するプログラム記憶手順と、前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成手順と、復号用鍵を前記仮想マシン内の記憶手段に記憶する記憶手順と、前記仮想マシンが、暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理手順と、を実行させる。 The program according to the present invention stores, in a program storage unit, a virtual machine generation program that has been subjected to an obfuscation process, which is a process that complicates the program while maintaining the functions realized when the program is executed. A program storing procedure for storing, a generating procedure for generating a virtual machine by executing a virtual machine generating program in the program storing means, a storing procedure for storing a decryption key in the storing means in the virtual machine, When the virtual machine receives an encrypted program, the virtual machine decrypts the encrypted program using a decryption key in the storage unit, and executes a processing procedure for executing the decrypted program Let
本発明によれば、内部にプロセッサ固有鍵を秘匿可能なプロセッサという特殊なハードウェアを使用することなく、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止することが可能になる。 According to the present invention, the burden on the program distributor is reduced without using special hardware such as a processor capable of concealing the processor unique key, and the decrypted program is modified or illegally analyzed. It becomes possible to prevent that.
次に、本発明を実施するための形態について図面を参照して詳細に説明する。 Next, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
(第1実施形態)
図1は、本発明の第1実施形態のプログラム保護システムを示したブロック図である。
(First embodiment)
FIG. 1 is a block diagram showing a program protection system according to the first embodiment of the present invention.
図1において、プログラム保護システムは、クライアントマシン100と、プログラム配布者装置150と、を含む。
In FIG. 1, the program protection system includes a
クライアントマシン100は、一般的に情報処理装置と呼ぶことができる。
クライアントマシン100は、プログラム記憶部101と、生成部102と、仮想マシン103と、仮想ディスク104と、ホストOS105と、物理メモリ106と、を含む。
The
プログラム記憶部101は、一般的にプログラム記憶手段と呼ぶことができる。
プログラム記憶部101は、難読化処理が施された仮想マシン生成用プログラムを記憶する。難読化処理とは、プログラムが実行された際に実現される機能を保ったまま、そのプログラムを複雑化する処理を意味する。
The
難読化処理として、例えば、非特許文献1に記載された技術が用いられる。なお、難読化処理は、非特許文献1に記載された技術に限らず適宜変更可能である。例えば、難読化処理として、プログラム言語で記述されたプログラムを、コンピュータが実行できる機械語に変換する処理が用いられてもよい。 As the obfuscation process, for example, the technique described in Non-Patent Document 1 is used. The obfuscation process is not limited to the technique described in Non-Patent Document 1, and can be changed as appropriate. For example, as the obfuscation process, a process of converting a program described in a program language into a machine language that can be executed by a computer may be used.
また、プログラム記憶部101は、仮想ディスク生成用プログラムを記憶する。
The
生成部102は、一般的に生成手段と呼ぶことができる。
生成部102は、プログラム記憶部101内の仮想マシン生成用プログラムを実行することによって、クライアントマシン100内に仮想マシン103を生成する。
The
また、生成部102は、プログラム記憶部101内の仮想ディスク生成用プログラムを実行することによって、クライアントマシン100内に仮想ディスク104を生成する。
In addition, the
仮想マシン103には、鍵103a1が埋め込まれている。なお、鍵103a1は、復号用鍵と呼ぶことができる。 A key 103a1 is embedded in the virtual machine 103. The key 103a1 can be called a decryption key.
仮想マシン103は、難読化処理が施された仮想マシン生成用プログラムに従って生成されているため、クライアントマシン100を利用するユーザが鍵103a1を取得することは非常に困難である。
Since the virtual machine 103 is generated according to a virtual machine generation program that has been obfuscated, it is very difficult for a user using the
仮想ディスク104は、仮想マシン103用のディスクである。仮想ディスク104は、仮想マシン103用のOS(Operating System)104aと、鍵104bと、を格納する。鍵104bは、公開鍵暗号用の鍵であり、公開鍵104b1と秘密鍵104b2とから構成される。通常のPKI(Public Key Infrastructure)と同様、公開鍵104b1には署名が施されており、ユーザは、この署名を確認することで、公開鍵104b1が正規の公開鍵であるか否かを確認できる。
The
OS104aと鍵104bは、仮想マシン103内の鍵103a1にて暗号化された状態で、仮想ディスク104に格納されている。
The
鍵104bは暗号化されているため、クライアントマシン100のユーザは、暗号化されていない鍵104bを直接取得することはできない。
Since the key 104b is encrypted, the user of the
さらに言えば、クライアントマシン100のユーザは、鍵103a1を取得できないので、仮想ディスク104に格納された情報(OS104aと鍵104b)を正確に認識することはできない。
Furthermore, since the user of the
仮想マシン103は、記憶部103aと、復号部103bと、ゲストOS103cと、仮想メモリ103dと、仮想MMU(Memory Management Unit)103eと、を含む。なお、復号部103bとゲストOS103cとは、処理部103fに含まれる。
The virtual machine 103 includes a
記憶部103aは、一般的に記憶手段と呼ぶことができる。記憶部103aは、鍵103a1と、乱数103a2と、を記憶する。
復号部103bは、仮想マシン103および仮想ディスク104が生成部102によって生成されると、記憶部103a内の鍵103a1を利用して、仮想ディスク104内の情報(OS104aと鍵104b)を復号する。続いて、復号部103bは、仮想ディスク104内のOS104aを読み取り実行して、ゲストOS103cを起動する。
When the virtual machine 103 and the
ゲストOS103cは、プログラム配布者装置150から、暗号化済プログラム151を受信すると、復号部103bにて復号された鍵104bを用いて、暗号化済プログラム151を復号して、復号済プログラム141を生成し、復号済プログラム141を実行する。
When the
本実施形態では、プログラム配布者装置150は、公開鍵104b1を用いて、プログラム152を暗号化して暗号化済プログラム151を生成する。このため、ゲストOS103cは、暗号化済プログラム151を受信すると、秘密鍵104b2を用いて、暗号化済プログラム151を復号する。
In the present embodiment, the
なお、プログラム配布者装置150は、暗号化の方式として、公開鍵方式ではなく、公開鍵方式と共通鍵方式とを利用したハイブリッド方式を用いてもよい。
Note that the
この場合、プログラム配布者装置150は、共通鍵を生成し、その共通鍵でプログラム152を暗号化して暗号化済プログラム151を生成する。プログラム配布者装置150は、さらに、その共通鍵を公開鍵104b1で暗号化する。プログラム配布者装置150は、暗号化済プログラム151と、共通鍵を公開鍵104b1で暗号化したものと、をゲストOS103cに送信する。
In this case, the
ゲストOS103cは、公開鍵104b1を用いて暗号化された共通鍵を、秘密鍵104b2を用いて復号し、その復号された共通鍵を用いて、暗号化済プログラム151を復号化して、復号済プログラム141を生成する。
The
この場合、プログラムの暗号化および復号化の計算量を削減することができる。 In this case, the amount of calculation for encryption and decryption of the program can be reduced.
なお、ゲストOS103cは、仮想メモリ103d上で、暗号化済プログラム151を復号し、仮想メモリ103d内のサンドボックス103d1で、復号済プログラム141を実行する。
The
サンドボックス103d1は、復号済プログラム141が、ゲストOS103c上の他の領域にアクセスできないようにするために使用される。Linux(登録商標)の場合、Linux-VserverやOpenVZ等が、サンドボックス103d1に相当する。
The sandbox 103d1 is used to prevent the decrypted
サンドボックス103d1を用いることにより、もし、復号済プログラム141にコンピュータウィルスが組み込まれていたとしても、コンピュータウィルスが、ほかの復号済プログラムにアクセスして、その内容を変更したり、その内容を取得したりすることはできない。
By using the sandbox 103d1, even if a computer virus is incorporated in the decrypted
本実施形態では、仮想マシン103は、ゲストOS103cを実行するために、仮想ディスク104だけではなく、クライアントマシン100内の物理メモリ106も利用する。なお、物理メモリ106は、複数の物理領域(ページ)に分割されている。
In this embodiment, the virtual machine 103 uses not only the
物理メモリ106に格納された情報を、悪意のあるユーザが見ることで、悪意のあるユーザが、仮想マシン103で実行中のプログラムの内容を変更したり、仮想マシン103で実行中のプログラムの内容を取得したりできるかも知れない。
By viewing the information stored in the
これを防ぐため、仮想マシン103内の仮想MMU103eは、以下のように動作する。なお、仮想MMU103eは、一般的にメモリ管理手段と呼ぶことができる。 In order to prevent this, the virtual MMU 103e in the virtual machine 103 operates as follows. Note that the virtual MMU 103e can be generally referred to as memory management means.
MMUとは、OS内で動作するプロセスのメモリアドレス(仮想メモリ103dのメモリアドレス)を、物理的なメモリアドレス(物理メモリ106のメモリアドレス)に変換するハードウェアであり、仮想マシン103内にも、仮想ハードウェア(仮想MMU103e)として存在する。メモリアドレスの変換は、ページと呼ばれる単位で変換される。
The MMU is hardware that converts a memory address of a process operating in the OS (memory address of the
なお、仮想メモリ103dは、複数の仮想領域(ページ)に分割され、仮想領域のそれぞれは、物理メモリ106の複数の物理領域のいずれかに、記憶部103a内の乱数103a2に基づいて対応づけられている。
The
仮想MMU103eは、ゲストOS103c内のプロセスが利用するメモリアドレスを、ホストOS105から取得したメモリアドレスに変換する。例えば、仮想MMU103eは、ゲストOS103cが仮想メモリ103dのアドレスにアクセスする際、そのアドレスを、そのアドレスを有する仮想領域に対応づけられた物理領域のアドレスに変換し、その物理領域のアドレスを用いて、物理メモリ106にアクセスする。
The virtual MMU 103e converts a memory address used by a process in the
ここで、仮想MMU103eは、このアドレス変換を、記憶部103a内の乱数103a2を用いて行う。このため、ホストOS105上の物理メモリ106をページ単位で入れ替えないと、ゲストOS103c内のプロセスが利用している仮想メモリ103d内の情報を正確に得ることはできない。
Here, the virtual MMU 103e performs this address conversion using the random number 103a2 in the
変換に用いられた乱数103a2は、仮想マシン103内にしか存在しない。このため、利用ページ数が十分に多い場合、悪意のあるユーザが、物理メモリ106内の情報からゲストOS103c内で動作するプロセスの仮想メモリ103d内の情報を復元することを、十分に困難にすることができる。
The
処理部103fは、一般的に処理手段と呼ぶことができる。
処理部103fは、暗号化済プログラム151を受信すると、暗号化済プログラム151を、記憶部103a内の鍵103a1を利用して復号し、その復号されたプログラム141を実行する。本実施形態では、処理部103fは、仮想ディスク104内の暗号化された鍵104bを、記憶部103a内の鍵103a1を用いて復号し、暗号化済プログラム151を、その復号された鍵104bを用いて復号し、復号済プログラム141を実行する。
When receiving the
プログラム配布者装置150は、一般的に送信装置と呼ぶことができる。
プログラム配布者装置150は、プログラム152を配布する際、公開鍵104b1をゲストOS103cから取得する。プログラム配布者装置150は、公開鍵104b1が正規の公開鍵であることを確認した後、暗号化部150aで、プログラム152を公開鍵104b1で暗号化して、暗号化済プログラム151を生成する。
When distributing the
プログラム配布者装置150は、暗号化済プログラム151をゲストOS103cに送信する。暗号化済プログラム151は、ユーザに取得されても復号化できないので、見られてもよい。
The
次に、動作を説明する。 Next, the operation will be described.
図2は、本実施形態の全体の動作を説明するためのフローチャートである。 FIG. 2 is a flowchart for explaining the overall operation of the present embodiment.
まず、クライアントマシン100では、仮想マシン103および仮想ディスク104が生成部102によって生成されると、仮想マシン103内の復号部103bが、鍵103a1を用いて、仮想ディスク104内の情報を復号化し、その復号された情報(OS104a)を用いて、ゲストOS103cを起動する(ステップ200)。
First, in the
続いて、ゲストOS103cは、プログラム配布者装置150に対し、公開鍵104b1を渡し、プログラムの配布を要求する(ステップ201)。
Subsequently, the
プログラム配布者装置150は、クライアントマシン100上のゲストOS103cから公開鍵104b1を受け取り(ステップ210)、公開鍵104b1の署名の正当性確認し、さらに、公開鍵104b1が、漏洩した秘密鍵に対応する公開鍵でないことを確認する(ステップ211)。
The
もし署名が正当でない、あるいは、その公開鍵104b1が、漏洩した秘密鍵に対応する公開鍵であれば、プログラム配布者装置150は、エラー処理を行う(ステップ212)。
If the signature is not valid or the public key 104b1 is a public key corresponding to the leaked secret key, the
そうでない場合、プログラム配布者装置150は、公開鍵104b1でプログラム152を暗号化して、暗号化済プログラム151を生成する(ステップ213)。なお、プログラム配布者装置150が、暗号化の方式として、ハイブリッド方式を用いる場合には、プログラム配布者装置150は、ステップ213で、任意に共通鍵を作成し、この共通鍵を用いてプログラム152を暗号化した上、その共通鍵を公開鍵104b1で暗号化する。
Otherwise, the
続いて、プログラム配布者装置150は、クライアントマシン100上のゲストOS103cに対し、暗号化済プログラム151を渡す(ステップ214)。なお、プログラム配布者装置150が、暗号化の方式として、ハイブリッド方式を用いる場合には、プログラム配布者装置150は、ステップ214で、ゲストOS103cに対し、暗号化済プログラム151と、公開鍵104b1で暗号化された共通鍵と、を渡す。
Subsequently, the
続いて、クライアントマシン100上のゲストOS103cは、暗号化済プログラム151を取得する(ステップ202)。なお、プログラム配布者装置150が、暗号化の方式として、ハイブリッド方式を用いる場合には、ゲストOS103cは、ステップ202で、暗号化済プログラム151と、公開鍵104b1で暗号化された共通鍵と、を取得する。
Subsequently, the
その後、ゲストOS103cは、暗号化済プログラム151を、秘密鍵104b2を用いて復号化して復号済プログラム141を生成する。なお、プログラム配布者装置150が、暗号化の方式として、ハイブリッド方式を用いる場合には、ゲストOS103cは、暗号化された共通鍵を秘密鍵104b2で復号化した後、その復号化された共通鍵で、暗号化済プログラム151を復号化して、復号済プログラム141を生成する。
Thereafter, the
その後、ゲストOS103cは、サンドボックス103d1内で、復号済プログラム141を実行する(ステップ203)。
Thereafter, the
本実施形態によれば、仮想マシン103内のゲストOS103cが、暗号化済プログラムの復号および実行を、仮想マシン103内で行う。
According to the present embodiment, the
仮想マシン103は、難読化処理が施された仮想マシン生成用プログラムの実行によって生成される。このため、仮想マシン103の動作(ゲストOS103cの動作)は解析困難である。
The virtual machine 103 is generated by executing a virtual machine generation program that has been obfuscated. For this reason, the operation of the virtual machine 103 (the operation of the
よって、仮想マシン103内のゲストOS103cにて復号されたプログラムが改変されたり不正に解析されたりする可能性を低くできる。また、仮想マシン103を用いるため、特許文献2に記載された特殊なハードウェアを使用する必要が無くなる。また、プログラム配布者がプログラムを難読化するという負担をなくすことが可能になる。
Therefore, the possibility that the program decrypted by the
なお、プログラム記憶部101と生成部102と仮想マシン103と仮想ディスク104とからなるクライアントマシンでも、特許文献2に記載された特殊なハードウェアを使用することなく、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止することが可能になるという効果を生じることができる。
Note that the client machine including the
また、本実施形態では、仮想メモリ103d内の仮想領域と物理メモリ106内の物理領域とを対応づけるために用いた乱数が、解析困難な仮想マシン103内に記憶されている。
In the present embodiment, random numbers used for associating the virtual area in the
このため、乱数を入手することが困難となり、よって、物理メモリ106内の情報から、仮想メモリ103d内の情報(例えば、復号済プログラム141)を復元することは困難となる。
For this reason, it becomes difficult to obtain a random number, and thus it is difficult to restore information (for example, the decrypted program 141) in the
また、本実施形態では、ゲストOS103cは、復号済プログラム141をサンドボックス103d1内で実行する。
In this embodiment, the
このため、もし、復号済プログラム141にコンピュータウィルスが組み込まれていたとしても、コンピュータウィルスが、ほかの復号化済プログラムにアクセスして、その内容を変更したり、その内容を取得したりすることを防止することが可能になる。
For this reason, even if a computer virus is incorporated in the decrypted
また、上記実施形態では、鍵104bは仮想ディスク104内に存在するものとしたが、鍵104bは仮想マシン103内の仮想ハードウェアとして実現されてもよい。この場合、ゲストOS103cは、仮想ハードウェアにアクセスすることで、鍵104bを取得する。
Further, in the above embodiment, the key 104 b is present in the
(第2実施形態)
第1実施形態では、仮想ディスク104と仮想マシン103を別のものとして扱ったが、これらを一体とすることもできる。この場合、仮想ディスク104は仮想マシン103に取り込まれるため、仮想ディスク104内の情報を、鍵103a1を用いて暗号および復号することは不要となる。
(Second Embodiment)
In the first embodiment, the
図3は、仮想ディスク104Aが仮想マシン103Aに取り込まれたクライアントマシン100A(第2実施形態)を示したブロック図である。なお、図3において、図1に示したものと同一構成のものには同一符号を付してある。
FIG. 3 is a block diagram showing the
図3において、クライアントマシン100Aは、一般的に情報処理装置と呼ぶことができる。
In FIG. 3, the
クライアントマシン100Aは、プログラム記憶部101Aと、生成部102Aと、仮想マシン103Aと、ホストOS105と、物理メモリ106と、を含む。
The
プログラム記憶部101Aは、一般的にプログラム記憶手段と呼ぶことができる。
プログラム記憶部101Aは、難読化処理が施された仮想マシン生成用プログラムを記憶する。
The
生成部102Aは、一般的に生成手段と呼ぶことができる。
生成部102Aは、プログラム記憶部101A内の仮想マシン生成用プログラムを実行することによって、クライアントマシン100A内に仮想マシン103Aを生成する。
The
仮想マシン103Aは、記憶部103aと、ゲストOS103cAと、仮想メモリ103dと、仮想MMU103eと、仮想ディスク104Aと、を含む。
The
なお、クライアントマシン100Aでは、記憶部103aには、鍵103a1は記憶されない。また、クライアントマシン100Aでは、仮想ディスク104Aは記憶手段の一例となり、鍵104bは復号用鍵の一例となる。また、クライアントマシン100Aでは、仮想ディスク104A内の情報は暗号化されていない。
In the
ゲストOS103cAは、一般的に処理手段と呼ぶことができる。 The guest OS 103cA can generally be called a processing unit.
ゲストOS103cAは、プログラム配布者装置150から、暗号化済プログラム151を受信すると、秘密鍵104b2を用いて、暗号化済プログラム151を復号し、暗号化済プログラム151をサンドボックス103d1内で実行する。
When the guest OS 103cA receives the
本実施形態によれば、仮想マシン103A内のゲストOS103cAが、暗号化済プログラム151の復号および実行を、仮想マシン103A内で行う。このため、第1実施形態と同様の効果を奏する。
According to the present embodiment, the guest OS 103cA in the
また、本実施形態によれば、ゲストOS103cAは、仮想ディスク104A内の情報を復号する必要がなく、第1実施形態のゲストOS103cに比べて、ゲストOS103cAの処理を簡略化することが可能になる。
Further, according to the present embodiment, the guest OS 103cA does not need to decrypt the information in the
なお、プログラム記憶部101Aと生成部102Aと仮想マシン103Aとからなるクライアントマシンでも、特許文献2に記載された特殊なハードウェアを使用することなく、プログラム配布者の負担を少なくすると共に、復号されたプログラムが改変されたり不正に解析されたりすることを防止することが可能になるという効果を生じることができる。
Note that the client machine including the
また、本実施形態では、仮想メモリ103d内の仮想領域と物理メモリ106内の物理領域とを対応づけるために用いた乱数が、解析困難な仮想マシン103A内に記憶されている。
In the present embodiment, random numbers used to associate the virtual area in the
このため、乱数を入手することが困難となり、よって、物理メモリ106内の情報から、仮想メモリ103d内の情報を復元することは困難となる。
For this reason, it is difficult to obtain a random number, and thus it is difficult to restore the information in the
また、本実施形態では、ゲストOS103cAは、復号済プログラム141をサンドボックス103d1内で実行する。
In this embodiment, the guest OS 103cA executes the decrypted
このため、もし、復号済プログラム141にコンピュータウィルスが組み込まれていたとしても、コンピュータウィルスが、ほかの復号化済プログラムにアクセスして、その内容を変更したり、その内容を取得したりすることを防止することが可能になる。
For this reason, even if a computer virus is incorporated in the decrypted
なお、本実施形態においても、プログラム配布者装置150は、暗号化の方式として、公開鍵方式と共通鍵方式とを利用したハイブリッド方式を用いてもよい。
Also in the present embodiment, the
この場合、プログラム配布者装置150は、で共通鍵を生成し、その共通鍵でプログラム152を暗号化して暗号化済プログラム151を生成する。プログラム配布者装置150は、さらに、その共通鍵を公開鍵104b1で暗号化する。プログラム配布者装置150は、暗号化済プログラム151と、共通鍵を公開鍵104b1で暗号化したものと、をゲストOS103cAに送信する。
In this case, the
ゲストOS103cAは、公開鍵104b1を用いて暗号化された共通鍵を、秘密鍵104b2を用いて復号し、その復号された共通鍵を用いて、暗号化済プログラム151を復号化して、復号済プログラム141を生成する。
The guest OS 103cA decrypts the common key encrypted using the public key 104b1 using the private key 104b2, decrypts the
この場合、プログラムの暗号化および復号化の計算量を削減することができる。 In this case, the amount of calculation for encryption and decryption of the program can be reduced.
なお、上記各実施形態において、鍵104bはユーザごとに異なるようにしてもよい。 In each of the above embodiments, the key 104b may be different for each user.
この場合、万が一、鍵104bが漏洩した場合でも、漏洩した鍵104bの公開鍵104b1を知ることができれば、プログラム配布者装置150が、漏洩した鍵104bの公開鍵104b1を利用したプログラム配布要求を拒否することで、今後配布するプログラム152については、改変や漏洩を防ぐことができる。
In this case, even if the key 104b is leaked, if the public key 104b1 of the leaked key 104b can be known, the
また、上記各実施形態では、プログラムを明示的に暗号化するものとして扱ったが、ゲストOSと、プログラム配布者装置150と、の間で、SSL(Secure Socket Layer)などにより暗号化された通信路が構成され、その通信路を通して、プログラムが配布されてもよい。
In each of the above embodiments, the program is treated as being explicitly encrypted, but communication encrypted between the guest OS and the
(第3実施形態)
次に、本発明の第3実施形態について図面を参照して詳細に説明する。
(Third embodiment)
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.
図4を参照すると、本発明の第3実施形態は、プログラム制御により動作するクライアントコンピュータ300と、プログラム制御により動作するサーバコンピュータ310と、を含む。
Referring to FIG. 4, the third embodiment of the present invention includes a
クライアントコンピュータ300は、クライアント側プログラム301を搭載している。
The
例えば、クライアントコンピュータ300は、クライアント側プログラム301が記載された、コンピュータにて読み取り可能な記録媒体(例えば、バードディスク)を含む。
For example, the
クライアントコンピュータ300は、その記録媒体からクライアント側プログラム301を読み取り実行することによって、図1に示したクライアントマシン100、または、図3に示したクライアントマシン100Aとして機能する。
The
サーバコンピュータ310は、プログラム配布プログラム311を搭載している。
The
例えば、サーバコンピュータ310は、プログラム配布プログラム311が記載された、コンピュータにて読み取り可能な記録媒体(例えば、バードディスク)を含む。
For example, the
サーバコンピュータ310は、その記録媒体からプログラム配布プログラム311を読み取り実行することによって、図1に示したプログラム配布者装置150として機能する。
The
上記各実施形態は、プログラムを販売、配布するといった用途に適用できる。また、Webアプリケーションをオフラインで実行する際、サーバ側プログラムをクライアントに配布する、といった用途にも適用可能である。 Each of the above embodiments can be applied to uses such as selling and distributing a program. Further, the present invention can also be applied to a case where a server side program is distributed to clients when a Web application is executed offline.
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。 In each embodiment described above, the illustrated configuration is merely an example, and the present invention is not limited to the configuration.
100、100A クライアントマシン
101、101A プログラム記憶部
102、102A 生成部
103、103A 仮想マシン
103a 記憶部
103b 復号部
103c、103A ゲストOS
103d 仮想メモリ
103d1 サンドボックス
103e 仮想MMU
103f 処理部
104 仮想ディスク
105 ホストOS
106 物理メモリ
150 プログラム配布者装置
300 クライアントコンピュータ
310 サーバコンピュータ
100,
103d Virtual memory 103d1 Sandbox 103e Virtual MMU
103f
106
Claims (9)
前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成手段と、を含み、
前記仮想マシンは、
復号用鍵を記憶する記憶手段と、
暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理手段と、を含む、情報処理装置。 Program storage means for storing a virtual machine generation program that has been subjected to an obfuscation process, which is a process that complicates the program while maintaining a function that is realized when the program is executed;
Generating means for generating a virtual machine by executing a virtual machine generating program in the program storage means,
The virtual machine is
Storage means for storing a decryption key;
An information processing apparatus comprising: processing means for receiving an encrypted program and decrypting the encrypted program using a decryption key in the storage means and executing the decrypted program.
暗号化された鍵を格納する格納手段をさらに含み、
前記処理手段は、前記格納手段内の暗号化された鍵を、前記記憶手段内の復号用鍵を用いて復号し、前記暗号化されたプログラムを、当該復号された鍵を用いて復号し、当該復号されたプログラムを実行する、情報処理装置。 The information processing apparatus according to claim 1,
Further comprising storage means for storing the encrypted key;
The processing means decrypts the encrypted key in the storage means using the decryption key in the storage means, decrypts the encrypted program using the decrypted key, An information processing apparatus that executes the decrypted program.
複数の物理領域に分割された物理メモリをさらに含み、
前記記憶手段は、さらに、乱数を記憶し、
前記仮想マシンは、
複数の仮想領域に分割され、前記仮想領域のそれぞれが、前記複数の物理領域のいずれかに、前記記憶手段内の乱数に基づいて対応づけられた仮想メモリと、
前記処理手段が前記仮想メモリのアドレスにアクセスする際、当該アドレスを、当該アドレスを有する仮想領域に対応づけられた物理領域のアドレスに変換し、当該物理領域のアドレスを用いて、前記物理メモリにアクセスするメモリ管理手段と、をさらに含む、情報処理装置。 The information processing apparatus according to claim 1 or 2,
Further including physical memory divided into a plurality of physical areas;
The storage means further stores a random number,
The virtual machine is
A virtual memory that is divided into a plurality of virtual areas, and each of the virtual areas is associated with one of the plurality of physical areas based on a random number in the storage unit;
When the processing means accesses the address of the virtual memory, the address is converted into an address of a physical area associated with a virtual area having the address, and the physical memory is used to convert the address into the physical memory. An information processing apparatus further comprising: a memory management means for accessing.
前記仮想マシンは、サンドボックスをさらに含み、
前記処理手段は、前記復号されたプログラムを前記サンドボックス内で実行する、情報処理装置。 In the information processing apparatus according to any one of claims 1 to 3,
The virtual machine further includes a sandbox,
The information processing apparatus, wherein the processing means executes the decrypted program in the sandbox.
前記情報処理装置内の処理手段に、前記暗号化されたプログラムを送信する送信装置と、を含むプログラム保護システム。 An information processing apparatus according to any one of claims 1 to 4,
A program protection system comprising: a transmission device that transmits the encrypted program to processing means in the information processing device.
プログラムが実行された際に実現される機能を保ったまま当該プログラムを複雑化する処理である難読化処理が施された仮想マシン生成用プログラムをプログラム記憶手段に記憶するプログラム記憶ステップと、
前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成ステップと、
復号用鍵を前記仮想マシン内の記憶手段に記憶する記憶ステップと、
前記仮想マシンが、暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理ステップと、を含むプログラム保護方法。 A program protection method in an information processing apparatus,
A program storage step of storing in the program storage means a virtual machine generation program that has been subjected to an obfuscation process, which is a process of complicating the program while maintaining the functions realized when the program is executed;
Generating a virtual machine by executing a program for generating a virtual machine in the program storage means;
Storing a decryption key in a storage means in the virtual machine;
When the virtual machine receives an encrypted program, the virtual machine decrypts the encrypted program using a decryption key in the storage means, and executes the decrypted program. Program protection method.
暗号化された鍵を格納手段に格納する格納ステップをさらに含み、
前記処理ステップでは、前記格納手段内の暗号化された鍵を、前記記憶手段内の復号用鍵を用いて復号し、前記暗号化されたプログラムを、当該復号された鍵を用いて復号し、当該復号されたプログラムを実行する、プログラム保護方法。 The program protection method according to claim 6,
A storage step of storing the encrypted key in the storage means;
In the processing step, the encrypted key in the storage means is decrypted using the decryption key in the storage means, and the encrypted program is decrypted using the decrypted key, A program protection method for executing the decrypted program.
プログラムが実行された際に実現される機能を保ったまま当該プログラムを複雑化する処理である難読化処理が施された仮想マシン生成用プログラムをプログラム記憶手段に記憶するプログラム記憶手順と、
前記プログラム記憶手段内の仮想マシン生成用プログラムを実行することによって仮想マシンを生成する生成手順と、
復号用鍵を前記仮想マシン内の記憶手段に記憶する記憶手順と、
前記仮想マシンが、暗号化されたプログラムを受信すると、当該暗号化されたプログラムを、前記記憶手段内の復号用鍵を用いて復号し、当該復号されたプログラムを実行する処理手順と、を実行させるためのプログラム。 On the computer,
A program storage procedure for storing, in the program storage means, a virtual machine generation program that has been subjected to an obfuscation process, which is a process that complicates the program while maintaining the functions realized when the program is executed;
A generation procedure for generating a virtual machine by executing a virtual machine generation program in the program storage means;
A storage procedure for storing the decryption key in the storage means in the virtual machine;
When the virtual machine receives an encrypted program, the virtual machine decrypts the encrypted program using a decryption key in the storage unit, and executes a processing procedure for executing the decrypted program Program to let you.
前記コンピュータに、暗号化された鍵を格納手段に格納する格納手順をさらに実行させ、
前記処理手順では、前記格納手段内の暗号化された鍵を、前記記憶手段内の復号用鍵を用いて復号し、前記暗号化されたプログラムを、当該復号された鍵を用いて復号し、当該復号されたプログラムを実行する、プログラム。 The program according to claim 8, wherein
Causing the computer to further execute a storage procedure for storing the encrypted key in the storage means;
In the processing procedure, the encrypted key in the storage means is decrypted using the decryption key in the storage means, and the encrypted program is decrypted using the decrypted key, A program for executing the decrypted program.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009234251A JP2011081654A (en) | 2009-10-08 | 2009-10-08 | Information processor, program protection system, program protection method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009234251A JP2011081654A (en) | 2009-10-08 | 2009-10-08 | Information processor, program protection system, program protection method and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2011081654A true JP2011081654A (en) | 2011-04-21 |
Family
ID=44075634
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009234251A Pending JP2011081654A (en) | 2009-10-08 | 2009-10-08 | Information processor, program protection system, program protection method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2011081654A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013031446A1 (en) * | 2011-08-29 | 2013-03-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Device and method for converting logical address to physical address |
| JP2013058006A (en) * | 2011-09-07 | 2013-03-28 | Fuji Xerox Co Ltd | Information processor and information processing program |
-
2009
- 2009-10-08 JP JP2009234251A patent/JP2011081654A/en active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013031446A1 (en) * | 2011-08-29 | 2013-03-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Device and method for converting logical address to physical address |
| CN103765395A (en) * | 2011-08-29 | 2014-04-30 | 国际商业机器公司 | Device and method for converting logical address to physical address |
| GB2507922A (en) * | 2011-08-29 | 2014-05-14 | Ibm | Device and method for converting logical address to physical address |
| JP5576565B2 (en) * | 2011-08-29 | 2014-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Apparatus and method for converting logical address to physical address |
| GB2507922B (en) * | 2011-08-29 | 2014-11-05 | Ibm | Apparatus and method for converting logical address to physical address |
| US9104602B2 (en) | 2011-08-29 | 2015-08-11 | International Business Machines Corporation | Method and apparatus for performing mapping within a data processing system having virtual machines |
| US9703723B2 (en) | 2011-08-29 | 2017-07-11 | International Business Machines Corporation | Method and apparatus for performing mapping within a data processing system having virtual machines |
| JP2013058006A (en) * | 2011-09-07 | 2013-03-28 | Fuji Xerox Co Ltd | Information processor and information processing program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11979388B2 (en) | System and method for enhanced data protection | |
| JP6949972B2 (en) | Digital rights management based on blockchain | |
| US8826037B2 (en) | Method for decrypting an encrypted instruction and system thereof | |
| KR101055091B1 (en) | Computer-implemented methods, apparatus, information processing systems, and computer readable recording media | |
| US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
| US8504826B2 (en) | Client and host validation based on hash of key and validation of encrypted data | |
| KR100746030B1 (en) | Method and apparatus for generating a rights object on behalf of a rights delegation | |
| CN104318135B (en) | A kind of Java code Safety actuality loading method based on credible performing environment | |
| TWI420339B (en) | Software authorization system and method | |
| KR20190109419A (en) | Addressing Techniques for Trusted Execution Environments Using Encryption Keys | |
| JP2016513840A (en) | Method, server, host, and system for protecting data security | |
| KR20130039354A (en) | Database management system and encrypting method thereof | |
| KR20190108580A (en) | Addressing Techniques for Trusted Execution Environments Using Signature Keys | |
| JP2007511810A (en) | Proof of execution using random number functions | |
| RU2019117050A (en) | ENCRYPTED DATA CONTROL THROUGH MULTIPLE CONTROLS | |
| CN111656345B (en) | Enable encrypted software modules in container files | |
| CN114584295B (en) | Universal black-box traceability method and apparatus for attribute-based proxy re-encryption systems | |
| US12147508B2 (en) | Systems and methods for securely processing content | |
| US20210248245A1 (en) | Calculation device, calculation method, calculation program and calculation system | |
| CN103258152A (en) | System, devices and methods for collaborative execution of a software application comprising encrypted instruction | |
| JP2011118592A (en) | Access-controlling system, access-controlling method, and program | |
| KR20090014575A (en) | Shared Device and Method of DRM Agent | |
| EP3977670A1 (en) | Key-ladder protected personalization data conversion from global to unique encryption | |
| JP2011081654A (en) | Information processor, program protection system, program protection method and program | |
| CN110166425B (en) | Data processing method, device, system and computer readable storage medium |