JP2010528511A - Software encryption method, software decryption method, software encryption device, and software decryption device - Google Patents

Software encryption method, software decryption method, software encryption device, and software decryption device Download PDF

Info

Publication number
JP2010528511A
JP2010528511A JP2010508801A JP2010508801A JP2010528511A JP 2010528511 A JP2010528511 A JP 2010528511A JP 2010508801 A JP2010508801 A JP 2010508801A JP 2010508801 A JP2010508801 A JP 2010508801A JP 2010528511 A JP2010528511 A JP 2010528511A
Authority
JP
Japan
Prior art keywords
software
secret key
ciphertext
encryption
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010508801A
Other languages
Japanese (ja)
Other versions
JP5167348B2 (en
Inventor
タン ウェン
ジュン フー ジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of JP2010528511A publication Critical patent/JP2010528511A/en
Application granted granted Critical
Publication of JP5167348B2 publication Critical patent/JP5167348B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本発明はコンピュータセキュリティの分野に関し、殊にソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置に関する。本発明の暗号解読プロセスは以下のステップを含んでいる:ステップ201、第2のソフトウェア暗号文のn個のパラグラフからランダムに、しきい値秘密鍵のt個のファクタを選択し;第2のソフトウェア暗号文から第1のソフトウェア暗号文および秘密鍵暗号文PSKを復元し、ここでnは1より大きい正の整数であり、tはn以下であり:ステップ202:秘密鍵暗号文PSKを抽出し、しきい値秘密鍵の前記t個のファクタに従って第2の秘密鍵を作成し、この第2の秘密鍵を用いて秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読し;ステップ203、前記第1の秘密鍵SKを用いて前記第1のソフトウェア暗号文を暗号解読する。本発明の利点は、ソフトウェア暗号鍵の保護を向上させて、ソフトウェアローディングプロセスを追跡することによってクラッカーがソフトウェアをクラックするのを困難にすることである。  The present invention relates to the field of computer security, and more particularly to a software encryption method, a software decryption method, a software encryption device, and a software decryption device. The decryption process of the present invention includes the following steps: Step 201, randomly selecting t factors of the threshold secret key from n paragraphs of the second software ciphertext; Restore the first software ciphertext and the private key ciphertext PSK from the software ciphertext, where n is a positive integer greater than 1 and t is less than or equal to n: Step 202: Extract the private key ciphertext PSK Generating a second secret key according to the t factors of the threshold secret key, and decrypting the secret key ciphertext PSK into the first secret key SK using the second secret key; 203. Decrypt the first software ciphertext using the first secret key SK. An advantage of the present invention is that it improves the protection of software encryption keys and makes it difficult for crackers to crack the software by tracking the software loading process.

Description

技術分野
本発明はコンピュータセキュリティの分野、殊にコンピュータ暗号化の分野に関し、特にソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置に関する。
TECHNICAL FIELD The present invention relates to the field of computer security, particularly to the field of computer encryption, and more particularly to a software encryption method, a software decryption method, a software encryption device, and a software decryption device.

背景技術
近年では、ソフトウェアは独立した価値および機能、実行プロセス、コード化等を伴い、必需品となっている。ソフトウェアの一部において、オブジェクトが競合者およびそのほかの組織または個人によって盗難される傾向がある。従って、ソフトウェア、特に中間言語(Java、NET等のプログラミング言語)でプログラミングされたソフトウェアは非常に容易に、逆行分析によって逆符号化される。これは例えば、NET Reflect(Microsoftからの逆行分析ツール)、JAD(Javaからの逆行分析ツール)を用いて行われる。これによってコアアルゴリズム、符号化等に関する情報が得られ、このような情報がクラッカーによって悪意で使用される場合、例えばソフトウェアのコアアルゴリズムを模倣して、登録されたソフトウェアに近づく等の場合には、これは開発者にとって損失となる。
BACKGROUND ART In recent years, software has become a necessity with independent values and functions, execution processes, coding, and the like. In some software, objects tend to be stolen by competitors and other organizations or individuals. Therefore, software, especially software programmed in an intermediate language (Java, NET, etc.) can be very easily decoded by retrograde analysis. This is performed using, for example, NET Reflect (a retrograde analysis tool from Microsoft) or JAD (a retrograde analysis tool from Java). This gives information about the core algorithm, encoding, etc., and when such information is used maliciously by a cracker, for example when imitating the core algorithm of a software and approaching registered software, This is a loss for developers.

従来技術では、内部機能の名前を変える、コントロールフローまたは他の方法を再アレンジすることによる、クラッキング行動においてクラッカーを混乱させるための措置はある程度の効果を有し、この措置によって逆符号化されたソフトウェアプログラムを読み出す、理解するのが困難にされる、または読み出して、理解するのを不可能にしてきた。しかしソースコードに対するこの種の保護メカニズムは、ソフトウェアプログラムが逆符号化されるのを回避することができないので、ソフトウェアプログラムの情報を失う可能性が依然として残る。   In the prior art, measures to confuse crackers in cracking behavior by renaming internal functions, rearranging control flows or other methods have some effect and were de-encoded by this measure Software programs have been read, made difficult to understand, or read, making them impossible to understand. However, this kind of protection mechanism for the source code cannot avoid the software program being de-encoded, so the possibility of losing the software program information still remains.

記事「Using DES Encryption Algorithm to Protect Java Source Code(2005年5月にComputer and Information technologyに掲載)」には、Javaによってコンパイルされたソフトウェアを暗号化し、作動時に解読するためのソリューションが開示されている。このソリューションはData Encryption Standard (DES)を用いて、Java実行プログラムを暗号化し、暗号化された符号化プログラムおよび秘密鍵をメモリ内に格納し、ローダーを用いて、暗号化されたJava符号化プログラムおよび鍵をシステム内にロードし、秘密鍵を取り出し、符号化プログラムを暗号解読し、これを実行可能な符号化の形状に変え、これをJavaバーチャルマシーン内にロードし、作動させる。   The article "Using DES Encryption Algorithm to Protect Java Source Code" (published in Computer and Information technology in May 2005) discloses a solution for encrypting software compiled by Java and decrypting it during operation. . This solution uses the Data Encryption Standard (DES) to encrypt the Java execution program, stores the encrypted encoding program and private key in the memory, and uses the loader to encrypt the encrypted Java encoding program. And the key is loaded into the system, the secret key is extracted, the encoding program is decrypted, it is converted into an executable encoding form, and this is loaded into the Java virtual machine and activated.

上述の方法は非常に容易に、クラッカーによって追跡可能であり、プログラム開始からクラッカーは、デバッグツールを用いるだけで各ステップを追跡することができる。作動時にプログラムが特定のファイルに毎回アクセスし、秘密鍵またはシステムのシンボルネームをこのファイルから得る場合には、これによってクラッカーは、このファイルが、プログラムに対する秘密鍵またはシステムのシンボルネームに対する比較テーブルであることを推測し、クラッカーがこのファイルが秘密鍵ファイルであることを確認すると、クラッカーはファイルをクラックするあらゆる可能な手段を試す;そしてファイルがひとたびクラックされてしまうと、ソフトウェアコーディングの暗号文がソフトウェアコーディングの平文に変えられ、このソフトウェアのソースコードが逆行分析によって生成され、これによってソフトウェア所有者にとって損失が生じる。   The method described above is very easily traceable by the cracker, and from the start of the program, the cracker can track each step with just a debug tool. If the program accesses a particular file every time it runs and gets the private key or system symbol name from this file, this allows the cracker to compare the file in the comparison table for the private key or system symbol name for the program. If one guesses and the cracker confirms that this file is a private key file, the cracker will try every possible means of cracking the file; and once the file is cracked, the ciphertext in the software coding Converted to plain text in software coding, the source code for this software is generated by retrograde analysis, which causes losses to the software owner.

本発明の内容
上述の問題を解決し、ソフトウェアデコンパイルの難易度を上げるために、本発明の課題は次のようなソフトウェア暗号化方法および相応する暗号解読方法を提供することである。ここでは、しきい値暗号化フィーチャーが含まれており、ソフトウェアの開始の度に、得られたしきい値秘密鍵ファクタのアドレスが異なっている。これによってクラッカーに秘密鍵アドレスの特定を不可能にさせる。
In order to solve the above-described problems and increase the difficulty of software decompilation, the object of the present invention is to provide the following software encryption method and corresponding decryption method. Here, a threshold encryption feature is included, and each time the software is started, the obtained threshold secret key factor address is different. This makes it impossible for the cracker to specify the secret key address.

本発明はまた、ソフトウェア暗号装置および相応する暗号解読装置も提供する。この装置は、しきい値秘密鍵の複数のファクタをソフトウェアの異なるパラグラフ内に格納することができ、暗号解読時に、しきい値秘密鍵のこれらのファクタを幾つかのパラグラフからランダムに、このソフトウェアの暗号解読のために得ることができる。   The present invention also provides a software encryption device and a corresponding decryption device. The device can store multiple factors of the threshold secret key in different paragraphs of the software, and at decryption, these factors of the threshold secret key can be randomly extracted from several paragraphs of the software. Can be obtained for decryption.

ステップ101:第1の暗号化モジュールを用いて記憶媒体内のソフトウェア平文を、第1のソフトウェア暗号文に暗号化する。ここで暗号解読のための秘密鍵は第1の秘密鍵SKである;
ステップ102:第2の暗号化モジュールによって、しきい値秘密鍵のn個のファクタを用いて第2の秘密鍵を作成し、前記第1の秘密鍵SKをこの第2の秘密鍵を用いて秘密鍵暗号文PSKに暗号化し、この秘密鍵暗号文PSKを、前記第1のソフトウェア暗号文にスプライス接続する。ここでnは、1よりも大きい正の整数である;
ステップ103:カプセル化モジュールを用いて前記秘密鍵暗号文PSKと前記第1のソフトウェア暗号文を、統合された全体としてn個のパラグラフに分割し、前記しきい値秘密鍵のファクタを前記パラグラフにスプライス接続して、第2のソフトウェア暗号文を形成し、この第2のソフトウェア暗号文を前記記憶媒体内に格納する。
Step 101: The software plaintext in the storage medium is encrypted into the first software ciphertext using the first encryption module. Here, the secret key for decryption is the first secret key SK;
Step 102: The second encryption module creates a second secret key using n factors of the threshold secret key, and uses the second secret key to generate the first secret key SK. The private key ciphertext PSK is encrypted, and this private key ciphertext PSK is spliced to the first software ciphertext. Where n is a positive integer greater than 1;
Step 103: Dividing the secret key ciphertext PSK and the first software ciphertext into n paragraphs as a whole by using an encapsulation module, and converting the threshold secret key factor into the paragraphs Splicing is performed to form a second software ciphertext, and the second software ciphertext is stored in the storage medium.

本発明の暗号化方法の別の態様では、前記ステップ101において特定された前記暗号化方法は、対称暗号アルゴリズムまたは非対称暗号アルゴリズムを含む。   In another aspect of the encryption method of the present invention, the encryption method identified in step 101 includes a symmetric encryption algorithm or an asymmetric encryption algorithm.

本発明の暗号化方法のさらに別の態様では、前記ステップ102内で使用されるしきい値秘密鍵アルゴリズムはShamirしきい値秘密鍵スキームを含む。   In yet another aspect of the encryption method of the present invention, the threshold secret key algorithm used in step 102 comprises a Shamir threshold secret key scheme.

本発明の暗号化方法のさらに別の態様では、前記ステップ103において、前記カプセル化モジュールが前記秘密鍵暗号文PSKと前記第1のソフトウェア暗号文を統計された全体としてn個のパラグラフフに分割する;Cは前記n個のパラグラフ内のあらゆるパラグラフをあらわし、パラグラフCはブロックC,C,・・・,Cm−1を含み、以下の式が各パラグラフCで行われ、これはkに相応する:

Figure 2010528511
ここで×は算術的な乗算演算であり、同時にしきい値秘密鍵ファクタkのハッシュ値hが計算され、C’〜C’の値が結合されてC’が形成され、n個のパラグラフの複数のこのC’およびその相応するハッシュ値hがスプライス接続されて、前記第2のソフトウェア暗号文が形成される。 In yet another aspect of the encryption method of the present invention, in the step 103, the encapsulation module divides the secret key ciphertext PSK and the first software ciphertext into n paragraphs as a whole as a statistical data. C represents any paragraph in the n paragraphs, paragraph C includes blocks C 0 , C 2 ,..., C m−1 , and the following equation is performed in each paragraph C, which Corresponding to k:
Figure 2010528511
Here, x is an arithmetic multiplication operation. At the same time, a hash value h of the threshold secret key factor k is calculated, and the values of C ′ 0 to C ′ m are combined to form C ′. A plurality of this C ′ in the paragraph and its corresponding hash value h are spliced together to form the second software ciphertext.

ソフトウェア暗号解読のための方法は、ソフトウェアをロードするプロセスの間に以下のステップを含む:
ステップ201:カプセル除去モジュールによって、第2のソフトウェア暗号文のn個のパラグラフからランダムに、しきい値秘密鍵のt個のファクタを選択し;前記第2のソフトウェア暗号文から第1のソフトウェア暗号文および秘密鍵暗号文PSKを復元し、ここでtは1以上であり、n以下であり、nは1より大きい正の整数である;
ステップ202:前記秘密鍵暗号文PSKを抽出し、しきい値秘密鍵の前記t個のファクタに従って第2の暗号解読モジュールによって第2の秘密鍵を作成し、この第2の秘密鍵を用いて前記秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読する;
ステップ203:第1の暗号解読モジュールによって、前記第1の秘密鍵SKを用いて前記第1のソフトウェア暗号文を暗号解読し、ソフトウェア平文をCPUに送り、ソフトウェアを実行する。
The method for software decryption includes the following steps during the process of loading the software:
Step 201: The t-factor of the threshold secret key is selected at random from the n paragraphs of the second software ciphertext by the decapsulation module; from the second software ciphertext to the first software cipher Reconstructs the text and private key ciphertext PSK, where t is greater than or equal to 1 and less than or equal to n and n is a positive integer greater than 1;
Step 202: Extract the secret key ciphertext PSK, create a second secret key by a second decryption module according to the t factors of the threshold secret key, and use the second secret key Decrypting the secret key ciphertext PSK into a first secret key SK;
Step 203: The first decryption module decrypts the first software ciphertext using the first secret key SK, sends the software plaintext to the CPU, and executes the software.

本発明の暗号解読方法の別の態様では、ステップ201において、前記カプセル除去モジュールは第2のソフトウェア暗号文の各n個のパラグラフにおいて計算を行い:E0〜Emに従ってC,C,・・・,Cm−1を除去し、以下の式を得る。
0=−C’+C’m−1×km−1−C’m−2×km−2+・・・+(−1)m−1×C’(P0)
kのハッシュ値がパラグラフC’の相応するハッシュ値hに相応する場合に、この式におけるkが解かれ、C〜Cm−1の値が、C’〜C’m−1からkを用いて復元され、C〜Cm−1が結合され、パラグラフCが得られる。このパラグラフは第1のソフトウェア暗号文と第2の秘密鍵暗号文の統合された全体のn個のパラグラフのうちの1つであり;n個のkが解かれ、第1のソフトウェア暗号文および第2の秘密鍵暗号文PSKが第2のソフトウェア暗号文から復元される。
In another aspect of the cryptanalysis method of the present invention, in step 201, the decapsulation module performs calculations in each of n paragraphs of the second software ciphertext: C 0 , C 1 ,. Remove C m-1 to obtain the following equation:
0 = -C 'm k m + C' m-1 × k m-1 -C 'm-2 × k m-2 + ··· + (- 1) m-1 × C' 0 (P0)
If the hash value of k corresponds to the corresponding hash value h of paragraph C ′, k in this equation is solved and the values of C 0 to C m−1 are changed from C ′ 0 to C ′ m−1 to k And C 0 -C m-1 are combined to give paragraph C. This paragraph is one of the integrated n paragraphs of the first software ciphertext and the second secret key ciphertext; n k are solved, and the first software ciphertext and The second secret key ciphertext PSK is restored from the second software ciphertext.

本発明の暗号解読方法のさらに別の態様では、この式(P0)におけるkを解くために多項式ニュートン反復方法が用いられる。   In yet another aspect of the decryption method of the present invention, a polynomial Newton iteration method is used to solve k in this equation (P0).

ソフトウェア暗号化装置は次の特徴を有している。すなわち、この装置が第1の暗号化モジュール、第2の暗号化モジュールおよびカプセル化モジュールを含み;第1の秘密鍵SKを用いて前記第1の暗号化モジュールがソフトウェア平文を第1のソフトウェア暗号文に暗号化し;前記第1の暗号化モジュールと接続されている第2の暗号化モジュールがしきい値秘密鍵のn個のファクタを用いて第2の暗号化モジュールを形成し、第2の秘密鍵を用いて第1の秘密鍵SKを秘密鍵暗号文PSKに暗号化し、前記秘密鍵暗号文PSKを前記第1のソフトウェア暗号文内に格納し;前記第2の暗号化モジュールに接続されている前記カプセル化モジュールは、前記第1のソフトウェア暗号文をn個のパラグラフに分け、しきい値秘密鍵の前記ファクタを前記パラグラフにスプライス接合し、第2のソフトウェア暗号文を形成する。   The software encryption device has the following features. That is, the apparatus includes a first encryption module, a second encryption module, and an encapsulation module; using the first secret key SK, the first encryption module converts the software plaintext to the first software encryption. A second encryption module connected to the first encryption module uses the n factors of the threshold secret key to form a second encryption module; A first secret key SK is encrypted into a secret key ciphertext PSK using a secret key, and the secret key ciphertext PSK is stored in the first software ciphertext; connected to the second encryption module; The encapsulation module divides the first software ciphertext into n paragraphs, splices the factor of the threshold secret key into the paragraphs; To form a software cipher text.

ソフトウェア暗号解読のための装置は次の特徴を有している。すなわち、この装置がカプセル除去モジュール、第2の暗号解読モジュールおよび第1の暗号解読モジュールを含んでいる、という特徴を有している;前記カプセル除去モジュールは、第2のソフトウェア暗号文を第1のソフトウェア暗号文と秘密鍵暗号文PSKにカプセル除去し(decapsulates)、ランダムに第2のソフトウェア暗号文のn個のパラグラフから、しきい値秘密鍵のt個のファクタを選択し;前記カプセル除去モジュールに接続されている前記第2の暗号解読モジュールは、しきい値秘密鍵の前記t個のファクタに従って第2の秘密鍵を形成し、この第2の秘密鍵を用いて秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読し、前記第2の暗号解読モジュールに結合されている前記第1の暗号解読モジュールは、前記第1のソフトウェア暗号文を前記第1の秘密鍵SKを用いて暗号解読し、ソフトウェア平文を得て、これをCPUに送り、ソフトウェアが実行される。   An apparatus for software decryption has the following characteristics. That is, the apparatus includes a decapsulation module, a second decryption module, and a first decryption module; wherein the decapsulation module stores a second software ciphertext in a first Decapsulates the software ciphertext and the private key ciphertext PSK, and randomly selects t factors of the threshold secret key from n paragraphs of the second software ciphertext; The second decryption module connected to the module forms a second secret key according to the t factors of the threshold secret key and uses this second secret key to secret key ciphertext PSK. Is decrypted into a first secret key SK, and the first decryption module coupled to the second decryption module includes the first soft key Cipher decrypts the wear ciphertext by using the first secret key SK, to give a software plaintext, which feed on the CPU, the software is executed.

本発明の効果は、ソフトウェア暗号鍵の保護が高められ、クラッカーにとってソフトウェアをクラックするのをより困難にする。このクラックはソフトウェアのローディングプロセスを追跡し、ソフトウェアローディングプロセスの追跡により秘密鍵の物理アドレスを得ることによって行われる。ここでは秘密鍵の分析によってソフトウェアをクラックするという目的が達成される。さらに本発明はソフトウェアを暗号化する目下のソリューションを向上させ、秘密鍵をダイナミックに格納する技術によってその安全性を改善する。   The effect of the present invention is that the protection of the software encryption key is enhanced, making it more difficult for crackers to crack the software. This crack is done by tracking the software loading process and obtaining the physical address of the private key by tracking the software loading process. Here the purpose of cracking the software is achieved by analyzing the secret key. Furthermore, the present invention improves the current solution for encrypting software and improves its security by the technique of dynamically storing private keys.

本発明に従ってソフトウェア暗号化を実施するフローチャートFlowchart for implementing software encryption in accordance with the present invention 本発明に従ってソフトウェア暗号解読を実施するフローチャートFlowchart for performing software decryption in accordance with the present invention 本発明に従ってソフトウェア暗号化を実施するための装置の構造スキームStructural scheme of an apparatus for performing software encryption according to the present invention 本発明に従ってソフトウェア暗号解読を実施するための装置の構造スキームStructural scheme of an apparatus for performing software decryption according to the present invention 本発明を実行するための装置の構造ダイヤグラムStructural diagram of an apparatus for carrying out the present invention

有利な実施形態の詳細な説明
以下で本発明を、図面と組み合わせて詳細に説明する。
Detailed Description of the Preferred Embodiments The present invention is described in detail below in conjunction with the drawings.

本発明はしきい値秘密鍵理論を用いて、前記第1の秘密鍵に対するさらなる保護を提供し、しきい値秘密鍵のファクタを暗号化されたソフトウェアにスプライス接続し、これによってプログラム走行を追跡する度毎にクラッカーが異なるジャンプアドレスを得るようにする。これによってクラッカーは、前記第1の秘密鍵を探す場所を特定することができない。本発明によって保護されるソフトウェアは、実行可能なプログラムだけに限定されず、機能モジュールおよびソフトウェアコアアルゴリズム等も含む。目下のしきい値暗号化方法は、第2の秘密鍵として乱数を用い、前記第1の秘密鍵SKを秘密鍵暗号文PSKに暗号化し、同時に、この乱数を計算するためのしきい値秘密鍵のn個のファクタを作成する;秘密鍵を解読する必要があるときには、暗号解読のために前記第2の秘密鍵を作成するために、しきい値秘密鍵のt個のファクタ(t≦n)が必要となるだけである。しきい値暗号方式を提案する目的は、権利を散乱させ、安全性を高めることにある;権利の散乱は、しきい値暗号方式を暗号解読を行うために使用するときに行われ、各人が1つの秘密鍵ファクタを保持する場合には、この暗号解読は、参加者の数がある程度の数に達している場合にのみ行われる(しきい値t);一方では安全性が次のようなケースを防ぐ、すなわち1つの鍵ファクタを得たことによって暗号化が無意味になるというケースである。その結果、このグループ内のクラックされた人の数がしきい値に達しない限りは、暗号解読を行うことが依然として不可能である;他方で、通常の暗号解読に悪影響を与える鍵ファクタの損失ケース防がれる。なぜなら暗号解読は、有効な鍵ファクタを有している人の数がしきい値以上である限りには、依然として実行可能だからである。本発明のこの実施形態では、しきい値暗号アルゴリズムは例としてShamirスキームを使用する。しかしこれはShamirスキームに限定されず、Asmuth−Bloomしきい値秘密鍵スキームも使用することができる。   The present invention uses threshold secret key theory to provide further protection for the first secret key, splicing the threshold secret key factor into the encrypted software, thereby tracking the program run Each time you do it, the cracker gets a different jump address. As a result, the cracker cannot specify a location to search for the first secret key. The software protected by the present invention is not limited to an executable program, but includes a functional module and a software core algorithm. The current threshold encryption method uses a random number as a second secret key, encrypts the first secret key SK into a secret key ciphertext PSK, and at the same time calculates a threshold secret for calculating this random number. Create n factors of the key; when it is necessary to decrypt the secret key, t factors of the threshold secret key (t ≦ t) in order to create the second secret key for decryption n) is only required. The purpose of proposing threshold cryptography is to scatter rights and increase security; rights scatter occurs when using threshold cryptography to perform decryption and Is kept only one secret key factor, this decryption is only done if the number of participants has reached a certain number (threshold t); This is a case where encryption becomes meaningless by obtaining one key factor. As a result, it is still impossible to perform decryption unless the number of cracked persons in this group reaches a threshold; on the other hand, loss of key factors that adversely affect normal decryption The case is prevented. This is because cryptanalysis is still feasible as long as the number of people with valid key factors is above a threshold. In this embodiment of the invention, the threshold encryption algorithm uses the Shamir scheme as an example. However, this is not limited to the Shamir scheme, and an Asmuth-Bloom threshold secret key scheme can also be used.

ソフトウェアの一部を売る前に、暗号アルゴリズムを用いてソフトウェアベンダーはソフトウェア平文を暗号化する。この暗号アルゴリズムは、AES、DESまたはRSA、ECC等の、目下使用可能な対称または非対称暗号アルゴリズムである。対称暗号アルゴリズムが使用されている場合には、ソフトウェアの暗号秘密鍵は暗号解読秘密鍵と同じである。これは暗号解読にも使用され、暗号解読秘密鍵は秘密鍵SKである(すなわち、第1の秘密鍵)。非対称暗号アルゴリズムが使用されている場合には、暗号秘密鍵は前記非対称暗号アルゴリズムの暗号解読秘密鍵と相応する関係を有しており、暗号解読秘密鍵は本発明における秘密鍵SKである(すなわち、第1の秘密鍵)。ソフトウェアの秘密鍵SKはソフトウェアがクラックされるか、されないかを決定するものであるので、秘密鍵SKのセキュリティは非常に重要であり、本発明は特に、しきい値暗号化のShamirスキームを使用して、しきい値秘密鍵K,K,・・・,Kのn個のファクタを計算することによって第2の秘密鍵を作成し、この第2の秘密鍵は、秘密鍵SKを秘密鍵暗号文PSKに暗号化するために使用され、秘密鍵暗号文PSKが暗号化されたソフトウェアにスプライス結合され、例えば、これは暗号化されたソフトウェアの頭部または尾部にスプライス結合される。さらに、しきい値秘密鍵のn個のファクタが、強いスプライスアルゴリズム(またはシンプルなスプライシングモード)によって、暗号化されたソフトウェアの異なる物理パラグラフにスプライス結合される。例えばこれは、ソフトウェアの頭部または尾部にスプライス結合される。本発明では、これは次のことによって実行される:ステップ1、保護が必要なソフトウェアを暗号化する;ステップ2、ステップ1から第1の秘密鍵SKを暗号化する;ステップ3、ステップ2における暗号化を実行するために秘密鍵ファクタをスプライス結合する;また、作動のためにソフトウェアが暗号解読される必要がある場合には、しきい値秘密鍵のt個(1≦t≦n、ここでtもnも正の整数である)のファクタが、ランダムに、保護されているソフトウェア暗号文から得られ、その後、暗号化されたソフトウェアの第1の秘密鍵SKが、Shamirスキームを使用することによって秘密鍵暗号文PSKから解かれ、ソフトウェア暗号文が暗号解読される。しきい値秘密鍵のこの復元方法は、ソフトウェアローディングプロセスに動的な特性を与え、毎回、暗号解読のためのしきい値秘密鍵がソフトウェアの種々異なるポジションから得られる。従ってこれは効果的に、ソフトウェアローディングプロセスを追跡する方法をクラックすることによるクラックの難易度を高める。 Before selling a piece of software, software vendors encrypt the software plaintext using cryptographic algorithms. This cryptographic algorithm is a currently available symmetric or asymmetric cryptographic algorithm such as AES, DES or RSA, ECC. If a symmetric encryption algorithm is used, the software encryption private key is the same as the decryption private key. This is also used for decryption and the decryption private key is the private key SK (ie the first private key). When an asymmetric encryption algorithm is used, the encryption secret key has a corresponding relationship with the decryption secret key of the asymmetric encryption algorithm, and the decryption secret key is the secret key SK in the present invention (ie, , First secret key). Since the software private key SK determines whether the software is cracked or not, the security of the private key SK is very important, and the present invention particularly uses the Shamir scheme of threshold encryption. to, threshold secret key K 1, K 2, ···, the second to create a secret key by calculating the n-number of factors K n, the second private key, secret key SK Is encrypted into the private key ciphertext PSK, and the private key ciphertext PSK is spliced into the encrypted software, eg, it is spliced into the head or tail of the encrypted software . Furthermore, the n factors of the threshold secret key are spliced into different physical paragraphs of the encrypted software by a strong splice algorithm (or simple splicing mode). For example, it is spliced to the software head or tail. In the present invention, this is performed by: Step 1, encrypting the software that needs protection; Step 2, encrypting the first secret key SK from Step 1; Step 3, Step 2 Splice the secret key factors to perform encryption; and if the software needs to be decrypted for operation, t threshold threshold keys (1 ≦ t ≦ n, where (T and n are both positive integers) are randomly obtained from the protected software ciphertext, and then the first secret key SK of the encrypted software uses the Shamir scheme Thus, the private key ciphertext PSK is decrypted and the software ciphertext is decrypted. This method of restoring the threshold secret key gives dynamic characteristics to the software loading process, each time the threshold secret key for decryption is obtained from different positions in the software. This therefore effectively increases the difficulty of cracking by cracking the method of tracking the software loading process.

本発明のソフトウェア暗号化プロセスのフローチャートを図1に示す。   A flowchart of the software encryption process of the present invention is shown in FIG.

ステップ101、AES、DES等の適切な対称暗号アルゴリズムを選択し、第1の暗号化モジュールを用いることによってソフトウェア平文を第1のソフトウェア暗号文に暗号化し、ここで、使用されている秘密鍵は第1の秘密鍵SKである。   Step 101, select a suitable symmetric encryption algorithm such as AES, DES, etc. and encrypt the software plaintext into a first software ciphertext by using the first encryption module, where the secret key used is The first secret key SK.

ステップ102、第2の暗号化モジュールによって、しきい値暗号アルゴリズムにおいてShamirアルゴリズムを使用することによって、上述した秘密鍵SKを保護し、Z領域において言語補完多項式アルゴリズムのShamirスキームを使用し、t−1オーダーの多項式を生成し、ここでZは主要領域である:
(x)=a+aX+a+・・・+at−1t−1
ここで、P(x)の係数a0,・・・aは、ランダムに作成されている。
Step 102, the second encryption module protects the above-mentioned secret key SK by using the Shamir algorithm in the threshold encryption algorithm, and uses the Shamir scheme of the language complement polynomial algorithm in the Z p domain, t Generate a -1 order polynomial, where Z p is the main region:
p n (x) = a 0 + a 1 X + a 2 X 2 +... + a t−1 X t−1
Here, coefficient a 0 in P n (x), ··· a n is randomly created.

=1の場合、p(1)=a+a+a+・・・+at−1を計算し、
=nの場合、p(n)=a+an+a+・・・+at−1t−1を計算する。
When X 1 = 1, calculate p n (1) = a 0 + a 1 + a 2 +... + A t−1 ,
When X n = n, p n (n) = a 0 + a 1 n + a 2 n 2 +... + A t−1 n t−1 is calculated.

ここで、p(1),・・・p(n)<264であり、nは1よりも大きい正の整数であり、tは1以上の正の整数であり、nよりも小さい。 Here, p n (1),... P n (n) <2 64 , n is a positive integer greater than 1, t is a positive integer greater than or equal to 1, and smaller than n .

その後、しきい値秘密鍵のn個のファクタペアK=(1,P(1)),・・・K=(n,P(n))を作成し、aを第2の秘密鍵として用い、秘密鍵SKを秘密鍵暗号文PSKに暗号化する。また、暗号化された後に秘密鍵暗号文PSKを、前記第1のソフトウェア暗号文の頭部または尾部にスプライス結合し、このステップにおいて従来技術の記憶方法が使用され可能である。 Thereafter, n factor pairs K 1 = (1, P n (1)),... K n = (n, P n (n)) of the threshold secret key are created, and a 0 is set to the second The private key SK is encrypted into the private key ciphertext PSK. Alternatively, after encryption, the private key ciphertext PSK is spliced to the head or tail of the first software ciphertext, and a prior art storage method can be used in this step.

ステップ103、第1のソフトウェア暗号文と鍵暗号文の統合された全体を、カプセル除去モジュールを用いてn個のパラグラフに分割し、その後、このしきい値秘密鍵のn個のファクタをn個のパラグラフにスプライス結合する。ここで、この秘密鍵のn個のファクタは直接的にそれぞれ、第1のソフトウェア暗号文の各パラグラフの頭部および尾部にスプライス結合され、第2のソフトウェア暗号文が形成される。これは記憶媒体に格納される。図示されているように、黒い部分は秘密鍵のファクタであり、白い部分はn個のパラグラフである;より複雑な第2のソフトウェア暗号文を形成するために以降のスプライス結合方法を用いることも可能である。   Step 103, dividing the integrated whole of the first software ciphertext and the key ciphertext into n paragraphs using a decapsulation module, and then n factors of this threshold secret key n Splice to the paragraph. Here, each of the n factors of the secret key is directly spliced to the head and tail of each paragraph of the first software ciphertext to form a second software ciphertext. This is stored in a storage medium. As shown, the black part is the secret key factor and the white part is n paragraphs; it is also possible to use the subsequent splice concatenation method to form a more complex second software ciphertext. Is possible.

Cは、第1のソフトウェア暗号文の特定のパラグラフをあらわし、ここで各パラグラフCはC,C,・・・,Cm−1を含み、kはしきい値秘密鍵ファクタペアKのP(i)をあらわし、特定のスプライシングプロセスは以下のものである:

Figure 2010528511
ここで×は算術的な乗算演算である。有利な実施形態として、各パラグラフCの長さはkの長さに等しい。すなわち、length(C)=length(k)である。例えば、このソフトウェアは暗号化された後にn個のパラグラフに分けられる。ここでは特定のパラグラフCは128バイトの長さを有している。また秘密鍵のファクタは16バイトの長さを有している。その後Cは8個のパラグラフに分けられる。すなわちm=7である。Cにおける各パラグラフCの長さは、16バイトの長さを有する。同時にh=hash(k)が計算される。すなわち、しきい値秘密鍵ファクタkのハッシュ値が記録される。これは、復元されたしきい値ファクタが、暗号解読時に正しいか否かを検証するために用いられる。完全なC’を形成するためにC’〜C’を結合した後、これはハッシュ値h(hはパラグラフC’の前または後に加えられる)とともにスプライス結合され、その後、格納のための最終的なソフトウェア暗号文、すなわち第2のソフトウェア暗号文が、全てのパラグラフC’および相応するハッシュ値hをスプライス結合することによって形成され、この第2のソフトウェア暗号文が記憶媒体内に格納される。 C represents a particular paragraph of the first software ciphertext, where each paragraph C includes C 0 , C 2 ,..., C m−1 , and k is the threshold secret key factor pair K i. Where P n (i) is a specific splicing process:
Figure 2010528511
Here, x is an arithmetic multiplication operation. As an advantageous embodiment, the length of each paragraph C i is equal to the length of k. That is, length (C i ) = length (k). For example, the software is encrypted and divided into n paragraphs. Here a particular paragraph C has a length of 128 bytes. The secret key factor has a length of 16 bytes. C is then divided into 8 paragraphs. That is, m = 7. The length of each paragraph C i in C has a length of 16 bytes. At the same time, h = hash (k) is calculated. That is, the hash value of the threshold secret key factor k is recorded. This is used to verify whether the restored threshold factor is correct at the time of decryption. After combining C ′ 0 to C ′ m to form complete C ′, this is spliced together with a hash value h (h is added before or after paragraph C ′) and then for storage The final software ciphertext, ie the second software ciphertext, is formed by splicing all the paragraphs C ′ and the corresponding hash value h, and this second software ciphertext is stored in the storage medium. The

Shamirしきい値暗号スキーム内では、秘密鍵のt個のファクタは、第2の秘密鍵aを復元するために使用され、PSKが暗号解読される。従って、暗号化されたソフトウェアがロードされる度毎に、ソフトウェアローダーは、PSKを暗号解読するためにランダムに秘密鍵のn個のファクタのtを選択する。従って、動的な特性を備えた高度で強力な保護メカニズムが提供され、クラッカーがソフトウェアローディングプロセスを追跡および分析することが阻止される。 Within the Shamir threshold encryption scheme, the t factors of the secret key are used to recover the second secret key a 0 and the PSK is decrypted. Thus, each time the encrypted software is loaded, the software loader randomly chooses n factors t of the private key to decrypt the PSK. Thus, an advanced and powerful protection mechanism with dynamic characteristics is provided, preventing crackers from tracking and analyzing the software loading process.

図2は、本発明に従ったソフトウェアのローディングおよび暗号解読のフローチャートである。ソフトウェアを開始するステージで、第2のソフトウェア暗号文が、記憶媒体からローダーによってメモリ内にロードされる。さらにこの図では黒色の部分が秘密鍵ファクタであり、白色の部分が第1のソフトウェア暗号文およびPSKである;ステップ103に図示されているスプライス方法が暗号化ステップで使用されず、秘密鍵のn個のファクタだけが直接的に、ソフトウェア暗号文の相応するパラグラフの頭部または尾部にスプライス結合されている場合には、秘密鍵のt個のファクタが、ステップ201においてカプセル除去モジュールによってランダムに、暗号テキストからt個のパラグラフを直接的に選択することによって得られる。ステップ103において示されたスプライス方法が暗号化の間に使用されている場合には、1つの暗号テキストパラグラフC’およびその対応するハッシュ値hがカプセル除去モジュールによって選択され、しきい値秘密鍵のファクタkが、暗号文のパラグラフが復元されるように持ち込まれる。復元アルゴリズムを以下に示す:
E0〜EmからC〜Cm−1を除去し、(Em−1)にCm−1=C’を代入し、式Cm−2=C’m−1−C’×k+C×Kを得る。これは(Em−2),・・・,(E0)までに代入される;最終的に以下の多項式が形成される。
0=−C’+C’m−1×km−1−C’m−2×km−2+・・・+(−1)m−1×C’、これはP0としてラベリングされる;秘密鍵ファクタkは上述した多項式の根であり、この根は多項式を数値領域において計算することによって見つけられ、kは第2のソフトウェア暗号文C’,C’,・・・,C’から復元される。ニュートン反復アルゴリズムが、この実施例において多項式P0の1つまたは複数の根を探すために使用される。
FIG. 2 is a flowchart of software loading and decryption according to the present invention. At the stage of starting the software, the second software ciphertext is loaded from the storage medium into the memory by the loader. Further, in this figure, the black part is the secret key factor and the white part is the first software ciphertext and PSK; the splicing method illustrated in step 103 is not used in the encryption step, and the secret key factor If only n factors are spliced directly to the corresponding paragraph head or tail of the software ciphertext, t factors of the secret key are randomly generated by the decapsulation module in step 201. , Obtained by directly selecting t paragraphs from the ciphertext. If the splicing method shown in step 103 is used during encryption, one cipher text paragraph C ′ and its corresponding hash value h are selected by the decapsulation module, and the threshold private key The factor k is brought in so that the ciphertext paragraph is restored. The restoration algorithm is shown below:
C 0 to C m−1 are removed from E 0 to Em, C m−1 = C ′ m is substituted into (Em−1), and the formula C m−2 = C ′ m−1 −C ′ m × k + C m × K 2 is obtained. This is substituted by (Em-2),..., (E0); finally the following polynomial is formed.
0 = -C 'm k m + C' m-1 × k m-1 -C 'm-2 × k m-2 + ··· + (- 1) m-1 × C' 0, which as P0 The secret key factor k is the root of the polynomial described above, which is found by computing the polynomial in the numerical domain, and k is the second software ciphertext C ′ 0 , C ′ 1 ,. -Restored from C'm. A Newton iterative algorithm is used in this example to look for one or more roots of the polynomial P0.

(a)y=−C’+C’m−1×km−1−C’m−2×km−2+・・・+(−1)m−1×C’=f(k)(P1)とし、ここで初期値kを任意に選択し、例えばk=2length(k)−1とする。
(b)

Figure 2010528511
を計算する。ここでi=0〜mであり、f’(k)はf(k)の導関数であり、すなわち、
f’(k)=−C’×m×km−1+C’m−1×(m−1)×km−2−C’m−2×(m−2)×km−3+・・・+(−1)m−2×C’
(c)|ki−1−k|<1になるまでステップbを繰り返す、その後ki+1はP1の根に近似する。 (A) y = -C 'm k m + C' m-1 × k m-1 -C 'm-2 × k m-2 + ··· + (- 1) m-1 × C' 0 = f (K) (P1), where the initial value k 0 is arbitrarily selected, for example, k 0 = 2 length (k) −1 .
(B)
Figure 2010528511
Calculate Where i = 0 to m and f ′ (k) is the derivative of f (k), ie
f ′ (k) = − C ′ m × m × k m−1 + C ′ m−1 × (m−1) × k m−2 −C ′ m−2 × (m−2) × k m−3 + ... + (-1) m-2 × C ′ 1
(C) Repeat step b until | k i-1 −k i | <1, then k i + 1 approximates the root of P1.

(d)hash(ki+1)=h、またはhash(ki+1+1)=h、hash(ki+1−1)=hであり、ここでhが暗号化ステップ(4)におけるh値である場合、このステップにおいて計算されたki+1が、暗号化ステップにおけるしきい値秘密鍵のファクタkであり、ステップ(f)に飛ぶ;これがイコールでない場合には、数の根を見つけるためのアルゴリズムは無く、ステップ(e)に入る。前記ハッシュアルゴリズムは本発明において片道のアルゴリズムであり、つまり、データが計算された後にオリジナルデータが逆に導出されず、従って、伝送される前と後にデータが古いか否かを比較することが必要である場合には、伝送前と後にハッシュ値の比較を行うことだけが必要とされる。 (D) hash (k i + 1 ) = h, or hash (k i + 1 +1) = h, hash (k i + 1 −1) = h, where h is the h value in the encryption step (4), The k i + 1 computed in this step is the threshold secret key factor k in the encryption step and jumps to step (f); if this is not equal, there is no algorithm to find the root of the number, Step (e) is entered. The hash algorithm is a one-way algorithm in the present invention, that is, the original data is not derived in reverse after the data is calculated, so it is necessary to compare whether the data is old before and after transmission. In this case, it is only necessary to compare hash values before and after transmission.

(e)kがステップ(d)において見つけられない場合、これはP0が複数の根を有することを意味し、他の実際の根が以下の方法によって得られる。   (E) If k is not found in step (d), this means that P0 has multiple roots, and other actual roots are obtained by the following method.

ステップ(d)において得られた根ki+1を新しいkとして使用する。
=−C’,b=(−1)k−1×C’m−k+k×bk−1とすると(ここでk=1,2,・・・,m−1である)、新たな多項式f(k)=b×km−1+b×km−2+・・・+bn−1(P2)が生じる;
上述のステップb〜cを使用して、新たな式P2の実際の根を計算し、従ってP0の他の実際のルートが得られる。
The root k i + 1 obtained in step (d) is used as the new k 0 .
If b 0 = −C ′ m , b k = (− 1) k−1 × C ′ m−k + k 0 × b k−1 (where k = 1, 2,..., m−1) A new polynomial f (k) = b 0 × k m−1 + b 1 × k m−2 +... + B n−1 (P2) occurs;
Using the steps b to c described above, the actual root of the new equation P2 is calculated, thus obtaining another actual route for P0.

このステップ(e)によってP0の全ての実際の根を計算し、ステップ(e)が行われる度にチェックステップ(d)をチェックし、実際の秘密鍵ファクタが得られたか否かを定め、しきい値秘密鍵のファクタkが得られる。   This step (e) calculates all the actual roots of P0 and checks step (d) each time step (e) is performed to determine whether an actual secret key factor has been obtained; The factor k of the threshold secret key is obtained.

(f)暗号文パラグラフにおける秘密鍵のファクタkを得た後、E0をEmに代入し返し、第1のソフトウェア暗号文C,C,・・・,Cを、第2のソフトウェア暗号文C’,C’,・・・,C’から復元する。 After obtaining a factor k of the secret key in (f) cipher text paragraph, returns by substituting E0 to Em, the first software cipher text C 1, C 2, ···, a C m, the second of software encryption Restored from sentences C ′ 0 , C ′ 1 ,..., C ′ m .

n個のパラグラフC’上でステップa〜fを行い、秘密鍵暗号文PSKを解読するのに必要なしきい値秘密鍵の全てのファクタkを得て、kを使用する全ての暗号文C’を復元し、第1のソフトウェア暗号文を形成する。   Steps a to f are performed on n paragraphs C ′ to obtain all factors k of the threshold secret key necessary for decrypting the secret key ciphertext PSK, and all ciphertext C ′ using k. To form a first software ciphertext.

ステップ202は、しきい値秘密鍵のt個のファクタを復元した後、
=(x,p(x))、1≦i≦t、第2の暗号解読モジュールによって、t個のkを使用して新たな多項式を形成する。

Figure 2010528511
ここでy=P(x)であり、xおよびxは復元されたしきい値秘密鍵ファクタペアにおいてxであり、ここでi≠kであり、最終的にx=0とすると、P(0)=aが得られる。 Step 202 restores t factors of the threshold secret key,
K i = (x i , p n (x i )), 1 ≦ i ≦ t, the second decryption module uses t k to form a new polynomial.
Figure 2010528511
Here is y k = P n (x k ), x i and x n are x i in the restored threshold secret key factor pair, where a i ≠ k, finally x = 0 Then, P n (0) = a 0 is obtained.

第1のソフトウェア暗号文においてPSKを抽出し、aを、秘密鍵暗号文PSKを暗号解読するための秘密鍵として使用し、暗号化されたソフトウェアを暗号解読するために第1の秘密鍵SKを得る。 Extract the PSK in the first software ciphertext, use a 0 as the secret key for decrypting the secret key ciphertext PSK, and the first secret key SK to decrypt the encrypted software Get.

ステップ203、SKを用いて、第1の暗号化モジュールによって、暗号化されたソフトウェアを暗号解読する。これによって元来のソフトウェア平文が得られる。   Step 203, SK is used to decrypt the encrypted software by the first encryption module. This provides the original software plaintext.

CPUが、このソフトウェア平文に従って作動する。   The CPU operates according to this software plaintext.

本発明の暗号化装置の概略的なダイヤグラムが図3に示されている。この装置は第1の暗号化モジュール、第2の暗号化モジュールおよびカプセル化モジュールを含み;前記第1の暗号化モジュールは第1の秘密鍵SKを用いてソフトウェア平文を第1のソフトウェア暗号文に暗号化し;前記第1の暗号化モジュールと接続されている前記第2の暗号化モジュールはしきい値秘密鍵のn個のファクタを用いて第2の暗号化モジュールを形成し、前記第1の秘密鍵SKを秘密鍵暗号文PSKに、第2の秘密鍵を用いて暗号化し、前記秘密鍵暗号文PSKを前記第1のソフトウェア暗号文内に格納し;前記第2の暗号化モジュールに接続されている前記カプセル化モジュールは、前記第1のソフトウェア暗号文をn個のパラグラフに分け、しきい値秘密鍵の前記ファクタを前記パラグラフにスプライス接合し、第2のソフトウェア暗号文を形成する。   A schematic diagram of the encryption device of the present invention is shown in FIG. The apparatus includes a first encryption module, a second encryption module, and an encapsulation module; the first encryption module converts a software plaintext to a first software ciphertext using a first secret key SK. Encryption; the second encryption module connected to the first encryption module forms a second encryption module using n factors of a threshold secret key, and the first encryption module The private key SK is encrypted in the private key ciphertext PSK using the second private key, and the private key ciphertext PSK is stored in the first software ciphertext; connected to the second encryption module The encapsulated module divides the first software ciphertext into n paragraphs, splices the factor of the threshold secret key into the paragraphs; To form a software cipher text.

本発明の暗号解読装置の概略的なダイヤグラムが図4に示されている。この装置はカプセル除去モジュール、第2の暗号解読モジュールおよび第1の暗号解読モジュールを含んでいる;前記カプセル除去モジュールは、第2のソフトウェア暗号文を第1のソフトウェア暗号文にカプセル除去し、ランダムに第2のソフトウェア暗号文のn個のパラグラフからしきい値秘密鍵のt個のファクタを選択し;前記カプセル除去モジュールに接続されている前記第2の暗号解読モジュールはしきい値秘密鍵の前記t個のファクタに従って第2の秘密鍵を形成し、この第2の秘密鍵を用いて秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読し;前記第2の暗号解読モジュールに接続されている前記第1の暗号解読モジュールは、第1のソフトウェア暗号文を前記第1の秘密鍵SKを用いて暗号解読し、ソフトウェア平文を得る。   A schematic diagram of the decryption apparatus of the present invention is shown in FIG. The apparatus includes a decapsulation module, a second decryption module, and a first decryption module; the decapsulation module decapsulates a second software ciphertext into a first software ciphertext, and randomly Select t factors of the threshold secret key from n paragraphs of the second software ciphertext; the second decryption module connected to the decapsulation module Forming a second secret key according to the t factors and decrypting the secret key ciphertext PSK into the first secret key SK using the second secret key; connected to the second decryption module Wherein the first decryption module decrypts the first software ciphertext using the first secret key SK, That.

本発明の装置の概略的な作動ダイヤグラムが図5に示されている。これは記憶媒体からソフトウェアをロードするためのローダーおよび、図4に示された暗号化装置も含んでいる。ここでは同じ部分の冗長的な記述を繰り返さない。ローダーは第2のソフトウェア暗号文を記憶媒体(例えばハードディスク)からロードし、前記暗号解読装置に入力する。この暗号解読装置は前記第2のソフトウェア暗号文をソフトウェア平文に変え、これを実行のためにCPUに伝送する。   A schematic operational diagram of the device of the present invention is shown in FIG. This also includes a loader for loading software from the storage medium and the encryption device shown in FIG. Here, the redundant description of the same part is not repeated. The loader loads the second software ciphertext from a storage medium (for example, a hard disk) and inputs it to the decryption device. The decryption device converts the second software ciphertext into software plaintext and transmits it to the CPU for execution.

本発明の効果は次のようなものである。すなわち、実行可能なソフトウェアを暗号化し、クラッカーにとって、ソフトウェアのローディングプロセスを追跡するだけで秘密鍵を得ることを困難にし、ソフトウェアが解読され、逆行分析等の方法でコンパイルされることが阻止される、というものである。これによってソフトウェアの暗号鍵の保護が向上され、クラッカーにとって、ソフトウェアローディングプロセスを追跡することによって、秘密鍵の物理アドレスを得て、この秘密鍵を分析することによってソフトウェアをクラックするという目的を達することが困難になる;さらに本発明は秘密鍵をダイナミックに格納する技術によって、その安全性を高めるためにソフトウェアを暗号化するという、目下使用されているソリューションを改善する。   The effects of the present invention are as follows. That is, encrypting executable software, making it difficult for crackers to obtain a secret key by simply tracking the software loading process, and preventing the software from being decrypted and compiled by methods such as retrograde analysis That's it. This improves the protection of the encryption key of the software and allows the cracker to achieve the goal of cracking the software by obtaining the physical address of the private key by tracking the software loading process and analyzing this private key. In addition, the present invention improves upon the currently used solution of encrypting software to increase its security by a technique for dynamically storing private keys.

上述の特定の実施形態は、単に本発明を説明するために用いられているものであり、本発明をこれに限定するものではない。   The specific embodiments described above are merely used to describe the present invention, and the present invention is not limited thereto.

Claims (9)

ソフトウェアを暗号化する方法であって、当該方法は以下のステップを含んでおり:
ステップ101:第1の暗号化モジュールを用いて記憶媒体内のソフトウェア平文を、第1のソフトウェア暗号文に暗号化し、ここで暗号解読のための秘密鍵は第1の秘密鍵SKであり;
ステップ102:第2の暗号化モジュールによって、しきい値秘密鍵のn個のファクタを用いて、第2の秘密鍵を作成し、ここでnは1よりも大きい正の整数であり、
前記第1の秘密鍵SKを当該第2の秘密鍵を用いて秘密鍵暗号文PSKに暗号化し、当該秘密鍵暗号文PSKを、前記第1のソフトウェア暗号文にスプライス結合し;
ステップ103:カプセル化モジュールを用いて、前記秘密鍵暗号文PSKと前記第1のソフトウェア暗号文を、統合された全体として、n個のパラグラフに分割し、前記しきい値秘密鍵の前記ファクタを前記パラグラフにスプライス結合して、第2のソフトウェア暗号文を形成し、当該第2のソフトウェア暗号文を前記記憶媒体内に格納する、
ことを特徴とする、ソフトウェアを暗号化する方法。
A method for encrypting software, the method comprising the following steps:
Step 101: encrypting the software plaintext in the storage medium into a first software ciphertext using a first encryption module, wherein the secret key for decryption is the first secret key SK;
Step 102: The second encryption module creates a second secret key using n factors of the threshold secret key, where n is a positive integer greater than 1,
Encrypting the first secret key SK into a secret key ciphertext PSK using the second secret key, and splicing the secret key ciphertext PSK to the first software ciphertext;
Step 103: Using an encapsulation module, the secret key ciphertext PSK and the first software ciphertext are divided into n paragraphs as a whole, and the factor of the threshold secret key is Splicing the paragraph to form a second software ciphertext, and storing the second software ciphertext in the storage medium;
A method for encrypting software, characterized in that:
前記ステップ101において特定された前記暗号化方法は、対称暗号アルゴリズムまたは非対称暗号アルゴリズムを含んでいる、請求項1記載のソフトウェア暗号化方法。   The software encryption method according to claim 1, wherein the encryption method specified in step 101 includes a symmetric encryption algorithm or an asymmetric encryption algorithm. 前記ステップ102において使用されるしきい値秘密鍵アルゴリズムは、Shamirしきい値秘密鍵スキーム、またはAsmuth−Bloomしきい値秘密鍵スキームを含んでいる、請求項1記載のソフトウェア暗号化方法。   The software encryption method of claim 1, wherein the threshold secret key algorithm used in step includes a Shamir threshold secret key scheme or an Asmuth-Bloom threshold secret key scheme. 前記ステップ103において、前記カプセル化モジュールが前記秘密鍵暗号文PSKと前記第1のソフトウェア暗号文を統合された全体として、n個のパラグラフフに分割し;Cは前記n個のパラグラフ内のあらゆるパラグラフをあらわし、パラグラフCはブロックC,C,・・・,Cm−1を含み、各パラグラフの長さはしきい値秘密鍵ファクタkの長さと同じであり、以下の式が各パラグラフCで行われ、これはkに相応し:
Figure 2010528511
ここでxは算術的な乗算演算であり、同時に、しきい値秘密鍵ファクタkのハッシュ値hが計算され、C’〜C’の値が結合され、C’が形成され、n個のパラグラフの複数のC’およびその相応するハッシュ値hがスプライス結合され、前記第2のソフトウェア暗号文を形成する、請求項3記載のソフトウェア暗号化方法。
In step 103, the encapsulation module divides the secret key ciphertext PSK and the first software ciphertext as a whole into n paragraphs; C is any of the n paragraphs; Represents a paragraph, and paragraph C includes blocks C 0 , C 2 ,..., C m−1 , the length of each paragraph is the same as the length of the threshold secret key factor k. This is done in paragraph C, which corresponds to k:
Figure 2010528511
Here, x is an arithmetic multiplication operation. At the same time, the hash value h of the threshold secret key factor k is calculated, the values of C ′ 0 to C ′ m are combined, C ′ is formed, and n 4. The software encryption method of claim 3, wherein a plurality of C ′ and the corresponding hash value h of said paragraph are spliced together to form said second software ciphertext.
ソフトウェア暗号解読のための方法であって、ソフトウェアをロードするプロセスの間に以下のステップを含み:
ステップ201:カプセル除去モジュールによって、第2のソフトウェア暗号文のn個のパラグラフからランダムに、しきい値秘密鍵のt個のファクタを選択し、ここでtは1以上であり、n以下であり、nは1より大きい正の整数であり;前記第2のソフトウェア暗号文から第1のソフトウェア暗号文および秘密鍵暗号文PSKを復元し;
ステップ202:前記秘密鍵暗号文PSKを抽出し、前記しきい値秘密鍵の前記t個のファクタに従って第2の暗号解読モジュールによって第2の秘密鍵を作成し、当該第2の秘密鍵を用いて前記秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読し;
ステップ203:第1の暗号解読モジュールによって、前記第1の秘密鍵SKを用いて前記第1のソフトウェア暗号文を暗号解読し、ソフトウェア平文をCPUに送り、ソフトウェアを実行する、
ことを特徴とするソフトウェア暗号解読方法。
A method for software decryption comprising the following steps during the process of loading software:
Step 201: The decapsulation module randomly selects t factors of the threshold secret key from n paragraphs of the second software ciphertext, where t is greater than or equal to 1 and less than or equal to n , N is a positive integer greater than 1; restore the first software ciphertext and the private key ciphertext PSK from the second software ciphertext;
Step 202: Extract the secret key ciphertext PSK, create a second secret key by a second decryption module according to the t factors of the threshold secret key, and use the second secret key Deciphering the secret key ciphertext PSK into the first secret key SK;
Step 203: The first decryption module decrypts the first software ciphertext using the first secret key SK, sends the software plaintext to the CPU, and executes the software.
A software decryption method characterized by the above.
前記ステップ201において、前記カプセル除去モジュールは、前記第2のソフトウェア暗号文の各n個のパラグラフ上で計算を行い:E0〜Emに従ってC,C,・・・,Cm−1を除去し、以下の式を得て、
0=−C’+C’m−1×km−1−C’m−2×km−2+・・・+(−1)m−1×C’(P0)
kのハッシュ値がパラグラフC’の相応するハッシュ値hと等しい場合に、この式におけるkが解かれ、C〜Cm−1の値が、C’〜C’m−1から、kを用いて復元され、C〜Cm−1が結合されてパラグラフCが得られ、当該パラグラフは第1のソフトウェア暗号文と秘密鍵暗号文の統合された全体のn個のパラグラフのうちの1つであり;n個のkが解かれ、第1のソフトウェア暗号文および秘密鍵暗号文PSKが第2のソフトウェア暗号文から復元される、請求項5記載のソフトウェア暗号解読方法。
In step 201, the decapsulation module performs a calculation on each of n paragraphs of the second software ciphertext: C 0 , C 1 ,..., C m−1 are removed according to E0 to Em. And get the following equation:
0 = -C 'm k m + C' m-1 × k m-1 -C 'm-2 × k m-2 + ··· + (- 1) m-1 × C' 0 (P0)
If the hash value of k is equal to the corresponding hash value h of paragraph C ′, k in this equation is solved and the values of C 0 to C m−1 are derived from C ′ 0 to C ′ m−1 , k And C 0 to C m-1 are combined to obtain paragraph C, which is a total of n paragraphs of the total of the first software ciphertext and the secret key ciphertext. 6. The software decryption method according to claim 5, wherein n k are solved, and the first software ciphertext and the private key ciphertext PSK are restored from the second software ciphertext.
前記多項式ニュートン反復方法が、前記式(P0)においてkを解くのに使用される、請求項6記載のソフトウェア暗号解読方法。   The software decryption method of claim 6, wherein the polynomial Newton iteration method is used to solve k in the equation (P0). ソフトウェア暗号化装置であって、
当該装置は第1の暗号化モジュール、第2の暗号化モジュールおよびカプセル化モジュールを含み;
前記第1の暗号化モジュールは第1の秘密鍵SKを用いてソフトウェア平文を第1のソフトウェア暗号文に暗号化し;
前記第1の暗号化モジュールと接続されている前記第2の暗号化モジュールは、しきい値秘密鍵のn個のファクタを用いて第2の暗号化モジュールを形成し、前記第1の秘密鍵SKを秘密鍵暗号文PSKに、前記第2の秘密鍵を用いて暗号化し、前記秘密鍵暗号文PSKを前記第1のソフトウェア暗号文内に格納し;
前記第2の暗号化モジュールと接続されている前記カプセル化モジュールは、前記第1のソフトウェア暗号文をn個のパラグラフに分割し、前記しきい値秘密鍵の前記ファクタを、前記パラグラフにスプライス接合し、第2のソフトウェア暗号文を形成する、
ことを特徴とするソフトウェア暗号化装置。
A software encryption device,
The apparatus includes a first encryption module, a second encryption module, and an encapsulation module;
The first encryption module encrypts software plaintext into a first software ciphertext using a first secret key SK;
The second encryption module connected to the first encryption module forms a second encryption module using n factors of a threshold secret key, and the first secret key Encrypting SK into a secret key ciphertext PSK using the second secret key, and storing the secret key ciphertext PSK in the first software ciphertext;
The encapsulation module connected to the second encryption module divides the first software ciphertext into n paragraphs and splices the factor of the threshold secret key to the paragraphs. And forming a second software ciphertext,
A software encryption device.
ソフトウェア暗号解読装置であって、
当該装置はカプセル除去モジュール、第2の暗号解読モジュールおよび第1の暗号解読モジュールを含み;
前記カプセル除去モジュールは、第2のソフトウェア暗号文を、第1のソフトウェア暗号文と秘密鍵暗号文PSKにカプセル除去し、ランダムに第2のソフトウェア暗号文のn個のパラグラフから、しきい値秘密鍵のt個のファクタを選択し;
前記カプセル除去モジュールに接続されている前記第2の暗号解読モジュールは、前記しきい値秘密鍵の前記t個のファクタに従って第2の秘密鍵を作成し、当該第2の秘密鍵を用いて秘密鍵暗号文PSKを第1の秘密鍵SKに暗号解読し;
前記第2の暗号解読モジュールに接続されている前記第1の暗号解読モジュールは、前記第1のソフトウェア暗号文を前記第1の秘密鍵SKを用いて暗号解読し、ソフトウェア平文を得て、当該ソフトウェア平文をCPUに送り、ソフトウェアが実行される、
ことを特徴とするソフトウェア暗号解読装置。
A software decryption device,
The apparatus includes a decapsulation module, a second decryption module, and a first decryption module;
The decapsulation module decapsulates the second software ciphertext into the first software ciphertext and the secret key ciphertext PSK, and randomly generates a threshold secret from n paragraphs of the second software ciphertext. Select t factors of the key;
The second decryption module connected to the decapsulation module creates a second secret key according to the t factors of the threshold secret key, and uses the second secret key to create a secret Decrypting the key ciphertext PSK into the first secret key SK;
The first decryption module connected to the second decryption module decrypts the first software ciphertext using the first secret key SK, obtains a software plaintext, and Software plaintext is sent to the CPU and the software is executed.
A software decryption device characterized by that.
JP2010508801A 2007-05-23 2008-05-14 Software encryption method, software decryption method, software encryption device, and software decryption device Expired - Fee Related JP5167348B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710107636.6 2007-05-23
CN2007101076366A CN101311942B (en) 2007-05-23 2007-05-23 Software encryption and decryption method and encryption and decryption device
PCT/EP2008/055912 WO2008141992A1 (en) 2007-05-23 2008-05-14 Method and apparatus for encrypting and decrypting software

Publications (2)

Publication Number Publication Date
JP2010528511A true JP2010528511A (en) 2010-08-19
JP5167348B2 JP5167348B2 (en) 2013-03-21

Family

ID=39590378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010508801A Expired - Fee Related JP5167348B2 (en) 2007-05-23 2008-05-14 Software encryption method, software decryption method, software encryption device, and software decryption device

Country Status (4)

Country Link
EP (1) EP2150917A1 (en)
JP (1) JP5167348B2 (en)
CN (1) CN101311942B (en)
WO (1) WO2008141992A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104980918B (en) * 2014-04-04 2019-09-17 阿里巴巴集团控股有限公司 Bootstrap information transmission provides the method and device of service based on beacon
RU2710670C2 (en) * 2014-12-24 2019-12-30 Конинклейке Филипс Н.В. Cryptographic system and method
CN106330435A (en) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 Key transformation method and device, and terminal
CN106599628B (en) * 2016-12-08 2019-04-02 合肥康捷信息科技有限公司 A kind of Python byte code files guard method based on module hook
CN108880812B (en) * 2017-05-09 2022-08-09 北京京东尚科信息技术有限公司 Method and system for data encryption
CN107248914B (en) * 2017-08-14 2020-12-15 四川长虹电器股份有限公司 Novel symmetric encryption system and encryption method on iOS device
CN107579962B (en) * 2017-08-24 2019-04-30 中链科技有限公司 A kind of method and device of source code encryption and decryption
CN108270574B (en) * 2018-02-11 2021-02-09 浙江中控技术股份有限公司 Safe loading method and device for white list library file
CN108964912B (en) * 2018-10-18 2022-02-18 深信服科技股份有限公司 PSK generation method, PSK generation device, user equipment, server and storage medium
CN110166236B (en) * 2019-05-31 2022-01-18 北京中金国信科技有限公司 Key processing method, device and system and electronic equipment
CN110289955A (en) * 2019-06-25 2019-09-27 杭州趣链科技有限公司 A kind of key management method for serving certificate agency based on threshold cryptography model
CN110535642B (en) * 2019-09-02 2022-09-13 北京智游网安科技有限公司 Method for distributing storage keys, intelligent terminal and storage medium
CN111310211A (en) * 2020-02-19 2020-06-19 成都三零凯天通信实业有限公司 Method for encrypting database by using SM4 algorithm
CN112565400A (en) * 2020-12-03 2021-03-26 东北大学 Cooperative resource distribution system and method based on IPv6 campus network
CN112464270A (en) * 2020-12-30 2021-03-09 广汽本田汽车有限公司 Bidding file encryption and decryption method, equipment and storage medium
CN112926074B (en) * 2021-03-26 2022-08-23 成都卫士通信息产业股份有限公司 SM9 key thresholding generation method, device, equipment and storage medium
CN113094664B (en) * 2021-04-09 2022-11-04 每日互动股份有限公司 System for preventing android application program from being decompiled
CN116405293B (en) * 2023-04-07 2023-09-01 光谷技术有限公司 Data encryption storage method of safe operation and maintenance system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61177479A (en) * 1985-02-01 1986-08-09 沖電気工業株式会社 Coding key managing system
JPH0721688A (en) * 1993-06-30 1995-01-24 Victor Co Of Japan Ltd Optical recording medium and reproducing device therefor
JPH09258977A (en) * 1996-01-17 1997-10-03 Fuji Xerox Co Ltd Information processor with protection function of software
JPH10327141A (en) * 1997-05-08 1998-12-08 Internatl Business Mach Corp <Ibm> Method and device for enciphering/deciphering data
JPH1155244A (en) * 1997-06-06 1999-02-26 Hitachi Ltd Method for restoring key and device therefor
WO2000041357A1 (en) * 1999-01-08 2000-07-13 Nortel Networks Limited Exchanging a secret over an unreliable network
JP2001043138A (en) * 1996-06-28 2001-02-16 Toshiba Corp Enciphering method, production of recording medium, contents disk, production of contents disk, key managing method and information reproducing device
JP2005275694A (en) * 2004-03-24 2005-10-06 Hitachi Software Eng Co Ltd Method and protection system for protecting program from internal analysis
JP2006091967A (en) * 2004-09-21 2006-04-06 Matsushita Electric Ind Co Ltd Information processor and debugging device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
US6236729B1 (en) * 1997-06-06 2001-05-22 Hitachi, Ltd. Key recovery method and system
AU2001292910B2 (en) * 2000-09-22 2008-05-01 Sca Ipla Holdings, Inc. Systems and methods for preventing unauthorized use of digital content
CN100536393C (en) * 2005-01-14 2009-09-02 中兴通讯股份有限公司 Secret shared key mechanism based user management method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61177479A (en) * 1985-02-01 1986-08-09 沖電気工業株式会社 Coding key managing system
JPH0721688A (en) * 1993-06-30 1995-01-24 Victor Co Of Japan Ltd Optical recording medium and reproducing device therefor
JPH09258977A (en) * 1996-01-17 1997-10-03 Fuji Xerox Co Ltd Information processor with protection function of software
JP2001043138A (en) * 1996-06-28 2001-02-16 Toshiba Corp Enciphering method, production of recording medium, contents disk, production of contents disk, key managing method and information reproducing device
JPH10327141A (en) * 1997-05-08 1998-12-08 Internatl Business Mach Corp <Ibm> Method and device for enciphering/deciphering data
JPH1155244A (en) * 1997-06-06 1999-02-26 Hitachi Ltd Method for restoring key and device therefor
WO2000041357A1 (en) * 1999-01-08 2000-07-13 Nortel Networks Limited Exchanging a secret over an unreliable network
JP2005275694A (en) * 2004-03-24 2005-10-06 Hitachi Software Eng Co Ltd Method and protection system for protecting program from internal analysis
JP2006091967A (en) * 2004-09-21 2006-04-06 Matsushita Electric Ind Co Ltd Information processor and debugging device

Also Published As

Publication number Publication date
CN101311942A (en) 2008-11-26
JP5167348B2 (en) 2013-03-21
WO2008141992A1 (en) 2008-11-27
CN101311942B (en) 2011-08-24
EP2150917A1 (en) 2010-02-10

Similar Documents

Publication Publication Date Title
JP5167348B2 (en) Software encryption method, software decryption method, software encryption device, and software decryption device
JP5184489B2 (en) Method and apparatus for instruction level software encryption
CN106878013B (en) File encryption and decryption method and device
CN105468940B (en) Method for protecting software and device
JP5417092B2 (en) Cryptography speeded up using encrypted attributes
CN110235409A (en) Use the protected RSA signature of homomorphic cryptography or the method for decryption
RU2370897C2 (en) System of block cryptographical protection, using conversions to hide main function of cryptographic protection of each coding cycle
EP3891925B1 (en) A computation device using shared shares
US10572635B2 (en) Automatic correction of cryptographic application program interfaces
JP2006311383A (en) Data managing method, data management system and data managing device
JP5105408B2 (en) Quantum program concealment device and quantum program concealment method
JP5992651B2 (en) ENCRYPTION METHOD, PROGRAM, AND SYSTEM
JP6554103B2 (en) How to protect secret data when used in cryptographic algorithms
Park et al. How to decrypt PIN-Based encrypted backup data of Samsung smartphones
JPWO2006118101A1 (en) CONFIDENTIAL INFORMATION PROCESSING HOST DEVICE AND CONFIDENTIAL INFORMATION PROCESSING METHOD
JP5113630B2 (en) Secret sharing method, program, and apparatus
CN103605927A (en) Encryption and decryption method based on embedded Linux system
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
CN114640443B (en) Online engineering quotation safety interaction method and system
JP7205016B2 (en) Confidential Information Processing System and Confidential Information Processing Method
CN111008837B (en) Block chain account private key recovery method and device, computer equipment and storage medium
JP2009271884A (en) Information processor and information processing program
JP6296589B2 (en) Cryptographic processing system
JP2006237908A (en) Encryption and decryption method of file, and key information extract method and apparatus
JP5268413B2 (en) Disclosure restriction processing apparatus, data processing system, and program

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120806

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121001

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121101

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: 20121122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees