JP2005063207A - Update program and update method - Google Patents

Update program and update method Download PDF

Info

Publication number
JP2005063207A
JP2005063207A JP2003293588A JP2003293588A JP2005063207A JP 2005063207 A JP2005063207 A JP 2005063207A JP 2003293588 A JP2003293588 A JP 2003293588A JP 2003293588 A JP2003293588 A JP 2003293588A JP 2005063207 A JP2005063207 A JP 2005063207A
Authority
JP
Japan
Prior art keywords
software
update
decryption key
decryption
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003293588A
Other languages
Japanese (ja)
Inventor
To O
涛 王
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.)
EASY SYSTEMS JAPAN KK
Original Assignee
EASY SYSTEMS JAPAN KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EASY SYSTEMS JAPAN KK filed Critical EASY SYSTEMS JAPAN KK
Priority to JP2003293588A priority Critical patent/JP2005063207A/en
Publication of JP2005063207A publication Critical patent/JP2005063207A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a convenient update program for both a user and a software provider. <P>SOLUTION: This update program 1 is provided with a check means 11 for determining whether or not package software 3 stored in the terminal of a user is the target of update, and for starting a decoding key decrypting means 23, a backup means 13 for backing up the package software 3 and a re-packaging means 15 for encrypting new software 41 sent by a software provider by using a decoding key 8 decrypted by the decoding key decrypting means 23 when use conditions relating to update are satisfied, and for packaging the new software 41 with package identification information 35 and for replacing it with the package software 3. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、アップデートプログラム及びアップデート方法に関し、特に、ダウンロード式のソフトウェアのアップデートプログラム及びアップデート方法に関するものである。
The present invention relates to an update program and an update method, and more particularly to a download-type software update program and update method.

近年、コンピュータ上で利用するソフトウェアを、ネットワークを介して利用者の端末にダウンロードさせるサービスが増えている。   In recent years, an increasing number of services allow software used on a computer to be downloaded to a user's terminal via a network.

このようなサービスでは、より多くの利用者にソフトウェアを有償で購入してもらうため、まずは、通常版ソフトウェアが有する機能を縮小化した試用版ソフトウェアを無償で利用者の端末にダウンロードさせ、試用期間経過後に利用者の希望により、有償で通常版ソフトウェアを購入させることが多い。   In such a service, in order to have more users purchase the software for a fee, first, the trial version software with reduced functions of the normal version software is downloaded to the user's terminal free of charge, and the trial period After the elapse of time, the normal version software is often purchased for a fee according to the desire of the user.

一方、ほとんどのソフトウェアは、利用者向けに正規に発行されてからも、新機能の追加や日々発生するバグ修正のため、パッチが当てられたり、アップデートが行われる必要がある。そのための修正ソフトウェアやアップデートプログラムは、保証期間内であれば無償(場合によっては有償)で利用者に配布される。利用者は、各自の端末にダウンロードされたソフトウェアのアップデート作業を行う。   On the other hand, most software needs to be patched or updated to add new functions or fix bugs that occur every day even after it has been officially issued to users. The modified software and update program for that purpose are distributed to users free of charge (in some cases, for a fee) within the warranty period. The user performs the update operation of the software downloaded to his / her terminal.

しかし、このようなアップデート作業は利用者にとっては面倒であることから、利用者の手間を軽減するため、特許文献1に開示されているように、ソフトウェアの利用期限を、利用者による書き換えが不可能なハードウェアプロテクト装置に書き込み、ソフトウェアと共に利用者に提供し、その利用期限内であれば、ソフトウェア提供者側が、利用者の所有するソフトウェアのバージョンを確認してそのバージョンに適合するアップデート作業を自動的に行う、というソフトウェア利用者管理方法及びハードウェア・プロテクト装置がある。   However, since such an update operation is troublesome for the user, in order to reduce the user's trouble, the expiration date of the software is not rewritten by the user as disclosed in Patent Document 1. Write to an available hardware protection device, provide it to the user together with the software, and if it is within the usage period, the software provider checks the version of the software owned by the user and performs an update operation that conforms to that version. There is a software user management method and a hardware protection device that perform automatically.

又、無償でアップデートプログラムを提供すると、不正にアップデートプログラムがコピーされる等の問題が発生することから、特許文献2には、CD−Rや、CD−RW、MO、DVD−RAM等の可換記録媒体のユーザアクセス不可領域に、ソフトウェアのインストール可能回数やアップデート可能回数を書き込んで利用者に提供し、実際にインストールやアップデートする時の回数と比較することによって、不正なインストールやアップデートを防止する方法が開示されている。
In addition, if an update program is provided free of charge, problems such as unauthorized copying of the update program occur. Patent Document 2 discloses that CD-R, CD-RW, MO, DVD-RAM, etc. are acceptable. Writes the number of installable and updateable softwares to the user-inaccessible area of the replacement recording medium and provides it to the user to prevent unauthorized installation and update by comparing the actual number of installations and updates. A method is disclosed.

特開2002−182767号公報JP 2002-182767 A 特開2003−44155号公報JP 2003-44155 A

しかし、特許文献1、特許文献2に開示された発明には、以下に掲げる課題があった。
However, the inventions disclosed in Patent Document 1 and Patent Document 2 have the following problems.

すなわち、特許文献1、特許文献2に開示された発明のいずれも、利用者が自己の端末に、ソフトウェア提供者から提供されるハードウェアプロテクト装置や可換記録媒体を接続しなければならない。   That is, in any of the inventions disclosed in Patent Document 1 and Patent Document 2, a user must connect a hardware protect device or a replaceable recording medium provided by a software provider to his / her terminal.

従って、ソフトウェア提供者は利用者毎にその提供物を用意して郵送等しなければならず、利用者も郵送等により送られてきた提供物を自己の端末に接続しなければならないことから、ソフトウェア提供者、利用者の双方に手間が発生し、これではネットワークを介してソフトウェアをダウンロード可能とするシステム(サーバ)の構築意義が没却されかねない。   Therefore, the software provider must prepare and deliver the deliverable for each user, and the user must also connect the deliverable sent by mail to his / her terminal. Both the software provider and the user are troublesome, and this may destroy the significance of constructing a system (server) that allows software to be downloaded via a network.

更に、特許文献1に開示された発明では、ソフトウェア提供者が、利用者の所有するソフトウェアのバージョンを確認して利用者毎に適合するアップデートプログラムを送らなければならないが、ソフトウェア提供者が複数の販売者に対して同一内容のソフトウェアを提供するような場合、ソフトウェア提供者は、個々のソフトウェアに対するバージョン管理、バージョン毎のアップデート動作確認テストを行わなければならず、ソフトウェア提供者はこれらの作業に多くの時間を費していた。   Furthermore, in the invention disclosed in Patent Document 1, the software provider must check the version of the software owned by the user and send an update program suitable for each user. When providing software with the same content to a seller, the software provider must perform version management for each software and update operation check test for each version. I spent a lot of time.

更に、特許文献1、特許文献2に開示された発明は、試用版ではない通常のソフトウェアのインストールやアップデートに関するものであり、そもそも試用版ソフトウェアをアップデートするという発想は含まれていなかった。   Furthermore, the inventions disclosed in Patent Document 1 and Patent Document 2 relate to installation and update of normal software that is not a trial version, and the idea of updating the trial version software was not included in the first place.

しかし、試用版ソフトウェアを利用している利用者の端末が、無償で配布されるアップデートプログラムをダウンロードすると、端末に既に格納されている試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう場合があり、利用者が、本来有償であるはずの通常版ソフトウェアを無償で利用することが可能となってしまう。   However, if the terminal of a user using trial version software downloads an update program distributed free of charge, the trial version software already stored on the terminal may be overwritten by the normal version software. The user can use the normal software that should be paid for free of charge.

このため、従来の試用版ソフトウェアには、予めアップデートを一切禁止するようなソースコードがプログラムとして記述されており、仮に試用版ソフトウェアに重大な不具合があったような場合でも、利用者には新たに試用版ソフトウェアをダウンロードさせるしかなかった。   For this reason, the source software that prohibits any updates is described as a program in the conventional trial version software in advance, and even if there is a serious malfunction in the trial version software, the user will Had to download the trial software.

本発明は、このような問題点に鑑みてなされたものであって、その目的とするところは、試用版か通常版かを問わず、利用者にとって負担なくソフトウェアのアップデートを行うことが出来、ソフトウェア提供者にとってもアップデートにかかる作業時間を大幅に少なくすることが出来るアップデートプログラム及びアップデート方法を提供することにある。
The present invention has been made in view of such problems, the purpose of which can be updated software without burden on the user, regardless of whether it is a trial version or a normal version, It is another object of the present invention to provide an update program and an update method that can significantly reduce the time required for updating for software providers.

上記目的を達成するために、本発明は、ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデートプログラムであって、前記アップデートプログラムは、前記暗号化されたソフトウェアの復号鍵を解読する復号鍵解読プログラムが前記利用者の端末に格納された後に、前記端末に格納されるものであり、前記復号鍵解読プログラムは、前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する利用状況生成手段と、前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する復号鍵解読手段と、前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する展開手段とを有し、前記アップデートプログラムは、前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断し、前記復号鍵解読手段を起動するチェック手段と、前記パッケージソフトウェアのバックアップを行うバックアップ手段と、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える再パッケージ手段とを有する構成を採用している。   In order to achieve the above-described object, the present invention provides a predetermined number of times of use of package software in which software other than a user is encrypted with a common key generated by a common key encryption method and packaged together with package identification information. -An update program for updating the software in a software providing service to be used on a user's terminal under usage conditions such as an amount, a deadline, etc., wherein the update program includes the encrypted software A decryption key decryption program for decrypting a decryption key is stored in the terminal after being stored in the terminal of the user, and the decryption key decryption program updates the use status every time the software is used. A usage database that can be used on a terminal other than the user's terminal The usage status generation means for generating in the user's terminal in a state that cannot be read or updated, the usage status stored in the usage status database, and the usage conditions are collated, and the usage status Only when the usage condition does not exceed the usage condition, the usage status in the usage status database is updated, and the decryption key decryption means for decrypting the decryption key of the encrypted software from the decryption key storage file, and the decryption Expansion means for expanding the decrypted key on the main memory of the user terminal, and the update program determines whether the package software stored in the user terminal is an update target. Determining means for activating the decryption key decryption means, and backup means for backing up the package software; Using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, the new software sent from the software provider is encrypted and packaged together with the package identification information, and the package software And a re-packaging means for replacement.

請求項14の発明は、
ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデート方法であって、前記アップデート方法は、前記暗号化されたソフトウェアの復号鍵を解読するための復号鍵解読過程を少なくとも1回経た後に、実行されるものであり、前記復号鍵解読過程は、前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する第1の過程と、前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する第2の過程と、前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する第3の過程とを有し、前記アップデート方法は、前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断する第4の過程と、前記パッケージソフトウェアのバックアップを行う第5の過程と、前記第復号鍵解読過程により、アップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える第6の過程とを有するアップデート方法である。
The invention of claim 14
Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. An update method for updating the software in a software providing service to be used on a user's terminal, wherein the update method includes a decryption key decryption process for decrypting a decryption key of the encrypted software The decryption key decryption process is executed after at least one pass, and the usage status database that can update the usage status every time the software is used is read by a terminal other than the user terminal, The first to be generated on the user terminal in a state where the update is not possible The usage status stored in the usage status database is compared with the usage conditions, and only when the usage status does not exceed the usage conditions, the usage status in the usage status database is updated, A second step of decrypting the decryption key of the encrypted software from the decryption key storage file, and a third step of expanding the decrypted decryption key on the main memory of the user terminal; The update method includes a fourth step of determining whether or not the package software stored in the terminal of the user is an update target, and a fifth step of backing up the package software; From the software provider using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption process. Encrypts assigned the new software, and packaged with the package identification information, an update method and a sixth step of replacing said package software.

請求項1及び請求項14の発明により、正当な利用者の元にアップデート用のソフトウェアが送られ、鍵の生成等の手間が発生することなくアップデートが行われるので、利用者にとっても、ソフトウェア提供者にとっても利便性の高いアップデートプログラム及びアップデート方法が提供される。   According to the inventions of claims 1 and 14, the software for update is sent to the legitimate user, and the update is performed without generating a trouble such as key generation. An update program and an update method that are convenient for the user are provided.

請求項3の発明は、
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、前記チェック手段は、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可するアップデートプログラムである。
The invention of claim 3
The new software is sent to the user's terminal in an encrypted state with the common key, and the checking means decrypts the decrypted data when the use condition regarding the update is satisfied by the decryption key decrypting means. This is an update program that attempts to decrypt the encrypted new software by using a key, and permits an update when decrypted.

請求項16の発明は、
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、前記第4の過程では、前記復号鍵解読過程によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可するアップデート方法である。
The invention of claim 16
The new software is sent to the user's terminal after being encrypted with the common key. In the fourth process, the new software is decrypted when the use conditions regarding the update are satisfied by the decryption key decryption process. In this update method, the encrypted new software is tried to be decrypted using the decryption key, and the update is permitted when the decrypted new software is decrypted.

請求項3及び請求項16の発明により、新しいソフトウェアは元のソフトウェアと同じ鍵で暗号化されているので、新たな鍵生成の必要がなく、又、第三者による盗聴の心配がなく、ソフトウェアのアップデートが可能となる。又、異なる鍵で暗号化されたソフトウェアによりアップデートが行われることがないので、不正アップデートを防止することが出来る。   According to the inventions of claims 3 and 16, since the new software is encrypted with the same key as the original software, there is no need to generate a new key, and there is no worry of eavesdropping by a third party. Can be updated. In addition, since the update is not performed by software encrypted with a different key, unauthorized update can be prevented.

請求項2の発明は、
前記再パッケージ手段に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われるアップデートプログラムである。
The invention of claim 2
Encryption and packaging of new software in the repackaging means is an update program performed on the main memory.

請求項4の発明は、
前記チェック手段に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われるアップデートプログラムである。
The invention of claim 4
Decryption of the new encrypted software in the checking means is an update program performed on the main memory.

請求項15の発明は、
前記第6の過程に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われるアップデート方法である。
The invention of claim 15
Encryption and packaging of new software in the sixth process is an update method performed on the main memory.

請求項17の発明は、
前記第4の過程に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われるアップデート方法である。
The invention of claim 17
The decryption of the new encrypted software in the fourth process is an update method performed on the main memory.

請求項2、請求項4、請求項15、請求項17の発明により、新しいソフトウェアがハードディスク上に保存されることなく、メインメモリ上で再パッケージ化されるので、不正利用を防止することが出来る。   According to the inventions of claim 2, claim 4, claim 15, and claim 17, since new software is repackaged on the main memory without being stored on the hard disk, unauthorized use can be prevented. .

請求項5の発明は、
前記チェック手段は、前記パッケージソフトウェア及び前記復号鍵解読プログラム及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認するアップデートプログラムである。
The invention of claim 5
The check means is an update program for confirming whether the package software, the decryption key decryption program, the decryption key storage file, and the use state database are stored in the terminal of the user.

請求項18の発明は、
前記第4の過程では、前記パッケージソフトウェア及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認するアップデート方法である。
The invention of claim 18 provides
The fourth process is an update method for confirming whether the package software, the decryption key storage file, and the usage status database are stored in the user terminal.

請求項5及び請求項18の発明により、正当なパッケージソフトウェアや復号鍵が利用者の端末に存在しなければ、そもそもアップデートが行われないので、正当なアップデートを遂行することが出来る。   According to the fifth and eighteenth aspects of the present invention, if there is no valid package software or decryption key in the user's terminal, the update is not performed in the first place, so that the valid update can be performed.

請求項6の発明は、
前記チェック手段は、前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認するアップデートプログラムである。
The invention of claim 6
The check means is an update program that confirms whether the software version in the package software is older than the new software version.

請求項19の発明は、
前記第4の過程では、前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認するアップデート方法である。
The invention of claim 19
The fourth process is an update method for confirming whether the software version in the package software is older than the new software version.

請求項6及び請求項19の発明により、確実に正しいアップデートを遂行することが出来る。   According to the inventions of claims 6 and 19, correct update can be surely performed.

請求項7の発明は、
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、前記復号鍵解読手段に於いてのみ前記復号鍵の解読が可能なように、前記利用者の端末に格納されるアップデートプログラムである。
The invention of claim 7
The decryption key storage file contains the decryption key and one or more usage conditions, and is stored in the user terminal so that the decryption key can be decrypted only by the decryption key decryption means. Update program.

請求項20の発明は、
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、
前記復号鍵解読方法による前記復号鍵の解読が可能なように、前記利用者の端末に格納されるアップデート方法である。
The invention of claim 20
The decryption key storage file contains the decryption key and one or more use conditions,
An update method stored in the user terminal so that the decryption key can be decrypted by the decryption key decryption method.

請求項7及び請求項20の発明により、ソフトウェアの利用都度、復号鍵や利用条件をソフトウェア提供者から入手する必要がなく、ソフトウェア利用の迅速化が図られるとともに、一度、復号鍵格納ファイルを入手すれば、その後は盗聴等される危険性がなくなる。   According to the inventions of claim 7 and claim 20, it is not necessary to obtain a decryption key and use conditions from the software provider every time the software is used, and the use of the software is accelerated, and the decryption key storage file is obtained once. Then, there is no danger of eavesdropping.

請求項8及び請求項21の発明は、
前記利用条件の一部又は全部は、前記復号鍵格納ファイルに含まれず、前記利用者による前記パッケージソフトウェアの購入又はアップデートの決済完了後、発行されるアップデートプログラム及びアップデート方法である。
The inventions of claims 8 and 21 include
Part or all of the usage conditions are not included in the decryption key storage file, and are an update program and an update method that are issued after the user completes the purchase or update settlement of the package software.

請求項8及び請求項21の発明により、利用者毎に異なる利用条件については、復号鍵格納ファイルに含めず、別ファイルとして発行することが出来るので、復号鍵格納ファイルの共通化、決済完了確認後のソフトウェア利用やアップデートが可能となる。   According to the inventions of claims 8 and 21, usage conditions that differ for each user can be issued as a separate file without being included in the decryption key storage file. Later software usage and updates are possible.

請求項9及び請求項22の発明は、
前記復号鍵格納ファイルは、乱数等の第1の鍵を置換表で置換した第2の鍵によって暗号化されるアップデートプログラム及びアップデート方法である。
The inventions of claim 9 and claim 22
The decryption key storage file is an update program and an update method that are encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.

請求項9及び請求項22の発明により、復号鍵を含む復号鍵格納ファイルが暗号化されるので、より一層復号鍵の保護が図られる。   According to the ninth and twenty-second aspects of the present invention, since the decryption key storage file including the decryption key is encrypted, the decryption key can be further protected.

請求項10及び請求項23の発明は、
前記置換表は、前記ソフトウェア提供者毎に生成されるアップデートプログラム及びアップデート方法である。
The inventions of claim 10 and claim 23
The replacement table is an update program and update method generated for each software provider.

請求項10及び請求項23の発明により、同一のソフトウェアであれば販売者毎に置換表を変えれば、不正利用された場合に、販売ルートまでの特定が可能となり、販売者の権利も保護される。   According to the inventions of claims 10 and 23, if the replacement software is changed for each seller if the same software is used, it is possible to specify the sales route in the case of unauthorized use, and the rights of the seller are also protected. The

請求項11及び請求項24の発明は、
前記置換表は、前記パッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化されるアップデートプログラム及びアップデート方法である。
The invention of claim 11 and claim 24
The replacement table is an update program and an update method that are encrypted by a one-way function such as a hash value obtained from binary data of the package software.

請求項11及び請求項24の発明により、ソフトウェアの改ざんを検知することが可能となる。   According to the eleventh and twenty-fourth inventions, it is possible to detect software tampering.

