Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3624971B2 - Software usage control method - Google Patents
[go: Go Back, main page]

JP3624971B2 - Software usage control method - Google Patents

Software usage control method Download PDF

Info

Publication number
JP3624971B2
JP3624971B2 JP25496295A JP25496295A JP3624971B2 JP 3624971 B2 JP3624971 B2 JP 3624971B2 JP 25496295 A JP25496295 A JP 25496295A JP 25496295 A JP25496295 A JP 25496295A JP 3624971 B2 JP3624971 B2 JP 3624971B2
Authority
JP
Japan
Prior art keywords
data
software
decrypted
encrypted
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP25496295A
Other languages
Japanese (ja)
Other versions
JPH0997175A (en
Inventor
俊治 原田
なつめ 松崎
誠 館林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP25496295A priority Critical patent/JP3624971B2/en
Publication of JPH0997175A publication Critical patent/JPH0997175A/en
Application granted granted Critical
Publication of JP3624971B2 publication Critical patent/JP3624971B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ソフトウエア利用制御方法に関し、より特定的には、特定の利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法に関する。
【0002】
【従来の技術】
最近、パソコンなどで利用されるアプリケーションソフトウエアに関する違法コピーが大きな問題となっている。この問題は、ディジタル化されたデータが有する次の性質に起因するものである。
・複製が簡単、短時間、かつ安価に行なえる。
・原始データと複製データの有する価値は変化しない。
・原始データと改変されたデータとの識別が難しい。
【0003】
市販のソフトウエアを非合法的に複写して使用したり販売することを防止するため、ソフトウエアを暗号化して配布する方法が有効である。ソフトウエアを暗号化することで不正コピーによる不正使用を防止する方法に関して、多くの方式が提案されている。その代表的な例を以下に示す。
【0004】
第1の例は、ソフトウエアを実行する装置(パソコン、ワークステーション、家庭用ゲーム機など)毎に異なる固有のキーを与え、そのキーで暗号化されたソフトウエアを復号し実行するという方法である(例えば、特開昭51−003745号公報参照)。この構成では、ソフトウエアは、各実行装置毎に一意的なキーで暗号化されるため、暗号化されたソフトウエアをコピーして他の実行装置で実行しようとしても実行できない。しかしながら、各利用者(実行装置)用にそれぞれソフトウエアの暗号化を行なう必要がある。そのため、例えば、暗号化されたソフトウエアをCD−ROMに大量に複写し販売するのには適さない(すなわち、暗号化されたソフトウエアを原盤として作成して、その原盤を用いてCD−ROMにプレスして販売するのに適さない)などの短所がある。
【0005】
第2の例は、特開昭61−145642号公報に開示されているように、ソフトウエアを実行する装置に暗号復号機構を組み込み、この暗号復号機構に装置毎に一意的なキーを与え、ソフトウエアをソフトウエア毎に一意的なファイルキーで暗号化して記憶媒体に書き込んでおく。一方、このファイルキーを装置毎に一意的なキーで暗号化して作成されたパスワードを実行装置に入力することにより、まず暗号化されたファイルキーが暗号復号機構にて復号され、復号されたファイルキーを用いて記憶媒体に書き込まれた暗号化されたソフトウエアが復号される。この第2の例では、第1の例とは違ってソフトウエア本体は、ソフトウエア毎に一意的なキーで暗号化され個別化される。したがって、暗号化されたソフトウエアをCD−ROMなどの記憶媒体に大量に複写して販売することができる。一方、暗号化されたソフトウエアの復号に利用されるパスワードは、装置毎に一意的なキーで暗号化され個別化される。したがって、装置毎に個別化されるパスワードをコピーして他の実行装置で暗号化されたソフトウエアを実行しようとしても実行できない。
【0006】
しかしながら、上記第2の例では、実行装置にパスワードや暗号化ソフトウエアが誤って入力されたり読み取られた場合や、コンピュータウイルスなどにより改変されていた場合に、ソフトウエアを実行する前にそれらを検出することはできない。このため、最悪の場合ソフトウエアが暴走して他のコンピュータ資源に悪影響を及ぼしかねない。
【0007】
上記のようなソフトウエアの改変を防止する方法として、ディジタル署名を利用する方法がある(例えば特開平03−286334号公報参照)。なお、ディジタル署名については、共立出版、岡本栄司著「暗号理論入門」第7章に詳しく説明されている。しかしながら、このようなディジタル署名を第2の例に追加的に使用する場合、ソフトウエアの暗号化/復号機構に加えて、ディジタル署名処理機構を別途設ける必要がありコストアップとなる。
【0008】
【発明が解決しようとする課題】
以上説明したように、第1の従来例では、ソフトウエアを実行装置毎に固有のキーで暗号化するため、暗号化されたソフトウエアを記憶媒体に大量に複写して販売するのに適さないといった問題点がある。また、第2の従来例では、暗号化されたソフトウエアやパスワードに対する改変や誤入力が発生した時に、それをソフトウエアを実行する前に検出できないといった問題点がある。この第2の従来例の問題点を解消するために、ディジタル署名を利用する場合、暗号化ソフトウエアの改変を検出するためのディジタル署名機構を別途追加しなければならず、コストの上昇を招くという別の問題点を生じる。
【0009】
なお、ソフトウエアの各部分を個別に暗号化し、その利用を個別に制御したいという要望がある。例えば、一般ユーザ向けに基本機能を、そして専門ユーザ向けにいくつかの拡張機能を備えるソフトウエアの場合、基本機能と拡張機能とを別々に暗号化することにより、基本機能のみを復号実行できたり、拡張機能も復号実行できたりといった選択を利用者に与えることができる。また、音楽やビデオなどのデータを実行するソフトウエアにおいては、各データ毎に暗号化することにより、その実行を個別に制御できる。しかしながら、従来は、ソフトウエアの各部分を個別に暗号化し、その復号実行を個別に制御することはできなかった。
【0010】
それ故に、本発明の目的は、ソフトウエアを各利用者や実行装置に依存しない形で暗号化できるソフトウエア利用制御方法を提供することである。
本発明の他の目的は、暗号化されたソフトウエアに対する改変の検出を、安価な構成で実現できるソフトウエア利用制御方法を提供することである。
本発明のさらに他の目的は、各ソフトウエアが保有するデータや機能の実行を、個別に制御することのできるソフトウエア利用制御方法を提供することである。
【0011】
【課題を解決するための手段および発明の効果】
第1の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データとを作成する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
暗号化されたソフトウエアを第1のキーを用いて復号し、暗号化された実行権データを第2のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0012】
上記のように、第1の発明では、ソフトウエアは、各ソフトウエアに共通な第1のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、CD−ROM等を利用した大量販売に適する。
また、第1の発明では、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第1のデータと第1の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【0013】
第2の発明は、第1の発明において、
ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、
第2のステップは、第1のデータおよび第1の認証データに加えて、各サブソフトウエア部に固有なn個の第2のデータと、このn個の第2のデータとそれぞれ所定の関係を満たすn個の第2の認証データとを作成し、
第3のステップは、第1のデータおよびn個の第2の認証データをメインソフトウエア部に付加した後、第1のキーを用いて暗号化し、第2のデータをサブソフトウエア部にそれぞれ付加した後、第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
第5のステップは、暗号化されたソフトウエアの暗号化されたメインソフトウエア部を第1のキーを用いて復号すると共に、暗号化された実行権データを第2のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第2のデータと、復号されたメインソフトウエア部に付加されている第2の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする。
【0014】
上記のように、第2の発明では、復号された各サブソフトウエア部にそれぞれ付加されている第2のデータと、復号されたメインソフトウエア部に付加されている第2の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアの改変を、各サブソフトウエア部毎に検出できる。その結果、各サブソフトウエア部毎に、その利用を制御することができる。
【0015】
第3の発明は、第1または第2の発明において、
第1のステップは、作成した第1および第2のキーをそれぞれ利用者の記憶するパスワードで暗号化して利用者に配付することを特徴とする。
【0016】
上記のように、第3の発明では、第1および第2のキーが、それぞれ利用者の記憶するパスワードで暗号化されて利用者に配付されるので、配付時に秘密性を保つ必要がない。
【0017】
第4の発明は、第1または第2の発明において、
復号認証処理のための復号認証プログラムを利用者に配付する第6のステップをさらに備え、
第5のステップは、配付された復号認証プログラムに従って、実行されることを特徴とする。
【0018】
上記のように、第4の発明では、利用者側で実行される第5のステップを、それ自体は復号認証機能を持たない汎用のコンピュータ上で実現できる。
【0019】
第5の発明は、第4の発明において、
読出可能領域と書き換え不可領域とを有する第1の記憶媒体と、読出可能領域と不正読出不可領域とを有する第2の記憶媒体とを準備し、第1の記憶媒体の読出可能領域に暗号化されたソフトウエアを記録し、第1の記憶媒体の書き換え不可領域に復号認証プログラムを記録し、第2の記憶媒体の読出可能領域に暗号化された実行権データを記録し、第2の記憶媒体の不正読出不可領域に第1および第2のキーを記録し、これら第1および第2の記憶媒体を利用者に配布することを特徴とする。
【0020】
第6の発明は、第4の発明において、
読出可能領域と書き換え不可領域とを有する第1の記憶媒体と、不正読出不可領域とを有する第2の記憶媒体とを準備し、第1の記憶媒体の読出可能領域に暗号化された実行権データおよび暗号化されたソフトウエアを記録し、第1の記憶媒体の書き換え不可領域に復号認証プログラムを記録し、第2の記憶媒体の不正読出不可領域に第1および第2のキーを記録し、これら第1および第2の記憶媒体を利用者に配布することを特徴とする。
【0021】
第7の発明は、第4の発明において、
第6のステップは、不正読出が不可能な記憶領域を有し、この記憶領域に格納された復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする。
【0022】
第8の発明は、第4の発明において、
第6のステップは、書き込みが不可能な記憶領域を有し、この記憶領域に格納された復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする。
【0023】
第9の発明は、第4の発明において、
第6のステップは、復号認証プログラムを実行する専用のハードウエア組み込んだ実行装置を利用者に配付することを特徴とする。
【0024】
第10の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1および第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
暗号化された実行権データを第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0025】
上記のように、第10の発明では、ソフトウエアは、各ソフトウエアに共通な第1のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、CD−ROM等を利用した大量販売に適する。
また、第10の発明では、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第1のデータと第1の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【0026】
第11の発明は、第10の発明において、
ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、
第2のステップは、第1および第2のデータ、第1および第2の認証データに加えて、各サブソフトウエア部に固有なn個の第3のデータと、このn個の第3のデータとそれぞれ所定の関係を満たすn個の第3の認証データとを作成し、
第3のステップは、第1のデータおよびn個の第3の認証データをメインソフトウエア部に付加した後、第1のキーを用いて暗号化し、第3のデータを各サブソフトウエア部にそれぞれ付加した後、第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
第5のステップは、暗号化された実行権データを第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたメインソフトウエア部を第1のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第3のデータと、復号されたメインソフトウエア部に付加されている第3の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする。
【0027】
上記のように、第11の発明では、復号された各サブソフトウエア部にそれぞれ付加されている第3のデータと、復号されたメインソフトウエア部に付加されている第3の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアの改変を、各サブソフトウエア部毎に検出できる。その結果、各サブソフトウエア部毎に、その利用を制御することができる。
【0028】
第12の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1および第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
暗号化された実行権データを第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0029】
第13の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに共通な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1および第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
暗号化された実行権データを第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0030】
上記のように、第12および第13の発明では、ソフトウエアは、各ソフトウエアに固有な第1のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、CD−ROM等を利用した大量販売に適する。
また、第12および第13の発明では、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第1のデータと第1の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【0031】
第14の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、第2のキーを用いて第1のキーを暗号化し、暗号化された第1のキーおよび暗号化されていない第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1および第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
第2のキーを用いて暗号化された第1のキーおよび暗号化された実行権データを復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0032】
第15の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、第2のキーを用いて第1のキーを暗号化し、暗号化された第1のキーおよび暗号化されていない第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
第1のデータをソフトウエアに付加した後、第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
第1および第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
第2のキーを用いて暗号化された第2のキーおよび暗号化された実行権データを復号し、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備えている。
【0033】
上記のように、第14および第15の発明では、ソフトウエアは、各ソフトウエアに固有な第1のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、CD−ROM等を利用した大量販売に適する。
また、第14および第15の発明では、第1のキーは、第2のキーを用いて暗号化されるため、配付時に第1のキーの秘密性を保つ必要がない。
また、第14および第15の発明では、復号された実行権データに付加された第2の認証データと、第2のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第1のデータと第1の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【0034】
第16の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、各ソフトウエアに共通で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各サブソフトウエア部に固有なn個の第2のデータと、このn個の第2のデータとそれぞれ所定の関係を満たすn個の第2の認証データとを作成する第2のステップと、
第1のデータをメインソフトウエア部に付加した後、第1のキーを用いて暗号化し、第2のデータをサブソフトウエア部にそれぞれ付加した後、第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付する第3のステップと、
第1の認証データおよびn個の第2の認証データを実行権データに付加した後、第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
暗号化されたソフトウエアの暗号化されたメインソフトウエア部を第1のキーを用いて復号すると共に、暗号化された実行権データを第2のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第2のデータと、復号された実行権データに付加されている第2の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行する第5のステップとを備えている。
【0035】
上記のように、第16の発明では、ソフトウエアは、各ソフトウエアに共通な第1のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、CD−ROM等を利用した大量販売に適する。
また、第16の発明では、復号されたメインソフトウエア部に付加されている第1のデータと、復号された実行権データに付加された第1の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたメインソフトウエア部に対する改変を、安価な構成で検出できる。また、復号された各サブソフトウエア部に付加されている第2のデータと、復号された実行権データに付加されている第2の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたサブソフトウエア部に対する改変を、各サブソフトウエア部毎に検出できる。さらに、第2のデータと第2の認証データとが所定の関係を満たす場合のみ、復号されたサブソフトウエア部を復号された実行権データに従って実行するようにしているため、改変されたサブソフトウエア部の利用を禁止することができる。
【0036】
【発明の実施の形態】
以下の実施例の説明では、暗号化されたソフトウエアの利用を制御するための実行権データをチケットと称し、このチケットを暗号化するためのキーをチケットキーと称している。また、ソフトウエアの暗号化に利用するキーをソフトキーと称している。
【0037】
(1)第1の実施例
図1は、本発明の第1の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図1において、ソフト提供者側の処理装置X1は、キー作成部1と、認証データ作成部2と、チケット暗号化部3と、ソフト暗号化部4とを備えている。一方、ソフト利用者側の実行装置Y1は、暗号化ソフト利用制御部5を備えている。この暗号化ソフト利用制御部5は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部6と、ソフト復号部7と、データ認証部8と、ソフト実行部9とを含む。
【0038】
ソフト提供者からソフト利用者への情報(ソフトウエア,チケット,チケットキー等)の提供は、第1および第2記憶媒体81および82を用いて行われる。第1記憶媒体81は、読出可能領域83と、書き換え禁止領域86とを含む。第2記憶媒体82は、読出可能領域85と、不正読出不可領域84とを含む。
【0039】
上記第1記憶媒体81としては、例えばCD−ROMなどが利用できる。また、上記第2記憶媒体82としては、例えばICカード(スマートカード)などが利用できる。
【0040】
なお、ソフト提供者側の処理装置X1としては、上記各記憶媒体81および82への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Y1としては、上記各記憶媒体81および82からの読み出しが可能な機器が接続されたパーソナルコンピュータ,ワークステーション,家庭用ゲーム機器または個人用情報端末などを利用することができる。
【0041】
次に、図1に示す実施例の動作手順を説明する。ソフト提供者は、後述するステップS101〜S106の手順で、暗号化ソフトなどが記録された第1記憶媒体81と、この暗号化ソフトを利用するためのチケット(実行権データ)などが記録された第2記憶媒体82とを作成し、利用者に提供する。
【0042】
一方、ソフト利用者は、第1および第2記憶媒体81および82を購入し、後述するステップS201〜S206の手順で暗号化ソフトを実行する。
【0043】
図2は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図4は、認証用データ(D1)が付加されたソフトウエアおよび認証用データ(D1’)が付加されたチケットのデータ構造を示している。以下、これら図2および図4を参照して、ソフト提供者側で行われる処理について説明する。
【0044】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット(実行権データ)とが作成される(ステップS101)。ここで、チケットには、ソフトウエアの識別番号,ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部9には、現在のソフト実行状況データ(現在時刻や現在のソフトウエアの実行回数など)を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【0045】
次に、キー作成部1は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に固有で秘密のチケットキーとを作成し、第2記憶媒体82の不正読出不可領域84に記録する(ステップS102)。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ(桁数)の数値であり、具体的には例えば64ビット程度の数値とする。
【0046】
次に、認証データ作成部2は、各ソフトウエアに固有な認証用データ(D1)および(D1’)を作成する(ステップS103)。ここで、認証用データ(D1)および(D1’)は、具体的には例えば64ビット程度の数値とする。また、認証用データ(D1)および(D1’)は、ある関係式Fに関して、
(D1’)=F(D1)
の条件を満たすものとする。なお、関係式Fの最も簡単な例として、Fを等式とする、すなわち
(D1’)=(D1)
とすることもできる。
【0047】
次に、ソフト暗号化部4は、ソフトウエアに認証用データ(D1)を付加した結果を、ソフトキーを用いて暗号化し、第1記憶媒体81の読出可能領域83に記録する(ステップS104)。次に、チケット暗号化部3は、チケットに認証用データ(D1’)を付加した結果を、チケットキーを用いて暗号化し、第2記憶媒体82の読出可能領域85に記録する(ステップS105)。
【0048】
次に、復号認証ソフトが作成され、第1記憶媒体81の書き換え禁止領域86に記録される(ステップS106)。この復号認証ソフトには、暗号化ソフト利用制御部5がそれを実行することによって、暗号化ソフトを復号するソフト復号部7と、暗号化チケットを復号するチケット復号部6と、復号されたソフトウエアと復号されたチケットにそれぞれ付加された認証用データ(D1)および(D1’)が所定の関係(D1’=F(D1))を満たすかどうかを検査するデータ認証部8と、検査が満たされた時に復号されたソフトウエアを実行するソフト実行部9との機能を果たすためのプログラムが組み込まれている。
【0049】
図3は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図3を参照して、ソフト利用者側で行われる処理について説明する。
【0050】
ソフト利用者は、暗号化ソフトなどが記録された第1記憶媒体81と、暗号化チケットなどが記録された第2記憶媒体2とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部5に入力する(ステップS201)。
【0051】
次に、暗号化ソフト利用制御部5は、購入した第1記憶媒体81に記録されている復号認証ソフトを実行する(ステップS202)。これによって、チケット復号部6,ソフト復号部7,データ認証部8およびソフト実行部9が起動する。
【0052】
次に、ソフト復号部7は、ソフトキーを用いて暗号化ソフトを復号する(ステップS203)。次に、チケット復号部6は、チケットキーを用いて暗号化チケットを復号する(ステップS204)。
【0053】
次に、データ認証部8は、復号されたソフトウエアに付加された認証用データ(D1)と、復号されたチケットに付加された認証用データ(D1’)とが、所定の関係、すなわち
(D1’)=F(D1)
という関係を満たすかどうかを検査する(ステップS205)。認証用データの検査の結果、上記関係が満たされる場合、ソフト実行部9は、復号されたソフトウエアを実行する(ステップS206)。
【0054】
以上説明した第1の実施例によれば、流通しているソフトウエアのチケットを有する利用者に対してのみ、そのソフトウエアの利用を可能とし、同時にソフトウエアやチケットに予め定められたデータを付加した後に暗号化することにより、復号時に付加されたデータが現れるか否かで、暗号化されたソフトウエアやチケットの改変を検出することができる。
【0055】
なお、暗号化すべきデータに冗長性を付加した後に暗号化し、復号時にその冗長性が現れるかどうかを検査する方法は、冗長暗号化法と呼ばれている(共立出版、岡本栄司著「暗号理論入門」P131参照)。そして、この冗長暗号化方法を実現するためには、誤り伝搬特性を有する暗号方式が必要である。ここで、誤り伝搬特性とは、暗号化されたデータの任意の1ビットの変更が、復号されたデータの各ビットに影響を及ぼす特性をいう。このような誤り伝搬特性を有する暗号方式としては、例えば上述の共立出版、岡本栄司著「暗号理論入門」のP132の例7.2の方法や、自然社、細貝ら訳の「暗号」に記載の平文および暗号文フィードバックを用いたブロック連鎖方法(P71)などが利用できる。
【0056】
上記のような構成により、改変検出のために冗長性を付加するだけで良く、ディジタル署名部を新たに付加する場合に比べて、必要とする計算量は少なくてすむ。
【0057】
上記のように、第1の実施例では、ソフトウエアおよびそれに対応するチケットに互いに関連付けられたデータを含めてそれぞれ暗号化し、それぞれの復号結果に関連付けられたデータが正しく現れるかどうかを検査することで、暗号化ソフトおよび暗号化チケットの改変の有無を一括して検出する構成をとる。この構成により、利用者にあらかじめ認証のためのデータを知らせておく必要がなく、また暗号化されたソフトウエアおよびチケットの改変の有無を一括して検査できるという新たな効果が生まれる。
【0058】
また、上記第1の実施例では、ソフト提供者がステップS101〜S106を実行するとして説明したが、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。一例として、以下のような構成が可能である。
【0059】
まず、ソフト作成者は、上記ステップS101に従って、ソフトウエアと、このソフトウエア用の実行権データとを作成する。このとき、実行権データに、ソフトウエアの暗号化を制御する制御情報(例えば、ソフトウエアのどの部分を暗号化するかなど)を含めておく。一方、サービス提供者は、上記ステップS102〜S104を実行し、ソフトキーおよびチケットキーを作成し、記憶媒体2への記録する。また、認証用データを作成し、それをソフトウエアに付加した結果を暗号化し、この暗号化ソフトを記憶媒体1へ記録する。そして、この記憶媒体1および記憶媒体2および認証用データ(D1’)を、ソフト販売者に渡す。次に、ソフト販売者は、上記ステップS105に従って、チケットを暗号化し、暗号化チケットを記憶媒体2に記録し、上記記憶媒体1および記憶媒体2をソフト利用者に販売する。
【0060】
なお、上述のサービス提供者の処理するステップS102〜S104(または、この一部)をソフト作成者が処理する構成も可能である。
【0061】
また、上記第1の実施例では、暗号化されたソフトウエア、暗号化されたチケットを、読出可能領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【0062】
(第2の実施例)
ところで、上記第1の実施例に係るソフトウエア保護方法では、多数の機能を有するソフトウエアや、多数のデータを利用するソフトウエアにおいて、各機能や各データ毎にそれらの改変を検出し、それらの利用を制御することはできない。このような問題は、以下のようにすれば解決できる。
【0063】
以下では、ソフトウエアが、図5に示すように、1つのメインソフトウエア部(main)と、そのメインソフトウエア部から利用される複数のサブソフトウエア部(sub1,sub2,…,subn)とで構成される場合を考える。例えば、基本機能と複数の拡張機能とから構成されるソフトウエアにおいては、基本機能はメインソフトウエア部に、各拡張機能はそれぞれサブソソフトウエア部に対応する。また、複数のデータ(動画、音声など)を再生するソフトウエアでは、再生機能がメインソフトウエア部に、各データがそれぞれ各サブソフトウエア部に対応する。
【0064】
図3は、本発明の第2の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図3において、ソフト提供者側の処理装置X2は、キー作成部101と、認証データ作成部102と、チケット暗号化部103と、メインソフト暗号化部110と、サブソフト暗号化部111とを備えている。一方、ソフト利用者側の実行装置Y2は、暗号化ソフト利用制御部50を備えている。この暗号化ソフト利用制御部50は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部106と、メインソフト復号部112と、サブソフト復号部113と、データ認証部108aおよび108bと、ソフト実行部109aおよび109bとを含む。
【0065】
ソフト提供者からソフト利用者への情報(ソフトウエア,チケット,チケットキー等)の提供は、第1および第2記憶媒体81および82を用いて行われる。第1記憶媒体81は、読出可能領域83と、書き換え禁止領域86とを含む。第2記憶媒体82は、読出可能領域85と、不正読出不可領域84とを含む。
【0066】
上記第1記憶媒体81としては、例えばCD−ROMなどが利用できる。また、上記第2記憶媒体82としては、例えばICカード(スマートカード)などが利用できる。
【0067】
なお、ソフト提供者側の処理装置X2としては、上記各記憶媒体81および82への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Y2としては、上記各記憶媒体81および82からの読み出しが可能な機器が接続されたパーソナルコンピュータ,ワークステーション,家庭用ゲーム機器または個人用情報端末などを利用することができる。
【0068】
次に、図6に示す実施例の動作手順を説明する。ソフト提供者は、後述するステップS301〜S306の手順で、暗号化ソフトなどが記録された第1記憶媒体81と、この暗号化ソフトを利用するためのチケット(実行権データ)などが記録された第2記憶媒体82とを作成し、利用者に提供する。
【0069】
一方、ソフト利用者は、第1および第2記憶媒体81および82を購入し、後述するステップS401〜S409の手順で暗号化ソフトを実行する。
【0070】
図7は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図9は、認証用データ(D1)(D2i’)(i=1,2,...,n)が付加されたメインソフトウエア、(D2i)が付加されたサブソフトウエアおよび認証用データ(D1’)が付加されたチケットのデータ構造を示している。以下、これら図7および図9を参照して、ソフト提供者側で行われる処理について説明する。
【0071】
なお、ここでは図7に示すように、メインソフトウエア部(main)と、n個のサブソフトウエア部(subi)(i=1,2,...,n)とからなるソフトウエアの場合について説明する。
【0072】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット(実行権データ)とが作成される(ステップS301)。ここで、チケットには、ソフトウエアの識別番号,ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部109aおよび109bには、現在のソフト実行状況データ(現在時刻や現在のソフトウエアの実行回数など)を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【0073】
次に、キー作成部101は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に固有で秘密のチケットキーとを作成し、第2記憶媒体82の不正読出不可領域84に記録する(ステップS302)。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ(桁数)の数値であり、具体的には例えば64ビット程度の数値とする。
【0074】
次に、認証データ作成部102は、各ソフトウエアに固有な認証用データ(D1)および(D1’)、また各サブソフトウエア部に固有なn個の認証用データ(D2i)および(D2i’)(i=1,2,…,n)を作成する(ステップS303)。ここで、認証用データ(D1)(D1’)(D2i)(D2i’)は、具体的には例えば64ビット程度の数値とする。また、認証用データ(D1)および(D1’)と、(D2i)および(D2i’)とは、ある関係式Fに関して、
(D1’) =F(D1)
(D2i’)=F(D2i)(i=1,2,…,n)
の条件を満たすものとする。なお、関係式Fの最も簡単な例として、Fを等式とする、すなわち
(D1’) =(D1)
(D2i’)=(D2i)
とすることもできる。
【0075】
次に、メインソフト暗号化部110は、メインソフトウエア部(main)に認証用データ(D1)および認証用データ(D21’,D22’,…,D2n’)を付加した結果ソフトキーを用いて暗号化し、またサブソフト暗号化部111は、各サブソフト部(subi)にそれぞれ認証用データ(D2i)を付加した結果をソフトキーを用いて暗号化し、この暗号化されたメインソフトウエア部および各暗号化されたサブソフトウエア部をまとめて暗号化ソフトとして、第1記憶媒体81の読出可能領域83に記録する(ステップS304)。次に、チケット暗号化部103は、チケットに認証用データ(D1’)を付加した結果を、チケットキーを用いて暗号化し、第2記憶媒体82の読出可能領域85に記録する(ステップS305)。
【0076】
次に、復号認証ソフトが作成され、第1記憶媒体81の書き換え禁止領域86に記録される(ステップS306)。この復号認証ソフトには、暗号化ソフト利用制御部5がそれを実行することによって所定の機能、すなわち暗号化メインソフトを復号するメインソフト復号部112と、暗号化サブソフトを復号するサブソフト復号部113と、暗号化チケットを復号するチケット復号部106と、復号されたメインソフトウエアと復号されたチケットにそれぞれ付加された認証用データ(D1)および(D1’)が所定の関係(D1’=F(D1))を満たすかどうかを検査するデータ認証部108aと、復号されたメインソフトウエアと復号されたサブソフトウエアにそれぞれ付加された認証用データ(D2i)および(D2i’)が所定の関係(D2i’=F(D2i))を満たすかどうかを検査するデータ認証部108bと、それぞれの検査が満たされた時に復号されたソフトウエアを実行するソフト実行部109aおよび109bとの機能を果たすためのプログラムが組み込まれている。
【0077】
図8は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図8を参照して、ソフト利用者側で行われる処理について説明する。
【0078】
ソフト利用者は、暗号化ソフトなどが記録された第1記憶媒体81と、暗号化チケットなどが記録された第2記憶媒体2とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部50に入力する(ステップS401)。
【0079】
次に、暗号化ソフト利用制御部50は、購入した第1記憶媒体81に記録されている復号認証ソフトを実行する(ステップS402)。これによって、チケット復号部106,メインソフト復号部112,サブソフト復号部113,データ認証部108aおよび108b,ソフト実行部109aおよび109bが起動する。
【0080】
次に、メインソフト復号部112において暗号化メインソフトがソフトキーを用いて復号され(ステップS403)、チケット復号部106において暗号化チケットがチケットキーを用いて復号される(ステップS404)。次に、データ認証部108aは、復号されたメインソフトウエア部に付加された認証用データ(D1)と、復号されたチケットに付加された認証用データ(D1’)が、
(D1’)=F(D1)
という関係を満たすかどうかを検査する(ステップS405)。この検査が満たされた時、ソフト実行部109aは、復号されたメインソフト部を実行する(ステップS406)。
【0081】
次に、メインソフトウエア部(main)から、各サブソフト部の実行が要求されると、サブソフト復号部113は、各暗号化されたサブソフト部をソフトキーを用いて復号する(ステップS407)。次に、データ認証部109bは、復号されたサブソフトウエア部(subi)に付加された認証用データ(D2)と、復号されたメインソフトウエア部に付加された認証用データ(D2’)とが、
(D2’)=F(D2)
という関係を満たすかどうかを検査する(ステップS408)。この検査が満たされた時、ソフト実行部109bは、復号された各サブソフト部(subi)を実行する(ステップS409)。
【0082】
以上説明した第2の実施例によれば、暗号化された各サブソフトの改変の検出および実行の制御が行える。すなわち、第2の実施例は、第1の実施例と同様に、ソフトウエアに冗長性を付加するだけで改変の検出が行え、ディジタル署名機構を新たに付加する従来例に比べて、必要とする計算量が少なくてすむ。
【0083】
また、上記第2の実施例では、ソフト提供者がステップS301〜S306を実行するとして説明したが、第1の実施例の場合と同様に、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。
【0084】
また、上記第2の実施例では、暗号化されたソフトウエア、暗号化されたチケット、復号認証ソフトを、読出可能記憶領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【0085】
また、上記第2の実施例によれば、複数のソフトウエアから共通に利用されるサブソフトウエア部の共用化が可能である。このことを図9に示す具体例を参照して説明する。図9に示すように、ソフトウエアA、B、Cは、それぞれメインソフト部(mainA,mainB,mainC)と、複数のサブソフトウエア部とで構成される。なお、ソフトウエアAは、サブソフトウエア(sub1,sub2,sub3)を含み、ソフトウエアBは、サブソフトウエア(sub2,sub3,sub4)を含み、ソフトウエアCは、サブソフトウエア(sub1,sub4)を含む。このように、各サブソフトウエア部(sub1,sub2,sub3,sub4)は、それぞれ複数のソフトウエアから利用される。このような場合に、第2の実施例では、ソフトウエアのメインソフトウエア部とサブソフトウエア部を個別に暗号化する構成のため、各ソフトウエア毎にそれぞれ利用するサブソフトウエア部を重複して保持させる必要がない。従って、図11に示すように、共通のサブソフトウエア部を共有化することが可能となり、これによりこれらのソフトウエアを同一の記憶媒体に記録する場合、記録容量が削減できる。
【0086】
(第3の実施例)
以上説明した第1および第2の実施例では、各ソフトウエアに固有の認証用データを付加する一方、各ソフトウエアに共通なソフトキーと各利用者に固有なチケットキーを用いてソフトウエアおよびチケットを暗号化する構成により、各ソフトウエアに対する、また各利用者毎に有効なチケットの配布を可能としたが、各ソフトウエアに共通なソフトキーと、各利用者に共通なチケットキーを用いてソフトウエアおよびチケットをそれぞれ暗号化する構成においても、以下に述べる構成により各ソフトウエアに対する、また各利用者毎に有効なチケットの配布を可能とすることができる。
【0087】
図12は、本発明の第2の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図12において、ソフト提供者側の処理装置X3は、キー作成部201と、認証データ作成部2022と、チケット暗号化部203と、ソフト暗号化部204とを備えている。一方、ソフト利用者側の実行装置Y3は、暗号化ソフト利用制御部500を備えている。この暗号化ソフト利用制御部500は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部206と、ソフト復号部207と、データ認証部208aおよび208bと、ソフト実行部209とを含む。
【0088】
ソフト提供者からソフト利用者への情報(ソフトウエア,チケット,チケットキー等)の提供は、第1および第2記憶媒体81および82を用いて行われる。第1記憶媒体81は、読出可能領域83と、書き換え禁止領域86とを含む。第2記憶媒体82は、読出可能領域85と、不正読出不可領域84とを含む。
【0089】
上記第1記憶媒体81としては、例えばCD−ROMなどが利用できる。また、上記第2記憶媒体82としては、例えばICカード(スマートカード)などが利用できる。
【0090】
なお、ソフト提供者側の処理装置X3としては、上記各記憶媒体81および82への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Y3としては、上記各記憶媒体81および82からの読み出しが可能な機器が接続されたパーソナルコンピュータ,ワークステーション,家庭用ゲーム機器または個人用情報端末などを利用することができる。
【0091】
次に、図12に示す第3の実施例の動作手順を説明する。ソフト提供者は、後述するステップS501〜S506の手順で、暗号化ソフトなどが記録された第1記憶媒体81と、この暗号化ソフトを利用するためのチケット(実行権データ)などが記録された第2記憶媒体82とを作成し、利用者に提供する。
【0092】
一方、ソフト利用者は、第1および第2記憶媒体81および82を購入し、後述するステップS601〜S607の手順で暗号化ソフトを実行する。
【0093】
図13は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図15は、認証用データ(D1)が付加されたソフトウエアおよび認証用データ(D1’),(D3’)が付加されたチケットのデータ構造を示している。以下、これら図13および図15を参照して、ソフト提供者側で行われる処理について説明する。
【0094】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット(実行権データ)とが作成される(ステップS501)。ここで、チケットには、ソフトウエアの識別番号,ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部209には、現在のソフト実行状況データ(現在時刻や現在のソフトウエアの実行回数など)を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【0095】
次に、キー作成部201は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に共通なチケットキーとを作成し、第2記憶媒体82の不正読出不可領域84に記録する(ステップS502)。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ(桁数)の数値であり、具体的には例えば64ビット程度の数値とする。
【0096】
次に、認証データ作成部202は、各ソフトウエアに固有な認証用データ(D1)および(D1’)と、各利用者に固有なデータ(D3)および(D3’)とを作成する(ステップS503)。ここで、各データ(D1)(D1’)(D3)(D3’)は、具体的には例えば64ビット程度の数値とする。また、認証用データ(D1)および(D1’)と、(D3)および(D3’)とは、ある関係式Fに関して、
(D1’)=F(D1)
(D3’)=F(D3)
の条件を満たすものとする。なお、関係式Fの最も簡単な例として、Fを等式とする、すなわち
(D1’)=(D1)
(D3’)=(D3)
とすることもできる。なお、認証用データ(D3)は、第2記憶媒体82の不正読出不可領域84に記録される。
【0097】
次に、ソフト暗号化部204は、ソフトウエアに認証用データ(D1)を付加した結果を、ソフトキーを用いて暗号化し、第1記憶媒体81の読出可能領域83に記録する(ステップS504)。次に、チケット暗号化部203は、チケットに認証用データ(D1’)および(D3’)を付加した結果を、チケットキーを用いて暗号化し、第2記憶媒体82の読出可能領域85に記録する(ステップS505)。
【0098】
次に、復号認証ソフトが作成され、第1記憶媒体81の書き換え禁止領域86に記録される(ステップS506)。この復号認証ソフトには、暗号化ソフト利用制御部205がそれを実行することによって、暗号化ソフトを復号するソフト復号部207と、暗号化チケットを復号するチケット復号部206と、復号されたチケットに付加された認証用データ(D3’)と第2記憶媒体82に記録された認証用データ(D3)とが所定の関係(D3’)=F(D3)を満たかどうかを検査するデータ認証機構208aと、復号されたソフトウエアに付加された認証用データ(D1)と復号されたチケットに付加された認証用データ(D1’)とが所定の関係(D1’)=F(D1)を満たすかどうかを検査するデータ認証機構208bと、両データ認証機構208a208bの検査が満たされた時に復号されたソフトウエアを実行するソフト実行部209との機能を果たすためのプログラムが組み込まれている。
【0099】
図14は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図14を参照して、ソフト利用者側で行われる処理について説明する。
【0100】
ソフト利用者は、暗号化ソフトなどが記録された第1記憶媒体81と、暗号化チケットなどが記録された第2記憶媒体2とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部500に入力する(ステップS601)。
【0101】
次に、暗号化ソフト利用制御部500は、購入した第1記憶媒体81に記録されている復号認証ソフトを実行する(ステップS602)。これによって、チケット復号部206,ソフト復号部207,データ認証部208aおよび208b,ソフト実行部209が起動する。
【0102】
次に、チケット復号部206は、チケットキーを用いて暗号化チケットを復号する(ステップS603)。そして、データ認証部208bは、復号されたチケットに付加された認証用データ(D3’)と、第2記憶媒体82に記録された認証用データ(D3)とが、所定の関係、すなわち
(D3’)=F(D3)
を満たすかどうかを検査する(ステップS604)。認証用データの検査の結果、上記関係が満たされる場合、ソフト復号部7は、ソフトキーを用いて暗号化ソフトを復号する(ステップS605)。
【0103】
次に、データ認証部208aは、復号されたソフトウエアに付加された認証用データ(D1)と、復号されたチケットに付加された認証用データ(D1’)とが、所定の関係、すなわち
(D1’)=F(D1)
を満たすかどうかを検査する(ステップS606)。認証用データの検査の結果、上記関係が満たされる場合、ソフト実行部209は、復号されたソフトウエアを実行する(ステップS607)。
【0104】
以上説明した第3の実施例によれば、流通されるソフトウエアの実行権(チケット)を有する利用者だけに、そのソフトウエアの利用を可能とし、同時にソフトウエアに対する改ざんの検出が可能となる。すなわち、この構成により、第1の実施例と同様に、ソフトウエアに冗長性を付加するだけで改変の検出が行え、ディジタル署名機構を新たに付加する従来例に比べて、必要とする計算量が少なくてすむ。
【0105】
また、上記第3の実施例では、ソフト提供者がステップS501〜S506を実行するとして説明したが、第1の実施例の場合と同様に、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。
【0106】
また、上記第3の実施例では、暗号化されたソフトウエア、暗号化されたチケット、復号認証ソフトを、読出可能記憶領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【0107】
なお、各ソフトウエアに固有なソフトキーと、各利用者に共通なチケットキーとを用いて、ソフトウエアおよびチケットをそれぞれ暗号化し、認証用データ(D1)を各ソフトに固有または共通とし、認証用データ(D3)を各利用者に固有とするようにしても、上記第3の実施例とほぼ同様の効果を得ることができる。ただし、この構成では、ソフトキーが各ソフトウエアに固有であるため、例えばN個のソフトウエアを利用する場合、N個のソフトキーを第2記憶媒体82の不正読出不可領域84に記録して秘密に管理する必要がある。
【0108】
しかしながら、上記の構成では、多数のソフトウエアを利用する場合に、秘密にキーを管理する負担が大きいことが問題となる。このような問題は、次の構成により解決することができる。すなわち、例えば第3の実施例において、第2記憶媒体82の不正読出不可領域84にチケットキーのみを記録し、ソフトキーはチケットキーを用いて暗号化し、この暗号化されたソフトキーを第2記憶媒体82の読出可能領域85に記録して配布し、ソフト利用時に、暗号化されたソフトキーをチケットキーを用いて復号し、復号されたソフトキーで暗号化されたソフトウエアを復号する。このような構成により、ソフトキーを秘密に管理する必要がなくなる。
【0109】
また、第2の実施例では、各サブソフト(subi)に付加する認証用データ(D2i)と所定の関係を満たす認証用データ(D2i’)を、メインソフトウエア(main)に付加したが、この認証用データ(D2i’)をチケット(実行権データ)に付加するようにしてもよい。
【0110】
また、第1〜第3の実施例では、チケットキーおよびソフトキーを、第2記憶媒体82の不正読出不可領域84に記録する構成をとったが、チケットキーおよびソフトキーを利用者が記憶するパスワードによって定まるキーで暗号化し、暗号化されたチケットキーおよびソフトキーを、第2記憶媒体82の読出可能領域85に記録して配布するようにしてもよい。ここで、パスワードとしては、例えば4桁程度数字や8文字程度の英数字が利用できる。このような構成により、チケットキーやソフトキーを秘密に管理する必要がなくなる。
【0111】
また、第1〜第3の実施例では、第1記憶媒体81に暗号化されたソフトウエアと復号認証ソフトを、第2記憶媒体82に暗号化されたチケットとソフトキーおよびチケットキーをぞれぞれ記録するようにしたが、この構成は普遍的なものではなく、ソフトキーおよびチケットキーを不正読出不可領域に記録し、暗号化されたソフトウエア、暗号化されたチケット、および復号認証機構を読出可能領域に記録するという条件を満たせば、それらをどのような組み合わせで記憶媒体に記録するようにしても構わない。例えば、読出可能領域85を有する第1記憶媒体81と、不正読出不可領域を有する第2記憶媒体82とを準備し、第1記憶媒体81に、暗号化されたソフトウエアと復号認証機構と暗号化されたチケットとを記録し、第2記憶媒体82にソフトキーとチケットキーとを記録して配布してもよい。
【0112】
また、第1〜第3の実施例では、各キーを不正読出不可領域を有する記憶媒体に記録して配布したが、不正読出不可領域を設けた暗号化ソフト実行装置を準備し、この暗号化ソフト実行装置の不正読出不可領域に各キーを記録して利用者に提供するようにしてもよい。
【0113】
また、第1〜第3の実施例では、復号認証ソフトを書き換え禁止領域を有する記憶媒体に記録して配布したが、書き換え禁止領域を設けた暗号化ソフト実行装置を準備し、この暗号化ソフト実行装置の書き換え禁止領域に復号認証ソフトを記録して利用者に提供するようにしてもよい。また、復号認証機構を専用のハードウエアとして組み込んだ暗号化ソフト実行装置を利用者に提供するようにしてもよい。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図2】図1に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図3】図1に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図4】図1に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【図5】複数のサブソフトウエア部を有するソフトウエアのデータ構造を示す図である。
【図6】本発明の第2の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図7】図6に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図8】図6に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図9】図6に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【図10】図6に示すソフトウエア実行システムにおいて実行されるソフトウエアの構成の一例を示す図である。
【図11】図6に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の他の例を示す図である。
【図12】本発明の第3の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図13】図12に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図14】図12に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図15】図12に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【符号の説明】
X1,X2,X3…ソフト提供者側の処理装置
Y1,Y2,Y3…ソフト利用者側の実行装置
1,101,201…キー作成部
2,102,202…認証データ作成部
3,103,203…ソフト暗号化部
4,204…チケット暗号化部
5,50,500…復号認証ソフト
6,106,206…チケット復号部
7,207…ソフト復号部
8,108a,108b,208a,208b…データ認証部
9,209…ソフト実行部
112…メインソフト復号部
113…サブソフト復号部
109a…メインソフト実行部
109b…サブソフト実行部
81…第1記憶媒体
82…第2記憶媒体
83…読出可能領域
84…不正読出不可領域
85…読出可能領域
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a software usage control method, and more particularly to a method for restricting the use of distributed software so that only a specific user can use the software.
[0002]
[Prior art]
Recently, illegal copying of application software used in personal computers has become a major problem. This problem is due to the following properties of digitized data.
・ Replication is simple, quick and inexpensive.
・ The value of original data and duplicated data does not change.
-Difficult to distinguish between original data and modified data.
[0003]
In order to prevent illegally copying and using or selling commercially available software, a method of encrypting and distributing the software is effective. Many methods have been proposed for a method of preventing unauthorized use by unauthorized copying by encrypting software. A typical example is shown below.
[0004]
The first example is a method in which a unique key is assigned to each device (such as a personal computer, a workstation, or a home game machine) that executes software, and the software encrypted with the key is decrypted and executed. (For example, see Japanese Patent Application Laid-Open No. 51-003745). In this configuration, since the software is encrypted with a unique key for each execution device, even if the encrypted software is copied and executed on another execution device, it cannot be executed. However, it is necessary to encrypt the software for each user (execution device). Therefore, for example, it is not suitable for copying and selling a large amount of encrypted software on a CD-ROM (i.e., creating encrypted software as a master disk and using that master disk as a CD-ROM) It is not suitable for being sold on press.
[0005]
In the second example, as disclosed in Japanese Patent Application Laid-Open No. 61-145642, an encryption / decryption mechanism is incorporated in a device executing software, and a unique key is given to each device in the encryption / decryption mechanism, Software is encrypted with a unique file key for each software and written to a storage medium. On the other hand, by inputting the password created by encrypting this file key with a unique key for each device to the execution device, the encrypted file key is first decrypted by the decryption mechanism, and the decrypted file The encrypted software written on the storage medium using the key is decrypted. In the second example, unlike the first example, the software main body is encrypted and individualized with a unique key for each software. Therefore, a large amount of encrypted software can be copied and sold on a storage medium such as a CD-ROM. On the other hand, a password used for decrypting encrypted software is encrypted and individualized with a unique key for each device. Therefore, even if it is attempted to execute the software encrypted by another execution apparatus by copying a password that is individualized for each apparatus, the execution cannot be performed.
[0006]
However, in the second example above, if a password or encryption software is accidentally entered or read into the execution device or has been altered by a computer virus or the like, the It cannot be detected. As a result, in the worst case, the software may run away and adversely affect other computer resources.
[0007]
As a method for preventing such software modification, there is a method using a digital signature (see, for example, Japanese Patent Laid-Open No. 03-286334). Digital signatures are described in detail in Chapter 7 of Kyoritsu Shuppan, Eiji Okamoto “Introduction to Cryptology”. However, when such a digital signature is additionally used in the second example, it is necessary to separately provide a digital signature processing mechanism in addition to the software encryption / decryption mechanism, resulting in an increase in cost.
[0008]
[Problems to be solved by the invention]
As described above, in the first conventional example, the software is encrypted with a unique key for each execution device, so it is not suitable for selling a large amount of encrypted software on a storage medium. There is a problem. Further, the second conventional example has a problem that when an encrypted software or password is altered or erroneously input, it cannot be detected before the software is executed. In order to solve the problem of the second conventional example, when a digital signature is used, a digital signature mechanism for detecting a modification of the encryption software must be added separately, resulting in an increase in cost. This causes another problem.
[0009]
There is a desire to individually encrypt each part of the software and control its use individually. For example, in the case of software with basic functions for general users and several extended functions for specialized users, only basic functions can be decrypted by encrypting the basic functions and extended functions separately. The user can be given a choice that the extended function can also be decrypted. In addition, in software that executes data such as music and video, the execution can be individually controlled by encrypting each data. However, conventionally, it has been impossible to individually encrypt each part of the software and individually control the decryption.
[0010]
Therefore, an object of the present invention is to provide a software usage control method capable of encrypting software in a form independent of each user or execution device.
Another object of the present invention is to provide a software usage control method capable of realizing detection of alterations to encrypted software with an inexpensive configuration.
Still another object of the present invention is to provide a software usage control method capable of individually controlling the execution of data and functions held by each software.
[0011]
[Means for Solving the Problems and Effects of the Invention]
The first invention is a method for restricting the use of software to be distributed so that only users having execution right data can use it.
Creating a first secret key common to each software and a second secret key unique to each user and distributing the first and second keys to the user; ,
A second step of creating first data unique to each software and first authentication data satisfying a predetermined relationship with the first data;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first authentication data to the execution right data, encrypting it using the second key, and distributing the encrypted execution right data to the user;
Decrypting the encrypted software using the first key, decrypting the encrypted execution right data using the second key, and adding the first data added to the decrypted software; And a fifth step of executing the decrypted software according to the decrypted execution right data when the first authentication data added to the decrypted execution right data satisfies a predetermined relationship. .
[0012]
As described above, in the first invention, since the software is encrypted with the first key common to each software, that is, encrypted in a manner independent of each user, the CD-ROM Suitable for mass sales using
In the first invention, it is determined whether or not the first data added to the decrypted software and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship. By determining, the modification to the encrypted software can be detected with an inexpensive configuration. Furthermore, since the decrypted software is executed according to the decrypted execution right data only when the first data and the first authentication data satisfy a predetermined relationship, the use of the modified software Can be prohibited.
[0013]
According to a second invention, in the first invention,
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part,
In the second step, in addition to the first data and the first authentication data, n pieces of second data unique to each sub-software unit, and a predetermined relationship with each of the n pieces of second data N pieces of second authentication data satisfying
In the third step, the first data and the n second authentication data are added to the main software unit, and then encrypted using the first key, and the second data is sent to the sub software unit. After adding, each is encrypted using the first key, and the encrypted main software part and each encrypted sub software part are distributed to the user as encrypted software.
In the fifth step, the encrypted main software portion of the encrypted software is decrypted using the first key, and the encrypted execution right data is decrypted using the second key. When the first data added to the decrypted main software section and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship, the decrypted main software When the use of each encrypted sub software unit is requested from the decrypted main software unit, each encrypted sub software unit is The second data added to each decrypted sub-software unit, the second authentication data added to the decrypted main software unit, When a predetermined relationship, and executes according to the execution right data decoded sub software portion which is decoded.
[0014]
As described above, in the second invention, the second data added to each decrypted sub-software unit and the second authentication data added to the decrypted main software unit include By determining whether or not the predetermined relationship is satisfied, the modification of the encrypted software can be detected for each sub-software unit. As a result, the use of each sub-software unit can be controlled.
[0015]
According to a third invention, in the first or second invention,
The first step is characterized in that each of the created first and second keys is encrypted with a password stored by the user and distributed to the user.
[0016]
As described above, in the third invention, the first and second keys are each encrypted by the password stored by the user and distributed to the user, so that it is not necessary to maintain confidentiality during distribution.
[0017]
4th invention is 1st or 2nd invention,
A sixth step of distributing a decryption authentication program for the decryption authentication process to the user;
The fifth step is executed according to the distributed decryption authentication program.
[0018]
As described above, in the fourth invention, the fifth step executed on the user side can be realized on a general-purpose computer that does not itself have a decryption authentication function.
[0019]
A fifth invention is the fourth invention,
A first storage medium having a readable area and a non-rewritable area and a second storage medium having a readable area and an illegal read impossible area are prepared and encrypted in the readable area of the first storage medium Recorded software, a decryption authentication program is recorded in a non-rewritable area of the first storage medium, encrypted execution right data is recorded in a readable area of the second storage medium, and the second storage It is characterized in that the first and second keys are recorded in the unauthorized reading impossible area of the medium, and the first and second storage media are distributed to users.
[0020]
According to a sixth invention, in the fourth invention,
A first storage medium having a readable area and a non-rewritable area and a second storage medium having an unauthorized read impossible area are prepared, and the execution right encrypted in the readable area of the first storage medium The data and the encrypted software are recorded, the decryption authentication program is recorded in the non-rewritable area of the first storage medium, and the first and second keys are recorded in the illegal read impossible area of the second storage medium. The first and second storage media are distributed to users.
[0021]
According to a seventh invention, in the fourth invention,
The sixth step is characterized in that an execution device that has a storage area that cannot be illegally read and that can execute the decryption authentication program stored in this storage area is distributed to users.
[0022]
In an eighth aspect based on the fourth aspect,
The sixth step is characterized in that an execution device that has a storage area that cannot be written to and that can execute the decryption authentication program stored in the storage area is distributed to the user.
[0023]
According to a ninth invention, in the fourth invention,
The sixth step is characterized in that an execution device incorporating dedicated hardware for executing the decryption authentication program is distributed to the user.
[0024]
A tenth aspect of the invention is a method for restricting the use of distributed software so that only users having execution right data can use it.
Creating a first secret key common to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting using the second key, and distributing the encrypted execution right data to the user;
The encrypted execution right data is decrypted using the second key, and encrypted when the second authentication data added to the decrypted execution right data and the second data satisfy a predetermined relationship. The decrypted software is decrypted using the first key, and first data added to the decrypted software and first authentication data added to the decrypted execution right data are predetermined. A fifth step of executing the decrypted software according to the decrypted execution right data.
[0025]
As described above, in the tenth invention, the software is encrypted with the first key common to each software, that is, encrypted in a manner independent of each user. Suitable for mass sales using
In the tenth invention, the encrypted execution right is determined by determining whether or not the second authentication data added to the decrypted execution right data and the second data satisfy a predetermined relationship. Modifications to the data can be detected with an inexpensive configuration. Further, by determining whether the first data added to the decrypted software and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship, the encryption is performed. It is possible to detect a modification to the software that has been realized with an inexpensive configuration. Furthermore, since the decrypted software is executed according to the decrypted execution right data only when the first data and the first authentication data satisfy a predetermined relationship, the use of the modified software Can be prohibited.
[0026]
In an eleventh aspect based on the tenth aspect,
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part,
In the second step, in addition to the first and second data, the first and second authentication data, n third data unique to each sub-software unit, and the n third data Creating n pieces of third authentication data satisfying a predetermined relationship with the data,
In the third step, after adding the first data and n pieces of third authentication data to the main software unit, the third data is encrypted using the first key, and the third data is stored in each sub-software unit. After each addition, each is encrypted using the first key, and the encrypted main software part and each encrypted sub software part are distributed to the user as encrypted software.
In the fifth step, the encrypted execution right data is decrypted using the second key, and the second authentication data added to the decrypted execution right data and the second data have a predetermined relationship. When the condition is satisfied, the encrypted main software part is decrypted using the first key, and is added to the first data added to the decrypted main software part and the decrypted execution right data. When the first authentication data satisfies a predetermined relationship, the decrypted main software section is executed according to the decrypted execution right data, and each sub-software encrypted from the decrypted main software section When the use of the wear part is requested, each encrypted sub-software part is decrypted using the first key, and third data added to each decrypted sub-software part, Decryption A third authentication data added to the main software part which is when a predetermined relationship, and executes according to the decoded execution right data decoded sub software unit was.
[0027]
As described above, in the eleventh invention, the third data added to each decrypted sub-software unit and the third authentication data added to the decrypted main software unit are By determining whether or not the predetermined relationship is satisfied, the modification of the encrypted software can be detected for each sub-software unit. As a result, the use of each sub-software unit can be controlled.
[0028]
A twelfth aspect of the present invention is a method for restricting the use of distributed software so that only users having execution right data can use it.
Creating a first secret key unique to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting using the second key, and distributing the encrypted execution right data to the user;
The encrypted execution right data is decrypted using the second key, and encrypted when the second authentication data added to the decrypted execution right data and the second data satisfy a predetermined relationship. The decrypted software is decrypted using the first key, and first data added to the decrypted software and first authentication data added to the decrypted execution right data are predetermined. A fifth step of executing the decrypted software according to the decrypted execution right data.
[0029]
A thirteenth aspect of the present invention is a method for restricting the use of software that is distributed so that only users having execution right data can use.
Creating a first secret key unique to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data common to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting using the second key, and distributing the encrypted execution right data to the user;
The encrypted execution right data is decrypted using the second key, and encrypted when the second authentication data added to the decrypted execution right data and the second data satisfy a predetermined relationship. The decrypted software is decrypted using the first key, and first data added to the decrypted software and first authentication data added to the decrypted execution right data are predetermined. A fifth step of executing the decrypted software according to the decrypted execution right data.
[0030]
As described above, in the twelfth and thirteenth inventions, the software is encrypted with the first key unique to each software, that is, encrypted in a manner independent of each user. Suitable for mass sales using CD-ROM.
In the twelfth and thirteenth inventions, the second authentication data added to the decrypted execution right data and the second data are encrypted by determining whether or not the predetermined relationship is satisfied. Modifications to the execution right data can be detected with an inexpensive configuration. Further, by determining whether the first data added to the decrypted software and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship, the encryption is performed. It is possible to detect a modification to the software that has been realized with an inexpensive configuration. Furthermore, since the decrypted software is executed according to the decrypted execution right data only when the first data and the first authentication data satisfy a predetermined relationship, the use of the modified software Can be prohibited.
[0031]
A fourteenth invention is a method for restricting the use of software to be distributed so that only users having execution right data can use it.
A secret first key unique to each software and a secret second key common to each user are created, and the first key is encrypted using the second key and encrypted. A first step of distributing a first key and an unencrypted second key to a user;
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting using the second key, and distributing the encrypted execution right data to the user;
The first key encrypted using the second key and the encrypted execution right data are decrypted, the second authentication data added to the decrypted execution right data, and the second data When the predetermined relationship is satisfied, the encrypted software is decrypted by using the first key, and is added to the first data added to the decrypted software and the decrypted execution right data. A first step of executing the decrypted software according to the decrypted execution right data when the first authentication data satisfies a predetermined relationship.
[0032]
A fifteenth aspect of the present invention is a method for restricting the use of software that is distributed so that only users having execution right data can use.
A first secret key unique to each software and a second secret key unique to each user are created, and the first key is encrypted using the second key and encrypted. A first step of distributing a first key and an unencrypted second key to a user;
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to the user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting using the second key, and distributing the encrypted execution right data to the user;
The second key encrypted using the second key and the encrypted execution right data are decrypted, the second authentication data added to the decrypted execution right data, and the second data When the predetermined relationship is satisfied, the encrypted software is decrypted by using the first key, and is added to the first data added to the decrypted software and the decrypted execution right data. A first step of executing the decrypted software according to the decrypted execution right data when the first authentication data satisfies a predetermined relationship.
[0033]
As described above, in the fourteenth and fifteenth inventions, the software is encrypted with the first key unique to each software, that is, encrypted in a manner independent of each user. Suitable for mass sales using CD-ROM.
In the fourteenth and fifteenth inventions, since the first key is encrypted using the second key, it is not necessary to maintain the confidentiality of the first key during distribution.
In the fourteenth and fifteenth inventions, encryption is performed by determining whether the second authentication data added to the decrypted execution right data and the second data satisfy a predetermined relationship. Modifications to the execution right data can be detected with an inexpensive configuration. Further, by determining whether the first data added to the decrypted software and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship, the encryption is performed. It is possible to detect a modification to the software that has been realized with an inexpensive configuration. Furthermore, since the decrypted software is executed according to the decrypted execution right data only when the first data and the first authentication data satisfy a predetermined relationship, the use of the modified software Can be prohibited.
[0034]
A sixteenth aspect of the present invention is a method for restricting the use of software that is distributed so that only users having execution right data can use.
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part. A first step of creating a second key that is unique to each user and secret, and distributing the first and second keys to the user;
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, n second data unique to each sub-software unit, and n A second step of creating n second authentication data satisfying a predetermined relationship with the second data of
After the first data is added to the main software part, it is encrypted using the first key. After the second data is added to the sub software part, it is encrypted using the first key. A third step of distributing the encrypted main software portion and each encrypted sub-software portion to the user as encrypted software;
The first authentication data and the n second authentication data are added to the execution right data, then encrypted using the second key, and the encrypted execution right data is distributed to the user. Steps,
The encrypted main software portion of the encrypted software is decrypted using the first key, the encrypted execution right data is decrypted using the second key, and the decrypted main software is decrypted. When the first data added to the software section and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship, the decrypted execution of the decrypted main software section When the use of each encrypted sub-software unit is requested from the decrypted main software unit, the encrypted sub-software unit is respectively transmitted using the first key. When the second data that is decrypted and added to each decrypted sub-software unit and the second authentication data that is appended to the decrypted execution right data satisfy a predetermined relationship, And a fifth step of executing accordance issue is execution right data decoded sub software unit was.
[0035]
As described above, in the sixteenth invention, the software is encrypted with the first key common to each software, that is, encrypted in a manner independent of each user. Suitable for mass sales using
In the sixteenth invention, whether the first data added to the decrypted main software section and the first authentication data added to the decrypted execution right data satisfy a predetermined relationship. Therefore, it is possible to detect an alteration to the encrypted main software part with an inexpensive configuration. Also, determining whether the second data added to each decrypted sub-software unit and the second authentication data added to the decrypted execution right data satisfy a predetermined relationship. Thus, alterations to the encrypted sub software part can be detected for each sub software part. Furthermore, since the decrypted subsoftware portion is executed according to the decrypted execution right data only when the second data and the second authentication data satisfy a predetermined relationship, the modified subsoftware The use of the wear part can be prohibited.
[0036]
DETAILED DESCRIPTION OF THE INVENTION
In the following description of the embodiments, execution right data for controlling the use of encrypted software is referred to as a ticket, and a key for encrypting the ticket is referred to as a ticket key. A key used for software encryption is called a soft key.
[0037]
(1) First embodiment
FIG. 1 is a block diagram showing a system configuration for realizing a software usage control method according to the first embodiment of the present invention. In FIG. 1, the processing device X1 on the software provider side includes a key creation unit 1, an authentication data creation unit 2, a ticket encryption unit 3, and a software encryption unit 4. On the other hand, the execution device Y1 on the software user side includes an encryption software usage control unit 5. The encryption software usage control unit 5 is realized by executing decryption authentication software provided by a software provider, and is realized by a ticket decryption unit 6, a software decryption unit 7, a data authentication unit 8, and a software execution unit. 9 and the like.
[0038]
Information (software, ticket, ticket key, etc.) is provided from the software provider to the software user using the first and second storage media 81 and 82. The first storage medium 81 includes a readable area 83 and a rewrite prohibition area 86. The second storage medium 82 includes a readable area 85 and an illegal read impossible area 84.
[0039]
As the first storage medium 81, for example, a CD-ROM can be used. For example, an IC card (smart card) can be used as the second storage medium 82.
[0040]
As the processing device X1 on the software provider side, a personal computer, a workstation, or the like to which a device capable of writing to each of the storage media 81 and 82 is connected can be used. Further, as the execution device Y1 on the software user side, a personal computer, a workstation, a home game device, a personal information terminal, or the like to which a device capable of reading from the storage media 81 and 82 is connected is used. be able to.
[0041]
Next, the operation procedure of the embodiment shown in FIG. 1 will be described. The software provider records the first storage medium 81 in which the encrypted software is recorded, the ticket (execution right data) for using the encrypted software, and the like in the procedure of steps S101 to S106 described later. The second storage medium 82 is created and provided to the user.
[0042]
On the other hand, the software user purchases the first and second storage media 81 and 82 and executes the encryption software in the procedure of steps S201 to S206 described later.
[0043]
FIG. 2 is a flowchart showing a procedure of processing performed on the software provider side. FIG. 4 shows the data structure of the software to which the authentication data (D1) is added and the ticket to which the authentication data (D1 ′) is added. Hereinafter, processing performed on the software provider side will be described with reference to FIGS.
[0044]
First, on the software provider side, software to be used and a ticket (execution right data) that is data for controlling the use of this software are created (step S101). Here, the ticket includes a software identification number, software execution condition data, and the like. The execution condition data may include the number of executable times and the executable period in addition to data indicating execution permission. When the execution condition data includes the number of executions and the execution period, the software execution unit 9 stores the current software execution status data (current time, current software execution number, etc.) and the execution A function for checking status data and execution right data is added.
[0045]
Next, the key creation unit 1 creates a secret soft key that is common to each software and a secret ticket key that is unique to each user, and records it in the unauthorized reading impossible area 84 of the second storage medium 82. (Step S102). Here, the soft key and the ticket key are numerical values of the size (number of digits) determined by the encryption method to be used and the required security, and specifically, for example, numerical values of about 64 bits.
[0046]
Next, the authentication data creation unit 2 creates authentication data (D1) and (D1 ′) unique to each software (step S103). Here, the authentication data (D1) and (D1 ′) are specifically numeric values of about 64 bits, for example. Further, the authentication data (D1) and (D1 ′) are related to a certain relational expression F.
(D1 ′) = F (D1)
It shall satisfy the conditions of As the simplest example of the relational expression F, F is an equation, that is,
(D1 ′) = (D1)
It can also be.
[0047]
Next, the software encryption unit 4 encrypts the result of adding the authentication data (D1) to the software using a soft key and records it in the readable area 83 of the first storage medium 81 (step S104). . Next, the ticket encryption unit 3 encrypts the result of adding the authentication data (D1 ′) to the ticket using the ticket key and records it in the readable area 85 of the second storage medium 82 (step S105). .
[0048]
Next, decryption authentication software is created and recorded in the rewrite prohibition area 86 of the first storage medium 81 (step S106). The decryption authentication software includes a software decryption unit 7 that decrypts the encrypted software, a ticket decryption unit 6 that decrypts the encrypted ticket, and a decrypted software that is executed by the encryption software usage control unit 5. The data authentication unit 8 for checking whether the authentication data (D1) and (D1 ′) added to the wear and the decrypted ticket satisfy a predetermined relationship (D1 ′ = F (D1)), A program for performing the function of the software execution unit 9 for executing the decrypted software when it is satisfied is incorporated.
[0049]
FIG. 3 is a flowchart showing a procedure of processing performed on the software user side. Hereinafter, with reference to FIG. 3, processing performed on the software user side will be described.
[0050]
The software user purchases the first storage medium 81 in which the encryption software is recorded and the second storage medium 2 in which the encryption ticket is recorded from the software provider, and the data recorded in these storage media Is input to the encryption software usage control unit 5 (step S201).
[0051]
Next, the encryption software usage control unit 5 executes the decryption authentication software recorded in the purchased first storage medium 81 (step S202). As a result, the ticket decryption unit 6, the software decryption unit 7, the data authentication unit 8, and the software execution unit 9 are activated.
[0052]
Next, the software decryption unit 7 decrypts the encrypted software using the soft key (step S203). Next, the ticket decryption unit 6 decrypts the encrypted ticket using the ticket key (step S204).
[0053]
Next, the data authenticating unit 8 has a predetermined relationship between the authentication data (D1) added to the decrypted software and the authentication data (D1 ′) added to the decrypted ticket, that is,
(D1 ′) = F (D1)
Whether or not the above relationship is satisfied (step S205). If the above relationship is satisfied as a result of the verification of the authentication data, the software execution unit 9 executes the decrypted software (step S206).
[0054]
According to the first embodiment described above, the software can be used only for a user who has a ticket for the software in circulation, and at the same time, data predetermined for the software and the ticket can be used. By encrypting after adding, it is possible to detect the modification of the encrypted software or ticket depending on whether or not the added data appears at the time of decryption.
[0055]
Note that the method of encrypting the data to be encrypted after adding redundancy and checking whether the redundancy appears at the time of decryption is called a redundant encryption method (Kyoritsu Publishing, Eiji Okamoto, “Cryptography Theory”). Refer to “Introduction” on page 131). In order to realize this redundant encryption method, an encryption method having error propagation characteristics is required. Here, the error propagation characteristic is a characteristic in which any one bit change of the encrypted data affects each bit of the decrypted data. Examples of encryption schemes having such error propagation characteristics are described in the above-mentioned Kyoritsu Publishing Co., Ltd., Eiji Okamoto's “Introduction to Cryptography”, Example P132 of Example 132, and “Encryption” translated by Nature Corp. The block chaining method (P71) using plaintext and ciphertext feedback can be used.
[0056]
With the configuration as described above, it is only necessary to add redundancy for alteration detection, and the amount of calculation required is smaller than when a digital signature part is newly added.
[0057]
As described above, in the first embodiment, the software and the ticket corresponding thereto are each encrypted including data associated with each other, and it is checked whether the data associated with each decryption result appears correctly. Thus, a configuration is adopted in which the presence / absence of alteration of the encryption software and the encryption ticket is collectively detected. With this configuration, it is not necessary to notify the user of data for authentication in advance, and a new effect is produced in which it is possible to inspect whether the encrypted software and the ticket have been altered in a lump.
[0058]
In the first embodiment, it has been described that the software provider executes steps S101 to S106. However, the software provider process is divided into the software creator, service provider, and software seller processes. It is also possible to do. As an example, the following configuration is possible.
[0059]
First, the software creator creates software and execution right data for the software according to step S101. At this time, control information for controlling software encryption (for example, which part of the software is encrypted) is included in the execution right data. On the other hand, the service provider executes steps S102 to S104, creates a soft key and a ticket key, and records them in the storage medium 2. Also, the authentication data is created, the result of adding it to the software is encrypted, and this encrypted software is recorded in the storage medium 1. Then, the storage medium 1, the storage medium 2, and the authentication data (D1 ′) are given to the software seller. Next, the software seller encrypts the ticket according to step S105, records the encrypted ticket in the storage medium 2, and sells the storage medium 1 and the storage medium 2 to the software user.
[0060]
A configuration in which the software creator processes steps S102 to S104 (or a part thereof) processed by the service provider is also possible.
[0061]
In the first embodiment, the case where encrypted software and an encrypted ticket are stored in a storage medium having a readable area and distributed is described. You may make it distribute using a medium.
[0062]
(Second embodiment)
By the way, in the software protection method according to the first embodiment, in the software having a large number of functions and the software using a large number of data, the modification is detected for each function and each data, You cannot control the use of. Such a problem can be solved as follows.
[0063]
In the following, as shown in FIG. 5, the software includes one main software part (main) and a plurality of sub software parts (sub1, sub2,..., Subn) used from the main software part. Consider the case where For example, in software composed of a basic function and a plurality of extended functions, the basic function corresponds to the main software section, and each extended function corresponds to the sub software section. In software that reproduces a plurality of data (moving images, sounds, etc.), the reproduction function corresponds to the main software section, and each data corresponds to each sub software section.
[0064]
FIG. 3 is a block diagram showing a system configuration for realizing the software usage control method according to the second embodiment of the present invention. In FIG. 3, the processing device X2 on the software provider side includes a key creation unit 101, an authentication data creation unit 102, a ticket encryption unit 103, a main software encryption unit 110, and a sub software encryption unit 111. I have. On the other hand, the execution device Y2 on the software user side includes an encrypted software usage control unit 50. The encryption software usage control unit 50 is realized by executing decryption authentication software provided by a software provider, and the ticket decryption unit 106, the main software decryption unit 112, the sub software decryption unit 113, data Authentication units 108a and 108b and software execution units 109a and 109b are included.
[0065]
Information (software, ticket, ticket key, etc.) is provided from the software provider to the software user using the first and second storage media 81 and 82. The first storage medium 81 includes a readable area 83 and a rewrite prohibition area 86. The second storage medium 82 includes a readable area 85 and an illegal read impossible area 84.
[0066]
As the first storage medium 81, for example, a CD-ROM can be used. For example, an IC card (smart card) can be used as the second storage medium 82.
[0067]
As the processing device X2 on the software provider side, a personal computer, a workstation, or the like to which a device capable of writing to each of the storage media 81 and 82 is connected can be used. Further, as the execution device Y2 on the software user side, a personal computer, a workstation, a home game device, a personal information terminal, or the like to which a device capable of reading from the storage media 81 and 82 is connected is used. be able to.
[0068]
Next, the operation procedure of the embodiment shown in FIG. 6 will be described. The software provider records the first storage medium 81 in which the encrypted software is recorded, the ticket (execution right data) for using the encrypted software, and the like in the steps S301 to S306 described later. The second storage medium 82 is created and provided to the user.
[0069]
On the other hand, the software user purchases the first and second storage media 81 and 82, and executes the encryption software in the steps S401 to S409 described later.
[0070]
FIG. 7 is a flowchart showing a procedure of processing performed on the software provider side. FIG. 9 shows the main software to which the authentication data (D1) (D2i ′) (i = 1, 2,..., N) is added, the sub software to which (D2i) is added, and the authentication software. The data structure of a ticket to which data (D1 ′) is added is shown. Hereinafter, processing performed on the software provider side will be described with reference to FIGS. 7 and 9.
[0071]
Here, as shown in FIG. 7, in the case of software comprising a main software part (main) and n sub-software parts (sub) (i = 1, 2,..., N). Will be described.
[0072]
First, on the software provider side, software to be used and a ticket (execution right data) that is data for controlling the use of the software are created (step S301). Here, the ticket includes a software identification number, software execution condition data, and the like. The execution condition data may include the number of executable times and the executable period in addition to data indicating execution permission. When the execution condition data includes the number of executable times and the executable period, the software execution units 109a and 109b have a function of storing current software execution status data (current time, current software execution number, etc.), A function for checking the execution status data and the execution right data is added.
[0073]
Next, the key creation unit 101 creates a secret soft key that is common to each software and a secret ticket key that is unique to each user, and records it in the unauthorized reading impossible area 84 of the second storage medium 82. (Step S302). Here, the soft key and the ticket key are numerical values of the size (number of digits) determined by the encryption method to be used and the required security, and specifically, for example, numerical values of about 64 bits.
[0074]
Next, the authentication data creation unit 102 includes authentication data (D1) and (D1 ′) unique to each software, and n authentication data (D2i) and (D2i ′) unique to each sub-software unit. ) (I = 1, 2,..., N) is created (step S303). Here, the authentication data (D1) (D1 ′) (D2i) (D2i ′) is specifically a numerical value of about 64 bits, for example. The authentication data (D1) and (D1 ′) and (D2i) and (D2i ′) are related to a certain relational expression F.
(D1 ′) = F (D1)
(D2i ′) = F (D2i) (i = 1, 2,..., N)
It shall satisfy the conditions of As the simplest example of the relational expression F, F is an equation, that is,
(D1 ′) = (D1)
(D2i ′) = (D2i)
It can also be.
[0075]
Next, the main software encryption unit 110 uses the result soft key obtained by adding authentication data (D1) and authentication data (D21 ′, D22 ′,..., D2n ′) to the main software unit (main). The sub-software encryption unit 111 encrypts the result of adding the authentication data (D2i) to each sub-software unit (subi) using a soft key, and encrypts the main software unit and The encrypted sub-software portions are collectively recorded in the readable area 83 of the first storage medium 81 as encrypted software (step S304). Next, the ticket encryption unit 103 encrypts the result of adding the authentication data (D1 ′) to the ticket using the ticket key and records it in the readable area 85 of the second storage medium 82 (step S305). .
[0076]
Next, decryption authentication software is created and recorded in the rewrite prohibition area 86 of the first storage medium 81 (step S306). The decryption authentication software includes a main function decrypting unit 112 that decrypts the encrypted main software and a sub software decryption that decrypts the encrypted sub software by executing the encryption software usage control unit 5. Unit 113, ticket decryption unit 106 for decrypting the encrypted ticket, decrypted main software, and authentication data (D1) and (D1 ′) added to the decrypted ticket, respectively, have a predetermined relationship (D1 ′ = F (D1)) is satisfied, and the authentication data (D2i) and (D2i ′) respectively added to the decrypted main software and the decrypted subsoftware are predetermined. The data authentication unit 108b for inspecting whether or not the relation (D2i ′ = F (D2i)) is satisfied, and when each inspection is satisfied A program for performing the functions of the software execution units 109a and 109b for executing the decrypted software is incorporated.
[0077]
FIG. 8 is a flowchart showing a procedure of processing performed on the software user side. Hereinafter, with reference to FIG. 8, processing performed on the software user side will be described.
[0078]
The software user purchases the first storage medium 81 in which the encryption software is recorded and the second storage medium 2 in which the encryption ticket is recorded from the software provider, and the data recorded in these storage media Is input to the encryption software usage control unit 50 (step S401).
[0079]
Next, the encryption software usage control unit 50 executes the decryption authentication software recorded in the purchased first storage medium 81 (step S402). As a result, the ticket decryption unit 106, the main software decryption unit 112, the sub software decryption unit 113, the data authentication units 108a and 108b, and the software execution units 109a and 109b are activated.
[0080]
Next, the main software decryption unit 112 decrypts the encrypted main software using the soft key (step S403), and the ticket decryption unit 106 decrypts the encrypted ticket using the ticket key (step S404). Next, the data authentication unit 108a includes the authentication data (D1) added to the decrypted main software unit and the authentication data (D1 ′) added to the decrypted ticket.
(D1 ′) = F (D1)
Whether the above relationship is satisfied (step S405). When this check is satisfied, the software execution unit 109a executes the decrypted main software unit (step S406).
[0081]
Next, when the main software section (main) requests execution of each sub software section, the sub software decryption section 113 decrypts each encrypted sub software section using a soft key (step S407). ). Next, the data authentication unit 109b includes the authentication data (D2) added to the decrypted sub-software unit (subi), and the authentication data (D2 ′) added to the decrypted main software unit. But,
(D2 ′) = F (D2)
Whether the above relationship is satisfied (step S408). When this check is satisfied, the software execution unit 109b executes each decoded sub software unit (sub) (step S409).
[0082]
According to the second embodiment described above, it is possible to detect alteration and control of execution of each encrypted sub-software. That is, the second embodiment, like the first embodiment, can detect alterations only by adding redundancy to the software, and is necessary as compared with the conventional example in which a digital signature mechanism is newly added. Less computation is required.
[0083]
In the second embodiment, the software provider executes steps S301 to S306. However, as in the first embodiment, the software provider processes the software provider and the service provider. It is also possible to divide and execute the processing by the operator and the software seller.
[0084]
In the second embodiment, the case where encrypted software, encrypted ticket, and decryption authentication software are stored in a storage medium having a readable storage area and distributed is described. You may make it distribute using various communication media, such as communication.
[0085]
In addition, according to the second embodiment, it is possible to share a sub-software unit that is commonly used by a plurality of software. This will be described with reference to a specific example shown in FIG. As shown in FIG. 9, each of the software A, B, and C includes a main software part (mainA, mainB, and mainC) and a plurality of sub software parts. The software A includes sub software (sub1, sub2, sub3), the software B includes sub software (sub2, sub3, sub4), and the software C includes sub software (sub1, sub4). )including. Thus, each sub software part (sub1, sub2, sub3, sub4) is utilized from a plurality of software, respectively. In such a case, in the second embodiment, since the main software part and the sub software part of the software are individually encrypted, the sub software part used for each software is duplicated. There is no need to hold it. Therefore, as shown in FIG. 11, it becomes possible to share a common sub-software unit. With this, when recording these software on the same storage medium, the recording capacity can be reduced.
[0086]
(Third embodiment)
In the first and second embodiments described above, authentication data unique to each software is added, while software and a software key common to each software and a ticket key unique to each user are used. The ticket encryption configuration enables distribution of valid tickets to each software and for each user, but uses a common software key for each software and a common ticket key for each user. Even in the configuration in which the software and the ticket are respectively encrypted, it is possible to distribute an effective ticket to each software and for each user by the configuration described below.
[0087]
FIG. 12 is a block diagram showing a system configuration for realizing the software usage control method according to the second embodiment of the present invention. In FIG. 12, the processing device X3 on the software provider side includes a key creation unit 201, an authentication data creation unit 2022, a ticket encryption unit 203, and a software encryption unit 204. On the other hand, the execution device Y3 on the software user side includes an encrypted software usage control unit 500. The encryption software usage control unit 500 is realized by executing decryption authentication software provided by a software provider, and includes a ticket decryption unit 206, a software decryption unit 207, data authentication units 208a and 208b, Execution unit 209.
[0088]
Information (software, ticket, ticket key, etc.) is provided from the software provider to the software user using the first and second storage media 81 and 82. The first storage medium 81 includes a readable area 83 and a rewrite prohibition area 86. The second storage medium 82 includes a readable area 85 and an illegal read impossible area 84.
[0089]
As the first storage medium 81, for example, a CD-ROM can be used. For example, an IC card (smart card) can be used as the second storage medium 82.
[0090]
As the processing device X3 on the software provider side, a personal computer, a workstation, or the like to which a device capable of writing to each of the storage media 81 and 82 is connected can be used. Further, as the execution device Y3 on the software user side, a personal computer, a workstation, a home game device, a personal information terminal, or the like to which a device capable of reading from the storage media 81 and 82 is connected is used. be able to.
[0091]
Next, the operation procedure of the third embodiment shown in FIG. 12 will be described. The software provider records the first storage medium 81 in which the encrypted software is recorded and the ticket (execution right data) for using the encrypted software in the procedure of steps S501 to S506 described later. The second storage medium 82 is created and provided to the user.
[0092]
On the other hand, the software user purchases the first and second storage media 81 and 82, and executes the encryption software in the procedure of steps S601 to S607 described later.
[0093]
FIG. 13 is a flowchart illustrating a procedure of processing performed on the software provider side. FIG. 15 shows the data structure of the software to which the authentication data (D1) is added and the ticket to which the authentication data (D1 ′) and (D3 ′) are added. Hereinafter, the processing performed on the software provider side will be described with reference to FIGS. 13 and 15.
[0094]
First, on the software provider side, software to be used and a ticket (execution right data) that is data for controlling the use of the software are created (step S501). Here, the ticket includes a software identification number, software execution condition data, and the like. The execution condition data may include the number of executable times and the executable period in addition to data indicating execution permission. When the execution condition data includes the number of executable times and the executable period, the software execution unit 209 stores the current software execution status data (current time, current software execution number, etc.) and the execution A function for checking status data and execution right data is added.
[0095]
Next, the key creation unit 201 creates a secret soft key common to each software and a ticket key common to each user, and records them in the unauthorized reading impossible area 84 of the second storage medium 82 (Step S1). S502). Here, the soft key and the ticket key are numerical values of the size (number of digits) determined by the encryption method to be used and the required security, and specifically, for example, numerical values of about 64 bits.
[0096]
Next, the authentication data creation unit 202 creates authentication data (D1) and (D1 ′) unique to each software, and data (D3) and (D3 ′) unique to each user (step S3). S503). Here, each data (D1) (D1 ′) (D3) (D3 ′) is specifically a numerical value of about 64 bits, for example. Further, the authentication data (D1) and (D1 ′) and (D3) and (D3 ′) are related to a certain relational expression F.
(D1 ′) = F (D1)
(D3 ′) = F (D3)
It shall satisfy the conditions of As the simplest example of the relational expression F, F is an equation, that is,
(D1 ′) = (D1)
(D3 ′) = (D3)
It can also be. Note that the authentication data (D3) is recorded in the unauthorized reading impossible area 84 of the second storage medium 82.
[0097]
Next, the software encryption unit 204 encrypts the result of adding the authentication data (D1) to the software using a soft key and records it in the readable area 83 of the first storage medium 81 (step S504). . Next, the ticket encryption unit 203 encrypts the result of adding the authentication data (D1 ′) and (D3 ′) to the ticket using the ticket key, and records it in the readable area 85 of the second storage medium 82. (Step S505).
[0098]
Next, decryption authentication software is created and recorded in the rewrite prohibition area 86 of the first storage medium 81 (step S506). The decryption authentication software includes a decryption unit 207 that decrypts the encrypted software, a ticket decryption unit 206 that decrypts the encrypted ticket, and a decrypted ticket. Authentication for checking whether the authentication data (D3 ′) added to the data and the authentication data (D3) recorded in the second storage medium 82 satisfy a predetermined relationship (D3 ′) = F (D3) The mechanism 208a and the authentication data (D1) added to the decrypted software and the authentication data (D1 ′) added to the decrypted ticket have a predetermined relationship (D1 ′) = F (D1). The functions of the data authentication mechanism 208b for checking whether the data is satisfied and the software execution unit 209 for executing the decrypted software when the checks of both the data authentication mechanisms 208a 208b are satisfied The program to fulfill is built in.
[0099]
FIG. 14 is a flowchart showing a procedure of processing performed on the software user side. Hereinafter, with reference to FIG. 14, processing performed on the software user side will be described.
[0100]
The software user purchases the first storage medium 81 in which the encryption software is recorded and the second storage medium 2 in which the encryption ticket is recorded from the software provider, and the data recorded in these storage media Is input to the encryption software usage control unit 500 (step S601).
[0101]
Next, the encryption software usage control unit 500 executes the decryption authentication software recorded in the purchased first storage medium 81 (step S602). As a result, the ticket decryption unit 206, the software decryption unit 207, the data authentication units 208a and 208b, and the software execution unit 209 are activated.
[0102]
Next, the ticket decryption unit 206 decrypts the encrypted ticket using the ticket key (step S603). Then, the data authentication unit 208b has a predetermined relationship between the authentication data (D3 ′) added to the decrypted ticket and the authentication data (D3) recorded in the second storage medium 82, that is,
(D3 ′) = F (D3)
It is inspected whether or not the condition is satisfied (step S604). If the above relationship is satisfied as a result of the verification of the authentication data, the soft decryption unit 7 decrypts the encrypted software using the soft key (step S605).
[0103]
Next, the data authentication unit 208a has a predetermined relationship between the authentication data (D1) added to the decrypted software and the authentication data (D1 ′) added to the decrypted ticket, that is,
(D1 ′) = F (D1)
It is inspected whether or not the condition is satisfied (step S606). If the above relationship is satisfied as a result of the verification of the authentication data, the software execution unit 209 executes the decrypted software (step S607).
[0104]
According to the third embodiment described above, only the user who has the right to execute the distributed software (ticket) can use the software, and at the same time, the alteration of the software can be detected. . That is, with this configuration, as in the first embodiment, it is possible to detect alterations simply by adding redundancy to the software, and the amount of calculation required compared to the conventional example in which a digital signature mechanism is newly added. Less.
[0105]
In the third embodiment, it has been described that the software provider executes steps S501 to S506. However, as in the case of the first embodiment, the processing of the software provider is performed by the software creator and the service provider. It is also possible to divide and execute the processing by the operator and the software seller.
[0106]
In the third embodiment, the case where encrypted software, encrypted ticket, and decryption authentication software are stored in a storage medium having a readable storage area and distributed is described. You may make it distribute using various communication media, such as communication.
[0107]
The software and ticket are encrypted using a software key unique to each software and a ticket key common to each user, and authentication data (D1) is unique or common to each software, and authentication is performed. Even if the use data (D3) is made unique to each user, substantially the same effect as in the third embodiment can be obtained. However, in this configuration, since the software key is unique to each software, for example, when using N pieces of software, the N pieces of soft keys are recorded in the illegal read impossible area 84 of the second storage medium 82. It must be kept secret.
[0108]
However, in the above configuration, when using a lot of software, there is a problem that the burden of secretly managing keys is large. Such a problem can be solved by the following configuration. That is, for example, in the third embodiment, only the ticket key is recorded in the unauthorized reading impossible area 84 of the second storage medium 82, the soft key is encrypted using the ticket key, and the encrypted soft key is stored in the second key. It is recorded and distributed in the readable area 85 of the storage medium 82, and when using the software, the encrypted software key is decrypted using the ticket key, and the software encrypted with the decrypted software key is decrypted. Such a configuration eliminates the need for secretly managing soft keys.
[0109]
Further, in the second embodiment, authentication data (D2i) to be added to each sub software (sub) and authentication data (D2i ′) satisfying a predetermined relationship are added to the main software (main). The authentication data (D2i ′) may be added to the ticket (execution right data).
[0110]
In the first to third embodiments, the ticket key and the soft key are recorded in the unauthorized reading impossible area 84 of the second storage medium 82. However, the user stores the ticket key and the soft key. Encryption may be performed with a key determined by a password, and the encrypted ticket key and soft key may be recorded in the readable area 85 of the second storage medium 82 and distributed. Here, as the password, for example, about 4 digits or about 8 alphanumeric characters can be used. Such a configuration eliminates the need for secretly managing ticket keys and soft keys.
[0111]
In the first to third embodiments, the encrypted software and decryption authentication software are stored in the first storage medium 81, and the encrypted ticket, soft key, and ticket key are stored in the second storage medium 82. Each configuration is recorded, but this configuration is not universal, and software keys and ticket keys are recorded in an illegally unreadable area, and encrypted software, encrypted tickets, and decryption authentication mechanisms As long as the condition of recording in the readable area is satisfied, any combination of them may be recorded on the storage medium. For example, a first storage medium 81 having a readable area 85 and a second storage medium 82 having an illegal read impossible area are prepared, and the encrypted software, the decryption authentication mechanism, and the encryption are stored in the first storage medium 81. The converted ticket may be recorded, and the soft key and the ticket key may be recorded on the second storage medium 82 and distributed.
[0112]
Further, in the first to third embodiments, each key is recorded and distributed in a storage medium having an illegal read impossible area. However, an encryption software execution device provided with an illegal read impossible area is prepared and this encryption is performed. Each key may be recorded and provided to the user in the unauthorized reading impossible area of the software execution device.
[0113]
In the first to third embodiments, the decryption authentication software is recorded and distributed in a storage medium having a rewrite prohibition area. However, an encryption software execution device having a rewrite prohibition area is prepared, and this encryption software is provided. The decryption authentication software may be recorded in the rewrite prohibition area of the execution device and provided to the user. Further, an encryption software execution device incorporating the decryption authentication mechanism as dedicated hardware may be provided to the user.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a software execution system for realizing a software usage control method according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing an operation on the software provider side of the software execution system shown in FIG. 1;
FIG. 3 is a flowchart showing an operation on the software user side of the software execution system shown in FIG. 1;
4 is a diagram illustrating an example of a data structure of software and a ticket provided from a software provider to a software user in the software execution system illustrated in FIG. 1. FIG.
FIG. 5 is a diagram illustrating a data structure of software having a plurality of sub software units.
FIG. 6 is a block diagram showing a configuration of a software execution system for realizing a software usage control method according to a second embodiment of the present invention.
7 is a flowchart showing an operation on the software provider side of the software execution system shown in FIG. 6;
FIG. 8 is a flowchart showing the operation on the software user side of the software execution system shown in FIG. 6;
9 is a diagram showing an example of data structures of software and tickets provided from a software provider to software users in the software execution system shown in FIG. 6. FIG.
10 is a diagram showing an example of the configuration of software executed in the software execution system shown in FIG.
11 is a diagram showing another example of software and ticket data structures provided from the software provider to the software user in the software execution system shown in FIG. 6; FIG.
FIG. 12 is a block diagram showing a configuration of a software execution system for realizing a software usage control method according to a third embodiment of the present invention.
13 is a flowchart showing an operation on the software provider side of the software execution system shown in FIG.
14 is a flowchart showing the operation on the software user side of the software execution system shown in FIG.
15 is a diagram illustrating an example of a data structure of software and a ticket provided from a software provider to a software user in the software execution system illustrated in FIG.
[Explanation of symbols]
X1, X2, X3 ... Processing device on the software provider side
Y1, Y2, Y3 ... Execution device on the software user side
1, 101, 201 ... Key creation unit
2, 102, 202 ... Authentication data creation unit
3, 103, 203 ... Soft encryption unit
4,204 ... Ticket encryption unit
5, 50, 500 ... Decryption authentication software
6, 106, 206 ... ticket decryption unit
7,207 ... soft decoding part
8, 108a, 108b, 208a, 208b ... Data authentication unit
9,209 ... software execution part
112 ... Main software decoding unit
113 ... Sub soft decoding unit
109a ... main software execution unit
109b ... Sub software execution unit
81. First storage medium
82. Second storage medium
83 ... Readable area
84: Unauthorized read disabled area
85 ... Readable area

Claims (16)

実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データとを作成する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記暗号化されたソフトウエアを前記第1のキーを用いて復号し、前記暗号化された実行権データを前記第2のキーを用いて復号し、前記復号されたソフトウエアに付加されている前記第1のデータと、前記復号された実行権データに付加されている前記第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
Creating a first secret key common to each software and a second secret key unique to each user and distributing the first and second keys to the user; ,
A second step of creating first data unique to each software and first authentication data satisfying a predetermined relationship with the first data;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
The encrypted software is decrypted using the first key, the encrypted execution right data is decrypted using the second key, and added to the decrypted software When the first data and the first authentication data added to the decrypted execution right data satisfy the predetermined relationship, the decrypted software is executed according to the decrypted execution right data. A software usage control method comprising: a fifth step.
前記ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、
前記第2のステップは、前記第1のデータおよび前記第1の認証データに加えて、各サブソフトウエア部に固有なn個の第2のデータと、このn個の第2のデータとそれぞれ所定の関係を満たすn個の第2の認証データとを作成し、
前記第3のステップは、前記第1のデータおよび前記n個の第2の認証データを前記メインソフトウエア部に付加した後、前記第1のキーを用いて暗号化し、前記第2のデータを前記サブソフトウエア部にそれぞれ付加した後、前記第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
前記第5のステップは、前記暗号化されたソフトウエアの前記暗号化されたメインソフトウエア部を前記第1のキーを用いて復号すると共に、前記暗号化された実行権データを前記第2のキーを用いて復号し、復号されたメインソフトウエア部に付加されている前記第1のデータと、復号された実行権データに付加されている前記第1の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第2のデータと、復号されたメインソフトウエア部に付加されている第2の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする、請求項1に記載のソフトウエア利用制御方法。
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part,
In the second step, in addition to the first data and the first authentication data, n second data unique to each sub-software unit, and the n second data, N pieces of second authentication data satisfying a predetermined relationship are created,
In the third step, after adding the first data and the n second authentication data to the main software unit, the third data is encrypted using the first key, and the second data is encrypted. After being added to each of the sub software parts, the first software is used for encryption, and the encrypted main software part and each of the encrypted sub software parts are converted into encrypted software. Distributed to users as
In the fifth step, the encrypted main software portion of the encrypted software is decrypted using the first key, and the encrypted execution right data is decrypted in the second step. The first data decrypted using the key and added to the decrypted main software section and the first authentication data added to the decrypted execution right data have the predetermined relationship. When satisfied, execute the decrypted main software unit according to the decrypted execution right data, and when the decrypted main software unit requests use of each of the encrypted sub-software units, encryption Each of the sub-software sections is decrypted using the first key, the second data added to each of the decrypted sub-software sections, and the decrypted main software 2. The method according to claim 1, wherein when the second authentication data added to the first section satisfies the predetermined relationship, the decrypted subsoftware section is executed according to the decrypted execution right data. Software usage control method.
前記第1のステップは、作成した前記第1および第2のキーをそれぞれ利用者の記憶するパスワードで暗号化して利用者に配付することを特徴とする、請求項1または2に記載のソフトウエア利用制御方法。3. The software according to claim 1, wherein the first step encrypts the created first and second keys with a password stored by the user and distributes the same to the user. Usage control method. 復号認証処理のための復号認証プログラムを利用者に配付する第6のステップをさらに備え、
前記第5のステップは、配付された前記復号認証プログラムに従って、実行されることを特徴とする、請求項1または2に記載のソフトウエア利用制御方法。
A sixth step of distributing a decryption authentication program for the decryption authentication process to the user;
The software usage control method according to claim 1 or 2, wherein the fifth step is executed according to the distributed authentication program.
読出可能領域と書き換え不可領域とを有する第1の記憶媒体と、読出可能領域と不正読出不可領域とを有する第2の記憶媒体とを準備し、第1の記憶媒体の前記読出可能領域に前記暗号化されたソフトウエアを記録し、第1の記憶媒体の書き換え不可領域に前記復号認証プログラムを記録し、第2の記憶媒体の読出可能領域に前記暗号化された実行権データを記録し、第2の記憶媒体の不正読出不可領域に前記第1および第2のキーを記録し、これら第1および第2の記憶媒体を利用者に配布することを特徴とする、請求項4に記載のソフトウエア利用制御方法。A first storage medium having a readable area and a non-rewritable area and a second storage medium having a readable area and an illegal read impossible area are prepared, and the readable area of the first storage medium Recording encrypted software, recording the decryption authentication program in a non-rewritable area of the first storage medium, recording the encrypted execution right data in a readable area of the second storage medium, 5. The first and second keys are recorded in an illegally unreadable area of a second storage medium, and the first and second storage media are distributed to users. Software usage control method. 読出可能領域と書き換え不可領域とを有する第1の記憶媒体と、不正読出不可領域とを有する第2の記憶媒体とを準備し、第1の記憶媒体の読出可能領域に前記暗号化された実行権データおよび前記暗号化されたソフトウエアを記録し、第1の記憶媒体の書き換え不可領域に前記復号認証プログラムを記録し、第2の記憶媒体の不正読出不可領域に第1および第2のキーを記録し、これら第1および第2の記憶媒体を利用者に配布することを特徴とする、請求項4に記載のソフトウエア利用制御方法。A first storage medium having a readable area and a non-rewritable area and a second storage medium having an unauthorized read impossible area are prepared, and the encrypted execution is performed on the readable area of the first storage medium. The right data and the encrypted software are recorded, the decryption authentication program is recorded in the non-rewritable area of the first storage medium, and the first and second keys are recorded in the illegal read-disabled area of the second storage medium. 5. The software use control method according to claim 4, wherein the first and second storage media are distributed to users. 前記第6のステップは、不正読出が不可能な記憶領域を有し、この記憶領域に格納された前記復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする、請求項4に記載のソフトウエア利用制御方法。The sixth step has a storage area that cannot be illegally read, and distributes to the user an execution device that can execute the decryption authentication program stored in the storage area. The software usage control method according to claim 4. 前記第6のステップは、書き込みが不可能な記憶領域を有し、この記憶領域に格納された前記復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする、請求項4に記載のソフトウエア利用制御方法。The sixth step has a storage area where writing is impossible, and distributes to the user an execution device capable of executing the decryption authentication program stored in the storage area. Item 5. The software usage control method according to Item 4. 前記第6のステップは、前記復号認証プログラムを実行する専用のハードウエア組み込んだ実行装置を利用者に配付することを特徴とする、請求項4に記載のソフトウエア利用制御方法。5. The software use control method according to claim 4, wherein the sixth step distributes to the user an execution device incorporating dedicated hardware for executing the decryption authentication program. 実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1および第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記暗号化された実行権データを前記第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
Creating a first secret key common to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
The encrypted execution right data is decrypted using the second key, and the second authentication data added to the decrypted execution right data and the second data satisfy the predetermined relationship. When the encrypted software is decrypted using the first key, the first data added to the decrypted software and the decrypted execution right data are added to the first data. And a fifth step of executing the decrypted software according to the decrypted execution right data when the authentication data satisfies the predetermined relationship.
前記ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、
前記第2のステップは、前記第1および第2のデータ、前記第1および第2の認証データに加えて、各サブソフトウエア部に固有なn個の第3のデータと、このn個の第3のデータとそれぞれ所定の関係を満たすn個の第3の認証データとを作成し、
前記第3のステップは、前記第1のデータおよび前記n個の第3の認証データを前記メインソフトウエア部に付加した後、前記第1のキーを用いて暗号化し、第3のデータを各前記サブソフトウエア部にそれぞれ付加した後、前記第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
前記第5のステップは、前記暗号化された実行権データを前記第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたメインソフトウエア部を前記第1のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を前記第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第3のデータと、復号されたメインソフトウエア部に付加されている第3の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする、請求項10に記載のソフトウエア利用制御方法。
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part,
In addition to the first and second data and the first and second authentication data, the second step includes n third data unique to each sub-software unit, and the n pieces of data. Creating third data and n third authentication data satisfying a predetermined relationship,
In the third step, after adding the first data and the n third authentication data to the main software unit, the third data is encrypted using the first key, and each third data is encrypted. After being added to each of the sub software parts, the first software is used for encryption, and the encrypted main software part and each of the encrypted sub software parts are converted into encrypted software. Distributed to users as
In the fifth step, the encrypted execution right data is decrypted using the second key, second authentication data added to the decrypted execution right data, the second data, Satisfying the predetermined relationship, the encrypted main software part is decrypted using the first key, and the first data added to the decrypted main software part is decrypted. When the first authentication data added to the execution right data satisfies the predetermined relationship, the decrypted main software unit is executed according to the decrypted execution right data, and the decrypted main software unit When the use of each encrypted sub-software unit is requested from, each encrypted sub-software unit is decrypted using the first key, and each decrypted sub-software unit is decrypted. When the third data added to the section and the third authentication data added to the decrypted main software section satisfy the predetermined relationship, the decrypted sub software section is decrypted. The software usage control method according to claim 10, wherein the software usage control method is executed according to execution right data.
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1および第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記暗号化された実行権データを前記第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
Creating a first secret key unique to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
The encrypted execution right data is decrypted using the second key, and the second authentication data added to the decrypted execution right data and the second data satisfy the predetermined relationship. When the encrypted software is decrypted using the first key, the first data added to the decrypted software and the decrypted execution right data are added to the first data. And a fifth step of executing the decrypted software according to the decrypted execution right data when the authentication data satisfies the predetermined relationship.
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに共通な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1および第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記暗号化された実行権データを前記第2のキーを用いて復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
Creating a first secret key unique to each software and a second secret key common to each user, and distributing the first and second keys to the user; ,
First data common to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
The encrypted execution right data is decrypted using the second key, and the second authentication data added to the decrypted execution right data and the second data satisfy the predetermined relationship. When the encrypted software is decrypted using the first key, the first data added to the decrypted software and the decrypted execution right data are added to the first data. And a fifth step of executing the decrypted software according to the decrypted execution right data when the authentication data satisfies the predetermined relationship.
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に共通で秘密の第2のキーとを作成し、第2のキーを用いて第1のキーを暗号化し、暗号化された第1のキーおよび暗号化されていない第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1および第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記第2のキーを用いて前記暗号化された第1のキーおよび前記暗号化された実行権データを復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記復号された第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
A secret first key unique to each software and a secret second key common to each user are created, and the first key is encrypted using the second key and encrypted. A first step of distributing a first key and an unencrypted second key to a user;
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
Decrypting the encrypted first key and the encrypted execution right data using the second key, second authentication data added to the decrypted execution right data, and the second When the data satisfies the predetermined relationship, the encrypted software is decrypted using the decrypted first key, and the first data added to the decrypted software; And a fifth step of executing the decrypted software according to the decrypted execution right data when the first authentication data added to the decrypted execution right data satisfies the predetermined relationship. Wear usage control method.
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、第2のキーを用いて第1のキーを暗号化し、暗号化された第1のキーおよび暗号化されていない第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各利用者に固有な第2のデータと、この第2のデータと所定の関係を満たす第2の認証データとを作成し、この第2のデータを利用者に配付する第2のステップと、
前記第1のデータを前記ソフトウエアに付加した後、前記第1のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第3のステップと、
前記第1および第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記第2のキーを用いて前記暗号化された第1のキーおよび前記暗号化された実行権データを復号し、復号された実行権データに付加された第2の認証データと、前記第2のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記復号された第1のキーを用いて復号し、復号されたソフトウエアに付加されている第1のデータと、復号された実行権データに付加されている第1の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
A first secret key unique to each software and a second secret key unique to each user are created, and the first key is encrypted using the second key and encrypted. A first step of distributing a first key and an unencrypted second key to a user;
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, second data unique to each user, the second data and a predetermined data Creating second authentication data that satisfies the relationship, and distributing the second data to the user;
A third step of adding the first data to the software, encrypting the first data using the first key, and distributing the encrypted software to a user;
A fourth step of adding the first and second authentication data to the execution right data, encrypting the execution right data using the second key, and distributing the encrypted execution right data to a user;
Decrypting the encrypted first key and the encrypted execution right data using the second key, second authentication data added to the decrypted execution right data, and the second When the data satisfies the predetermined relationship, the encrypted software is decrypted using the decrypted first key, and the first data added to the decrypted software; And a fifth step of executing the decrypted software according to the decrypted execution right data when the first authentication data added to the decrypted execution right data satisfies the predetermined relationship. Wear usage control method.
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
前記ソフトウエアは、1つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるn個(nは1以上の整数)のサブソフトウエア部とを含み、
各ソフトウエアに共通で秘密の第1のキーと、各利用者に固有で秘密の第2のキーとを作成し、これら第1および第2のキーを利用者に配布する第1のステップと、
各ソフトウエアに固有な第1のデータと、この第1のデータと所定の関係を満たす第1の認証データと、各サブソフトウエア部に固有なn個の第2のデータと、このn個の第2のデータとそれぞれ所定の関係を満たすn個の第2の認証データとを作成する第2のステップと、
前記第1のデータを前記メインソフトウエア部に付加した後、前記第1のキーを用いて暗号化し、前記第2のデータを前記サブソフトウエア部にそれぞれ付加した後、前記第1のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付する第3のステップと、
前記第1の認証データおよび前記n個の第2の認証データを前記実行権データに付加した後、前記第2のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第4のステップと、
前記暗号化されたソフトウエアの前記暗号化されたメインソフトウエア部を前記第1のキーを用いて復号すると共に、前記暗号化された実行権データを前記第2のキーを用いて復号し、復号されたメインソフトウエア部に付加されている前記第1のデータと、復号された実行権データに付加されている前記第1の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第1のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第2のデータと、復号された実行権データに付加されている第2の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行する第5のステップとを備える、ソフトウエア利用制御方法。
A method for restricting the use of software that is distributed so that only users with execution right data can use it,
The software includes one main software part and n (n is an integer of 1 or more) sub-software parts used by the main software part,
Creating a first secret key common to each software and a second secret key unique to each user and distributing the first and second keys to the user; ,
First data unique to each software, first authentication data satisfying a predetermined relationship with the first data, n second data unique to each sub-software unit, and n A second step of creating n second authentication data satisfying a predetermined relationship with the second data of
After adding the first data to the main software unit, the first data is encrypted using the first key, and after adding the second data to the sub software unit, the first key is added. A third step of distributing the encrypted main software part and each encrypted sub software part to the user as encrypted software;
The first authentication data and the n second authentication data are added to the execution right data, and then encrypted using the second key, and the encrypted execution right data is distributed to the user. A fourth step to:
Decrypting the encrypted main software portion of the encrypted software using the first key and decrypting the encrypted execution right data using the second key; When the first data added to the decrypted main software section and the first authentication data added to the decrypted execution right data satisfy the predetermined relationship, the decrypted main When the software section is executed in accordance with the decrypted execution right data, and when the decrypted main software section requests the use of each encrypted sub software section, each encrypted sub software section Are decrypted using the first key, respectively, and the second data added to each decrypted sub-software unit and the second authorization added to the decrypted execution right data. When the data and meets the predetermined relationship, and a fifth step of executing accordance execution right data decoded sub software unit that is decoded, the software usage control method.
JP25496295A 1995-10-02 1995-10-02 Software usage control method Expired - Lifetime JP3624971B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25496295A JP3624971B2 (en) 1995-10-02 1995-10-02 Software usage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25496295A JP3624971B2 (en) 1995-10-02 1995-10-02 Software usage control method

Publications (2)

Publication Number Publication Date
JPH0997175A JPH0997175A (en) 1997-04-08
JP3624971B2 true JP3624971B2 (en) 2005-03-02

Family

ID=17272292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25496295A Expired - Lifetime JP3624971B2 (en) 1995-10-02 1995-10-02 Software usage control method

Country Status (1)

Country Link
JP (1) JP3624971B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2264203T3 (en) * 1997-05-13 2006-12-16 Passlogix, Inc. GENERALIZED USER IDENTIFICATION AND AUTHENTICATION SYSTEM.
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
JP4752239B2 (en) * 2000-03-09 2011-08-17 株式会社日立製作所 Common key encryption method and apparatus
KR20000053933A (en) * 2000-05-10 2000-09-05 류종렬 System for confirming of original software and the method thereof
WO2003013054A1 (en) * 2001-07-17 2003-02-13 Sharp Kabushiki Kaisha Apparatus and method for generating data for detecting false alteration of encrypted data during processing
KR100477645B1 (en) * 2002-05-25 2005-03-23 삼성전자주식회사 Method of generating serial number and apparatus thereof
KR100559151B1 (en) * 2003-04-23 2006-03-13 한국정보인증주식회사 Security maintenance method and apparatus for CD-ROM
JP4547907B2 (en) * 2003-12-22 2010-09-22 横河電機株式会社 controller
JP4545517B2 (en) * 2004-08-05 2010-09-15 株式会社エヌ・ティ・ティ・ドコモ Program execution control device and execution right information transfer method
US8490191B2 (en) * 2006-06-21 2013-07-16 Wibu-Systems Ag Method and system for intrusion detection

Also Published As

Publication number Publication date
JPH0997175A (en) 1997-04-08

Similar Documents

Publication Publication Date Title
US5109413A (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
KR100188505B1 (en) Method and apparatus enabling software trial using an encryption header
US6789177B2 (en) Protection of data during transfer
US6683954B1 (en) Key encryption using a client-unique additional key for fraud prevention
JP4084827B2 (en) Unauthorized content detection system
CN1329909C (en) Secure single drive copy method and apparatus
JP4170466B2 (en) Command authentication method
JP3243331B2 (en) Method for creating layered medium for software management, apparatus for creating layered medium for software management, and layered medium for software management
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US20070219917A1 (en) Digital License Sharing System and Method
US20060149683A1 (en) User terminal for receiving license
US8769675B2 (en) Clock roll forward detection
US6847948B1 (en) Method and apparatus for secure distribution of software/data
WO2007106798A2 (en) Systems and methods for authoring and protecting digital property
JP2003058840A (en) Information protection management program utilizing rfid-loaded computer recording medium
WO2002059894A1 (en) Recording medium, information processing device, content distribution server, method, program, and its recording medium
JPH0383132A (en) Software protection control system
JP3624971B2 (en) Software usage control method
JP2000122861A (en) Illegal alteration prevention system for data or the like and enciphering device used with the system
Nair et al. Enabling DRM-preserving digital content redistribution
EA006661B1 (en) Method and device for protecting information against unauthorized use
KR100523843B1 (en) Apparatus for ACL-based control mechanism for access control in DRM client software
CN101587723B (en) Anti-copy optical storage medium and manufacturing method thereof
JP2004046592A (en) Content management system
CN101132275B (en) A Security Protection System for Realizing the Right to Use Digital Content

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041111

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071210

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081210

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term