JPS6358538A - Software protecting system - Google Patents

Software protecting system

Info

Publication number
JPS6358538A
JPS6358538A JP61202995A JP20299586A JPS6358538A JP S6358538 A JPS6358538 A JP S6358538A JP 61202995 A JP61202995 A JP 61202995A JP 20299586 A JP20299586 A JP 20299586A JP S6358538 A JPS6358538 A JP S6358538A
Authority
JP
Japan
Prior art keywords
instruction
software
decoder
encrypted
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
Application number
JP61202995A
Other languages
Japanese (ja)
Inventor
Hiroshi Watanabe
坦 渡辺
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61202995A priority Critical patent/JPS6358538A/en
Publication of JPS6358538A publication Critical patent/JPS6358538A/en
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

PURPOSE:To prevent the foul use of software via another computer despite a copying action carried out without notice by allowing the software to run through a specific computer only and leaving no decoded program in an external file or a main memory. CONSTITUTION:An instruction of an original software is partly ciphered by the software of a central processing unit. The instructions to be ciphered are ciphered by means of a key synthesized with an identification symbol ID and an instruction address (n) by rotation, etc., and then outputted to a main memory 10. An instruction executing device 1 decides the address (n) of the instruction to be executed next in order to decode the ciphered software. Then the device 1 extracts the relevant instruction out of the memory 10 and delivers it to an instruction decoder 3. The decoder 3 sends the instruction to a decoder 4 if the instruction code part of said instruction is coded. The decoder 4 decodes the instruction from the symbol ID and the address (n) and sends it back to the decoder 3. The decoder 3 decodes the instruction and sends it to an instruction executing device 2. The device 2 executes the received instruction.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、暗号化された命令列に対する復号化機能を有
する計算機システムのソフトウェア保護方式に関し、特
に、1つの計算機システム上のソフトウェアを、他の計
算機システム上で不正使用することを防止するソフトウ
ェア保護方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a software protection method for a computer system having a decryption function for an encrypted instruction sequence. This invention relates to a software protection method for preventing unauthorized use on a computer system.

〔従来技術〕[Prior art]

パーソナルコンピュータ等の普及に伴い、その装置に対
応したソフトウェアも多数販売されている。しかし、そ
のソフトウェアがコピーされ不正使用されると、製造元
にとっては販売数低下を生じ、制作者にとっては著作権
問題を生じるため、ソフトウェアの不正使用を防止する
方法が種々行われている。
With the spread of personal computers and the like, a large amount of software compatible with these devices is also on sale. However, if the software is copied and used illegally, it will cause a decline in sales for the manufacturer and create copyright problems for the creator, so various methods have been taken to prevent illegal use of the software.

例えば、゛′ソフトウェアセキュリティ、弁上書院。For example, ``Software Security'', Benjo Shoin.

1985年、第28ページ″に記載されている方法では
、外部ファイルに暗号化したプログラムを記録し、その
プログラムを主記憶装置にロードする際に、ローダによ
り復号化して実行している。また、特開昭59−231
650号公報に記載されている方法では、CPUに処理
装置i!識別情報を保持する回路を設け、提供ソフトウ
ェアの命令データが格納される記録媒体において、その
識別情報を削除エリアに保持し、それらの情報を比較チ
ェックすることにより、提供ソフトウェアの無断読み出
しを防止している。
1985, page 28'', an encrypted program is recorded in an external file, and when the program is loaded into the main memory, it is decrypted and executed by the loader. Japanese Patent Publication No. 59-231
In the method described in the No. 650 publication, the CPU is equipped with a processing device i! By installing a circuit that holds identification information, storing the identification information in the deletion area of the recording medium where the instruction data of the provided software is stored, and comparing and checking the information, unauthorized reading of the provided software is prevented. ing.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

上記従来技術においては、主記憶装置に復号化したプロ
グラムを取り出した後は、そのプログラムをコピーする
ことが可能であり、ソフトウェアの不正使用を完全に防
止することができなかった。
In the above-mentioned conventional technology, after the decrypted program is retrieved into the main storage device, it is possible to copy the program, and it is not possible to completely prevent unauthorized use of the software.

本発明の目的は、このような問題点を改善し、ソフトウ
ェアの不正使用を完全に防止することが可能なソフトウ
ェア保護方式を提供することにある。
An object of the present invention is to provide a software protection method that can improve these problems and completely prevent unauthorized use of software.

〔問題を解決するための手段〕[Means to solve the problem]

上記目的を達成するため、本発明のソフトウェア保護方
式は、命令実行器と命令解読器とを備えた複数の計算機
システムにおいて、提供ソフトウェアの一部の命令を暗
号化する手段と、それぞれの計算機ごとに固有であり、
その暗号化手段により、予め一部の命令が暗号化されて
いる該ソフトウェアを、暗号化前の原ソフトウェアに復
元するため、その暗号化された命令を復号化する手段(
復号器)とを設け、その暗号化手段により、それらの計
算機毎に設定した固有の識別記号と、その暗号化の対象
となる命令の命令番地情報とから合成したキーを用いて
、原ソフトウェアの一部の命令を予め暗号化し、上記復
号器は、その識別記号を内蔵し、その識別記号と命令番
地情報とからそのキーを合成して、そのキーにより、暗
号化された命令を復号化し、上記命令解読器により、復
号化された該ソフトウェアの命令を解読して、上記命令
実行器により実行することに特徴がある。
In order to achieve the above object, the software protection method of the present invention provides means for encrypting some instructions of provided software in a plurality of computer systems equipped with an instruction executor and an instruction decoder, and is specific to
In order to restore the software, in which some instructions have been encrypted in advance, to the original software before encryption, means for decoding the encrypted instructions (
The original software is decrypted using a key synthesized from the unique identification symbol set for each computer and the instruction address information of the instruction to be encrypted. A part of the instructions is encrypted in advance, and the decoder has an identification symbol built-in, synthesizes the key from the identification symbol and the instruction address information, and decodes the encrypted instruction using the key, The present invention is characterized in that the instruction decoder decodes the decoded instructions of the software, and the instruction executor executes the decoded instructions.

また、上記キーは、上記識別記号と番地情報とに対し、
論理和、論理積、排他的論理和、混ぜ合わせ2区画分割
、および、それらの組み合わせを行って合成し、上記暗
号化、および復号化の操作は、そのキーを用い、回転2
反転、排他的論理和。
In addition, the above key corresponds to the above identification symbol and address information.
Synthesis is performed by performing logical sum, logical product, exclusive disjunction, mixing two-part partitioning, and combinations thereof, and the above encryption and decryption operations are performed using the key and rotation two.
Inversion, exclusive or.

区画分割、および、それらの組み合わせにより行うこと
に特徴がある。  ゛ さらに、上記復号器のみが1つのLSIチップに内蔵さ
れるか、あるいは、上記命令実行器、命令解読器、およ
び復号器が1つのLSIチップに内蔵されることに特徴
がある。
It is characterized by partitioning and combinations thereof. Furthermore, the present invention is characterized in that only the decoder is built into one LSI chip, or the instruction executor, instruction decoder, and decoder are built into one LSI chip.

〔作  用〕[For production]

本発明においては、それぞれの計算機システムは、主記
憶装置から一部の命令が暗号化されたソフトウェアを取
り出して実行する。命令解読器は、取り出したソフトウ
ェアの命令が暗号化されているか否かを判定し、暗号化
されていなければ、命令実行器がそのまま実行する。暗
号化さ九でいれば、復号器により復号化し、同様に実行
する。
In the present invention, each computer system retrieves software in which some instructions are encrypted from the main memory and executes it. The instruction decoder determines whether the retrieved software instruction is encrypted or not, and if it is not encrypted, the instruction executor executes it as is. If it is encrypted, it is decrypted by the decoder and executed in the same way.

また、それぞれの計算機は、各々に固有の識別記号を持
ち、その復号器により復号化を行う場合。
Also, each computer has its own unique identification symbol, and the decoding is performed by its decoder.

その識別記号と暗号化された命令の命令番地情報とから
合成したキーを用いる。さらに、記憶装置に格納された
ソフトウェアは、そのキーにより、一部の命令を予め暗
号化されている。
A key synthesized from the identification symbol and the instruction address information of the encrypted instruction is used. Furthermore, some instructions of the software stored in the storage device are encrypted in advance using the key.

なお、それらの識別記号、および命令番地情報は、暗号
化された命令を受けた時点で確定しているため、その命
令を一意的に復元でき、誤動作することがない。
Note that since the identification symbol and instruction address information are determined at the time the encrypted instruction is received, the instruction can be uniquely restored and malfunctions will not occur.

〔実施例〕〔Example〕

本発明の一実施例を図面により説明する。 An embodiment of the present invention will be described with reference to the drawings.

第1図は本発明の第1の実施例における計算機システム
の構成図である。
FIG. 1 is a configuration diagram of a computer system according to a first embodiment of the present invention.

本実施例の計算機システムは、命令実行装置1゜および
主記憶装置10を備え、命令実行装置1は、命令実行器
2.命令解読器3.および復号器4を備える。また、命
令実行器2.命令解読器3.および復号器4は、1つの
LSIチップに内蔵されている。
The computer system of this embodiment includes an instruction execution device 1.degree. and a main storage device 10, and the instruction execution device 1 includes instruction execution devices 2. Instruction decoder 3. and a decoder 4. In addition, the instruction executor 2. Instruction decoder 3. and decoder 4 are built into one LSI chip.

復号器4は、その計算機システムに固有の識別記号を格
納し、主記憶装置10は、部分的1;暗号化された命令
列を格納している。
The decoder 4 stores an identification symbol unique to the computer system, and the main memory 10 stores a partially encrypted instruction sequence.

第2図は、本発明の第2の実施例における計算機システ
ムの構成図である。
FIG. 2 is a configuration diagram of a computer system in a second embodiment of the present invention.

本実施例の計算機システムは、命令実行装置11、復号
器12.および主記憶装置10を備え、さらに、命令実
行装置11は、命令実行器2.および命令解読器3を備
える@京だ、復号器12は、命令実行装置11から分前
され、1つのLSIチップに内蔵されている。このため
、命令実行器=11の製造コストを押さえ、復号器4の
みを取り外して交換することができる。
The computer system of this embodiment includes an instruction execution device 11, a decoder 12. and a main storage device 10, and the instruction execution device 11 further includes an instruction execution device 2. The decoder 12 is separated from the instruction execution device 11 and is built into one LSI chip. Therefore, the manufacturing cost of the instruction executor 11 can be reduced, and only the decoder 4 can be removed and replaced.

第1の実施例と同様に、復号器12は、その計算機シス
テムに固有の識別記号を格納し、主記憶装置10は、部
分的に暗号化された命令列を格納している。
As in the first embodiment, the decoder 12 stores an identification symbol unique to the computer system, and the main memory 10 stores a partially encrypted instruction sequence.

第5図は5本発明におけるキーの合成例図である。FIG. 5 is a diagram showing an example of combining keys in the present invention.

本実施例のキーは、それぞれの計算機システムに固有の
識別記号IDと、暗号化の対象となる命令の命令番地情
報nとから合成する。
The key in this embodiment is synthesized from an identification code ID unique to each computer system and instruction address information n of an instruction to be encrypted.

合成されるキーは、(1)のように、その識別記号ID
と命令番地情報nとの論理積をとって得たキー153.
(n)のように、それらの論理和をとって得たキー16
3.および、(III)のように、その識別記号ID、
および命令番地情報nをそれぞれ小区画に分け、その小
区画に分けられたm51+J記号dl”’−dL+およ
び命令番地情報n1〜nt  を交互に混ぜ合わせて得
たキー173である。また、(IV)のように、こうし
て作成したキー180を1次キーとし、さらに、その1
次キー180を複数の小区画に分け、その中からいくつ
かの区画を取り出して2次キー181〜183とする方
法もある。
The key to be synthesized is its identification symbol ID, as in (1)
and the instruction address information n.
The key 16 obtained by taking the logical sum of them like (n)
3. and, as in (III), its identification symbol ID,
and instruction address information n are divided into small sections, and the key 173 is obtained by alternately mixing m51+J symbol dl"'-dL+ divided into the small sections and instruction address information n1 to nt. Also, (IV ), the key 180 created in this way is the primary key, and
Another method is to divide the secondary key 180 into a plurality of small sections and take out some of the sections to use as the secondary keys 181 to 183.

なお、論理和の代りに排他的論理和をとることもでき、
さらに、上記の方法を組み合わせて新らしいキーを合成
することも可能である。
Note that exclusive disjunction can be used instead of disjunction,
Furthermore, it is also possible to synthesize a new key by combining the above methods.

第6図は、本発明における命令列の暗号化、および復号
化の説明図である。
FIG. 6 is an explanatory diagram of encryption and decryption of an instruction sequence in the present invention.

本実施例の計算機システムは、第5図のように合成され
たキーを用いて、命令列の暗号化、および復号化を行う
The computer system of this embodiment encrypts and decrypts a sequence of instructions using keys synthesized as shown in FIG.

第5図では、各命令が暗号化された命命であるか否かを
示す部分は表示していないが、その部分は各命令の前部
あるいは後部の特定位置にある。
In FIG. 5, a part indicating whether each command is an encrypted command is not shown, but this part is located at a specific position at the front or rear of each command.

すなわち、第5図では、各命令のうち、暗号化された命
令であるか否かを示す部分を除いた残りの部分の暗号化
と復合化の実施例を示す。
That is, FIG. 5 shows an example of encrypting and decoding the remaining part of each instruction except for the part indicating whether the instruction is encrypted or not.

(1)では、キーkが示すビット数だけ、原命令201
の内容a、bを左へ回転させて、暗号化された命令20
2を得る。その命令202を復号化するときは、キーk
が示すビット数だけ、右へ回転させて原命令201を得
る。
In (1), the original instruction 201 is
Rotate the contents a and b to the left to get the encrypted instruction 20
Get 2. When decoding the instruction 202, the key k
The original instruction 201 is obtained by rotating it to the right by the number of bits indicated by .

(n)では、原命令211の内容a、bを、暗号キーk
が示すビット数だけ右へ回転させて、暗号化された命令
212を得る。その命令212を復号化するときは、キ
ーkが示すビット数だけ、左へ回転させて原命令211
を得る。
(n), the contents a and b of the original instruction 211 are converted to the encryption key k.
The encrypted instruction 212 is obtained by rotating it to the right by the number of bits indicated by . When decoding the instruction 212, the original instruction 212 is rotated to the left by the number of bits indicated by the key k.
get.

(III)では、2つのキーに1+およびに2を用いる
。原命令221の内容a、b、eの中、キーに1が示す
ビット数からキーに2が示すビット数までの区間を反転
させて、暗号化された命令222を得る。その命令22
2を復号化するときは、キーに、が示すビット数からキ
ーに2が示すビット数までの区間を再度反転させて、原
命令221を得る。
In (III), 1+ and 2 are used for the two keys. Among contents a, b, and e of the original instruction 221, the encrypted instruction 222 is obtained by inverting the section from the number of bits indicated by 1 in the key to the number of bits indicated by 2 in the key. That command 22
When decoding 2, the interval from the number of bits indicated by key to the number of bits indicated by 2 is again inverted to obtain the original instruction 221.

(IV)では、原命令231の内容Xに対し、キーkに
よる排他的論理和をとって、暗号化された命令232を
得る。その命令232を復号化するときは、その命令2
32に対し、再度キーkによる排他的論理和をとって、
原命令231を得る。
In (IV), the content X of the original instruction 231 is subjected to exclusive OR using the key k to obtain the encrypted instruction 232. When decoding the instruction 232, the instruction 2
32, take the exclusive OR with key k again,
The original instruction 231 is obtained.

(V)では、3つのキーkGy kl + k2を用い
、内容a、b、cで示される原命令241を暗号化する
。原命令241の中、キーに1が示すビット数からキー
に2が示すビット数までの区間すに対し、キーに、によ
る排他的論理和をとって、暗号化された命令242を得
る。その命令242を復号化するときは、その命令24
2の中、キーに□が示すビット数からキーに2が示すビ
ット数までの区間(b  XORko)に対し、キーに
、による排他的論理和をとって、原命令241を得る。
In (V), the original instruction 241 indicated by contents a, b, and c is encrypted using three keys kGy kl + k2. In the original instruction 241, the encrypted instruction 242 is obtained by exclusive ORing the range from the number of bits indicated by 1 in the key to the number of bits indicated by 2 in the key. When decoding the instruction 242, the instruction 24
2, the original instruction 241 is obtained by performing exclusive OR on the interval (b XORko) from the number of bits indicated by □ in the key to the number of bits indicated by 2 in the key.

このように、暗号化のキーは、識別記号と命令番地情報
とから実行時に合成されるため、識別記号を知らずに復
号化することは困難であり、また、暗号化の対象は、ソ
フトウェアの命令列の一部であるため、暗号化に伴う実
行速度の低下は殆んどない、さらに、復号化の処理も論
理演算や回転等の単純操作であるため、高速な処理が可
能である。
In this way, the encryption key is synthesized from the identification symbol and instruction address information during execution, so it is difficult to decrypt without knowing the identification symbol. Since it is a part of a sequence, there is almost no decrease in execution speed due to encryption.Furthermore, since decryption processing is a simple operation such as logical operation or rotation, high-speed processing is possible.

第4図は1本発明における命令の暗号化を示すフローチ
ャートである。
FIG. 4 is a flowchart showing the encryption of instructions according to the present invention.

第1図、および第2図のように1本実施例の計算機シス
テムにおける主記憶袋2!10は、一部の命令が暗号化
されたソフトウェアを格納している。
As shown in FIGS. 1 and 2, the main memory bag 2!10 in the computer system of this embodiment stores software in which some instructions are encrypted.

なお、そのように暗号化される前の原ソフトウェアの命
令の一部は、中央処理装置のソフトウェアによって暗号
化される。暗号化が行なわれる命令は、実行回数は少い
が確実に実行される命令であり1例えば、副プログラム
呼び出し命令、ジャンプ命令、スタックポインタ設定命
令等である。
Note that a part of the instructions of the original software before being encrypted is encrypted by the software of the central processing unit. Instructions to be encrypted are instructions that are executed only a small number of times but are reliably executed, such as a subprogram call instruction, a jump instruction, and a stack pointer setting instruction.

ソフトウェアを暗号化する場合は、暗号化の対象となる
ソフトウェアの選定、およびセット等の初期処理を行い
(121)、そのソフトウェアの次命令を取り出す(1
22)。
When encrypting software, select the software to be encrypted, perform initial processing such as setting (121), and extract the next instruction of the software (121).
22).

次に、その命令が暗号化するべき命令か否かを判定しく
123)、暗号化しない命令ならば、その命令に処理を
加えず、主記憶装置10に出力する(126)。暗号化
すべき命令ならば、その計算機システムに固有の識別記
号IDと、その命令の命令番地nとから、第5図のよう
に、論理和、論理積、排他的論理和、混ぜ合わせ9区画
分割、および、それらの組み合わせ等によってキーを合
成しく124)、そのキーを用い、第6図のように、回
転2反転、排他的論理和2区画分割、および、それらの
組み合わせ等によって、その命令を暗号化する(125
)。
Next, it is determined whether the instruction should be encrypted (123), and if the instruction is not to be encrypted, the instruction is output to the main storage device 10 without being processed (126). If the instruction is to be encrypted, it is divided into 9 sections based on the identification code ID unique to the computer system and the instruction address n of the instruction, as shown in Figure 5, using logical sum, logical product, exclusive disjunction, and mixing. , and a combination thereof (124), and using that key, as shown in Figure 6, execute the command by rotation 2 inversion, exclusive OR 2 partitioning, and their combination. Encrypt (125
).

こうして暗号化した結果を、主記憶装置1(DC出力し
く126)、次に暗号化すべき命令があるか否かを判定
する(127)、次に暗号化すべき命令があれば、次の
命令を取り出しく122)、なければ、終了処理を行う
(128)。
The encrypted result is stored in the main memory 1 (DC output block 126), and it is determined whether there is an instruction to be encrypted next (127). If there is an instruction to be encrypted next, the next instruction is executed. If it is not retrieved (122), end processing is performed (128).

第3図は、本発明の第1.および第2の実施例の計算機
システムにおける命令の復号化を示すフローチャートで
ある。
FIG. 3 shows the first embodiment of the present invention. 3 is a flowchart showing instruction decoding in the computer system of the second embodiment.

第4図のように暗号化されたソフトウェアを復号化する
ため、第1図のように、命令実行器[1゜11は5次に
実行すべき命令の命令番地nを決定しく101)、その
命令を主記憶装置10から取り出して、命令解読器3に
渡す(102)。
In order to decrypt software encrypted as shown in Fig. 4, as shown in Fig. 1, the instruction executor [1. The instruction is retrieved from the main memory 10 and passed to the instruction decoder 3 (102).

命令解読器3は、その命令の命令コード部を見て、暗号
化された命令か否かを判定しく103)、暗合化されて
いなければ、その命令を解読し、命令実行器2はその命
令を実行する(107)。
The instruction decoder 3 looks at the instruction code part of the instruction and determines whether it is an encrypted instruction (103). If it is not encrypted, the instruction is decoded and the instruction executor 2 decodes the instruction. (107).

暗合化されていれば、その命令を復号器4,12へ送る
(104)。復号器4,12は、その計算機に固有の識
別記号IDと命令番地情報nとから、第5図のようにキ
ーを合成し、そのキーを用いて、第6図のように、与え
られた命令を暗号化以前の命令に復合化しく105)、
その復号化された命令を命令解読器3に戻す(106)
If the command is encrypted, the command is sent to the decoder 4, 12 (104). The decoders 4 and 12 synthesize a key as shown in FIG. 5 from the identification code ID unique to the computer and the instruction address information n, and use the key to generate the given code as shown in FIG. 6. decoding the instruction into the instruction before encryption 105);
The decoded instruction is returned to the instruction decoder 3 (106)
.

命令解読器3は、その命令を解読して命令実行器2に伝
え、命令実行器2は、その命令を実行する(107)。
The instruction decoder 3 decodes the instruction and transmits it to the instruction executor 2, and the instruction executor 2 executes the instruction (107).

命令実行器FR1,11は、実行すべき次の命令が残っ
ているか否かを確め(108)、残っていれば、次の命
令の番地を決定しく101)、残っていなければ、処理
を終了する。
The instruction executors FR1 and FR11 check whether the next instruction to be executed remains (108), and if so, determine the address of the next instruction (101); finish.

〔発明の効果〕〔Effect of the invention〕

本発明によれば、ソフトウェアは、特定の計算機上での
み走行可能であり、外部ファイル、および主記憶装置内
に復号化されたプログラムを残さないため、ソフトウェ
アを無断でコピーしても、そのソフトウェアを他の計算
機上で走行することはできない。
According to the present invention, software can only be run on a specific computer and does not leave external files or decrypted programs in the main memory, so even if the software is copied without permission, the cannot be run on other computers.

また、暗号化の操作は、そのソフトウェアの命令列の一
部であり、復号化の手順も単純であるため、これらの処
理についての実行速度の低下は殆んどなく、復号器も安
価に製造することが可能である。
In addition, since the encryption operation is part of the software's instruction sequence and the decryption procedure is simple, there is almost no decrease in execution speed for these processes, and decryptors can be manufactured at low cost. It is possible to do so.

このように、計算機の実行速度、および製造コストに負
荷を加えることなく、ソフトウェアの不正使用を完全に
防ぐことができる。
In this way, unauthorized use of the software can be completely prevented without increasing the execution speed of the computer or increasing the manufacturing cost.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の第1の実施例における計算機システム
の構成図、第2図は本発明の第2の実施例における計算
機システムの構成図、第3図は本発明の第1.および第
2の実施例の計算機システムにおける命令の復号化を示
すフローチャート。 第4図は本発明における命令の暗号化を示すフローチャ
ート、第5図は本発明におけるキーの合成側図、第6図
は本発明における命令列の暗号化。 および復号化の説明図である。 1.11:命令実行装置、2:命令実行器、3:命令解
読器、4,12 :復号器、lO:主記憶装置。 153:論理積によるキー、163:論理和によるキー
、173:混ぜ合わせによるキー、180:1次キー、
181〜183:1次キーの分割による2次キー、20
1,211,221,231゜241:原命令、202
,212,222,232゜242=暗号化された命令
+ kt ko ’=に2 ’キl al bHCg 
X :命令の内容、ID、d□〜dl:識別記号yn、
nl””n工:命令番地情報。 第     1     図 第     2     図
FIG. 1 is a block diagram of a computer system according to a first embodiment of the present invention, FIG. 2 is a block diagram of a computer system according to a second embodiment of the present invention, and FIG. 3 is a block diagram of a computer system according to a second embodiment of the present invention. and a flowchart showing instruction decoding in the computer system of the second embodiment. FIG. 4 is a flowchart showing the encryption of instructions according to the present invention, FIG. 5 is a view of the key synthesis side according to the present invention, and FIG. 6 is a diagram showing the encryption of a sequence of instructions according to the present invention. and is an explanatory diagram of decoding. 1.11: instruction execution device, 2: instruction execution device, 3: instruction decoder, 4, 12: decoder, lO: main storage device. 153: key by logical product, 163: key by logical sum, 173: key by mixing, 180: primary key,
181-183: Secondary key by division of primary key, 20
1,211,221,231゜241: Original command, 202
, 212, 222, 232° 242 = encrypted instruction + kt ko' = 2' kil al bHCg
X: Instruction content, ID, d□~dl: Identification symbol yn,
nl""n: Instruction address information. Figure 1 Figure 2

Claims (1)

【特許請求の範囲】 1、命令実行器と命令解読器とを備えた複数の計算機シ
ステムの中で、特定の計算機システムのみが提供ソフト
ウェアの利用を許可されるソフトウェア保護方式におい
て、該ソフトウェアの一部の命令を暗号化するための手
段と、それぞれの計算機ごとに固有であり、暗号化され
た該ソフトウェアを、暗号化前の原ソフトウェアに復元
するための復号化を行う手段とを設け、該暗号化手段に
よって、予め原ソフトウェアの一部の命令を暗号化し、
上記解読器は、暗号化された該命令を識別し、該命令を
該復号化手段により復号化して、該原ソフトウェアの命
令を上記命令実行器により実行することを特徴とするソ
フトウェア保護方式。 2、上記複数の計算機システムは、それぞれ固有の識別
記号を上記復号器に内蔵し、上記原ソフトウェアの一部
の命令は、該識別記号と該命令の命令番地情報とから合
成したキーを用いて、予め該暗号化手段により暗号化さ
れ、該復号化手段は、該キーを用いて暗号化された該命
令を復号化することを特徴とする特許請求範囲第1項記
載のソフトウェア保護方式。 3、上記キーは、上記識別記号と上記命令番地情報とに
対して、論理和、論理積、排他的論理和、混ぜ合わせ、
区画分割、および、それらの組み合わせを行い、合成さ
れることを特徴とする特許請求範囲第2項記載の計算機
システム。 4、上記原ソフトウェアの一部の命令の暗号化、および
、上記暗号化された命令の復号化は、上記キーを用い、
回転、反転、排他的論理和、区画分割、および、それら
の組み合わせによって行うことを特徴とする特許請求範
囲第3項記載のソフトウェア保護方式。 5、上記復号化手段は、1つのLSIチップに内蔵され
ることを特徴とする特許請求範囲第1項記載のソフトウ
ェア保護方式。 6、上記命令実行器、命令解読器、および復号手段は、
1つのLSIチップに内蔵されることを特徴とする特許
請求範囲第1項記載のソフトウェア保護方式。
[Claims] 1. In a software protection system in which only a specific computer system among a plurality of computer systems equipped with an instruction executor and an instruction decoder is allowed to use the provided software, A means for encrypting the instructions of the computer, and a means for decrypting the encrypted software to restore it to the original software before encryption, which is unique to each computer, is provided. A part of the instructions of the original software is encrypted in advance using an encryption means,
The software protection system is characterized in that the decryptor identifies the encrypted instruction, decrypts the instruction using the decoding means, and executes the instruction of the original software using the instruction executor. 2. Each of the plurality of computer systems has a unique identification code built into the decoder, and some instructions of the original software are processed using a key synthesized from the identification code and the instruction address information of the instruction. 2. The software protection system according to claim 1, wherein the instruction is encrypted in advance by the encrypting means, and the decrypting means decrypts the encrypted instruction using the key. 3. The above key is used to perform logical OR, AND, EXCLUSIVE OR, mixing,
3. The computer system according to claim 2, wherein the computer system is synthesized by partitioning and combining them. 4. Encrypting some instructions of the original software and decoding the encrypted instructions using the key,
4. The software protection method according to claim 3, wherein the software protection method is performed by rotation, inversion, exclusive OR, partitioning, and combinations thereof. 5. The software protection system according to claim 1, wherein the decoding means is built into one LSI chip. 6. The instruction executor, instruction decoder, and decoding means include:
The software protection system according to claim 1, characterized in that the software protection system is built into one LSI chip.
JP61202995A 1986-08-29 1986-08-29 Software protecting system Pending JPS6358538A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61202995A JPS6358538A (en) 1986-08-29 1986-08-29 Software protecting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61202995A JPS6358538A (en) 1986-08-29 1986-08-29 Software protecting system

Publications (1)

Publication Number Publication Date
JPS6358538A true JPS6358538A (en) 1988-03-14

Family

ID=16466588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61202995A Pending JPS6358538A (en) 1986-08-29 1986-08-29 Software protecting system

Country Status (1)

Country Link
JP (1) JPS6358538A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995029438A1 (en) * 1994-04-22 1995-11-02 Kabushiki Kaisya Advance Data protection system
KR19990075747A (en) * 1998-03-24 1999-10-15 구자홍 Memory copy protection device and method
US6871192B2 (en) * 2001-12-20 2005-03-22 Pace Anti-Piracy System and method for preventing unauthorized use of protected software utilizing a portable security device
JP2013047854A (en) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc Information concealing method and information concealing device
JP2014123323A (en) * 2012-12-21 2014-07-03 Ntt Data Corp Information processing device having software unauthorized use inhibition function, software unauthorized use inhibition method, and program

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (en) * 1975-02-03 1976-08-05
JPS5541598A (en) * 1978-09-14 1980-03-24 Thomas William J Method and apparatus for controlling use of programmable computing machine
JPS5865470A (en) * 1981-10-15 1983-04-19 日本電気株式会社 Software protection circuit
JPS59112341A (en) * 1982-12-18 1984-06-28 Fuji Electric Co Ltd Method for preventing leakage of secret information in software
JPS59173847A (en) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk Method and device for protecting computer software
JPS6083157A (en) * 1983-10-14 1985-05-11 Toshiba Corp One chip microcomputer
JPS6123188A (en) * 1984-07-12 1986-01-31 日本電気株式会社 Cryptographing computer equipment and system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (en) * 1975-02-03 1976-08-05
JPS5541598A (en) * 1978-09-14 1980-03-24 Thomas William J Method and apparatus for controlling use of programmable computing machine
JPS5865470A (en) * 1981-10-15 1983-04-19 日本電気株式会社 Software protection circuit
JPS59112341A (en) * 1982-12-18 1984-06-28 Fuji Electric Co Ltd Method for preventing leakage of secret information in software
JPS59173847A (en) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk Method and device for protecting computer software
JPS6083157A (en) * 1983-10-14 1985-05-11 Toshiba Corp One chip microcomputer
JPS6123188A (en) * 1984-07-12 1986-01-31 日本電気株式会社 Cryptographing computer equipment and system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995029438A1 (en) * 1994-04-22 1995-11-02 Kabushiki Kaisya Advance Data protection system
US5751805A (en) * 1994-04-22 1998-05-12 Kabushiki Kaisya Advance Data-protecting system
KR19990075747A (en) * 1998-03-24 1999-10-15 구자홍 Memory copy protection device and method
US6871192B2 (en) * 2001-12-20 2005-03-22 Pace Anti-Piracy System and method for preventing unauthorized use of protected software utilizing a portable security device
JP2013047854A (en) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc Information concealing method and information concealing device
JP2014123323A (en) * 2012-12-21 2014-07-03 Ntt Data Corp Information processing device having software unauthorized use inhibition function, software unauthorized use inhibition method, and program

Similar Documents

Publication Publication Date Title
US4683968A (en) System for preventing software piracy employing multi-encrypted keys and single decryption circuit modules
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
EP0950941B1 (en) Method of and apparatus for protecting data on storage medium and storage medium
US20050010788A1 (en) System and method for authenticating software using protected master key
US6847948B1 (en) Method and apparatus for secure distribution of software/data
JP3481470B2 (en) System for preventing unauthorized alteration of data and the like and encryption device used together therewith
JPH08335182A (en) File protection system, software utilization system using the same and recording medium to be used for the same
JPH0383132A (en) Software protection control system
EP0008033B1 (en) Microprocessor for executing enciphered programs
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
CA2473122A1 (en) Method and device for protecting information against unauthorised use
JP2002244989A (en) Device driver operating method
JPH08185361A (en) Semiconductor integrated circuit device
JPS6358538A (en) Software protecting system
JPH0997175A (en) Software use control method
JP2696219B2 (en) Information protection method
KR20080096054A (en) Method for writing data by encryption and reading the data thereof
JPS63182758A (en) Information memory
CN113343215A (en) Embedded software authorization and authentication method and electronic equipment
US6049609A (en) Cell array providing non-persistent secret storage through a mutation cycle
JPS59173847A (en) Method and device for protecting computer software
JP2002082732A (en) System and method for prevention against illegal alternation of program code and recording medium with recorded control program thereof
US7174464B1 (en) Method of making a user piece of software secure by means of a processing and secret memorizing unit, and a system constituting an application thereof
JPH043224A (en) Method for managing soft module by ic card
JPS6010336A (en) Monitor system for preventing program stealing