請求項12の発明は、
前記再パッケージ手段は、前記置換表を、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化するアップデートプログラムである。
The invention of claim 12
The repackaging means is an update program that encrypts the replacement table with a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.

請求項25の発明は、
前記置換表が、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化されるアップデート方法である。
The invention of claim 25 provides
In the update method, the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.

請求項12及び請求項25の発明により、利用条件を満足する限りは、ソフトウェアのアップデートの有無によらず、又、アップデートされたことを意識することなくソフトウェアを利用し続けることが可能となる。   According to the twelfth and twenty-fifth aspects of the invention, as long as the use conditions are satisfied, it is possible to continue to use the software regardless of whether or not the software has been updated and without being aware of the update.

請求項13及び請求項26の発明は、
前記利用状況データベースは、前記利用者の端末に於いて、前記端末の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)のハッシュ値等の一方向性関数によって暗号化されるアップデートプログラム及びアップデート方法である。
The inventions of claims 13 and 26 include
The usage database is encrypted at the user's terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. Program and update method.

請求項13及び請求項26の発明により、利用状況データベースを利用者の端末以外の端末にコピーして利用することが不可能となる。   According to the thirteenth and twenty-sixth aspects of the present invention, it is impossible to copy and use the usage status database to a terminal other than the user terminal.

尚、本明細書に於ける「送付」には、ネットワークを介した利用者からのダウンロード要求による送信形態や、電子メールへの添付による送信形態の他、これらいずれか1以上をCD−ROM等の可搬型の記録媒体に格納し、郵送等により利用者に送付する形態も含まれる。つまり、本発明に於いて、利用者がプログラム等のデータを入手する方法としては、ネットワークを介したダウンロード、メール添付の他、プログラムの全部又は一部がCD−ROM等の可搬型記録媒体に格納され、利用者が各自、当該可搬型記録媒体から端末にコピーを行う場合も含まれる。   In addition, in the “sending” in this specification, in addition to a transmission form by a download request from a user via a network, a transmission form by attachment to an e-mail, at least one of these is a CD-ROM or the like It is also possible to store the information in a portable recording medium and send it to the user by mail or the like. In other words, in the present invention, as a method for the user to obtain data such as a program, all or a part of the program can be stored in a portable recording medium such as a CD-ROM in addition to downloading via a network and attaching to a mail. It also includes the case where the user makes a copy from the portable recording medium to the terminal.

又、本明細書に於いて、「ソフトウェア提供者」には、ソフトウェアを作成したメーカーのみならず、ソフトウェアを直接利用者に提供又は販売する者も含まれるものとする。   Further, in this specification, “software provider” includes not only the manufacturer that created the software, but also those who directly provide or sell the software to users.

又、本明細書に於いて、「利用者」とは、ソフトウェア提供者に、特定のソフトウェアを利用することを認められた者を指す。   Further, in this specification, “user” refers to a person who is permitted to use specific software by a software provider.

又、本明細書に於いて、「利用者端末にダウンロード、コピー、格納、生成を行う」とは、利用者の端末内の書き換え可能な外部(補助)記憶装置にダウンロード等することを指す。書き換え可能な外部記憶装置には、その端末の内蔵ハードディスクや、端末と接続された外付けディスク(MOやFD)等の記憶装置が含まれる。但し、これらの記憶装置はその端末と1対1で対応可能なものであって、他の端末との共有ディスクや端末とネットワークを介して接続された外部記憶装置は含まないものとする。   Further, in this specification, “download, copy, store, and generate to a user terminal” refers to downloading to a rewritable external (auxiliary) storage device in the user terminal. The rewritable external storage device includes a storage device such as an internal hard disk of the terminal and an external disk (MO or FD) connected to the terminal. However, these storage devices are one-to-one correspondence with the terminal, and do not include a shared disk with another terminal or an external storage device connected to the terminal via a network.

又、本明細書に於いて、「利用者端末」は、本発明のアップデートプログラムや、パッケージソフトウェア等のプログラム、データを格納し、実行・利用するために必要な構成(CPU、メインメモリ、外部記憶装置、通信用デバイス、入出力デバイス等)を有する通常のコンピュータであればよい。
In this specification, the “user terminal” is a configuration (CPU, main memory, external) necessary for storing, executing, and using the update program of the present invention, a program such as package software, and data. Any ordinary computer having a storage device, a communication device, an input / output device, or the like may be used.

本発明のアップデートプログラム及びアップデート方法によれば、ソフトウェア利用者と、ソフトウェア提供者の双方にかかる負担が削減され、ソフトウェアのアップデートの利便性が増す。   According to the update program and the update method of the present invention, the burden on both the software user and the software provider is reduced, and the convenience of software update is increased.

再パッケージに必要となる復号鍵は既に利用者端末内に存在するので、アップデート用に新たに鍵を生成する等の手間が発生することなく、アップデートが必要となった時に利用者端末に本発明のアップデートプログラムとアップデート用のソフトウェアをダウンロードさせるだけで、利用者端末は、試用版か通常版かによらず、ソフトウェアのアップデートを行うことが可能となる。   Since the decryption key necessary for repackaging already exists in the user terminal, the present invention is applied to the user terminal when an update is required without generating a new key for updating. By simply downloading the update program and update software, the user terminal can update the software regardless of whether it is a trial version or a normal version.

又、一度、利用者端末に復号鍵解読プログラムとパッケージソフトウェアが格納されれば、その利用者端末に於いてしか行えないソフトウェアのアップデートが可能となり、不正なアップデートが防止されるだけでなく、正当な利用者に対してのみ無償でアップデートサービスを提供することが可能となる。   Also, once the decryption key decryption program and package software are stored in the user terminal, it is possible to update the software that can only be performed on the user terminal, which not only prevents unauthorized updates, but also It is possible to provide an update service free of charge only to new users.

本発明のアップデートプログラムは、販売者によらず、同一のプログラムでよく、ソフトウェアも同一でよいので、アップデートにかかる手間を大幅に削減することが出来る。しかも、試用版ソフトウェアのアップデートを禁止する必要がなくなり、試用版ソフトウェアにアップデートを禁止するためのソースコードを挿入する手間も削減される。又、利用者端末に試用版ソフトウェアが重複してダウンロードされたり、試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう危険性がなくなる。
Since the update program of the present invention may be the same program and the software may be the same regardless of the seller, the labor required for the update can be greatly reduced. In addition, it is not necessary to prohibit the update of the trial version software, and the effort for inserting the source code for prohibiting the update into the trial version software is reduced. Further, there is no risk of the trial version software being downloaded to the user terminal in duplicate or the trial version software being overwritten with the normal version software.

以下、本発明の好適な実施の形態について、図1、図2、図3、図4、図5、図6を参照して詳細に説明する。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to FIGS. 1, 2, 3, 4, 5, and 6.

図2は本発明のアップデートプログラム1及びアップデート方法により、ソフトウェアプログラム(以下、ソフトウェア31という)をアップデートする前段階として、アップデートの対象となる当該ソフトウェア31を利用者端末7にダウンロード(ソフトウェア提供者側のサーバ端末6に保存されているデータをネットワークを介して転送すること)して、当該ソフトウェア31を利用者端末7のみで利用可能とするために必要なプログラム(以下、復号鍵解読プログラム2という)と、当該ソフトウェア31をパッケージ化したパッケージソフトウェア3と、インストールプログラム5の構成を示している。   FIG. 2 shows that the software 31 to be updated is downloaded to the user terminal 7 (software provider side) as a stage before updating the software program (hereinafter referred to as software 31) by the update program 1 and the update method of the present invention. The data stored in the server terminal 6 is transferred via the network), and a program necessary for making the software 31 available only on the user terminal 7 (hereinafter referred to as a decryption key decryption program 2). ), Package software 3 in which the software 31 is packaged, and the configuration of the installation program 5.

図1は、図2に示されるパッケージソフトウェア3、復号鍵解読プログラム2、インストールプログラム5が利用者端末7にダウンロードされた後、ソフトウェア31からソフトウェア41へのアップデートが必要となった時、サーバ端末6から利用者端末7にダウンロードされるパッケージソフトウェア4と、アップデートプログラム1の構成を示している。   FIG. 1 shows a server terminal when an update from software 31 to software 41 is required after the package software 3, decryption key decryption program 2, and installation program 5 shown in FIG. 6 shows the configuration of the package software 4 and the update program 1 downloaded from the user terminal 7 to the user terminal 7.

まず、図2の構成について説明する。利用者端末7は、希望のパッケージソフトウェア3を指定、選択等した上で、サーバ端末6からネットワークを介して、図2に示すパッケージソフトウェア3、復号鍵解読プログラム2、インストールプログラム5をダウンロードする。ソフトウェアを含むこれらのプログラムは1回ダウンロードされれて、利用者端末7に格納されればよい。尚、これらのプログラムは、ダウンロード形態に限らず、電子メールに添付されてもよく、又、CD−ROM等の可搬型の記録媒体に格納され、郵送等により利用者に送付された後、利用者端末7にコピーされてもよい。   First, the configuration of FIG. 2 will be described. The user terminal 7 downloads the package software 3, the decryption key decryption program 2, and the installation program 5 shown in FIG. 2 from the server terminal 6 via the network after designating and selecting the desired package software 3. These programs including software may be downloaded once and stored in the user terminal 7. These programs are not limited to the download form, but may be attached to an e-mail, or stored in a portable recording medium such as a CD-ROM and sent to the user by mail or the like for use. May be copied to the person terminal 7.

利用者端末7は、これらダウンロードしたプログラム等を格納し、実行・利用するために必要な構成(CPU、メインメモリ71、外部記憶装置、通信用デバイス、入出力デバイス等)を有するものであり、通常のコンピュータであればよい。   The user terminal 7 has a configuration (CPU, main memory 71, external storage device, communication device, input / output device, etc.) necessary for storing, executing, and using these downloaded programs. Any ordinary computer may be used.

パッケージソフトウェア3には、暗号化ソフトウェア31a、復号化手段33、パッケージ識別情報35(図示せず)が含まれる。尚、暗号化ソフトウェア31aは、ソフトウェア31を暗号鍵で暗号化したものである。以降、暗号化処理が施されたソフトウェア、プログラム、ファイル等のデータには、暗号化処理前の元データの符号にa,b等の添字を付すものとする。   The package software 3 includes encryption software 31a, decryption means 33, and package identification information 35 (not shown). The encrypted software 31a is obtained by encrypting the software 31 with an encryption key. Hereinafter, it is assumed that subscripts such as “a” and “b” are attached to the codes of the original data before the encryption process for data such as software, programs, and files subjected to the encryption process.

復号鍵解読プログラム2には、利用状況生成手段21、復号鍵解読手段23、展開手段25、復号鍵格納ファイル29が含まれる。   The decryption key decryption program 2 includes a usage status generation unit 21, a decryption key decryption unit 23, an expansion unit 25, and a decryption key storage file 29.

尚、図2では、復号鍵格納ファイル29の代わりに暗号化された復号鍵格納ファイル29aが復号鍵解読プログラム2に含まれ、更に、暗号化された置換表27aも含まれる。置換表27は、暗号化された復号鍵格納ファイル29aの復号化に必要な鍵の解読に必要となる。各手段等の詳細は順次説明する。   In FIG. 2, the decryption key storage file 29a that is encrypted instead of the decryption key storage file 29 is included in the decryption key decryption program 2, and an encrypted replacement table 27a is also included. The replacement table 27 is necessary for decrypting a key necessary for decrypting the encrypted decryption key storage file 29a. Details of each means will be described sequentially.

インストールプログラム5は、ダウンロードしたパッケージソフトウェア3を実際に利用者端末7で利用出来るように各プログラムやデータの起動順序を制御する等のサポートを行うプログラムである。尚、インストールプログラム5の中に、パッケージソフトウェア3や復号鍵解読プログラム2が含まれていてもよい。   The installation program 5 is a program that provides support such as controlling the activation order of each program and data so that the downloaded package software 3 can actually be used on the user terminal 7. The installation program 5 may include the package software 3 and the decryption key decryption program 2.

まずは、パッケージソフトウェア3について、図3を参照しながら説明する。ソフトウェアは利用者端末7にダウンロード、格納される時には当然バイナリ形式のプログラムであるが、実際にソフトウェアを端末上で実行、利用したり、ディスプレイに表示させるためには、実行プログラムのみならず、ソフトウェアを実行するのに必要なプログラムが必要である。   First, the package software 3 will be described with reference to FIG. The software is of course a binary format when downloaded and stored in the user terminal 7, but in order to actually execute and use the software on the terminal or display it on the display, not only the execution program but also the software The program necessary to execute is required.

ソフトウェア提供者は、これら実行プログラムとソフトウェアを実行するのに必要なプログラム(以下、合わせてソフトウェア31という)を暗号化処理装置を用いて任意の乱数等の暗号鍵で暗号化し、暗号化ソフトウェア31aとする。   The software provider encrypts the execution program and a program necessary for executing the software (hereinafter collectively referred to as software 31) with an encryption key such as an arbitrary random number using an encryption processing apparatus, and encrypts the software 31a. And

暗号化する理由は主に2点あり、1点は、このソフトウェア31をダウンロードした正当な利用者であっても、後述する利用条件を満足しない限りはソフトウェア31を利用出来ないようにするためであり、もう1点は、ネットワークの経由過程で悪意者に盗聴されるのを防止するためである。   There are two main reasons for encryption, and one point is to prevent the software 31 from being used even if it is a legitimate user who has downloaded the software 31 unless the usage conditions described later are satisfied. There is another point in order to prevent eavesdropping by a Service-to-Self in the process of going through the network.

つまり、本発明では、暗号化ソフトウェア31aのみをダウンロードしたとしても、利用者であってもソフトウェア31の利用は行えず、暗号化ソフトウェア31aを復号化する過程を経て、初めてソフトウェア31の利用が可能となる。   That is, in the present invention, even if only the encrypted software 31a is downloaded, even the user cannot use the software 31, and the software 31 can be used for the first time through the process of decrypting the encrypted software 31a. It becomes.

更に、暗号化ソフトウェア31aの復号化に必要な復号鍵8は、本発明に於いては、利用者側が生成するものではなく、又、復号鍵格納ファイル29の中に利用者さえも容易に知ることが出来ない状態で保存されている。つまり、利用者毎に定められるソフトウェア31の利用条件を満足した場合のみ、復号鍵8を得ることが出来、しかも、この解読過程で得られた復号鍵8によってのみ、暗号化ソフトウェア31aの復号化を可能とする仕組みが採用されている。   Further, in the present invention, the decryption key 8 necessary for decryption of the encryption software 31 a is not generated by the user side, and even the user can easily know the decryption key storage file 29. It is saved in a state where it can not be. That is, the decryption key 8 can be obtained only when the use conditions of the software 31 determined for each user are satisfied, and the decryption of the encryption software 31a can be performed only by the decryption key 8 obtained in this decryption process. A mechanism that enables this is adopted.

ここでは、暗号化・復号化に共通鍵暗号方式を用いるものとし、暗号鍵と復号鍵8は共通である。共通鍵暗号方式により生成された鍵による暗号化、復号化の処理時間は、公開鍵暗号方式による暗号化、復号化処理時間と比較して短いので、利用者にとってもソフトウェア提供者にとっても、利便性が損なわれることがない。   Here, a common key cryptosystem is used for encryption / decryption, and the encryption key and the decryption key 8 are common. The encryption / decryption processing time using the key generated by the common key encryption method is shorter than the encryption / decryption processing time using the public key encryption method, which is convenient for both users and software providers. There is no loss of sex.

尚、共通鍵暗号方式の代わりに公開鍵暗号方式を用いてもよいが、その場合には、利用者による鍵の生成の手間をなくすため、暗号鍵と復号鍵8のいずれも、ソフトウェア提供者側で生成するものとする。   A public key cryptosystem may be used instead of the common key cryptosystem. In this case, both the encryption key and the decryption key 8 are provided by the software provider in order to save the user from generating a key. Shall be generated on the side.

この暗号鍵(復号鍵8)は利用者以外の者、つまり、本実施の形態に於いてはソフトウェア提供者によって生成された乱数である。尚、図1でソフトウェア31のアップデートの際にダウンロードされるパッケージソフトウェア4の中に、ソフトウェア41の代わりに暗号化ソフトウェア41aが含まれる場合には、この暗号化ソフトウェア41aは、ソフトウェア31の暗号鍵(復号鍵8)と同一の鍵で暗号化されている。   This encryption key (decryption key 8) is a random number generated by a person other than the user, that is, a software provider in the present embodiment. If the packaged software 4 downloaded when updating the software 31 in FIG. 1 includes the encrypted software 41 a instead of the software 41, the encrypted software 41 a is an encryption key of the software 31. It is encrypted with the same key as (decryption key 8).

図3に示すように、暗号化ソフトウェア31aと、暗号化ソフトウェア31aを復号化するのに必要なプログラム類(復号化手段33、パッケージ識別情報35)とに、ヘッダ37を付加したものが、パッケージソフトウェア3となる。   As shown in FIG. 3, an encrypted software 31a and programs (decryption means 33, package identification information 35) necessary for decrypting the encrypted software 31a are added with a header 37, which is a package. Software 3

ソフトウェア31は、暗号化され、更にパッケージ化されることにより、インストールプログラム5(図1に於いてはアップデートプログラム1)やその他のプログラムとの連動によってのみ実行可能となり、単独実行や利用者端末7のハードディスク等への格納が出来ないようになる。   The software 31 is encrypted and further packaged, so that it can be executed only in conjunction with the installation program 5 (update program 1 in FIG. 1) and other programs. Cannot be stored on a hard disk.

従って、利用者及び悪意者が復号鍵8を知り得たとしても、不正に暗号化ソフトウェア31aの復号化をすることは不可能であるし、又、実行プログラムのバイナリデータを改変してウィルスを作成したり不正利用の目的とすることが不可能となる。   Therefore, even if the user and the Service-to-Self are aware of the decryption key 8, it is impossible to decrypt the encrypted software 31a illegally, and it is also possible to modify the binary data of the execution program to remove the virus. It cannot be created or used for illegal use.

尚、図2に示した利用状況生成手段21、展開手段25等の、利用者によらず共通のファイルやプログラムは、パッケージソフトウェア3に含まれてもよい。逆に、復号化手段33は、パッケージソフトウェア3に含まれる必要はなく、復号鍵解読プログラム2に含まれてもよい。   Note that files and programs that are common regardless of the user, such as the usage status generation unit 21 and the expansion unit 25 illustrated in FIG. 2, may be included in the package software 3. On the contrary, the decryption means 33 does not need to be included in the package software 3 and may be included in the decryption key decryption program 2.

又、複数種類のソフトウェアを利用者端末7内で利用する場合であって、ソフトウェアの種類によらず共通に利用可能な手段は、利用者端末7内に重複してダウンロードされる必要はないので、パッケージソフトウェア3や復号鍵解読プログラム2に含まれる必要はなく、別パッケージ又は別ファイルとして任意に利用者端末7にダウンロードされてもよい。   In addition, when a plurality of types of software are used in the user terminal 7, means that can be used in common regardless of the type of software do not need to be downloaded repeatedly in the user terminal 7. It is not necessary to be included in the package software 3 or the decryption key decryption program 2, and may be arbitrarily downloaded to the user terminal 7 as a separate package or a separate file.

復号化手段33は、暗号化された各種データを鍵等を用いて復号化するのに必要なプログラムである。尚、復号化手段33は、単に復号化を行う他、ハッシュ値の生成等を行ってもよい。又、ハッシュ値の生成等に必要なプログラムが別途用意され、利用者端末7にダウンロードされてもよい。   The decryption means 33 is a program necessary for decrypting various encrypted data using a key or the like. Note that the decrypting means 33 may generate a hash value or the like in addition to simply decrypting. Further, a program necessary for generating a hash value or the like may be separately prepared and downloaded to the user terminal 7.

パッケージ識別情報35は、ソフトウェアの種類及び/又はソフトウェア販売者を識別することが出来る情報であり、本実施の形態に於いては、パッケージソフトウェア3とともにダウンロードされた復号鍵解読手段23を起動するための入力情報として用いられる。   The package identification information 35 is information that can identify the type of software and / or the software seller. In this embodiment, the package identification information 35 is used to activate the decryption key decryption means 23 downloaded together with the package software 3. Used as input information.

次に、復号鍵解読プログラム2の詳細について図4を参照しながら説明する。   Next, details of the decryption key decryption program 2 will be described with reference to FIG.

復号鍵解読手段23は、暗号化ソフトウェア31aを復号化するための復号鍵8を内包する復号鍵格納ファイル29と連携して、復号鍵8を解読する手段である。尚、上述したように、本実施の形態に於いては、復号鍵解読手段23は、パッケージ識別情報35の入力によって起動するようになっている。   The decryption key decrypting means 23 is means for decrypting the decryption key 8 in cooperation with the decryption key storage file 29 containing the decryption key 8 for decrypting the encrypted software 31a. As described above, in the present embodiment, the decryption key decryption means 23 is activated by the input of the package identification information 35.

復号鍵解読手段23と、復号鍵格納ファイル29の構成の一例を図4に示す。尚、図4は、これらのプログラムやファイルがサーバ端末6からネットワークを介して利用者端末7にダウンロードされ、利用者端末7のハードディスク等の補助記憶装置(外部記憶装置)に格納されている状態を示すが、復号鍵格納ファイル29内の復号鍵8は、復号鍵解読手段23によってしか解読、取り出し出来ないようになっている。   An example of the configuration of the decryption key decryption means 23 and the decryption key storage file 29 is shown in FIG. 4 shows a state in which these programs and files are downloaded from the server terminal 6 to the user terminal 7 via the network and stored in an auxiliary storage device (external storage device) such as a hard disk of the user terminal 7. However, the decryption key 8 in the decryption key storage file 29 can be decrypted and extracted only by the decryption key decrypting means 23.

復号鍵解読手段23は、本実施の形態に於いては、照合・更新手段231,232,233を有する。照合・更新手段231,232,233は、復号鍵格納ファイル29内の利用条件と、後述する利用状況データベース21a内の利用状況とを順次照合して、利用状況が利用条件を超えない場合に限り、利用状況データベース21aを更新する。最終的に問題なく全ての照合が完了した場合にのみ、復号鍵格納ファイル29内の復号鍵8が解読され、展開手段25で利用者端末7のメインメモリ71上に展開される。   In this embodiment, the decryption key decryption means 23 has collation / update means 231, 232, and 233. The collation / update means 231, 232, and 233 sequentially collate the usage conditions in the decryption key storage file 29 and the usage status in the usage status database 21 a described later, and only when the usage status does not exceed the usage conditions. The usage status database 21a is updated. Only when all verifications are completed without any problem, the decryption key 8 in the decryption key storage file 29 is decrypted and expanded on the main memory 71 of the user terminal 7 by the expansion means 25.

その後、復号化手段33は、復号鍵解読手段23によって解読された復号鍵8によってのみ、暗号化ソフトウェア31aを復号化し、展開手段25は、復号化されたソフトウェア31をメインメモリ71上に展開する。ソフトウェア31は、メインメモリ71上で利用可能となる。   Thereafter, the decryption means 33 decrypts the encrypted software 31a only with the decryption key 8 decrypted by the decryption key decryption means 23, and the decompression means 25 decompresses the decrypted software 31 on the main memory 71. . The software 31 can be used on the main memory 71.

復号鍵格納ファイル29は、1以上の鍵と、1以上の利用条件と、復号鍵8で構成されている。鍵が照合・更新手段231,232,233に渡されることにより、鍵に対応する利用条件及び利用状況が取り出され、各々照合されるようになっている。尚、ここでの鍵も、復号鍵8同様、乱数生成器で生成されるのが一般的である。   The decryption key storage file 29 is composed of one or more keys, one or more usage conditions, and a decryption key 8. By passing the key to the verification / update means 231, 232, 233, the usage conditions and usage status corresponding to the key are extracted and verified. Note that the key here is also generally generated by a random number generator like the decryption key 8.

復号鍵格納ファイル29は、本実施の形態に於いては、図2に示したように復号鍵解読プログラム2の一部として、パッケージソフトウェア3とともに1回ダウンロードされて以降は、ソフトウェア31の利用やアップデートの都度、ネットワークを介して復号鍵8や利用条件を取得する必要がない。   In the present embodiment, the decryption key storage file 29 is downloaded once together with the package software 3 as part of the decryption key decryption program 2 as shown in FIG. It is not necessary to acquire the decryption key 8 and usage conditions via the network each time an update is performed.

しかも復号鍵8は、上述したように、利用条件と利用状況との照合によってしか取り出されないようになっているため、利用者によらず共通でもよい。従って、復号鍵格納ファイル29は、利用者によらず共通のファイルとなり、利用者によらず共通のインストールプログラム5に含めることが可能となり、ソフトウェア提供者側のインストールプログラム5や、復号鍵格納ファイル29の作成の手間が軽減される。   In addition, as described above, the decryption key 8 is extracted only by collation between the use conditions and the use status, and therefore may be common regardless of the user. Therefore, the decryption key storage file 29 becomes a common file regardless of the user, and can be included in the common installation program 5 regardless of the user. The installation program 5 on the software provider side or the decryption key storage file The trouble of creating 29 is reduced.

図4の説明に戻ると、展開手段25は、既に述べたように、復号化された復号鍵8や、復号鍵8によって復号化されたソフトウェア31や、その他の鍵をメインメモリ71に一時的に格納する手段である。つまり、これらのデータや鍵は単独ではハードディスク等の外部記憶装置には保存することが出来ないようになっているため、予め決められた利用条件を超えてソフトウェア31を利用・アップデートしたり、鍵だけを利用したり、復号化されたソフトウェア31を利用者端末7から他人の端末にコピー、送信等することは不可能である。   Returning to the description of FIG. 4, the expansion means 25 temporarily stores the decrypted decryption key 8, the software 31 decrypted by the decryption key 8, and other keys in the main memory 71. It is a means to store in. That is, since these data and keys cannot be stored alone in an external storage device such as a hard disk, the software 31 can be used / updated beyond the predetermined usage conditions, It is impossible to copy or transmit the decrypted software 31 from the user terminal 7 to another person's terminal.

従って、復号鍵解読手段23による、復号鍵格納ファイル29内の復号鍵8の解読過程を経なければ、復号鍵8は利用者であっても知り得ることが出来ないし、又、復号鍵8だけをハードディスク等に保存することは出来ない。   Therefore, the decryption key 8 cannot be known even by the user unless the decryption process of the decryption key 8 in the decryption key storage file 29 by the decryption key decrypting means 23 is performed. Cannot be saved to a hard disk.

利用状況生成手段21は、利用者自身による不正な更新が不可能な、及び利用者端末7以外の端末による読みとり、更新が出来ないような利用状況データベース21aを、利用者端末7の外部記憶装置にのみ生成する手段である。   The usage status generation means 21 generates an usage status database 21a that cannot be illegally updated by the user himself / herself and cannot be read or updated by a terminal other than the user terminal 7, and is stored in the external storage device of the user terminal 7. It is a means to generate only.

この利用状況データベース21a内には利用者端末7によるソフトウェア31の利用状況が格納される。利用状況は、実際にソフトウェア31を利用した回数、金額、日時や、アップデートした回数、日時等であり、利用者が利用者端末7でソフトウェア31を利用又はアップデートする毎に、対応する利用条件(回数、金額、日時や期限等)を上回らないまで、つまり予め決められた利用限度に達するまで更新される。利用条件を超えてソフトウェア31の利用・アップデートがされそうになった場合には、その場でソフトウェア31の利用・アップデートや、ソフトウェア利用・アップデートの前過程(復号鍵解読過程)を中止させる。   The usage status database 21a stores the usage status of the software 31 by the user terminal 7. The usage status is the number of times the software 31 is actually used, the amount of money, the date and time, the number of times of updating, the date and time, etc. Each time the user uses or updates the software 31 on the user terminal 7, the corresponding usage conditions ( The number of times, the amount of money, the date and time, the deadline, etc.) are not exceeded, that is, until a predetermined usage limit is reached. When it is likely that the software 31 will be used / updated beyond the use conditions, the use / update of the software 31 and the previous process (decryption key decryption process) of the software use / update are stopped on the spot.

尚、当然のことながら、ソフトウェア提供者は、ソフトウェアに応じて、ソフトウェア利用額の計算方法(例えば、1時間利用したら200円課金、1回利用毎に100円課金等)や利用回数の計数方法等を予め決めておく必要がある。   As a matter of course, the software provider can calculate the usage amount of the software (for example, charge 200 yen if used for 1 hour, charge 100 yen for each use) or count the number of times of use depending on the software. Etc. need to be determined in advance.

又、サーバ端末6又は利用者端末7のいずれかには、利用者端末7によるソフトウェア31の利用状況を把握することが出来、かつ、利用状況データベース21aの更新に反映させることが出来るプログラム(例えば計数手段、計時手段、料金計算手段等)が必要となる。   Further, either the server terminal 6 or the user terminal 7 can grasp the usage status of the software 31 by the user terminal 7 and can be reflected in the update of the usage status database 21a (for example, Counting means, timing means, fee calculation means, etc.) are required.

更に、利用条件の1つとして「金額」が設定されているような場合には、サーバ端末6側に課金手段を設け、利用者が予めその金額を何らかの手段(現金、振込、クレジットカード等)で支払い、その支払った事実がソフトウェア提供者側(サーバ端末6)によって確認された後、鍵と利用条件が利用者端末7に発行されることが当然必要である。   In addition, when “amount” is set as one of the usage conditions, a billing means is provided on the server terminal 6 side, and the user determines the amount in advance by some means (cash, transfer, credit card, etc.) It is necessary that the key and the usage conditions are issued to the user terminal 7 after the payment is confirmed by the software provider (server terminal 6).

又、課金方式には、プリペイド方式を採用することも可能で、この場合、利用者は、例えば、5000円分の利用条件をサーバ端末6から購入し、決済完了とともに、5000円分の利用条件とこの利用条件に対応する鍵の発行を受ける。利用者は、利用状況が合計して5000円の利用を超えない限り、又、その他の利用条件を満足している限り、ソフトウェア31を利用することが可能である。   In addition, a prepaid method can be adopted as the charging method. In this case, for example, the user purchases a usage condition for 5000 yen from the server terminal 6, and the usage condition for 5000 yen is obtained upon completion of the settlement. And a key corresponding to this use condition is issued. The user can use the software 31 as long as the usage status does not exceed the usage of 5000 yen in total and as long as other usage conditions are satisfied.

尚、ソフトウェア31の利用を、会員制かつ月額課金制にするのであれば、利用者の所有するクレジットカードの番号や銀行口座の確認がされた後、鍵と利用条件が発行されるのが望ましい。これにより、ソフトウェア31の利用時間に応じた料金や、固定料金の支払いが、毎月自動的に行われるようになる。   If the use of the software 31 is a membership system and a monthly fee system, it is desirable that the key and usage conditions are issued after confirming the credit card number and bank account owned by the user. . As a result, a fee corresponding to the usage time of the software 31 or a fixed fee is automatically paid every month.

このように、決済を行った後にソフトウェア31の利用を開始させる場合や、ソフトウェア31の利用に際し、金銭に関連するような利用条件と利用状況の照合が必要である場合には、当該利用条件とこれに対応する鍵は、利用者によって異なるものとなるため、復号鍵格納ファイル29に含まれるのではなく、別途ソフトウェア提供者から受け取ることが望ましい。   As described above, when the use of the software 31 is started after the payment is made, or when the use condition related to money is required to be checked when the software 31 is used, Since the key corresponding to this differs depending on the user, it is desirable that the key is not included in the decryption key storage file 29 but received separately from the software provider.

尚、ソフトウェア31を無償で試用させるような場合であって、利用条件が利用者によらず共通である場合には、図4に示したように、復号鍵格納ファイル29に全ての利用条件と対応する鍵が含まれてもよい。   If the software 31 is to be used free of charge and the usage conditions are common regardless of the user, all the usage conditions are stored in the decryption key storage file 29 as shown in FIG. A corresponding key may be included.

利用状況データベース21aの読みとり、更新は、復号鍵解読手段23による復号鍵8の解読過程に於いてのみしか行われず、その過程以外に於いて、利用者や悪意者による更新、改ざんはされないこととする。   The usage status database 21a is read and updated only in the decryption process of the decryption key 8 by the decryption key decryption means 23, and is not updated or falsified by the user or the Service-to-Self in any other process. To do.

尚、利用状況データベース21a内の利用状況の無断更新、改ざん、不正利用等の検知は、公知のハッシュ(一方向性)関数技術等を用いれば可能である。例えば、利用状況を常に、直前に更新又は読みとりがされた時点の利用状況のハッシュ値で暗号化する等して、次の更新又は読みとり時に、正しいハッシュ値で暗号化されていたかどうかの整合性をチェックする。   In addition, it is possible to detect the usage status in the usage status database 21a without permission update, falsification, unauthorized use, and the like using a known hash (one-way) function technique or the like. For example, the consistency of whether or not it was encrypted with the correct hash value at the time of the next update or reading, such as by always encrypting the usage status with the hash value of the usage status at the time of the last update or reading Check.

不正な読みとりや更新が実行されていた場合には、次に正規の読みとりや更新をしようとしても、利用状況が本来のハッシュ値で暗号化されていないか、正しい復号鍵8を手に入れることが出来ないため、復号化が出来ない。   If an illegal read or update has been performed, the correct read key 8 is obtained whether the usage status is not encrypted with the original hash value, even if the next normal read or update is attempted. Can not be decrypted.

又、例えば、利用状況の更新を、例えば1ずつ減らす等、決められた数字でしか増減出来ないような仕組みにしておき、本来利用状況を2回から3回に更新すべきところを、0回に改ざんすることは不可能なようにすることも出来る。   Also, for example, the usage status can be updated only by a predetermined number, for example, by reducing it by one, for example, and the usage status should be updated from 2 to 3 times. It can be made impossible to tamper with.

このように、万一、不正な読みとりや改ざん等がされた場合には、その場でソフトウェア31の利用や復号鍵8の解読を中止させるか、レジストリ等に暗号化してバックアップしておいた正しい利用状況を読み込んで、改ざんされた利用状況データベース21aを元の状態に復元させるようにする。   In this way, in the unlikely event that unauthorized reading or falsification is made, the use of the software 31 or the decryption of the decryption key 8 should be stopped on the spot, or the correct data that has been backed up by encryption in the registry or the like The usage status is read and the altered usage status database 21a is restored to the original state.

利用状況データベース21aを利用者端末7にのみ生成可能とするためには、パッケージソフトウェア3が最初にダウンロードされた端末で1回のみ、データベースの生成が可能なプログラムを設けるか、ダウンロード前にサーバ端末6が予め利用者端末7の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)を認識し、その識別情報のハッシュ値等で利用状況データベース21aを暗号化しておき、他の識別情報を有する端末内では、暗号化された利用状況データベース21aを復号化出来ないようにするプログラムを設ける等する。   In order to be able to generate the usage status database 21a only in the user terminal 7, a program capable of generating the database is provided only once at the terminal where the package software 3 is first downloaded, or a server terminal before downloading 6 recognizes the identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the user terminal 7 in advance, encrypts the usage situation database 21a with the hash value of the identification information, etc. In the terminal having the information, a program for preventing the encrypted usage database 21a from being decrypted is provided.

次に、利用状況データベース21aを利用者端末7以外の端末での読みとりを不可とするためには、復号鍵解読手段23が利用条件と利用状況の照合を行う際に、サーバ端末6側に登録された識別情報を有する利用者端末7内の外部記憶装置に利用状況データベース21aが生成されているかどうかを確認し、利用状況データベース21aが見つからなかった場合には、利用者端末7以外の端末でソフトウェア31が利用・アップデートされそうになったとみなし、ソフトウェア31の利用・アップデートを中止させる方法や、利用状況データベース21aを利用者端末7毎に固有の識別情報のハッシュ値等で暗号化しておき、他の端末の識別情報のハッシュ値等では利用状況データベース21aを復号化出来ないようにする方法等が挙げられる。   Next, in order to make the usage database 21a unreadable by terminals other than the user terminal 7, when the decryption key decrypting means 23 checks the usage conditions and the usage status, it is registered on the server terminal 6 side. It is confirmed whether or not the usage status database 21a is generated in the external storage device in the user terminal 7 having the identified identification information. If the usage status database 21a is not found, a terminal other than the user terminal 7 is used. Assuming that the software 31 is about to be used / updated, a method for stopping the use / update of the software 31 or the usage status database 21a is encrypted with a hash value of identification information unique to each user terminal 7, For example, a method for preventing the usage status database 21a from being decrypted by a hash value of identification information of another terminal or the like. That.

又、予め生成される利用条件の中に、利用者端末7の識別情報を1条件として加えておき、利用条件と利用状況の照合をする際に、利用状況として実際利用されている端末の識別情報を調べ、利用条件としての本来利用されるべき端末の識別情報と合致しない場合にはソフトウェア31の利用・アップデートを中止させる方法をとってもよい。尚、この利用条件は、当然のことながら利用者毎に異なるものとなるため、復号鍵格納ファイル29の共通化を図る場合には、復号鍵格納ファイル29には含まれないことが望ましい。   In addition, the identification information of the user terminal 7 is added as one condition in the usage conditions generated in advance, and when the usage conditions and the usage status are collated, the terminal actually used as the usage status is identified. A method may be used in which the information is checked and the use / update of the software 31 is stopped if the information does not match the identification information of the terminal to be originally used as a use condition. It should be noted that this usage condition naturally varies from user to user, and therefore it is desirable that the decryption key storage file 29 is not included when the decryption key storage file 29 is shared.

利用状況データベース21aの生成の仕組みを以上のようにしていることにより、仮に利用条件(アップデート条件を含む)が回数無制限や無償利用等であった場合でも、中身が空又は無意味なデータで構成された利用状況データベース21aを利用者端末7に生成し、利用条件と利用状況の照合の際に、この利用状況データベース21aの存在を確認する過程を経るようにすれば、利用者端末7以外の端末でのソフトウェア31の利用・アップデート、つまり利用者及び悪意者によるソフトウェア31の不正利用・不正アップデートを防止することが出来る。   By configuring the usage status database 21a as described above, even if the usage conditions (including update conditions) are unlimited or free use, the content is empty or meaningless. If the generated usage status database 21a is generated in the user terminal 7 and the process of checking the usage status database 21a is confirmed when the usage conditions and the usage status are collated, the usage status database 21a other than the user terminal 7 is used. The use / update of the software 31 at the terminal, that is, the unauthorized use / update of the software 31 by the user and the Service-to-Self can be prevented.

更に、利用条件(アップデート条件を含む)が回数無制限や試用期間中の無償利用等の決済を必要としないものであっても、0円で決済を行うようにすれば、ソフトウェア提供者側には以下のようなメリットがある。   In addition, even if the usage conditions (including update conditions) do not require an unlimited number of payments or free use during the trial period, if the payment is made at 0 yen, the software provider side There are the following merits.

まず、利用者に決済を行わせる際には、併せてユーザ登録をさせるのが一般的であるが、0円決済と併せてユーザ登録をさせれば、ソフトウェア提供者は利用者の情報を取得することが出来るので、ユーザサポート、違反コピー追跡等に活用することが可能となる。更に、利用者側の承諾を得れば、その他のソフトウェアの販売情報等を利用者に送付、通知することが出来る。   First, when making a user make a payment, it is common to register the user together. However, if the user registration is made together with the 0 yen payment, the software provider obtains the user information. It can be used for user support, violation copy tracking, and the like. Furthermore, with the consent of the user, other software sales information and the like can be sent and notified to the user.

又、特に無償の試用版ソフトウェアを利用者に利用させる場合には、ユーザ登録させずに単にソフトウェアをダウンロード可能としてしまうと、試用版ソフトウェアが濫用され、不正利用の温床となる場合があるため、利用者に0円決済をさせ、併せてユーザ登録もさせるのがよい。   Also, especially when letting users use free trial version software, if the software can only be downloaded without user registration, the trial version software may be abused and become a hotbed for unauthorized use. It is recommended that the user make 0 yen settlement and also register as a user.

無償の試用版ソフトウェアが提供されれば、利用者はこれに注目して集まり自動的にユーザ登録してくれるので、ソフトウェア提供者は、利用者の情報を集中的に、かつ費用や手間をかけずに取得することが出来、こうして取得した利用者の情報を販促等に活用することが可能となる。   If free trial software is provided, the user will pay attention to this and automatically register as a user, so the software provider will concentrate the user's information in a costly and labor-intensive manner. The user information acquired in this way can be used for sales promotion and the like.

ここで、復号鍵解読手段23、復号鍵格納ファイル29、利用状況データベース21aにより、復号鍵格納ファイル29内の復号鍵8が解読されるまでの具体的な過程を、図4を用いて詳細に説明する。   Here, a specific process until the decryption key 8 in the decryption key storage file 29 is decrypted by the decryption key decryption means 23, the decryption key storage file 29, and the usage status database 21a will be described in detail with reference to FIG. explain.

まず鍵0によって、最初の照合・更新手段231を起動させる。最初の鍵0の入手経路、生成方式等は問わないが、本実施の形態に於いては、鍵0がパッケージ識別情報35である。この場合、直接的に復号鍵解読手段23を起動することが出来る。   First, the first collation / update means 231 is activated by the key 0. The acquisition path, generation method, and the like of the first key 0 are not limited, but the key 0 is the package identification information 35 in the present embodiment. In this case, the decryption key decryption means 23 can be activated directly.

照合・更新手段231は、該当する利用条件を検索した上で、更に、その利用条件に対応する利用状況データベース21a内の利用状況を検索し、利用状況データベース21aが正当な場所(利用者端末7内)に存在するかどうかを確認し、利用条件1と利用状況1の照合を行い、利用状況1が利用条件1を超えていなければ、利用状況1を更新し、鍵1を取得する。   The collation / update unit 231 searches the usage conditions in the usage status database 21a corresponding to the usage conditions after searching for the corresponding usage conditions, and the usage status database 21a is a valid place (user terminal 7 The usage condition 1 is checked against the usage condition 1, and if the usage condition 1 does not exceed the usage condition 1, the usage condition 1 is updated and the key 1 is acquired.

鍵1は、次の照合・更新手段232を起動する。照合・更新手段232は、先の手続きと同様に利用条件2と利用状況2の照合と、利用状況2の更新を行い、鍵2を取得する。   The key 1 activates the next verification / update means 232. The collation / update means 232 collates the usage conditions 2 and the usage status 2 and updates the usage status 2 in the same manner as the previous procedure, and acquires the key 2.

鍵2は、次の照合・更新手段233を起動する。照合・更新手段233は、先の手続きと同様に利用条件3と利用状況3の照合と、利用状況2の更新を行い、鍵3を取得する。   The key 2 activates the next verification / update means 233. The collation / update means 233 collates the usage conditions 3 and the usage status 3 and updates the usage status 2 in the same manner as the previous procedure, and acquires the key 3.

最終的に全ての利用条件と利用状況の照合が問題なく完了し、最後の鍵3が取得されれば、復号鍵8が解読され、展開手段25によってメインメモリ71上に展開される。尚、最後の鍵3の存在は任意であり、照合・更新手段233が直接復号鍵8を取得してもよい。   Finally, when all the usage conditions and the usage status are collated without problems and the last key 3 is acquired, the decryption key 8 is decrypted and expanded on the main memory 71 by the expansion means 25. Note that the presence of the last key 3 is arbitrary, and the collation / update means 233 may directly acquire the decryption key 8.

尚、図4のように利用条件の数が少ない場合や、復号鍵8の解読をより困難にするためには、復号鍵格納ファイル29の内部を、同じ利用条件と利用状況の照合を繰り返すような構造としたり、1つの利用条件(例えば、利用限度額5000円)を細分化する(例えば、5000円を各桁に分割する)等が考えられる。   In addition, when the number of usage conditions is small as shown in FIG. 4 or in order to make the decryption key 8 more difficult to decrypt, the same usage conditions and usage status collation are repeated in the decryption key storage file 29. It may be possible to use a simple structure, or to subdivide one use condition (for example, use limit amount 5000 yen) (for example, divide 5000 yen into each digit).

又、復号鍵格納ファイル29内の鍵や利用条件の全部又は一部は、利用者端末7にダウンロードさせず、サーバ端末6又はデータ書き換えが不可能な記録媒体に格納されていてもよい。尚、鍵の場合は、単に鍵だけが格納されているのではなく、鍵の入手に必要な入口(照合・更新手段231,232,233によるチェック結果を受け取り確認する手段)と出口(次に進む照合・更新手段231,232,233の場所を示した手段)も合わせて格納されているものとする。   Further, all or a part of the keys and usage conditions in the decryption key storage file 29 may be stored in the server terminal 6 or a recording medium in which data cannot be rewritten without being downloaded to the user terminal 7. In the case of a key, not only the key is stored, but an entrance (means for receiving and confirming check results by the collation / update means 231, 232, 233) and an exit (next) It is assumed that the means for indicating the location of the proceeding collation / update means 231, 232, 233 are also stored.

例えば、図4に於いて、鍵1を利用者端末7の識別情報とともにサーバ端末6に格納する場合、照合・更新手段231はサーバ端末6にアクセスして、利用条件1と利用状況1の照合結果に問題がなかったことをサーバ端末6に通知した上で、サーバ端末6から鍵1を入手する。当然、サーバ端末6はアクセス元が正当な利用者端末7であることを確認する必要がある。   For example, in FIG. 4, when the key 1 is stored in the server terminal 6 together with the identification information of the user terminal 7, the collation / update means 231 accesses the server terminal 6 to collate the usage condition 1 with the usage situation 1. After notifying the server terminal 6 that there is no problem in the result, the key 1 is obtained from the server terminal 6. Of course, the server terminal 6 needs to confirm that the access source is a valid user terminal 7.

又、例えば、利用条件2をCD−ROMに格納する場合、照合・更新手段232は、必ず正当な利用者端末7からCD−ROMにアクセスすることにして、CD−ROM内の利用条件2を入手後、利用状況2との照合を行う。   Further, for example, when the usage condition 2 is stored in the CD-ROM, the collation / update means 232 always accesses the CD-ROM from the legitimate user terminal 7 to set the usage condition 2 in the CD-ROM. After acquisition, the usage status 2 is checked.

サーバ端末6内のデータの改ざんや、CD−ROM内のデータ書き換えは極めて困難であるため、利用者及び悪意者によるソフトウェア31の不正利用がより困難になり、復号鍵8の更なる保護が図られることになる。   Since alteration of data in the server terminal 6 and rewriting of data in the CD-ROM are extremely difficult, unauthorized use of the software 31 by a user and a Service-to-Self becomes more difficult, and further protection of the decryption key 8 is achieved. Will be.

このように、復号鍵格納ファイル29内の利用条件と鍵の一部を、サーバ端末6やCD−ROM等の記録媒体に格納する場合は、利用者端末7が、ソフトウェア31の利用都度、サーバ端末5や記録媒体にアクセスしなければならないが、それに伴い、処理や通信にかかる時間が多くなり、通信費もかかる。   As described above, when the usage conditions and a part of the key in the decryption key storage file 29 are stored in the recording medium such as the server terminal 6 or the CD-ROM, the user terminal 7 receives the server whenever the software 31 is used. Although it is necessary to access the terminal 5 and the recording medium, the time required for processing and communication increases accordingly, and communication costs also increase.

従って、ソフトウェア31を有償で利用者に購入させるような場合には、サーバ端末6は、利用条件と鍵の一部を、復号鍵格納ファイル29とは別に、利用者の決済完了後発行し、利用者端末7にダウンロードさせることが望ましい。   Therefore, in the case where the user purchases the software 31 for a fee, the server terminal 6 issues a usage condition and a part of the key separately from the decryption key storage file 29 after the settlement of the user, It is desirable to have the user terminal 7 download it.

この場合、利用者端末7内の利用状況生成手段21は、発行された利用条件と鍵を利用状況データベース21aに格納し、更に、当該利用条件に対応する利用状況を生成する。   In this case, the usage status generation means 21 in the user terminal 7 stores the issued usage conditions and key in the usage status database 21a, and further generates a usage status corresponding to the usage conditions.

これにより、通信費や処理の時間がかかることなく、復号鍵格納ファイル29は利用者によらず共通のファイルでよく、しかも、利用者毎に利用条件と対応する鍵を生成して発行するだけで、その利用者の利用者端末7だけが利用条件の範囲内でソフトウェア31を利用することが出来るようになり、利用者及びソフトウェア提供者の双方の利便性が図られる。   As a result, the decryption key storage file 29 may be a common file regardless of the user without incurring communication costs and processing time, and only a key corresponding to the use condition is generated and issued for each user. Thus, only the user terminal 7 of the user can use the software 31 within the range of the usage conditions, and the convenience of both the user and the software provider is achieved.

尚、復号化手段33は、復号鍵解読手段23で全ての解読過程を順番に経て解読された復号鍵8によってのみ、暗号化ソフトウェア31aの復号化を可能とする。つまり、何らかの方法で復号鍵8が知られてしまったとしても、暗号化ソフトウェア31aの復号化は、復号鍵解読手段23によって復号鍵格納ファイル29の中の復号鍵8が解読された利用者端末7内でしか行われない。   Note that the decryption means 33 enables the decryption of the encryption software 31a only with the decryption key 8 decrypted in order through all decryption processes by the decryption key decryption means 23. That is, even if the decryption key 8 is known by some method, the decryption of the encryption software 31a is performed by the user terminal in which the decryption key 8 in the decryption key storage file 29 is decrypted by the decryption key decrypting means 23. It can only be done within 7.

従って、復号鍵格納ファイル29は利用者によらず共通であっても、利用者毎に発行される利用条件と対応する鍵のうち、鍵を毎回異なる乱数にすれば、結果として、復号鍵8の解読ルートを利用者毎に変えることが出来、その利用者しかソフトウェア31を利用することが出来ないようにすることが出来る。   Therefore, even if the decryption key storage file 29 is common to all users, if the key is changed to a random number each time among the keys corresponding to the use conditions issued for each user, the decryption key 8 is obtained as a result. Can be changed for each user, and only the user can use the software 31.

復号鍵8は、以上のような解読過程を経て、復号鍵格納ファイル29から取り出されるが、ここで、復号鍵格納ファイル29のファイル構造の一例を図6に示す。   The decryption key 8 is extracted from the decryption key storage file 29 through the decryption process as described above. An example of the file structure of the decryption key storage file 29 is shown in FIG.

図6に基づいて説明すると、復号鍵格納ファイル29は、ルートディレクトリの下に、復号鍵8の取得経路、取得順序を示す経路ディレクトリと、利用状況データベース21aの生成場所や利用状況の更新方法を示す利用状況ディレクトリとを構成している。   Referring to FIG. 6, the decryption key storage file 29 includes an acquisition path for the decryption key 8, a path directory indicating the acquisition order, a generation location of the usage status database 21a, and a usage status update method under the root directory. The usage status directory shown in FIG.

尚、図6中、点線枠で囲まれた部分は、ソフトウェア31を有償で利用させる場合(決済が必要な場合)や、利用条件が利用者毎に異なる場合には、復号鍵格納ファイル29に含まれず、別途、ソフトウェア提供者から発行され、利用状況データベース21aに格納される部分である。   In FIG. 6, the portion surrounded by the dotted line frame is stored in the decryption key storage file 29 when the software 31 is used for a fee (when payment is required) or when the usage conditions differ for each user. It is a part that is not included and is separately issued from the software provider and stored in the usage database 21a.

経路ディレクトリ下には、照合・更新手段231,232,233を起動するための鍵と対応する利用条件が順番に並び、最終的に取得可能な復号鍵8自体も含まれている。   Under the path directory, keys for activating the collation / update means 231, 232, 233 and usage conditions corresponding to the keys are arranged in order, and the finally obtainable decryption key 8 itself is also included.

又、例えば、一定期間はソフトウェア31を無償で利用させる試用期間を設け、試用期間経過後は、有償に限り継続利用させるような場合には、経路ディレクトリ下には、試用期間中に復号鍵8を取得するための鍵と対応する利用条件の経路と、試用期間経過後に復号鍵8を取得するための鍵と対応する利用条件の経路の2つが並列に並ぶ。   Further, for example, when a trial period for using the software 31 free of charge for a certain period is provided and the software 31 is continuously used only for a fee after the trial period has elapsed, the decryption key 8 is displayed under the path directory during the trial period. The usage condition path corresponding to the key for acquiring the key and the usage condition path corresponding to the key for acquiring the decryption key 8 after the trial period elapses are arranged in parallel.

これにより、利用者は、ソフトウェア31の試用期間が経過しても、新たに通常版ソフトウェアを購入、ダウンロードする必要がなく、購入決済完了後に残りの利用条件と鍵を発行してもらうだけで、ソフトウェア31を継続利用することが出来る。又、後述するように、本発明のアップデートプログラムにより、試用版から通常版にアップデートするだけで、通常版ソフトウェアを即座に利用出来るようになる。   Thereby, even if the trial period of the software 31 elapses, the user does not need to newly purchase and download the normal version software, and only has the remaining usage conditions and key issued after the purchase settlement is completed. Software 31 can be used continuously. As will be described later, the normal version software can be used immediately by simply updating the trial version to the normal version by the update program of the present invention.

又、利用状況ディレクトリ下には、各利用条件に対応する利用状況の原型が含まれており、利用状況生成手段21は、ソフトウェア31の初回利用時、この利用状況の原型を利用状況データベース21aにコピー又は移動する。   Also, under the usage status directory, a usage status prototype corresponding to each usage condition is included, and the usage status generation means 21 stores the usage status prototype in the usage status database 21a when the software 31 is used for the first time. Copy or move.

尚、利用状況の原型は、例えば、回数制限(例えば10回)の利用条件に対応するものである場合には、「0回」というデータで構成されているか、「10回」というデータで構成される。   For example, when the usage state prototype corresponds to a usage condition with a frequency limit (for example, 10 times), it is composed of data “0 times” or data “10 times”. Is done.

利用状況の原型が「10回」というデータで構成されている場合には、利用状況データベース21aは、ソフトウェア31の利用の都度、1回ずつ回数を減らすように更新され、「0回」になった時点でソフトウェア31を利用出来なくなるので、照合・更新手段231,232,233に於ける照合作業は実質的に不要となる。   When the usage status prototype is composed of data of “10 times”, the usage status database 21a is updated to reduce the number of times once each time the software 31 is used, and becomes “0 times”. Since the software 31 can no longer be used at this point, the collation work in the collation / update means 231, 232, 233 is substantially unnecessary.

一方、利用状況の原型が「0回」というデータで構成されている場合には、照合・更新手段231,232,233は、利用回数を増やすという利用状況データベース21a内の更新作業を行い、かつ、利用条件を満足しているかどうかという利用条件との照合作業を行う必要がある。   On the other hand, when the usage pattern is composed of data of “0 times”, the collation / update means 231, 232, 233 perform update work in the usage condition database 21a to increase the number of uses, and Therefore, it is necessary to perform a collation operation with the use condition as to whether or not the use condition is satisfied.

つまり、照合・更新手段231,232,233は、鍵に対応する利用状況データベース21aの場所を利用状況ディレクトリ下から探し出し、利用状況データベース21aの更新を行ない、最終的に次の鍵を取得する。又、場合によっては、対応する利用条件を利用条件ディレクトリ下から探し出して、利用条件と利用状況の照合を行う。そして、復号鍵格納ファイル29内の分岐した各ディレクトリに格納されている鍵と利用条件と利用状況格納場所とを相互に結び付ける役割を担う。   That is, the collation / update means 231, 232, 233 searches the usage status database 21a for the location of the usage status database 21a corresponding to the key, updates the usage status database 21a, and finally acquires the next key. In some cases, the corresponding use condition is searched from the use condition directory, and the use condition and the use status are collated. The key stored in each branched directory in the decryption key storage file 29, the usage conditions, and the usage status storage location are linked to each other.

復号鍵格納ファイル29をこのような木構造としていることにより、復号鍵8は正規の順序を経ないと取得されないこととなる。又、一方のディレクトリ内のデータが他方のディレクトリ内のデータと対応されないと復号鍵8が解読されないため、一部のディレクトリのみをコピーしたり、いずれかのディレクトリの格納場所やパス名が変わってしまうと、復号鍵解読手段23との連携が行われなくなるので不正利用が行われにくい、という効果がある。
Since the decryption key storage file 29 has such a tree structure, the decryption key 8 cannot be acquired unless it passes through a normal order. Also, since the decryption key 8 cannot be decrypted unless the data in one directory corresponds to the data in the other directory, only a part of the directory is copied or the storage location or path name of one of the directories is changed. As a result, the cooperation with the decryption key decryption means 23 is not performed, and thus there is an effect that unauthorized use is difficult to be performed.

次に、本発明のアップデートプログラム1の詳細について、図1を参照しながら説明する。   Next, details of the update program 1 of the present invention will be described with reference to FIG.

アップデートプログラム1は、利用者端末7にパッケージソフトウェア3がダウンロードされた後、ソフトウェア31のアップデートが必要となった場合に、アップデートに用いられる新しいソフトウェア41とともに、利用者端末7にネットワークを介してダウンロードされるプログラムである。尚、アップデートプログラム1と新しいソフトウェア41は、ダウンロード形態に限らず、電子メールに添付されてもよく、又、CD−ROM等の可搬型の記録媒体に格納され、郵送等により利用者に送付された後、利用者端末7にコピーされてもよい。   The update program 1 is downloaded to the user terminal 7 via the network together with the new software 41 used for the update when the software 31 needs to be updated after the package software 3 is downloaded to the user terminal 7. Program. The update program 1 and the new software 41 are not limited to the download form, but may be attached to an e-mail, or stored in a portable recording medium such as a CD-ROM and sent to the user by mail or the like. After that, it may be copied to the user terminal 7.

アップデートプログラム1は、利用者端末7に格納されていた元のソフトウェア31を新しいソフトウェア41に置き換え、利用者端末7で利用出来るように各プログラムやデータの起動順序を制御する等のサポートを行うプログラムであることから、初回ダウンロードされるインストールプログラム5とほぼ同じ役割を担っており、要は、ソフトウェア31がインストールされるかアップデートされるかの差異に過ぎない。   The update program 1 replaces the original software 31 stored in the user terminal 7 with the new software 41, and supports the control of the starting sequence of each program and data so that it can be used on the user terminal 7. Therefore, it plays almost the same role as the installation program 5 downloaded for the first time, and the point is merely the difference between whether the software 31 is installed or updated.

従って、詳細な説明は行わないが、アップデートプログラム1にも、一般的なインストールプログラムが有するのと同様の機能は備えられている。尚、アップデートプログラムは一般にアップデータと呼ばれ、インストールプログラムは一般にインストーラと呼ばれることが多い。   Therefore, although not described in detail, the update program 1 has the same function as that of a general installation program. An update program is generally called an updater, and an installation program is often called an installer.

アップデートプログラム1と共にダウンロードされるパッケージソフトウェア4は、ソフトウェア41と、パッケージ識別情報35を少なくとも含んでいる。尚、ソフトウェア41は暗号鍵(復号鍵8)で暗号化された暗号化ソフトウェア41aであってもよい。又、パッケージソフトウェア4に、復号化手段33が含まれていてもよい。又、パッケージソフトウェア4は、一般的にはアップデートプログラム1の中に含まれており、アップデートプログラム1の実行によってのみ取り出されることが可能であり、パッケージソフトウェア3同様、単独での実行、利用は不可能となっている。   The package software 4 downloaded together with the update program 1 includes at least software 41 and package identification information 35. The software 41 may be encrypted software 41a encrypted with an encryption key (decryption key 8). The package software 4 may include the decryption means 33. The package software 4 is generally included in the update program 1 and can be extracted only by executing the update program 1. Like the package software 3, the package software 4 cannot be executed or used alone. It is possible.

アップデートプログラム1は、チェック手段11と、バックアップ手段13と、再パッケージ手段15とを有している。   The update program 1 includes check means 11, backup means 13, and repackage means 15.

チェック手段11は、アップデートプログラム1がダウンロードされた利用者端末7に、アップデート対象となるソフトウェア31が存在するかどうか、ソフトウェア31をアップデートしてもよいかどうかを確認する手段である。この時、アップデート対象となるソフトウェア31が利用者端末7内のどこに格納されていたかどうかも合わせて確認される。   The checking means 11 is means for confirming whether or not the software 31 to be updated exists in the user terminal 7 to which the update program 1 has been downloaded, and whether or not the software 31 may be updated. At this time, it is also confirmed whether or not the software 31 to be updated is stored in the user terminal 7.

アップデートプログラム1と共にダウンロードされるパッケージソフトウェア4にはパッケージ識別情報35が含まれており、チェック手段11は、このパッケージ識別情報35と同じパッケージ識別情報35を有するソフトウェア31が既に利用者端末7に存在するかどうかを確認する。更に、存在するソフトウェア31が暗号化され、かつ、パッケージ化されているかどうかを確認する。確認は、ハードディスク等の外部記憶装置上の検索を行うか、レジストリを見ることにより行われる。   The package software 4 downloaded together with the update program 1 includes package identification information 35, and the check unit 11 already has software 31 having the same package identification information 35 as the package identification information 35 in the user terminal 7. Check if you want to. Further, it is confirmed whether or not the existing software 31 is encrypted and packaged. The confirmation is performed by searching on an external storage device such as a hard disk or by looking at the registry.

アップデートプログラム1は、暗号化、かつパッケージ化されているソフトウェア31をアップデート対象とするので、検索されたソフトウェア31が暗号化又はパッケージ化されていない場合には、ここでアップデートプログラム1はアップデートを中止する。   Since the update program 1 targets the software 31 that has been encrypted and packaged, if the retrieved software 31 is not encrypted or packaged, the update program 1 stops the update here. To do.

アップデート対象となるソフトウェア31が存在することが確認された場合、チェック手段11は、パッケージ識別情報35によって、利用者端末7に既に格納されている復号鍵解読手段23を起動する。ここで、復号鍵解読手段23が存在しない場合には、そもそもソフトウェア31が正当に入手されたものではないから、アップデートは中止される。   When it is confirmed that the software 31 to be updated exists, the check unit 11 activates the decryption key decryption unit 23 already stored in the user terminal 7 by the package identification information 35. Here, if the decryption key decrypting means 23 does not exist, the update is stopped because the software 31 is not properly obtained in the first place.

復号鍵解読手段23が起動されると、先に図4で説明したのと同様、照合・更新手段231,232,233が利用条件と利用状況データベース21a内の利用状況を照合する。   When the decryption key decryption means 23 is activated, the collation / update means 231, 232, 233 collate the usage conditions and the usage status in the usage status database 21a, as described above with reference to FIG.

尚、ここでは、チェック手段11から、照合・更新手段231に対して、アップデートに関する利用条件(例えば、回数や期限)と利用状況の照合を行うような命令が送られる。アップデートに関する利用条件は、回数制限なし、無期限のような条件であってもよいが、利用状況は現実に即してアップデート回数やアップデート日時が更新され、又、利用状況データベース21aが利用者端末7に存在するかどうかの確認がなされるため、不正なアップデートは防止される。   In this case, the check unit 11 sends a command to the collation / update unit 231 to collate the usage conditions (for example, the number of times and the time limit) related to the update and the usage status. The usage condition regarding the update may be a condition such as unlimited number of times and indefinite period. However, the usage status is updated in accordance with the actual number of updates and the update date and time, and the usage status database 21a is a user terminal. 7 is confirmed whether it is present or not, so that unauthorized updating is prevented.

ここで、アップデートに関する利用条件は、ソフトウェア31の利用に関する利用条件による鍵取得ルートとは別のルートを並行して形成して、復号鍵格納ファイル29に含まれていてもよい。又、アップデートに関する利用条件が当初の復号鍵格納ファイル29に含まれていなければ、別途(例えば、アップデート契約の決済完了後等)、利用条件とこれに対応する鍵が発行されてもよい。   Here, the usage conditions relating to the update may be included in the decryption key storage file 29 by forming a route different from the key acquisition route based on the usage conditions relating to the usage of the software 31 in parallel. Further, if the usage condition regarding the update is not included in the initial decryption key storage file 29, the usage condition and a key corresponding thereto may be issued separately (for example, after completion of the settlement of the update contract).

又、アップデートに関する利用条件が、ソフトウェア31を利用する際の利用条件と同一であってもよい。例えば、ソフトウェア31を1回利用することと、アップデートを1回行うこととは、いずれも、ソフトウェア31の利用に相当するものとみなせばよく、アップデートが1回行われれば、利用状況データベース21aの利用回数に関する利用状況は、1回分更新されることになる。   Further, the usage conditions regarding the update may be the same as the usage conditions when using the software 31. For example, the use of the software 31 once and the update once may be regarded as equivalent to the use of the software 31. If the update is performed once, the usage status database 21a is updated. The usage status regarding the number of times of usage is updated once.

アップデートに関する利用条件が満足されていた場合には、復号鍵格納ファイル29の中の復号鍵8が解読され、メインメモリ71に一時保存される。復号鍵8が解読されたということは、利用者端末7で、ソフトウェア31のアップデートが行われてもよいということである。   If the use conditions regarding the update are satisfied, the decryption key 8 in the decryption key storage file 29 is decrypted and temporarily stored in the main memory 71. The decryption of the decryption key 8 means that the software 31 may be updated on the user terminal 7.

又、チェック手段11は、照合・更新手段231にソフトウェア31のバージョンを確認するよう命令してもよい。例えば、利用状況データベース21aに格納されている現在のソフトウェア31のバージョンが、利用条件としてのバージョンよりも古くなければならないところを、利用条件としてのバージョンの方が古い等、所定の条件を満足しなかった場合には、アップデートが出来ないようにしてもよい。   The check unit 11 may instruct the collation / update unit 231 to confirm the version of the software 31. For example, when the version of the current software 31 stored in the usage status database 21a must be older than the version as the usage conditions, the version as the usage conditions is older, and the predetermined conditions are satisfied. If not, you may not be able to update.

又、アップデートプログラム1とともに、暗号鍵(復号鍵8)で暗号化された暗号化ソフトウェア41aがダウンロードされる場合、チェック手段11は、復号鍵解読手段23によって得られた復号鍵8を用いて、暗号化ソフトウェア41aの復号化を試み、復号化された場合には、ソフトウェア31のアップデートを許可し、復号化されなかった場合には、アップデートを中止するようにしてもよい。   When the encrypted software 41a encrypted with the encryption key (decryption key 8) is downloaded together with the update program 1, the check means 11 uses the decryption key 8 obtained by the decryption key decryption means 23, When the decryption of the encryption software 41a is attempted and the decryption is performed, the update of the software 31 may be permitted, and when the decryption is not performed, the update may be stopped.

ソフトウェア41が暗号化されていれば、盗聴の危険性が減り、又、正しい暗号鍵で暗号化されていたかの確認過程が増えるので、確実なアップデートが行われる。   If the software 41 is encrypted, the risk of eavesdropping is reduced, and the process for confirming whether the software 41 has been encrypted with the correct encryption key is increased, so that a reliable update is performed.

バックアップ手段13は、アップデートを行う前に、元々利用者端末7に格納されていたパッケージソフトウェア3のコピーをとって、バックアップする手段である。パッケージソフトウェア3のコピーは利用者端末7のバックアップフォルダ等に格納される。尚、バックアップ手段13によるバックアップは、チェック手段11から、アップデート対象となるソフトウェア31のアップデートを行ってもよいという命令を受けた後で行われてもよく、順番は問わない。   The backup means 13 is a means for taking a backup of the package software 3 originally stored in the user terminal 7 before performing the update. A copy of the package software 3 is stored in a backup folder or the like of the user terminal 7. The backup by the backup unit 13 may be performed after receiving an instruction from the check unit 11 that the software 31 to be updated may be updated, and the order does not matter.

バックアップを行う目的は、万一アップデート作業に失敗した場合に、パッケージソフトウェア3を利用者端末7内の元の格納場所に戻すためである。   The purpose of performing the backup is to return the package software 3 to the original storage location in the user terminal 7 in the event that the update operation fails.

再パッケージ手段15は、バックアップ手段13が元のパッケージソフトウェア3のバックアップを行った後、アップデートプログラム1と共に送られたパッケージソフトウェア4内のソフトウェア41を復号鍵解読手段23によって取り出された復号鍵8によって暗号化して暗号化ソフトウェア41aとし、復号化手段33やパッケージ識別情報35等の必要なプログラムとともにパッケージして、元のパッケージソフトウェア3の格納場所に於いて元のパッケージソフトウェア3に上書きする手段である。   The repackaging unit 15 uses the decryption key 8 extracted by the decryption key decryption unit 23 to transfer the software 41 in the package software 4 sent together with the update program 1 after the backup unit 13 backs up the original package software 3. The encrypted software 41a is encrypted and packaged together with necessary programs such as the decryption means 33 and the package identification information 35, and overwritten on the original package software 3 at the storage location of the original package software 3. .

再パッケージ手段15によりパッケージ化されたパッケージソフトウェア4aは、元のパッケージソフトウェア3の格納場所に格納されるため、以降、利用者端末7で利用される時は、今まで同様、復号鍵解読手段23によって復号鍵8の解読が行われ、暗号化ソフトウェア41aが復号鍵8で復号化され、ソフトウェア41のメインメモリ71上での利用が可能となる。   Since the package software 4a packaged by the repackaging unit 15 is stored in the storage location of the original package software 3, when the user software 7 is used thereafter, the decryption key decryption unit 23 is used as before. Thus, the decryption key 8 is decrypted, the encrypted software 41a is decrypted with the decryption key 8, and the software 41 can be used on the main memory 71.

尚、新しいソフトウェア41は、アップデートプログラム1の起動によって、取り出されるが、再パッケージ手段15での再パッケージは、一旦ハードディスク上に保存された後に行われるのが一般的である。   The new software 41 is taken out by the activation of the update program 1, but the repackaging by the repackaging means 15 is generally performed after it is once saved on the hard disk.

又、新しいソフトウェア41がハードディスクに保存されず一旦メインメモリ71上に置かれ、メインメモリ71上で暗号化やパッケージ化の処理が行われ、元のパッケージソフトウェア3に上書きされる段階で初めてハードディスク上の格納場所に保存されてもよい。これにより、暗号化されていない状態の新しいソフトウェア41がハードディスクに保存されることがないので、その段階で、コピーされる等の不正利用が行われる心配がなくなる。   Also, new software 41 is not stored on the hard disk, but is temporarily placed on the main memory 71, encryption or packaging processing is performed on the main memory 71, and it is overwritten on the original package software 3 for the first time on the hard disk. It may be stored in the storage location. As a result, the new software 41 that has not been encrypted is not stored in the hard disk, so that there is no fear of unauthorized use such as copying at that stage.

アップデートが正常に完了した後は、バックアップ手段13でバックアップされた元のパッケージソフトウェア3は、不正利用防止のため削除される。この削除機能は、アップデートプログラム1のいずれかの手段によって実現される。   After the update is completed normally, the original package software 3 backed up by the backup means 13 is deleted to prevent unauthorized use. This deletion function is realized by any means of the update program 1.

以上のように、アップデート前に、暗号化ソフトウェア31aの復号鍵8を格納する復号鍵格納ファイル29、復号鍵解読手段23、利用状況データベース21a等のデータが揃ってさえいれば、再パッケージに必要となる復号鍵8は既に利用者端末7内に存在するので、アップデート用に新たに鍵を生成する等の手間が発生することなく、アップデートが必要となった時に利用者端末7に本発明のアップデートプログラム1とアップデート用のソフトウェア41をダウンロードさせるだけで、利用者端末7は、試用版か通常版かによらず、ソフトウェア31のアップデートを行うことが可能となる。   As described above, as long as the decryption key storage file 29 for storing the decryption key 8 of the encryption software 31a, the decryption key decryption means 23, the use state database 21a, and the like are available before the update, repackaging is necessary. The decryption key 8 is already present in the user terminal 7, so that the user terminal 7 is informed of the present invention when an update is required without generating a new key for updating. By simply downloading the update program 1 and the update software 41, the user terminal 7 can update the software 31 regardless of the trial version or the normal version.

又、復号鍵8は、利用者端末7に於いて利用条件を満足した場合にのみ取り出されるため、一度、利用者端末7に復号鍵解読プログラム2とパッケージソフトウェア3が格納されれば、その利用者端末7に於いてしか行えないソフトウェア31のアップデートが可能となり、不正なアップデートが防止されるだけでなく、正当な利用者に対してのみ無償でアップデートサービスを提供することが可能となる。   Since the decryption key 8 is extracted only when the user terminal 7 satisfies the use conditions, once the decryption key decryption program 2 and the package software 3 are stored in the user terminal 7, the decryption key 8 is used. It is possible to update the software 31 that can be performed only at the user terminal 7, not only preventing unauthorized updates, but also providing an update service free of charge only to legitimate users.

又、従来、ソフトウェア提供者側は、複数の販売者に同一種類のソフトウェアを提供している場合、販売者毎にソフトウェアのバージョン管理を行い、販売者毎にアップデートプログラム1やソフトウェア41を作成していた。これにより、個々にプログラミング作業やアップデート動作確認の手間が発生し、アップデートにかかる時間は膨大なものであった。   Conventionally, when the same type of software is provided to a plurality of sellers, the software provider side manages the version of the software for each seller and creates the update program 1 and the software 41 for each seller. It was. As a result, the time and effort required for the update and the update operation check are generated individually, and the time required for the update is enormous.

しかし、本発明のアップデートプログラム1は、販売者によらず、同一のアップデートプログラム1でよく、ソフトウェア41も同一でよいので、アップデートにかかる手間を大幅に削減することが出来る。しかも、試用版ソフトウェアのアップデートを禁止する必要がなくなり、試用版ソフトウェアにアップデートを禁止するためのソースコードを挿入する手間も削減される。又、利用者端末7に試用版ソフトウェアが重複してダウンロードされたり、試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう危険性がなくなる。   However, since the update program 1 of the present invention may be the same update program 1 and the software 41 may be the same regardless of the seller, the labor required for the update can be greatly reduced. In addition, it is not necessary to prohibit the update of the trial version software, and the effort for inserting the source code for prohibiting the update into the trial version software is reduced. Further, there is no risk that the trial version software is downloaded to the user terminal 7 in duplicate or the trial version software is overwritten with the normal version software.

このように本発明のアップデートプログラム及びアップデート方法によれば、ソフトウェア利用者と、ソフトウェア提供者の双方にかかる負担が削減され、ソフトウェアのアップデートの利便性が増す。
As described above, according to the update program and the update method of the present invention, the burden on both the software user and the software provider is reduced, and the convenience of the software update is increased.

次に、復号鍵8の更なる保護や、ソフトウェア31,41や復号鍵格納ファイル29の改ざん防止や、不正アップデート防止のため、復号鍵格納ファイル29を暗号化して利用者端末7にダウンロードさせる場合の一例について、図5を参照しながら説明する。   Next, when the decryption key storage file 29 is encrypted and downloaded to the user terminal 7 in order to further protect the decryption key 8, prevent falsification of the software 31, 41 and the decryption key storage file 29, and prevent unauthorized updates. An example will be described with reference to FIG.

まず、サーバ端末6は、乱数生成器により、乱数で出来た鍵A(第1の鍵)を得る。尚、鍵Aは、元の復号鍵格納ファイル29のバイナリデータのハッシュ値でもよい。これにより、仮に暗号化された復号鍵格納ファイル29aが復号化された後に改ざんされたとしても、改ざんの結果、ハッシュ値が前のハッシュ値と異なるため再暗号化が出来ず、復号鍵格納ファイル29の改ざん検知が可能となる。鍵Aは、復号鍵格納ファイル29等に添付され、利用者端末7にダウンロードされる。   First, the server terminal 6 obtains a key A (first key) made of random numbers using a random number generator. The key A may be a hash value of binary data of the original decryption key storage file 29. As a result, even if the encrypted decryption key storage file 29a is altered after being decrypted, the hash value is different from the previous hash value as a result of the alteration, so re-encryption cannot be performed. 29 tampering detections are possible. The key A is attached to the decryption key storage file 29 or the like and downloaded to the user terminal 7.

次に、サーバ端末6は、変換器により鍵Aを置換表27を用いて鍵B(第2の鍵)に変換し、暗号化処理装置により鍵Bで復号鍵格納ファイル29を暗号化する。ここでは、鍵Bは暗号化、復号化とも共通の鍵とする。   Next, the server terminal 6 converts the key A into a key B (second key) using the replacement table 27 by the converter, and encrypts the decryption key storage file 29 with the key B by the encryption processing device. Here, the key B is a common key for both encryption and decryption.

置換表27は、暗号解読表の一種であり、置換前と置換後の対応を表す表である。置換表27を用いることにより、鍵が直接、利用者や悪意者の目に触れられることがなく、鍵の解読や不正利用がしづらくなる。   The replacement table 27 is a kind of cryptanalysis table, and is a table showing the correspondence before and after replacement. By using the replacement table 27, the key is not directly touched by the user or the Service-to-Self, and it becomes difficult to decrypt or illegally use the key.

置換表27は、どの利用者、どのソフトウェアに対しても同じであってもよいが、同じ置換表を用いると置換表の推測がしやすくなり、結果的に不正利用されてしまうため、本実施の形態に於いては、ソフトウェア販売者毎に置換表27を用意している。これにより、同一のソフトウェアであっても不正利用がされれば、不正に販売されたルートの特定も可能となり、販売者の権利保護もされる。   The replacement table 27 may be the same for any user and any software. However, if the same replacement table is used, it becomes easier to guess the replacement table, resulting in unauthorized use. In this embodiment, a replacement table 27 is prepared for each software seller. Thus, even if the same software is illegally used, it is possible to specify an illegally sold route and protect the rights of the seller.

尚、暗号化された復号鍵格納ファイル29aを利用者端末7にダウンロードさせる場合には、図2に示したように、置換表27もダウンロードさせる必要があるが、置換表27が利用者や悪意者に分かる状態であると、復号鍵格納ファイル29を暗号化した意味がなくなるので、サーバ端末6は、更に暗号化処理装置により置換表27を暗号化する。   When the encrypted decryption key storage file 29a is downloaded to the user terminal 7, as shown in FIG. 2, it is necessary to download the replacement table 27 as well. Since the meaning of encrypting the decryption key storage file 29 disappears if it is known to the user, the server terminal 6 further encrypts the replacement table 27 by the encryption processing device.

置換表27は、パッケージソフトウェア3等、改ざんされると不正利用等の問題となるようなバイナリデータから生成されたハッシュ値等の一方向性関数の値を鍵として暗号化され、暗号化された置換表27aとして利用者端末7にダウンロードされる。これにより、暗号化された復号鍵格納ファイル29aの復号化時に、ソフトウェア31等の改ざんがされていれば、置換表27が復号化されないので、暗号化された復号鍵格納ファイル29aの復号化もされない。   The replacement table 27 is encrypted and encrypted with the value of a one-way function such as a hash value generated from binary data that may cause problems such as unauthorized use if tampered with the package software 3 or the like. The replacement table 27a is downloaded to the user terminal 7. As a result, if the software 31 or the like has been tampered with when the encrypted decryption key storage file 29a is decrypted, the replacement table 27 is not decrypted. Therefore, the decryption of the encrypted decryption key storage file 29a is also performed. Not.

尚、パッケージソフトウェア3のバイナリデータのハッシュ値によって置換表27が暗号化される場合には、パッケージソフトウェア3に含まれるソフトウェア31は、置換表27を暗号化する前後で、ハッシュ値が変わらないようなバイナリデータであることが必要である。つまり、ソフトウェア31の利用前後で内容が書き替わってしまうような設定ファイルや保存データはパッケージに含めてはいけない。   When the replacement table 27 is encrypted with the hash value of the binary data of the package software 3, the software 31 included in the package software 3 does not change the hash value before and after the replacement table 27 is encrypted. It is necessary to be binary data. In other words, setting files and saved data whose contents are rewritten before and after using the software 31 should not be included in the package.

従って、ソフトウェア31が本発明のアップデートプログラム1によりアップデートされた後は、自ずとハッシュ値もアップデート前のハッシュ値と異なるものとなり、アップデート以降、暗号化された置換表27aの復号化が出来なくなるため、再パッケージ手段15は、アップデート後のパッケージソフトウェア4aのハッシュ値をとり、そのハッシュ値で置換表27を暗号化して、暗号化された置換表27bを再格納しておく必要がある。   Therefore, after the software 31 is updated by the update program 1 of the present invention, the hash value is naturally different from the hash value before the update, and the encrypted replacement table 27a cannot be decrypted after the update. The repackaging unit 15 needs to take the hash value of the updated package software 4a, encrypt the replacement table 27 with the hash value, and re-store the encrypted replacement table 27b.

尚、鍵0〜鍵n、復号鍵8、鍵A、置換表27が、乱数生成器により乱数で生成されている場合、これら鍵や置換表自身の改ざんを検知するため、鍵や置換表は、乱数部、情報部、ハッシュ部により構成されている。   In addition, when the key 0 to the key n, the decryption key 8, the key A, and the replacement table 27 are generated with random numbers by the random number generator, the key and the replacement table are detected in order to detect falsification of these keys and the replacement table itself. , A random number part, an information part, and a hash part.

ここで、乱数部には、乱数生成器により生成された乱数が含まれ、本実施の形態では鍵0〜鍵n、復号鍵8、鍵A、置換表27を構成する実質的な鍵に相当する部分である。情報部には、乱数部に対する取り扱い方法等が記述される。例えば、乱数部を本実施の形態に於けるように鍵として使用する場合は、輸出制限の法律によって鍵の長さが制限されることがあるので、鍵の長さ(例えば、40ビット、128ビット等)が情報部に記述される。又、当然のことながら、情報部にはその他の有用な情報を記述することも可能である。   Here, the random number part includes a random number generated by a random number generator, and corresponds to a substantial key constituting the key 0 to the key n, the decryption key 8, the key A, and the substitution table 27 in the present embodiment. It is a part to do. The information part describes a handling method for the random number part. For example, when the random number portion is used as a key as in the present embodiment, the key length may be limited by the export restriction law, so the key length (for example, 40 bits, 128 Bit etc.) is described in the information section. Of course, other useful information can be described in the information section.

ハッシュ部には、乱数部と情報部のハッシュ値が含まれる。これにより、乱数部、情報部のいずれかが改ざんされたとしても、改ざん前と改ざん後のハッシュ値が異なることにより改ざんを検知出来る。又、ハッシュ部そのものが改ざんされたとしても、元のハッシュ値と異なるものになってしまうので、その時点で、改ざんを検知することが出来る。   The hash part includes hash values of the random number part and the information part. Thereby, even if either the random number part or the information part is falsified, the falsification can be detected by the fact that the hash value after falsification is different from that before falsification. Further, even if the hash part itself is tampered with, it becomes different from the original hash value, so that tampering can be detected at that time.

尚、鍵Aを置換表27を用いて鍵Bに置換する過程では、鍵Aの乱数部と情報部とハッシュ部を1つのデータとして全部置換したものが、鍵Bの実質的な鍵(乱数部)となり、これに、情報部とハッシュ部が付加されて、鍵Bが生成される。   In the process of replacing the key A with the key B using the replacement table 27, the random number part, the information part, and the hash part of the key A are all replaced as one data. And the information part and the hash part are added to generate the key B.

又、鍵Aは、上述したように、暗号化された復号鍵格納ファイル29aに添付されてもよいが、復号鍵格納ファイル29のヘッダ部分に、鍵A(乱数部+情報部+ハッシュ部)が含まれていれば、鍵A用のファイルの添付が不要となる。その際、鍵Aは、復号鍵格納ファイル29のバージョン情報やパッケージ識別情報35等の、暗号化されず、かつ、固定のデータのハッシュ値によって暗号化されていれば、盗聴や改ざんを防止することが出来る。
Further, as described above, the key A may be attached to the encrypted decryption key storage file 29a, but the key A (random number part + information part + hash part) is added to the header part of the decryption key storage file 29. Is included, it is not necessary to attach a file for the key A. At that time, if the key A is not encrypted, such as the version information of the decryption key storage file 29 and the package identification information 35, and is encrypted with a hash value of fixed data, wiretapping and tampering are prevented. I can do it.

次に、復号鍵解読プログラム2を用いて、利用者にソフトウェア31を利用させ、更に、その後、本発明のアップデートプログラム1を用いてソフトウェア31のアップデートを行うプロセスの流れの一例を図7から図13までのフローチャート図及び図1から図5までの構成図とを用いて詳細に説明する。   Next, FIG. 7 to FIG. 7 show an example of the flow of a process for allowing the user to use the software 31 using the decryption key decryption program 2 and then updating the software 31 using the update program 1 of the present invention. This will be described in detail with reference to the flowcharts up to 13 and the configuration diagrams from FIGS.

利用者端末7は、ネットワークを介してサーバ端末6にアクセスし、希望のソフトウェア31を選択する。   The user terminal 7 accesses the server terminal 6 via the network and selects the desired software 31.

サーバ端末6は、利用者(利用者端末7)毎の利用条件と、乱数からなる暗号鍵を生成し、ソフトウェア31を暗号鍵(共通鍵方式で生成された鍵であって、復号鍵8と同一)で暗号化する。この暗号化ソフトウェア31aを、復号化手段33とパッケージ識別情報35とともにパッケージ化してパッケージソフトウェア3とし、更に、復号鍵8及び利用条件を復号鍵格納ファイル29に収容し、図2に示した復号鍵解読プログラム2(暗号化された復号鍵格納ファイル29aを含む)、インストールプログラム5とともに、利用者端末7にダウンロードさせる。尚、ソフトウェア31を無償で試用させるような場合や、利用条件が利用者によらず共通である場合には、復号鍵格納ファイル29に全ての利用条件と対応する鍵が含まれてもよい。   The server terminal 6 generates a usage key for each user (user terminal 7) and an encryption key consisting of a random number, and the software 31 is an encryption key (a key generated by a common key method, including a decryption key 8). Same). The encryption software 31a is packaged together with the decryption means 33 and the package identification information 35 to form the package software 3. Further, the decryption key 8 and the use conditions are accommodated in the decryption key storage file 29, and the decryption key shown in FIG. The decryption program 2 (including the encrypted decryption key storage file 29a) and the installation program 5 are downloaded to the user terminal 7. When the software 31 is used free of charge or when the usage conditions are common regardless of the user, the decryption key storage file 29 may include keys corresponding to all the usage conditions.

尚、復号鍵格納ファイル29を生成する前提として、サーバ端末6側に利用者端末7の登録手段、課金手段等は整備されており、ソフトウェア提供者は、利用者から、電子メール、ホームページ、ファックス、電話等の手段により、利用者登録、ソフトウェア申込み、送金通知等を受けた後に、その利用者の利用者端末7に一定条件内でソフトウェア31の利用を許可したものとする。   As a premise for generating the decryption key storage file 29, registration means, billing means, etc. of the user terminal 7 are provided on the server terminal 6 side, and the software provider receives an e-mail, a homepage, a fax from the user. It is assumed that after receiving user registration, software application, remittance notification, etc. by means such as telephone, the user terminal 7 of the user is permitted to use the software 31 within certain conditions.

又、復号鍵格納ファイル29は、先に説明した方法によって暗号化されているものとする。利用状況データベース21aは、利用者端末7のみに生成されるものとする。   Further, it is assumed that the decryption key storage file 29 is encrypted by the method described above. It is assumed that the usage status database 21a is generated only in the user terminal 7.

利用者端末7がこれらのパッケージソフトウェア3等のプログラムをダウンロードすると、利用者端末7内で、インストールプログラム5が自動的に起動されるようにするか、又は、利用者端末7からの要求に応じてインストールプログラム5が起動するようにする(S510)。   When the user terminal 7 downloads the program such as the package software 3, the installation program 5 is automatically started in the user terminal 7 or in response to a request from the user terminal 7. Then, the installation program 5 is activated (S510).

尚、利用者端末7が2回目以降ソフトウェア31を利用する場合には、インストールプログラム5を起動しなくても、パッケージソフトウェア3を起動することによって、以下の流れで、ソフトウェア31を利用出来るようにしてもよい。つまり、本実施例に於いては、ソフトウェア31の利用手順を記述したプログラムがインストールプログラム5に含まれているが、初回インストールプログラム5の起動時に、利用手順を記述したプログラムが利用者端末7のハードディスク等の外部記憶装置に格納され、2回目以降は、パッケージソフトウェア3の起動と連動するようになっていてもよい。   When the user terminal 7 uses the software 31 for the second time and later, the software 31 can be used in the following flow by starting the package software 3 without starting the installation program 5. May be. That is, in this embodiment, a program describing the usage procedure of the software 31 is included in the installation program 5, but when the initial installation program 5 is activated, the program describing the usage procedure is stored in the user terminal 7. It is stored in an external storage device such as a hard disk, and may be linked to the activation of the package software 3 after the second time.

利用者端末7で、このソフトウェア31が初めて利用されるものである場合(S520)、利用状況生成手段21は、インストールプログラム5が起動されたこの利用者端末7のハードディスク等の外部記憶装置に、利用状況データベース21aを生成する(S530)。既に、このソフトウェア31に対応する利用状況データベース21aが生成されている場合には、利用状況データベース21aの生成を行わない。   When the user terminal 7 uses the software 31 for the first time (S520), the usage status generation means 21 stores the software program 31 in an external storage device such as a hard disk of the user terminal 7 in which the installation program 5 is started. The usage status database 21a is generated (S530). If the usage status database 21a corresponding to the software 31 has already been generated, the usage status database 21a is not generated.

利用状況データベース21aは、ダウンロードされた復号鍵格納ファイル29内の利用条件(利用状況の一部又は全部が復号鍵格納ファイル29に含まれていない場合は、利用者のソフトウェア購入決済完了後等に発行された利用条件)に基づいて生成される。   The usage status database 21a stores the usage conditions in the downloaded decryption key storage file 29 (if a part or all of the usage status is not included in the decryption key storage file 29, etc. after completion of the user's software purchase settlement). It is generated based on issued usage conditions.

図4に於いては、利用条件の数が3個であるので、各利用条件に対応する利用状況が3個、利用状況データベース21a内に生成される。又、利用状況は、利用毎に回数や金額を増やすことによって更新されてもよいし、最初に利用条件の限度が利用状況に反映され、以降は利用毎に回数や金額を減らすことによって更新されてもよい。   In FIG. 4, since the number of usage conditions is three, three usage situations corresponding to each usage condition are generated in the usage situation database 21a. In addition, the usage status may be updated by increasing the number of times and the amount for each use, or the limit of usage conditions is first reflected in the usage status, and thereafter updated by reducing the number of times and the amount for each usage. May be.

尚、利用状況データベース21aは、利用者端末7の識別情報に基づいて暗号化されたり、予めサーバ端末6が認識した識別情報を有する利用者端末7にのみ利用状況データベース21aの生成を許可する等の方法により、他の端末での生成、コピー、読みとり、更新が不可能なようにされる。   The usage status database 21a is encrypted based on the identification information of the user terminal 7, or only the user terminal 7 having the identification information recognized in advance by the server terminal 6 is permitted to generate the usage status database 21a. By this method, generation, copying, reading and updating in other terminals are made impossible.

インストールプログラム5は、ソフトウェア31を最終的に利用出来るようにするための過程の進行役を担う。まずは、パッケージソフトウェア3を実行する(S540)。但し、この時点では、まだソフトウェア31は暗号化されており、単に実行してもソフトウェア31を利用することは不可能であるため、パッケージに含まれていた復号化手段33と、展開手段25が起動することになる(S550)。   The installation program 5 is responsible for a process for making the software 31 finally available. First, the package software 3 is executed (S540). However, since the software 31 is still encrypted at this point, and it is impossible to use the software 31 even if it is simply executed, the decryption means 33 and the decompression means 25 included in the package are It will be activated (S550).

復号化手段33が起動すれば、暗号化されたデータを復号化するための鍵さえ揃えば、そのデータを復号化することが出来る。又、展開手段25が起動すれば、各種の鍵やソフトウェア31等の、利用者端末7のハードディスクにも保存されてばいけないデータをメインメモリ71上に展開させることが出来る。   If the decryption means 33 is activated, the data can be decrypted as long as the keys for decrypting the encrypted data are prepared. When the expansion means 25 is activated, data that must be stored in the hard disk of the user terminal 7 such as various keys and software 31 can be expanded on the main memory 71.

次に、パッケージ識別情報35をキーボード等により入力して、復号鍵解読手段23を起動させる(S560、S570)。尚、パッケージ識別情報35の入力により復号鍵解読手段23を起動させることは任意でよく、又、入力はキーボード等による入力ではなく、パッケージソフトウェア3内からパッケージ識別情報35が取り出され、自動的に入力されてもよい。又、復号鍵解読手段23以外の手段を起動、展開させる時にもこのような識別情報の入力を促すようにしてもよい。この識別情報の暗号化の有無も任意である。   Next, the package identification information 35 is input using a keyboard or the like, and the decryption key decrypting means 23 is activated (S560, S570). It is optional to activate the decryption key decryption means 23 by inputting the package identification information 35, and the input is not input by a keyboard or the like, but the package identification information 35 is taken out from the package software 3 and automatically It may be entered. Further, the input of such identification information may be prompted when a means other than the decryption key decryption means 23 is activated and expanded. Whether or not the identification information is encrypted is also arbitrary.

尚、ここまでのプロセスの流れは、この順番による必要はない。   The process flow up to this point does not need to be in this order.

本実施例に於いては、パッケージ識別情報35が図4に於ける鍵0に相当する。つまり、復号鍵解読手段23が起動し、更に、最初の照合・更新手段231が起動する。照合・更新手段231は、対応する利用条件1を取り出す。   In this embodiment, the package identification information 35 corresponds to the key 0 in FIG. That is, the decryption key decryption means 23 is activated, and further, the first collation / update means 231 is activated. The collation / update means 231 takes out the corresponding usage condition 1.

ここで、復号鍵格納ファイル29が暗号化されている場合には(S580)、利用条件1の取り出しが出来ないため、復号鍵解読手段23は、暗号化された置換表27aを取り出す(S610)。   Here, when the decryption key storage file 29 is encrypted (S580), since the usage condition 1 cannot be extracted, the decryption key decryption means 23 extracts the encrypted replacement table 27a (S610). .

暗号化された置換表27aを復号化するため、パッケージソフトウェア3のバイナリデータのハッシュ値が生成される(S615)。ハッシュ値の生成は、復号化手段33が行ってもよいし、利用者端末7内のその他のプログラムが行ってもよい。   In order to decrypt the encrypted replacement table 27a, a hash value of binary data of the package software 3 is generated (S615). The generation of the hash value may be performed by the decryption unit 33 or may be performed by another program in the user terminal 7.

復号化手段33は、生成されたハッシュ値を復号化のための鍵として、暗号化された置換表27aを復号化する(S620)。ここで、置換表27の復号化がされなかった場合には、何者かによりパッケージソフトウェア3の内部の改ざんがされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S625)。   The decryption means 33 decrypts the encrypted replacement table 27a using the generated hash value as a key for decryption (S620). Here, if the replacement table 27 is not decrypted, it means that someone has tampered with the inside of the package software 3, so that the tampering is detected and it is not possible to proceed to the subsequent steps. (S625).

復号化された置換表27は、展開手段25により、一時メインメモリ71上に展開される(S630)。   The decrypted replacement table 27 is expanded on the temporary main memory 71 by the expansion means 25 (S630).

次に、復号鍵解読手段23は、復号鍵格納ファイル29に添付されているか、又は復号鍵格納ファイル29のヘッダ部分に記述されている鍵Aを取り出す(S635)。尚、鍵Aを復号鍵格納ファイル29自身のハッシュ値とすれば、復号鍵格納ファイル29の改ざん検知が可能である。又、復号鍵格納ファイル29のヘッダ部分に鍵Aのハッシュ値も記述されていれば、鍵Aの改ざん検知も可能である。   Next, the decryption key decryption means 23 takes out the key A attached to the decryption key storage file 29 or described in the header part of the decryption key storage file 29 (S635). If the key A is the hash value of the decryption key storage file 29 itself, tampering of the decryption key storage file 29 can be detected. Further, if the hash value of the key A is also described in the header part of the decryption key storage file 29, the alteration of the key A can be detected.

復号鍵解読手段23(又は復号化手段33)は、先の復号化された置換表27を用いて、鍵Aを鍵Bに置換する(S640)。ここで、鍵Aから鍵Bへの置換がされなかった場合には、何者かにより復号鍵格納ファイル29及び/又は置換表27が改ざんされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S645)。   The decryption key decryption means 23 (or the decryption means 33) replaces the key A with the key B using the decrypted replacement table 27 (S640). Here, when the replacement from the key A to the key B is not performed, the decryption key storage file 29 and / or the replacement table 27 has been falsified by someone, and the falsification is detected. Do not proceed to the step (S645).

置換された鍵Bは、展開手段25により、一時メインメモリ71上に展開される(S650)。   The replaced key B is expanded on the temporary main memory 71 by the expansion means 25 (S650).

復号化手段33は、置換された鍵Bを用いて、暗号化された復号鍵格納ファイル29aを復号化する(S655)。ここで、暗号化された復号鍵格納ファイル29aの復号化がされなかった場合には、何者かにより鍵Bの改ざんがされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S660)。   The decryption means 33 decrypts the encrypted decryption key storage file 29a using the replaced key B (S655). Here, if the encrypted decryption key storage file 29a has not been decrypted, it means that the key B has been tampered with by someone, and the tampering is detected and the following steps are taken. (S660).

復号鍵格納ファイル29が復号化されたので、照合・更新手段231は、利用条件1を取り出すことが出来る(S710)。   Since the decryption key storage file 29 has been decrypted, the collation / update unit 231 can take out the use condition 1 (S710).

尚、利用条件や鍵は、上述したように、全部又は一部が、サーバ端末6又はCD−ROM等のデータの書き換えが不可能な記録媒体に格納されている場合もあるし、ソフトウェア31の購入決済完了後に復号鍵格納ファイル29とは別のファイルとして利用者に発行される場合もある。   As described above, all or a part of the usage conditions and keys may be stored in a recording medium such as the server terminal 6 or CD-ROM where data cannot be rewritten. In some cases, it is issued to the user as a separate file from the decryption key storage file 29 after the purchase settlement is completed.

特に、ソフトウェア提供者が有償でソフトウェア31を提供するような場合には、鍵や利用条件の全部又は一部がサーバ端末6等に格納されていたり、復号鍵格納ファイル29とは別のファイルとされている方がソフトウェア31の不正利用等の防止により効果的である。但し、ソフトウェア31を試用させるような場合には、復号鍵格納ファイル29に全ての利用条件と鍵が格納されているほうが、利用者にとっても、ソフトウェア提供者にとっても都合がよい。   In particular, when the software provider provides the software 31 for a fee, all or part of the keys and usage conditions are stored in the server terminal 6 or the like, or a file different from the decryption key storage file 29 This is more effective in preventing unauthorized use of the software 31. However, when the software 31 is to be used for trial, it is convenient for the user and the software provider that all the usage conditions and keys are stored in the decryption key storage file 29.

このように、利用者毎に異なる利用条件については利用者毎に用意し、共通の利用条件については復号鍵格納ファイル29に格納することが出来るので、ソフトウェア提供者側の復号鍵格納ファイル29の作成の手間が軽減される。但し、サーバ端末6側に鍵や利用条件が格納されている場合は、利用者端末7がソフトウェア31の利用都度、サーバ端末6にアクセスしなければならず、その分ネットワーク接続の負担が高くなるため、注意が必要である。   In this way, different usage conditions for each user can be prepared for each user, and the common usage conditions can be stored in the decryption key storage file 29. Therefore, the decryption key storage file 29 on the software provider side Ease of creation is reduced. However, if a key or usage conditions are stored on the server terminal 6 side, the user terminal 7 must access the server terminal 6 each time the software 31 is used, and the network connection burden increases accordingly. Therefore, caution is necessary.

照合・更新手段231は、取り出された利用条件1に対応する利用状況1が利用者端末7内の利用状況データベース21aに存在するかどうかを確認する(S715)。利用状況データベース21aそのもの、又は利用状況1が利用者端末7内に存在しない場合には、利用者端末7以外の端末で、ソフトウェア31が利用されそうになったことを表すので、以降のステップには進めないようにする(S720)。   The collation / update unit 231 checks whether or not the usage status 1 corresponding to the extracted usage condition 1 exists in the usage status database 21a in the user terminal 7 (S715). If the usage status database 21a itself or the usage status 1 does not exist in the user terminal 7, it indicates that the software 31 is likely to be used on a terminal other than the user terminal 7, so that the following steps are performed. Is not allowed to proceed (S720).

又、照合・更新手段231で、復号鍵格納ファイル29や利用条件や利用状況のハッシュ値をとることによって、これらに対する改ざんを検知することも可能である。   Further, the collation / update means 231 can detect falsification of the decryption key storage file 29, usage conditions, and usage status hash values.

照合・更新手段231は、利用状況1が利用者端末7内に存在した場合、その利用状況1が利用条件1を満足しているか、つまり、利用条件1の範囲内の利用かどうかを確認する(S725)。   When the usage status 1 exists in the user terminal 7, the collation / update unit 231 checks whether the usage status 1 satisfies the usage condition 1, that is, whether the usage status 1 is within the range of the usage condition 1. (S725).

例えば、利用条件1は、「利用限度額が5000円」であり、利用者端末7内に格納された利用状況1が、「累積利用額が3000円」であれば、利用条件1を満足したものとする。一方、累積利用額が5000円以上又は、5000円未満であってもソフトウェア31の1回の利用につきかかる金額が残されていない場合には、利用条件1を満足しなかったものとして、以降のステップに進めないようにする(S730)。   For example, if the usage condition 1 is “use limit amount is 5000 yen” and the use status 1 stored in the user terminal 7 is “cumulative use amount is 3000 yen”, the use condition 1 is satisfied. Shall. On the other hand, even if the accumulated usage amount is 5000 yen or more or less than 5000 yen, if there is no remaining amount per use of the software 31, it is assumed that the usage condition 1 is not satisfied and the following Do not proceed to step (S730).

利用条件1と利用状況1の照合が終わると、利用状況1の更新を行うとともに、次の照合・更新手段232に進むために必要な鍵1が取り出される(S735)。   When the usage condition 1 and the usage status 1 are verified, the usage status 1 is updated, and the key 1 necessary for proceeding to the next verification / update means 232 is taken out (S735).

利用状況の更新は、例えば、対応する利用条件が「回数」に関するものである場合には、累積利用回数に1を加算するか、残り利用回数に1を減算する等した状態に自動的に更新される。利用条件が「金額」に関するものである場合には、ソフトウェア31の1回利用毎に課金されるものであれば、1回の利用料金を減算する等して、利用状況データベース21aを更新するが、実際にソフトウェア31を利用した時間に応じて課金されるような場合には、ソフトウェア31の利用終了後に、利用状況データベース21aを更新するようにしてもよい。   For example, when the corresponding usage condition is related to “number of times”, the usage status is updated automatically by adding 1 to the cumulative usage count or subtracting 1 from the remaining usage count. Is done. If the usage condition is related to “amount”, the usage status database 21a is updated by subtracting the usage fee for one time if the usage fee is charged for each use of the software 31. In the case where the user is charged according to the time when the software 31 is actually used, the usage status database 21a may be updated after the use of the software 31 is completed.

又、利用条件が、無期限、回数制限なしといった永久利用権のようなものであった場合でも、利用者が他人にソフトウェア31を渡して不正利用させるといったことを防止するため、中身が空又は無意味なデータで構成された利用状況データベース21aを利用者端末7に生成し、利用条件と利用状況の照合時に必ず、利用状況データベース21aの存在を確認する過程を経るとよい。これは特に、試用版ソフトウェアのアップデートを無償で行う場合に有効である。   In addition, even if the usage conditions are like a permanent usage right such as indefinite or unlimited number of times, the contents are empty or in order to prevent the user from passing the software 31 to others for illegal use. A process of generating the usage situation database 21a composed of meaningless data on the user terminal 7 and confirming the existence of the usage situation database 21a is always performed when the usage conditions and the usage situation are collated. This is particularly effective when the trial software is updated free of charge.

ここで、取り出された鍵が何番目の鍵かどうかを確認する(S740)。例えば、利用条件の合計数が3であれば、鍵3が取り出さた後に、ソフトウェア31の復号鍵8が取り出され、展開手段25により、一時メインメモリ71上に展開される(S750)。尚、図4に於いて、鍵1や鍵2が取り出された時点では、まだ全ての利用条件と利用状況の照合がされていないため、次の利用条件と利用状況の照合に進む(S745)。   Here, it is confirmed what number the extracted key is (S740). For example, if the total number of usage conditions is 3, after the key 3 is extracted, the decryption key 8 of the software 31 is extracted and expanded on the temporary main memory 71 by the expansion means 25 (S750). In FIG. 4, when the key 1 and the key 2 are taken out, all usage conditions have not been checked against the usage status, and the process proceeds to the next usage status and usage status verification (S745). .

復号鍵解読手段23により最終的に解読され、かつメインメモリ71上に展開された復号鍵8を用いて、復号化手段33は、暗号化ソフトウェア31aを復号化する(S755)。   Using the decryption key 8 finally decrypted by the decryption key decryption means 23 and developed on the main memory 71, the decryption means 33 decrypts the encrypted software 31a (S755).

復号化されたソフトウェア31は、利用者端末7のハードディスクではなくメインメモリ71上に展開され、メインメモリ71上でソフトウェア31の利用が可能となる(S760)。尚、利用者端末7のハードディスクにもソフトウェア31が格納されないのは、一旦、ハードディスクに格納されてしまうと、利用条件を無視したソフトウェア31の利用が可能となってしまうのを防止するためである。   The decrypted software 31 is expanded not on the hard disk of the user terminal 7 but on the main memory 71, and the software 31 can be used on the main memory 71 (S760). The reason why the software 31 is not stored in the hard disk of the user terminal 7 is to prevent the use of the software 31 ignoring the use conditions once stored in the hard disk. .

但し、ソフトウェア31の利用都度、保存されるべきデータ(実行プログラムなしに単独では利用不可能な設定データや、文書データ等)については、復号化されたソフトウェア31がなければそもそも開くことが出来ないので、ハードディスク等の外部記憶装置に保存してもよい。   However, every time the software 31 is used, data to be saved (setting data that cannot be used alone without an execution program, document data, etc.) cannot be opened without the decrypted software 31 in the first place. Therefore, it may be stored in an external storage device such as a hard disk.

メインメモリ71上でのソフトウェア31の利用が終了すれば、ソフトウェア31は、メインメモリ71からも削除されるが、当然、ハードディスク上にはパッケージソフトウェア3が残されており、2回目以降ソフトウェア31を利用する場合も、これまでと同様の復号鍵解読過程を経ることによって、利用条件の範囲内でソフトウェア31の利用が可能となる。
When the use of the software 31 on the main memory 71 is completed, the software 31 is also deleted from the main memory 71. Naturally, the package software 3 remains on the hard disk, and the software 31 is removed from the second time onward. Also in the case of use, the software 31 can be used within the range of use conditions through the same decryption key decryption process as before.

次に、利用者端末7で利用されているソフトウェア31のアップデートを行う手順を説明する。ソフトウェア提供者側のサーバ端末6は、アップデートプログラム1と、パッケージソフトウェア4を用意し、ネットワークを介して利用者端末7にダウンロードさせる。尚、本実施例で、パッケージソフトウェア4には、パッケージ識別情報35と、元のソフトウェア31が暗号化されたのと同じ暗号鍵で暗号化された暗号化ソフトウェア41aがパッケージされているものとする。   Next, a procedure for updating the software 31 used in the user terminal 7 will be described. The server terminal 6 on the software provider side prepares the update program 1 and the package software 4 and downloads them to the user terminal 7 via the network. In this embodiment, it is assumed that the package software 4 is packaged with package identification information 35 and encrypted software 41a encrypted with the same encryption key as the original software 31 is encrypted. .

利用者端末7は、ダウンロードしたアップデートプログラム1を起動する(S810)。尚、ダウンロードされたらアップデートプログラム1が自動的に起動するようになっていてもよい。   The user terminal 7 activates the downloaded update program 1 (S810). Note that the update program 1 may be automatically activated when downloaded.

アップデートプログラム1が起動すると、チェック手段11が、アップデートプログラム1とともにダウンロードされたパッケージソフトウェア4からパッケージ識別情報35を取り出し(S820)、同一パッケージ識別情報35を有するパッケージソフトウェア3が利用者端末7内に存在するかどうかを確認する(S830)。   When the update program 1 is activated, the check unit 11 extracts the package identification information 35 from the package software 4 downloaded together with the update program 1 (S820), and the package software 3 having the same package identification information 35 is stored in the user terminal 7. It is confirmed whether it exists (S830).

当該パッケージソフトウェア3が存在しない場合には、アップデート対象が存在しないことになるから、アップデートプログラム1はアップデートを中止する(S850)。   If the package software 3 does not exist, there is no update target, so the update program 1 stops updating (S850).

当該パッケージソフトウェア3が存在した場合、チェック手段11は更に、そのパッケージソフトウェア3のバージョン情報を確認して、新しいソフトウェア41のバージョンよりも古いかどうかを確認し、更に、利用者端末7内に、復号鍵解読手段23及び復号鍵格納ファイル29が存在するかどうかを確認する(S840)。   When the package software 3 exists, the check unit 11 further confirms the version information of the package software 3 to confirm whether it is older than the version of the new software 41, and further, in the user terminal 7, It is confirmed whether or not the decryption key decryption means 23 and the decryption key storage file 29 exist (S840).

復号鍵解読手段23や復号鍵格納ファイル29がなければ、そもそも利用者端末7内のパッケージソフトウェア3がアップデート対象かどうかの判断が出来ないからである。   This is because without the decryption key decryption means 23 and the decryption key storage file 29, it is impossible to determine whether the package software 3 in the user terminal 7 is an update target in the first place.

復号鍵解読手段23及び復号鍵格納ファイル29が存在した場合には、ソフトウェア31を利用する時同様、S570からS750までの手順により、復号鍵格納ファイル29から復号鍵8を取り出す。   If the decryption key decryption means 23 and the decryption key storage file 29 exist, the decryption key 8 is extracted from the decryption key storage file 29 by the procedure from S570 to S750, as in the case of using the software 31.

尚、復号鍵8を取り出す過程で、チェック手段11は、復号鍵解読手段23に対して、アップデートに関する利用条件と利用状況の照合を行うよう命令し、復号鍵解読手段23は、利用者端末7がアップデートに関する利用条件を満足していれば、利用状況データベース21a内の利用状況を更新して復号鍵8を解読する。   In the process of taking out the decryption key 8, the check means 11 instructs the decryption key decryption means 23 to collate the use condition and the use status regarding the update, and the decryption key decryption means 23 receives the user terminal 7. If the usage conditions regarding the update are satisfied, the usage status in the usage status database 21a is updated and the decryption key 8 is decrypted.

アップデートに関する利用条件は、ソフトウェア31の利用に関する利用条件と同一であってもよいし、別の利用条件であってもよい。別の利用条件の場合には、アップデート契約の決済完了後等に、利用条件と対応する鍵が発行されてもよい。又、無期限、無償のような空の条件であってもよく、利用状況データベース21aの存在が確認されることで、正当な利用者端末7でアップデートを行うことが出来るから、不正なアップデートを防止することが可能である。   The usage conditions regarding the update may be the same as the usage conditions regarding the usage of the software 31 or may be different usage conditions. In the case of another use condition, a key corresponding to the use condition may be issued after the completion of the update contract settlement. In addition, it may be an empty condition such as indefinite or free of charge, and it is possible to perform an update at a valid user terminal 7 by confirming the existence of the usage status database 21a. It is possible to prevent.

又、先に行ったソフトウェア31のバージョン確認を、利用条件と利用状況の照合の一過程として行ってもよい。   Further, the version check of the software 31 performed earlier may be performed as a process of checking the usage conditions and the usage status.

この復号鍵解読過程で、復号鍵8を解読することが出来なかった場合には、不正にソフトウェア41やアップデートプログラム1がダウンロードされたか、改ざんが発生した可能性があるため、アップデートを中止する。   If the decryption key 8 cannot be decrypted in this decryption key decryption process, the software 41 and the update program 1 may have been downloaded illegally, or tampering may have occurred, so the update is stopped.

バックアップ手段13は、チェック手段11からソフトウェア31のアップデートを許可する旨の通知を受けて、利用者端末7に元々格納されていたパッケージソフトウェア3や、置換表27等のデータのバックアップをとって、バックアップフォルダ等に格納する(S860)。   The backup unit 13 receives a notification from the check unit 11 that the update of the software 31 is permitted, and backs up the package software 3 originally stored in the user terminal 7 and the data of the replacement table 27 and the like. Store in a backup folder or the like (S860).

尚、本実施例では、先にアップデートを許可する旨の通知を受けてからバックアップが行われたが、バックアップが先に行われ、バックアップされたパッケージソフトウェア3や置換表27に基づいて、復号鍵8の解読が行われてもよく、その順番は問わない。   In this embodiment, the backup is performed after receiving the notification that the update is permitted first. However, based on the package software 3 and the replacement table 27 that were backed up first, Decoding of 8 may be performed, and the order is not limited.

復号化手段33(又はチェック手段11)は、アップデートプログラム1とともにダウンロードされた新しいパッケージソフトウェア4内の暗号化ソフトウェア41aを、解読された復号鍵8で復号化することを試みる(S870、S880)。   The decryption means 33 (or check means 11) tries to decrypt the encrypted software 41a in the new package software 4 downloaded together with the update program 1 with the decrypted decryption key 8 (S870, S880).

ここで、復号化に成功した場合には、新しいパッケージソフトウェア4が正当なアップデート用のソフトウェア41であることが分かり、復号化に失敗した場合は、新しいパッケージソフトウェア4が不正に入手されたソフトウェアであることが分かるので、アップデートは中止される(S890)。   Here, if the decryption is successful, it can be seen that the new package software 4 is a valid update software 41, and if the decryption fails, the new package software 4 is an illegally obtained software. Since it is understood that there is, the update is canceled (S890).

暗号化ソフトウェア41の復号化に成功した場合、再パッケージ手段15は、復号化されたソフトウェア41を再度、復号鍵8で暗号化して暗号化ソフトウェア41aとし、元のパッケージ識別情報35や、元のパッケージソフトウェア3に含まれていたプログラムやデータ(復号化手段33等)を合わせて、パッケージ化し、パッケージソフトウェア4aを生成する(S900)。生成されたパッケージソフトウェア4aは、元のパッケージソフトウェア3に上書きされる。つまり、新しいパッケージソフトウェア4aは元のパッケージソフトウェア3の格納場所に格納される。   If the decryption of the encrypted software 41 is successful, the repackaging unit 15 encrypts the decrypted software 41 again with the decryption key 8 to obtain the encrypted software 41a, and the original package identification information 35 and the original software The program and data (decryption means 33 etc.) included in the package software 3 are combined and packaged to generate the package software 4a (S900). The generated package software 4a is overwritten on the original package software 3. That is, the new package software 4a is stored in the storage location of the original package software 3.

更に、本実施例では、復号鍵8を解読する際に、暗号化された置換表27aの復号化過程を経ており、置換表27は、パッケージソフトウェア3のバイナリデータのハッシュ値で暗号化されているため、再パッケージ手段15は、新しいパッケージソフトウェア4aのバイナリデータのハッシュ値を計算し、置換表27をこのハッシュ値で暗号化して暗号化された置換表27bとして元の格納場所に再格納する(S920)。   Furthermore, in this embodiment, when the decryption key 8 is decrypted, the decryption process of the encrypted replacement table 27a is performed, and the replacement table 27 is encrypted with the hash value of the binary data of the package software 3. Therefore, the repackaging unit 15 calculates the hash value of the binary data of the new package software 4a, encrypts the replacement table 27 with this hash value, and re-stores it in the original storage location as the encrypted replacement table 27b. (S920).

これにより、アップデート前か後かにかかわらず、利用条件を満足する間は、利用者端末7で同一種類のソフトウェアを利用することが可能となる。   As a result, it is possible to use the same type of software on the user terminal 7 as long as the use conditions are satisfied, regardless of whether it is before or after the update.

尚、ソフトウェア41のコピー等の不正利用を防止するため、再パッケージ手段15によるソフトウェア41の再パッケージ過程(暗号化ソフトウェア41aの復号化、再暗号化、パッケージ化)は、パッケージソフトウェア4aが元のパッケージソフトウェア3の格納場所に格納されるまでは、メインメモリ71上で行われることが望ましい。又、置換表27を新たなハッシュ値で暗号化し暗号化された置換表27bとする過程についても同様にメインメモリ71上で行われることが望ましい。   In order to prevent unauthorized use such as copying of the software 41, the repackaging process of the software 41 by the repackaging means 15 (decryption, reencryption, and packaging of the encrypted software 41a) is based on the package software 4a. It is desirable that the process is performed on the main memory 71 until the package software 3 is stored. Also, it is desirable that the process of converting the replacement table 27 into a replacement table 27b encrypted with a new hash value is performed on the main memory 71 as well.

アップデート完了後は、バックアップ手段13がバックアップした元のパッケージソフトウェア3はアップデートプログラム1により削除される。
After the update is completed, the original package software 3 backed up by the backup means 13 is deleted by the update program 1.

本発明に於ける各手段、データベースは、その機能が論理的に区別されているのみであって、物理上或は事実上は同一の領域を為していてもよい。又データベースの代わりにデータファイルであってもよいことは言うまでもなく、データベースとの記載にはデータファイルをも含んでいる。   Each means and database in the present invention are logically distinguished from each other in function, and may be physically or virtually the same area. Needless to say, a data file may be used instead of the database, and the description of the database includes the data file.

尚、本発明を実施するにあたり本実施態様の機能を実現するソフトウェアのプログラムを記録した記憶媒体をシステムに供給し、そのシステムのコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても実現される。   In carrying out the present invention, the present invention is also realized by supplying a storage medium storing a software program for realizing the functions of the present embodiment to the system, and reading and executing the program stored in the storage medium by the computer of the system. Is done.

この場合、記憶媒体から読み出されたプログラム自体が前記した実施態様の機能を実現することとなり、そのプログラムを記憶した記憶媒体は本発明を構成する。   In this case, the program itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program constitutes the present invention.

本発明のプログラムの供給は、主として、インターネット等のネットワークを介してコンピュータにダウンロードさせる方法による。その他、磁気ディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカード等の可搬型の記録媒体からコンピュータへの供給も可能である。   The program of the present invention is supplied mainly by a method of downloading to a computer via a network such as the Internet. In addition, a portable recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, a magnetic tape, and a nonvolatile memory card can be supplied to the computer.

又、コンピュータが読み出したプログラムを実行することにより、上述した実施態様の機能が実現されるだけではなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部又は全部を行い、その処理によって前記した実施態様の機能が実現される場合も本発明に含まれる。
Further, by executing the program read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system running on the computer is one of the actual processes based on the instructions of the program. A case where the function of the above-described embodiment is realized by performing part or all of the processing and the processing is also included in the present invention.

本発明のアップデートプログラムの一実施形態を示す構成図である。It is a block diagram which shows one Embodiment of the update program of this invention. 復号鍵解読プログラムの一実施形態を示す構成図である。It is a block diagram which shows one Embodiment of a decryption key decryption program. ソフトウェアの暗号化、パッケージ化の一実施形態を示す図である。It is a figure which shows one Embodiment of encryption of software and packaging. 復号鍵解読手段、復号鍵格納ファイル、利用状況データベースの構成の一例を示す図である。It is a figure which shows an example of a structure of a decoding key decoding means, a decoding key storage file, and a utilization condition database. 復号鍵格納ファイルの暗号化の一例を示す図である。It is a figure which shows an example of encryption of a decryption key storage file. 復号鍵格納ファイルのファイル構造の一例を示す図である。It is a figure which shows an example of the file structure of a decryption key storage file. ソフトウェアを利用するプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process using software. ソフトウェアを利用するプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process using software. ソフトウェアを利用するプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process using software. ソフトウェアを利用するプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process using software. ソフトウェアを利用するプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process using software. ソフトウェアをアップデートするプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process which updates software. ソフトウェアをアップデートするプロセスの流れの一例を示すフローチャート図である。It is a flowchart figure which shows an example of the flow of the process which updates software.

符号の説明Explanation of symbols

1:アップデートプログラム
11:チェック手段
13:バックアップ手段
15:再パッケージ手段
2:復号鍵解読プログラム
21:利用状況生成手段
21a:利用状況データベース
23:復号鍵解読手段
231,232,233:照合・更新手段
25:展開手段
27:置換表
27a,27b:暗号化された置換表
29:復号鍵格納ファイル
29a:暗号化された復号鍵格納ファイル
3,4,4a:パッケージソフトウェア
31,41:ソフトウェア
31a,41a:暗号化ソフトウェア
33:復号化手段
35:パッケージ識別情報
37:ヘッダ
5:インストールプログラム
6:サーバ端末
7:利用者端末
71:メインメモリ
8:復号鍵
1: Update program 11: Check means 13: Backup means 15: Repackaging means 2: Decryption key decryption program 21: Usage status generation means 21a: Usage status database 23: Decryption key decryption means 231, 232, 233: Verification / update means 25: Expansion means 27: Replacement table 27a, 27b: Encrypted replacement table 29: Decryption key storage file 29a: Encrypted decryption key storage file 3, 4, 4a: Package software 31, 41: Software 31a, 41a : Encryption software 33: Decryption means 35: Package identification information 37: Header 5: Installation program 6: Server terminal 7: User terminal 71: Main memory 8: Decryption key

Claims (26)

ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデートプログラムであって、
前記アップデートプログラムは、前記暗号化されたソフトウェアの復号鍵を解読する復号鍵解読プログラムが前記利用者の端末に格納された後に、前記端末に格納されるものであり、
前記復号鍵解読プログラムは、
前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する利用状況生成手段と、
前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する復号鍵解読手段と、
前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する展開手段とを有し、
前記アップデートプログラムは、
前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断し、前記復号鍵解読手段を起動するチェック手段と、
前記パッケージソフトウェアのバックアップを行うバックアップ手段と、
前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える再パッケージ手段と、
を有することを特徴とするアップデートプログラム。
Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. In a software providing service to be used on the user's terminal, an update program for updating the software,
The update program is stored in the terminal after a decryption key decryption program for decrypting the decryption key of the encrypted software is stored in the terminal of the user,
The decryption key decryption program is
Usage status generation that generates a usage status database that can be updated every time the software is used, on a terminal other than the user's terminal and that cannot be updated on the user's terminal. Means,
The usage status stored in the usage status database is collated with the usage conditions, and the usage status in the usage status database is updated only when the usage status does not exceed the usage conditions, and the encryption is performed. Decryption key decryption means for decrypting the decryption key of the software that has been decrypted from the decryption key storage file;
Expanding means for expanding the decrypted decryption key on a main memory of the user terminal;
The update program is
A check unit that determines whether the package software stored in the user terminal is an update target, and activates the decryption key decryption unit;
Backup means for backing up the packaged software;
Using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, the new software sent from the software provider is encrypted and packaged together with the package identification information, and the package software Repackage means to replace with,
An update program characterized by comprising:
前記再パッケージ手段に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われる
ことを特徴とする請求項1に記載のアップデートプログラム。
The update program according to claim 1, wherein encryption and packaging of new software in the repackaging means is performed on a main memory.
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、
前記チェック手段は、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可する
ことを特徴とする請求項1又は請求項2に記載のアップデートプログラム。
The new software is sent to the user's terminal in a state encrypted with the common key,
The check means tries to decrypt the new encrypted software using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, and when the decrypted key is decrypted, The update program according to claim 1 or 2, wherein the update is permitted.
前記チェック手段に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われる
ことを特徴とする請求項3に記載のアップデートプログラム。
The update program according to claim 3, wherein decryption of the new encrypted software in the check means is performed on a main memory.
前記チェック手段は、前記パッケージソフトウェア及び前記復号鍵解読プログラム及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認する
ことを特徴とする請求項1から請求項4のいずれかに記載のアップデートプログラム。
The said check means confirms whether the said package software, the said decryption key decryption program, the said decryption key storage file, and the said usage condition database are stored in the said user's terminal. Item 5. The update program according to any one of Items 4 to 6.
前記チェック手段は、前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認する
ことを特徴とする請求項1から請求項5のいずれかに記載のアップデートプログラム。
The update program according to any one of claims 1 to 5, wherein the check unit confirms whether a version of software in the package software is older than a version of the new software.
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、
前記復号鍵解読手段に於いてのみ前記復号鍵の解読が可能なように、前記利用者の端末に格納される
ことを特徴とする請求項1から請求項6のいずれかに記載のアップデートプログラム。
The decryption key storage file contains the decryption key and one or more use conditions,
The update program according to any one of claims 1 to 6, wherein the update program is stored in the user terminal so that the decryption key can be decrypted only by the decryption key decryption means.
前記利用条件の一部又は全部は、前記復号鍵格納ファイルに含まれず、
前記利用者による前記パッケージソフトウェアの購入又はアップデート決済完了後、発行される
ことを特徴とする請求項1から請求項7のいずれかに記載のアップデートプログラム。
Part or all of the use conditions are not included in the decryption key storage file,
The update program according to any one of claims 1 to 7, wherein the update program is issued after completion of purchase or update settlement of the package software by the user.
前記復号鍵格納ファイルは、乱数等の第1の鍵を置換表で置換した第2の鍵によって暗号化される
ことを特徴とする請求項1から請求項8のいずれかに記載のアップデートプログラム。
The update program according to any one of claims 1 to 8, wherein the decryption key storage file is encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.
前記置換表は、前記ソフトウェア提供者毎に生成される
ことを特徴とする請求項9に記載のアップデートプログラム。
The update program according to claim 9, wherein the replacement table is generated for each software provider.
前記置換表は、前記パッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項9又は請求項10に記載のアップデートプログラム。
The update program according to claim 9 or 10, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software.
前記再パッケージ手段は、前記置換表を、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化する
ことを特徴とする請求項11に記載のアップデートプログラム。
The update according to claim 11, wherein the repackaging means encrypts the replacement table with a one-way function such as a hash value obtained from binary data of the package software replaced with the package software. program.
前記利用状況データベースは、前記利用者の端末に於いて、前記端末の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)のハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項1から請求項12のいずれかに記載のアップデートプログラム。
The usage status database is encrypted at the user terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. The update program according to any one of claims 1 to 12, wherein:
ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデート方法であって、
前記アップデート方法は、前記暗号化されたソフトウェアの復号鍵を解読するための復号鍵解読過程を少なくとも1回経た後に、実行されるものであり、
前記復号鍵解読過程は、
前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する第1の過程と、
前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する第2の過程と、
前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する第3の過程とを有し、
前記アップデート方法は、
前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断する第4の過程と、
前記パッケージソフトウェアのバックアップを行う第5の過程と、
前記第復号鍵解読過程により、アップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える第6の過程と、
を有することを特徴とするアップデート方法。
Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. In a software providing service to be used on a person's terminal, an update method for updating the software,
The update method is executed after at least one decryption key decryption process for decrypting the decryption key of the encrypted software,
The decryption key decryption process includes:
A usage database that can update the usage status every time the software is used is read by a terminal other than the user's terminal, and is generated on the user's terminal in a state in which it cannot be updated. Process,
The usage status stored in the usage status database is collated with the usage conditions, and the usage status in the usage status database is updated only when the usage status does not exceed the usage conditions, and the encryption is performed. A second step of decrypting the decryption key of the generated software from the decryption key storage file;
A third step of expanding the decrypted decryption key on a main memory of the user terminal;
The update method is:
A fourth step of determining whether or not the packaged software stored in the user terminal is an update target;
A fifth step of backing up the packaged software;
In the first decryption key decryption process, the decryption key decrypted when the use condition regarding the update is satisfied is used to encrypt the new software sent from the software provider, and package the package with the package identification information. A sixth process to replace the packaged software;
An update method characterized by comprising:
前記第6の過程に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われる
ことを特徴とする請求項14に記載のアップデート方法。
15. The update method according to claim 14, wherein encryption and packaging of new software in the sixth process is performed on a main memory.
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、
前記第4の過程では、
前記復号鍵解読過程によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可する
ことを特徴とする請求項14又は請求項15に記載のアップデート方法。
The new software is sent to the user's terminal in a state encrypted with the common key,
In the fourth step,
Try to decrypt the new encrypted software using the decryption key decrypted when the update usage conditions are satisfied by the decryption key decryption process, and permit the update when decrypted. The update method according to claim 14 or 15, wherein:
前記第4の過程に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われる
ことを特徴とする請求項16に記載のアップデート方法。
The update method according to claim 16, wherein the decryption of the new encrypted software in the fourth process is performed on a main memory.
前記第4の過程では、
前記パッケージソフトウェア及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認する
ことを特徴とする請求項14から請求項17のいずれかに記載のアップデート方法。
In the fourth step,
The update method according to any one of claims 14 to 17, wherein it is confirmed whether or not the package software, the decryption key storage file, and the usage status database are stored in the user terminal.
前記第4の過程では、
前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認する
ことを特徴とする請求項14から請求項18のいずれかに記載のアップデート方法。
In the fourth step,
The update method according to any one of claims 14 to 18, wherein it is confirmed whether or not a software version in the package software is older than a version of the new software.
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、
前記復号鍵解読方法による前記復号鍵の解読が可能なように、前記利用者の端末に格納される
ことを特徴とする請求項14から請求項19のいずれかに記載のアップデート方法。
The decryption key storage file contains the decryption key and one or more use conditions,
The update method according to any one of claims 14 to 19, wherein the update key is stored in the user terminal so that the decryption key can be decrypted by the decryption key decryption method.
前記利用条件の一部又は全部は、前記復号鍵格納ファイルに含まれず、
前記利用者による前記パッケージソフトウェアの購入又はアップデート決済完了後、発行される
ことを特徴とする請求項14から請求項20のいずれかに記載のアップデート方法。
Part or all of the use conditions are not included in the decryption key storage file,
The update method according to any one of claims 14 to 20, wherein the update is issued after the user completes the purchase of the package software or the completion of the update settlement.
前記復号鍵格納ファイルは、乱数等の第1の鍵を置換表で置換した第2の鍵によって暗号化される
ことを特徴とする請求項14から請求項21のいずれかに記載のアップデート方法。
The update method according to any one of claims 14 to 21, wherein the decryption key storage file is encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.
前記置換表は、前記ソフトウェア提供者毎に生成される
ことを特徴とする請求項22に記載のアップデート方法。
The update method according to claim 22, wherein the replacement table is generated for each software provider.
前記置換表は、前記パッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項22又は請求項23に記載のアップデート方法。
The update method according to claim 22 or 23, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software.
前記アップデート方法は、
前記置換表が、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項24に記載のアップデート方法。
The update method is:
The update method according to claim 24, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.
前記利用状況データベースは、前記利用者の端末に於いて、前記端末の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)のハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項14から請求項25のいずれかに記載のアップデート方法。
The usage status database is encrypted at the user terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. The update method according to any one of claims 14 to 25, wherein:
JP2003293588A 2003-08-14 2003-08-14 Update program and update method Pending JP2005063207A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003293588A JP2005063207A (en) 2003-08-14 2003-08-14 Update program and update method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003293588A JP2005063207A (en) 2003-08-14 2003-08-14 Update program and update method

Publications (1)

Publication Number Publication Date
JP2005063207A true JP2005063207A (en) 2005-03-10

Family

ID=34370480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003293588A Pending JP2005063207A (en) 2003-08-14 2003-08-14 Update program and update method

Country Status (1)

Country Link
JP (1) JP2005063207A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100773317B1 (en) 2006-03-14 2007-11-06 후지쯔 가부시끼가이샤 Software update method, computer readable recording medium recording an update management program and information processing apparatus
JP2008003928A (en) * 2006-06-23 2008-01-10 Hyper Tec:Kk Download system
JP2008071012A (en) * 2006-09-13 2008-03-27 Casio Hitachi Mobile Communications Co Ltd Communication terminal and data updating system, and program
JP2009301429A (en) * 2008-06-16 2009-12-24 Ricoh Co Ltd Method and apparatus for detecting software falsification, and image processor
US8522359B2 (en) 2005-10-27 2013-08-27 Samsung Electronics Co., Ltd. Apparatus and method for automatic update
JP2018072999A (en) * 2016-10-26 2018-05-10 京セラドキュメントソリューションズ株式会社 Electronic instrument and version check program
JP2018073000A (en) * 2016-10-26 2018-05-10 京セラドキュメントソリューションズ株式会社 Electronic instrument and version check program
JP2018527104A (en) * 2015-09-09 2018-09-20 シーピージー テクノロジーズ、 エルエルシーCpg Technologies, Llc In-power medical devices using induced surface waves

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035885A (en) * 1998-05-14 2000-02-02 Sega Enterp Ltd Information processor, information processing method, information recording medium and information processing system
JP2000089666A (en) * 1998-09-16 2000-03-31 Nippon Telegr & Teleph Corp <Ntt> Encoding/decoding device
JP2002189526A (en) * 2000-12-22 2002-07-05 Nec Corp Distribution system
JP2003067208A (en) * 2001-08-23 2003-03-07 Sony Corp Information processing device and the method, recording medium and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035885A (en) * 1998-05-14 2000-02-02 Sega Enterp Ltd Information processor, information processing method, information recording medium and information processing system
JP2000089666A (en) * 1998-09-16 2000-03-31 Nippon Telegr & Teleph Corp <Ntt> Encoding/decoding device
JP2002189526A (en) * 2000-12-22 2002-07-05 Nec Corp Distribution system
JP2003067208A (en) * 2001-08-23 2003-03-07 Sony Corp Information processing device and the method, recording medium and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522359B2 (en) 2005-10-27 2013-08-27 Samsung Electronics Co., Ltd. Apparatus and method for automatic update
KR100773317B1 (en) 2006-03-14 2007-11-06 후지쯔 가부시끼가이샤 Software update method, computer readable recording medium recording an update management program and information processing apparatus
JP2008003928A (en) * 2006-06-23 2008-01-10 Hyper Tec:Kk Download system
JP2008071012A (en) * 2006-09-13 2008-03-27 Casio Hitachi Mobile Communications Co Ltd Communication terminal and data updating system, and program
JP2009301429A (en) * 2008-06-16 2009-12-24 Ricoh Co Ltd Method and apparatus for detecting software falsification, and image processor
JP2018527104A (en) * 2015-09-09 2018-09-20 シーピージー テクノロジーズ、 エルエルシーCpg Technologies, Llc In-power medical devices using induced surface waves
JP2018072999A (en) * 2016-10-26 2018-05-10 京セラドキュメントソリューションズ株式会社 Electronic instrument and version check program
JP2018073000A (en) * 2016-10-26 2018-05-10 京セラドキュメントソリューションズ株式会社 Electronic instrument and version check program

Similar Documents

Publication Publication Date Title
US6195432B1 (en) Software distribution system and software utilization scheme for improving security and user convenience
KR100240324B1 (en) Licensee notification system
JP4835167B2 (en) Program, system and method for license management
JP4694077B2 (en) Computing device for accessing protected content in a rights management architecture
JP3766197B2 (en) Software distribution method, server device, and client device
JP3507594B2 (en) Computer
US6041411A (en) Method for defining and verifying user access rights to a computer information
US5103476A (en) Secure system for activating personal computer software at remote locations
AU2006200154B2 (en) Flexible licensing architecture for licensing digital application
US7747873B2 (en) Method and apparatus for protecting information and privacy
US7742992B2 (en) Delivery of a secure software license for a software product and a toolset for creating the software product
RU2388051C2 (en) Random password, automatically generated by basic input/output (bios) system for protecting data storage device
US20060168580A1 (en) Software-management system, recording medium, and information-processing device
JP2003316913A (en) Service providing method, information processing system, control program thereof and recording medium
WO1999052035A1 (en) File managing system, file managing device, file managing method, and program recording medium
JPWO2007108127A1 (en) System program download system
JP2002334173A (en) Method for distributing contents, and server, terminal and computer program used in the same
JP2005063207A (en) Update program and update method
JP4454280B2 (en) License authentication method and license authentication system
JP2004309737A (en) Decoding key protection program and decoding key protection method
JP2008513858A (en) Method and equipment for postage payment
JP4678881B2 (en) Information processing method, information processing system, program, and storage medium
JPH10222064A (en) Digital information management system, terminal device, information management center, and method of controlling digital information
JP3042309B2 (en) Software license system
JP2002229660A (en) System, method and server for managing software distribution, and software usage managing applet and medium recording the same applet

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080930