JPH096608A - Software protection system - Google Patents

Software protection system

Info

Publication number
JPH096608A
JPH096608A JP7156538A JP15653895A JPH096608A JP H096608 A JPH096608 A JP H096608A JP 7156538 A JP7156538 A JP 7156538A JP 15653895 A JP15653895 A JP 15653895A JP H096608 A JPH096608 A JP H096608A
Authority
JP
Japan
Prior art keywords
execution
order
software
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7156538A
Other languages
Japanese (ja)
Other versions
JP3570781B2 (en
Inventor
Natsume Matsuzaki
なつめ 松崎
Motoji Omori
基司 大森
Makoto Tatebayashi
誠 館林
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP15653895A priority Critical patent/JP3570781B2/en
Publication of JPH096608A publication Critical patent/JPH096608A/en
Application granted granted Critical
Publication of JP3570781B2 publication Critical patent/JP3570781B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE: To reduce the number or digits or data, especially, a random value on a communication line at the time of using the communication line to acquire the execution right of software. CONSTITUTION: A software executer 101 generates the executer ID and order information and sends them to an order manager 102 to order the software. The order manager 102 generates an execution right generation password, which is information dependent upon received order information and executer secret information corresponding to the executer ID, and sends it to the software executer 101. The software executer 101 discriminates whether this execution right generation password matches with order information sent to the order manager 102 before and its own executer secret information or not; and if it matches, the software executer 101 generates the execution right of software corresponding to order information to execute this software.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、ソフトウェア保護シス
テムに関し、より特定的には、ソフトウェアを不活性な
状態で配付しておき、電話などの通信路を用いてソフト
ウェアを活性化するための実行権を獲得するソフトウェ
ア保護システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software protection system, and more specifically, to distributing software in an inactive state and activating the software using a communication path such as a telephone. It relates to a software protection system that acquires rights.

【0002】[0002]

【従来の技術】近年、種々のマルチメディア機器が開発
され、ゲームや教育用のソフトウェアを始めとする多く
の有償マルチメディアソフトウェアが販売されている。
ところが、そのソフトウェアの保護は不完全であり、不
正にコピーされたソフトウェアが数多く出回っているの
が現状である。このような不正コピーを防ぐために特許
法や著作権法等法律の規制があるが、同時にメカニズム
面からのソフトウェア保護が強く要望されている。
2. Description of the Related Art In recent years, various multimedia devices have been developed and many paid multimedia software such as games and educational software have been sold.
However, the protection of the software is incomplete, and there is a lot of illegally copied software. In order to prevent such illegal copying, there are regulations such as patent law and copyright law, but at the same time, there is a strong demand for software protection in terms of mechanism.

【0003】例えば、フロッピーディスク等の、ソフト
ウェアを格納する記録媒体のフォーマットを特殊なもの
にすることによって、OS(オペレーティング・システ
ム)で提供されているコピー機能では複製ができないよ
うにする方法がある。しかしながら、このような方法で
もビットごとにコピーを行なうタイプのコピーツールを
用いれば、多くの場合複製が可能である。また、正規の
ユーザにとっては、バックアップが作れないといった不
都合も生じる。
For example, there is a method of making a recording medium for storing software, such as a floppy disk, a special format so that copying cannot be performed by a copy function provided by an OS (operating system). . However, even with such a method, in many cases, duplication is possible by using a copy tool of the type that makes a copy bit by bit. In addition, for a legitimate user, the inconvenience that backup cannot be made occurs.

【0004】また、ソフトウェアを暗号化してコピー防
止を行なう方法が提案されている。この方法では、ソフ
トウェアは暗号化されて不活性な状態でユーザに配付さ
れる。そして、ユーザの注文により、そのソフトウェア
を特定の機器で活性化するための実行権(以下の従来例
では、暗号化ファイルキー)が配付される。この実行権
は、特定の機器に依存した情報なので、これを用いて他
の機器で同じソフトウェアを活性化することはできな
い。この方法は、例えば特公平2−60007号公報に
開示されている。その構成を図6に示す。なおこの図6
は、特公平2−60007号公報の第1〜第6図から説
明上必要な部分を取り出して、1つの図にまとめ直した
ものである。
Further, a method of encrypting software to prevent copy is proposed. In this method, the software is encrypted and distributed to users in an inactive state. Then, according to a user's order, an execution right (an encrypted file key in the following conventional example) for activating the software on a specific device is distributed. Since this execution right is information that depends on a specific device, it cannot be used to activate the same software in another device. This method is disclosed in, for example, Japanese Patent Publication No. 2-60007. FIG. 6 shows the configuration. Note that this FIG.
Is a diagram in which the parts necessary for explanation are taken out from FIGS.

【0005】図6において、このソフトウェア保護シス
テムは、ソフトウェアを実行するソフト実行器601
と、ソフト実行器601に対してソフトウェアを配付す
る注文管理器602とを備えている。
In FIG. 6, the software protection system includes a software executor 601 for executing software.
And an order management unit 602 that distributes software to the software execution unit 601.

【0006】ソフト実行器601は、暗号化ソフトウェ
ア格納部603と、注文作成部604と、実行器ID格
納部605と、実行器IDに対応した固有の実行器暗号
キーを格納する暗号キー格納部606と、注文管理器6
02から受け取った暗号化ファイルキーを格納する暗号
化ファイルキー格納部607と、暗号化ファイルキーを
実行器暗号キーで復号してファイルキーを獲得する暗号
化ファイルキー復号部608と、ファイルキーを用いて
暗号化ソフトウェアを復号し実行するソフト復号実行部
609とを含む。このような構成のソフト実行器601
は、注文作成部604での注文と、実行器IDとを注文
管理器602に伝えて、暗号化ソフトウェアを実行する
ための暗号化ファイルキーを要求する。
The software execution unit 601 includes an encrypted software storage unit 603, an order creation unit 604, an execution unit ID storage unit 605, and an encryption key storage unit for storing a unique execution unit encryption key corresponding to the execution unit ID. 606 and order manager 6
The encrypted file key storage unit 607 for storing the encrypted file key received from 02, the encrypted file key decryption unit 608 for decrypting the encrypted file key with the execution device encryption key to obtain the file key, and the file key And a software decryption execution unit 609 that decrypts and executes encrypted software using the software. The software execution unit 601 having such a configuration
Notifies the order management unit 602 of the order in the order creation unit 604 and the execution unit ID, and requests an encrypted file key for executing the encryption software.

【0007】注文管理器602は、すべてのソフトウェ
アのファイルキーを格納しているファイルキー格納部6
10と、すべてのソフト実行器の実行器暗号キーを格納
している実行器暗号キー格納部611と、ファイルキー
を指定の実行器暗号キーで暗号化して暗号化ファイルキ
ーを生成する暗号化ファイルキー生成部612とを含
む。このような構成の注文管理器602は、ソフト実行
器601から指定されたソフトウェアのファイルキーを
ファイルキー格納部610から取り出し、また実行器暗
号キー格納部611から実行器IDに対応した暗号キー
を取り出す。
The order manager 602 includes a file key storage unit 6 that stores the file keys of all software.
10, an execution unit encryption key storage unit 611 storing execution unit encryption keys of all software execution units, and an encrypted file for encrypting a file key with a specified execution unit encryption key to generate an encrypted file key. And a key generation unit 612. The order management unit 602 having such a configuration retrieves the file key of the software specified by the software execution unit 601 from the file key storage unit 610, and also outputs the encryption key corresponding to the execution unit ID from the execution unit encryption key storage unit 611. Take it out.

【0008】次に、図6に示す従来のソフトウェア保護
システムの動作を説明する。暗号化ソフトウェアは、ソ
フトウェア固有のファイルキーで元のソフトウェアを暗
号化したものである。この暗号化ソフトウェアは、複数
個まとめられて、予め例えばCD−ROMなどの記録媒
体に格納され、ソフト実行器601に配付されている。
配布された暗号化ソフトウェアは、暗号化ソフトウェア
格納部603に格納されている。暗号化ソフトウェア
は、これだけでは実行ができない不活性のソフトウェア
である。実行を希望する場合には、注文作成部604
で、注文のソフトウェアのIDを指定し、また、実行器
ID格納部605に格納されているIDを注文管理器6
02に通知して注文を行なう。なお、この注文は、実用
的には電話などを用いて行なわれる。
Next, the operation of the conventional software protection system shown in FIG. 6 will be described. The encrypted software is the original software encrypted with a file key unique to the software. A plurality of pieces of this encrypted software are stored in advance in a recording medium such as a CD-ROM and distributed to the software execution unit 601.
The distributed encrypted software is stored in the encrypted software storage unit 603. Cryptographic software is inactive software that cannot be executed by itself. If you want to execute, order creation unit 604
Specify the software ID of the order, and specify the ID stored in the execution device ID storage unit 605 to the order manager 6
02 to place an order. Note that this order is practically made using a telephone or the like.

【0009】注文管理器602において、ファイルキー
格納部610は、ソフトIDを索引としてすべてのソフ
トウェアのファイルキーを格納している。また、実行器
暗号キー格納部611は、実行器IDを索引としてすべ
ての実行器暗号キーを格納して管理している。そして、
ソフト実行器601から注文を受け取った注文管理器6
02は、ファイルキー格納部610から注文のソフトウ
ェアのファイルキーを獲得し、暗号化フィイルキー生成
部612において、このファイルキーを、該当の実行器
の暗号キーで暗号化して暗号化ファイルキーを作成す
る。そして、この暗号化ファイルキーをソフト実行器6
01に通知する。
In the order manager 602, the file key storage unit 610 stores the file keys of all the software using the software ID as an index. The execution unit encryption key storage unit 611 stores and manages all execution unit encryption keys using the execution unit ID as an index. And
Order manager 6 that has received an order from the software execution unit 601
02 acquires the file key of the ordered software from the file key storage unit 610, and the encryption file key generation unit 612 encrypts this file key with the encryption key of the relevant execution unit to create an encrypted file key. . Then, this encrypted file key is used by the software execution unit 6
Notify 01.

【0010】暗号化ファイルキーを受け取ったソフト実
行器100は、これを暗号化ファイルキー格納部107
に格納しておく。そして、ソフトウェア実行時に、暗号
化ファイルキー復号部108は、暗号化ファイルキー格
納部107に格納された暗号化ファイルキーを、実行器
暗号キー格納部106に格納された自分の暗号キーで復
号して、ファイルキーを獲得する。ソフト復号実行部1
09は、暗号化ファイルキー復号部108で求められた
ファイルキーで暗号化ソフトウェアを復号し、ソフトウ
ェアを実行する。なお、暗号化ファイルキーは、その実
行器にのみ有効な情報なので、通信路や格納部から他人
に獲得されても使用はできない。
Upon receiving the encrypted file key, the software execution unit 100 stores it in the encrypted file key storage unit 107.
Stored in. Then, when executing the software, the encrypted file key decryption unit 108 decrypts the encrypted file key stored in the encrypted file key storage unit 107 with its own encryption key stored in the execution unit encryption key storage unit 106. To get the file key. Soft decryption execution unit 1
09 decrypts the encrypted software with the file key obtained by the encrypted file key decryption unit 108, and executes the software. Since the encrypted file key is valid only for the execution unit, it cannot be used even if the encrypted file key is acquired by another person from the communication path or the storage unit.

【0011】[0011]

【発明が解決しようとする課題】しかしながら、上記の
ような従来のソフトウェア保護システムでは、ソフトウ
ェアの注文と、暗号化ファイルキーの受け取りとがすべ
て電話を介して行われるものとすると、以下に説明する
ように電話で伝える情報が多くなり、実用性に欠けたも
のになる。
However, in the conventional software protection system as described above, it is assumed that the ordering of the software and the receipt of the encrypted file key are all carried out via the telephone, which will be described below. As you can see, the amount of information that can be transmitted over the phone is so large that it becomes impractical.

【0012】まず、ファイルキーと実行器暗号キーのビ
ット数について述べる。ファイルキーは、元のソフトウ
ェアを暗号化するための鍵である。また、実行器暗号キ
ーは、このファイルキーを暗号化するための鍵である、
ところで、ここでの暗号化には、秘密鍵ブロック暗号を
用いるのが一般的である。秘密鍵ブロック暗号として
は、米国で最も普及している暗号方式であるDES(D
ata Encryption Standard)、
その後日本で開発されたFEAL(Fast data
Encipherment Algorithm)な
どが挙げられる。これらいずれの暗号化方式を採用する
場合でも、安全性を確保するため、鍵のビット数は64
ビット程度必要であるというのが現状での認識である。
従って、ファイルキーと実行器暗号キーとは、それぞれ
64ビット程度のデータとなる。なお、DESについて
はFIP PUB 46, NBS Jan.,197
7に、FEALについてはA.Shimizu &
S.Miyaguchi:“Fast Data En
cipherment Algorithm FEA
L”, Advances in Cryptolog
y−EUROCRYPT’87, Springer書
店に、それぞれ詳細に述べられている。
First, the bit numbers of the file key and the executor encryption key will be described. The file key is a key for encrypting the original software. The execution device encryption key is a key for encrypting this file key,
By the way, a secret key block cipher is generally used for the encryption here. As the private key block cipher, DES (D
ata Encryption Standard),
FEAL (Fast data) developed in Japan after that
Encipherment Algorithm) and the like. Regardless of which of these encryption methods is used, the number of bits in the key is 64 to ensure security.
The current recognition is that a bit is needed.
Therefore, each of the file key and the execution device encryption key is data of about 64 bits. Regarding DES, FIP PUB 46, NBS Jan. , 197
7. For FEAL, A. Shimizu &
S. Miyaguchi: "Fast Data En
cipherment Algorithm FEA
L ", Advances in Cryptolog
y-EUROCRYPT'87, Springer Bookstore, respectively.

【0013】次に、暗号化ファイルキーのビット数につ
いて述べる。暗号化ファイルキーは、ファイルキーを実
行器暗号キーで暗号化したものである。上述したよう
に、ファイルキーおよび実行器暗号キーは、64ビット
程度は必要であるため、この暗号化ファイルキーも64
ビット程度の値となる。64ビットは、例えば10進の
数字で表すとすると、ほぼ20桁くらいである。ところ
で、この暗号化ファイルキーは、注文管理器602を操
作するオペレータから、ソフト実行器601を操作する
ユーザに対して、電話により口頭で伝えられる。さら
に、ソフト実行器601のオペレータは、伝えられた暗
号化ファイルキーを、ソフト実行器601に入力する必
要がある。しかしながら、このように長い桁になると、
言い間違え、聞き間違え、入力間違えの可能性が非常に
大きくなり、実用的に問題が生じる。
Next, the number of bits of the encrypted file key will be described. The encrypted file key is the file key encrypted with the execution device encryption key. As described above, since the file key and the execution device encryption key require about 64 bits, this encryption file key also needs to be 64 bits.
It becomes a value of about a bit. If 64 bits are represented by a decimal number, for example, there are about 20 digits. By the way, the encrypted file key is verbally transmitted by telephone from the operator who operates the order management unit 602 to the user who operates the software execution unit 601. Further, the operator of the soft executor 601 needs to input the transmitted encrypted file key to the soft executor 601. However, with such a long digit,
The possibility of making a mistake in making a mistake, making a mistake in making a mistake, and making a mistake in making an input becomes very large, which causes a practical problem.

【0014】逆に、上記実用性を考慮して暗号化ファイ
ルキーの桁数を小さくすると、これに伴いファイルキー
や実行暗号キーのビット数が少なくなり、安全性が低下
してしまう。
On the contrary, if the number of digits of the encrypted file key is reduced in consideration of the above practicality, the number of bits of the file key and the execution encryption key is reduced accordingly, and the security is lowered.

【0015】また、上記従来例では、1つのソフトウェ
アの注文に対して1つの暗号化ファイルキーが対応す
る。従って、N個のソフトウェアの注文に対しては、伝
える情報量はN倍となる。
Further, in the above conventional example, one encrypted file key corresponds to one software order. Therefore, for N software orders, the amount of information to be transmitted is N times.

【0016】なお、上記従来例では、ソフトウェアに対
する暗号化ファイルキーを一旦獲得した後は、そのソフ
トウェアを何度でも実行できる、いわば「実行権買い取
り式」になっている。しかしながら、ソフトウェアの種
類によっては、ソフトウェアの使用量に応じて料金を支
払う形態の方がむしろ都合が良い場合がある。この形態
では、たとえば、注文管理器からうけとった実行権を用
いて、所定の回数だけの実行が可能となる。
[0016] In the above-mentioned conventional example, after the encrypted file key for the software is once acquired, the software can be executed any number of times, that is, the "execution right purchase type". However, depending on the type of software, it may be more convenient to pay a fee according to the amount of software used. In this form, for example, it is possible to execute a predetermined number of times by using the execution right received from the order manager.

【0017】本発明の第1の目的は、安全性を劣化させ
ずに(例えば、暗号の鍵のビット数を削減せずに)、ソ
フト実行器と注文管理器との間の情報量を削減すること
のできるソフトウェア保護システムを提供することであ
る。
The first object of the present invention is to reduce the amount of information between the software execution unit and the order management unit without degrading the security (for example, without reducing the bit number of the encryption key). It is to provide a software protection system that can do.

【0018】本発明の第2の目的は、ソフト実行器と注
文管理器との間の情報量が、注文するソフトの個数に依
存しない(すなわち、N個のソフトを注文する場合の情
報量が、1個ソフトを注文する場合の情報量と同じにな
る)ようなソフトウェア保護システムを提供することで
ある。
A second object of the present invention is that the amount of information between the software executor and the order manager does not depend on the number of pieces of software to be ordered (that is, the amount of information when ordering N pieces of software is It is the same as the amount of information when ordering one piece of software).

【0019】本発明の第3の目的は、回数制限等の条件
付きの実行権に柔軟に対応するソフトウェア保護システ
ムを提供することである。
A third object of the present invention is to provide a software protection system that flexibly responds to execution rights with conditions such as a limited number of times.

【0020】[0020]

【課題を解決するための手段】請求項1に係る発明は、
提供されたソフトウェアを実行する1つ以上のソフト実
行器と、各ソフト実行器と通信経路を介して接続され、
かつ各ソフト実行器から受けたソフトウェアの注文を管
理する注文管理器とを備えたソフトウェア保護システム
であって、各ソフト実行器は、固有の実行器IDを格納
する実行器ID格納手段と、固有の実行器秘密情報を格
納する第1の秘密情報格納手段と、1つ以上のソフトウ
ェアの実行権の注文情報を作成して蓄積保持する注文作
成手段とを含み、実行器IDおよび注文情報は、通信路
を介して注文管理器に送付され、注文管理器は、各ソフ
ト実行器に格納された全ての実行器秘密情報を格納する
第2の秘密情報格納手段と、ソフト実行器から受け取っ
た実行器IDに対応する実行器秘密情報を第2の秘密情
報格納手段から獲得し、この獲得した実行器秘密情報お
よびソフト実行器から受け取った注文情報に依存した実
行権生成パスワードを生成する実行権生成パスワード生
成手段とを含み、実行権生成パスワードは、通信路を介
してソフト実行器に送付され、各ソフト実行器は、さら
に注文作成手段に蓄積保持された注文情報と、第1の秘
密情報格納手段に格納された実行器秘密情報とを用い
て、注文管理器から受け取った実行権生成パスワードの
正当性を検査する実行権生成パスワード検査手段と、実
行権生成パスワード検査手段による検査の結果、実行権
生成パスワードの正当性が確認されたときに、注文作成
手段に蓄積保持された注文情報に基づいて、注文された
ソフトウェアの実行権を生成する実行権生成手段と、実
行権が存在するソフトウェアを、当該実行権に示される
実行条件に従って実行するソフト実行手段とを含んでい
る。
The invention according to claim 1 is
One or more soft executors that execute the provided software and are connected to each soft executor via a communication path,
A software protection system including an order management unit that manages software orders received from each software execution unit, wherein each software execution unit includes an execution unit ID storage unit that stores a unique execution unit ID, and a unique execution unit ID storage unit. Of the execution unit secret information, and an order creation unit for creating and storing the order information of the execution right of one or more software, and the execution unit ID and the order information are: The order management unit is sent via the communication path to the order management unit, and the order management unit stores second execution secret information storing means for storing all execution unit secret information stored in each software execution unit, and the execution received from the software execution unit. The execution device secret information corresponding to the execution device ID is acquired from the second secret information storage means, and the execution right generation password depends on the acquired execution device secret information and the order information received from the software execution device. And the execution right generation password is transmitted to the software execution unit via the communication path, and each software execution unit further stores the order information stored and held in the order creation unit, An execution right generation password checking means for checking the validity of the execution right generation password received from the order management device using the execution device secret information stored in the first secret information storage means, and an execution right generation password checking means When the validity of the execution right generation password is confirmed as a result of the inspection by the, the execution right generation means for generating the execution right of the ordered software based on the order information accumulated and held in the order generation means, and the execution Software execution means for executing the software for which the right exists according to the execution condition indicated by the execution right.

【0021】請求項2に係る発明は、請求項1の発明に
おいて、実行権生成パスワード生成手段は、ソフト実行
器から受け取った注文情報と、第2の秘密情報格納手段
から獲得した実行器秘密情報とを、出力が入力ビットの
すべてに関係するようなデータ圧縮関数に入力し、この
データ圧縮関数の出力結果を、実行権生成パスワードと
して出力し、実行権生成パスワード検査手段は、注文作
成手段に蓄積保持された注文情報と、第1の秘密情報格
納手段に格納された実行器秘密情報とを、実行権生成パ
スワード生成手段で用いているデータ圧縮関数と同じデ
ータ圧縮関数に入力し、その出力結果が注文管理器から
受け取った実行権生成パスワードと一致したとき、当該
実行権生成パスワードが正当であると判断することを特
徴とする。
According to a second aspect of the present invention, in the first aspect of the invention, the execution right generation password generation means has the order information received from the software execution device and the execution device secret information acquired from the second secret information storage means. Is input to the data compression function whose output is related to all of the input bits, and the output result of this data compression function is output as the execution right generation password. The order information stored and held and the execution device secret information stored in the first secret information storage means are input to the same data compression function as the data compression function used in the execution right generation password generation means, and the output thereof. When the result matches the execution right generation password received from the order management device, the execution right generation password is determined to be valid.

【0022】請求項3に係る発明は、請求項1の発明に
おいて、注文管理器は、公開鍵署名方式に用いられる秘
密情報を格納する第3の秘密情報格納手段をさらに含
み、実行権生成パスワード生成手段は、第3の秘密情報
格納手段に格納された秘密情報と、第2の秘密情報格納
手段から獲得した実行器秘密情報と、ソフト実行器から
受け取った注文情報と用いて、公開鍵署名方式によって
デジタル署名された実行権生成パスワードを生成し、ソ
フト実行器は、公開鍵署名方式に用いられる秘密情報に
対応した公開情報を格納する公開情報格納手段をさらに
含み、実行権生成パスワード検査手段は、公開情報格納
手段に格納された公開情報と、注文作成手段に蓄積保持
された注文情報と、第1の秘密情報格納手段に格納され
た実行器秘密情報とを用いて、公開鍵署名方式に対応し
た署名確認方式によって、注文管理器から受け取った実
行権生成パスワードの正当性を検査することを特徴とす
る。
According to a third aspect of the present invention, in the first aspect of the invention, the order management device further includes third secret information storage means for storing secret information used in the public key signature system, and the execution right generation password. The generation unit uses the secret information stored in the third secret information storage unit, the execution unit secret information acquired from the second secret information storage unit, and the order information received from the software execution unit to generate a public key signature. The execution right generation password digitally signed by the method, and the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method, and the execution right generation password checking means. Is the public information stored in the public information storage means, the order information accumulated and held in the order creation means, and the execution unit secret information stored in the first secret information storage means. Used, the signature verification system corresponding to the public key signature scheme, characterized in that checking the validity of the execution right generated password received from the order management device.

【0023】請求項4に係る発明は、提供されたソフト
ウェアを実行する1つ以上のソフト実行器と、各ソフト
実行器と通信経路を介して接続され、かつ各ソフト実行
器から受けたソフトウェアの注文を管理する注文管理器
とを備えたソフトウェア保護システムであって、各ソフ
ト実行器は、固有の実行器IDを格納する実行器ID格
納手段と、固有の実行器秘密情報を格納する第1の秘密
情報格納手段と、1つ以上のソフトウェアの実行権の注
文情報を作成して蓄積保持する注文作成手段と、注文作
成手段で注文情報が作成される毎に変化する変化値を生
成して蓄積保持する変化値生成手段とを含み、実行器I
D,注文情報および変化値は、通信路を介して注文管理
器に送付され、注文管理器は、各ソフト実行器に格納さ
れた全ての実行器秘密情報を格納する第2の秘密情報格
納手段と、ソフト実行器から受け取った実行器IDに対
応する実行器秘密情報を第2の秘密情報格納手段から獲
得し、この獲得した実行器秘密情報,ソフト実行器から
受け取った注文情報および変化値に依存した実行権生成
パスワードを生成する実行権生成パスワード生成手段と
を含み、実行権生成パスワードは、通信路を介してソフ
ト実行器に送付され、各ソフト実行器は、さらに注文作
成手段に蓄積保持された注文情報と、変化値生成手段に
蓄積保持された変化値と、第1の秘密情報格納手段に格
納された実行器秘密情報とを用いて、注文管理器から受
け取った実行権生成パスワードの正当性を検査する実行
権生成パスワード検査手段と、実行権生成パスワード検
査手段による検査の結果、実行権生成パスワードの正当
性が確認されたときに、注文作成手段に蓄積保持された
注文情報に基づいて、注文されたソフトウェアの実行権
を生成する実行権生成手段と、実行権が存在するソフト
ウェアを、当該実行権に示される実行条件に従って実行
するソフト実行手段とを含んでいる。
According to a fourth aspect of the present invention, one or more software execution units that execute the provided software, and software that is connected to each software execution unit via a communication path and is received from each software execution unit. A software protection system including an order manager that manages orders, wherein each software executor stores an executor ID storage unit that stores a unique executor ID, and a first executor secret information. Secret information storing means, order creating means for creating and accumulating and storing order information of one or more software execution rights, and generating a change value that changes every time the order creating means creates order information. And a change value generating means for storing and holding, and an executor I
D, the order information and the change value are sent to the order manager via the communication channel, and the order manager stores the second secret information storage means for storing all the secret information of the execution units stored in each software execution unit. And the execution device secret information corresponding to the execution device ID received from the software execution device, is acquired from the second secret information storage means, and the acquired execution device secret information, the order information received from the software execution device, and the change value are obtained. And an execution right generation password generating means for generating a dependent execution right generation password, and the execution right generation password is sent to the software execution device via the communication path, and each software execution device further stores and holds it in the order creation means. The execution right received from the order management unit using the ordered information, the change value accumulated and held in the change value generation unit, and the execution unit secret information stored in the first secret information storage unit. Order information stored and held in the order creating means when the validity of the execution right generation password is confirmed as a result of the inspection by the execution right generation password checking means for checking the validity of the password and the execution right generation password checking means. The execution right generating means for generating the execution right of the ordered software based on the above, and the software execution means for executing the software having the execution right according to the execution condition indicated by the execution right.

【0024】請求項5に係る発明は、請求項4の発明に
おいて、実行権生成パスワード生成手段は、ソフト実行
器から受け取った注文情報および変化値と、第2の秘密
情報格納手段から獲得した実行器秘密情報とを、出力が
入力ビットのすべてに関係するようなデータ圧縮関数に
入力し、このデータ圧縮関数の出力結果を、実行権生成
パスワードとして出力し、実行権生成パスワード検査手
段は、注文作成手段に蓄積保持された注文情報と、変化
値生成手段に蓄積保持された変化値と、第1の秘密情報
格納手段に格納された実行器秘密情報とを、実行権生成
パスワード生成手段で用いているデータ圧縮関数と同じ
データ圧縮関数に入力し、その出力結果が注文管理器か
ら受け取った実行権生成パスワードと一致したとき、当
該実行権生成パスワードが正当であると判断することを
特徴とする。
According to a fifth aspect of the invention, in the invention of the fourth aspect, the execution right generation password generation means obtains the order information and the change value received from the software execution device, and the execution obtained from the second secret information storage means. The device secret information is input to a data compression function whose output is related to all of the input bits, and the output result of this data compression function is output as an execution right generation password. The order information stored and held in the creating means, the change value stored and held in the change value generating means, and the executor secret information stored in the first secret information storing means are used in the execution right generating password generating means. Input to the same data compression function as the existing data compression function, and when the output result matches the execution right generation password received from the order manager, the execution right generation path It is over de characterized in that it is determined that the legitimate.

【0025】請求項6に係る発明は、提供されたソフト
ウェアを実行する1つ以上のソフト実行器と、各ソフト
実行器と通信経路を介して接続され、かつ各ソフト実行
器から受けたソフトウェアの注文を管理する注文管理器
とを備えたソフトウェア保護システムであって、各ソフ
ト実行器は、固有の実行器IDを格納する実行器ID格
納手段と、固有の実行器秘密情報を格納する第1の秘密
情報格納手段と、1つ以上のソフトウェアの実行権の注
文情報を作成して蓄積保持する注文作成手段と、注文作
成手段で注文情報が作成される毎にタイムスタンプを生
成して蓄積保持する第1のタイムスタンプ生成手段とを
含み、実行器IDおよび注文情報は、通信路を介して注
文管理器に送付され、注文管理器は、ソフト実行器から
実行器IDおよび注文情報を受け取ると、タイムスタン
プを生成する第2のタイムスタンプ生成手段と、各ソフ
ト実行器に格納された全ての実行器秘密情報を格納する
第2の秘密情報格納手段と、ソフト実行器から受け取っ
た実行器IDに対応する実行器秘密情報を第2の秘密情
報格納手段から獲得し、この獲得した実行器秘密情報
と、ソフト実行器から受け取った注文情報と、第2のタ
イムスタンプ生成手段で生成されたタイムスタンプとに
依存した実行権生成パスワードを生成する実行権生成パ
スワード生成手段とを含み、実行権生成パスワードは、
通信路を介してソフト実行器に送付され、各ソフト実行
器は、さらに注文作成手段に蓄積保持された注文情報
と、第1のタイムスタンプ生成手段に蓄積保持されたタ
イムスタンプと、第1の秘密情報格納手段に格納された
実行器秘密情報とを用いて、注文管理器から受け取った
実行権生成パスワードの正当性を検査する実行権生成パ
スワード検査手段と、実行権生成パスワード検査手段に
よる検査の結果、実行権生成パスワードの正当性が確認
されたときに、注文作成手段に蓄積保持された注文情報
に基づいて、注文されたソフトウェアの実行権を生成す
る実行権生成手段と、実行権が存在するソフトウェア
を、当該実行権に示される実行条件に従って実行するソ
フト実行手段とを含んでいる。
According to a sixth aspect of the present invention, one or more software execution units that execute the provided software, and software that is connected to each software execution unit via a communication path and received from each software execution unit. A software protection system including an order manager that manages orders, wherein each software executor stores an executor ID storage unit that stores a unique executor ID, and a first executor secret information. Secret information storage means, an order creation means for creating and storing the order information of the execution right of one or more software, and a time stamp for creating and storing the order information every time the order creation means creates the order information. The execution unit ID and the order information are sent to the order management unit via the communication channel, and the order management unit sends the execution unit ID and the execution unit ID from the software execution unit. When the sentence information is received, second time stamp generating means for generating a time stamp, second secret information storing means for storing secret information of all the execution units stored in each software execution unit, and the software execution unit The execution device secret information corresponding to the received execution device ID is acquired from the second secret information storage means, and the acquired execution device secret information, the order information received from the software execution device, and the second time stamp generation means. The execution right generation password includes an execution right generation password generation means for generating an execution right generation password dependent on the time stamp generated in
Each software execution unit is sent to the software execution unit via the communication path, and each software execution unit further stores the order information stored in the order creating unit, the time stamp stored in the first time stamp generating unit, and the first time stamp. Execution right generation password checking means for checking the validity of the execution right generation password received from the order management device by using the execution device secret information stored in the secret information storage means, and the inspection by the execution right generation password checking means. As a result, when the validity of the execution right generation password is confirmed, there is the execution right generation means for generating the execution right of the ordered software based on the order information stored and held in the order creation means, and the execution right exists. Software executing means for executing the software to be executed according to the execution condition indicated by the execution right.

【0026】請求項7に係る発明は、提供されたソフト
ウェアを実行する1つ以上のソフト実行器と、各ソフト
実行器と通信経路を介して接続され、かつ各ソフト実行
器から受けたソフトウェアの注文を管理する注文管理器
とを備えたソフトウェア保護システムであって、各ソフ
ト実行器は、固有の実行器IDを格納する実行器ID格
納手段と、固有の実行器秘密情報を格納する第1の秘密
情報格納手段と、1つ以上のソフトウェアの実行権の注
文情報を作成して蓄積保持する注文作成手段と、注文情
報と実行器秘密情報に依存した注文認証情報を生成して
蓄積保持する注文認証情報生成手段とを含み、実行器I
D,注文情報および注文認証情報は、通信路を介して注
文管理器に送付され、注文管理器は、各ソフト実行器に
格納された全ての実行器秘密情報を格納する第2の秘密
情報格納手段と、ソフト実行器から受け取った実行器I
Dに対応する実行器秘密情報を第2の秘密情報格納手段
から獲得し、この獲得した実行器秘密情報,ソフト実行
器から受け取った注文情報および注文認証情報を用い
て、ソフト実行器および注文情報の認証を行い、この認
証結果が正当である場合に、当該注文認証情報を注文を
識別する注文識別情報として扱う実行器認証手段と、実
行器認証手段における認証結果が正当である場合にの
み、注文情報および注文識別情報に依存した実行権生成
パスワードを生成する実行権生成パスワード生成手段と
を含み、実行権生成パスワードは、注文識別情報と共
に、通信路を介してソフト実行器に送付され、各ソフト
実行器は、さらに注文作成手段に蓄積保持された注文情
報と、注文認証情報生成手段に蓄積保持された注文認証
情報とを用いて、注文管理器から受け取った実行権生成
パスワードの正当性を検査する実行権生成パスワード検
査手段と、実行権生成パスワード検査手段による検査の
結果、実行権生成パスワードの正当性が確認されたとき
に、注文作成手段に蓄積保持された注文情報に基づい
て、注文されたソフトウェアの実行権を生成する実行権
生成手段と、実行権が存在するソフトウェアを、当該実
行権に示される実行条件に従って実行するソフト実行手
段とを含んでいる。
According to a seventh aspect of the present invention, one or more software executors for executing the provided software, and software connected to each software executor via a communication path and received from each software executor. A software protection system including an order manager that manages orders, wherein each software executor stores an executor ID storage unit that stores a unique executor ID, and a first executor secret information. Secret information storage means, order creation means for creating and storing the order information of the execution right of one or more software, and order authentication information depending on the order information and the secret information of the execution device for storing and holding. Executor I including an order authentication information generation means
D, the order information and the order authentication information are sent to the order manager via the communication channel, and the order manager stores the second secret information storage for storing all the secret information of the execution units stored in each software execution unit. Means and executor I received from the soft executor
The execution device secret information corresponding to D is acquired from the second secret information storage means, and the execution device secret information, the order information and the order authentication information received from the software execution device are used, and the software execution device and the order information are acquired. Authentication is performed, and when this authentication result is valid, only if the execution result authenticator that treats the order authentication information as order identification information for identifying an order and the authentication result in the execution device authentication means are valid. And an execution right generation password generating means for generating an execution right generation password depending on the order information and the order identification information. The execution right generation password is sent together with the order identification information to the software execution device via the communication path. The software execution unit further uses the order information accumulated and held in the order creating means and the order authentication information accumulated and held in the order authentication information generating means to execute the order management. Execution right generation password checking means for checking the validity of the execution right generation password received from the container and the order creation means when the validity of the execution right generation password is confirmed as a result of the inspection by the execution right generation password checking means. An execution right generating means for generating an execution right of the ordered software based on the order information stored and stored in the software; and a software execution means for executing the software having the execution right according to the execution condition indicated by the execution right. Is included.

【0027】請求項8に係る発明は、請求項7の発明に
おいて、注文認証情報生成手段は、注文作成手段によっ
て作成された注文情報と、第1の秘密情報格納手段に格
納された実行器秘密情報とを、出力が入力ビットのすべ
てに関係するようなデータ圧縮関数に入力し、このデー
タ圧縮関数の出力結果を、注文認証情報として出力し、
実行器認証手段は、第2の秘密情報格納手段から獲得し
た実行器秘密情報と、ソフト実行器から受け取った注文
情報とを、注文認証情報生成手段で用いているデータ圧
縮関数と同じデータ圧縮関数に入力し、このデータ圧縮
関数の出力結果がソフト実行器から受け取った注文認証
情報と一致する場合に、注文を行ったソフト実行器およ
び注文情報が正当であることを認証し、実行権生成パス
ワード生成手段は、ソフト実行器から受け取った注文情
報および注文識別情報を、注文認証情報生成手段で用い
ているデータ圧縮関数と同じデータ圧縮関数に入力し、
このデータ圧縮関数の出力結果を、実行権生成パスワー
ドとして出力し、実行権生成パスワード検査手段は、注
文作成手段に蓄積保持された注文情報と、注文認証情報
生成手段に蓄積保持された注文認証情報とを、注文認証
情報生成手段で用いているデータ圧縮関数と同じデータ
圧縮関数に入力し、その出力結果が注文管理器から受け
取った実行権生成パスワードと一致したとき、当該実行
権生成パスワードが正当であると判断することを特徴と
する。
The invention according to claim 8 is the invention according to claim 7, wherein the order authentication information generating means has the order information created by the order creating means and the execution unit secret stored in the first secret information storing means. Input the information and to a data compression function whose output is related to all of the input bits, and output the output result of this data compression function as order authentication information,
The executor authenticating means uses the secret information of the executor acquired from the second secret information storing means and the order information received from the software executor, the same data compressing function as the data compressing function used in the order certifying information generating means. When the output result of this data compression function matches the order authentication information received from the software execution unit, it is authenticated that the software execution unit that placed the order and the order information are valid, and the execution right generation password The generation means inputs the order information and the order identification information received from the software execution unit into the same data compression function as the data compression function used in the order authentication information generation means,
The output result of this data compression function is output as an execution right generation password, and the execution right generation password checking means stores the order information accumulated and held in the order creating means and the order authentication information accumulated and held in the order authentication information generating means. Is input to the same data compression function as the data compression function used in the order authentication information generation means, and when the output result matches the execution right generation password received from the order manager, the execution right generation password is valid. It is characterized by determining that

【0028】請求項9に係る発明は、提供されたソフト
ウェアを実行する1つ以上のソフト実行器と、各ソフト
実行器と通信経路を介して接続され、かつ各ソフト実行
器から受けたソフトウェアの注文を管理する注文管理器
とを備えたソフトウェア保護システムであって、各ソフ
ト実行器は、固有の実行器IDを格納する実行器ID格
納手段と、固有の実行器秘密情報を格納する第1の秘密
情報格納手段と、1つ以上のソフトウェアの実行権の注
文情報を作成して蓄積保持する注文作成手段と、注文作
成手段で注文情報が作成される毎に変化し、所定のデー
タ構造または意味を有する変化値を生成して蓄積保持す
る変化値生成手段と、注文情報および実行器秘密情報に
依存した値を求め、この求めた値によって変化値を変換
することにより、注文認証情報を生成して蓄積保持する
注文認証情報生成手段とを含み、実行器ID,注文情報
および注文認証情報は、通信路を介して注文管理器に送
付され、注文管理器は、各ソフト実行器に格納された全
ての実行器秘密情報を格納する第2の秘密情報格納手段
と、ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を第2の秘密情報格納手段から獲得し、
この獲得した実行器秘密情報とソフト実行器からの注文
情報とに依存した値を求め、この値を用いてソフト実行
器からの注文認証情報を逆変換する逆変換手段と、逆変
換手段の出力が変化値と同じデータ構造または意味を有
する場合に、ソフト実行器および注文情報が正当である
ことを認証する実行器認証手段と、実行器認証手段にお
ける認証結果が正当である場合にのみ、注文情報に依存
した実行権生成パスワードを生成する実行権生成パスワ
ード生成手段とを含み、実行権生成パスワードは、通信
路を介してソフト実行器に送付され、各ソフト実行器
は、さらに注文作成手段に蓄積保持された注文情報と、
注文認証情報生成手段に蓄積保持された注文認証情報と
を用いて、注文管理器から受け取った実行権生成パスワ
ードの正当性を検査する実行権生成パスワード検査手段
と、実行権生成パスワード検査手段による検査の結果、
実行権生成パスワードの正当性が確認されたときに、注
文作成手段に蓄積保持された注文情報に基づいて、注文
されたソフトウェアの実行権を生成する実行権生成手段
と、実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
んでいる。
According to a ninth aspect of the present invention, one or more software executing units that execute the provided software and software connected to each software executing unit via a communication path and received from each software executing unit are provided. A software protection system including an order manager that manages orders, wherein each software executor stores an executor ID storage unit that stores a unique executor ID, and a first executor secret information. Secret information storage means, order creating means for creating and storing order information of execution rights of one or more software, and changing each time the order information is created by the order creating means, a predetermined data structure or Change value generating means for generating and storing a change value having a meaning, and a value dependent on the order information and the execution device secret information, and by converting the change value by the calculated value, An order authentication information generation means for generating and accumulating and storing the statement authentication information, and the execution unit ID, the order information and the order authentication information are sent to the order management unit via a communication path, and the order management unit controls each software. The second secret information storage means for storing all the secret information of the execution unit stored in the execution unit, and the secret information of the execution unit corresponding to the execution unit ID received from the software execution unit are obtained from the second secret information storage unit. Then
A value that depends on the acquired secret information of the execution unit and the order information from the software execution unit is obtained, and using this value, the inverse conversion unit that reversely converts the order authentication information from the software execution unit and the output of the inverse conversion unit Order has the same data structure or meaning as the change value, only if the execution unit authentication means that authenticates that the software execution unit and order information are valid and the authentication result by the execution unit authentication unit are valid And an execution right generation password generation means for generating an execution right generation password depending on information, and the execution right generation password is sent to the software execution device via the communication path, and each software execution device further transmits to the order creation means. Order information stored and held,
Using the order authentication information stored and stored in the order authentication information generating means, the execution right generating password checking means for checking the validity of the execution right generating password received from the order manager and the inspection by the execution right generating password checking means As a result of
When the validity of the execution right generation password is confirmed, the execution right generation means for generating the execution right of the ordered software based on the order information accumulated and held in the order generation means, and the software for which the execution right exists Is executed according to the execution condition indicated by the execution right.

【0029】請求項10に係る発明は、請求項9の発明
において、注文認証情報生成手段は、注文作成手段によ
って作成された注文情報と、第1の秘密情報格納手段に
格納された実行器秘密情報とを、出力が各入力ビットの
すべてに関係するようなデータ圧縮関数に入力し、その
出力結果と変化値との排他的論理和を注文認証情報とし
て出力し、逆変換手段は、ソフト実行器からの注文情報
と、第2の秘密情報格納手段から獲得した実行器秘密情
報とを、注文認証情報生成手段で用いているデータ圧縮
関数と同じデータ圧縮関数に入力し、その出力結果とソ
フト実行器からの注文認証情報との排他的論理和を演算
することにより、当該注文認証情報を逆変換し、実行権
生成パスワード生成手段は、ソフト実行器から受け取っ
た注文情報および注文識別情報を、注文認証情報生成手
段で用いているデータ圧縮関数と同じデータ圧縮関数に
入力し、このデータ圧縮関数の出力結果を、実行権生成
パスワードとして出力し、実行権生成パスワード検査手
段は、注文作成手段に蓄積保持された注文情報と、注文
認証情報生成手段に蓄積保持された注文認証情報とを、
注文認証情報生成手段で用いているデータ圧縮関数と同
じデータ圧縮関数に入力し、その出力結果が注文管理器
から受け取った実行権生成パスワードと一致したとき、
当該実行権生成パスワードが正当であると判断すること
を特徴とする。
According to a tenth aspect of the invention, in the invention of the ninth aspect, the order authentication information generating means includes the order information created by the order creating means and the execution unit secret stored in the first secret information storing means. The information is input to a data compression function whose output is related to all of the input bits, the exclusive OR of the output result and the change value is output as order authentication information, and the inverse conversion means executes software execution. The order information from the device and the execution device secret information acquired from the second secret information storage means are input to the same data compression function as the data compression function used in the order authentication information generation means, and the output result and software The order authentication information is inversely converted by calculating the exclusive OR with the order authentication information from the execution unit, and the execution right generation password generation means generates the order information and the order information received from the software execution unit. The sentence identification information is input to the same data compression function as the data compression function used in the order authentication information generation means, and the output result of this data compression function is output as the execution right generation password. , Order information stored and held in the order creating means, and order authentication information stored and held in the order authentication information generating means,
When input to the same data compression function as the data compression function used in the order authentication information generation means and the output result matches the execution right generation password received from the order manager,
It is characterized in that the execution right generation password is judged to be valid.

【0030】請求項11に係る発明は、請求項7または
9の発明において、実行権生成パスワード生成手段は、
ソフト実行器から受け取った注文情報に加えて、第2の
秘密情報格納手段から獲得した実行器秘密情報に依存し
た実行権生成パスワードを生成し、実行権生成パスワー
ド検査手段は、注文作成手段に蓄積保持された注文情報
と、第1の秘密情報格納手段に格納されている実行器秘
密情報とを用いて、注文管理器から受け取った実行権生
成パスワードの正当性を検査することを特徴とする。
The invention according to claim 11 is the invention according to claim 7 or 9, wherein the execution right generation password generation means is:
In addition to the order information received from the software execution unit, an execution right generation password that depends on the execution unit secret information acquired from the second secret information storage unit is generated, and the execution right generation password checking unit is stored in the order generation unit. It is characterized in that the validity of the execution right generation password received from the order manager is checked using the held order information and the execution unit secret information stored in the first secret information storage means.

【0031】請求項12に係る発明は、請求項7または
9の発明において、注文管理器は、公開鍵署名方式に用
いられる秘密情報を格納する第3の秘密情報格納手段を
さらに含み、実行権生成パスワード生成手段は、第3の
秘密情報格納手段に格納された秘密情報と、第2の秘密
情報格納手段から獲得した実行器秘密情報と、ソフト実
行器から受け取った注文情報および注文認証情報とを用
いて、公開鍵署名方式によってデジタル署名された実行
権生成パスワードを生成し、ソフト実行器は、公開鍵署
名方式に用いられる秘密情報に対応した公開情報を格納
する公開情報格納手段をさらに含み、実行権生成パスワ
ード検査手段は、公開情報格納手段に格納された公開情
報と、注文作成手段に蓄積保持された注文情報と、注文
認証情報生成手段に蓄積保持された注文認証情報と、第
1の秘密情報格納手段に格納された実行器秘密情報とを
用いて、公開鍵署名方式に対応した署名確認方式によっ
て、注文管理器から受け取った実行権生成パスワードの
正当性を検査することを特徴とする。
According to a twelfth aspect of the invention, in the invention of the seventh or ninth aspect, the order management device further includes third secret information storage means for storing secret information used in the public key signature system, and the execution right is included. The generated password generation means includes the secret information stored in the third secret information storage means, the execution device secret information acquired from the second secret information storage means, the order information and the order authentication information received from the software execution device. Is used to generate the execution right generation password digitally signed by the public key signature method, and the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method. The execution right generation password checking means includes public information stored in the public information storage means, order information accumulated and held in the order creating means, and order authentication information generating means. Generation of the execution right received from the order manager by the signature confirmation method corresponding to the public key signature method using the accumulated and held order authentication information and the execution unit secret information stored in the first secret information storage means. Characterized by checking the validity of the password.

【0032】請求項13に係る発明は、提供されたソフ
トウェアを実行する1つ以上のソフト実行器と、各ソフ
ト実行器と通信経路を介して接続され、かつ各ソフト実
行器から受けたソフトウェアの注文を管理する注文管理
器とを備えたソフトウェア保護システムであって、各ソ
フト実行器は、固有の実行器IDを格納する実行器ID
格納手段と、固有の実行器秘密情報を格納する第1の秘
密情報格納手段と、1つ以上のソフトウェアの実行権の
注文情報を作成して蓄積保持する注文作成手段とを含
み、実行器IDおよび注文情報は、通信路を介して注文
管理器に送付され、注文管理器は、第1の実行権生成モ
ジュールを格納する第1のモジュール格納手段と、各ソ
フト実行器に格納された全ての実行器秘密情報を格納す
る第2の秘密情報格納手段と、ソフト実行器からの注文
情報と、第2の秘密情報格納手段から獲得した実行器秘
密情報とに依存した値を計算する第1の計算手段と、第
1の計算手段の計算結果を用いて、第1の実行権生成モ
ジュールを変換することにより、実行権生成パスワード
を生成する実行権生成パスワード生成手段とを含み、実
行権生成パスワードは、通信路を介してソフト実行器に
送付され、各ソフト実行器は、さらに第2の実行権生成
モジュールを格納する第2のモジュール格納手段と、注
文作成手段に蓄積保持された注文情報と、第1の秘密情
報格納手段に格納された実行器秘密情報とに依存した値
を計算する第2の計算手段と、第2の計算手段の計算結
果を用いて、注文管理器からの実行権生成パスワードを
逆変換することにより、第1の実行権生成モジュールを
生成する実行権生成パスワード逆変換手段と、実行権生
成パスワード逆変換手段により生成された第1の実行権
生成モジュールと、第2のモジュール格納手段に格納さ
れている第2の実行権生成モジュールとを用いて、注文
作成手段に蓄積保持された注文情報に基づくソフトウェ
アの実行権を生成する実行権生成手段と、実行権生成
後、第一の実行権生成モジュールを消去するモジュール
消去手段と、実行権が存在するソフトウェアを、当該実
行権に示される実行条件に従って実行するソフト実行手
段とを含んでいる。
The invention according to claim 13 is one or more software executors for executing the provided software, and software connected to each software executor via a communication path and received from each software executor. A software protection system including an order manager that manages orders, wherein each software executor stores a unique executor ID.
The execution unit ID includes a storage unit, a first secret information storage unit that stores unique execution unit secret information, and an order creation unit that creates and stores order information for execution rights of one or more software. And the order information is sent to the order management unit via the communication path, and the order management unit stores the first module storing means for storing the first execution right generation module and all the software execution units. A first secret information storage unit for storing the secret information of the execution unit, a first order for calculating a value depending on the order information from the software execution unit, and the secret information of the execution unit acquired from the second secret information storage unit. An execution right generation password is included including a calculation means and an execution right generation password generation means for generating an execution right generation password by converting the first execution right generation module using the calculation result of the first calculation means. Sent to the software execution unit via the communication path, and each software execution unit further stores a second module storing unit for storing a second execution right generation module, and order information stored and held in the order creation unit, Execution right generation from the order manager using the second calculation means for calculating a value depending on the execution device secret information stored in the first secret information storage means and the calculation result of the second calculation means An execution right generation password reverse conversion means for generating a first execution right generation module by reverse converting the password, a first execution right generation module generated by the execution right generation password reverse conversion means, and a second execution right generation module Using the second execution right generation module stored in the module storage means, the execution right generation means for generating the execution right of the software based on the order information accumulated and held in the order creation means After execution right generation includes a module erasing means for erasing the first execution right generation module, a software execution right exists, the software execution means for executing according to the execution condition indicated in the execution right.

