JP6632962B2 - Obfuscation device, obfuscation method and obfuscation program - Google Patents
Obfuscation device, obfuscation method and obfuscation program Download PDFInfo
- Publication number
- JP6632962B2 JP6632962B2 JP2016249408A JP2016249408A JP6632962B2 JP 6632962 B2 JP6632962 B2 JP 6632962B2 JP 2016249408 A JP2016249408 A JP 2016249408A JP 2016249408 A JP2016249408 A JP 2016249408A JP 6632962 B2 JP6632962 B2 JP 6632962B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- encryption
- obfuscation
- decryption
- parameter
- 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
Images
Description
本発明は、ソフトウェアのソースコード及び実行プログラムを難読化する装置、方法及びプログラムに関する。 The present invention relates to an apparatus, a method and a program for obfuscating software source code and an execution program.
従来、ソフトウェアに対する不正な解析及び改ざんを防止するために、ソースコード及び実行プログラムを難読化する手法が提案されている。
例えば、非特許文献1では、常に真となる条件分岐、又は常に偽となる条件分岐を用いて、ソフトウェアの制御フローを難読化する手法が提案されている。
2. Description of the Related Art Conventionally, a method of obfuscating a source code and an execution program to prevent illegal analysis and tampering of software has been proposed.
For example, Non-Patent Document 1 proposes a technique for obfuscating a software control flow using a conditional branch that is always true or a conditional branch that is always false.
しかしながら、常に真となる条件分岐(例えば、if((n*n+n)%2)==0)及び常に偽となる条件分岐(例えば、if(n*n*n−n%6)==1)は、特徴的な形式をしているため、第三者により発見されやすい。
非特許文献2及び非特許文献3では、代数的な手法により、これらの条件分岐が常に真であるか、又は常に偽であるかを判別できることが示されている。
However, a conditional branch that is always true (for example, if ((n * n + n)% 2) == 0) and a conditional branch that is always false (for example, if (n * n * n-n% 6) == 1) ) Has a characteristic format and is easily found by third parties.
Non-Patent Literature 2 and Non-Patent Literature 3 show that it is possible to determine whether these conditional branches are always true or always false by an algebraic method.
本発明は、解析が難しいソフトウェアの難読化装置、難読化方法及び難読化プログラムを提供することを目的とする。 An object of the present invention is to provide an obfuscation device, an obfuscation method, and an obfuscation program for software that are difficult to analyze.
本発明に係る難読化装置は、パラメータに応じて復号に成功する確率が可変となる暗号化方式に対して、前記確率が第1閾値以上となる第1パラメータを設定した暗号化処理及び復号処理の第1コード、並びに前記確率が第2閾値未満となる第2パラメータを設定した暗号化処理及び復号処理の第2コードを生成する生成部と、ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入部と、を備える。 The obfuscation device according to the present invention provides an encryption method and a decryption process in which a first parameter whose probability is equal to or more than a first threshold is set for an encryption method in which the probability of successful decryption is variable according to the parameter. A first code, and a generating unit that generates a second code of an encryption process and a decryption process in which a second parameter is set such that the probability is less than a second threshold value. An insertion unit that performs a decryption process after the encryption process using one code or the second code, inserts a conditional branch that determines whether the plaintext has been restored, and assigns a dummy process to one of the conditional branches. , Is provided.
前記生成部は、前記確率が第2閾値以上、第1閾値未満となる第3パラメータを設定した暗号化処理及び復号処理の第3コードを生成し、前記挿入部は、平文に対して前記第1コード、前記第2コード又は前記第3コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、前記第3コードを用いた条件分岐を挿入した場合には、当該条件分岐の双方に等価の処理を割り当ててもよい。 The generation unit generates a third code of an encryption process and a decryption process in which the third parameter is set such that the probability is equal to or more than a second threshold and less than a first threshold, and the insertion unit generates the third code for the plaintext. A decryption process is performed after the encryption process using one code, the second code, or the third code, a conditional branch that determines whether the plaintext has been restored is inserted, and a conditional branch that uses the third code is inserted. In this case, an equivalent process may be assigned to both of the conditional branches.
前記生成部は、前記パラメータをランダムに決定してもよい。 The generator may determine the parameter at random.
前記挿入部は、ランダムに条件分岐のコードを選択してもよい。 The insertion unit may randomly select a conditional branch code.
前記暗号化方式は、LWE型格子暗号方式であってもよい。 The encryption method may be an LWE type lattice encryption method.
本発明に係る難読化方法は、パラメータに応じて復号に成功する確率が可変となる暗号化方式に対して、前記確率が第1閾値以上となる第1パラメータを設定した暗号化処理及び復号処理の第1コード、並びに前記確率が第2閾値未満となる第2パラメータを設定した暗号化処理及び復号処理の第2コードを生成する生成ステップと、ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入ステップと、をコンピュータが実行する。 An obfuscation method according to the present invention provides an encryption method and a decryption process in which a first parameter whose probability is equal to or more than a first threshold is set for an encryption method in which the probability of successful decryption is variable according to the parameter. Generating a second code of an encryption process and a decryption process in which a first code is set and a second parameter in which the probability is smaller than a second threshold value; and a control flow of software includes: Performing a decryption process after the encryption process using one code or the second code, inserting a conditional branch for determining whether the plaintext has been restored, and assigning a dummy process to one of the conditional branches; The computer runs.
本発明に係る難読化プログラムは、パラメータに応じて復号に成功する確率が可変となる暗号化方式に対して、前記確率が第1閾値以上となる第1パラメータを設定した暗号化処理及び復号処理の第1コード、並びに前記確率が第2閾値未満となる第2パラメータを設定した暗号化処理及び復号処理の第2コードを生成する生成ステップと、ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入ステップと、をコンピュータに実行させる。 An obfuscation program according to the present invention provides an encryption method and a decryption processing in which, for an encryption method in which the probability of successful decryption according to a parameter is variable, a first parameter in which the probability is equal to or greater than a first threshold is set. Generating a second code of an encryption process and a decryption process in which a first code is set, and a second parameter in which the probability is smaller than a second threshold value; and Performing a decryption process after the encryption process using one code or the second code, inserting a conditional branch for determining whether the plaintext has been restored, and assigning a dummy process to one of the conditional branches; Is executed by the computer.
本発明によれば、ソフトウェアのソースコード及び実行プログラムの解析がより難しくなる。 According to the present invention, it becomes more difficult to analyze software source codes and execution programs.
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る難読化装置1の機能構成を示すブロック図である。
難読化装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス又は通信デバイス等を備える。
Hereinafter, an example of an embodiment of the present invention will be described.
FIG. 1 is a block diagram illustrating a functional configuration of the obfuscation apparatus 1 according to the present embodiment.
The obfuscation device 1 is an information processing device (computer) such as a server device or a personal computer, and includes, in addition to the
制御部10は、難読化装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部10は、CPUであってよい。
The
記憶部20は、ハードウェア群を難読化装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させる難読化プログラムを記憶する。
The
制御部10は、生成部11と、挿入部12とを備える。難読化装置1は、これらの機能部により、入力であるソフトウェアのソースコード又は実行プログラムを、難読化して出力する。
The
生成部11は、パラメータに応じて復号に成功する確率が可変となる暗号化方式に対して、この確率が第1閾値(例えば、1−1/2128)以上となる第1パラメータを設定した暗号化処理及び復号処理の第1コード、並びに確率が第2閾値(例えば、1/2128)未満となる第2パラメータを設定した暗号化処理及び復号処理の第2コードを生成する。
The
ここで、暗号化方式には、例えば、LWE(Learning with Error)型格子暗号が採用される。
LWE型格子暗号は、定数部分にノイズを含む連立一次方程式の解を求めるLWE問題に基づく格子暗号技術である。LWE型格子暗号は、次元n、法q、ノイズ分布χの3つのパラメータを有する。ノイズ分布χには、正規分布を用いることが一般的であるが、他の確率分布のノイズを有するLWE型の暗号方式であってもよい。
Here, as the encryption method, for example, LWE (learning with error) type lattice encryption is adopted.
The LWE-type lattice encryption is a lattice encryption technique based on the LWE problem for finding a solution of a system of linear equations including noise in a constant part. The LWE-type lattice encryption has three parameters of dimension n, modulus q, and noise distribution χ. In general, a normal distribution is used for the noise distribution χ, but an LWE type encryption method having noise of another probability distribution may be used.
生成部11は、LWE型格子暗号における鍵生成処理、暗号化処理及び復号処理のコードを生成する。このとき、生成部11は、一般的なパラメータ設定の、例えば復号に成功する確率が1−1/2128以上のLWE型格子暗号に加え、ノイズ分布χの標準偏差σに通常よりも大きな値を設定し、高い確率で復号に失敗する、例えば成功確率が1/2128未満のLWE型格子暗号における暗号化処理及び復号処理のコードを生成する。
さらに、生成部11は、復号に成功する確率が第2閾値以上、第1閾値未満となる第3パラメータを設定した暗号化処理及び復号処理の第3コードを生成する。この第3コードによる復号処理は、例えば1/2程度の確率で成功する。
なお、暗号化のパラメータは、確率の条件を満たす範囲でランダムに決定されてよい。
The
Further, the
Note that the encryption parameters may be determined randomly within a range that satisfies the probability condition.
挿入部12は、入力されたソフトウェアのソースコード又は実行プログラムの制御フローに、平文に対して第1コード、第2コード又は第3コードにより暗号化処理後に復号処理を行い、元の平文が復元されたか否かを判定する条件分岐を挿入する。
条件分岐は、例えば、平文m、暗号化関数E及び復号関数Dを用いて、「if(D(E(m))==m)」のように記述できる。
ここで、第1コードからは、常に真とみなせる条件分岐(以下、恒真の分岐)が作成され、第2コードからは、常に偽とみなせる条件分岐(以下、恒偽の分岐)が作成される。また、第3コードからは、真偽が不定の条件分岐(不定の分岐)が作成される。
The
The conditional branch can be described as “if (D (E (m)) == m)” using plaintext m, encryption function E, and decryption function D, for example.
Here, a conditional branch that can always be regarded as true (hereinafter, a true and true branch) is created from the first code, and a conditional branch that can always be regarded as false (hereinafter, a true / false branch) is created from the second code. You. From the third code, a conditional branch (undefined branch) whose truth is uncertain is created.
さらに、挿入部12は、恒真の分岐のうち偽側の処理に、及び恒偽の分岐のうち真側の処理に、それぞれダミーの処理を割り当てる。また、挿入部12は、不定の分岐の双方に記述が異なる等価の処理を割り当てる。
Further, the
ここで、挿入される条件分岐は、恒真の分岐、恒偽の分岐又は不定の分岐がランダムに選択されてよい。
また、暗号化の対象とする平文mは、任意の文字列であり、ランダムに選択されてもよいし、所定のワークエリア等の値が選択されてもよい。
なお、挿入部12により条件分岐が挿入される箇所は、既存の手法により選択されてよい。
Here, as the conditional branch to be inserted, a true branch, a false branch, or an undefined branch may be randomly selected.
Further, the plaintext m to be encrypted is an arbitrary character string, and may be selected at random, or a value such as a predetermined work area may be selected.
The location where the conditional branch is inserted by the
図2は、本実施形態に係る難読化の第1のパターンを示す図である。
ここでは、恒真の分岐が用いられ、条件分岐のYESの側には、元の処理Pが割り当てられ、条件分岐のNOの側には、ダミーの処理Qが割り当てられる。
条件分岐での判定は常にYESとなるため、NO側のダミーの処理Qは実行されず、難読化後の制御フローは、元の処理Pと等価である。
FIG. 2 is a diagram showing a first pattern of obfuscation according to the present embodiment.
Here, a true branch is used, the original process P is assigned to the YES side of the conditional branch, and the dummy process Q is assigned to the NO side of the conditional branch.
Since the determination in the conditional branch is always YES, the dummy process Q on the NO side is not executed, and the control flow after obfuscation is equivalent to the original process P.
図3は、本実施形態に係る難読化の第2のパターンを示す図である。
ここでは、恒偽の分岐が用いられ、条件分岐のYESの側には、ダミーの処理Qが割り当てられ、条件分岐のNOの側には、元の処理Pが割り当てられる。
条件分岐での判定は常にNOとなるため、YES側のダミーの処理Qは実行されず、難読化後の制御フローは、元の処理Pと等価である。
FIG. 3 is a diagram showing a second pattern of obfuscation according to the present embodiment.
Here, a false branch is used, a dummy process Q is assigned to the YES side of the conditional branch, and the original process P is assigned to the NO side of the conditional branch.
Since the determination in the conditional branch is always NO, the dummy process Q on the YES side is not executed, and the control flow after obfuscation is equivalent to the original process P.
図4は、本実施形態に係る難読化の第3のパターンを示す図である。
ここでは、不定の分岐が用いられ、条件分岐のYESの側には、元の処理Pと等価な処理P’が割り当てられ、条件分岐のNOの側にも、元の処理Pと等価な処理P’’が割り当てられる。ここで、P’及びP’’は、Pと等価な処理である。
条件分岐での判定は、YESの場合とNOの場合とがあり、P’又はP’’のいずれかの処理が実行される。
FIG. 4 is a diagram showing a third pattern of obfuscation according to the present embodiment.
Here, an indefinite branch is used, a process P ′ equivalent to the original process P is assigned to the YES side of the conditional branch, and a process P equivalent to the original process P is also assigned to the NO side of the conditional branch. P '' is assigned. Here, P ′ and P ″ are processes equivalent to P.
The determination in the conditional branch may be YES or NO, and either P ′ or P ″ processing is executed.
本実施形態によれば、難読化装置1は、暗号化処理及び復号処理のパラメータを調整することにより、常に真となる条件分岐、及び常に偽となる条件分岐を生成し、いずれかをソフトウェアの制御フローに挿入する。
これにより、難読化装置1は、ソフトウェアの制御フローを、実行されないダミーの処理と本来の処理とに分岐させ、解析を難しくできる。さらに、いずれのパターンの条件分岐が挿入されたのかが判別され難いため、ソフトウェアのソースコード及び実行プログラムの解析がより難しくなる。
According to the present embodiment, the obfuscation apparatus 1 generates a condition branch that is always true and a condition branch that is always false by adjusting the parameters of the encryption process and the decryption process, and converts any one of the software Insert into control flow.
Thereby, the obfuscation apparatus 1 can divide the control flow of the software into the dummy processing that is not executed and the original processing, thereby making the analysis difficult. Further, since it is difficult to determine which pattern of the conditional branch is inserted, it becomes more difficult to analyze the software source code and the execution program.
また、難読化装置1は、確率的に真にも偽にもなり得る条件分岐挿入し、等価な処理を2つ記述することにより難読化を行える。これにより、難読化装置1は、3パターンの制御フローを選択的に組み入れ、ソフトウェアのソースコード及び実行プログラムの解析をより困難にできる。 Further, the obfuscation apparatus 1 can perform obfuscation by inserting conditional branches that can be stochastically true or false and describing two equivalent processes. Thus, the obfuscation apparatus 1 selectively incorporates three patterns of control flows, and makes it more difficult to analyze software source codes and execution programs.
さらに、難読化装置1は、暗号化処理及び復号処理のパラメータ、及び条件分岐のパターン(恒真、恒偽、不定)をランダムに選択することで、ソフトウェアのソースコード及び実行プログラムの解析をより困難にできる。 Furthermore, the obfuscation apparatus 1 randomly analyzes the parameters of the encryption process and the decryption process, and the pattern of the conditional branch (true, false, indefinite) to analyze the software source code and the execution program more. Can be difficult.
難読化装置1は、暗号化方式として、LWE型格子暗号を用いることで、パラメータであるノイズ分布の標準偏差σを調整して3パターンの条件分岐を適切に生成できる。 The obfuscation apparatus 1 can appropriately generate three patterns of conditional branches by adjusting the standard deviation σ of the noise distribution, which is a parameter, by using the LWE-type lattice encryption as the encryption method.
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。 The embodiments of the present invention have been described above, but the present invention is not limited to the above-described embodiments. Further, the effects described in the present embodiment merely enumerate the most preferable effects resulting from the present invention, and the effects according to the present invention are not limited to those described in the present embodiment.
難読化装置1による難読化方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The obfuscation method by the obfuscation device 1 is realized by software. When realized by software, a program constituting the software is installed in an information processing device (computer). Further, these programs may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network. Furthermore, these programs may be provided to a user's computer as a Web service via a network without being downloaded.
1 難読化装置
10 制御部
11 生成部
12 挿入部
20 記憶部
DESCRIPTION OF SYMBOLS 1
Claims (7)
ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入部と、を備える難読化装置。 For an encryption method in which the probability of successful decryption according to the parameter is variable, the first code of the encryption and decryption processes that sets the first parameter in which the probability is equal to or greater than a first threshold, and the probability is A generation unit configured to generate a second code of an encryption process and a decryption process in which a second parameter that is smaller than a second threshold is set;
In the software control flow, a decryption process is performed on the plaintext after the encryption process using the first code or the second code, and a conditional branch for determining whether the plaintext has been restored is inserted. An obfuscation device comprising: an insertion unit that assigns a dummy process to one of them.
前記挿入部は、平文に対して前記第1コード、前記第2コード又は前記第3コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、前記第3コードを用いた条件分岐を挿入した場合には、当該条件分岐の双方に等価の処理を割り当てる請求項1に記載の難読化装置。 The generation unit generates a third code of an encryption process and a decryption process in which a third parameter in which the probability is equal to or more than a second threshold and less than a first threshold is set,
The insertion unit performs a decryption process on the plaintext after the encryption process using the first code, the second code, or the third code, and inserts a conditional branch that determines whether the plaintext has been restored, The obfuscation apparatus according to claim 1, wherein when a conditional branch using the third code is inserted, an equivalent process is assigned to both of the conditional branches.
ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入ステップと、をコンピュータが実行する難読化方法。 For an encryption method in which the probability of successful decryption according to the parameter is variable, the first code of the encryption and decryption processes that sets the first parameter in which the probability is equal to or greater than a first threshold, and the probability is A generation step of generating a second code of an encryption process and a decryption process in which a second parameter that is less than a second threshold is set;
In the software control flow, a decryption process is performed on the plaintext after the encryption process using the first code or the second code, and a conditional branch for determining whether the plaintext has been restored is inserted. An obfuscation method in which a computer executes an insertion step of assigning a dummy process to one of them.
ソフトウェアの制御フローに、平文に対して前記第1コード又は前記第2コードにより暗号化処理後に復号処理を行い、前記平文が復元されたか否かを判定する条件分岐を挿入し、当該条件分岐のうち、一方にダミーの処理を割り当てる挿入ステップと、をコンピュータに実行させるための難読化プログラム。 For an encryption method in which the probability of successful decryption according to the parameter is variable, the first code of the encryption and decryption processes that sets the first parameter in which the probability is equal to or greater than a first threshold, and the probability is A generation step of generating a second code of an encryption process and a decryption process in which a second parameter that is less than a second threshold is set;
In the software control flow, a decryption process is performed on the plaintext after the encryption process using the first code or the second code, and a conditional branch for determining whether the plaintext has been restored is inserted. An obfuscation program for causing a computer to execute an insertion step of assigning a dummy process to one of them.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016249408A JP6632962B2 (en) | 2016-12-22 | 2016-12-22 | Obfuscation device, obfuscation method and obfuscation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016249408A JP6632962B2 (en) | 2016-12-22 | 2016-12-22 | Obfuscation device, obfuscation method and obfuscation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018106260A JP2018106260A (en) | 2018-07-05 |
JP6632962B2 true JP6632962B2 (en) | 2020-01-22 |
Family
ID=62787069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016249408A Expired - Fee Related JP6632962B2 (en) | 2016-12-22 | 2016-12-22 | Obfuscation device, obfuscation method and obfuscation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6632962B2 (en) |
-
2016
- 2016-12-22 JP JP2016249408A patent/JP6632962B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2018106260A (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5726385B2 (en) | Program verification apparatus, program verification method, and program verification program | |
US10795990B2 (en) | Secure code optimization method and system | |
JP5861018B1 (en) | Computing device configured by table network | |
CN111819542B (en) | Compiling apparatus and method | |
CN111066077B (en) | Encryption device, encryption method, decryption device, and decryption method | |
CN107077540B (en) | Method and system for providing cloud-based application security services | |
EP3729306B1 (en) | Compiling device and method | |
CN105765896B (en) | Computing device for iterative application of a table network | |
Gürfidan et al. | Blockchain-based music wallet for copyright protection in audio files | |
CN111373464B9 (en) | Encryption device, encryption method, decryption device, and decryption method | |
WO2016063512A1 (en) | Mac tag list generating apparatus, mac tag list verifying apparatus, mac tag list generating method, mac tag list verifying method and program recording medium | |
EP2286610B1 (en) | Techniques for peforming symmetric cryptography | |
JP7079711B2 (en) | Converter, conversion method, converter and obfuscation program | |
JP6632962B2 (en) | Obfuscation device, obfuscation method and obfuscation program | |
KR102045843B1 (en) | Method and apparatus for block encryption algorithm | |
KR101440680B1 (en) | Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same | |
KR102083415B1 (en) | Apparatus and method for decrypting encrypted files | |
JP2011123229A (en) | Program code encryption device and program | |
KR101219191B1 (en) | Apparatus for protecting key information in volatile memory and method thereof | |
JP6904417B2 (en) | Random number calculation device, random number calculation method, encryption device, and random number calculation program | |
KR102177920B1 (en) | Apparatus and method for packing original source code | |
JP2005266887A (en) | Program encryption apparatus, program distribution system and computer program | |
KR102522109B1 (en) | Apparatus for cryptanalysis using generative adversarial networks and mehtod thereof | |
JP6212377B2 (en) | Arithmetic device, arithmetic method and computer program | |
Mohsen et al. | Theoretical foundation for code obfuscation security: A Kolmogorov complexity approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191025 |
|
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: 20191126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6632962 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |