JPS59173847A - Method and device for protecting computer software - Google Patents

Method and device for protecting computer software

Info

Publication number
JPS59173847A
JPS59173847A JP58049290A JP4929083A JPS59173847A JP S59173847 A JPS59173847 A JP S59173847A JP 58049290 A JP58049290 A JP 58049290A JP 4929083 A JP4929083 A JP 4929083A JP S59173847 A JPS59173847 A JP S59173847A
Authority
JP
Japan
Prior art keywords
data
encryption
program
memory
password
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
JP58049290A
Other languages
Japanese (ja)
Inventor
Ryohei Tanemura
種村 良平
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.)
KYODO SYST KAIHATSU KK
OYO SYST KENKYUSHO KK
Original Assignee
KYODO SYST KAIHATSU KK
OYO SYST KENKYUSHO KK
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 KYODO SYST KAIHATSU KK, OYO SYST KENKYUSHO KK filed Critical KYODO SYST KAIHATSU KK
Priority to JP58049290A priority Critical patent/JPS59173847A/en
Publication of JPS59173847A publication Critical patent/JPS59173847A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To protect software perfectly and surely by enciphering a password, calculating cipher code using random number, obtaining exclusive logical sum of this cipher code and the content of record, and registering in a file. CONSTITUTION:When load instruction is generated from the body 10 of a computer to a floppy disk 11, data decoded by a decoding memory 21 are loaded on the RAM of the computer 10 through a contact (a) of a selector 25. In the case of write instruction, data enciphered by an enciphering memory 22 are sent and written to the floppy disk 11 through a contact (a) of a selector 26. The enciphered code is set by a CPU23 for writing cipher code. When selectors 25, 26 are switched to a contact (b) by a data bus switching mechanism 24, the data are sent and received between the computer 10 and floppy disk 11 without enciphering and decoding.

Description

【発明の詳細な説明】 本発明はコンピュータソフトウエアの保護方法およびそ
の装置に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a computer software protection method and apparatus.

一般に電子計算機の機能的特徴はプログラム記憶方式に
よって処理がなされている点に集約される。このような
亀子計算機は予め記憶された情報処理の方法,順序、に
したがって時系列的に処理を行っていく。したがって、
予め記憶すべきプログラムを入れ替えたシ、データを変
更するだけで電子計算機の処理内容をただちに変更する
ことが可能と々る。この嫌味では電子計算機は汎用処理
装置であシ、これに付加され゛るプログラム、すなわち
ソフトウエアによって無限の可能性を引き出すことがで
きる。すなわちソフトウエアという゛無形の情報を相互
に交換することにょシ、処理内容そのものを安価,迅速
に移し替え、あるいは開発することが可能であるゎその
ため、プログラムを構成する使用言語その他のソフトウ
エアの規格化,統一化が進み、またこれ等のソフトウエ
アの流通を媒介するフロッピーディスケット等、簡易な
記憶媒体の開発が進められている。
In general, the functional characteristics of electronic computers can be summarized in that processing is performed using a program storage method. Such a Kameko computer performs processing in chronological order according to a pre-stored information processing method and order. therefore,
It is possible to immediately change the processing contents of a computer simply by replacing the programs to be stored in advance and changing the data. In this sense, a computer is a general-purpose processing device, and the programs, or software, added to it can bring out infinite possibilities. In other words, by mutually exchanging intangible information called software, it is possible to transfer or develop the processing content itself cheaply and quickly. Standardization and unification are progressing, and the development of simple storage media such as floppy diskettes that mediate the distribution of such software is progressing.

一・方、半導体印刷技術等、ハードウエア技術の進歩も
めざましく、亀子計算機は鳥速人容量化、低価格小型化
の道をたどり、その幅広い融通性によってあらゆる用途
に用いられはじめている。これにともない各種の用途に
したがう、合理的で適確なソフトウ゜エアの開発が各種
の分野で必要不可欠になシ、ソフトウエアそのものの需
要が急激に高まっている。
On the other hand, advances in hardware technology such as semiconductor printing technology have been remarkable, and Kameko computers have been rapidly increasing their capacity and becoming smaller and cheaper, and due to their wide range of flexibility, they are beginning to be used for a variety of purposes. Along with this, the development of rational and appropriate software for various uses has become essential in various fields, and the demand for the software itself is increasing rapidly.

電子計算機を用いた処理システムでは、設計者が布線論
理等を用いて用途別に設計を行う一般の処理装置と異な
シ、そのシステムを稼動させる思想、技術等.はすべて
ソフトウエア技術にゆだねられている。ネットワーク通
信網やデータオンラインシステム等をつかさどる煩雑で
大規模なソフトウエアではその開発設計に対して多大な
人的投資がなされてυシ、またマイクロコンピュ7夕の
モ二タプログラムなどの小規模なプログンムても、そこ
で連用γ能々ソフトウエアが/J’l規模でならなけれ
ばならないという制約がある故に合理的な設11を行う
ための投資が必要となる。
Processing systems using electronic computers are different from general processing equipment, in which designers use wiring logic etc. to design for each purpose. Everything is left to software technology. The development and design of complex, large-scale software that controls network communication networks and data online systems requires a large amount of human investment. Even in the case of programs, there is a constraint that the software for continuous use must be on a /J'l scale, so investment is required for rational configuration.

ところで、大型の計算機は一般的に計算センター等で管
理運営がなされ、データ、プログラx等の記録媒体の無
断搬出の可能性は少なく、また記録形式そのものも計算
機の機種によって異なる場合が多いため、記録媒体その
ものの搬出流用による事故は少ない。
By the way, large computers are generally managed and operated at calculation centers, etc., and there is little possibility of unauthorized removal of recording media such as data and programs, and the recording format itself often differs depending on the computer model. There are few accidents caused by the removal and misuse of the recording medium itself.

コレに対して小型計算機、特にパーソナルコンピュータ
は上述した汎用処理装置としての開発が進み、ソフトウ
エアの入れ替えのみでワードプロセッサ,ビジネスコン
ピュータ,システムコントo−−y,*−ムコンピュー
タとその姿を変える。
On the other hand, small-sized computers, especially personal computers, have been developed as general-purpose processing devices as mentioned above, and their appearances can be changed from word processors to business computers to system computers and system computers simply by replacing software.

そのためK小型計算機は本質的にはソフトウエアの相互
融通性が極めて高く設計がなされておシ、用途別のプロ
グラムが規格化されたパッケージプログラムとして市販
されたシ、利用者が独自に作成したプログラムを手軽に
記憶媒体に格納して他の計.算様に移し替えることが可
能になる。このように小型計算機はソフトウエアの保存
媒体等を用いてソフトウェアの簡易な流通を促進すべぐ
作られているため、その内容を隠幣し、複製を禁止する
等、ソフトウエアの完全な保護を行うことは難しい。ま
た小型計算機は量産品であシ、内部構造も規格化されて
簡明であるため、ソフトウエア実行の処理過程全隠幣秘
彎することも難しい。しだがって、ソフトウェア保存媒
体そのものの無断複製や無断使用を抑制防止することは
極めて難事である。このようにコンピュータソフトウエ
アは非物質的な有価パッケージとして、計算機本体から
離れて独自の価値を認識されつつあるが、まだその歴史
は浅く、一般的にはその位置付けや機能を正しく理解さ
れるには至っておらず、その保護は十分になされていな
いのが実状である。そこで、ンフトウエアの社会環境を
整え、多大な費用をかけて開発したソフトウェアパソヶ
ージの健全な流通を促進するためにも、また開発者や所
有者の権利を保護するためにもソフトウエアを有効適切
にかつ、確実に保護するための何らかの方策が強大要望
されるところとなっている、 本発明は以上の点に鑑みなされたものであって、小型コ
ンピュータのソフトウエアをハードウエアとソフトウエ
アとの両面から有効適切にかつ、完全確実に保論できる
ようにすることを目的とするものである。
For this reason, compact computers are essentially designed to have extremely high mutual flexibility in terms of software.Programs for each purpose are commercially available as standardized package programs, and programs created by users are unique. You can easily store it on a storage medium and use it for other purposes. It will be possible to transfer it to arithmetic. In this way, small computers are designed to promote the easy distribution of software using software storage media, etc., so it is necessary to completely protect the software by concealing its contents and prohibiting copying. It's difficult to do. In addition, since small computers are mass-produced and their internal structures are standardized and simple, it is difficult to keep the entire software execution process secret. Therefore, it is extremely difficult to suppress and prevent unauthorized copying and use of the software storage medium itself. In this way, computer software is beginning to be recognized as a non-physical valuable package that has its own value apart from the computer itself, but its history is still young and its position and functions are not generally understood correctly. The reality is that they have not been fully protected. Therefore, in order to improve the social environment for software, promote the healthy distribution of software packages developed at great expense, and protect the rights of developers and owners, we There is a strong demand for some kind of measure to effectively and reliably protect the software.The present invention has been made in view of the above points, and is intended to protect the software of small computers from hardware and software. The purpose of this document is to enable arguments to be made effectively, appropriately, and with complete certainty from both sides.

以下、本発明の一実施例を図面を参照して詳細に説明す
る。
Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings.

第1図は本発明が適用される小型コンピュータシステム
の代表的な一例を示すもので、本システムはCPUとメ
モリと1/0とからなる計算機本体10と,フロッピー
ディスク11と,コンソール12と,プリンタ13とか
ら成っている。ソフトウエアはフロッピーディスケット
l1に収納されておシ、計算機本体10にロードされそ
の処理状態はコンソール12上で監視され、必要に応じ
てハードコピーがプリンタ13よシ打出されるようにな
っている。計算機本体10とフロッピーディスク11と
のライン上に本ソフトウエア保護装置を構成する暗号器
20が介装されている。暗号器20は計算機本体10か
ら受けたデータを暗号化して7ロッピーディスクドラー
イブに送シ出し、またフロッピーディスクドライブから
受けたデータを復号化して送シ出すもので、変換の際暗
号コードは任意に設定できるようになっている。この暗
号器20は計算器本体10から見ればフロッピーディス
クそpものであシ、まだフロッピーディスクl1から見
れば計算機本体そのものであるような動作を行う。すな
わち、暗号器20を挿入したことによりハードウエアお
よびソフトウエア的に負荷が計算機本体側にもフロッピ
ーディスクドライブ側にも加わらないようになっている
FIG. 1 shows a typical example of a small computer system to which the present invention is applied. It consists of a printer 13. The software is stored in a floppy diskette l1 and loaded into the computer main body 10, its processing status is monitored on the console 12, and a hard copy is printed out to the printer 13 as necessary. An encryptor 20 constituting this software protection device is interposed on the line between the computer main body 10 and the floppy disk 11. The encoder 20 encrypts the data received from the computer main body 10 and sends it to the floppy disk drive 7, and also decrypts and sends the data received from the floppy disk drive. It can now be set to . This encoder 20 operates as if it were a floppy disk when viewed from the computer main body 10, but as if it were a computer itself when viewed from the floppy disk l1. That is, by inserting the encoder 20, no load is placed on either the computer main body or the floppy disk drive in terms of hardware and software.

第2図は本暗号器20の基本的な構成を示すもので、計
算機本体10からフロッピーディスク11ヘロード命令
が発生すると復号用メモリ21により復号化されたデー
タが第1のセレクタ25の接点aを通して計算機本体1
0のRAM上にローディングされる。一方、ライト命令
では暗号用メモリ22によシ暗夛化されたデータが第2
・のセレクタ26の接点aを通してフロッピーディスク
11に送出され書き込まれる。その際、暗号化コードは
暗号コード書込み用CPU23により任意に設定される
FIG. 2 shows the basic configuration of the present encoder 20. When a load command is issued from the computer main body 10 to the floppy disk 11, the data decoded by the decryption memory 21 is passed through the contact a of the first selector 25. Calculator body 1
0 RAM. On the other hand, in the write command, the data encrypted by the encryption memory 22 is transferred to the second
The data is transmitted and written to the floppy disk 11 through the contact a of the selector 26. At this time, the encryption code is arbitrarily set by the encryption code writing CPU 23.

フロッピーディスク11はフロソピーディスクコントロ
ールIC(図示せず)を介して作動するようになってお
シ、そのためフロッピーディスク11は計算機本体10
へのコマンドコードの入力によって作動する,このコマ
ンドコードは暗号化されないようになっている。すなわ
ち、このコマンドコードが入力されると計算機本体10
から暗号化禁止命令が送出され、これが暗号器20内で
デコードされてデータパス切換え機構24を動作させ、
、第1および第2のセレクタ25.26の接点をaから
゛bに夫々切換える。したがって、コマンドコードのみ
,が暗号゛化されずに計算機本体10からフロッピーデ
ィスク11側に送られる。またこれによシ、暗号器20
は単なるデータ中継器となシ、データが計算機本体10
とンロツピーディスク11との間に暗号化,復号化され
ることなく送受信される。
The floppy disk 11 is operated via a floppy disk control IC (not shown), so the floppy disk 11 is connected to the computer main body 10.
This command code is not encrypted. That is, when this command code is input, the computer main body 10
An encryption prohibition command is sent from the encoder 20, and this is decoded in the encoder 20 to operate the data path switching mechanism 24.
, switches the contacts of the first and second selectors 25 and 26 from a to b, respectively. Therefore, only the command code is sent from the computer main body 10 to the floppy disk 11 without being encrypted. In addition to this, the cipher 20
is just a data relay, the data is the computer main body 10
The information is transmitted and received between the computer and the downloadable disk 11 without being encrypted or decrypted.

なお、ここで暗号化とはある規約にしだがってソフトウ
エアを構成するデータ内容を別な内容に書き改ためるこ
とであり、必要に応じてその規約を用い・て復号化でき
るものである。
Note that encryption here refers to rewriting the data content constituting the software into a different content according to a certain convention, and can be decrypted using that convention as necessary.

また暗号コード書込み用CPU23は計算機本゛体10
あるいはフロッピーディスクドライブに内蔵されるCj
Uで代用することもできる,次に第3図〜第6図は本発
明によるソフトウエア保膿の碁本的手順を示すもので、
抛3図はソフトウエアの保護プログラム(以下保護プロ
グラムと称する)等をフロッピーディスク上に記録する
形式およびその機能を、まだ第4図は本保護装置におけ
るプログラムのロードから実行までのプロセスを示すフ
ローチャートであ・る。また第5図は保護されたフロッ
ピーディスクの作成用プログラムの手順を示すフローチ
ャート,第6図はi、プログラムによるソフトウエア保
護の手順を示すフローチャートである。
In addition, the CPU 23 for writing the encryption code is the computer main body 10.
Or a Cj built into a floppy disk drive.
U can also be substituted.Next, Figures 3 to 6 show the basic procedure of software retention according to the present invention.
Figure 3 shows the format and function of recording a software protection program (hereinafter referred to as protection program) on a floppy disk, and Figure 4 is a flowchart showing the process from loading to execution of the program in this protection device. De-ru. Further, FIG. 5 is a flowchart showing the procedure of a program for creating a protected floppy disk, and FIG. 6 is a flowchart showing the procedure of software protection by the program.

これらの図を用いてソフトウエア保護の手順を説明する
と、先ず保護されるべき対象プログラム(以下、被保護
プログラムと称する)にはそれに対応する保護プログラ
ムをチェーン結合して追加し、この保護プログラムによ
ってパスワードを受け付け、操作の誤シ検出によるプロ
グラム破壊,OS(オペレーティングシステム)改造K
よル被保護プログラムのロード,被保護プログラムの復
号化等を行わせる。被保護プログラムは予めPCB(フ
ァイルコントロールプaソク)の内容が暗号化され特殊
なOSによってのみプログラムロードがかけられるよう
な改変がなされ、フロッピーディスク上に記録される。
To explain the procedure for software protection using these diagrams, first, a corresponding protection program is added to the target program to be protected (hereinafter referred to as a protected program) in a chain, and this protection program protects the program. Program destruction and OS (operating system) modification by accepting passwords and detecting incorrect operations
Load the protected program, decrypt the protected program, etc. The protected program is recorded on a floppy disk after the contents of a PCB (file control board) are encrypted and modified so that the program can only be loaded by a special OS.

保護プログラムは一般の汎用osにょシロードされ、ロ
ード後ただちにOSの改造が開始される.改造後のOS
は、パスワードの取り込み,パスワードの誤り検出およ
び被保護プログラムの破壊,被保護プログラムのロード
,パスワードに基ずく後号コードの作成,復号コードに
よる被保護プログラムの復号化,保護プログラムの破壊
,プログラムのダンプ,セーブ等のOsコマン・ドの受
11−jHけ襟止,プログラムの実行などの機能番果す
The protection program is loaded into a general-purpose OS, and modification of the OS begins immediately after loading. OS after modification
captures passwords, detects password errors and destroys protected programs, loads protected programs, creates post-encryption code based on passwords, decrypts protected programs with decryption code, destroys protected programs, and destroys programs. It performs functions such as receiving Os commands such as dump and save, and executing programs.

そして、上記のような保護プログラムを作成するにあた
っては、第3図に示されるようなフロッピーデ,イスク
に記録される作成プログラムを予め用意する必要がある
。この作成プログラムは、パスワードの1回のみの受け
付け、パスワードに幕ずく暗号コードの作成,保麹プロ
グラムの暗号化,OSの改造,.改造されたOSによる
被保護プログラムのフaツピーディスクへのセービング
などの機能を備えている。改造されたosはPCBの形
式を暗号化してセーブするだけの機能を持っている。こ
れによ9暗号コード等のダンプ機能は失われる。
In order to create the protection program as described above, it is necessary to prepare in advance a creation program to be recorded on a floppy disk as shown in FIG. This creation program accepts a password only once, creates an encryption code for the password, encrypts the security program, modifies the OS, etc. It has functions such as saving protected programs to a floppy disk using a modified OS. The modified OS has the ability to encrypt and save the PCB format. As a result, the dump function of 9 encryption codes etc. is lost.

暗号コードはパスワードと内部に保有する乱数発生ルー
チンで発生する乱数との論理演算等で作成され、その時
使用した乱数はPCB等に取込まれる。したがって、プ
ログラムを実行する場合の復号,化処理ではこの7ロソ
ピーディスクに記録された乱数とパスワードを用いて復
号化処理を行う必要がある。この作業が第4図のパスワ
ードに基ず〈復号コード作成の項で行われる。
The encryption code is created by a logical operation between the password and a random number generated by an internal random number generation routine, and the random number used at that time is taken into a PCB or the like. Therefore, when executing a program, it is necessary to perform the decryption process using the random numbers and passwords recorded on the 7 rosopy disk. This work is performed in the section of ``Creating a decryption code'' based on the password in Fig. 4.

そして、ソフトウエアは基本的には第6図に示す手順に
したがって保護される。すなわち、先ず被保護プログラ
ムはソフト的手法によって一次暗号化され、この一次暗
号化されたプログラムが上述した暗号器によってハード
的手法によシニ次暗号化され、次いでこの二次暗号化さ
れたプログラムがフロッピーディスクに格納される。し
たがって、フロッピーディスクに格納されたプログラム
はパスワード,保護プログラム,暗号器のもとて管理が
なされ、どの一つが欠落してもソフトウエアの実行が行
い得ないことになる。またソブト,ハード的手法によっ
て2段に行われる暗号化はその暗号コードがパスワード
と乱数とによって作られるため、その都度異なった内容
の暗号化がなされ、内容の解読は極めて困難になる。し
たがって、ソフトウエアの完全確実な保護を期すること
ができる。
Then, the software is basically protected according to the procedure shown in FIG. That is, first, the protected program is firstly encrypted using a software method, this firstly encrypted program is secondly encrypted using a hardware method using the above-mentioned encoder, and then this secondarily encrypted program is encrypted using a hardware method. Stored on floppy disk. Therefore, programs stored on floppy disks are managed using passwords, protection programs, and encryption devices, and if any one of them is missing, the software will not be able to be executed. In addition, when encryption is performed in two stages using software and hardware methods, the encryption code is created using a password and a random number, so the content is encrypted differently each time, making it extremely difficult to decipher the content. Therefore, software can be guaranteed to be completely protected.

次に第7図〜第9図は上述した本ソフトウエチ保護装置
を構成する暗号器20の具体的構成を示すもので、第7
図はその前面構造を、また第8図はその後面構造を、更
に第9図はその回路構成を夫々示している。
Next, FIGS. 7 to 9 show the specific configuration of the encoder 20 constituting the software protection device described above.
The figure shows its front structure, FIG. 8 shows its rear structure, and FIG. 9 shows its circuit configuration.

暗号器20はその後面から引き出された1本のフラツ′
トケーブル201をフロッピーディスク11のFDC制
御信号用コネクタ端子に接続し、他の1本のケーブル2
02を計算機本体10のFDCI/Oポートの出力又は
I/OユニットのFDCボートに接続することによって
計算機本体10とフロッピーディスク11との間に介装
される。
The encoder 20 is a flat piece pulled out from the rear surface.
Connect cable 201 to the FDC control signal connector terminal of floppy disk 11, and connect the other cable 201 to the FDC control signal connector terminal of floppy disk 11.
02 is interposed between the computer main body 10 and the floppy disk 11 by connecting it to the output of the FDCI/O port of the computer main body 10 or to the FDC port of the I/O unit.

暗号器20は電源コネクタ203よシ供給されるACI
OOVを電源としており、これによシ電源SW204お
よびヒューズ205を介してその内部にDC:5Vが加
えられるようになっている。
The encoder 20 is powered by an ACI supplied from the power connector 203.
The OOV is used as a power source, and DC: 5V is applied to the inside thereof via a power source SW 204 and a fuse 205.

暗号化禁止SW205は、これがオンになったとき暗号
器による暗号化を禁止する機能を有し、計算機本体10
のI/Oユニットとフロ、ツビーディスク11とを一本
のケーブルで接続しだのと同じ・状態、つまーり暗号器
20を.単にデータ中継器としてのみの作用を行うよう
に切換える。
The encryption prohibition SW 205 has a function of prohibiting encryption by an encoder when it is turned on.
This is the same situation as when the I/O unit and the floppy disc 11 are connected with a single cable, that is, the encoder 20 is connected. Switch to act solely as a data repeater.

次に表示用LEDランプ1〜6につき説明する。Next, the display LED lamps 1 to 6 will be explained.

■、LEDI(グリーン)″・・・・・・電源投入表示
■,LED2(赤)・・・・・・暗号化および後号化禁
止表示(暗号化禁止SW205をオンにすることによっ
て点灯する) ■、LED3(赤)・・曲暗号化又は復号化転送表示(
データバスが暗号および復号化メモリを介して接続され
た場合に点灯する) ■、LED4(赤)・・・・・・暗号化転送モード表示
(暗号化コマンドに引き続きWRITEDATAコマン
ドが計算機本体側から送られた場合に点灯する) ■、LED5(赤)・・・・・・復号化転送モード表示
(暗号化コマンドに引き続きSENDDATAコマンド
が計算機本体側よシ送られたとき点灯する) ■、LED6(赤)・・・・・メモリ書込み表示(計算
機本体側よシ噴号,復号用デー、夕をメモリに書き込む
場合に点灯する) 次に各SW類について第10図にしたがって説明する。
■、LEDI (green)''...Power-on display ■、LED2 (red)...Encryption and post-encryption prohibition display (lights up when the encryption prohibition SW 205 is turned on) ■, LED3 (red): Song encryption or decryption transfer display (
(Lights when the data bus is connected via encryption and decryption memory) ■, LED4 (red)...Indicates encryption transfer mode (WRITEDATA command is sent from the computer side after encryption command) (Lights up when the SENDDATA command is sent from the computer side after the encryption command) ■, LED 5 (red)...Decryption transfer mode display (lights up when the SENDDATA command is sent from the computer side after the encryption command) ■, LED 6 (red) )...Memory write display (lights up when the computer main unit side input code, decoding data, and data are written to the memory) Next, each SW type will be explained according to FIG. 10.

■、CODE−SW・・・・・・暗号化SW(オンで暗
号化禁止) ■,W−SW・・・・・薔込み暗号化禁止(N−COD
E・SWオンでW−SWオンのとき書込みデータが暗号
化される) ■,R−SW・・・・・読み出し復号化禁止(N−CO
DE−S,WオンでR−SWオンのとき読み出しデータ
は復号化される) これらのSWは次に示すグラフ図のように夫々切換え設
定される。
■, CODE-SW... Encryption SW (encryption prohibited when turned on) ■, W-SW... Encryption prohibited (N-COD
When the E-SW is on and the W-SW is on, the write data is encrypted) ■, R-SW...Reading and decoding prohibited (N-CO
(Read data is decoded when the DE-S and W are on and the R-SW is on.) These SWs are switched and set as shown in the graph shown below.

本発明が適用される計算機システムでは、計算機本体は
フロッピーデイスグと3線ハンドシエイクでデータを変
換する。そして、使用される計算機本体10側のI/O
用IC301およびフロッピーディスク11側のI/O
用IC302はいずhも−r=−ド”o”で使用されて
おシ、ポートAが入力、ポートBが出方、またポートc
が入刀に分けられてモードセットされ、第11図に示す
如く接続されている。
In a computer system to which the present invention is applied, the computer main body converts data using a floppy disk and a three-wire handshake. Then, the I/O on the side of the computer main body 10 to be used
IC301 and floppy disk 11 side I/O
Both IC302 and h are used with -r=-do "o", port A is input, port B is output, and port c
The mode is set separately for each part, and they are connected as shown in Fig. 11.

第12図は本計算機システムで用いられる基本的な14
種のコマンドを示している。これらのコマントノうち0
0−07はDISKBASICで用いられ、OB〜1o
までは使用されていない。この図からも明らかなように
08〜OA,11以上のコードはフロッピーディスクユ
ニットに何ら影醤を与えないため、暗号器2oの制御に
用いることができる。このコマンドコードのうちデータ
の暗号化に関係のあるコマンドは01:Writeda
teおよび03:Senddateである。
Figure 12 shows the basic 14 systems used in this computer system.
Showing the species commands. 0 of these commands
0-07 is used in DISKBASIC, OB~1o
It has not been used until now. As is clear from this figure, the codes 08 to OA, 11 and above do not affect the floppy disk unit in any way, so they can be used to control the encoder 2o. Among these command codes, the command related to data encryption is 01:Writeda.
te and 03:Senddate.

そこで上記3線ハンドシェイクの中間に暗号器を挿入す
ればシステムを何ら変更することなくデータの暗号化,
後号化を行うことが可能となる。
Therefore, by inserting an encoder in the middle of the above three-wire handshake, data can be encrypted without any changes to the system.
It becomes possible to perform postcode.

ワロツピーディスク11はz80によって管理がなされ
ておシ、外部からの14種のコマンドコードによシ制御
することが可能である。すなわち第13図に示す如く、
先ず外部よシコマンドコードが送られ、それに引き続き
必要ならばパラメータが必要数送られる。その後にデー
タの送受信が行われる。
The wallotspee disk 11 is managed by the Z80 and can be controlled by 14 types of external command codes. That is, as shown in Figure 13,
First, an external command code is sent, followed by the required number of parameters if necessary. After that, data is sent and received.

暗号器20は次に示すグ,ラフ図のように、コマンド0
1:Writedateに対してパラメータ4個をその
ままの形で通過させ、しかるのちに暗号化を行う。首だ
コマンド03:Senddateに対してはただちに暗
号化を行い、他のコマンドコードに対してはすべて通過
させる機能を有している。
The encoder 20 receives command 0 as shown in the graph below.
1: Pass the four parameters as they are to Writedate, and then encrypt them. It has a function that immediately encrypts the command 03: Senddate and allows all other command codes to pass through.

このコマンドとして本FDD(フロッピーディスクドラ
イブ)では未使用のコマンド08が割当てられている。
Command 08, which is unused in this FDD (floppy disk drive), is assigned as this command.

また暗号器20には暗号化禁止機構が設けられており、
一般のデータ転送を行い得る機能を備えさせているので
あるが、これには未使用のコマンド09を割当てるよう
になっている。
Further, the encoder 20 is provided with an encryption prohibition mechanism,
It is equipped with a function that can perform general data transfer, and an unused command 09 is assigned to this function.

コマンド08はまた、暗号データを参照するメモリの内
容書込み命令として使用される。
Command 08 is also used as a memory content write command that refers to encrypted data.

そして本暗号機では、第9図に示すように計算機本体1
0のCPUのI/Oにおいて、Aポート,Bボートの下
位4ビットは第1および第2のデータセレクタ206,
207を介してフロッピーディスク(FD)11のI/
OのBポート,Aボートに夫々接続され、その他の信号
はすべて直接結合されている。いまデータセレクタ20
6,207がSE−L=1に切換えられると、Bライン
がセレクトされてCPUから送られた下位4ビットのデ
ータは第1のメモリ208のアドレスをアクセスする。
In this cryptographic machine, as shown in Fig. 9, the computer main body 1
0 CPU I/O, the lower 4 bits of A port and B port are used by the first and second data selectors 206,
207 to the floppy disk (FD) 11 I/
It is connected to the B port and A boat of O, respectively, and all other signals are directly coupled. Now data selector 20
6,207 is switched to SE-L=1, the B line is selected and the lower 4 bits of data sent from the CPU accesses the address of the first memory 208.

アクセスされたメモリ208のデータはフロッピーディ
スクFD側に送られここでデータ変換が行われる。また
フロッピーディスクFD側より送られたデータは第2の
メモリ209のアドレスをアクセスする。アクセスされ
九メ,モリ209のデータはCPU側に送られここでデ
ータ変換される。よってメモlJ’208’,2090
2つのデータ内容がADRESS=DATAICDAT
A2(ADRESS))なる関係にあれば,メモリ内容
を任意に組合せることによシデータ内容の暗号化が行わ
れる。ここにDA’TAN(ADflsS)とはNとい
うメモリのADHESSという番地のデータ内容を示す
The accessed data in the memory 208 is sent to the floppy disk FD and data conversion is performed there. Further, the data sent from the floppy disk FD side accesses the address of the second memory 209. The accessed data in the memory 209 is sent to the CPU side, where it is converted. Therefore, memo lJ'208', 2090
Two data contents are ADRESS=DATAICDAT
A2 (ADRESS)), the data contents are encrypted by arbitrarily combining the memory contents. Here, DA'TAN(ADflsS) indicates the data content of the address ADHESS in the memory N.

tタCPU1411の4ビット出力はバスドライバ21
0に接続され、これが2つのメモIJ208,209の
データ入力DIにS.llEL=1に切換えることによ
シ夫タ接続されるようになっている。よってバスドライ
バ210をSEL=1に切換え、かつ各メモリ208,
209のWEをWFJ=1とすることによシメモリ20
8,209にCPU側よ9データを入力することができ
る。更にCPtJ側の下位4ビットデータ出力はデータ
セレクタ211に接続されておシ、コマ゛ンド内容を区
別できるようになっている。
The 4-bit output of the CPU 1411 is sent to the bus driver 21.
0, and this is connected to the data input DI of the two memo IJs 208 and 209. By switching to llEL=1, the switch is connected. Therefore, the bus driver 210 is switched to SEL=1, and each memory 208,
By setting WE of 209 to WFJ=1, memory 20
9 data can be input to 8,209 from the CPU side. Further, the lower 4-bit data output on the CPtJ side is connected to a data selector 211 so that command contents can be distinguished.

以下に本暗号器を通して計算機本体10のCPUがフロ
ッピーディスク(FD)11に出力するコマンドについ
てその動作を説明する。
The operation of commands output from the CPU of the computer main body 10 to the floppy disk (FD) 11 through this encoder will be explained below.

■、暗号化禁止動作 −暗号データの禁止コマンド09がC−PUから出力さ
れた場合あるいは暗号化禁止SW205がオンである場
合又はRESET71の信号が入力された後は3人力N
ANDゲート212の出力がインバートされてJKFF
213をクリャするのでQ=1となシ、暗号化信号記憶
用JKFF214をクリャする。そのため各データセレ
クタ206,207,211がSEL=0に切換えられ
暗号化,復号化が禁止される。
■, Encryption prohibition operation - When the encrypted data prohibition command 09 is output from the C-PU, when the encryption prohibition SW 205 is on, or after the RESET71 signal is input, three-man operation is required.
The output of AND gate 212 is inverted and becomes JKFF.
213, so Q=1 and the JKFF 214 for storing the encrypted signal is cleared. Therefore, each data selector 206, 207, 211 is switched to SEL=0, and encryption and decryption are prohibited.

なお、本計算機システムの起動時にはRESET=1の
信号が暗号器20’K入力されるので、暗号器2′0を
作動させるには暗号化の許可コマンド09を計算器本体
10のCPU側より出力しなければならない。
Furthermore, when starting up this computer system, the RESET=1 signal is input to the encoder 20'K, so to activate the encoder 2'0, the encryption permission command 09 must be output from the CPU side of the computer main body 10. Must.

■、暗号化の許可動作 暗号化の許可コマンドは暗号器20を起動させるコマン
ドである。
(2) Encryption Permission Operation The encryption permission command is a command for activating the encoder 20.

先ずソースハンドシエイクにより許可コマンドの出力に
先立ちCPU側よ!)ATN.=1が出力される。これ
により暗号器20はリセットされる。ATN=1の出力
によってフロッピーデイスクF.Dよシアクセプタ/S
ンドシエイクによ#)RFD=1が送b返され、これを
受けてCPU側ヨ!)デTタにコマンドθBを載せてD
AV=1とする。するとフロッピーディスクFD{il
1よりDAC=1が送シ゜返されるが、コマンド08は
フロッピーディスクFD側では何らの意味ヲ持たないた
め、以後A’TN=1がCPU側75フら出力されるま
S信号およびデータの動きには関与しない。
First, the CPU side performs a source handshake before outputting the permission command! )ATN. =1 is output. This resets the encoder 20. The output of ATN=1 causes the floppy disk F. D, Siacceptor/S
#)RFD=1 is sent back to the controller, and in response to this, the CPU side ! ) Put the command θB on data T and D
Let AV=1. Then the floppy disk FD{il
DAC=1 is sent and returned from 1, but since command 08 has no meaning on the floppy disk FD side, from then on, A'TN=1 is output from the CPU side 75, and the S signal and data movement will not be involved.

暗号器20内ではATN=1の信号によシJKFF21
5がQ=1となりフロッピーディスクFDより送り返さ
れるDAC=1の信号によってクリャされる。
In the encoder 20, the ATN=1 signal is used.
5 becomes Q=1 and is cleared by the DAC=1 signal sent back from the floppy disk FD.

こ’(7)Q=1とDAv=1およびコ?7j08の下
位4ピットを検知したデータセレクタ211の出力がN
ORをとられてJKFF213をセットする。この出力
Q=1はRFJSET=1又は暗号化禁止SW205の
オンあるいはコマ/ド09の信号が出力されるまで変わ
ることがなく、ATN=1によ?て暗号化信号(SET
=1)を出力するJKFF214,2.16がクリャさ
れることを禁止する。
Ko' (7) Q=1 and DAv=1 and Ko? The output of the data selector 211 that detected the lower 4 pits of 7j08 is N.
The OR is taken and JKFF213 is set. This output Q=1 does not change until RFJSET=1, the encryption prohibition SW 205 is turned on, or the command/do 09 signal is output, and does not change due to ATN=1. Encrypted signal (SET
=1) is prohibited from being cleared.

■、コヤンド01(書込み命令)の動作次にコマンド0
1が出力されたときの動作について第9図および第14
図に示すタイムチャートにしたがって説明する。
■, Operation of command 01 (write command), then command 0
Regarding the operation when 1 is output, Figures 9 and 14
This will be explained according to the time chart shown in the figure.

CPUよりATN=1がソースハンドシエイク(以下、
SHと称す)によってコマンドに先立ち出力されるとフ
ロッピーディスクFD,はアクセプタハンドシエイク(
以下AHと称す)によpRFD=1を送り返す。これを
受けて,CPUはATN=0とし、コマンドデータ01
をデータラインに載せてDAV=1を出力する。フロッ
ピーディスクFDはこれを受けてRFD=Oとし、コマ
ンドデータ01を取シ込んでDAC=.1を立ててSH
によCCPUに送る。CPUはDAV=1を送シ出しデ
ータラインからコマンド01を取シ除く。
ATN=1 from the CPU performs a source handshake (hereinafter referred to as
(referred to as SH), the floppy disk FD performs an acceptor handshake (referred to as SH).
(hereinafter referred to as AH) sends back pRFD=1. In response to this, the CPU sets ATN=0 and command data 01.
is placed on the data line and outputs DAV=1. In response to this, the floppy disk FD sets RFD=O, inputs command data 01, and sets DAC=. Set 1 and SH
Send it to the CCPU. The CPU sends DAV=1 and removes command 01 from the data line.

これを受けてフロッピーディスクFDはDA−(21’
=0とし、内部処理に入り次の4つのパラメータの取シ
込み準備に入る。
In response to this, the floppy disk FD is DA-(21'
= 0, and enters internal processing and prepares to import the next four parameters.

上記のハンドシエイクにおいて暗号器2oはATN=1
によって下段右のFF213の出カをQ=0とし,DA
V=1とで作られるパルスを用いてデータセレクタ21
1にょシ検知されたo1コマンドを取シ込んで中段右の
JKFF2j6の出力をQ=0と記憶する。
In the above handshake, the encoder 2o has ATN=1
By setting the output of FF213 on the lower right side to Q=0, DA
The data selector 21 uses the pulse generated by V=1.
The o1 command detected at 1 is input, and the output of JKFF2j6 on the right side of the middle row is stored as Q=0.

フロッピーディスクFDはパラメータの取シ込み準備が
完了するとRFD=1としてCPU側にDAV信号を擬
求する。゛以後はコマンド送信時と同様のハンドシェ”
イクにょシ必要な個数のパラメータがフロッピーディス
クFD側に送られる。DAV信号は1つのパラメータに
1個送られるのでこのDAV信号をカウントしてパラメ
ータ終了を検知する。
When the floppy disk FD completes preparations for importing parameters, it sets RFD=1 and requests a DAV signal to the CPU side.゛After that, the handshake is the same as when sending a command.''
A necessary number of parameters are immediately sent to the floppy disk FD side. Since one DAV signal is sent for each parameter, this DAV signal is counted to detect the end of the parameter.

暗号器20内のカウンタ2L7はATN=1でリセット
される。以後DAV=1の信号をカウントするが、コマ
ンドコードo1を送るために立てられたDAV=1はカ
ウンタ217がリーディングエッジトリガ方式であるた
め、ATN=1の途中になるので読みとばされる、以後
CPUはバラメータを4つ送シ出し、データの第1番目
を送り出すための信号DA.V=1が送られるとカウン
タ217はカウント内容=5となJNANDゲート21
8で検知され、先にコマンドコード01によシセットさ
れたJKFF216の出力Q=OとNORがとられ暗号
化信号を出力するJKFF214をセットする。これに
よDQ=SEL=1となシ、この暗号化の状態は次の、
コマンドがC’PUから送られる際に送り出される、そ
して、ATN=1により、リセットされる。
The counter 2L7 in the encoder 20 is reset when ATN=1. Thereafter, the DAV=1 signal is counted, but since the counter 217 uses the leading edge trigger method, the DAV=1 signal set to send the command code o1 is skipped because it is in the middle of ATN=1. sends out four parameters, and a signal DA. to send out the first data. When V=1 is sent, the counter 217 has a count content of 5.JNAND gate 21
8 and is NORed with the output Q=O of the JKFF 216, which was previously set with the command code 01, to set the JKFF 214 that outputs the encrypted signal. As a result, DQ=SEL=1, and the state of this encryption is as follows.
Sent when a command is sent from C'PU, and reset by ATN=1.

■、コマンド03(読み出し命令)の動作計n機本体か
らコマンド03の読み出し命令が出力された際の信号の
動きは基本的には上述したコマンド01の書,込み命令
が出された動作と同様である。異なる点はコマンド03
の命令は次に続くパラメータがないため、ただちに復号
化が行われる点である。したがって、コマンド01の命
令のときと四様にコマンド03の状態をJKFF216
で記憶してQ=0とし、カウンタ217でD.AV=1
をカウントして力′ウント数=1の出力とQ=0とのN
ORによシ暗号化信号をSEL=1にするためにJKF
F21’4をセットする。この状態も次のコマンド信号
ATN=1によシクリャされる。
■, Operation meter for command 03 (read command) The movement of the signal when the read command for command 03 is output from the main body of the machine is basically the same as the operation for the write and write commands for command 01 mentioned above. It is. The difference is command 03
The point is that the instruction is decoded immediately because there is no parameter to follow. Therefore, the state of command 03 is changed to JKFF216 in four different ways as when command 01 is used.
is stored and set Q=0, and the counter 217 stores D. AV=1
Count the output of count = 1 and N of Q = 0.
JKF to make the encrypted signal SEL=1 by OR
Set F21'4. This state is also cleared by the next command signal ATN=1.

■、一方、コマンド01,03以外のその他のコマンド
コードが出力されても暗号化信号を作シ出すJKFF群
,JKFF214,216が作動しないだめ暗号化信号
はSEL=Oとなシ、すべての信号は暗号器を通過する
だけである。
■On the other hand, even if command codes other than commands 01 and 03 are output, the JKFF group that generates encrypted signals, JKFF214 and 216, do not operate, and the encrypted signal must be set to SEL = O. All signals only passes through the encoder.

■、暗号データのメモリへの書き込み動作この暗号器2
0を用いたデータの暗号化は暗号用メモリに書き込まれ
た変換用データによってその内容が決定される。したが
って、本暗号器20を用いるときには、予め定められた
法則にしたがう変換用データをメモリ内に記憶させてお
く必要がある。
■ Writing operation of encrypted data to memory This encoder 2
The content of data encryption using 0 is determined by the conversion data written in the encryption memory. Therefore, when using the present encoder 20, it is necessary to store in the memory conversion data that follows predetermined rules.

暗号器20の内部には上述した書き込みデータ変換用メ
モリ209と読み込みデータ変換用メ.モリ208とが
内蔵されている。メモリ209はフロッピーディスクF
Dからのデータ復号化に用いられ、メモリ208はCP
Uよシ送シ出されるデータの暗号化に用いられる。
Inside the encoder 20 are the above-mentioned write data conversion memory 209 and read data conversion memory 209. It has a built-in harpoon 208. Memory 209 is floppy disk F
The memory 208 is used to decode data from CP
Used to encrypt data sent over the U.

これ等のメモ!7208.209に記憶される゛任意の
データの組合せによシ、任意の暗号化が可能となる。そ
の場合、2つのメモリ208,209の内容には予め定
められた関係に基ずくデータ配列をしておく必要がある
These notes! Any combination of data stored in 7208.209 enables arbitrary encryption. In that case, the contents of the two memories 208 and 209 need to be arranged in a data arrangement based on a predetermined relationship.

暗号化および復号化のためのデータはコマンド08を併
用してCP.Uよシ送ることができる。コマンド08に
よ.シ暗号化および復号化変換データ書き込み状態を記
憶するJKFF213がQ=0になる。この信号により
バスドライバ210はcPUよシのデータラインを暗号
化,復号化メモリ208,209のデータ入方D1に結
合される。また、これらのアドレスラインは暗号化信号
がS.EL=Oであシ(コマンドo8で暗号化が許可さ
れた後にコマンドo1が送られると5語目より、またコ
マンド03では2語口よシsEL=1となる)、カウン
タ217に接続されているので、DAV信号によシアド
レスを昨定できる。またJK.FF21’3の出力Qは
Q=1と切換えられているのでRFD=1,DAC=1
とのNANDをとって夫々暗号化,復号化用メモリ20
8,209のWEをW=0とじてCPUからのデータを
記憶させることができる。すなわち、先ずコマンド08
が出力された後のDAV.=1の信号によシアドレスは
1になるのでCPU側からアドレス=1用のデータを送
,9、RFD又はDAC=1としてアドレス1にデータ
を書き込み、RFD,DAC=0とし、またはDAv=
1を立てればアドレス=2となる。
Data for encryption and decryption is sent to the CP. I can send it to you. By command 08. The JKFF 213 that stores the write state of encrypted and decrypted converted data becomes Q=0. This signal causes the bus driver 210 to couple the data line from the cPU to the data input D1 of the encrypting and decoding memories 208 and 209. Also, these address lines are connected to the S. EL=O (if command o1 is sent after encryption is permitted with command o8, sEL=1 from the 5th word, and from the 2nd word in command 03), connected to the counter 217. Therefore, the sear address can be predetermined using the DAV signal. Also J.K. Since the output Q of FF21'3 is switched to Q=1, RFD=1, DAC=1
Memory 20 for encryption and decryption by NANDing with
8,209 WEs can be set to W=0 to store data from the CPU. That is, first, command 08
DAV. after being output. = 1 signal causes the address to become 1, so send data for address = 1 from the CPU side, write data to address 1 with 9, RFD or DAC = 1, set RFD, DAC = 0, or DAv =
If it is set to 1, the address becomes 2.

これを繰り返すことにより、メモリ内に次々とデータを
書き込むことができる, なお、本暗号器20では、上述したようにカウンタ21
7をコマンドパラメータ計数用とメモリ書き込み時のア
ドレス指是用とに併用しているため、薔き込みアドレス
は1より始まる。よってアドレスのデータ内容は16番
目に送る必要がある。
By repeating this, data can be written one after another into the memory. Note that in this encoder 20, as described above, the counter 21
Since 7 is used both for counting command parameters and for specifying an address when writing to memory, the fill-in address starts from 1. Therefore, the data content of the address needs to be sent 16th.

5また上記各メモlJ208,209は書きiれたデー
タ内容が読み出し時には反転出力となって出力されるた
め、予め書き込み時に暗号化,復号化に必要な変換デー
タは反転させて書き込む必璧がある。
5 Also, since the written data content of each of the above-mentioned memories 208 and 209 is output as an inverted output when reading, it is necessary to invert and write the converted data necessary for encryption and decryption beforehand when writing. .

次に第15図,第16図は暗号器20の起動および作動
を禁止するステップを示すものであって、この起動は第
16図で示す作用禁止のプログラムが実行されるか、R
ESET信号を受けるかあるいは暗号化禁止SW205
がインになるまで続く(暗号化禁止SW205がオンで
あるときは起動のプログラムが実行されても、起動させ
ることはできない)。
Next, FIGS. 15 and 16 show the step of prohibiting the activation and operation of the encoder 20, and this activation is performed when the program for inhibiting the operation shown in FIG.
Receive ESET signal or prohibit encryption SW205
continues until it turns on (when the encryption prohibition SW 205 is on, even if the startup program is executed, it cannot be started).

第15図に示される起動のステップにしたかつ.てプロ
グラムが実行された後、本計算機システムにおけるフロ
ッピーディスクとのハンドシエイク転送を行えば暗゛号
化,!号化は自動的に行われるのであるが、それ以前に
暗号内容を暗号器20に記憶させておかねばならない。
After completing the startup steps shown in Figure 15. After the program is executed, handshake transfer with the floppy disk in this computer system will result in encryption. Encryption is performed automatically, but the encrypted content must be stored in the encoder 20 before that.

そのステソプは第17図に示すフローチス一トにしたが
って行われる。
The procedure is performed according to the flow chart shown in FIG.

第18図,第19図にデータのソース,アクセブタシエ
イクハンド転送の一般的手続をフローチャートで示す。
FIGS. 18 and 19 are flowcharts showing the general procedure for data source and acceptor hand transfer.

これらの一連のソフトウエアを組合せることによって暗
号器20は作動する。すなわち、先ず第17図の流れに
したがって暗号内容の書き込みを行ない、次いで第18
図,第19図で示される流れ・にしたがって書き込まれ
たデータの転送を行なえばよい。なお、暗号器20の起
動は暗号内容の書き込み時に同時に行われるので、暗号
禁止コマンド09を送らない限シ暗号器起動の必要はな
い。
The encoder 20 operates by combining these series of software. That is, first, the encrypted content is written according to the flow shown in FIG.
The written data may be transferred according to the flow shown in FIGS. Incidentally, since the activation of the encoder 20 is performed at the same time as the writing of the encrypted content, there is no need to activate the encoder unless the encryption prohibition command 09 is sent.

次に本発明による被保護ソフトウエアを保護するための
ソフトウエアについて説明する。
Next, software for protecting protected software according to the present invention will be explained.

この被保護ソフトウエアはこれを保護するソフトウエア
の一部である登録機能でフロッピーディスクに登録する
ことによシ保護が施される。本機能では被保護ソフトウ
エア(プログラム)を暗号化し、このソフトウエアにパ
スワードを付与する。
This protected software is protected by being registered on a floppy disk using a registration function that is part of the software that protects it. This function encrypts the protected software (program) and assigns a password to this software.

また被保護ソフトウエア実行時に必要な実行制御モジュ
ール部と被保護ソフトウエアの復号化に必要な暗号コー
ドを全く同一のフロッピーディスクに登録して利用者に
提供するようになっている。
Furthermore, the execution control module section necessary for executing the protected software and the encryption code necessary for decrypting the protected software are registered on the same floppy disk and provided to the user.

実行制御モジュール部は被保護ンフトウエ′アの実行に
先立って汎用C)Sから起動されるため、暗号化は施さ
ず標準のCOM形式ファイルとして登録される。登録時
のファイル名はパンケージソフトを供給する側が任意に
設定することが可能であふ。
Since the execution control module section is started from the general-purpose C)S before executing the protected software, it is registered as a standard COM format file without being encrypted. The file name at the time of registration can be arbitrarily set by the supplier of the pancage software.

パスワードハ被保護ソフトウエアの実行要求時の照合に
、また暗号コードは被保護ソフトウエアの復号に使用す
るためにフロッピーディスクに登録される。その手順は
以下のように行われる,■、パスワードの登鎌 先ず、パスワードは第20図に示すようにコンソールか
ら8桁固定のASCII文字で入力する。
The password is stored on the floppy disk for verification when the protected software is requested to be executed, and the encryption code is stored on the floppy disk for use in decrypting the protected software. The procedure is as follows: (1) Entering a password First, the password is input using fixed 8-digit ASCII characters from the console as shown in FIG.

パスワードが8桁未満である場合、67″をコンソール
に出力し、再度パスワードの入力要求がなされる。
If the password is less than 8 digits, 67'' is output to the console and a password input request is made again.

次いで、パスワードの暗号化がなされる。The password is then encrypted.

パスワードの解読を防止するためにパスワードは暗号化
され、更にパスワードの各桁を分離してランダムな位置
に登録している。このパスワードの暗号化、格納論理の
ステップを第21図(a)〜←》に示すレコード関連図
を用いて説明する。
Passwords are encrypted to prevent them from being deciphered, and each digit of the password is separated and registered at a random location. The steps of password encryption and storage logic will be explained using the record relationship diagrams shown in FIGS.

パスワードは図に示すように3レコードにょシ管理され
ている。
Passwords are managed in three records as shown in the figure.

■、マス,タレコード(第1レコード目)本レコードは
相対50バイト目にパスワードマップレコート内の相対
アドレス(真ノパスワードマップ先頭アドレスを意味す
る)を収容し、70バイト目には暗号コードを収容して
いる。なお、真のパスワードマップ先頭アドレスは乱数
値によって決定する。
■, Master record (first record) This record stores the relative address in the password map record (meaning the real password map start address) in the relative 50th byte, and the encryption code in the 70th byte. It is accommodated. Note that the true password map start address is determined by a random value.

@、パスワードマップレコード(第2レコード目)本レ
コードはパスワード実体レコード内の相対アドレスを示
しておシ、ハスワード各桁の格納アドレスを意味してい
る。このパスワードマップは連続した8桁の領域で0〜
127の重複しない乱数値をとる。
@, Password Map Record (Second Record) This record indicates a relative address within the password entity record, and indicates the storage address of each digit of the password. This password map is a continuous 8-digit area from 0 to
Take 127 unique random numbers.

0,パスワード実体レコード(第3レコード目)本レコ
ードには暗号化されたパスワードがランダムに格納され
る。暗号化は各桁の格納アドレスと各桁の値とで排他的
論理和をとる。
0, Password entity record (third record) Encrypted passwords are randomly stored in this record. For encryption, exclusive OR is performed between the storage address of each digit and the value of each digit.

また暗号コードの登録は次のような手順でなされる。Further, the registration of the encryption code is performed by the following procedure.

■、暗号コードの登録 ■、暗号コードの算出 暗号化されたパスワード各桁の総論理和の結・果と乱数
値とで排他的論理和をとシ、その演算結果を賠号コード
とする.,暗号コードは、被保護ソフトウェアを暗号化
,復号化するときのキイの役目をする。
■, Registration of the encryption code ■, Calculation of the encryption code Exclusive OR is performed between the total OR of each digit of the encrypted password and a random number, and the result of the operation is used as the encryption code. , the encryption code serves as a key when encrypting and decrypting the protected software.

@、カくシて得られた暗号コードをフロッピーディスク
ニパスワードと同一のファイAR格納する。
@, and store the obtained encryption code on the floppy disk in the same FireAR as the password.

第22図は保護対象プログラム(被保護プログラム)の
登録手順を示すもので、以下これを図にしたがって説明
する。
FIG. 22 shows a procedure for registering a protected program (protected program), which will be explained below with reference to the figure.

先ず被保護プログラムは暗号コードをキイとして暗号化
が施され、次いで保謹プログラム(被保護プログラムを
保護する),パスヮニドを登録したフロッピーディスク
に登歩される。
First, the protected program is encrypted using an encryption code as a key, and then stored on a floppy disk with a security program (protecting the protected program) and a password registered.

■、暗号化前の被保護プログラムの条件保護プログラム
が対象とする被保護プログラムはCOMの形式で、かつ
TPA領域に収まるプログラム容量でなければならない
。またプログラム終了時(中断も含む)には本システム
にウォームブー,ト(WB00T)依頼を行っている必
要がある。
(2) Conditions for the protected program before encryption The protected program targeted by the protected program must be in COM format and have a program capacity that fits within the TPA area. Furthermore, when the program ends (including interruption), a warm boot (WB00T) request must be made to this system.

■、被保護プログラムの入方 保護プログラム起動時に指定されたファイル1の入カデ
バイ.ス番号ファイルに対してシーケンシャルに入力す
る。
■, Input device of file 1 specified when the protected program was started. input sequentially to the base number file.

■、暗号化 入力したレコードの内容を1桁ずつ暗号コードと排他的
論理輌をとり、さらにその結果とその桁本来のメモリア
ドレスとで排他的論理和をとシ暗号化する。
(2) Encryption The contents of the input record are subjected to exclusive logic with the encryption code one digit at a time, and then exclusive OR is performed between the result and the original memory address of the digit to encrypt it.

■、ファイルへの登録 フてイル名を゛JSDOOOOI”としてパスワードと
同一のデバ千スに登録する。
(2) Register the file with the file name "JSDOOOOI" and register it with the same device password as the password.

上記被保護プログラムは保護プログラムと暗号器20と
によシ暗号化されているため、被保護プログラムを単独
で複製して実行させても正常な動作を行わせることはで
きない。すなわち、保護プログラム,パスワード,暗号
コード,暗号器の全て.が揃って始めて実行が可能にな
る。したがって、保護の完全を期することができる。
Since the protected program is encrypted by the protection program and the encoder 20, it is not possible to make it operate normally even if the protected program is independently copied and executed. In other words, all of the protection programs, passwords, encryption codes, and encryption devices. Execution becomes possible only when all of the above are in place. Therefore, complete protection can be ensured.

次に保護プログラムの実行モジュールの機能を第23図
に示す流れ図にしたがって説明する。
Next, the functions of the protection program execution module will be explained according to the flowchart shown in FIG.

■、実行モジュールでは被保護プログラムの起動に先立
ってパスワードによる実行権のチェックを行っている。
(2) The execution module checks the execution right using a password before starting the protected program.

被保護プログラムの持つパスワードとの照合結果が一致
しない限シ実行はできないばかシか、3回の不一致によ
シフロッピーディスク上のプログラムを消去してしまう
。なおコンソールから入力するパスワードはエコーバッ
クしない。
The program cannot be executed unless the password matches the password of the protected program, or the program on the floppy disk will be erased if there is a mismatch three times. Note that passwords entered from the console are not echoed back.

■、実行モジュールは暗号化された保護対象のプログラ
ムをメモリに展開する。この展開時にメモリアドレスと
排他的論理和をとシ更に暗号コードと排他的論理和をと
ることによって被保護プログラムを復元つまシ復号化す
る。゛ ■、汎用OSを使用する本計算機システムではシ=テム
以iの利用者ブ・グラムはTPA領域の先頭τある10
0番地に制御移行するインク−フエイスになっている。
■The execution module expands the encrypted program to be protected into memory. At the time of expansion, the protected program is restored or decrypted by performing an exclusive OR with the memory address and an exclusive OR with the encryption code.゛■, In this computer system that uses a general-purpose OS, the user program i from the system is at the beginning τ of the TPA area.
This is an ink face that transfers control to address 0.

そこで、被保護プログラム全領域の復元が終了したなら
ば100番地へ制御移行することによシ被プログラムの
実行が始まる7。
Therefore, when the restoration of the entire area of the protected program is completed, control is transferred to address 100, and the execution of the protected program begins 7.

第24図は被保護プログラムを暗号化してフロッピーデ
ィスクに登録する場合の保護プログラムの起動コマンド
を示すものであって、ファイル1は保護させたいプログ
ラムのファイル、またファイル2は保護されたプログラ
ムを格納するファイルである。
Figure 24 shows the start command for a protected program when encrypting a protected program and registering it on a floppy disk, where file 1 stores the file of the program to be protected, and file 2 stores the protected program. This is the file to be used.

更に、第25図は暗号化された被保護プログラムの実行
要求時の起動要求コマンドを示している次に本発明によ
るソフトウエアの保護機能を例挙すると以下の通シであ
る。
Further, FIG. 25 shows a startup request command when requesting execution of an encrypted protected program.Next, examples of software protection functions according to the present invention are as follows.

■、汎用OSでのデバッグコマンドによるトレースやダ
ンプが行えず、これを完全に抑止できる。
(2) Tracing and dumping cannot be performed using debug commands on a general-purpose OS, and this can be completely suppressed.

■、被保護プログラムのPCB内容は保護プログラムの
一行で始めて復号化されるのでファイル複―や転送コマ
ンドによる複製は行えず、確実に阻止される。
(2) Since the PCB contents of the protected program are decrypted starting from one line of the protected program, copying by file duplication or transfer commands is not possible and is definitely prevented.

■、機械的なデッドコピーは可能であるが、パスワード
,暗号器がなければプログラムの復号.は行えず、使用
不可能になる。
■ Mechanical dead copying is possible, but without a password or encryptor, the program cannot be decrypted. cannot be performed and becomes unusable.

■、ソフトならびにハード的手法−によって2段に行わ
れる暗号化はその暗号コードがパスワードと乱数とによ
って作られるため、その都度異った内容の暗号化がなさ
れ、内容の解読はきわめて困難である。
■Encryption is performed in two stages using software and hardware methods.The encryption code is created using a password and random numbers, so the content is encrypted differently each time, making it extremely difficult to decipher the content. .

■、プログラムの実行速度は保護プログラムによるOS
の改造、ソフトウエア手段による1次暗号化プログラム
の復号処理時間が増加するが、被保膿プログラムの実行
速度には全く影響を与えない。
■The program execution speed depends on the OS protection program.
Although the decryption processing time of the primary encrypted program by software means is increased by modification of the program, it does not affect the execution speed of the target program at all.

■、保護用プログラムの実行の後に実際のプログラムが
実行されるので、メモリ内のユーザズエリアを減少させ
ることはない。
(2) Since the actual program is executed after the protection program is executed, the user's area in the memory is not reduced.

よって本発明によれば、処理速度やアクセス時間などに
悪影響を与えることなく、ソフトウエアの保護が有効適
切にかつ、極めて堅固に確実に行うことができる。しか
も、その保謹は簡単な構成によって達成できる。したが
って、本発明によればソフトウエアの盗用や無断複製な
どを未然にかつ確実に抑制防止することができ、ソフト
ウエアに対する適切な流通経路の確立ならびに保護の体
・爪化に寄与するところが極めて大でオシ、その健全な
運用と発展に資するところは大きい。
Therefore, according to the present invention, software can be protected effectively, appropriately, extremely firmly, and reliably without adversely affecting processing speed, access time, and the like. Moreover, this guarantee can be achieved with a simple configuration. Therefore, according to the present invention, it is possible to prevent and prevent software theft and unauthorized copying, and it greatly contributes to the establishment of appropriate distribution channels for software and the establishment of a protective system. However, it greatly contributes to its sound operation and development.

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

第1図は本発明が適用される小型コンピュータシステム
のー.例を示すブロック図、第2図は本発明に係る暗号
器の基本構成を示すブロック図、第3図〜第6@は本発
明によるソフトウエア保護の基本的な手順を示すもので
あって、第3図はソフトウエアの保護プログラム等をフ
ロッピーディスク上に記録する形式およびその機能を示
す流れ図、第4図は本発明によるプログラムのロードか
ら実行までのプロセスを示すフローチャート、第5図は
保護されたフロッピーディスクの作成用プログラムの手
順を示すフローチャート、第6図は同プログラムによる
ンフトヴエア保護の手順を示すフローチャートであ.る
。第7メ〜第9図は本発明に係るソフトウエア保護装置
を構成する暗号器を示すもので、第7図はその前面構造
を、また第8図はその後面構造を、更に第9図は全体回
路構成を示す回路図である。第lO図は暗号器の各′ス
イッチの配置およびその種類を示す正面図、第11図は
計算機本体とフロッピーディスクとの接続構造を示す接
続図、第12図は本発明が適用される計′J4.機シス
テムで用いられるコマンドの種類を表示するグラフ図、
第13図はコマンドコードを用いてフロッピーディスク
を管理制御する場合の一例を示す流れ図、第14図はコ
マンド01(書き込み命令)が出力された時の暗号化タ
イムチャート図、第15図は暗号器を起動する際のステ
ップを示すフローチャート、第16図は暗号器を作動禁
止にする際のステップを示すフローチャート、第17図
は暗号内容を暗号器に書き込むステップを示すフローチ
ャート、第18図はデータのソースハンドシエイク転送
のステップを示すフローチャート、第19図は同じくア
クセプタハンドシエイク転送のステソプを示すフローチ
ャート、第20図はパスワードの入力形式を説明する図
、第21図(サ)〜(b)は・くスワードの暗号イヒ,
格納論理のステ少ブを示す流れ図、第22図は保護対象
プログラムの登録手順を示す流れ図、第23図は保護プ
ログラムの実行モジューノレの機能を説明・する流れ図
、第24図はプログラムの登録要求時の起動要求コマン
ドを示す図、第25図はプログラムの実行要求時の起動
要求コマンドを示す図であ′る。 10・・・・・・,計算機本体, 20・・・・・・暗号器、 22,zos・・・・・・読み込みデータ変換用メモ1
ノ、21,209・・・・・・書き込みデータ変換用メ
モ1ノ、11・・・・・・フロッピーディスク(記録媒
体)、I/OA,FDA・・・・・・入カボート、I/
OB,FDB・・・・・・出力ボート、24・・・・・
・・・・データバス切換機構212・・・・・・三人力
NANDゲートデータノ《ス2?3.,−−−−JKF
F切換手段・214・・・・・・JK,FF −278 −279− 280− −281 −282− 手続補正書 昭和沼年ヶ月73日 特許庁長官若杉和夫殿 ”゜000了,♂−2げ2/ρ 昭和58年3月23日提出の特許願 2.発明の名称コンピュータソフトウェアの保護方法3
補正をする者L′びそ0装置 事件との関係特許出願人 711ガナ東京都渋谷区渋谷3丁目26番20号住所 ffi4(ゎヶ、株触社91″か8究所6他”名)代表
者種村良平 4.代理人▼160 ケア東京都新宿区三栄町18番地 植田ビル4階佐伯特許事務所 氏名電話03−351−9136番玉楔レ叫(8106
)弁理士佐伯忠 5.補正命令の日付(自発) A柘11 [株] 6.κ補正の対象 (1),願書 (2〕明細書 (3〕図面 (4)委任状ゝ・\、一・ど 7J補正の内容 (1)1l誉の浄書(内容に変更なし)(2〕明細嘗め
浄書(内容に変更なし)(3)図面の浄書(内容に袈更
なし) (4)委任状を別紙の通り補充する 8.前記以外の補正をする者 事件との関係特許出願人 住所゛東京都港区虎ノ門2丁目8番1o号氏名(名称) 手続補正書 昭和58年C月zB日再視J 特許庁長官若杉和夫殿 l.事件の表示 昭和58年特許願第49290号 2.発明の名称 コンビュータンフトウエアの保護方法 およびその装置 3.補正をする者 事件との関係特許出願人 住所¥;駕WW6M”63丁目26番20号名称株式会
社応用シスデム研究所(他1名)代゛表者・V甘l′ヱ 4.代理人160 住所東京都新宿区三栄町18番地 植田ビル4階佐伯特許事務所 電話03−351−9136番七國扉圃氏名(8106
)弁理士佐伯忠 5.一一一(日付(自発) 6.・補正の対象 (1)明細書の「特許請求の範囲」D欄(2)明細書の
「発明の詳細な訳明」の欄(3)明細書の「図面の簡単
な説明」■欄(4)図面 7.補正の内容 (1)%許請求の範囲を別紙の通シ訂正する。 (2)明細書の第5頁第2行目の「・・・連・・・」を
「・・・運・・・」に訂正する。 (3〕明細書の第6頁第4行目の「・・・幣・・・」を
「・・・蔽・・・」に訂正する。 (4)明細書の第6頁第8行目の「・・・幣・・・」を
「・・・蔽・・・」に訂正する。 (5)明細書め第゛19頁第12行目の「・・・208
・・・」を「・・・209・・・」に訂正する。 (6)明細書の第19頁第13行目の「・・・208・
・」を[・・・209・・・」に訂正する。 (7〕明細書の第19頁第16行目の「・・・209・
・」を「・・・208・・・」に訂正する。 (8)明細書の第19頁第17行目の「・・・209・
・・」を「208・・・」に訂正する。 (9)明細書の第21頁第6行目の「・・・214・・
・」を「・・・215・・・」κ訂正する。 (10)明細書の第21頁第7行目の「・・・,211
・・・」を削除する。 (11)明細書の第22頁第11行目の「215・・・
」を「・・・214・・・」に訂正する。 (12)明細書の第23頁第1行目の「・・・214・
・・」を「・・・215・・・」に訂正する。 (13)明細書の第24頁第2行目の「・・・下段右・
・」を「・・・J−K・・・」に訂正する。 (14)明細書の第24頁第2行目の「・・・213・
・・」を「・・・214・・・」に訂正する。 (15)明細書の第24頁第5行目の「・・・中段右の
・・・」を削除する。 (16)明細書の第25頁第6行目の「・・・214・
・・」を「・・・215・・・」に訂正する。 (17)明細書の第25頁第9行目の「・・・。そして
、・・・」を削除する。 (18)明細書の第26頁第7行目の「・・・214・
・・」を「・・・215・・・」に訂正する。 (19)明細書の第?6頁第18行目の「・・・209
・・・」を「・・・208・・・」に訂正する。 (20)明細書の第26頁第19行目の「・・・208
・・」を「・・・209・・・」に訂正する。 (21)明細書の第28頁第9行目から同第10行目の
「・・・・・・とじ、または・・・・−」を「・・・・
・・,DAN=0とし,・・・・・・」に訂正する。 (22)明細書の第40頁第10行目の「22.208
・・・・・・」をr21,209・・・・・・」に訂正
する。 (23)明細書の第40頁第11行目の「21,209
・・・・・・」をr22,208・・・」に訂正する。 (24)図面の第9図,第14図を別紙の通り訂正する
。 8.前記以外の補正をする者 事件との関係特許出願人 住所東京都港区虎ノ門2丁目8番10号氏名(名称)協
同システム開発株式会社代表者田中芳秋 2、特許請求の範囲 (1)計算機本体から入力された数桁のシくスワードを
各桁の格納アドレスと各桁の値とで排他的論理和をとシ
暗号化した後、その各桁を分離して記録媒体のランダム
な位置に格納し、次いで前記暗号化されたパスワードの
各桁の総論理和と乱数値とで排他的論理和をとシ暗号コ
ードを算出し、これを前記パスワードと同一ファイルに
分離して格納すると共に、前記記録媒体に登録された保
護プログラムの起動時に指定された所定のファイルの入
力デバイス番号に対して被保護プログラムを入力し、次
いで該入力したレコード内容を1桁ずつ前記暗号コード
と排他的論理和をとシその結果とその桁の本来のメモリ
アドレスとで排他的論理和をとシ暗号化した後前記パス
ワードと同一のファイルに登録し、その後前記被保護プ
ログラムとこれに対応するパスワードとを照合し結果が
一致したとき該プログラムをメモリに展開しかつ、該展
開時にメモリアドレスと排他的論理和をと9、更に前記
暗号コ,−ドと排他的論理和をとることによつて前記被
保護プログラムを復元す仝ことを特徴トスるコンピュー
タソフトウエアの保護方法。 (2)計算機本体から送出されたデータの暗号化を行う
書き込みデータ変換用メモリと記録媒体かー ら送られるデータの復号化を行う卦込みデータ変換用メ
モリと、前記計算機本体からの暗号化禁止命令の出力に
より該計算機本体と前記記録媒体との入出力ポート間に
接続されるデータバスを前記メモリから切放して接続し
暗号化、復号化を禁止すると共に前記計算機禾体からの
暗号化許可命令によシ前記データパスを前記メモリを介
して接続するデータバスの切換手段とを備えて成シ、前
記計算機本体からの読み出し命令により前記1』込みデ
ータ変換用メモリを通して前記記録媒体に格納した暗号
化されたデータが前記皿b込みデータ変換用メモリで復
号化され前記計算機本体に口−ディングされるように構
成したことを特徴とするコンピュータソフトウエアの保
護装置。 285
Figure 1 shows a small computer system to which the present invention is applied. A block diagram showing an example, FIG. 2 is a block diagram showing the basic configuration of the encoder according to the present invention, and FIGS. 3 to 6 show the basic procedure of software protection according to the present invention, Fig. 3 is a flowchart showing the format and function of recording a software protection program etc. on a floppy disk, Fig. 4 is a flowchart showing the process from loading to execution of the program according to the present invention, and Fig. Figure 6 is a flowchart showing the steps of a program for creating a floppy disk. Ru. 7 to 9 show the encryptor constituting the software protection device according to the present invention. FIG. 7 shows its front structure, FIG. 8 shows its rear structure, and FIG. 9 shows its back structure. FIG. 2 is a circuit diagram showing the overall circuit configuration. Fig. 10 is a front view showing the arrangement and types of switches of the encoder, Fig. 11 is a connection diagram showing the connection structure between the computer main body and the floppy disk, and Fig. 12 is a plan view to which the present invention is applied. J4. Graphical diagrams displaying the types of commands used in the machine system,
Figure 13 is a flowchart showing an example of managing and controlling a floppy disk using command codes, Figure 14 is an encryption time chart when command 01 (write command) is output, and Figure 15 is an encoder Figure 16 is a flowchart showing the steps to disable the encoder, Figure 17 is a flowchart showing the steps to write the encrypted content into the encoder, and Figure 18 is the flowchart showing the steps to write the encrypted content into the encoder. Flowchart showing the steps of source handshake transfer, FIG. 19 is a flowchart showing the steps of acceptor handshake transfer, FIG. 20 is a diagram explaining the password input format, and FIGS. 21 (sa) to (b). The code for the password is
FIG. 22 is a flowchart showing the procedure for registering a protected program; FIG. 23 is a flowchart explaining the function of the protected program execution module; FIG. 24 is a flowchart showing the program registration request. FIG. 25 is a diagram showing a startup request command when requesting program execution. 10... Computer body, 20... Encryptor, 22, ZOS... Memo 1 for reading data conversion
ノ, 21, 209... Memo for writing data conversion 1, 11... Floppy disk (recording medium), I/OA, FDA... Input port, I/
OB, FDB... Output boat, 24...
...Data bus switching mechanism 212...Three-person NAND gate data node 2?3. ,---JKF
F switching means・214...JK, FF -278 -279- 280- -281 -282- Procedural amendment 73rd year, month and month of Showanuma, Mr. Kazuo Wakasugi, Commissioner of the Japan Patent Office"゜000 completed, ♂-2 2/ρ Patent application filed on March 23, 1982 2. Name of invention Method for protecting computer software 3
Person making the amendment L' Biso0 Related to the device case Patent applicant 711 Gana 3-26-20 Shibuya, Shibuya-ku, Tokyo Address ffi4 (Waga, Kabushisha 91'' or 8 Kyusho 6 and others) Representative Ryohei Saitanemura 4. Agent ▼160 Care Saeki Patent Office, 4th floor, Ueda Building, 18 Sanei-cho, Shinjuku-ku, Tokyo Name: Telephone: 03-351-9136 Number: Tamakusakure (8106)
) Patent attorney Tadashi Saeki 5. Date of amendment order (voluntary) A 11 [shares] 6. Subject of κ amendment (1), Application (2) Specification (3) Drawings (4) Power of attorney ゜・\, 1.7J Contents of amendment (1) 1l Homare's engraving (no change in content) (2) (3) Engraving of the drawings (no changes to the content) (4) Supplementing the power of attorney as shown in the attached document 8. Person making amendments other than the above Address of the patent applicant related to the case゛2-8-1o, Toranomon, Minato-ku, Tokyo Name (Name) Procedural Amendment Revisited on C/ZB, 1982 J Patent Office Commissioner Kazuo Wakasugi L. Indication of Case Patent Application No. 49290, 1983 2. Name of the Invention Method and Device for Protecting Combutan Footwear 3. Person making the amendment Relationship to the case Patent Applicant Address ¥: WW6M” 63-26-20 Name Oyo Sysdem Research Institute Co., Ltd. (and one other person) Representative゛Representative: V あんヱヱ4. Agent 160 Address: 4th floor, Ueda Building, 18 Sanei-cho, Shinjuku-ku, Tokyo Saeki Patent Office Telephone number: 03-351-9136 Nanakoku Tobaku Name (8106)
) Patent attorney Tadashi Saeki 5. 111 (Date (voluntary) 6. Subject of amendment (1) "Claims" column D of the specification (2) "Detailed explanation of the invention" column (3) of the specification "Brief explanation of the drawings" ■ column (4) Drawing 7. Contents of the amendment (1) The scope of the claims will be corrected in the attached document. (2) "-" in the second line of page 5 of the specification.・・Run...'' is corrected to ``...Luck...''. (4) Correct “...” on page 6, line 8 of the specification to “…”. (5) Specification Page 19, line 12, “...208
"..." is corrected to "...209...". (6) "...208..." on page 19, line 13 of the specification.
・" is corrected to "...209...". (7) Page 19, line 16 of the specification “...209.
・” is corrected to “…208…”. (8) Page 19, line 17 of the specification: “...209.
..." is corrected to "208...". (9) “...214...” on page 21, line 6 of the specification
・” is corrected by “...215...”κ. (10) "..., 211" on page 21, line 7 of the specification
..." is deleted. (11) "215..." on page 22, line 11 of the specification.
" is corrected to "...214...". (12) "...214..." in the first line of page 23 of the specification
``...'' is corrected to ``...215...''. (13) In the second line of page 24 of the specification, "...lower right...
・" is corrected to "...J-K...". (14) Page 24, line 2 of the specification: “...213.
"..." is corrected to "...214...". (15) Delete "...in the middle right..." on page 24, line 5 of the specification. (16) "...214..." on page 25, line 6 of the specification.
``...'' is corrected to ``...215...''. (17) Delete "... and..." on page 25, line 9 of the specification. (18) "...214..." on page 26, line 7 of the specification.
``...'' is corrected to ``...215...''. (19) No. of the specification? Page 6, line 18 “...209
..." is corrected to "...208...". (20) “...208” on page 26, line 19 of the specification
"..." is corrected to "...209...". (21) Change "... binding or...-" from line 9 to line 10 on page 28 of the specification to "..."
..., set DAN=0, and correct it to "...". (22) "22.208" on page 40, line 10 of the specification
..." is corrected to "r21,209...". (23) “21,209” on page 40, line 11 of the specification
..." is corrected to "r22,208...". (24) Figures 9 and 14 of the drawings are corrected as shown in the attached sheet. 8. Person making an amendment other than the above Related to the case Patent applicant Address 2-8-10 Toranomon, Minato-ku, Tokyo Name Kyodo System Development Co., Ltd. Representative Yoshiaki Tanaka 2 Claims (1) Computer body After encrypting the several-digit password inputted from the computer by performing exclusive OR with the storage address of each digit and the value of each digit, each digit is separated and stored in a random location on the recording medium. Then, an exclusive OR is performed on the total OR of each digit of the encrypted password and a random value to calculate an encryption code, which is stored separately in the same file as the password, and The protected program is input to the input device number of a predetermined file specified when starting the protected program registered on the recording medium, and then the input record contents are exclusive-ORed with the encryption code one digit at a time. Exclusively OR the result with the original memory address of that digit and encrypt it, register it in the same file as the password, and then compare the protected program with the corresponding password. When the results match, the program is expanded into memory, and at the time of expansion, an exclusive OR is performed with the memory address, and the protected program is also exclusive ORed with the encryption code. Toss computer software protection method characterized by restoring it. (2) A write data conversion memory that encrypts data sent from the computer body, a write data conversion memory that decrypts data sent from the recording medium, and an encryption prohibition instruction from the computer body. The data bus connected between the input/output ports of the computer body and the recording medium is disconnected from the memory and connected, and encryption and decryption are prohibited, and an encryption permission command from the computer body is and a data bus switching means for connecting the data path via the memory, and the encryption data stored in the storage medium through the data conversion memory in response to a read command from the computer main body. A protection device for computer software, characterized in that the data is decoded by the embedded data conversion memory and then transferred to the computer main body. 285

Claims (2)

【特許請求の範囲】[Claims] (1)、計算機本体から入力された数桁のパスワードを
各桁の格納アドレスと各桁の値とで排他的論理和をと9
暗号化した後、その各桁を分離して記録媒体のランダム
な位置に格納し、次いで煎記暗号化されたパスワードの
各桁の総論理和と乱数値とで排他的論.理和をとシ暗号
コードを算出し、これを前記パスワー−ドと同一ファイ
ルに分離して格納すると共に、前記記録媒体に登録され
た保護プログラムの起動時に指定された所定のファイル
の入力デバイス番号に対して被保護プログラムを入力し
、次いで該入力したレコード内容を1桁ずつ前記暗号コ
ードと排他的論理和をとシその結果とその桁の本来のメ
モリアドレスとで排他的論理和をとシ暗号化した後前記
パスワードと同一のファーィルK登録し、その後前記被
保護プログラムとこれに対応するパスワー,ドとを照合
し結果が一致したとき該プログラムζメモリに展開しか
つ、該展開時にメモリアドレス垢排蓚的論理和をとシ、
更に前記暗号コードと排他的論理和をとることによって
前記被保護プログラムを復元することを特徴トスルコン
ピュータソフトウエアの保護方法。
(1) Exclusively OR the several-digit password input from the computer with the storage address of each digit and the value of each digit.
After encrypting, each digit is separated and stored in a random location on a recording medium, and then the total OR of each digit of the encrypted password and a random number are used as exclusive logic. In addition to calculating the encryption code and storing it separately in the same file as the password, the input device number of the predetermined file specified at the time of starting the protection program registered in the recording medium is stored. A protected program is input to the input record, and then the input record contents are exclusive-ORed with the encryption code one digit at a time, and the result is exclusive-ORed with the original memory address of that digit. After encrypting, the same file K as the password is registered, and then the protected program is compared with the corresponding password, and when the results match, the program is expanded into ζ memory, and at the time of expansion, the memory address is Let's do a logical disjunction,
A method for protecting tossled computer software, further comprising restoring the protected program by performing an exclusive OR with the encryption code.
(2)、計算機杢体から送出されたデータの暗号化を行
う読み込みデータ変換用メモリと記録媒体から送られる
データの復号化を行う書き込みデータ変換用メモリと、
前記計算機本体からの暗号化禁止命令の出刃によシ該計
算機本体と前記記録媒体との入出力ポート間に接続され
るデータバスを前記メモリから切放して接続し暗号化,
復号化を禁止すると共に前記計算機本体からの暗号化許
可命一令によシ前記データバスを前記メモリを介して接
続するデータバスの切換手段とを備えて成シ、前記計算
機本体からの読み出し命令によシ前記読み込みデータ変
換用メモリを通して前記記録媒体に格納した暗号化され
たデータが前記書き込みデ−夕変換用メモリで復号化さ
れ前記計算機本体にローデイングされるように構成した
ことを特命とするコンビュータンフトウエアの保護装置
(2) a read data conversion memory that encrypts data sent from the computer body; a write data conversion memory that decrypts data sent from the recording medium;
When an encryption prohibition command is issued from the computer main body, a data bus connected between the input/output port of the computer main body and the recording medium is disconnected from the memory and connected, and the data bus is encrypted.
data bus switching means for prohibiting decryption and connecting the data bus via the memory in response to an encryption permission command from the computer main body; It is specially ordered that the encrypted data stored in the recording medium through the read data conversion memory is decrypted by the write data conversion memory and loaded into the computer main body. Protective device for combatant footwear.
JP58049290A 1983-03-23 1983-03-23 Method and device for protecting computer software Pending JPS59173847A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58049290A JPS59173847A (en) 1983-03-23 1983-03-23 Method and device for protecting computer software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58049290A JPS59173847A (en) 1983-03-23 1983-03-23 Method and device for protecting computer software

Publications (1)

Publication Number Publication Date
JPS59173847A true JPS59173847A (en) 1984-10-02

Family

ID=12826763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58049290A Pending JPS59173847A (en) 1983-03-23 1983-03-23 Method and device for protecting computer software

Country Status (1)

Country Link
JP (1) JPS59173847A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6358538A (en) * 1986-08-29 1988-03-14 Hitachi Ltd Software protecting system
JPS63127334A (en) * 1986-11-05 1988-05-31 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Withdrawal and conditioning execution right from software protection mechanism in safety
EP0302710A2 (en) * 1987-08-05 1989-02-08 International Business Machines Corporation A method of controlling the use of computer programs
JPH0744375A (en) * 1993-07-29 1995-02-14 Nec Corp Ciphered data processor
JP2016522931A (en) * 2013-05-03 2016-08-04 サイトリックス システムズ,インコーポレイテッド Blocking password attacks
WO2019087309A1 (en) * 2017-10-31 2019-05-09 三菱重工機械システム株式会社 Information processing device, method for controlling information processing device, and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (en) * 1975-02-03 1976-08-05

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (en) * 1975-02-03 1976-08-05

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6358538A (en) * 1986-08-29 1988-03-14 Hitachi Ltd Software protecting system
JPS63127334A (en) * 1986-11-05 1988-05-31 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Withdrawal and conditioning execution right from software protection mechanism in safety
JPH0332813B2 (en) * 1986-11-05 1991-05-14 Intaanashonaru Bijinesu Mashiinzu Corp
EP0302710A2 (en) * 1987-08-05 1989-02-08 International Business Machines Corporation A method of controlling the use of computer programs
JPH0744375A (en) * 1993-07-29 1995-02-14 Nec Corp Ciphered data processor
JP2016522931A (en) * 2013-05-03 2016-08-04 サイトリックス システムズ,インコーポレイテッド Blocking password attacks
WO2019087309A1 (en) * 2017-10-31 2019-05-09 三菱重工機械システム株式会社 Information processing device, method for controlling information processing device, and program
KR20200060434A (en) * 2017-10-31 2020-05-29 미츠비시 쥬고 기카이 시스템 가부시키가이샤 Information processing device, control method and program of information processing device
GB2581652A (en) * 2017-10-31 2020-08-26 Mitsubishi Heavy Ind Mach Systems Ltd Information processing device, method for controlling information processing device, and program
JPWO2019087309A1 (en) * 2017-10-31 2020-11-19 三菱重工機械システム株式会社 Information processing device, control method and program of information processing device
US11288374B2 (en) 2017-10-31 2022-03-29 Mitsubishi Heavy Industries Machinery Systems. Ltd. Information processing device, method for controlling information processing device, and program
GB2581652B (en) * 2017-10-31 2022-08-24 Mitsubishi Heavy Ind Mach Systems Ltd Information processing device, method for controlling information processing device, and program

Similar Documents

Publication Publication Date Title
US5748744A (en) Secure mass storage system for computers
US6158004A (en) Information storage medium and security method thereof
US5155680A (en) Billing system for computing software
US4817140A (en) Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US4796181A (en) Billing system for computer software
CN1312876C (en) Encrypted/deencrypted stored data by utilizing disaccessible only secret key
JP3713141B2 (en) How to prevent unauthorized execution of programs
US6457126B1 (en) Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
US4747139A (en) Software security method and systems
US5047928A (en) Billing system for computer software
EP0768601B1 (en) Device for executing enciphered program
CN103778075B (en) Security management unit, host controller interface including same, method operating host controller interface
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
JP4610557B2 (en) DATA MANAGEMENT METHOD, PROGRAM THEREOF, AND PROGRAM RECORDING MEDIUM
CN102495982B (en) Process threading-based copy-protection system and copy-protection storage medium
TW200830830A (en) Hard disc streaming cryptographic operations with embedded authentication
EP0266748B1 (en) A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
CA2308755A1 (en) Reconfigurable secure hardware apparatus and method of operation
US20090052671A1 (en) System and method for content protection
JPS5947646A (en) Computer data processing apparatus and method
JP2002518727A (en) How to control the execution of software products
US20040117639A1 (en) Secure driver
JPS59173847A (en) Method and device for protecting computer software
CN1637851B (en) Music apparatus with selective decryption of usable component in loaded composite content