【0033】請求項14に係る発明は、請求項13の発
明において、第1のモジュール格納手段に格納されてい
る第1の実行権生成モジュールは、所定のデータ構造や
意味をもっており、実行権生成手段は、実行権生成パス
ワード逆変換手段の逆変換結果が第1の実行権生成モジ
ュールと同じデータ構造や意味を持っている場合にの
み、第1の実行権生成モジュールと、第2の実行権生成
モジュールとを用いて、注文作成手段に蓄積保持された
注文情報に基づくソフトウェアの実行権を生成すること
を特徴とする。
According to a fourteenth aspect of the present invention, in the thirteenth aspect of the present invention, the first execution right generation module stored in the first module storage means has a predetermined data structure and meaning, and the execution right generation is performed. The means executes the first execution right generation module and the second execution right only when the reverse conversion result of the execution right generation password reverse conversion means has the same data structure and meaning as the first execution right generation module. The generation module is used to generate the software execution right based on the order information accumulated and held in the order creating means.

【0034】請求項15に係る発明は、請求項13の発
明において、注文管理器は、公開鍵署名方式に用いられ
る秘密情報を格納する第3の秘密情報格納手段をさらに
含み、実行権生成パスワード生成手段は、第1の計算手
段の計算結果と、第3の秘密情報格納手段に格納された
秘密情報とを用いて、第1の実行権生成モジュールを変
換することにより、公開鍵署名方式によってデジタル署
名された実行権生成パスワードを生成し、ソフト実行器
は、公開鍵署名方式に用いられる秘密情報に対応した公
開情報を格納する公開情報格納手段をさらに含み、実行
権生成パスワード逆変換手段は、第2の計算手段の計算
結果と、公開情報とを用い、公開鍵署名方式に対応した
署名確認方式によって、注文管理器からの実行権生成パ
スワードを逆変換することを特徴とする。
According to a fifteenth aspect of the present invention, in the invention of the thirteenth aspect, the order management device further includes third secret information storage means for storing secret information used in the public key signature system, and the execution right generation password. The generation means converts the first execution right generation module by using the calculation result of the first calculation means and the secret information stored in the third secret information storage means, thereby performing the public key signature method. The software execution unit generates a digitally signed execution right generation password, and the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method. , The conversion result of the second calculation means and the public information are used to reverse-convert the execution right generation password from the order manager by the signature confirmation method corresponding to the public key signature method. And wherein the Rukoto.

【0035】請求項16に係る発明は、請求項1〜15
のいずれかに記載の発明において、ソフト実行器に提供
されるソフトウェアは、ソフト固有情報を含んで暗号化
されており、実行権生成手段は、実行権生成パスワード
検査手段が注文管理器からの実行権生成パスワードの正
当性を確認したとき、注文作成手段に蓄積保持された注
文情報に対応する暗号化ソフトウェアを復号してソフト
固有情報を獲得し、この獲得したソフト固有情報を実行
器秘密情報で暗号化することによって、注文されたソフ
トウェアの実行権を生成し、ソフト実行手段は、注文作
成手段に蓄積保持された注文情報に対応する暗号化ソフ
トウェアを復号してソフトウェアとソフト固有情報とを
獲得し、実行権を実行器秘密情報を用いて復号してソフ
ト固有情報を獲得し、これら復号によって獲得したソフ
ト固有情報が一致している場合にのみ、復号されたソフ
トウェアを実行することを特徴とする。
The invention according to claim 16 is defined by claims 1 to 15.
In any one of the inventions, the software provided to the software execution unit is encrypted by including the software unique information, and the execution right generation means executes the execution right generation password checking means from the order management unit. When the validity of the right generation password is confirmed, the encrypted software corresponding to the order information stored and held in the order creation means is decrypted to acquire the software unique information, and the acquired software unique information is used as the execution device secret information. By executing the encryption, the execution right of the ordered software is generated, and the software execution means decrypts the encrypted software corresponding to the order information stored and held in the order creation means to obtain the software and the software unique information. Then, the execution right is decrypted by using the secret information of the executor to obtain the software unique information, and the software unique information obtained by these decryption matches. If it is only and executes the decoded software.

【0036】請求項17に係る発明は、請求項1〜15
のいずれかに記載の発明において、注文作成手段は、作
成した注文情報を不揮発的に蓄積保持し、実行権生成手
段が対応するソフトウェアの実行権を生成した後に当該
注文情報を消去することを特徴とする。
The invention according to claim 17 is claims 1 to 15.
In any one of the inventions, the order creating means stores and holds the created order information in a non-volatile manner, and deletes the order information after the execution right creating means creates the execution right of the corresponding software. And

【0037】請求項18に係る発明は、請求項1〜15
のいずれかに記載の発明において、ソフト実行器および
注文管理器は、それぞれ相互間でやりとりされた情報の
履歴を保持していることを特徴とする。
The invention of claim 18 relates to claims 1 to 15.
In the invention described in any one of (1) to (4), the software execution unit and the order management unit each hold a history of information exchanged between them.

【0038】請求項19に係る発明は、請求項1〜15
のいずれかに記載の発明において、ソフト実行器および
注文管理器は、すべてのソフトウェアの組み合わせに対
応するコードをテーブルとして保持しており、ソフト実
行器は、テーブルから得たコードを、注文情報として注
文管理器に送付することを特徴とする。
The invention of claim 19 relates to claims 1 to 15.
In the invention described in any one of 1, the software execution unit and the order management unit hold codes corresponding to all combinations of software as a table, and the software execution unit uses the code obtained from the table as order information. The feature is that it is sent to the order manager.

【0039】[0039]

【作用】請求項1に係る発明では、ソフト実行器は、実
行器IDおよび注文情報を生成し、これらを注文管理器
に送付することにより、ソフトウェアの注文を行なう。
注文管理器は、受け取った注文情報と、実行IDに対応
する実行器秘密情報とに依存した情報である実行権生成
パスワードを生成し、ソフト実行器に送付する。ソフト
実行器は、この実行権生成パスワードが、注文管理器に
先に送付した注文情報や、自分自身の実行器秘密情報と
整合している否かを判断し、整合している場合は、注文
情報に対応したソフトウェアの実行権を生成し、当該ソ
フトウェアを実行する。このように、注文管理器からソ
フト実行器には、実行権生成パスワード、すなわちソフ
ト実行器が注文情報に対応したソフト実行権を生成する
ための許可を与える情報だけが送付されるため、実行権
そのものを送付する場合に比べて、桁数を削減できる。
また、ソフト実行器が複数のソフトウェアの注文を1回
に行なっても、その情報量は1つのソフトウェアを注文
した場合の情報量と同じになる。
In the invention according to claim 1, the software executor orders the software by generating an executor ID and order information and sending them to the order manager.
The order management unit generates an execution right generation password, which is information dependent on the received order information and the execution unit secret information corresponding to the execution ID, and sends it to the software execution unit. The software execution unit determines whether this execution right generation password is consistent with the order information sent to the order management unit or the confidential information of the execution unit of its own. Generate the execution right of the software corresponding to the information and execute the software. In this way, the order management unit sends only the execution right generation password, that is, the information that gives the permission for the software execution unit to generate the software execution right corresponding to the order information, to the software execution unit. The number of digits can be reduced compared to the case of sending the item itself.
Further, even if the software execution unit orders a plurality of software at one time, the amount of information is the same as the amount of information when one piece of software is ordered.

【0040】請求項2に係る発明では、注文管理器は、
ソフト実行器から受け取った注文情報と、実行器IDに
対応する実行器秘密情報とを、所定のデータ圧縮関数
(例えば、ハッシュ関数)に入力し、このデータ圧縮関
数の出力結果を、実行権生成パスワードとして出力す
る。一方、ソフト実行器は、内部に蓄積保持された注文
情報と、自分自身の実行器秘密情報とを、上記と同様の
データ圧縮関数に入力し、その出力結果が注文管理器か
ら受け取った実行権生成パスワードと一致したとき、当
該実行権生成パスワードが正当であると判断する。この
ように、データ圧縮関数を用いて実行権生成パスワード
が生成されるので、その桁数をより一層削減できる。
In the invention according to claim 2, the order management device is
The order information received from the software executor and the executor secret information corresponding to the executor ID are input to a predetermined data compression function (for example, hash function), and the output result of this data compression function is generated as an execution right. Output as password. On the other hand, the soft executor inputs the order information stored internally and the secret information of its own executor into the same data compression function as above, and the output result is the execution right received from the order manager. When it matches the generated password, it is determined that the execution right generation password is valid. In this way, since the execution right generation password is generated using the data compression function, the number of digits can be further reduced.

【0041】請求項3に係る発明では、注文管理器は、
公開鍵署名方式に用いられる秘密情報を保持し、この秘
密情報と、実行器IDに対応する実行器秘密情報と、ソ
フト実行器から受け取った注文情報と用いて、公開鍵署
名方式によってデジタル署名された実行権生成パスワー
ドを生成する。一方、ソフト実行器は、公開鍵署名方式
に用いられる秘密情報に対応した公開情報を保持し、こ
の公開情報と、注文情報と、自分自身の実行器秘密情報
とを用いて、公開鍵署名方式に対応した署名確認方式に
よって、注文管理器から受け取った実行権生成パスワー
ドの正当性を検査する。このように、ソフト実行器に
は、デジタル署名された実行権生成パスワードが送付さ
れるので、ソフト実行器側で実行権生成パスワードを偽
造することがほとんど不可能となり、極めて安全性の高
いソフトウェア保護システムが実現できる。
In the invention according to claim 3, the order management device is
The secret information used in the public key signature method is held, and is digitally signed by the public key signature method using this secret information, the execution unit secret information corresponding to the execution unit ID, and the order information received from the software execution unit. Generate the execution right generation password. On the other hand, the soft executor holds the public information corresponding to the secret information used in the public key signature method, and uses the public information, the order information, and the secret information of the executor of its own, the public key signature method. By the signature confirmation method corresponding to, the validity of the execution right generation password received from the order manager is checked. In this way, since the execution right generation password that is digitally signed is sent to the software execution unit, it is almost impossible to forge the execution right generation password on the software execution unit side, and extremely safe software protection is possible. The system can be realized.

【0042】請求項4に係る発明では、注文情報を作成
する毎に変化する変化値が注文情報と共に、ソフト実行
器から注文管理器に送付される。そして、注文管理器
は、実行器秘密情報,注文情報および変化値に依存した
実行権生成パスワードを生成し、注文管理器に送付す
る。ソフト実行器は、注文情報,変化値および実行器秘
密情報を用いて、実行権生成パスワードの正当性を検査
する。従って、注文管理器からの実行権生成パスワード
は、対応する変化値を保持するソフト実行器でのみ有効
となる。そのため、異なる時期に同じ注文を作成し、以
前の実行権生成パスワードを入力しても、後の注文時に
生成される変化値は、以前の注文時に生成される変化値
とは異なっているため、入力したパスワードが有効には
ならない。
In the invention according to claim 4, a change value that changes every time the order information is created is sent from the software execution unit to the order management unit together with the order information. Then, the order management device generates an execution right secret password, order information, and an execution right generation password depending on the change value, and sends the execution right generation password to the order management device. The software executor uses the order information, the change value, and the executor secret information to check the validity of the execution right generation password. Therefore, the execution right generation password from the order management unit is valid only in the software execution unit that holds the corresponding change value. Therefore, even if you create the same order at different times and enter the previous execution right generation password, the change value generated at the time of the later order is different from the change value generated at the time of the previous order. The password you entered is not valid.

【0043】請求項5に係る発明では、注文管理器は、
注文情報,変化値および実行器秘密情報を、ハッシュ関
数等のデータ圧縮関数に入力し、このデータ圧縮関数の
出力結果を、実行権生成パスワードとして出力する。一
方、ソフト実行器は、内部に保持している注文情報,変
化値および実行器秘密情報を、上記と同様のデータ圧縮
関数に入力し、その出力結果が注文管理器から受け取っ
た実行権生成パスワードと一致したとき、当該実行権生
成パスワードが正当であると判断する。このように、デ
ータ圧縮関数を用いて実行権生成パスワードが生成され
るので、その桁数をより一層削減できる。
In the invention according to claim 5, the order management device is
The order information, the change value, and the secret information of the executor are input to a data compression function such as a hash function, and the output result of this data compression function is output as an execution right generation password. On the other hand, the soft executor inputs the order information, the change value, and the executor secret information, which are held internally, to the same data compression function as above, and the output result is the execution right generation password received from the order manager. When it matches with, the execution right generation password is determined to be valid. In this way, since the execution right generation password is generated using the data compression function, the number of digits can be further reduced.

【0044】請求項6に係る発明では、請求項4におけ
る変化値の代わりにタイムスタンプを用いている。この
タイムスタンプは、ソフト実行器と注文管理器とに共通
に保持されているため、請求項4のようにソフト実行器
から注文管理器に変化値を送付する必要がなくなる。
In the invention according to claim 6, a time stamp is used instead of the change value in claim 4. Since this time stamp is held in common in the software execution unit and the order management unit, it is not necessary to send the change value from the software execution unit to the order management unit as in claim 4.

【0045】請求項7に係る発明では、注文情報および
実行器秘密情報に依存した注文認証情報を導入すること
により、注文管理器側で実行権生成パスワードの発行に
先だって、注文情報とソフト実行器の認証を行うことが
できる。そして、注文管理器は、認証結果がOKの場合
には、上記注文認証情報を注文を識別する注文識別情報
として扱い、これら注文情報および注文識別情報に依存
した実行権生成パスワードを生成してソフト実行器に送
付する。ソフト実行器は、内部に保持している注文情報
および注文認証情報を用いて、注文管理器から受け取っ
た実行権生成パスワードの正当性を検査し、この検査結
果がOKのときに、ソフトウェアの実行権を生成し、対
応するソフトウェアを実行する。
In the invention according to claim 7, by introducing the order authentication information depending on the order information and the secret information of the execution unit, the order information and the software execution unit are issued before the issuance of the execution right generation password on the order management unit side. Can be authenticated. When the authentication result is OK, the order management device treats the order authentication information as order identification information for identifying the order, generates the execution right generation password depending on the order information and the order identification information, and generates the software. Send to the execution device. The software execution unit checks the validity of the execution right generation password received from the order management unit by using the order information and the order authentication information held internally, and executes the software when the check result is OK. Generate the right and execute the corresponding software.

【0046】請求項8に係る発明では、ソフト実行器
は、注文情報および実行器秘密情報を、ハッシュ関数等
のデータ圧縮関数に入力し、このデータ圧縮関数の出力
結果を、注文認証情報として得ている。また、注文管理
器は、実行器秘密情報と、ソフト実行器から受け取った
注文情報とを、上記と同様のデータ圧縮関数に入力し、
その出力結果がソフト実行器から受け取った注文認証情
報と一致する場合に、ソフト実行器および注文情報が正
当であることを認証する。さらに、注文管理器は、注文
情報および注文識別情報を、上記と同様のデータ圧縮関
数に入力し、このデータ圧縮関数の出力結果を、実行権
生成パスワードとして出力し、ソフト実行器に送付す
る。一方、ソフト実行器は、注文情報および注文認証情
報を、上記と同様のデータ圧縮関数に入力し、その出力
結果が注文管理器からの実行権生成パスワードと一致し
たとき、当該実行権生成パスワードが正当であると判断
する。
In the invention according to claim 8, the software executor inputs the order information and the executor secret information to a data compression function such as a hash function, and obtains the output result of this data compression function as the order authentication information. ing. In addition, the order manager inputs the secret information of the execution unit and the order information received from the software execution unit to the data compression function similar to the above,
When the output result matches the order authentication information received from the software execution unit, the software execution unit and the order information are authenticated as valid. Further, the order manager inputs the order information and the order identification information to the same data compression function as above, outputs the output result of this data compression function as an execution right generation password, and sends it to the software execution unit. On the other hand, the software execution unit inputs the order information and the order authentication information into the same data compression function as above, and when the output result matches the execution right generation password from the order management unit, the execution right generation password is Judge as legitimate.

【0047】請求項9に係る発明では、ソフト実行器
は、注文情報の作成毎に変化しかつ所定のデータ構造ま
たは意味を有する変化値を、注文情報および実行器秘密
情報に依存した値によって変換することにより、注文認
証情報を生成する。この注文認証情報は、実行器IDお
よび注文情報と共に、注文管理器に送付される。注文管
理器は、実行器IDに対応する実行器秘密情報と、ソフ
ト実行器からの注文情報とに依存した値を求め、この値
を用いてソフト実行器からの注文認証情報を逆変換し、
この逆変換結果が上記変化値と同じデータ構造または意
味を有する場合に、ソフト実行器および注文情報が正当
であることを認証する。そして、注文管理器は、この認
証結果が正当である場合にのみ、注文情報に依存した実
行権生成パスワードを生成してソフト実行器に送付す
る。ソフト実行器は、内部に保持している注文情報およ
び注文認証情報を用いて、注文管理器から受け取った実
行権生成パスワードの正当性を検査し、実行権生成パス
ワードの正当性が確認されたときに、注文されたソフト
ウェアの実行権を生成する。このような構成により、ソ
フト実行器と注文管理器間でやりとりされる情報量を増
やすことなく、回数制限機能およびユーザ認証機能を実
現できる。
In the invention according to claim 9, the software executor converts a change value which changes each time the order information is created and which has a predetermined data structure or meaning, by a value depending on the order information and the executor secret information. By doing so, order authentication information is generated. This order authentication information is sent to the order management unit together with the execution unit ID and the order information. The order management device obtains a value depending on the execution device secret information corresponding to the execution device ID and the order information from the software execution device, and uses this value to reverse-convert the order authentication information from the software execution device,
If the result of this inverse conversion has the same data structure or meaning as the above-mentioned change value, it is verified that the software execution unit and the order information are valid. Then, only when this authentication result is valid, the order management device generates an execution right generation password depending on the order information and sends it to the software execution device. When the software execution unit checks the validity of the execution right generation password received from the order management unit using the order information and order authentication information held internally, and when the validity of the execution right generation password is confirmed. In addition, the execution right of the ordered software is generated. With such a configuration, the number-of-times limiting function and the user authentication function can be realized without increasing the amount of information exchanged between the software execution unit and the order management unit.

【0048】請求項10に係る発明では、ソフト実行器
は、注文情報および実行器秘密情報を、ハッシュ関数等
のデータ圧縮関数に入力し、その出力結果と変化値との
排他的論理和を注文認証情報として得ている。注文管理
器は、ソフト実行器からの注文情報と、実行器IDに対
応する実行器秘密情報とを、上記と同様のデータ圧縮関
数に入力し、その出力結果とソフト実行器からの注文認
証情報との排他的論理和を演算することにより、当該注
文認証情報を逆変換している。また、注文管理器は、ソ
フト実行器からの注文情報および注文識別情報を、上記
と同様のデータ圧縮関数に入力し、このデータ圧縮関数
の出力結果を、実行権生成パスワードとして出力するよ
うにしている。ソフト実行器は、内部に保持している注
文情報および注文認証情報を、上記と同様のデータ圧縮
関数に入力し、その出力結果が注文管理器から受け取っ
た実行権生成パスワードと一致したとき、当該実行権生
成パスワードが正当であると判断する。
According to the tenth aspect of the invention, the soft executor inputs the order information and the secret information of the executor to a data compression function such as a hash function and orders the exclusive OR of the output result and the change value. Obtained as authentication information. The order management unit inputs the order information from the software execution unit and the execution unit secret information corresponding to the execution unit ID to the same data compression function as the above, and outputs the output result and the order authentication information from the software execution unit. The order authentication information is inversely converted by calculating the exclusive OR of Further, the order management unit inputs the order information and the order identification information from the software execution unit to the same data compression function as the above, and outputs the output result of this data compression function as the execution right generation password. There is. The soft executor inputs the order information and order authentication information held internally to the same data compression function as above, and when the output result matches the execution right generation password received from the order manager, Judge that the execution right generation password is valid.

【0049】請求項11に係る発明では、注文管理器
は、ソフト実行器から受け取った注文情報と、実行器I
Dに対応する実行器秘密情報とに依存した実行権生成パ
スワードを生成する。一方、ソフト実行器は、内部に保
持している注文情報および実行器秘密情報を用いて、注
文管理器から受け取った実行権生成パスワードの正当性
を検査する。
According to the eleventh aspect of the invention, the order management unit includes the order information received from the software execution unit and the execution unit I.
An execution right generation password that depends on the execution device secret information corresponding to D is generated. On the other hand, the software executor checks the validity of the execution right generation password received from the order manager using the order information and the executor secret information held inside.

【0050】請求項12に係る発明では、注文管理器
は、公開鍵署名方式に用いられる秘密情報と、実行器I
Dに対応する実行器秘密情報と、ソフト実行器から受け
取った注文情報および注文認証情報とを用いて、公開鍵
署名方式によってデジタル署名された実行権生成パスワ
ードを生成し、ソフト実行器に送付する。ソフト実行器
は、公開鍵署名方式に用いられる秘密情報に対応した公
開情報と、内部に保持している注文情報,注文認証情報
および実行器秘密情報とを用い、公開鍵署名方式に対応
した署名確認方式によって、注文管理器から受け取った
実行権生成パスワードの正当性を検査する。このよう
に、ソフト実行器には、デジタル署名された実行権生成
パスワードが送付されるので、ソフト実行器側で実行権
生成パスワードを偽造することがほとんど不可能とな
り、極めて安全性の高いソフトウェア保護システムが実
現できる。
According to the twelfth aspect of the present invention, the order management unit includes the secret information used in the public key signature system and the execution unit I.
Using the secret information of the execution unit corresponding to D and the order information and the order authentication information received from the software execution unit, an execution right generation password digitally signed by the public key signature method is generated and sent to the software execution unit. . The soft executor uses the public information corresponding to the secret information used in the public key signature method, the order information, the order authentication information and the secret information of the executor held internally, and the signature corresponding to the public key signature method. The verification method verifies the validity of the execution right generation password received from the order manager. In this way, since the execution right generation password that is digitally signed is sent to the software execution unit, it is almost impossible to forge the execution right generation password on the software execution unit side, and extremely safe software protection is possible. The system can be realized.

【0051】請求項13に係る発明では、ソフト実行器
側に格納された第2の実行権生成モジュールだけでは、
実行権の生成はできない。注文管理器は、この第2の実
行権生成モジュールを活性化させるための第1の実行権
生成モジュールを、ソフト実行器からの注文情報と実行
器秘密情報に依存した形に変換して実行権生成パスワー
ドとして送付する。ソフト実行器側では、正しい注文情
報と実行器である場合、この実行権生成パスワードを用
いて、内部に保持している第2の実行権生成モジュール
を活性化させることができる。この場合、ソフト実行器
が不正に実行権を生成しようとしても、情報量的に第2
の実行権生成モジュールにそのための情報が不足してい
るため不正はできない。そのため、より一層安全なソフ
トウェア保護システムが実現できる。
According to the thirteenth aspect of the present invention, only the second execution right generation module stored in the software executor side is
Execution rights cannot be generated. The order management unit converts the first execution right generation module for activating the second execution right generation module into a form depending on the order information from the software execution unit and the execution unit secret information and executes the execution right. Send as generated password. On the software executor side, if the order information and the executor are correct, this execution right generation password can be used to activate the second execution right generation module held inside. In this case, even if the software executor tries to illegally generate the execution right, the second amount of information is
Since there is not enough information for that in the execution right generation module of, the injustice cannot be done. Therefore, a more secure software protection system can be realized.

【0052】請求項14に係る発明では、注文管理器に
格納されている第1の実行権生成モジュールは、所定の
データ構造や意味をもっており、ソフト実行器は、実行
権生成パスワードの逆変換結果が第1の実行権生成モジ
ュールと同じデータ構造や意味を持っている場合にの
み、第1の実行権生成モジュールと、第2の実行権生成
モジュールとを用いて、ソフトウェアの実行権を生成す
る。
In the fourteenth aspect of the present invention, the first execution right generation module stored in the order management unit has a predetermined data structure and meaning, and the software execution unit determines the reverse conversion result of the execution right generation password. Generate an execution right of the software using the first execution right generation module and the second execution right generation module only when has the same data structure and meaning as the first execution right generation module. .

【0053】請求項15に係る発明では、注文管理器
は、公開鍵署名方式に用いられる秘密情報と、注文情報
および実行器秘密情報に依存した値である第1の計算手
段の計算結果とを用いて、第1の実行権生成モジュール
を変換することにより、公開鍵署名方式によってデジタ
ル署名された実行権生成パスワードを生成する。一方、
ソフト実行器は、公開鍵署名方式に用いられる秘密情報
に対応した公開情報と、注文情報および実行器秘密情報
に依存した値である第2の計算手段の計算結果とを用
い、公開鍵署名方式に対応した署名確認方式によって、
注文管理器からの実行権生成パスワードを逆変換する。
According to the fifteenth aspect of the invention, the order management unit stores the secret information used in the public key signature method and the calculation result of the first calculation means which is a value depending on the order information and the execution unit secret information. The first execution right generation module is converted by using the generated execution right generation module to generate the execution right generation password digitally signed by the public key signature method. on the other hand,
The soft executor uses the public information corresponding to the secret information used in the public key signature method and the calculation result of the second calculation means, which is a value depending on the order information and the executor secret information, and uses the public key signature method. By the signature confirmation method corresponding to
Reverse the execution right generation password from the order manager.

【0054】請求項16に係る発明では、ソフト実行器
に提供されるソフトウェアは、ソフト固有情報を含んで
暗号化されている。そして、ソフト実行器は、注文管理
器からの実行権生成パスワードの正当性を確認したと
き、内部に保持している注文情報に対応する暗号化ソフ
トウェアを復号してソフト固有情報を獲得し、この獲得
したソフト固有情報を実行器秘密情報で暗号化すること
によって、注文されたソフトウェアの実行権を生成す
る。また、ソフト実行器は、内部に保持している注文情
報に対応する暗号化ソフトウェアを復号してソフトウェ
アとソフト固有情報とを獲得し、実行権を実行器秘密情
報を用いて復号してソフト固有情報を獲得し、これら復
号によって獲得したソフト固有情報が一致している場合
にのみ、復号されたソフトウェアを実行する。
In the sixteenth aspect of the invention, the software provided to the software execution unit is encrypted by including the software unique information. When the software execution unit confirms the validity of the execution right generation password from the order management unit, the software execution unit decrypts the encrypted software corresponding to the order information stored inside and acquires the software unique information. The execution right of the ordered software is generated by encrypting the acquired software unique information with the execution device secret information. In addition, the software execution unit decrypts the encrypted software corresponding to the order information held inside to acquire the software and the software unique information, and decrypts the execution right using the execution device secret information to obtain the software unique information. The decrypted software is executed only when the information acquired and the software unique information acquired by the decryption match.

【0055】請求項17に係る発明では、ソフト実行器
は、作成した注文情報を不揮発的に蓄積保持し、対応す
るソフトウェアの実行権を生成した後に当該注文情報を
消去する。これによって、とりあえず注文だけを連続し
て送付し、後に返送されてくる実行権生成パスワードに
基づいて、ソフトウェアの実行を制御することができ
る。
According to the seventeenth aspect of the invention, the software execution unit accumulates and holds the created order information in a non-volatile manner, and deletes the order information after generating the execution right of the corresponding software. As a result, it is possible to control the execution of the software based on the execution right generation password sent back after sending only the orders for the time being.

【0056】請求項18に係る発明では、ソフト実行器
および注文管理器は、それぞれ相互間でやりとりされた
情報の履歴を保持している。これによって、後に生じる
トラブル等に柔軟に対処できる。
In the eighteenth aspect of the present invention, the software execution unit and the order management unit each hold a history of information exchanged between them. This makes it possible to flexibly deal with problems that occur later.

【0057】請求項19に係る発明では、ソフト実行器
および注文管理器は、すべてのソフトウェアの組み合わ
せに対応するコードをテーブルとして保持しており、ソ
フト実行器は、テーブルから得たコードを、注文情報と
して注文管理器に送付するようにしている。これによっ
て、注文情報のデータ量をより一層削減できる。
In the nineteenth aspect of the invention, the software execution unit and the order management unit hold the codes corresponding to all combinations of software as a table, and the software execution unit orders the codes obtained from the table. The information is sent to the order manager. As a result, the data amount of order information can be further reduced.

【0058】[0058]

【実施例】【Example】

(1)第1の実施例 図1は、本発明の第1の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。図1におい
て、本実施例のソフトウェア保護システムは、ソフトウ
ェアを実行するソフト実行器101と、ソフト実行器1
01に対してソフトウェアを配付する注文管理器102
とを備えている。
(1) First Embodiment FIG. 1 is a block diagram showing the configuration of a software protection system according to the first embodiment of the present invention. In FIG. 1, the software protection system of the present embodiment includes a software execution unit 101 that executes software and a software execution unit 1.
Order manager 102 that distributes software to 01
And

【0059】ソフト実行器101は、暗号化ソフトウェ
ア格納部3と、注文作成部4と、実行器ID格納部5
と、実行器IDに対応した実行器暗号キー(実行器秘密
情報の一例)を格納する実行器暗号キー格納部6と、注
文管理器102から受け取った実行権生成パスワードの
正当性を検査する実行権生成パスワード検査部7と、注
文情報に基づいて実行器暗号キーを使用して実行権を生
成する実行権生成部8と、生成した実行権を格納する実
行権格納部9と、ソフトウェア実行時に対応する実行権
が有効である場合に上記暗号化ソフトウェアを復号して
実行するソフト復号実行部10とを含む。このような構
成のソフト実行器101において、注文作成部4で作成
された注文情報と、実行器IDとは、注文管理器102
に伝えられ、暗号化ソフトウェアを実行するための実行
権生成パスワードが要求される。
The software execution unit 101 includes an encrypted software storage unit 3, an order creation unit 4, and an execution unit ID storage unit 5.
And an execution unit encryption key storage unit 6 for storing an execution unit encryption key (an example of execution unit secret information) corresponding to the execution unit ID, and an execution for checking the validity of the execution right generation password received from the order management unit 102. Right generation password checking unit 7, execution right generation unit 8 that generates an execution right using an execution unit encryption key based on order information, execution right storage unit 9 that stores the generated execution right, and at the time of software execution And a software decryption execution unit 10 that decrypts and executes the encrypted software when the corresponding execution right is valid. In the software executing unit 101 having such a configuration, the order information created by the order creating unit 4 and the executing unit ID are the order management unit 102.
The execution right generation password for executing the encryption software is requested.

【0060】一方、注文管理器102は、すべてのソフ
ト実行器の実行器暗号キーを格納している実行器暗号キ
ー格納部11と、注文情報および該当のソフト実行器の
実行器暗号鍵に依存した実行権生成パスワードを生成す
る実行権生成パスワード生成部12とを含む。
On the other hand, the order management unit 102 depends on the execution unit encryption key storage unit 11 storing the execution unit encryption keys of all the soft execution units, the order information and the execution unit encryption keys of the corresponding software execution units. And an execution right generation password generation unit 12 for generating the execution right generation password.

【0061】次に、図1に示す第1の実施例のソフトウ
ェア保護システムの動作を説明する。なお、以下の説明
では、ソフト実行器101と注文管理器102との間の
通信は、それらを操作している人間が電話を介して行な
うものとする。
Next, the operation of the software protection system of the first embodiment shown in FIG. 1 will be described. In the following description, the communication between the software execution unit 101 and the order management unit 102 is assumed to be performed by a person who operates them via a telephone.

【0062】まず、暗号化ソフトウェアの生成方法につ
いて説明する。ソフトウェアSoftAに対して固有の
認証子authAが定められる。そして、SoftA
と、認証子authAとが結合され、この結合されたデ
ータがシステム内で共通の秘密情報S(図示せず)を用
いて暗号化され、暗号化ソフトウェアが生成される。式
で表現すると、暗号化ソフトESoftAは、 ESoftA=E(S,authA‖SoftA) となる。なお、上式において、E(S,*)はSを鍵と
した暗号関数を、‖は結合を示す。同様に、他のソフト
ウェアSoftBに関しても、固有の認証子authB
を対応させて暗号化ソフトウェアが作成される。以下、
同じような手続きで作成された複数の暗号化ソフトウェ
アが、例えば1枚のCD−ROMに格納され、予めソフ
ト実行器101に配付される。図1の実施例において
は、この暗号化ソフトウェアは、暗号化ソフトウェア格
納部3に格納されている。
First, a method of generating encrypted software will be described. A unique authenticator authA is defined for the software SoftA. And SoftA
And the authenticator authA are combined, and the combined data is encrypted in the system using common secret information S (not shown) to generate encrypted software. When expressed by a formula, the encryption software ESsoftA is ESsoftA = E (S, authA / | SoftA). In the above equation, E (S, *) indicates an encryption function with S as a key, and ‖ indicates a combination. Similarly, for other software SoftB, a unique authenticator authB
The encryption software is created in correspondence with. Less than,
A plurality of encrypted software created by the same procedure is stored in, for example, one CD-ROM and distributed to the software execution unit 101 in advance. In the embodiment of FIG. 1, this encrypted software is stored in the encrypted software storage unit 3.

【0063】ソフト実行器101のユーザは、ソフト実
行器101を操作することにより、暗号化ソフトウェア
格納部3に格納されているソフトウェアの中から、実行
することを希望するソフトウェアを指定する。例えば、
ソフトウェアAとソフトウェアCという具合にである。
応じて、注文作成部4は、対応する注文情報を生成す
る。この注文情報は、注文作成部4内に一旦蓄積され
る。そして、ソフト実行器101のユーザは、この注文
情報と、ソフト実行器101に固有の実行器ID(実行
器ID格納部5に格納されている)とを、注文管理器1
02のオペレータに電話で通知する。これによって、注
文が完了する。
The user of the software executor 101 operates the software executor 101 to specify the software desired to be executed from the software stored in the encrypted software storage unit 3. For example,
Software A and software C.
In response, the order creation unit 4 creates corresponding order information. This order information is temporarily stored in the order creation unit 4. Then, the user of the software execution unit 101 stores the order information and the execution unit ID (stored in the execution unit ID storage unit 5) unique to the software execution unit 101 in the order management unit 1
02 operator is notified by telephone. This completes the order.

【0064】注文管理器102内の実行権生成パスワー
ド生成部12は、ソフト実行器101から通知された注
文情報が入力されると、まず注文を出したソフト実行器
101の認証(または、ユーザ認証)を行ない、次に、
実行器暗号キー格納部11から該当のソフト実行器10
1の暗号キーを獲得する。次に、実行権生成パスワード
生成部12は、ソフト実行器101から受け取った注文
情報と、実行器暗号キー格納部11から獲得した実行器
暗号キーとを結合して、この結合データを予め定められ
たハッシュ関数に入力する。このハッシュ関数の出力
は、実行権生成パスワードとして、電話でソフト実行器
101のユーザに伝えられる。
When the order information notified from the software execution unit 101 is input, the execution right generation password generation unit 12 in the order management unit 102 first authenticates the software execution unit 101 that placed the order (or user authentication). ) And then
From the execution unit encryption key storage unit 11 to the corresponding software execution unit 10
Obtain a cryptographic key of 1. Next, the execution right generation password generation unit 12 combines the order information received from the software execution unit 101 and the execution unit encryption key acquired from the execution unit encryption key storage unit 11, and determines this combined data in advance. Enter into the hash function. The output of this hash function is transmitted to the user of the soft executor 101 by telephone as an execution right generation password.

【0065】ここで、ハッシュ関数は、データ圧縮型暗
号処理であり、その出力が入力のすべてのビットに依存
しており、出力が同じとなる異なる入力ペアを容易には
見付けることができないという性質を持っている。その
具体的な構成方法については、例えば池野、小山共著の
「現代暗号理論」、電子通信学会発行の224ページか
ら225ページに詳しく記述されている。なお、本実施
例で用いるハッシュ関数は、例えば入力を10進10桁
くらいの値に圧縮する関数とする。
Here, the hash function is a data compression type cryptographic process, the output of which depends on all the bits of the input, and it is not easy to find a different input pair having the same output. have. The specific construction method is described in detail, for example, in "Modern Cryptography" by Ikeno and Koyama, pages 224 to 225, published by The Institute of Electronics, Communication and Communication. The hash function used in this embodiment is, for example, a function that compresses an input into a value of about 10 decimal digits.

【0066】ソフト実行器101のユーザは、電話で受
け取った実行権生成パスワードを、実行権生成パスワー
ド検査部7に入力する。この実行権生成パスワード検査
部7には、注文管理器102で用いているのと同じハッ
シュ関数が格納されている。そして、実行権生成パスワ
ード検査部7は、このハッシュ関数に、注文作成部4内
に蓄積されている注文情報と、実行器暗号キー格納部6
内に格納されている実行器暗号キーとを結合したデータ
を入力する。次に、実行権生成パスワード検査部7は、
このハッシュ関数の出力結果を、注文管理器102から
得た実行権生成パスワードと比較する。このとき、注文
作成部4内に蓄積されている注文情報が実際に注文管理
器102に伝えられた内容と違っていたり、ソフト実行
器101内に格納されている実行器暗号キーが注文管理
器102内で獲得された実行器暗号キーと異なっている
場合には、この比較結果は、NG(不一致)となる。
The user of the software executor 101 inputs the execution right generation password received by telephone to the execution right generation password checking unit 7. The same right hash function used in the order management unit 102 is stored in the execution right generation password checking unit 7. Then, the execution right generation password checking unit 7 uses the hash function to store the order information stored in the order creating unit 4 and the execution unit encryption key storage unit 6.
Enter the data that is combined with the execution unit encryption key stored in. Next, the execution right generation password checking unit 7
The output result of this hash function is compared with the execution right generation password obtained from the order manager 102. At this time, the order information stored in the order creation unit 4 is different from the content actually transmitted to the order management unit 102, or the execution unit encryption key stored in the software execution unit 101 is the order management unit. If it is different from the executor encryption key obtained in 102, the comparison result is NG (mismatch).

【0067】実行権生成部8は、上記実行権生成パスワ
ード検査部7での検査結果がOK(一致)のときにの
み、起動されて実行権の生成を行なう。その方法は、次
のとおりである。まず、実行権生成部8は、注文作成部
4内に蓄積されている注文情報を参照して、対応する暗
号化ソフトウェアを暗号化ソフト格納部3から取り出
す。例えば、暗号化ソフトウェアとして、ESoftA
を取り出したと想定すると、実行権生成部8は、この取
り出した暗号化ソフトウェアESoftAを、システム
内で共通の秘密鍵S(図示せず)を用いて復号し、対応
する認証子authAを得る。次に、実行権生成部8
は、この認証子authAを、実行器暗号キー格納部6
に格納されている実行器暗号キーを用いて暗号化し、こ
の暗号化で得た認証子を、実行権として実行権格納部9
に格納する。一般的に、特定の実行器暗号キーSxを備
えたソフト実行器Xの場合、ソフトAの実行権は、E
(Sx,authA)となる。この実行権は、実行器X
固有の暗号キーSxで暗号化されているため、実行権格
納部9として、外部からの読出プロテクトが施されてい
ない一般のメモリを用いた場合でも、機密漏洩の問題は
生じない。
The execution right generation unit 8 is activated and generates the execution right only when the check result of the execution right generation password checking unit 7 is OK (match). The method is as follows. First, the execution right generation unit 8 refers to the order information stored in the order creation unit 4, and extracts the corresponding encrypted software from the encrypted software storage unit 3. For example, as encryption software, ESsoftA
Assuming that the encrypted software ESsoftA has been extracted, the execution right generation unit 8 decrypts the extracted encrypted software ESoftA using a common secret key S (not shown) in the system to obtain a corresponding authenticator authA. Next, the execution right generation unit 8
Uses the authenticator authA as the executor encryption key storage unit 6
It is encrypted using the execution device encryption key stored in the execution right encryption unit, and the authenticator obtained by this encryption is used as the execution right.
To be stored. Generally, in the case of the soft executor X having a specific executor encryption key Sx, the execution right of the software A is E
(Sx, authA). This execution right is the execution device X
Since it is encrypted with the unique encryption key Sx, even if a general memory that is not protected from external read is used as the execution right storage unit 9, the problem of confidentiality leakage does not occur.

【0068】ソフトウェアAを実行する際には、ソフト
復号実行部10は、まず暗号化ソフトウェアESoft
Aをシステム内で共通の秘密鍵Sを用いて復号し、認証
子authAとSoftAとを得る。次に、ソフト復号
実行部10は、ソフトウェアAに対応する実行権E(S
x,authA)を、実行権格納部9から取り出す。次
に、ソフト復号実行部10は、実行権E(Sx,aut
hA)を実行器暗号キーSxで復号して得た値と、先に
得ていた認証子とを比較する。そして、ソフト復号実行
部10は、両者が一致するときに、ソフトウェアSof
tAを実行する。
When executing the software A, the software decryption executing unit 10 firstly executes the encrypted software ESsoft.
A is decrypted using the common secret key S in the system to obtain the authenticators authA and SoftA. Next, the software decryption execution unit 10 executes the execution right E (S
x, authA) is extracted from the execution right storage unit 9. Next, the software decryption executing unit 10 executes the execution right E (Sx, auto
The value obtained by decrypting hA) with the execution device encryption key Sx is compared with the previously obtained authenticator. Then, the soft decryption executing unit 10 determines that the software Sof
Perform tA.

【0069】以上説明したように、本発明の第1の実施
例では、従来システムにおいて注文管理器が行なってい
た実行権の生成(従来例では、暗号化ファイルキーの生
成に相当する)を、ソフト実行器側で行なっている。す
なわち、本実施例では、注文管理器102は、実行権生
成部8に対して起動の許可を与えるだけの機能を有して
いる。ここで、許可情報となる実行権生成パスワード
は、注文情報と実行器の暗号キーとに依存したハッシュ
関数の出力であるため、10進10桁程度の値で実現で
き、電話での伝え間違え、入力間違えが少なくなり、ユ
ーザインタフェースも良好になる。また、注文情報およ
び実行器の認証が可能となる。また、注文管理器102
は、実行権生成部8に対し起動の許可を与えるだけなの
で、実行権生成パスワードは、注文するソフトの個数に
依存せず、いつも少ない桁数で実現できる。
As described above, in the first embodiment of the present invention, the execution right generated by the order manager in the conventional system (corresponding to the generation of the encrypted file key in the conventional system) is It is done on the software execution unit side. That is, in this embodiment, the order management unit 102 has a function of only giving the activation right generation unit 8 permission to start. Here, since the execution right generation password that is the permission information is the output of the hash function that depends on the order information and the encryption key of the executor, it can be realized with a value of about 10 decimal digits. Input mistakes are reduced and the user interface is improved. Further, it becomes possible to authenticate the order information and the execution device. Also, the order manager 102
Since only the permission to start is given to the execution right generation unit 8, the execution right generation password can always be realized with a small number of digits without depending on the number of ordered software.

【0070】次に、上記第1の実施例のソフトウェア保
護システムにおいて、不正行為に対する安全性について
説明する。第1の実施例のシステムでは、注文管理器1
02がソフト実行器101から注文を受けて、それに対
する実行権生成パスワードを発行する際に、注文に対応
した課金がなされるものとしている。支払の方法として
は、一般的にはクレジット等の方法が採用されるであろ
う。従って、ソフト実行器101において、課金の対象
とならない不正な実行権を勝手に生成することが困難で
あれば、システムの安全性が高いということになる。
Next, the security against fraud in the software protection system of the first embodiment will be described. In the system of the first embodiment, the order manager 1
It is assumed that when 02 receives an order from the soft executor 101 and issues an execution right generation password for the order, the fee corresponding to the order is charged. As a payment method, a method such as credit will be generally adopted. Therefore, if it is difficult for the software executor 101 to arbitrarily generate an unauthorized execution right that is not subject to billing, the system is highly safe.

【0071】まず、不正な実行権を生成させるための外
部からの攻撃として、ソフト実行器101内の実行権生
成部8を単独で動作させることが考えられる。また、注
文作成部4で作成した注文以外のソフトウェアの実行権
を、実行権生成部8で作成させるという攻撃も考えられ
る。これらの攻撃に対しては、ユーザがソフト実行器1
01内の各構成要素を変更できないようにすることによ
り対処できる。
First, as an external attack for generating an illegal execution right, it is conceivable to operate the execution right generation unit 8 in the software execution unit 101 independently. Further, an attack may be considered in which the execution right generation unit 8 creates the execution right of software other than the order created by the order creation unit 4. In response to these attacks, the user executes software execution unit 1
This can be dealt with by making it impossible to change each component in 01.

【0072】第1の実施例では、実行権生成部8は、注
文作成部4において注文が行なわれ、次にそれに対応す
る実行権生成パスワードの検査が通るという一連の作業
を経た後でなければ起動しない。すなわち、第1の実施
例では、実行権生成部8だけが単独で動作するように変
更することはできない。また、第1の実施例では、上記
一連の作業から注文作成を除いて、実行権生成パスワー
ドの検査と実行権生成部8だけを動作させることもでき
ない。さらに、注文作成部4において作成された注文情
報が、実行権生成パスワード検査部7と実行権生成部8
とで用いられる際、そのいずれにおいてもユーザは、注
文情報の内容を変更できない。従って、第1の実施例で
は、上記のような不正な攻撃が行われても、実行権が生
成されることはない。
In the first embodiment, the execution right generation unit 8 has to perform a series of operations in which an order is placed in the order creation unit 4 and then the execution right generation password corresponding thereto is inspected. It does not start. That is, in the first embodiment, it is not possible to change only the execution right generation unit 8 to operate independently. Further, in the first embodiment, it is not possible to operate only the execution right generation password inspection and the execution right generation unit 8 except for the order creation from the above series of operations. Further, the order information created by the order creation unit 4 is the execution right generation password checking unit 7 and the execution right generation unit 8
In both cases, the user cannot change the content of the order information. Therefore, in the first embodiment, the execution right is not generated even if the above-mentioned illegal attack is performed.

【0073】なお、ソフト実行器101が専用器である
場合や、ソフト実行器内のプログラムがCD−ROMな
どで実現されている場合が非常に一般的であるというこ
とを考慮すると、ユーザがソフト実行器内の各構成要素
を変更できないようにすることは、現実に即したもので
ある。
Considering that it is very common that the software executor 101 is a dedicated device or that the program in the software executor is realized by a CD-ROM or the like, the user can execute the software. Making each component in the executor unchangeable is a realistic one.

【0074】また、ソフトウェアを不正に実行するため
に、ある注文に対して受け取った実行権生成パスワード
を、別の注文に対する実行権生成パスワードとして入力
したり、また注文を出したソフト実行器以外のソフト実
行器に入力してみるという攻撃も考えられる。ところ
が、第1の実施例のシステムでは、実行権生成パスワー
ドは、注文情報と実行器暗号キーとに依存した値である
ため、注文情報やソフト実行器が違う場合には、実行権
生成パスワードの検査が通らない。従って、第1の実施
例は、このような不正な攻撃に対しても対処できる。
Further, in order to execute the software illegally, the execution right generation password received for one order is input as the execution right generation password for another order, or a software execution device other than the ordering software execution device is entered. An attack of inputting to the software execution unit is also possible. However, in the system of the first embodiment, the execution right generation password is a value that depends on the order information and the execution device encryption key. Therefore, if the order information and the software execution device are different, the execution right generation password The inspection does not pass. Therefore, the first embodiment can deal with such an unauthorized attack.

【0075】さらに、ソフトウェアを不正に実行するた
めに、ある注文の実行権生成パスワードに対し、総当た
り的に適当な値のパスワードを入力してみるという攻撃
も考えられる。しかしながら、第1の実施例では、パス
ワードの桁数を10進で10桁くらいに設定しているた
め、不正ユーザが適当にパスワードを入力してみても、
それがたまたま検査部7をパスする確率は、実際上0に
近いと考えられる。従って、第1の実施例は、このよう
な攻撃に対しても対処できる。
Further, in order to illegally execute the software, an attack in which a password having an appropriate value is brute force input is considered for the execution right generation password of a certain order. However, in the first embodiment, the number of digits of the password is set to about 10 in decimal, so even if an unauthorized user tries to input the password properly,
The probability that it happens to pass the inspection unit 7 is considered to be practically close to zero. Therefore, the first embodiment can deal with such an attack.

【0076】さらに、ソフトウェアを不正に実行するた
めに、ユーザが実行権生成パスワードを偽造することも
考えられる。これに対しては、例えば公開鍵署名法を用
いて対処することができる。公開鍵署名法を用いた場
合、実行権生成パスワードを生成するためには、注文管
理器102の秘密鍵が必要となるため、一般のユーザに
は、パスワードの偽造はできない。また、実行権生成パ
スワードを発行するための手続き(演算)を公開しない
という方法でも対処できる。上記第1の実施例では、ソ
フト実行器2内の実行権生成パスワード検査部7は、実
行権生成パスワードの生成と同じ手順で検査を行なう
が、ユーザには実行権生成パスワード検査部7のアルゴ
リズムが公開されない。さらに、実行権生成パスワード
検査部7が単独で使用する(すなわち、ソフト実行器1
01内の構成要素を変更する)ことができないため、パ
スワード偽造の問題は生じない。
Further, in order to illegally execute the software, the user may forge the execution right generation password. This can be dealt with using, for example, the public key signature method. When the public key signature method is used, the private key of the order management device 102 is required to generate the execution right generation password, and therefore the general user cannot forge the password. It is also possible to deal with this by not exposing the procedure (operation) for issuing the execution right generation password. In the first embodiment, the execution right generation password checking unit 7 in the software executor 2 performs the inspection in the same procedure as the generation of the execution right generation password. Is not published. Furthermore, the execution right generation password checking unit 7 uses it independently (that is, the software execution unit 1
Since the components in 01 cannot be changed), the problem of password forgery does not occur.

【0077】また、実行権格納部9を、読出プロテクト
機能を持たない一般のメモリを用いて構成した場合、実
行権格納部9に格納されている実行権を解析することに
より、実行権を不正に生成するということも考えられ
る。しかしながら、第1の実施例では、実行権格納部9
内に格納されている実行権は、対応するソフト実行器1
01の暗号キーで暗号化され、しかも実行器暗号キーが
64ビット程度に設定されているので、容易には実行権
を解析できない。さらに、ユーザが実行器暗号キーを観
察できないようにする、またはユーザに対して復号処理
を公開しないようにすることで、より安全性を高めるこ
とができる。
When the execution right storage unit 9 is constructed by using a general memory having no read protect function, the execution right stored in the execution right storage unit 9 is analyzed to make the execution right illegal. It is also possible to generate in. However, in the first embodiment, the execution right storage unit 9
The execution right stored in the corresponding software execution unit 1
Since the encryption key is 01 and the execution device encryption key is set to about 64 bits, the execution right cannot be easily analyzed. Further, by preventing the user from observing the executor encryption key or by not exposing the decryption process to the user, the security can be further enhanced.

【0078】以上の説明により、ソフト実行器101側
で実行権を偽造することは、事実上不可能であることが
分かる。
From the above description, it can be understood that it is virtually impossible to forge the execution right on the software execution unit 101 side.

【0079】なお、上記第1の実施例のシステムは、ユ
ーザが実行権を手に入れたら、その実行権を無限回数使
用できるようなシステム、すなわち「実行権買い取り
式」のシステムとして構成されている。従って、同じ注
文情報に対する実行権生成パスワードが複数回入力され
てもかまわない。
The system of the first embodiment is configured as a system in which the user can use the execution right for an unlimited number of times, that is, the "execution right purchase type" system. There is. Therefore, the execution right generation password for the same order information may be input multiple times.

【0080】(2)第2の実施例 図2は、本発明の第2の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。この第2の実
施例は、第1の実施例のような「実行権買い取り式」の
システムとは異なり、ソフトウェアの実行権に例えば実
行回数などの条件が付加されている場合に有効となる。
(2) Second Embodiment FIG. 2 is a block diagram showing the configuration of the software protection system according to the second embodiment of the present invention. The second embodiment is effective when a condition such as the number of executions is added to the software execution right, unlike the "execution right purchase type" system as in the first embodiment.

【0081】ところで、注文したソフトウェアの実行回
数を制限するためには、実行権生成パスワードは、最初
の入力時にのみ有効とならなければならない。これは2
回目以降の入力時にも有効であれば、次のような不都合
が生じるからである。例えば、あるソフト実行器がソフ
トウェアAをN回実行する注文を作成し、注文管理器か
ら当該注文に対する実行権生成パスワードを手に入れた
とする。ソフト実行器にこのパスワードが入力される
と、ソフトウェアAをN回実行できる実行権が生成され
る。次に、この実行権が少なくなった時点で、同じソフ
ト実行器において再度ソフトウェアAをN回実行する注
文を作成し、注文管理器には注文せずに、以前のパスワ
ードを入力する。このパスワードがもし有効となり、再
度ソフトウェアAのN回の実行権が生成されると、実質
的に実行回数の制限は意味がなくなってしまう。
By the way, in order to limit the number of times the ordered software is executed, the execution right generation password must be valid only at the first input. This is 2
This is because the following inconvenience will occur if it is valid at the time of the subsequent input. For example, it is assumed that a certain software executor creates an order to execute the software A N times and obtains the execution right generation password for the order from the order manager. When this password is input to the software execution unit, an execution right for executing the software A N times is generated. Next, when this execution right is exhausted, an order for executing the software A again N times is created in the same software execution unit, and the previous password is input without making an order in the order management unit. If this password becomes valid and the execution right of the software A N times is generated again, the limitation of the execution count becomes practically meaningless.

【0082】そこで、第2の実施例では、実行権生成パ
スワードを最初の入力時だけ有効とするために、第1の
実施例の構成に加えて、注文ごとに変化する値を導入し
ている。すなわち、第2の実施例では、個々の注文情報
に対して、その都度値が変化する変化値を生成し、この
変化値に対応した実行権生成パスワードだけが有効とな
るようにしている。この注文ごとに変化する変化値の実
現方法としては種々考えられるが、第2の実施例では、
注文ごとに乱数を発生し、この乱数を注文ごと変化する
変化値として用いるようにしている。
Therefore, in the second embodiment, in order to make the execution right generation password valid only at the first input, a value that changes for each order is introduced in addition to the configuration of the first embodiment. . That is, in the second embodiment, a change value whose value changes each time is generated for each order information, and only the execution right generation password corresponding to this change value is valid. There are various possible methods for realizing the change value that changes for each order, but in the second embodiment,
A random number is generated for each order, and this random number is used as a change value that changes for each order.

【0083】図2において、本実施例のソフトウェア保
護システムは、ソフトウェアを実行するソフト実行器2
01と、ソフト実行器201に対してソフトウェアを配
付する注文管理器202とを備えている。ソフト実行器
201は、図1の実施例と同様の構成の、暗号化ソフト
ウェア格納部3と、注文作成部4と、実行器ID格納部
5と、実行器暗号キー格納部6と、実行権生成部8と、
実行権格納部9と、ソフト復号実行部10とを含む。さ
らに、ソフト実行器201は、注文のたびに起動する乱
数生成器20と、受け取った実行権生成パスワードの正
当性を、注文情報,実行器暗号キーおよび乱数データを
用いて確かめる実行権生成パスワード検査部21とを含
む。
In FIG. 2, the software protection system of this embodiment is a software execution unit 2 that executes software.
01 and an order management unit 202 that distributes software to the software execution unit 201. The software execution unit 201 has an encrypted software storage unit 3, an order creation unit 4, an execution unit ID storage unit 5, an execution unit encryption key storage unit 6, and an execution right, which have the same configuration as that of the embodiment of FIG. A generator 8 and
The execution right storage unit 9 and the software decryption execution unit 10 are included. Further, the software execution unit 201 checks the validity of the random number generator 20 that is activated each time an order is placed and the received execution right generation password by using the order information, the execution unit encryption key, and the random number data to check the execution right generation password. And a part 21.

【0084】一方、注文管理器202は、図1の実施例
と同様の構成の実行器暗号キー格納部11を含む。さら
に、注文管理器202は、ソフト実行器201から送付
された注文情報および乱数と、実行器暗号キー格納部1
1から獲得したソフト実行器202の暗号キーとを用い
て、それらすべてに依存する実行権生成パスワードを生
成する実行権パスワード生成部22を含む。
On the other hand, the order management unit 202 includes the execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Further, the order management unit 202 includes the order information and the random number sent from the software execution unit 201, and the execution unit encryption key storage unit 1.
Using the encryption key of the software executor 202 acquired from the above 1, an execution right password generation unit 22 for generating an execution right generation password dependent on them is included.

【0085】以上述べたように、この第2の実施例で
は、注文のたびに新しい乱数が生成される。そして、ソ
フト実行器201のユーザは、第1の実施例における注
文情報および実行器IDに加え、この乱数を、注文管理
器202のオペレータに電話で通知する。なお、この乱
数は、ユーザインタフェースを良好にするために、10
進10桁程度の値とする。
As described above, in this second embodiment, a new random number is generated every time an order is placed. Then, the user of the software execution unit 201 notifies the operator of the order management unit 202 by telephone of this random number in addition to the order information and execution unit ID in the first embodiment. Note that this random number is 10 in order to improve the user interface.
It should be a value of about 10 decimal digits.

【0086】注文管理器202における実行権生成パス
ワード生成部22は、第1の実施例で用いたのと同様の
ハッシュ関数に、注文情報,乱数および該当するソフト
実行器201の実行器暗号キーを結合したデータを入力
する。そして、このハッシュ関数の出力結果である10
進10桁の値は、実行権生成パスワードとして、ソフト
実行器201のユーザに電話で通知される。
The execution right generation password generation unit 22 in the order management unit 202 uses the same hash function as that used in the first embodiment with the order information, the random number, and the execution unit encryption key of the corresponding software execution unit 201. Enter the combined data. The output result of this hash function is 10
The 10-digit decimal value is notified to the user of the software executor 201 by telephone as an execution right generation password.

【0087】通知を受けたソフト実行器201のユーザ
は、上記実行権生成パスワードを、ソフト実行器201
の実行権生成パスワード検査部21に入力する。実行権
生成パスワード検査部21は、注文作成部4および乱数
発生部20から得た注文情報および乱数と、注文管理器
202から得た実行器暗号キーとを結合して、注文管理
器202で使用しているハッシュ関数と同様のハッシュ
関数に入力する。そして、実行権生成パスワード検査部
21は、このハッシュ関数の出力結果を、入力された実
行権生成パスワードと比較し、両者が一致しているとき
のみ、実行権生成部8を起動する。これ以降の動作は、
前述した第1の実施例と同様であるので、その説明を省
略する。
Upon receiving the notification, the user of the software execution unit 201 sets the execution right generation password to the software execution unit 201.
It is input to the execution right generation password check unit 21. The execution right generation password checking unit 21 combines the order information and the random number obtained from the order creating unit 4 and the random number generating unit 20 with the execution unit encryption key obtained from the order management unit 202, and uses them in the order management unit 202. Input to the same hash function as the current hash function. Then, the execution right generation password checking unit 21 compares the output result of this hash function with the input execution right generation password, and activates the execution right generation unit 8 only when both match. The operation after this is
Since it is similar to the above-described first embodiment, the description thereof will be omitted.

【0088】上記第2の実施例では、注文のたびに新し
い乱数が自動的に生成される。そして、正規の手続きの
場合、注文管理器202からは、この乱数(=注文ごと
に変化する値)に依存した実行権生成パスワードが発行
される。そして、この実行権作成パスワードは、対応す
る乱数を保持するソフト実行器201においてのみ有効
となる。従って、2回目以降の注文発生時における乱数
が、1回目の注文発生時に生成された乱数とは異なるた
め、1回目の注文発生時に得た実行権生成パスワード
を、複数回不正使用することはできない。なお、第2の
実施例では、第1の実施例において説明した安全性確保
に対する対処に加え、上記乱数をユーザが勝手に変更し
たり設定できないようにすることが好ましい。
In the second embodiment, a new random number is automatically generated every time an order is placed. Then, in the case of a regular procedure, the order management unit 202 issues an execution right generation password depending on this random number (= value that changes for each order). Then, this execution right creation password is valid only in the software execution unit 201 that holds the corresponding random number. Therefore, since the random number generated when the second and subsequent orders are generated is different from the random number generated when the first order is generated, the execution right generation password obtained when the first order is generated cannot be illegally used multiple times. . In addition, in the second embodiment, in addition to the measures for ensuring the security described in the first embodiment, it is preferable that the random number cannot be arbitrarily changed or set by the user.

【0089】なお、上記第2の実施例では、新しい注文
が作成されるまでは、以前の乱数が残っているように構
成されているが、一旦注文をセーブすることを可能とす
る場合には、実行権を生成した段階でそれに関与する乱
数をクリアまたは更新するようにしてもよい。これによ
って、より一層安全性が高まる。
In the second embodiment, the previous random number remains until a new order is created. However, if it is possible to save the order once, The random numbers involved in the execution right may be cleared or updated at the stage of generation. This further enhances safety.

【0090】(3)第3の実施例 図3は、本発明の第3の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。この第3の実
施例は、前述の第1の実施例に効率のよい実行器認証を
付加したものである。図3において、第3の実施例のソ
フトウェア保護システムは、ソフトウェアを実行するソ
フト実行器301と、ソフト実行器301に対してソフ
トウェアを配付する注文管理器302とを備えている。
(3) Third Embodiment FIG. 3 is a block diagram showing the configuration of the software protection system according to the third embodiment of the present invention. In the third embodiment, efficient executor authentication is added to the first embodiment described above. In FIG. 3, the software protection system of the third embodiment includes a software execution unit 301 that executes software and an order management unit 302 that distributes software to the software execution unit 301.

【0091】ソフト実行器301は、前述の第1の実施
例と同様の構成の、暗号化ソフトウェア格納部3と、注
文作成部4と、実行器ID格納部5と、実行器暗号キー
格納部6と、実行権生成部8と、実行権格納部9と、ソ
フト復号実行部10とを含む。さらに、ソフト実行器3
01は、注文情報と実行器暗号キーに依存した注文認証
情報を生成する注文認証情報生成部30と、注文管理器
302から受け取った実行権生成パスワードの正当性
を、注文情報,実行器暗号キーおよび注文認証情報を用
いて検査する実行権生成パスワード検査部31とを含
む。
The software execution unit 301 has the same configuration as that of the first embodiment described above, the encrypted software storage unit 3, the order creation unit 4, the execution unit ID storage unit 5, and the execution unit encryption key storage unit. 6, an execution right generation unit 8, an execution right storage unit 9, and a soft decryption execution unit 10. Furthermore, software execution unit 3
01 is the order authentication information generation unit 30 that generates the order authentication information that depends on the order information and the execution device encryption key, and the validity of the execution right generation password received from the order management device 302. And an execution right generation password checking unit 31 for checking using the order authentication information.

【0092】一方、注文管理器302は、図1の実施例
と同様の構成の実行器暗号キー格納部11を含む。さら
に、注文管理器302は、ソフト実行器301から受け
取った注文情報および注文認証情報と、実行器暗号キー
格納部11から獲得した実行器暗号キーとを用いてソフ
ト実行器の認証を行なう実行器認証部32と、実行器認
証結果がOKの場合に、注文認証情報を注文情報を識別
する注文識別情報として用い、さらに注文情報と注文識
別情報(=注文認証情報)とを用いて実行権生成パスワ
ードを生成する実行権生成パスワード生成部33とを含
む。
On the other hand, the order management unit 302 includes the execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Further, the order manager 302 authenticates the software executor using the order information and the order authentication information received from the software executor 301, and the executor encryption key acquired from the executor encryption key storage unit 11. When the authentication unit 32 and the execution unit authentication result are OK, the order authentication information is used as order identification information for identifying the order information, and the execution right is generated by using the order information and the order identification information (= order authentication information). An execution right generation password generation unit 33 that generates a password is included.

【0093】次に、図3に示す第3の実施例のソフトウ
ェア保護システムの動作を説明する。まず、ソフト実行
器301の注文作成部4で注文情報が作成されると、注
文認証情報生成部30は、第1の実施例で用いたのと同
様のハッシュ関数に、注文情報と実行器暗号キー格納部
6から得た実行器暗号キーとを結合したデータを入力す
る。そして、ソフト実行器301のユーザは、上記ハッ
シュ関数の出力結果を注文認証情報として、注文情報お
よび実行器IDに加えて、注文管理器302のオペレー
タに電話で伝える。なお、注文情報および注文認証情報
は、それぞれ、注文作成部4および注文認証情報生成部
30に蓄積されている。
Next, the operation of the software protection system of the third embodiment shown in FIG. 3 will be described. First, when order information is created by the order creation unit 4 of the software execution unit 301, the order authentication information generation unit 30 uses the same hash function as that used in the first embodiment to place the order information and execution unit encryption. The data combined with the execution unit encryption key obtained from the key storage unit 6 is input. Then, the user of the soft executor 301 informs the operator of the order manager 302 by telephone, using the output result of the hash function as order authentication information, in addition to the order information and the executor ID. The order information and the order authentication information are stored in the order creating unit 4 and the order authentication information generating unit 30, respectively.

【0094】注文管理器302では、まず実行器認証部
32が、ソフト実行器301から受け取った実行器ID
を鍵として、実行器暗号キー格納部11を検索し、該当
するソフト実行器301の実行器暗号キーを獲得する。
次に、実行器認証部32は、ソフト実行器301から受
け取った注文情報と実行器暗号キーとを結合したデータ
を、ソフト実行器301で用いているのと同様のハッシ
ュ関数に入力する。次に、実行器認証部32は、このハ
ッシュ関数の出力結果を、ソフト実行器301から受け
取った注文認証情報と比較する。そして、実行器認証部
32は、比較結果が一致しているときのみ、相手が正し
い実行器であり正しい注文を行なったものと判断し、注
文認証情報を注文を識別する注文識別情報として、例え
ば注文情報およびこれに関連した情報の管理や授受に用
いる。また、実行権生成パスワード生成部33は、注文
情報と注文識別情報(=注文認証情報)とを結合したデ
ータを、上記と同様のハッシュ関数に入力する。そし
て、注文管理器302のオペレータは、そのハッシュ関
数の出力結果を、実行権生成パスワードとして、注文識
別情報と対にしてソフト実行器301のユーザに電話で
伝える。
In the order management unit 302, the execution unit authentication unit 32 first receives the execution unit ID received from the software execution unit 301.
Is used as a key to search the execution unit encryption key storage unit 11 to obtain the execution unit encryption key of the corresponding software execution unit 301.
Next, the executor authentication unit 32 inputs the data obtained by combining the order information and the executor encryption key received from the software executor 301 into the same hash function as that used by the software executor 301. Next, the executor authentication unit 32 compares the output result of this hash function with the order authentication information received from the software executor 301. Then, the executor authentication unit 32 determines that the other party is the correct executor and made a correct order only when the comparison results match, and the order authentication information is, for example, the order identification information for identifying the order. Used to manage and exchange order information and related information. Further, the execution right generation password generation unit 33 inputs the data obtained by combining the order information and the order identification information (= order authentication information) into the same hash function as above. Then, the operator of the order management unit 302 telephones the output result of the hash function to the user of the software execution unit 301 as an execution right generation password in combination with the order identification information.

【0095】ソフト実行器301のユーザは、伝えられ
た実行権生成パスワードを、実行権生成パスワード検査
部31に入力する。応じて、実行権生成パスワード検査
部31は、注文作成部4に蓄積された注文情報と、注文
認証情報生成部30に蓄積された注文認証情報とを結合
したデータをハッシュ関数に入力し、その出力結果が入
力された実行権生成パスワードと一致するか否かを検査
する。そして、実行権生成パスワード検査部31は、こ
の検査結果が一致している場合にのみ、実行権生成部8
を起動する。これ以降の動作は、第1の実施例と同様で
あり、その説明を省略する。
The user of the software execution unit 301 inputs the transmitted execution right generation password into the execution right generation password checking unit 31. In response, the execution right generation password checking unit 31 inputs the data obtained by combining the order information accumulated in the order creating unit 4 and the order authentication information accumulated in the order authentication information generating unit 30 into the hash function, It is checked whether the output result matches the input execution right generation password. Then, the execution right generation password checking unit 31 checks the execution right generation unit 8 only when the check results match.
To start. The subsequent operation is similar to that of the first embodiment, and the description thereof is omitted.

【0096】上記第3の実施例では、注文管理器302
は、実行権生成パスワードの発行前に、注文情報および
ソフト実行器の認証を行なう。実際のシステムでは、注
文により課金がなされるため、いずれにせよ認証機能は
必要である。この認証機能は、注文と切り離して別途設
けることもできるが、例えば、チャレンジを行ないそれ
に対する応答により認証する方法では、これらチャレン
ジおよび応答のやりとりが、実際上、ソフト実行器のユ
ーザに対してかなりの負担を与えることになる。そこ
で、第3の実施例では、注文情報およびソフト実行器の
認証を、注文と同時に効率的に行なうようにしている。
そのため、第3の実施例では、注文情報および実行器の
暗号キーに依存した注文認証情報を導入している。そし
て、この注文認証情報は、注文情報および実行器IDに
加えられて、注文管理器302に伝えられる。なお、こ
の注文認証情報は、上記第3の実施例ではハッシュ関数
の出力であるため、例えば10進10桁程度で実現で
き、電話で伝える場合にもそれほどユーザに負担を与え
ない。
In the third embodiment, the order manager 302
Authenticates the order information and software execution unit before issuing the execution right generation password. In an actual system, since an order is charged, an authentication function is necessary anyway. This authentication function can be separately provided separately from the order, but, for example, in the method of performing a challenge and authenticating by a response to the challenge, the exchange of the challenge and the response is actually considerably difficult for the user of the soft executor. Will be burdened. Therefore, in the third embodiment, the order information and the software executor are efficiently authenticated at the same time as the order is placed.
Therefore, in the third embodiment, order authentication information that depends on the order information and the encryption key of the executor is introduced. Then, this order authentication information is added to the order information and the execution unit ID and is transmitted to the order management unit 302. Since the order authentication information is the output of the hash function in the third embodiment, it can be realized with, for example, 10 decimal digits, and does not burden the user so much when transmitting it by telephone.

【0097】注文管理器302は、上記注文認証情報を
用いることにより、注文情報およびソフト実行器301
の認証を行なっている。つまり、ソフト実行器301が
注文作成部4で作成した注文情報と、注文管理器302
に電話で伝えた注文情報とが異なっている場合には、注
文管理器302の実行器認証部32において、NGが出
力される。また、あるソフト実行器が自分の実行器ID
と異なる情報を電話で伝えた場合にも、この実行器認証
部32でチェックできる。
The order management unit 302 uses the order authentication information to obtain the order information and the software execution unit 301.
Is certified. That is, the order information created by the software execution unit 301 by the order creation unit 4 and the order management unit 302
If the order information transmitted by telephone is different from the order information, the executor authentication unit 32 of the order manager 302 outputs NG. Also, a certain software execution unit has its own execution unit ID.
Even when information different from the above is transmitted by telephone, it can be checked by the executor authentication unit 32.

【0098】上記認証結果がOKの場合にのみ、注文管
理器302は、注文認証情報を注文を識別するための注
文識別情報として用いる。そして、注文管理器302
は、この注文に対応した実行権生成パスワードを生成す
る。この実行権生成パスワードは、ソフト実行器301
に伝えられる。この実行権生成パスワードもハッシュ関
数の出力であるため、10進10桁程度で実現できる。
ソフト実行器301では、入力された実行権生成パスワ
ードを、内部に蓄えている注文情報および注文認証情報
(=注文識別情報)を用いて検査する。この検査を経た
後、入力された実行権生成パスワードに対応した注文認
証情報および注文情報を保持する特定のソフト実行器で
のみ有効となる実行権が生成される。なお、ここでは、
実行権生成パスワードの注文識別情報(=注文認証情
報)の中に、実行器暗号キーの情報がすでに含まれてい
るため、実行権生成パスワード自身に実行器暗号キーは
含まれていない。
Only when the authentication result is OK, the order management unit 302 uses the order authentication information as the order identification information for identifying the order. And the order manager 302
Generates an execution right generation password corresponding to this order. This execution right generation password is the software execution unit 301.
Conveyed to. Since this execution right generation password is also the output of the hash function, it can be realized with about 10 decimal digits.
The soft executor 301 checks the input execution right generation password using the order information and the order authentication information (= order identification information) stored inside. After this inspection, the execution right that is valid only in the specific software execution unit that holds the order authentication information and the order information corresponding to the input execution right generation password is generated. In addition, here
Since the order identification information (= order authentication information) of the execution right generation password already includes the execution unit encryption key information, the execution right generation password itself does not include the execution unit encryption key.

【0099】上記第3の実施例では、ソフト実行器30
1のユーザは、注文時に第1の実施例で伝達すべき情報
に加えて、注文認証情報を注文管理器302に伝えてい
る。このことにより、注文管理器302は、実行権生成
パスワードを発行する前に、注文情報およびソフト実行
器の認証を行うことができる。この注文認証情報は、1
0進10桁程度の値であり、ソフト実行器301のユー
ザに対してそれほど負担を与えない。また、第1の実施
例と同じ回数のやりとりで認証を実現でき、ユーザ認証
を別途設ける場合に比べて効率がよい。そして、この注
文認証情報は、注文情報を識別する注文識別情報とし
て、注文情報やそれに関係する情報を管理するのに用い
られる。
In the third embodiment, the software execution unit 30
The first user transmits the order authentication information to the order manager 302 in addition to the information to be transmitted in the first embodiment at the time of ordering. As a result, the order manager 302 can authenticate the order information and the software executor before issuing the execution right generation password. This order authentication information is 1
It is a value of about 10 decimal digits, and does not impose much burden on the user of the software execution unit 301. Further, the authentication can be realized by the same number of exchanges as in the first embodiment, which is more efficient than the case where the user authentication is separately provided. Then, this order authentication information is used to manage the order information and information related thereto as order identification information for identifying the order information.

【0100】(4)第4の実施例 図4は、本発明の第4の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。この第4の実
施例は、乱数を導入した第2の実施例に、効率のよい実
行器認証機能を付加したものである。第4の実施例も第
2の実施例と同様に、例えばソフトの実行権に実行回数
などの条件が付加されている場合に有効となる。図4に
おいて、第4の実施例のソフトウェア保護システムは、
ソフトウェアを実行するソフト実行器401と、ソフト
実行器401に対してソフトウェアを配付する注文管理
器402とを備えている。
(4) Fourth Embodiment FIG. 4 is a block diagram showing the configuration of the software protection system according to the fourth embodiment of the present invention. In the fourth embodiment, an efficient executor authentication function is added to the second embodiment in which random numbers are introduced. Similar to the second embodiment, the fourth embodiment is also effective when a condition such as the number of executions is added to the software execution right. In FIG. 4, the software protection system of the fourth embodiment is
A software execution unit 401 that executes software and an order management unit 402 that distributes software to the software execution unit 401 are provided.

【0101】ソフト実行器401は、前述の第1の実施
例と同様の構成の、暗号化ソフトウェア格納部3と、注
文作成部4と、実行器ID格納部5と、実行器暗号キー
格納部6と、実行権生成部8と、実行権格納部9と、ソ
フト復号実行部10とを含む。さらに、ソフト実行器4
01は、注文情報および実行器暗号キーを結合してハッ
シュ演算を行う注文ハッシュ部40と、予め定められた
構造や意味をもつ乱数を注文ごとに生成する乱数生成部
41と、当該乱数および注文ハッシュ部40の出力の排
他的論理和を演算する排他的論理和部42とを含む。
The software executor 401 has the same configuration as that of the first embodiment described above, the encrypted software storage unit 3, the order creation unit 4, the executor ID storage unit 5, and the executor encryption key storage unit. 6, an execution right generation unit 8, an execution right storage unit 9, and a soft decryption execution unit 10. Furthermore, software execution unit 4
01 is an order hash unit 40 that performs a hash operation by combining the order information and the executor encryption key, a random number generation unit 41 that generates a random number having a predetermined structure and meaning for each order, the random number and the order. An exclusive OR unit 42 that calculates an exclusive OR of the output of the hash unit 40 is included.

【0102】一方、注文管理器402は、図1の実施例
と同様の構成の実行器暗号キー格納部11を含む。さら
に、注文管理器402は、実行器暗号キー格納部11か
ら獲得した実行器暗号キーおよびソフト実行器401か
ら受け取った注文情報を結合してソフト実行器401と
同じハッシュ演算を行う注文ハッシュ部44と、ソフト
実行器401から受け取った注文番号および注文ハッシ
ュ部44の出力の排他的論理和を演算する排他的論理和
部45と、排他的論理和部45の出力を入力しソフト実
行器401の正当性を認証する実行器認証部46と、実
行器認証部46の認証結果がOKのときのみに起動して
実行権生成パスワードを発生する実行権生成パスワード
生成部47とを含む。
On the other hand, the order management unit 402 includes the execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Furthermore, the order management unit 402 combines the execution unit encryption key acquired from the execution unit encryption key storage unit 11 and the order information received from the software execution unit 401 to perform the same hash operation as the software execution unit 401. Of the order number and the output of the order hash unit 44 received from the soft executor 401, and the output of the exclusive OR unit 45, An execution unit authentication unit 46 that authenticates the correctness and an execution right generation password generation unit 47 that starts up and generates an execution right generation password only when the authentication result of the execution unit authentication unit 46 is OK are included.

【0103】次に、図4に示す第4の実施例のソフトウ
ェア保護システムの動作を説明する。まず、ソフト実行
器401において、注文作成部4が注文情報を作成する
と、注文ハッシュ部40は、第1の実施例で用いたのと
同様のハッシュ関数に、当該注文情報と実行器暗号キー
格納部6から得たソフト実行器の暗号キーとを結合した
データを入力する。また、乱数生成部41は、予め定め
られた構造や意味を持った乱数データを生成する。一例
として、本実施例では、乱数データの最上位から3ビッ
トを“0”とし、最下位から3ビットを“1”としてい
る。その他のビットは乱数を格納する。この例の他、注
文管理器402とソフト実行器401との間で予め取り
決めしておいて、その乱数データのある部分に、実行器
IDの一部のデータを対応させてもよい。次に、排他的
論理和部42は、注文ハッシュ部40の出力と、乱数生
成部41で生成された乱数データとの排他的論理和を演
算する。ソフト実行器401のユーザは、この排他的論
理和部42の演算結果を注文認証情報として、注文情報
および実行器IDと共に、注文管理器402のオペレー
タに伝える。なお、上記乱数データのビット数を、注文
ハッシュ部40の出力と同程度にとれば、注文認証情報
は10進10桁程度となり、ソフト実行器401のユー
ザや注文管理器402のオペレータにそれほど大きな負
担を与えない。
Next, the operation of the software protection system of the fourth embodiment shown in FIG. 4 will be described. First, in the software execution unit 401, when the order creation unit 4 creates the order information, the order hash unit 40 stores the order information and the execution unit encryption key in the same hash function as that used in the first embodiment. Input the data combined with the encryption key of the software execution unit obtained from the unit 6. In addition, the random number generation unit 41 generates random number data having a predetermined structure and meaning. As an example, in this embodiment, the most significant 3 bits of the random number data are "0" and the least significant 3 bits are "1". Other bits store random numbers. In addition to this example, an arrangement may be made in advance between the order management unit 402 and the software execution unit 401, and a part of the random number data may be associated with a part of the execution unit ID data. Next, the exclusive OR unit 42 calculates the exclusive OR of the output of the order hash unit 40 and the random number data generated by the random number generation unit 41. The user of the software execution unit 401 notifies the operator of the order management unit 402 of the operation result of the exclusive OR unit 42 as the order authentication information together with the order information and the execution unit ID. If the number of bits of the random number data is set to be about the same as the output of the order hash unit 40, the order authentication information will be about 10 decimal digits, which is very large for the user of the software execution unit 401 and the operator of the order management unit 402. Do not give a burden.

【0104】注文管理器402では、実行器認証部46
が実行器暗号キー格納部11から該当するソフト実行器
の暗号キーを獲得し、これと注文情報とを結合して注文
ハッシュ部44に入力する。そして、排他的論理和部4
5は、注文ハッシュ部44の出力と、ソフト実行器40
1から受け取った注文認証情報との排他的論理和を演算
する。注文情報と実行器IDとが正しければ、注文ハッ
シュ部44の出力は、注文を行ったソフト実行器401
内の注文ハッシュ部40の出力と同じになる。また、排
他的論理和部45の出力は、注文を行ったソフト実行器
401の乱数生成部41で生成した乱数データと同じに
なる。つまり、今の場合、乱数データの最上位から3ビ
ットは“0”、最下位から3ビットは“1”となる。実
行器認証部46は、排他的論理和部45の出力が、予め
定められている乱数の構造や意味を持っているか否かを
確認し、OKであれば、注文情報と実行器とが正しいと
認証する。そして、この認証結果がOKの場合にのみ、
実行権生成パスワード生成部47は、実行権生成パスワ
ードを生成する。これ以降の動作は、第3の実施例と同
じである。すなわち、注文管理器402で生成された実
行権生成パスワードが、電話等によってソフト実行器4
01に伝えられ、ソフト実行器側でそれを検査して、O
Kの場合に対応するソフトの実行権が作成される。
In the order management unit 402, the execution unit authentication unit 46
Acquires the encryption key of the corresponding software execution unit from the execution unit encryption key storage unit 11, combines this with the order information, and inputs it to the order hash unit 44. And the exclusive OR section 4
5 is the output of the order hash unit 44 and the software execution unit 40
The exclusive OR with the order authentication information received from 1 is calculated. If the order information and the execution device ID are correct, the output of the order hash unit 44 is the software execution device 401 that has made the order.
It becomes the same as the output of the order hash unit 40 inside. Further, the output of the exclusive OR unit 45 becomes the same as the random number data generated by the random number generation unit 41 of the ordered software executor 401. That is, in this case, the most significant 3 bits of the random number data are "0", and the least significant 3 bits are "1". The executor authenticating unit 46 confirms whether the output of the exclusive OR unit 45 has a predetermined random number structure or meaning, and if the result is OK, the order information and the executor are correct. Authenticate with. And only when this authentication result is OK,
The execution right generation password generation unit 47 generates an execution right generation password. The subsequent operation is the same as that of the third embodiment. That is, the execution right generation password generated by the order manager 402 is the software execution unit 4 by telephone or the like.
01, inspected it by the software executor side, O
In the case of K, the execution right of the corresponding software is created.

【0105】上記第4の実施例では、第2の実施例と同
様に、乱数を導入して回数制限付きの実行権生成に対応
できる。さらに、第4の実施例は、第3の実施例と同様
に、ユーザ認証機能を備えている。このように第4の実
施例は、第2および第3の実施例の機能を併せ持つにも
かかわらず、ソフト実行器401と注文管理器402間
でやり取りするデータ量、特にランダムな注文番号と実
行権生成パスワードの桁数が増加していない。
In the fourth embodiment, similarly to the second embodiment, random numbers can be introduced to support execution right generation with a limited number of times. Further, the fourth embodiment has a user authentication function as in the third embodiment. As described above, the fourth embodiment has the functions of the second and third embodiments together, but the amount of data exchanged between the software executor 401 and the order manager 402, especially the random order number and execution. The number of digits in the right generation password has not increased.

【0106】(5)第5の実施例 図5は、本発明の第5の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。この第5の実
施例では、各ソフト実行器内に不活性状態の実行権生成
モジュールが備えられており、注文管理器から与えられ
る実行権生成パスワードによりその実行権生成モジュー
ルを活性化させて、そのモジュールで所定の実行権を生
成することを特徴としている。なお、以下の説明では、
実行権生成モジュールが2つの部分に分けられ、その一
方である実行権生成モジュールAがソフト実行器に蓄え
られ、もう一方の実行権生成モジュールBは、暗号化さ
れてソフト実行器が注文管理器から受け取る。この実行
権生成モジュールAおよびBは、両者が揃って初めて所
定の実行権が生成できる。従って、ソフト実行器内に蓄
えられた実行権生成モジュールAだけでは不活性な状態
であり、実行権を生成できない。
(5) Fifth Embodiment FIG. 5 is a block diagram showing the configuration of the software protection system according to the fifth embodiment of the present invention. In the fifth embodiment, each software execution unit is provided with an execution right generation module in an inactive state, and the execution right generation module is activated by the execution right generation password given from the order manager, The module is characterized in that a predetermined execution right is generated. In the following explanation,
The execution right generation module is divided into two parts, one of which is stored in the software execution unit, and the other execution right generation module B is encrypted and the software execution unit is an order management unit. Receive from The execution right generation modules A and B can generate a predetermined execution right only when both of them are assembled. Therefore, the execution right generation module A stored in the software executor alone is in an inactive state and cannot generate the execution right.

【0107】図5において、第5の実施例のソフトウェ
ア保護システムは、ソフトウェアを実行するソフト実行
器501と、ソフト実行器501に対してソフトウェア
を配付する注文管理器502とを備えている。
In FIG. 5, the software protection system of the fifth embodiment comprises a software execution unit 501 for executing software and an order management unit 502 for distributing software to the software execution unit 501.

【0108】ソフト実行器501は、前述の第1の実施
例と同様の構成の、暗号化ソフトウェア格納部3と、注
文作成部4と、実行器ID格納部5と、実行器暗号キー
格納部6と、実行権生成部8と、実行権格納部9と、ソ
フト復号実行部10とを含む。さらに、ソフト実行器5
01は、注文情報および実行器暗号キーを結合してハッ
シュ演算を施す注文ハッシュ部50と、実行権生成モジ
ュールAを格納する格納部51と、注文管理器502か
ら受け取った実行権生成パスワードを逆変換する逆変換
部52と、逆変換部52の逆変換結果を格納する格納部
53とを含む。なお、注文情報と実行器IDとが正しけ
れば、この格納部53には、実行権生成モジュールBが
格納されることになる。
The soft executor 501 has the same configuration as that of the first embodiment described above, the encrypted software storage unit 3, the order creation unit 4, the executor ID storage unit 5, and the executor encryption key storage unit. 6, an execution right generation unit 8, an execution right storage unit 9, and a soft decryption execution unit 10. Furthermore, software execution unit 5
01 is an order hash unit 50 that combines the order information and the execution unit encryption key to perform a hash operation, a storage unit 51 that stores the execution right generation module A, and an execution right generation password that is received from the order management unit 502. The inverse conversion unit 52 for conversion and the storage unit 53 for storing the inverse conversion result of the inverse conversion unit 52 are included. If the order information and the executor ID are correct, the storage unit 53 stores the execution right generation module B.

【0109】一方、注文管理器502は、図1の実施例
と同様の構成の実行器暗号キー格納部11を含む。さら
に、注文管理器502は、ソフト実行器501から受け
取った注文情報と、実行器暗号キー格納部11から得た
該当の実行器の暗号キーとを結合してハッシュ演算を施
す注文ハッシュ部54と、実行権生成モジュールBを格
納する格納部55と、モジュールBを注文ハッシュ部5
4の出力を用いて変換し、実行権生成パスワードを生成
する実行権生成パスワード生成部56とを含む。
On the other hand, the order management unit 502 includes the execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Further, the order management unit 502 combines the order information received from the software execution unit 501 with the encryption key of the relevant execution unit obtained from the execution unit encryption key storage unit 11 and performs an order hash unit 54 that performs a hash operation. , A storage unit 55 for storing the execution right generation module B, and an order hash unit 5 for the module B.
And an execution right generation password generation unit 56 for converting the output of FIG. 4 to generate an execution right generation password.

【0110】次に、図5に示す第5の実施例のソフトウ
ェア保護システムの動作を説明する。まず、ソフト実行
器501のユーザは、ソフト実行器501を操作するこ
とにより、実行を希望するソフトウェアの注文を指定す
る。応じて、注文作成部4は、対応する注文情報を作成
する。そして、当該ユーザは、注文情報とソフト実行器
501に固有の実行器IDとを、電話等によって注文管
理器502に通知する。
Next, the operation of the software protection system of the fifth embodiment shown in FIG. 5 will be described. First, the user of the software executor 501 operates the software executor 501 to specify the order of software desired to be executed. In response, the order creation unit 4 creates the corresponding order information. Then, the user notifies the order management unit 502 of the order information and the execution unit ID unique to the software execution unit 501 by telephone or the like.

【0111】ソフト実行器501からの通知を受け取る
と、注文管理器502では、実行器IDに基づいて実行
器暗号キー格納部11を検索し、該当するソフト実行器
の暗号キーを獲得する。次に、注文ハッシュ部54は、
ソフト実行器501から受け取った注文情報と、実行器
暗号キー格納部11から得た実行器暗号キーとを結合し
て、第1の実施例で用いたのと同様のハッシュ関数に入
力する。実行権生成パスワード生成部56は、注文ハッ
シュ部54から出力されるハッシュ値を鍵として、実行
権生成モジュールBを変換し、実行権生成パスワードを
発行する。注文管理器502のオペレータは、この実行
権生成パスワードを、電話等によってソフト実行器50
1のユーザに伝える。
Upon receiving the notification from the software execution unit 501, the order management unit 502 searches the execution unit encryption key storage unit 11 based on the execution unit ID and acquires the encryption key of the corresponding software execution unit. Next, the order hash unit 54
The order information received from the soft executor 501 and the executor encryption key obtained from the executor encryption key storage unit 11 are combined and input to the same hash function as that used in the first embodiment. The execution right generation password generation unit 56 converts the execution right generation module B using the hash value output from the order hash unit 54 as a key, and issues the execution right generation password. The operator of the order management unit 502 sends this execution right generation password to the software execution unit 50 by telephone or the like.
Tell 1 user.

【0112】次に、電話で実行権生成パスワードを受け
取ったソフト実行器501のユーザは、ソフト実行器5
01の逆変換部52に、このパスワードを入力する。注
文ハッシュ部50には、注文管理器502で用いたのと
同じハッシュ関数が備えられている。そして、注文ハッ
シュ部50は、注文作成部4内に蓄積された注文情報
と、実行器暗号キー格納部6から得た実行器暗号キーと
を結合し、この結合データに対してハッシュ演算を施
す。逆変換部52は、注文ハッシュ部50から出力され
るハッシュ値を鍵として、注文管理器502から受け取
った実行権生成パスワードを逆変換する。もし、注文情
報と実行器暗号キーとが正当であるならば、注文ハッシ
ュ部50から出力されるハッシュ値は、注文管理器50
2におけるハッシュ値(注文ハッシュ部54の出力)と
同じになる。従って、逆変換部52の出力は、実行権生
成モジュールBとなる。次に、実行権生成部8は、予め
格納部51に格納されている実行権生成モジュールA
と、獲得したモジュールBとを用いて、注文情報に対応
した実行権を生成する。実行権生成部8によって実行権
が生成された後は、実行権生成モジュールに従って、モ
ジュールBが削除される。
Next, the user of the software execution unit 501 who received the execution right generation password by telephone is
This password is input to the inverse conversion unit 52 of 01. The order hash unit 50 has the same hash function as that used by the order manager 502. Then, the order hash unit 50 combines the order information accumulated in the order creation unit 4 and the execution unit encryption key obtained from the execution unit encryption key storage unit 6, and performs a hash operation on this combined data. . The reverse conversion unit 52 reversely converts the execution right generation password received from the order management unit 502, using the hash value output from the order hash unit 50 as a key. If the order information and the execution unit encryption key are valid, the hash value output from the order hash unit 50 is the order management unit 50.
It is the same as the hash value in 2 (output of the order hash unit 54). Therefore, the output of the inverse conversion unit 52 becomes the execution right generation module B. Next, the execution right generation unit 8 uses the execution right generation module A previously stored in the storage unit 51.
And the obtained module B are used to generate an execution right corresponding to the order information. After the execution right is generated by the execution right generation unit 8, the module B is deleted according to the execution right generation module.

【0113】上記第5の実施例では、ソフト実行器側に
予め格納されている実行権生成モジュールAは、不活性
な状態であり、情報量的にこれだけでは動作できない。
これを活性化するためのモジュールBは、注文管理器5
02において、ソフト実行器の注文情報と暗号キーとに
依存した形に変換され、実行権生成パスワードとして送
付される。前述した第1〜第4の実施例においては、実
行権生成モジュールは、完全な形でソフト実行器内に存
在した。ただし、これを起動するためには、実行権生成
パスワードという許可が必要であった。これに対して第
5の実施例の構成では、実行権生成モジュールは、情報
量的に不足した状態でソフト実行器内に存在する。この
ため、第5の実施例は、第1〜第4の実施例に比べて、
より実行権の不正生成に対する安全性が高い。なお、実
行権生成モジュールAおよびBにより注文の実行権を生
成した後は、元の状態に戻すために、モジュールBが削
除される。
In the fifth embodiment, the execution right generation module A stored in advance on the software executor side is in the inactive state, and cannot operate by this amount of information alone.
Module B for activating this is the order manager 5
In 02, it is converted into a form depending on the order information of the software execution unit and the encryption key, and sent as the execution right generation password. In the above-described first to fourth embodiments, the execution right generation module is completely present in the soft executor. However, in order to start this, it was necessary to have permission called the execution right generation password. On the other hand, in the configuration of the fifth embodiment, the execution right generation module exists in the software executor in a state in which the amount of information is insufficient. Therefore, the fifth embodiment is different from the first to fourth embodiments in that
Higher security against illegal generation of execution rights. After the execution right generation modules A and B generate the execution right of the order, the module B is deleted in order to restore the original state.

【0114】第5の実施例において、実行権生成モジュ
ールBは、注文情報と実行器の秘密キーとに依存して変
換されるため、注文が異なったり実行器が異なる場合に
は、ソフト実行器のユーザは、正規のモジュールBを手
に入れることができない。ただし、第5の実施例では、
実行権生成パスワードの中にモジュールBが情報として
含まれるため、許可情報だけが含まれていた第1〜第4
の実施例に比べて、多少実行権生成パスワードの桁数を
増やす必要がある。なお、この第5の実施例における実
行権生成パスワードのデータ量は、注文するソフトの個
数に依存しない。
In the fifth embodiment, the execution right generation module B is converted depending on the order information and the secret key of the execution unit, so that if the order is different or the execution unit is different, the soft execution unit is executed. Users cannot get the regular module B. However, in the fifth embodiment,
The module B is included as information in the execution right generation password, so only the permission information is included.
It is necessary to slightly increase the number of digits of the execution right generation password as compared with the above embodiment. The data amount of the execution right generation password in the fifth embodiment does not depend on the number of ordered software.

【0115】なお、第5の実施例では、ソフト実行器5
01は、注文管理器502から受け取った実行権生成パ
スワードをチェックすることなしに、逆変換後すぐにこ
れをモジュールBとして用いている。従って、もし注文
情報や実行器暗号キーが、入力した実行権生成パスワー
ドに適合しない場合には、実行権生成モジュールが正し
く動作しない。ところで、例えばモジュールBがある特
定の構造や意味を持っているとし、ソフト実行器501
において逆変換後、これを使用する前に構造や意味をチ
ェックすることも考えられる。例えば、モジュールBが
ある命令コードの場合には、そのコードには特定の構造
があるはずである。従って、モジュールBがこの特定の
構造を有しているか否かをチェックすることにより、実
行権生成モジュールの実行前にエラーを処理することが
できる。
In the fifth embodiment, the software execution unit 5
01 does not check the execution right generation password received from the order manager 502 and uses it as the module B immediately after the reverse conversion. Therefore, if the order information and the executor encryption key do not match the entered execution right generation password, the execution right generation module does not operate properly. By the way, for example, if the module B has a certain structure or meaning, the software execution unit 501
It is also conceivable to check the structure and meaning after using the reverse transformation in before using it. For example, if module B is an instruction code, that code should have a particular structure. Therefore, by checking whether module B has this particular structure, the error can be handled before the execution right generation module is executed.

【0116】なお、以上述べた第2および4の実施例に
おいて用いられる乱数は、注文ごとに変化する値であれ
ば良く、カウンタなどを用いて発生してもよい。また、
乱数に代えて、タイムスタンプを用いてもよい。タイム
スタンプは、ソフト実行器と注文管理器とで共通に発生
可能(時計回路によって発生可能)であるため、ソフト
実行器から注文管理器に対して変化値を送付する必要が
なくなる。
The random numbers used in the second and fourth embodiments described above may be values that change for each order, and may be generated using a counter or the like. Also,
A time stamp may be used instead of the random number. Since the time stamp can be generated in common in the software execution unit and the order management unit (can be generated by the clock circuit), it is not necessary to send the change value from the software execution unit to the order management unit.

【0117】また、第3および4の実施例において、実
行権生成パスワードを生成する際、注文情報および注文
識別情報に加えて、実行器暗号キーにも依存させるよう
にしてもよい。ソフト実行器にとって、自分の実行器暗
号キーを知っているのは、自分以外には注文管理器だけ
なので、この実行権生成パスワードを作ることができる
のは、注文管理器だけである。そのため、実行権生成パ
スワードを注文管理器の署名情報として考えることがで
き、トラブル等が生じたときに、この情報を第3者に証
拠として提出することができる。また、このような秘密
鍵暗号を用いた署名方法に代えて、公開鍵暗号を用いた
署名方法を用いてもよい。この場合、注文管理器は秘密
の情報を保持し、実行権生成パスワードの生成の際にこ
の秘密の情報を用いる。一方、ソフト実行器側では、注
文管理器の秘密情報に対応する公開情報を保持してお
り、これを用いて実行権生成パスワードの正当性を確認
する。注文管理器の秘密情報を用いた場合にのみ、実行
権生成パスワードの正当性が確認できるため、この実行
権生成パスワードを注文管理器の署名として考えること
ができる。
In addition, in the third and fourth embodiments, when the execution right generation password is generated, the execution device encryption key may be made to be dependent in addition to the order information and the order identification information. The software execution unit knows its own execution unit encryption key only for the order management unit other than itself, so only the order management unit can create this execution right generation password. Therefore, the execution right generation password can be considered as signature information of the order management device, and when trouble occurs, this information can be submitted to a third party as evidence. Further, a signature method using public key cryptography may be used instead of such a signature method using secret key cryptography. In this case, the order manager holds secret information, and uses this secret information when generating the execution right generation password. On the other hand, the software execution unit side holds public information corresponding to the secret information of the order management unit, and uses this to confirm the validity of the execution right generation password. Since the validity of the execution right generation password can be confirmed only when the secret information of the order management unit is used, this execution right generation password can be considered as the signature of the order management unit.

【0118】また、第1〜4の実施例においては、元の
ソフトウェアSoftAと、対応する認証子authA
とを結合し、この結合されたデータをシステム共通の鍵
Sで暗号化することにより、ソフトウェアの暗号化を行
うようにしていたが、また、この認証子を実行器暗号キ
ーSxで暗号化したデータを実行権として用いるように
していたが、本発明はこのような方法には限定されな
い。例えば、認証子と実行器IDとを結合し、この結合
されたデータをシステム共通の鍵で暗号化したものを、
実行権として用いてもよい。実行器Xの実行権を、式で
記述すると、 E(S,authA ‖ IDx) となる。この場合、実行権は、実行権と暗号化ソフトウ
ェアとをシステム共通の鍵で復号し、両者から得られる
認証子が一致しており、かつ、実行権の復号結果から実
行器IDを獲得して、これが実行器内の実行器IDと一
致している場合に認証され、ソフトウェアを実行する。
いずれにせよ、暗号化ソフトウェアから実行器がすでに
保持しているデータを用いて、実行権が生成できる暗号
方式ならば、本発明を適用できる。
In the first to fourth embodiments, the original software SoftA and the corresponding authenticator authA are used.
The software was encrypted by combining and with and encrypting the combined data with the system common key S. Also, this authenticator was encrypted with the execution device encryption key Sx. Although the data is used as the execution right, the present invention is not limited to such a method. For example, an authenticator and an execution unit ID are combined, and the combined data is encrypted with a system common key,
It may be used as an execution right. When the execution right of the executor X is described by an expression, it becomes E (S, authA / | IDx). In this case, the execution right is obtained by decrypting the execution right and the encrypted software with a key common to the system, the certifiers obtained from both are the same, and the execution device ID is obtained from the decryption result of the execution right. , If it matches with the execution unit ID in the execution unit, it is authenticated and the software is executed.
In any case, the present invention can be applied to any encryption method in which the execution right can be generated using the data already held by the execution unit from the encryption software.

【0119】また、上記第1〜4の実施例においては、
電話の1通話で注文を行ない、それに対する実行権生成
パスワードを受け取るとしていたが、これが別の通話で
あってもよい。つまり、まずソフト実行器から注文管理
器に対して注文を行ない、この注文を一旦セーブする。
次に、注文管理器がソフト実行器に電話をかけてきて、
注文番号で照合を行ない実行権生成パスワードの通知を
行なう。このことにより、ソフト実行器のユーザにと
り、電話をかけている時間が短くなり、料金的にも都合
がよい。また、ソフト実行器のユーザは、注文管理器の
ユーザから実行権生成パスワードが通知されるまで、別
のソフト実行等の作業を行なうことができる。一方、注
文管理器にとっても、コールバックを行なうことによっ
てユーザ認証が行なえる。
In addition, in the above first to fourth embodiments,
The order is made in one telephone call and the execution right generation password for the order is received, but this may be another telephone call. That is, first, an order is placed from the software execution unit to the order management unit, and this order is temporarily saved.
Next, the order manager calls the software execution unit,
Check the order number and notify the execution right generation password. As a result, the user of the soft executor can make a phone call for a shorter time, which is convenient in terms of charges. In addition, the user of the software execution unit can perform other work such as execution of software until the user of the order management unit notifies the execution right generation password. On the other hand, the order manager can also perform user authentication by making a callback.

【0120】また、上記第1〜4の実施例において、ソ
フト実行器が実行権生成パスワードを検査して実行権を
生成する場合には、予めセーブしておいた注文情報をロ
ードして用いる。ただし、注文情報を再ロードし、パス
ワードを再度使われないようにするために、最初に実行
権を生成した後、セーブしておいた注文情報を消去する
ことが必要となる。
In the first to fourth embodiments, when the software execution unit checks the execution right generation password to generate the execution right, the order information saved in advance is loaded and used. However, in order to reload the order information and prevent the password from being used again, it is necessary to delete the saved order information after first generating the execution right.

【0121】また、上記各実施例において、ソフト実行
器と注文管理器とのやり取りの履歴を、双方で残してお
くことにより、注文に関するトラブル時の参考資料にす
ることが考えられる。また、ソフト実行器側には、例え
ば今までどんなソフトを購入したかを残しておくことに
より、注文ガイダンスのユーザインタフェースを良好な
ものにすることができる。
Further, in each of the above-mentioned embodiments, it is conceivable that the history of the exchange between the software execution unit and the order management unit may be left on both sides to serve as a reference material in case of trouble regarding the order. Further, by leaving, for example, what software has been purchased up to now on the software executor side, it is possible to improve the user interface of the order guidance.

【0122】また、上記各実施例において、ソフト実行
器から注文管理器への注文情報としては、例えばソフト
AとソフトBという具合にソフトのIDを用いることに
していたが、この部分をコード化して、対応するソフト
名とコードの対応表を用いることにより、より通信情報
量の削減を行なうことも考えられる。つまり、ソフトA
とソフトBならばコード2番、ソフトBだけならばコー
ド10番といった具合いにである。
Further, in each of the above-mentioned embodiments, as the order information from the software execution unit to the order management unit, software IDs such as software A and software B are used, but this part is coded. Then, it is possible to further reduce the communication information amount by using the correspondence table of the corresponding software name and code. In other words, software A
With software B, the code number is 2, and with software B only, the code number is 10.

【0123】また、上記各実施例では、ソフト実行器と
注文管理器との間の情報のやりとりは、人間が電話を介
して行うものとして説明したが、両者に送受信器を設
け、通信路を介して情報の授受を行うようにしてもよ
い。
Further, in each of the above-mentioned embodiments, the description has been made on the assumption that a person exchanges information between the software execution unit and the order management unit via a telephone. Information may be exchanged via the Internet.

【0124】[0124]

【発明の効果】請求項1の発明によれば、ソフト実行器
は、注文に対応した正規の実行権生成パスワードを入力
することによってのみソフトの実行権を生成する。そし
て、注文管理器からソフト実行器には、実行権生成パス
ワード、すなわちソフト実行器が注文情報に対応したソ
フト実行権を生成するための許可を与える情報だけが送
付されるため、安全性を劣化させることなく、送付すべ
き情報量を大幅に削減することができる。また、実行権
生成パスワードの情報量は、注文するソフトの個数に依
存せずに、いつも少ない情報量で実現できる。すなわ
ち、ソフト実行器が複数のソフトウェアの注文を1回に
行なっても、その情報量は1つのソフトウェアを注文し
たの場合の情報量と同じになる。この情報量の削減によ
り、特に電話でパスワードを送受信する場合、ユーザイ
ンタフェース的に都合がよい。また、注文管理器にとっ
ては伝え間違えが少なくなる。またソフト実行器のユー
ザにとっては、聞き間違えおよびこれを実行器に入力す
る際に間違えが少なくなる。また、電話をつないでいる
時間も削減できるため、料金的にもメリットがある。
According to the invention of claim 1, the software execution unit generates the software execution right only by inputting the regular execution right generation password corresponding to the order. Then, the order management unit sends only the execution right generation password, that is, the information that gives the permission for the software execution unit to generate the software execution right corresponding to the order information, to the software execution unit, which deteriorates the security. It is possible to significantly reduce the amount of information to be sent without causing it. Further, the amount of information of the execution right generation password can be always realized with a small amount of information without depending on the number of pieces of software to be ordered. That is, even if the software executor orders multiple pieces of software at one time, the amount of information is the same as the amount of information when one piece of software is ordered. This reduction in the amount of information is convenient for the user interface, especially when transmitting and receiving a password by telephone. In addition, the order manager is less likely to make a mistake. In addition, the user of the soft executor is less likely to make a mistake in listening and inputting the mistake into the executor. Also, the time spent on the phone can be reduced, which is advantageous in terms of charges.

【0125】請求項2,5,8,10および15の発明
によれば、データ圧縮関数を用いて実行権生成パスワー
ドを生成するようにしているので、その情報量をより一
層削減することができる。
According to the inventions of claims 2, 5, 8, 10 and 15, since the execution right generation password is generated by using the data compression function, the amount of information can be further reduced. .

【0126】請求項3の発明によれば、ソフト実行器に
は、デジタル署名された実行権生成パスワードが送付さ
れるので、ソフト実行器側で実行権生成パスワードを偽
造することがほとんど不可能となり、極めて安全性の高
いソフトウェア保護システムを実現することができる。
According to the third aspect of the present invention, since the execution right generation password digitally signed is sent to the software execution device, it is almost impossible to forge the execution right generation password on the software execution device side. , A highly secure software protection system can be realized.

【0127】請求項4の発明によれば、注文情報を作成
する毎に変化する変化値を導入し、注文管理器からの実
行権生成パスワードは、対応する変化値を保持するソフ
ト実行器でのみ有効となるように構成されているため、
異なる時期に同じ注文を作成し、以前の実行権生成パス
ワードを入力しても、後の注文時に生成される変化値
は、以前の注文時に生成される変化値とは異なってお
り、入力したパスワードが有効にはならない。これによ
って、例えば実行の回数が制限されているような実行権
が生成される場合、実行権生成パスワードを繰り返して
用いるという不正を防止することができる。
According to the fourth aspect of the present invention, a change value that changes each time order information is created is introduced, and the execution right generation password from the order management unit is used only by the software execution unit that holds the corresponding change value. Since it is configured to be effective,
Even if you create the same order at different times and enter the previous execution right generation password, the change value generated in the later order is different from the change value generated in the previous order. Does not take effect. Thus, for example, when an execution right with a limited number of executions is generated, it is possible to prevent fraud of repeatedly using the execution right generation password.

【0128】請求項6の発明によれば、異なる時期にな
された注文を峻別するために、ソフト実行器と注文管理
器とに共通に保持されているタイムスタンプを用いてい
るので、ソフト実行器から注文管理器に峻別のための情
報を送付する必要がない。
According to the invention of claim 6, since the time stamps commonly held by the software executor and the order manager are used to distinguish orders placed at different times, the software executor is used. There is no need to send the order manager information for distinction.

【0129】請求項7の発明によれば、ソフト実行器側
で注文情報および実行器秘密情報に依存した注文認証情
報を生成し、注文管理器に送付するようにしているの
で、注文管理器側で実行権生成パスワードの発行に先だ
って、注文情報とソフト実行器の認証を行うことができ
る。注文情報とソフト実行器の認証は、実際上は課金に
関係するため、必要不可欠な機能である。本発明では、
注文と同時にソフト実行器から少ない桁数の注文認証情
報を通知することによって、効率的にこの機能を実現し
ている。また、注文認証情報を、注文を識別する注文識
別情報としても用いることができる。
According to the seventh aspect of the present invention, the software execution unit generates the order authentication information depending on the order information and the execution unit secret information, and sends the order authentication information to the order management unit. With, it is possible to authenticate the order information and software execution unit before issuing the execution right generation password. Order information and software execution unit authentication are indispensable functions because they are actually related to billing. In the present invention,
This function is efficiently realized by notifying the order authentication information of a small number of digits from the software execution unit at the same time as placing an order. The order authentication information can also be used as order identification information for identifying an order.

【0130】請求項9の発明によれば、ソフト実行器と
注文管理器間でやりとりされる情報の量を増やすことな
く、回数制限機能およびユーザ認証機能の両方を実現す
ることができる。
According to the ninth aspect of the invention, both the number-of-times limiting function and the user authentication function can be realized without increasing the amount of information exchanged between the software execution unit and the order management unit.

【0131】請求項12の発明によれば、注文管理器か
らソフト実行器には、デジタル署名された実行権生成パ
スワードが送付されるので、ソフト実行器側で実行権生
成パスワードを偽造することがほとんど不可能となり、
極めて安全性の高いソフトウェア保護システムを実現す
ることができる。
According to the twelfth aspect of the present invention, since the digitally signed execution right generation password is sent from the order management unit to the software execution unit, the execution right generation password can be forged on the software execution unit side. Almost impossible,
A very safe software protection system can be realized.

【0132】請求項13の発明によれば、ソフト実行器
側に格納された第2の実行権生成モジュールを活性化さ
せるための第1の実行権生成モジュールを注文管理器に
格納し、この第1の実行権生成モジュールを実行権生成
パスワードに含めて送付するようにしているので、ソフ
ト実行器側では、不正に実行権を生成しようとしても、
情報量的に不足しているため、正しい実行権を生成する
ことができない。従って、より一層安全なソフトウェア
保護システムを実現することができる。
According to the thirteenth aspect of the invention, the first execution right generation module for activating the second execution right generation module stored on the software execution unit side is stored in the order management unit, and the first execution right generation module is stored in the order management unit. Since the execution right generation module No. 1 is included in the execution right generation password and sent, even if the software execution unit attempts to illegally generate the execution right,
The right to execute cannot be generated due to lack of information. Therefore, a more secure software protection system can be realized.

【0133】請求項17の発明によれば、ソフト実行器
は、作成した注文情報を不揮発的に蓄積保持し、対応す
るソフトウェアの実行権を生成した後に当該注文情報を
消去するようにしているので、とりあえず注文だけを連
続して送付し、後に返送されてくる実行権生成パスワー
ドに基づいて、ソフトウェアの実行を制御することがで
きる。
According to the seventeenth aspect of the invention, the software executor accumulates and holds the created order information in a non-volatile manner, and deletes the order information after generating the execution right of the corresponding software. For the time being, only the order is sent continuously, and the execution of the software can be controlled based on the execution right generation password returned later.

【0134】請求項18の発明によれば、ソフト実行器
および注文管理器は、それぞれ相互間でやりとりされた
情報の履歴を保持しているので、後に生じるトラブル等
に柔軟に対処することができる。
According to the eighteenth aspect of the present invention, since the software execution unit and the order management unit each hold a history of information exchanged with each other, it is possible to flexibly deal with troubles that occur later. .

【0135】請求項19の発明によれば、ソフト実行器
および注文管理器は、すべてのソフトウェアの組み合わ
せに対応するコードをテーブルとして保持しており、ソ
フト実行器は、テーブルから得たコードを、注文情報と
して注文管理器に送付するようにしているので、注文情
報のデータ量をより一層削減することができる。
According to the nineteenth aspect of the present invention, the software execution unit and the order management unit hold the codes corresponding to all combinations of software as a table, and the software execution unit stores the code obtained from the table as Since the order information is sent to the order management device, the data amount of the order information can be further reduced.

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

【図1】本発明の第1の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a software protection system according to a first exemplary embodiment of the present invention.

【図2】本発明の第2の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。
FIG. 2 is a block diagram showing a configuration of a software protection system according to a second exemplary embodiment of the present invention.

【図3】本発明の第3の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。
FIG. 3 is a block diagram showing a configuration of a software protection system according to a third exemplary embodiment of the present invention.

【図4】本発明の第4の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。
FIG. 4 is a block diagram showing a configuration of a software protection system according to a fourth exemplary embodiment of the present invention.

【図5】本発明の第5の実施例に係るソフトウェア保護
システムの構成を示すブロック図である。
FIG. 5 is a block diagram showing a configuration of a software protection system according to a fifth exemplary embodiment of the present invention.

【図6】従来のソフト保護システムの構成を示すブロッ
ク図である。
FIG. 6 is a block diagram showing a configuration of a conventional software protection system.

【符号の説明】[Explanation of symbols]

101〜501…ソフト実行器 102〜502…注文管理器 3…暗号化ソフトウェア格納部 4…注文作成部 5…実行器ID格納部 6…実行器暗号キー格納部 7、21、31、43…実行権生成パスワード検査部 8…実行権生成部 9…実行権格納部 10…ソフト復号実行部 11…実行器暗号キー格納部 12、22、33、47…実行権生成パスワード生成部 20…乱数生成部 30…注文認証情報生成部 32…実行器認証部 40、44、50、54…注文ハッシュ部 42、45…排他的論理和部 46…実行器認証部 51…実行権生成モジュールA格納部 52、55…実行権生成パスワード逆変換部 53…実行権生成モジュールB格納部 56…実行権生成パスワード生成部 101-501 ... Software execution unit 102-502 ... Order management unit 3 ... Encrypted software storage unit 4 ... Order creation unit 5 ... Execution unit ID storage unit 6 ... Execution unit encryption key storage unit 7, 21, 31, 43 ... Execution Right generation password checking unit 8 ... Execution right generation unit 9 ... Execution right storage unit 10 ... Software decryption execution unit 11 ... Executor encryption key storage unit 12, 22, 33, 47 ... Execution right generation password generation unit 20 ... Random number generation unit 30 ... Order authentication information generation unit 32 ... Execution device authentication unit 40, 44, 50, 54 ... Order hash unit 42, 45 ... Exclusive OR unit 46 ... Execution device authentication unit 51 ... Execution right generation module A storage unit 52, 55 ... Execution right generation password reverse conversion unit 53 ... Execution right generation module B storage unit 56 ... Execution right generation password generation unit

Claims (19)

【特許請求の範囲】[Claims] 【請求項1】 提供されたソフトウェアを実行する1つ
以上のソフト実行器と、各ソフト実行器と通信経路を介
して接続され、かつ各ソフト実行器から受けたソフトウ
ェアの注文を管理する注文管理器とを備えたソフトウェ
ア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段とを含み、 前記実行器IDおよび前記注文情報は、前記通信路を介
して前記注文管理器に送付され、 前記注文管理器は、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を前記第2の秘密情報格納手段から獲得
し、この獲得した実行器秘密情報およびソフト実行器か
ら受け取った注文情報に依存した実行権生成パスワード
を生成する実行権生成パスワード生成手段とを含み、 前記実行権生成パスワードは、前記通信路を介して前記
ソフト実行器に送付され、 各前記ソフト実行器は、さらに前記注文作成手段に蓄積
保持された注文情報と、前記第1の秘密情報格納手段に
格納された実行器秘密情報とを用いて、前記注文管理器
から受け取った実行権生成パスワードの正当性を検査す
る実行権生成パスワード検査手段と、 前記実行権生成パスワード検査手段による検査の結果、
前記実行権生成パスワードの正当性が確認されたとき
に、前記注文作成手段に蓄積保持された注文情報に基づ
いて、注文されたソフトウェアの実行権を生成する実行
権生成手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
1. Order management for managing software orders received from each software execution unit and one or more software execution units executing the provided software and connected to each software execution unit via a communication path. A software protection system including: an execution unit ID storing unit for storing a unique execution unit ID; and a first secret information storage unit for storing a unique execution unit secret information. And an order creating unit that creates and stores the order information of one or more software execution rights, and the execution unit ID and the order information are sent to the order management unit via the communication path. The order management unit stores a second secret information storage unit that stores all the secret information of the execution unit stored in each software execution unit, and an execution unit ID that is received from the software execution unit. Execution right generation password generation means for acquiring execution device secret information from the second secret information storage means and generating an execution right generation password depending on the acquired execution device secret information and the order information received from the software execution device. And the execution right generation password is sent to the software executor via the communication path, and each of the software executors further stores order information stored and held in the order creating means, and the first execution information. An execution right generation password checking unit for checking the validity of the execution right generation password received from the order management unit by using the execution unit secret information stored in the secret information storage unit, and the execution right generation password inspection unit. result of the examination,
When the validity of the execution right generation password is confirmed, based on the order information accumulated and held in the order creation means, an execution right generation unit that generates an execution right of the ordered software; A software protection system including software execution means for executing existing software according to the execution condition indicated by the execution right.
【請求項2】 前記実行権生成パスワード生成手段は、
前記ソフト実行器から受け取った注文情報と、前記第2
の秘密情報格納手段から獲得した実行器秘密情報とを、
出力が入力ビットのすべてに関係するようなデータ圧縮
関数に入力し、このデータ圧縮関数の出力結果を、前記
実行権生成パスワードとして出力し、 前記実行権生成パスワード検査手段は、前記注文作成手
段に蓄積保持された注文情報と、前記第1の秘密情報格
納手段に格納された実行器秘密情報とを、前記実行権生
成パスワード生成手段で用いているデータ圧縮関数と同
じデータ圧縮関数に入力し、その出力結果が注文管理器
から受け取った実行権生成パスワードと一致したとき、
当該実行権生成パスワードが正当であると判断すること
を特徴とする、請求項1に記載のソフトウェア保護シス
テム。
2. The execution right generation password generation means,
The order information received from the software execution unit, and the second
The secret information of the execution unit acquired from the secret information storage means of
The output is input to a data compression function that is related to all of the input bits, and the output result of this data compression function is output as the execution right generation password. The accumulated and held order information and the execution device secret information stored in the first secret information storage means are input to the same data compression function as the data compression function used in the execution right generation password generation means, When the output result matches the execution right generation password received from the order manager,
The software protection system according to claim 1, wherein the execution right generation password is judged to be valid.
【請求項3】 前記注文管理器は、公開鍵署名方式に用
いられる秘密情報を格納する第3の秘密情報格納手段を
さらに含み、 前記実行権生成パスワード生成手段は、前記第3の秘密
情報格納手段に格納された秘密情報と、前記第2の秘密
情報格納手段から獲得した実行器秘密情報と、前記ソフ
ト実行器から受け取った注文情報と用いて、公開鍵署名
方式によってデジタル署名された実行権生成パスワード
を生成し、 前記ソフト実行器は、前記公開鍵署名方式に用いられる
秘密情報に対応した公開情報を格納する公開情報格納手
段をさらに含み、 前記実行権生成パスワード検査手段は、前記公開情報格
納手段に格納された公開情報と、前記注文作成手段に蓄
積保持された注文情報と、前記第1の秘密情報格納手段
に格納された実行器秘密情報とを用いて、前記公開鍵署
名方式に対応した署名確認方式によって、前記注文管理
器から受け取った実行権生成パスワードの正当性を検査
することを特徴とする、請求項1に記載のソフトウェア
保護システム。
3. The order manager further includes third secret information storage means for storing secret information used in a public key signature system, and the execution right generation password generation means stores the third secret information. Execution right digitally signed by a public key signature method using the secret information stored in the means, the secret information of the execution unit acquired from the second secret information storage unit, and the order information received from the software execution unit The generated password is generated, the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method, and the execution right generation password checking means is the public information. Public information stored in storage means, order information accumulated and held in the order creation means, and execution device secret information stored in the first secret information storage means. The software protection system according to claim 1, wherein the validity of the execution right generation password received from the order management device is checked by using a signature confirmation method corresponding to the public key signature method.
【請求項4】 提供されたソフトウェアを実行する1つ
以上のソフト実行器と、各ソフト実行器と通信経路を介
して接続され、かつ各ソフト実行器から受けたソフトウ
ェアの注文を管理する注文管理器とを備えたソフトウェ
ア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段と、 前記注文作成手段で注文情報が作成される毎に変化する
変化値を生成して蓄積保持する変化値生成手段とを含
み、 前記実行器ID,前記注文情報および前記変化値は、前
記通信路を介して前記注文管理器に送付され、 前記注文管理器は、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を前記第2の秘密情報格納手段から獲得
し、この獲得した実行器秘密情報,ソフト実行器から受
け取った注文情報および変化値に依存した実行権生成パ
スワードを生成する実行権生成パスワード生成手段とを
含み、 前記実行権生成パスワードは、前記通信路を介して前記
ソフト実行器に送付され、 各前記ソフト実行器は、さらに前記注文作成手段に蓄積
保持された注文情報と、前記変化値生成手段に蓄積保持
された変化値と、前記第1の秘密情報格納手段に格納さ
れた実行器秘密情報とを用いて、前記注文管理器から受
け取った実行権生成パスワードの正当性を検査する実行
権生成パスワード検査手段と、 前記実行権生成パスワード検査手段による検査の結果、
前記実行権生成パスワードの正当性が確認されたとき
に、前記注文作成手段に蓄積保持された注文情報に基づ
いて、注文されたソフトウェアの実行権を生成する実行
権生成手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
4. One or more software execution units that execute the provided software, and order management that is connected to each software execution unit via a communication path and that manages software orders received from each software execution unit. A software protection system including: an execution unit ID storing unit for storing a unique execution unit ID; and a first secret information storage unit for storing a unique execution unit secret information. An order creating unit that creates and stores and holds order information of one or more software execution rights; and a change that creates and stores a change value that changes each time the order information is created by the order creating unit. Value execution means, the execution unit ID, the order information, and the change value are sent to the order management unit via the communication path, and the order management unit stores the software execution unit in each software execution unit. Second secret information storage means for storing all the executed secret information of the execution device, and execution device secret information corresponding to the execution device ID received from the software execution device, obtained from the second secret information storage device, An execution right generation password generating means for generating an execution right generation password dependent on the acquired execution device secret information, the order information received from the software execution device, and the change value. The order information stored in the order creating means, the change value stored in the change value generating means, and the first secret. Execution right generation password check for checking the validity of the execution right generation password received from the order management unit using the execution unit secret information stored in the information storage means And stage, the result of inspection by the execution right generated password checking means,
When the validity of the execution right generation password is confirmed, based on the order information accumulated and held in the order creation means, an execution right generation unit that generates an execution right of the ordered software; A software protection system including software execution means for executing existing software according to the execution condition indicated by the execution right.
【請求項5】 前記実行権生成パスワード生成手段は、
前記ソフト実行器から受け取った注文情報および変化値
と、前記第2の秘密情報格納手段から獲得した実行器秘
密情報とを、出力が入力ビットのすべてに関係するよう
なデータ圧縮関数に入力し、このデータ圧縮関数の出力
結果を、前記実行権生成パスワードとして出力し、 前記実行権生成パスワード検査手段は、前記注文作成手
段に蓄積保持された注文情報と、前記変化値生成手段に
蓄積保持された変化値と、前記第1の秘密情報格納手段
に格納された実行器秘密情報とを、前記実行権生成パス
ワード生成手段で用いているデータ圧縮関数と同じデー
タ圧縮関数に入力し、その出力結果が注文管理器から受
け取った実行権生成パスワードと一致したとき、当該実
行権生成パスワードが正当であると判断することを特徴
とする、請求項4に記載のソフトウェア保護システム。
5. The execution right generation password generation means,
The order information and the change value received from the soft executor, and the executor secret information obtained from the second secret information storage means are input to a data compression function whose output is related to all of the input bits, The output result of this data compression function is output as the execution right generation password, and the execution right generation password checking means stores and holds the order information accumulated and held in the order creating means and the change value generating means. The change value and the secret information of the executor stored in the first secret information storage means are input to the same data compression function as the data compression function used in the execution right generation password generation means, and the output result is The execution right generation password is judged to be valid when it matches with the execution right generation password received from the order management device. Software protection system listed.
【請求項6】 提供されたソフトウェアを実行する1つ
以上のソフト実行器と、各ソフト実行器と通信経路を介
して接続され、かつ各ソフト実行器から受けたソフトウ
ェアの注文を管理する注文管理器とを備えたソフトウェ
ア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段と、 前記注文作成手段で注文情報が作成される毎にタイムス
タンプを生成して蓄積保持する第1のタイムスタンプ生
成手段とを含み、 前記実行器IDおよび前記注文情報は、前記通信路を介
して前記注文管理器に送付され、 前記注文管理器は、 前記ソフト実行器から実行器IDおよび注文情報を受け
取ると、タイムスタンプを生成する第2のタイムスタン
プ生成手段と、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を前記第2の秘密情報格納手段から獲得
し、この獲得した実行器秘密情報と、ソフト実行器から
受け取った注文情報と、前記第2のタイムスタンプ生成
手段で生成されたタイムスタンプとに依存した実行権生
成パスワードを生成する実行権生成パスワード生成手段
とを含み、 前記実行権生成パスワードは、前記通信路を介して前記
ソフト実行器に送付され、 各前記ソフト実行器は、さらに前記注文作成手段に蓄積
保持された注文情報と、前記第1のタイムスタンプ生成
手段に蓄積保持されたタイムスタンプと、前記第1の秘
密情報格納手段に格納された実行器秘密情報とを用い
て、前記注文管理器から受け取った実行権生成パスワー
ドの正当性を検査する実行権生成パスワード検査手段
と、 前記実行権生成パスワード検査手段による検査の結果、
前記実行権生成パスワードの正当性が確認されたとき
に、前記注文作成手段に蓄積保持された注文情報に基づ
いて、注文されたソフトウェアの実行権を生成する実行
権生成手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
6. An order management for managing one or more software executors that execute the provided software, and software orders connected to each software executor via a communication path and for receiving software orders received from each software executor. A software protection system including: an execution unit ID storing unit for storing a unique execution unit ID; and a first secret information storage unit for storing a unique execution unit secret information. An order creating means for creating and accumulating and holding order information of execution rights of one or more software; and a first time creating and accumulating and holding a time stamp every time the order information is created by the order creating means. A time stamp generating unit, the execution unit ID and the order information are sent to the order management unit via the communication path, Second time stamp generation means for generating a time stamp when receiving the line device ID and order information, and second secret information storage means for storing all execution device secret information stored in each software execution device. Acquiring the execution device secret information corresponding to the execution device ID received from the software execution device from the second secret information storage means, the acquired execution device secret information, and the order information received from the software execution device; An execution right generation password generation unit that generates an execution right generation password that depends on the time stamp generated by the second time stamp generation unit, wherein the execution right generation password is the software via the communication path. The order information stored in the order creating means is sent to the execution unit, and each software execution unit further generates the first time stamp. Execution right for checking the validity of the execution right generation password received from the order management device using the time stamps accumulated and held in the column and the execution device secret information stored in the first secret information storage means. Generated password checking means, and the result of the check by the execution right generating password checking means,
When the validity of the execution right generation password is confirmed, based on the order information accumulated and held in the order creation means, an execution right generation unit that generates an execution right of the ordered software; A software protection system including software execution means for executing existing software according to the execution condition indicated by the execution right.
【請求項7】 提供されたソフトウェアを実行する1つ
以上のソフト実行器と、各ソフト実行器と通信経路を介
して接続され、かつ各ソフト実行器から受けたソフトウ
ェアの注文を管理する注文管理器とを備えたソフトウェ
ア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段と、 前記注文情報と前記実行器秘密情報に依存した注文認証
情報を生成して蓄積保持する注文認証情報生成手段とを
含み、 前記実行器ID,前記注文情報および前記注文認証情報
は、前記通信路を介して前記注文管理器に送付され、 前記注文管理器は、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を前記第2の秘密情報格納手段から獲得
し、この獲得した実行器秘密情報,ソフト実行器から受
け取った注文情報および注文認証情報を用いて、ソフト
実行器および注文情報の認証を行い、この認証結果が正
当である場合に、当該注文認証情報を注文を識別する注
文識別情報として扱う実行器認証手段と、 前記実行器認証手段における認証結果が正当である場合
にのみ、前記注文情報および前記注文識別情報に依存し
た実行権生成パスワードを生成する実行権生成パスワー
ド生成手段とを含み、 前記実行権生成パスワードは、前記注文識別情報と共
に、前記通信路を介して前記ソフト実行器に送付され、 各前記ソフト実行器は、さらに前記注文作成手段に蓄積
保持された注文情報と、前記注文認証情報生成手段に蓄
積保持された注文認証情報とを用いて、前記注文管理器
から受け取った実行権生成パスワードの正当性を検査す
る実行権生成パスワード検査手段と、 前記実行権生成パスワード検査手段による検査の結果、
前記実行権生成パスワードの正当性が確認されたとき
に、前記注文作成手段に蓄積保持された注文情報に基づ
いて、注文されたソフトウェアの実行権を生成する実行
権生成手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
7. An order management for managing one or more software executors executing the provided software and software orders connected to each software executor via a communication path and for receiving software orders from each software executor. A software protection system including: an execution unit ID storing unit for storing a unique execution unit ID; and a first secret information storage unit for storing a unique execution unit secret information. And an order creating unit that creates and stores and holds order information of one or more software execution rights, and order authentication information that creates and stores and holds order authentication information that depends on the order information and the execution unit secret information. Generating means, the execution unit ID, the order information, and the order authentication information are sent to the order management unit via the communication path, Second secret information storage means for storing all the secret information of the execution device stored in the execution device, and secrecy information of the execution device corresponding to the execution device ID received from the software execution device. The software execution unit and order information are authenticated using the acquired execution unit secret information, the order information and the order authentication information received from the software execution unit, and if the authentication result is valid, An executor authentication unit that handles order authentication information as order identification information for identifying an order, and an execution right generation password that depends on the order information and the order identification information only when the authentication result by the executor authentication unit is valid. And an execution right generation password generating means for generating the execution right generation password, the execution right generation password together with the order identification information, and the software realization password via the communication path. Each of the software execution units is sent from the order management unit by using the order information stored and stored in the order creating unit and the order authentication information stored and stored in the order authentication information generating unit. An execution right generation password inspection means for inspecting the validity of the received execution right generation password, and a result of the inspection by the execution right generation password inspection means,
When the validity of the execution right generation password is confirmed, based on the order information accumulated and held in the order creation means, an execution right generation unit that generates an execution right of the ordered software; A software protection system including software execution means for executing existing software according to the execution condition indicated by the execution right.
【請求項8】 前記注文認証情報生成手段は、前記注文
作成手段によって作成された注文情報と、前記第1の秘
密情報格納手段に格納された実行器秘密情報とを、出力
が入力ビットのすべてに関係するようなデータ圧縮関数
に入力し、このデータ圧縮関数の出力結果を、前記注文
認証情報として出力し、 前記実行器認証手段は、前記第2の秘密情報格納手段か
ら獲得した実行器秘密情報と、ソフト実行器から受け取
った注文情報とを、前記注文認証情報生成手段で用いて
いるデータ圧縮関数と同じデータ圧縮関数に入力し、こ
のデータ圧縮関数の出力結果がソフト実行器から受け取
った注文認証情報と一致する場合に、注文を行ったソフ
ト実行器および注文情報が正当であることを認証し、 前記実行権生成パスワード生成手段は、前記ソフト実行
器から受け取った注文情報および前記注文識別情報を、
前記注文認証情報生成手段で用いているデータ圧縮関数
と同じデータ圧縮関数に入力し、このデータ圧縮関数の
出力結果を、前記実行権生成パスワードとして出力し、 前記実行権生成パスワード検査手段は、前記注文作成手
段に蓄積保持された注文情報と、前記注文認証情報生成
手段に蓄積保持された注文認証情報とを、前記注文認証
情報生成手段で用いているデータ圧縮関数と同じデータ
圧縮関数に入力し、その出力結果が注文管理器から受け
取った実行権生成パスワードと一致したとき、当該実行
権生成パスワードが正当であると判断することを特徴と
する、請求項7に記載のソフトウェア保護システム。
8. The order authentication information generation means outputs the order information created by the order creation means and the execution device secret information stored in the first secret information storage means, all of which have an input bit as an output. Is input to the data compression function related to the above, and the output result of this data compression function is output as the order authentication information, and the execution device authentication means acquires the execution device secret obtained from the second secret information storage device. The information and the order information received from the software execution unit are input to the same data compression function as the data compression function used in the order authentication information generation means, and the output result of this data compression function is received from the software execution unit. If it matches the order authentication information, it authenticates that the software execution unit that placed the order and the order information are valid, and the execution right generation password generation means is The order information and the order identification information received from the line unit,
The same data compression function as the data compression function used in the order authentication information generation means is input, and the output result of this data compression function is output as the execution right generation password. The order information accumulated and held in the order creating means and the order authentication information accumulated and held in the order authentication information generating means are input to the same data compression function as the data compression function used in the order authentication information generating means. The software protection system according to claim 7, wherein when the output result matches the execution right generation password received from the order manager, the execution right generation password is determined to be valid.
【請求項9】 提供されたソフトウェアを実行する1つ
以上のソフト実行器と、各ソフト実行器と通信経路を介
して接続され、かつ各ソフト実行器から受けたソフトウ
ェアの注文を管理する注文管理器とを備えたソフトウェ
ア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段と、 前記注文作成手段で注文情報が作成される毎に変化し、
所定のデータ構造または意味を有する変化値を生成して
蓄積保持する変化値生成手段と、 前記注文情報および前記実行器秘密情報に依存した値を
求め、この求めた値によって前記変化値を変換すること
により、注文認証情報を生成して蓄積保持する注文認証
情報生成手段とを含み、 前記実行器ID,前記注文情報および前記注文認証情報
は、前記通信路を介して前記注文管理器に送付され、 前記注文管理器は、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器から受け取った実行器IDに対応する
実行器秘密情報を前記第2の秘密情報格納手段から獲得
し、この獲得した実行器秘密情報とソフト実行器からの
注文情報とに依存した値を求め、この値を用いてソフト
実行器からの注文認証情報を逆変換する逆変換手段と、 前記逆変換手段の出力が前記変化値と同じデータ構造ま
たは意味を有する場合に、ソフト実行器および注文情報
が正当であることを認証する実行器認証手段と、 前記実行器認証手段における認証結果が正当である場合
にのみ、前記注文情報に依存した実行権生成パスワード
を生成する実行権生成パスワード生成手段とを含み、 前記実行権生成パスワードは、前記通信路を介して前記
ソフト実行器に送付され、 各前記ソフト実行器は、さらに前記注文作成手段に蓄積
保持された注文情報と、前記注文認証情報生成手段に蓄
積保持された注文認証情報とを用いて、前記注文管理器
から受け取った実行権生成パスワードの正当性を検査す
る実行権生成パスワード検査手段と、 前記実行権生成パスワード検査手段による検査の結果、
前記実行権生成パスワードの正当性が確認されたとき
に、前記注文作成手段に蓄積保持された注文情報に基づ
いて、注文されたソフトウェアの実行権を生成する実行
権生成手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
9. One or more software execution units that execute the provided software, and order management that manages software orders received from each software execution unit, connected to each software execution unit via a communication path. A software protection system including: an execution unit ID storing unit for storing a unique execution unit ID; and a first secret information storage unit for storing a unique execution unit secret information. And an order creating unit that creates and stores order information of execution rights of one or more software, and changes every time the order information is created by the order creating unit,
Change value generation means for generating and accumulating and holding a change value having a predetermined data structure or meaning, and a value depending on the order information and the execution device secret information is obtained, and the change value is converted by the obtained value. Accordingly, the order authentication information generating means for generating, storing, and holding the order authentication information is included, and the execution unit ID, the order information, and the order authentication information are sent to the order management unit via the communication path. The order management device includes a second secret information storage unit that stores all the execution device secret information stored in each software execution device, and an execution device secret corresponding to the execution device ID received from the software execution device. Information is obtained from the second secret information storage means, a value depending on the obtained secret information of the execution unit and the order information from the software execution unit is obtained, and the value is used to determine whether the software execution unit is used. Inverse transforming means for inversely transforming the order authentication information, and an executor for certifying that the software executor and the order information are valid when the output of the inverse converting means has the same data structure or meaning as the change value. The execution right generation password includes an authentication means and an execution right generation password generation means for generating an execution right generation password dependent on the order information only when the authentication result in the executor authentication means is valid. Order information stored in the order creation means and stored in the order authentication information generation means, and order authentication information stored in the order authentication information generation means are sent to the software execution apparatuses via the communication path. Using the execution right generation password checking means for checking the validity of the execution right generation password received from the order management device; The results of the inspection by the inspection means,
When the validity of the execution right generation password is confirmed, based on the order information accumulated and held in the order creation means, an execution right generation unit that generates an execution right of the ordered software; A software protection system including software execution means for executing existing software according to the execution condition indicated by the execution right.
【請求項10】 前記注文認証情報生成手段は、前記注
文作成手段によって作成された注文情報と、前記第1の
秘密情報格納手段に格納された実行器秘密情報とを、出
力が各入力ビットのすべてに関係するようなデータ圧縮
関数に入力し、その出力結果と前記変化値との排他的論
理和を注文認証情報として出力し、前記逆変換手段は、
ソフト実行器からの注文情報と、前記第2の秘密情報格
納手段から獲得した実行器秘密情報とを、前記注文認証
情報生成手段で用いているデータ圧縮関数と同じデータ
圧縮関数に入力し、その出力結果とソフト実行器からの
注文認証情報との排他的論理和を演算することにより、
当該注文認証情報を逆変換し、 前記実行権生成パスワード生成手段は、前記ソフト実行
器から受け取った注文情報および前記注文識別情報を、
前記注文認証情報生成手段で用いているデータ圧縮関数
と同じデータ圧縮関数に入力し、このデータ圧縮関数の
出力結果を、前記実行権生成パスワードとして出力し、 前記実行権生成パスワード検査手段は、前記注文作成手
段に蓄積保持された注文情報と、前記注文認証情報生成
手段に蓄積保持された注文認証情報とを、前記注文認証
情報生成手段で用いているデータ圧縮関数と同じデータ
圧縮関数に入力し、その出力結果が注文管理器から受け
取った実行権生成パスワードと一致したとき、当該実行
権生成パスワードが正当であると判断することを特徴と
する、請求項9に記載のソフトウェア保護システム。
10. The order authentication information generation unit outputs the order information created by the order creation unit and the execution unit secret information stored in the first secret information storage unit as an output of each input bit. Input to a data compression function that is related to all, outputs the exclusive OR of the output result and the change value as order authentication information, the inverse conversion means,
The order information from the software executor and the executor secret information obtained from the second secret information storage means are input to the same data compression function as the data compression function used in the order authentication information generation means, By calculating the exclusive OR of the output result and the order authentication information from the software execution unit,
The order authentication information is inversely converted, and the execution right generation password generation means sets the order information and the order identification information received from the software execution device,
The same data compression function as the data compression function used in the order authentication information generation means is input, and the output result of this data compression function is output as the execution right generation password. The order information accumulated and held in the order creating means and the order authentication information accumulated and held in the order authentication information generating means are input to the same data compression function as the data compression function used in the order authentication information generating means. 10. The software protection system according to claim 9, wherein when the output result matches the execution right generation password received from the order management device, the execution right generation password is determined to be valid.
【請求項11】 前記実行権生成パスワード生成手段
は、ソフト実行器から受け取った注文情報に加えて、前
記第2の秘密情報格納手段から獲得した実行器秘密情報
に依存した実行権生成パスワードを生成し、 前記実行権生成パスワード検査手段は、前記注文作成手
段に蓄積保持された注文情報と、前記第1の秘密情報格
納手段に格納されている実行器秘密情報とを用いて、前
記注文管理器から受け取った実行権生成パスワードの正
当性を検査することを特徴とする、請求項7または9に
記載のソフトウェア保護システム。
11. The execution right generation password generation means generates an execution right generation password depending on the execution device secret information acquired from the second secret information storage means in addition to the order information received from the software execution device. Then, the execution right generation password checking means uses the order information accumulated and held in the order creating means and the execution device secret information stored in the first secret information storage means to perform the order management device. 10. The software protection system according to claim 7, wherein the execution right generation password received from the server is checked for validity.
【請求項12】 前記注文管理器は、公開鍵署名方式に
用いられる秘密情報を格納する第3の秘密情報格納手段
をさらに含み、 前記実行権生成パスワード生成手段は、前記第3の秘密
情報格納手段に格納された秘密情報と、前記第2の秘密
情報格納手段から獲得した実行器秘密情報と、前記ソフ
ト実行器から受け取った注文情報および注文認証情報と
を用いて、公開鍵署名方式によってデジタル署名された
実行権生成パスワードを生成し、 前記ソフト実行器は、前記公開鍵署名方式に用いられる
秘密情報に対応した公開情報を格納する公開情報格納手
段をさらに含み、 前記実行権生成パスワード検査手段は、前記公開情報格
納手段に格納された公開情報と、前記注文作成手段に蓄
積保持された注文情報と、前記注文認証情報生成手段に
蓄積保持された注文認証情報と、前記第1の秘密情報格
納手段に格納された実行器秘密情報とを用いて、前記公
開鍵署名方式に対応した署名確認方式によって、前記注
文管理器から受け取った実行権生成パスワードの正当性
を検査することを特徴とする、請求項7または9に記載
のソフトウェア保護システム。
12. The order management device further includes third secret information storage means for storing secret information used in a public key signature method, and the execution right generation password generation means stores the third secret information storage. Digitally by a public key signature method using the secret information stored in the means, the execution unit secret information acquired from the second secret information storage unit, and the order information and the order authentication information received from the software execution unit. A signed execution right generation password is generated, and the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method, and the execution right generation password checking means. Is the public information stored in the public information storage means, the order information stored and held in the order creating means, and the storage information in the order authentication information generating means. Execution received from the order manager by a signature confirmation method corresponding to the public key signature method using the held order authentication information and the execution unit secret information stored in the first secret information storage means. 10. The software protection system according to claim 7, wherein the right protection password is checked for validity.
【請求項13】 提供されたソフトウェアを実行する1
つ以上のソフト実行器と、各ソフト実行器と通信経路を
介して接続され、かつ各ソフト実行器から受けたソフト
ウェアの注文を管理する注文管理器とを備えたソフトウ
ェア保護システムであって、 各前記ソフト実行器は、 固有の実行器IDを格納する実行器ID格納手段と、 固有の実行器秘密情報を格納する第1の秘密情報格納手
段と、 1つ以上のソフトウェアの実行権の注文情報を作成して
蓄積保持する注文作成手段とを含み、 前記実行器IDおよび前記注文情報は、前記通信路を介
して前記注文管理器に送付され、 前記注文管理器は、 第1の実行権生成モジュールを格納する第1のモジュー
ル格納手段と、 各前記ソフト実行器に格納された全ての実行器秘密情報
を格納する第2の秘密情報格納手段と、 前記ソフト実行器からの注文情報と、前記第2の秘密情
報格納手段から獲得した実行器秘密情報とに依存した値
を計算する第1の計算手段と、 前記第1の計算手段の計算結果を用いて、前記第1の実
行権生成モジュールを変換することにより、実行権生成
パスワードを生成する実行権生成パスワード生成手段と
を含み、 前記実行権生成パスワードは、前記通信路を介して前記
ソフト実行器に送付され、 各ソフト実行器は、さらに第2の実行権生成モジュール
を格納する第2のモジュール格納手段と、 前記注文作成手段に蓄積保持された注文情報と、前記第
1の秘密情報格納手段に格納された実行器秘密情報とに
依存した値を計算する第2の計算手段と、 前記第2の計算手段の計算結果を用いて、前記注文管理
器からの実行権生成パスワードを逆変換することによ
り、第1の実行権生成モジュールを生成する実行権生成
パスワード逆変換手段と、 前記実行権生成パスワード逆変換手段により生成された
第1の実行権生成モジュールと、前記第2のモジュール
格納手段に格納されている第2の実行権生成モジュール
とを用いて、前記注文作成手段に蓄積保持された注文情
報に基づくソフトウェアの実行権を生成する実行権生成
手段と、 実行権生成後、第一の実行権生成モジュールを消去する
モジュール消去手段と、 前記実行権が存在するソフトウェアを、当該実行権に示
される実行条件に従って実行するソフト実行手段とを含
む、ソフトウェア保護システム。
13. Executing the provided software 1
A software protection system comprising one or more software executors and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. The soft executor comprises: an executor ID storage means for storing a unique executor ID; a first secret information storage means for storing unique executor secret information; and order information of one or more software execution rights. Order execution means for creating, storing, and storing the order execution unit, the execution unit ID and the order information are sent to the order management unit via the communication path, and the order management unit generates a first execution right. First module storing means for storing a module, second secret information storing means for storing secret information of all execution units stored in each software execution unit, and an order from the software execution unit Information, and first calculation means for calculating a value depending on the execution unit secret information acquired from the second secret information storage means, and the first calculation means using the calculation result of the first calculation means. And an execution right generation password generating means for generating an execution right generation password by converting the execution right generation module. The execution right generation password is sent to the software execution unit via the communication path, The executor further includes second module storage means for storing a second execution right generation module, order information accumulated and held in the order creating means, and executor stored in the first secret information storage means. Second calculation means for calculating a value depending on the secret information; and a calculation result of the second calculation means for inversely converting the execution right generation password from the order management device to obtain a second value. Stored in the second module storage means, the first execution right generation password reverse conversion means for generating the first execution right generation module, the first execution right generation module generated by the execution right generation password reverse conversion means, A second execution right generating module for generating an execution right of the software based on the order information accumulated and held in the order creating means, and a first execution right generation after the execution right is generated. A software protection system including a module erasing means for erasing a module, and a software executing means for executing software having the execution right according to an execution condition indicated by the execution right.
【請求項14】 前記第1のモジュール格納手段に格納
されている第1の実行権生成モジュールは、所定のデー
タ構造や意味をもっており、 前記実行権生成手段は、前記実行権生成パスワード逆変
換手段の逆変換結果が前記第1の実行権生成モジュール
と同じデータ構造や意味を持っている場合にのみ、第1
の実行権生成モジュールと、第2の実行権生成モジュー
ルとを用いて、前記注文作成手段に蓄積保持された注文
情報に基づくソフトウェアの実行権を生成することを特
徴とする、請求項13に記載のソフトウェア保護システ
ム。
14. The first execution right generation module stored in the first module storage means has a predetermined data structure and meaning, and the execution right generation means is the execution right generation password reverse conversion means. Only when the inverse conversion result of the first execution right generation module has the same data structure and meaning as the first execution right generation module,
14. The execution right of the software is generated based on the order information accumulated and held in the order creating means by using the execution right generation module and the second execution right generation module. Software protection system.
【請求項15】 前記注文管理器は、公開鍵署名方式に
用いられる秘密情報を格納する第3の秘密情報格納手段
をさらに含み、 前記実行権生成パスワード生成手段は、前記第1の計算
手段の計算結果と、前記第3の秘密情報格納手段に格納
された秘密情報とを用いて、前記第1の実行権生成モジ
ュールを変換することにより、公開鍵署名方式によって
デジタル署名された実行権生成パスワードを生成し、 前記ソフト実行器は、前記公開鍵署名方式に用いられる
秘密情報に対応した公開情報を格納する公開情報格納手
段をさらに含み、 前記実行権生成パスワード逆変換手段は、前記第2の計
算手段の計算結果と、前記公開情報とを用い、前記公開
鍵署名方式に対応した署名確認方式によって、前記注文
管理器からの実行権生成パスワードを逆変換することを
特徴とする、請求項13に記載のソフトウェア保護シス
テム。
15. The order management device further includes third secret information storage means for storing secret information used in a public key signature method, and the execution right generation password generation means is equivalent to the first calculation means. The execution right generation password digitally signed by the public key signature method by converting the first execution right generation module by using the calculation result and the secret information stored in the third secret information storage means. And the software execution unit further includes public information storage means for storing public information corresponding to secret information used in the public key signature method, wherein the execution right generation password reverse conversion means includes the second public information storage means. Using the calculation result of the calculation means and the public information, the execution right generation password from the order manager is reversely changed by the signature confirmation method corresponding to the public key signature method. 14. The software protection system according to claim 13, wherein the software protection system is replaced.
【請求項16】 前記ソフト実行器に提供されるソフト
ウェアは、ソフト固有情報を含んで暗号化されており、 前記実行権生成手段は、前記実行権生成パスワード検査
手段が前記注文管理器からの実行権生成パスワードの正
当性を確認したとき、前記注文作成手段に蓄積保持され
た注文情報に対応する暗号化ソフトウェアを復号して前
記ソフト固有情報を獲得し、この獲得したソフト固有情
報を前記実行器秘密情報で暗号化することによって、注
文されたソフトウェアの実行権を生成し、 前記ソフト実行手段は、前記注文作成手段に蓄積保持さ
れた注文情報に対応する暗号化ソフトウェアを復号して
ソフトウェアとソフト固有情報とを獲得し、前記実行権
を実行器秘密情報を用いて復号してソフト固有情報を獲
得し、これら復号によって獲得したソフト固有情報が一
致している場合にのみ、復号されたソフトウェアを実行
することを特徴とする、請求項1〜15のいずれかに記
載のソフトウェア保護システム。
16. The software provided to the software execution unit is encrypted by including software unique information, and the execution right generation unit executes the execution right generation password checking unit from the order management unit. When the validity of the right generation password is confirmed, the encrypted software corresponding to the order information stored and held in the order creating means is decrypted to acquire the software unique information, and the acquired software unique information is used by the execution unit. By encrypting with the secret information, the execution right of the ordered software is generated, and the software executing means decrypts the encrypted software corresponding to the order information accumulated and held in the order creating means to convert the software and the software. Unique information is acquired, the execution right is decrypted by using the secret information of the executor, and the soft unique information is obtained. Soft-specific information only when the match, and executes the decoded software, software protection system according to any one of claims 1 to 15 were.
【請求項17】 前記注文作成手段は、作成した注文情
報を不揮発的に蓄積保持し、前記実行権生成手段が対応
するソフトウェアの実行権を生成した後に当該注文情報
を消去することを特徴とする、請求項1〜15のいずれ
かに記載のソフトウェア保護システム。
17. The order creating means stores and holds the created order information in a nonvolatile manner, and deletes the order information after the execution right creating means creates an execution right of the corresponding software. A software protection system according to any one of claims 1 to 15.
【請求項18】 前記ソフト実行器および前記注文管理
器は、それぞれ相互間でやりとりされた情報の履歴を保
持していることを特徴とする、請求項1〜15のいずれ
かに記載のソフトウェア保護システム。
18. The software protection according to claim 1, wherein the software execution unit and the order management unit hold a history of information exchanged with each other. system.
【請求項19】 前記ソフト実行器および前記注文管理
器は、すべてのソフトウェアの組み合わせに対応するコ
ードをテーブルとして保持しており、 前記ソフト実行器は、前記テーブルから得たコードを、
前記注文情報として前記注文管理器に送付することを特
徴とする、請求項1〜15のいずれかに記載のソフトウ
ェア保護システム。
19. The software execution unit and the order management unit hold codes corresponding to all combinations of software as a table, and the software execution unit stores the codes obtained from the table,
16. The software protection system according to claim 1, wherein the order protection information is sent to the order manager.
JP15653895A 1995-06-22 1995-06-22 Software protection system Expired - Fee Related JP3570781B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15653895A JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15653895A JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Publications (2)

Publication Number Publication Date
JPH096608A true JPH096608A (en) 1997-01-10
JP3570781B2 JP3570781B2 (en) 2004-09-29

Family

ID=15629988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15653895A Expired - Fee Related JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Country Status (1)

Country Link
JP (1) JP3570781B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256060A (en) * 2002-02-27 2003-09-10 Fujitsu Ltd Authentication method of program use
JP2004227077A (en) * 2003-01-20 2004-08-12 Seiko Epson Corp Information viewing system, information play-back device and information providing device
US7636691B2 (en) 1997-03-26 2009-12-22 Sony Corporation Method of controlling digital content distribution, a method of reproducing digital content, and an apparatus using the same
US7657743B2 (en) 2003-01-29 2010-02-02 Seiko Epson Corporation Information viewing/listening system
DE102007045920B4 (en) 2007-09-26 2018-07-05 Bayer Intellectual Property Gmbh Synergistic drug combinations
CN111176710A (en) * 2019-12-30 2020-05-19 宁波视睿迪光电有限公司 Operation method of terminal software management system and terminal software management system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636691B2 (en) 1997-03-26 2009-12-22 Sony Corporation Method of controlling digital content distribution, a method of reproducing digital content, and an apparatus using the same
JP2003256060A (en) * 2002-02-27 2003-09-10 Fujitsu Ltd Authentication method of program use
JP2004227077A (en) * 2003-01-20 2004-08-12 Seiko Epson Corp Information viewing system, information play-back device and information providing device
US7657743B2 (en) 2003-01-29 2010-02-02 Seiko Epson Corporation Information viewing/listening system
DE102007045920B4 (en) 2007-09-26 2018-07-05 Bayer Intellectual Property Gmbh Synergistic drug combinations
CN111176710A (en) * 2019-12-30 2020-05-19 宁波视睿迪光电有限公司 Operation method of terminal software management system and terminal software management system
CN111176710B (en) * 2019-12-30 2023-10-03 宁波视睿迪光电有限公司 Operation method of terminal software management system and terminal software management system

Also Published As

Publication number Publication date
JP3570781B2 (en) 2004-09-29

Similar Documents

Publication Publication Date Title
US7124443B2 (en) Information transaction system
US8843745B2 (en) Methods of authorizing a computer license
US5701343A (en) Method and system for digital information protection
US7270193B2 (en) Method and system for distributing programs using tamper resistant processor
US20050228994A1 (en) Method for encryption backup and method for decryption restoration
EP1220078B1 (en) Content distribution system, copyright protection system and content receiving terminal
CN101142599A (en) Digital rights management system based on hardware identification
JP2005537559A (en) Secure record of transactions
US20070074027A1 (en) Methods of verifying, signing, encrypting, and decrypting data and file
KR20070085257A (en) Electronic software distribution method and system using a digital rights management method based on hardware identification
CN1439207A (en) A platform and method for establishing provable identities while maintaining privacy
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
JP3580333B2 (en) How to equip the encryption authentication function
CN115242553B (en) Data exchange method and system supporting safe multi-party calculation
JPH1131130A (en) Service providing device
Chen et al. A novel DRM scheme for accommodating expectations of personal use
JPH07123086A (en) Literary work communication control system using ic card
US20040255136A1 (en) Method and device for protecting information against unauthorised use
JPH0818552A (en) Ciphering key delivery system its method
JP3570781B2 (en) Software protection system
JPH1124916A (en) Device and method for managing software licence
KR102555647B1 (en) Big data access management system server that manages access to data stored on big data storage server
JPH08160855A (en) Digital information protection system and its method
JPH07131449A (en) Digital information communication system
JP3575210B2 (en) Digital information management system, terminal device, information management center, and digital information management method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040301

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040622

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20070702

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees