(57)【特許請求の範囲】
【請求項１】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データとを作成する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記暗号化されたソフトウエアを前記第１のキーを用いて復号し、前記暗号化された実行権データを前記第２のキーを用いて復号し、前記復号されたソフトウエアに付加されている前記第１のデータと、前記復号された実行権データに付加されている前記第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項２】
前記ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、
前記第２のステップは、前記第１のデータおよび前記第１の認証データに加えて、各サブソフトウエア部に固有なｎ個の第２のデータと、このｎ個の第２のデータとそれぞれ所定の関係を満たすｎ個の第２の認証データとを作成し、
前記第３のステップは、前記第１のデータおよび前記ｎ個の第２の認証データを前記メインソフトウエア部に付加した後、前記第１のキーを用いて暗号化し、前記第２のデータを前記サブソフトウエア部にそれぞれ付加した後、前記第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
前記第５のステップは、前記暗号化されたソフトウエアの前記暗号化されたメインソフトウエア部を前記第１のキーを用いて復号すると共に、前記暗号化された実行権データを前記第２のキーを用いて復号し、復号されたメインソフトウエア部に付加されている前記第１のデータと、復号された実行権データに付加されている前記第１の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第２のデータと、復号されたメインソフトウエア部に付加されている第２の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする、請求項１に記載のソフトウエア利用制御方法。
【請求項３】
前記第１のステップは、作成した前記第１および第２のキーをそれぞれ利用者の記憶するパスワードで暗号化して利用者に配付することを特徴とする、請求項１または２に記載のソフトウエア利用制御方法。
【請求項４】
復号認証処理のための復号認証プログラムを利用者に配付する第６のステップをさらに備え、
前記第５のステップは、配付された前記復号認証プログラムに従って、実行されることを特徴とする、請求項１または２に記載のソフトウエア利用制御方法。
【請求項５】
読出可能領域と書き換え不可領域とを有する第１の記憶媒体と、読出可能領域と不正読出不可領域とを有する第２の記憶媒体とを準備し、第１の記憶媒体の前記読出可能領域に前記暗号化されたソフトウエアを記録し、第１の記憶媒体の書き換え不可領域に前記復号認証プログラムを記録し、第２の記憶媒体の読出可能領域に前記暗号化された実行権データを記録し、第２の記憶媒体の不正読出不可領域に前記第１および第２のキーを記録し、これら第１および第２の記憶媒体を利用者に配布することを特徴とする、請求項４に記載のソフトウエア利用制御方法。
【請求項６】
読出可能領域と書き換え不可領域とを有する第１の記憶媒体と、不正読出不可領域とを有する第２の記憶媒体とを準備し、第１の記憶媒体の読出可能領域に前記暗号化された実行権データおよび前記暗号化されたソフトウエアを記録し、第１の記憶媒体の書き換え不可領域に前記復号認証プログラムを記録し、第２の記憶媒体の不正読出不可領域に第１および第２のキーを記録し、これら第１および第２の記憶媒体を利用者に配布することを特徴とする、請求項４に記載のソフトウエア利用制御方法。
【請求項７】
前記第６のステップは、不正読出が不可能な記憶領域を有し、この記憶領域に格納された前記復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする、請求項４に記載のソフトウエア利用制御方法。
【請求項８】
前記第６のステップは、書き込みが不可能な記憶領域を有し、この記憶領域に格納された前記復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする、請求項４に記載のソフトウエア利用制御方法。
【請求項９】
前記第６のステップは、前記復号認証プログラムを実行する専用のハードウエア組み込んだ実行装置を利用者に配付することを特徴とする、請求項４に記載のソフトウエア利用制御方法。
【請求項１０】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１および第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記暗号化された実行権データを前記第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項１１】
前記ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、
前記第２のステップは、前記第１および第２のデータ、前記第１および第２の認証データに加えて、各サブソフトウエア部に固有なｎ個の第３のデータと、このｎ個の第３のデータとそれぞれ所定の関係を満たすｎ個の第３の認証データとを作成し、
前記第３のステップは、前記第１のデータおよび前記ｎ個の第３の認証データを前記メインソフトウエア部に付加した後、前記第１のキーを用いて暗号化し、第３のデータを各前記サブソフトウエア部にそれぞれ付加した後、前記第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
前記第５のステップは、前記暗号化された実行権データを前記第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたメインソフトウエア部を前記第１のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を前記第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第３のデータと、復号されたメインソフトウエア部に付加されている第３の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする、請求項１０に記載のソフトウエア利用制御方法。
【請求項１２】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１および第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記暗号化された実行権データを前記第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項１３】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに共通な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１および第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記暗号化された実行権データを前記第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項１４】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、第２のキーを用いて第１のキーを暗号化し、暗号化された第１のキーおよび暗号化されていない第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１および第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記第２のキーを用いて前記暗号化された第１のキーおよび前記暗号化された実行権データを復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記復号された第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項１５】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、第２のキーを用いて第１のキーを暗号化し、暗号化された第１のキーおよび暗号化されていない第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
前記第１のデータを前記ソフトウエアに付加した後、前記第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
前記第１および第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記第２のキーを用いて前記暗号化された第１のキーおよび前記暗号化された実行権データを復号し、復号された実行権データに付加された第２の認証データと、前記第２のデータとが前記所定の関係を満たすとき、前記暗号化されたソフトウエアを前記復号された第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが前記所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【請求項１６】
実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
前記ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、
各ソフトウエアに共通で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各サブソフトウエア部に固有なｎ個の第２のデータと、このｎ個の第２のデータとそれぞれ所定の関係を満たすｎ個の第２の認証データとを作成する第２のステップと、
前記第１のデータを前記メインソフトウエア部に付加した後、前記第１のキーを用いて暗号化し、前記第２のデータを前記サブソフトウエア部にそれぞれ付加した後、前記第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付する第３のステップと、
前記第１の認証データおよび前記ｎ個の第２の認証データを前記実行権データに付加した後、前記第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
前記暗号化されたソフトウエアの前記暗号化されたメインソフトウエア部を前記第１のキーを用いて復号すると共に、前記暗号化された実行権データを前記第２のキーを用いて復号し、復号されたメインソフトウエア部に付加されている前記第１のデータと、復号された実行権データに付加されている前記第１の認証データとが前記所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から前記暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第２のデータと、復号された実行権データに付加されている第２の認証データとが前記所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行する第５のステップとを備える、ソフトウエア利用制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウエア利用制御方法に関し、より特定的には、特定の利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法に関する。
【０００２】
【従来の技術】
最近、パソコンなどで利用されるアプリケーションソフトウエアに関する違法コピーが大きな問題となっている。この問題は、ディジタル化されたデータが有する次の性質に起因するものである。
・複製が簡単、短時間、かつ安価に行なえる。
・原始データと複製データの有する価値は変化しない。
・原始データと改変されたデータとの識別が難しい。
【０００３】
市販のソフトウエアを非合法的に複写して使用したり販売することを防止するため、ソフトウエアを暗号化して配布する方法が有効である。ソフトウエアを暗号化することで不正コピーによる不正使用を防止する方法に関して、多くの方式が提案されている。その代表的な例を以下に示す。
【０００４】
第１の例は、ソフトウエアを実行する装置（パソコン、ワークステーション、家庭用ゲーム機など）毎に異なる固有のキーを与え、そのキーで暗号化されたソフトウエアを復号し実行するという方法である（例えば、特開昭５１−００３７４５号公報参照）。この構成では、ソフトウエアは、各実行装置毎に一意的なキーで暗号化されるため、暗号化されたソフトウエアをコピーして他の実行装置で実行しようとしても実行できない。しかしながら、各利用者（実行装置）用にそれぞれソフトウエアの暗号化を行なう必要がある。そのため、例えば、暗号化されたソフトウエアをＣＤ−ＲＯＭに大量に複写し販売するのには適さない（すなわち、暗号化されたソフトウエアを原盤として作成して、その原盤を用いてＣＤ−ＲＯＭにプレスして販売するのに適さない）などの短所がある。
【０００５】
第２の例は、特開昭６１−１４５６４２号公報に開示されているように、ソフトウエアを実行する装置に暗号復号機構を組み込み、この暗号復号機構に装置毎に一意的なキーを与え、ソフトウエアをソフトウエア毎に一意的なファイルキーで暗号化して記憶媒体に書き込んでおく。一方、このファイルキーを装置毎に一意的なキーで暗号化して作成されたパスワードを実行装置に入力することにより、まず暗号化されたファイルキーが暗号復号機構にて復号され、復号されたファイルキーを用いて記憶媒体に書き込まれた暗号化されたソフトウエアが復号される。この第２の例では、第１の例とは違ってソフトウエア本体は、ソフトウエア毎に一意的なキーで暗号化され個別化される。したがって、暗号化されたソフトウエアをＣＤ−ＲＯＭなどの記憶媒体に大量に複写して販売することができる。一方、暗号化されたソフトウエアの復号に利用されるパスワードは、装置毎に一意的なキーで暗号化され個別化される。したがって、装置毎に個別化されるパスワードをコピーして他の実行装置で暗号化されたソフトウエアを実行しようとしても実行できない。
【０００６】
しかしながら、上記第２の例では、実行装置にパスワードや暗号化ソフトウエアが誤って入力されたり読み取られた場合や、コンピュータウイルスなどにより改変されていた場合に、ソフトウエアを実行する前にそれらを検出することはできない。このため、最悪の場合ソフトウエアが暴走して他のコンピュータ資源に悪影響を及ぼしかねない。
【０００７】
上記のようなソフトウエアの改変を防止する方法として、ディジタル署名を利用する方法がある（例えば特開平０３−２８６３３４号公報参照）。なお、ディジタル署名については、共立出版、岡本栄司著「暗号理論入門」第７章に詳しく説明されている。しかしながら、このようなディジタル署名を第２の例に追加的に使用する場合、ソフトウエアの暗号化／復号機構に加えて、ディジタル署名処理機構を別途設ける必要がありコストアップとなる。
【０００８】
【発明が解決しようとする課題】
以上説明したように、第１の従来例では、ソフトウエアを実行装置毎に固有のキーで暗号化するため、暗号化されたソフトウエアを記憶媒体に大量に複写して販売するのに適さないといった問題点がある。また、第２の従来例では、暗号化されたソフトウエアやパスワードに対する改変や誤入力が発生した時に、それをソフトウエアを実行する前に検出できないといった問題点がある。この第２の従来例の問題点を解消するために、ディジタル署名を利用する場合、暗号化ソフトウエアの改変を検出するためのディジタル署名機構を別途追加しなければならず、コストの上昇を招くという別の問題点を生じる。
【０００９】
なお、ソフトウエアの各部分を個別に暗号化し、その利用を個別に制御したいという要望がある。例えば、一般ユーザ向けに基本機能を、そして専門ユーザ向けにいくつかの拡張機能を備えるソフトウエアの場合、基本機能と拡張機能とを別々に暗号化することにより、基本機能のみを復号実行できたり、拡張機能も復号実行できたりといった選択を利用者に与えることができる。また、音楽やビデオなどのデータを実行するソフトウエアにおいては、各データ毎に暗号化することにより、その実行を個別に制御できる。しかしながら、従来は、ソフトウエアの各部分を個別に暗号化し、その復号実行を個別に制御することはできなかった。
【００１０】
それ故に、本発明の目的は、ソフトウエアを各利用者や実行装置に依存しない形で暗号化できるソフトウエア利用制御方法を提供することである。
本発明の他の目的は、暗号化されたソフトウエアに対する改変の検出を、安価な構成で実現できるソフトウエア利用制御方法を提供することである。
本発明のさらに他の目的は、各ソフトウエアが保有するデータや機能の実行を、個別に制御することのできるソフトウエア利用制御方法を提供することである。
【００１１】
【課題を解決するための手段および発明の効果】
第１の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データとを作成する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
暗号化されたソフトウエアを第１のキーを用いて復号し、暗号化された実行権データを第２のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００１２】
上記のように、第１の発明では、ソフトウエアは、各ソフトウエアに共通な第１のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、ＣＤ−ＲＯＭ等を利用した大量販売に適する。
また、第１の発明では、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第１のデータと第１の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【００１３】
第２の発明は、第１の発明において、
ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、
第２のステップは、第１のデータおよび第１の認証データに加えて、各サブソフトウエア部に固有なｎ個の第２のデータと、このｎ個の第２のデータとそれぞれ所定の関係を満たすｎ個の第２の認証データとを作成し、
第３のステップは、第１のデータおよびｎ個の第２の認証データをメインソフトウエア部に付加した後、第１のキーを用いて暗号化し、第２のデータをサブソフトウエア部にそれぞれ付加した後、第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
第５のステップは、暗号化されたソフトウエアの暗号化されたメインソフトウエア部を第１のキーを用いて復号すると共に、暗号化された実行権データを第２のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第２のデータと、復号されたメインソフトウエア部に付加されている第２の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする。
【００１４】
上記のように、第２の発明では、復号された各サブソフトウエア部にそれぞれ付加されている第２のデータと、復号されたメインソフトウエア部に付加されている第２の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアの改変を、各サブソフトウエア部毎に検出できる。その結果、各サブソフトウエア部毎に、その利用を制御することができる。
【００１５】
第３の発明は、第１または第２の発明において、
第１のステップは、作成した第１および第２のキーをそれぞれ利用者の記憶するパスワードで暗号化して利用者に配付することを特徴とする。
【００１６】
上記のように、第３の発明では、第１および第２のキーが、それぞれ利用者の記憶するパスワードで暗号化されて利用者に配付されるので、配付時に秘密性を保つ必要がない。
【００１７】
第４の発明は、第１または第２の発明において、
復号認証処理のための復号認証プログラムを利用者に配付する第６のステップをさらに備え、
第５のステップは、配付された復号認証プログラムに従って、実行されることを特徴とする。
【００１８】
上記のように、第４の発明では、利用者側で実行される第５のステップを、それ自体は復号認証機能を持たない汎用のコンピュータ上で実現できる。
【００１９】
第５の発明は、第４の発明において、
読出可能領域と書き換え不可領域とを有する第１の記憶媒体と、読出可能領域と不正読出不可領域とを有する第２の記憶媒体とを準備し、第１の記憶媒体の読出可能領域に暗号化されたソフトウエアを記録し、第１の記憶媒体の書き換え不可領域に復号認証プログラムを記録し、第２の記憶媒体の読出可能領域に暗号化された実行権データを記録し、第２の記憶媒体の不正読出不可領域に第１および第２のキーを記録し、これら第１および第２の記憶媒体を利用者に配布することを特徴とする。
【００２０】
第６の発明は、第４の発明において、
読出可能領域と書き換え不可領域とを有する第１の記憶媒体と、不正読出不可領域とを有する第２の記憶媒体とを準備し、第１の記憶媒体の読出可能領域に暗号化された実行権データおよび暗号化されたソフトウエアを記録し、第１の記憶媒体の書き換え不可領域に復号認証プログラムを記録し、第２の記憶媒体の不正読出不可領域に第１および第２のキーを記録し、これら第１および第２の記憶媒体を利用者に配布することを特徴とする。
【００２１】
第７の発明は、第４の発明において、
第６のステップは、不正読出が不可能な記憶領域を有し、この記憶領域に格納された復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする。
【００２２】
第８の発明は、第４の発明において、
第６のステップは、書き込みが不可能な記憶領域を有し、この記憶領域に格納された復号認証プログラムを実行することのできる実行装置を利用者に配付することを特徴とする。
【００２３】
第９の発明は、第４の発明において、
第６のステップは、復号認証プログラムを実行する専用のハードウエア組み込んだ実行装置を利用者に配付することを特徴とする。
【００２４】
第１０の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに共通で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１および第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
暗号化された実行権データを第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００２５】
上記のように、第１０の発明では、ソフトウエアは、各ソフトウエアに共通な第１のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、ＣＤ−ＲＯＭ等を利用した大量販売に適する。
また、第１０の発明では、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第１のデータと第１の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【００２６】
第１１の発明は、第１０の発明において、
ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、
第２のステップは、第１および第２のデータ、第１および第２の認証データに加えて、各サブソフトウエア部に固有なｎ個の第３のデータと、このｎ個の第３のデータとそれぞれ所定の関係を満たすｎ個の第３の認証データとを作成し、
第３のステップは、第１のデータおよびｎ個の第３の認証データをメインソフトウエア部に付加した後、第１のキーを用いて暗号化し、第３のデータを各サブソフトウエア部にそれぞれ付加した後、第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付し、
第５のステップは、暗号化された実行権データを第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたメインソフトウエア部を第１のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第３のデータと、復号されたメインソフトウエア部に付加されている第３の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行することを特徴とする。
【００２７】
上記のように、第１１の発明では、復号された各サブソフトウエア部にそれぞれ付加されている第３のデータと、復号されたメインソフトウエア部に付加されている第３の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアの改変を、各サブソフトウエア部毎に検出できる。その結果、各サブソフトウエア部毎に、その利用を制御することができる。
【００２８】
第１２の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１および第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
暗号化された実行権データを第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００２９】
第１３の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに共通な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１および第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
暗号化された実行権データを第２のキーを用いて復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００３０】
上記のように、第１２および第１３の発明では、ソフトウエアは、各ソフトウエアに固有な第１のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、ＣＤ−ＲＯＭ等を利用した大量販売に適する。
また、第１２および第１３の発明では、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第１のデータと第１の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【００３１】
第１４の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に共通で秘密の第２のキーとを作成し、第２のキーを用いて第１のキーを暗号化し、暗号化された第１のキーおよび暗号化されていない第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１および第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
第２のキーを用いて暗号化された第１のキーおよび暗号化された実行権データを復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００３２】
第１５の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
各ソフトウエアに固有で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、第２のキーを用いて第１のキーを暗号化し、暗号化された第１のキーおよび暗号化されていない第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各利用者に固有な第２のデータと、この第２のデータと所定の関係を満たす第２の認証データとを作成し、この第２のデータを利用者に配付する第２のステップと、
第１のデータをソフトウエアに付加した後、第１のキーを用いて暗号化し、この暗号化されたソフトウエアを利用者に配布する第３のステップと、
第１および第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
第２のキーを用いて暗号化された第２のキーおよび暗号化された実行権データを復号し、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすとき、暗号化されたソフトウエアを第１のキーを用いて復号し、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたソフトウエアを復号された実行権データに従って実行する第５のステップとを備えている。
【００３３】
上記のように、第１４および第１５の発明では、ソフトウエアは、各ソフトウエアに固有な第１のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、ＣＤ−ＲＯＭ等を利用した大量販売に適する。
また、第１４および第１５の発明では、第１のキーは、第２のキーを用いて暗号化されるため、配付時に第１のキーの秘密性を保つ必要がない。
また、第１４および第１５の発明では、復号された実行権データに付加された第２の認証データと、第２のデータとが所定の関係を満たすかどうかを判定することで、暗号化された実行権データに対する改変を、安価な構成で検出できる。また、復号されたソフトウエアに付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたソフトウエアに対する改変を、安価な構成で検出できる。さらに、第１のデータと第１の認証データとが所定の関係を満たす場合のみ、復号されたソフトウエアを復号された実行権データに従って実行するようにしているため、改変されたソフトウエアの利用を禁止することができる。
【００３４】
第１６の発明は、実行権データを有する利用者だけが利用可能となるように、流通するソフトウエアの利用を制限するための方法であって、
ソフトウエアは、１つのメインソフトウエア部と、当該メインソフトウエア部によって利用されるｎ個（ｎは１以上の整数）のサブソフトウエア部とを含み、各ソフトウエアに共通で秘密の第１のキーと、各利用者に固有で秘密の第２のキーとを作成し、これら第１および第２のキーを利用者に配布する第１のステップと、
各ソフトウエアに固有な第１のデータと、この第１のデータと所定の関係を満たす第１の認証データと、各サブソフトウエア部に固有なｎ個の第２のデータと、このｎ個の第２のデータとそれぞれ所定の関係を満たすｎ個の第２の認証データとを作成する第２のステップと、
第１のデータをメインソフトウエア部に付加した後、第１のキーを用いて暗号化し、第２のデータをサブソフトウエア部にそれぞれ付加した後、第１のキーを用いてそれぞれ暗号化し、暗号化されたメインソフトウエア部と暗号化された各サブソフトウエア部とを、暗号化されたソフトウエアとして利用者に配付する第３のステップと、
第１の認証データおよびｎ個の第２の認証データを実行権データに付加した後、第２のキーを用いて暗号化し、この暗号化された実行権データを利用者に配付する第４のステップと、
暗号化されたソフトウエアの暗号化されたメインソフトウエア部を第１のキーを用いて復号すると共に、暗号化された実行権データを第２のキーを用いて復号し、復号されたメインソフトウエア部に付加されている第１のデータと、復号された実行権データに付加されている第１の認証データとが所定の関係を満たすとき、復号されたメインソフトウエア部を復号された実行権データに従って実行し、この復号されたメインソフトウエア部から暗号化された各サブソフトウエア部の利用が要求されたとき、暗号化された各サブソフトウエア部を第１のキーを用いてそれぞれ復号し、復号された各サブソフトウエア部に付加されている第２のデータと、復号された実行権データに付加されている第２の認証データとが所定の関係を満たすとき、復号されたサブソフトウエア部を復号された実行権データに従って実行する第５のステップとを備えている。
【００３５】
上記のように、第１６の発明では、ソフトウエアは、各ソフトウエアに共通な第１のキーで暗号化されるため、すなわち各利用者に依存しない形で暗号化されるため、ＣＤ−ＲＯＭ等を利用した大量販売に適する。
また、第１６の発明では、復号されたメインソフトウエア部に付加されている第１のデータと、復号された実行権データに付加された第１の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたメインソフトウエア部に対する改変を、安価な構成で検出できる。また、復号された各サブソフトウエア部に付加されている第２のデータと、復号された実行権データに付加されている第２の認証データとが所定の関係を満たすかどうかを判定することで、暗号化されたサブソフトウエア部に対する改変を、各サブソフトウエア部毎に検出できる。さらに、第２のデータと第２の認証データとが所定の関係を満たす場合のみ、復号されたサブソフトウエア部を復号された実行権データに従って実行するようにしているため、改変されたサブソフトウエア部の利用を禁止することができる。
【００３６】
【発明の実施の形態】
以下の実施例の説明では、暗号化されたソフトウエアの利用を制御するための実行権データをチケットと称し、このチケットを暗号化するためのキーをチケットキーと称している。また、ソフトウエアの暗号化に利用するキーをソフトキーと称している。
【００３７】
（１）第１の実施例
図１は、本発明の第１の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図１において、ソフト提供者側の処理装置Ｘ１は、キー作成部１と、認証データ作成部２と、チケット暗号化部３と、ソフト暗号化部４とを備えている。一方、ソフト利用者側の実行装置Ｙ１は、暗号化ソフト利用制御部５を備えている。この暗号化ソフト利用制御部５は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部６と、ソフト復号部７と、データ認証部８と、ソフト実行部９とを含む。
【００３８】
ソフト提供者からソフト利用者への情報（ソフトウエア，チケット，チケットキー等）の提供は、第１および第２記憶媒体８１および８２を用いて行われる。第１記憶媒体８１は、読出可能領域８３と、書き換え禁止領域８６とを含む。第２記憶媒体８２は、読出可能領域８５と、不正読出不可領域８４とを含む。
【００３９】
上記第１記憶媒体８１としては、例えばＣＤ−ＲＯＭなどが利用できる。また、上記第２記憶媒体８２としては、例えばＩＣカード（スマートカード）などが利用できる。
【００４０】
なお、ソフト提供者側の処理装置Ｘ１としては、上記各記憶媒体８１および８２への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Ｙ１としては、上記各記憶媒体８１および８２からの読み出しが可能な機器が接続されたパーソナルコンピュータ，ワークステーション，家庭用ゲーム機器または個人用情報端末などを利用することができる。
【００４１】
次に、図１に示す実施例の動作手順を説明する。ソフト提供者は、後述するステップＳ１０１〜Ｓ１０６の手順で、暗号化ソフトなどが記録された第１記憶媒体８１と、この暗号化ソフトを利用するためのチケット（実行権データ）などが記録された第２記憶媒体８２とを作成し、利用者に提供する。
【００４２】
一方、ソフト利用者は、第１および第２記憶媒体８１および８２を購入し、後述するステップＳ２０１〜Ｓ２０６の手順で暗号化ソフトを実行する。
【００４３】
図２は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図４は、認証用データ（Ｄ１）が付加されたソフトウエアおよび認証用データ（Ｄ１’）が付加されたチケットのデータ構造を示している。以下、これら図２および図４を参照して、ソフト提供者側で行われる処理について説明する。
【００４４】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット（実行権データ）とが作成される（ステップＳ１０１）。ここで、チケットには、ソフトウエアの識別番号，ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部９には、現在のソフト実行状況データ（現在時刻や現在のソフトウエアの実行回数など）を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【００４５】
次に、キー作成部１は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に固有で秘密のチケットキーとを作成し、第２記憶媒体８２の不正読出不可領域８４に記録する（ステップＳ１０２）。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ（桁数）の数値であり、具体的には例えば６４ビット程度の数値とする。
【００４６】
次に、認証データ作成部２は、各ソフトウエアに固有な認証用データ（Ｄ１）および（Ｄ１’）を作成する（ステップＳ１０３）。ここで、認証用データ（Ｄ１）および（Ｄ１’）は、具体的には例えば６４ビット程度の数値とする。また、認証用データ（Ｄ１）および（Ｄ１’）は、ある関係式Ｆに関して、
（Ｄ１’）＝Ｆ（Ｄ１）
の条件を満たすものとする。なお、関係式Ｆの最も簡単な例として、Ｆを等式とする、すなわち
（Ｄ１’）＝（Ｄ１）
とすることもできる。
【００４７】
次に、ソフト暗号化部４は、ソフトウエアに認証用データ（Ｄ１）を付加した結果を、ソフトキーを用いて暗号化し、第１記憶媒体８１の読出可能領域８３に記録する（ステップＳ１０４）。次に、チケット暗号化部３は、チケットに認証用データ（Ｄ１’）を付加した結果を、チケットキーを用いて暗号化し、第２記憶媒体８２の読出可能領域８５に記録する（ステップＳ１０５）。
【００４８】
次に、復号認証ソフトが作成され、第１記憶媒体８１の書き換え禁止領域８６に記録される（ステップＳ１０６）。この復号認証ソフトには、暗号化ソフト利用制御部５がそれを実行することによって、暗号化ソフトを復号するソフト復号部７と、暗号化チケットを復号するチケット復号部６と、復号されたソフトウエアと復号されたチケットにそれぞれ付加された認証用データ（Ｄ１）および（Ｄ１’）が所定の関係（Ｄ１’＝Ｆ（Ｄ１））を満たすかどうかを検査するデータ認証部８と、検査が満たされた時に復号されたソフトウエアを実行するソフト実行部９との機能を果たすためのプログラムが組み込まれている。
【００４９】
図３は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図３を参照して、ソフト利用者側で行われる処理について説明する。
【００５０】
ソフト利用者は、暗号化ソフトなどが記録された第１記憶媒体８１と、暗号化チケットなどが記録された第２記憶媒体２とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部５に入力する（ステップＳ２０１）。
【００５１】
次に、暗号化ソフト利用制御部５は、購入した第１記憶媒体８１に記録されている復号認証ソフトを実行する（ステップＳ２０２）。これによって、チケット復号部６，ソフト復号部７，データ認証部８およびソフト実行部９が起動する。
【００５２】
次に、ソフト復号部７は、ソフトキーを用いて暗号化ソフトを復号する（ステップＳ２０３）。次に、チケット復号部６は、チケットキーを用いて暗号化チケットを復号する（ステップＳ２０４）。
【００５３】
次に、データ認証部８は、復号されたソフトウエアに付加された認証用データ（Ｄ１）と、復号されたチケットに付加された認証用データ（Ｄ１’）とが、所定の関係、すなわち
（Ｄ１’）＝Ｆ（Ｄ１）
という関係を満たすかどうかを検査する（ステップＳ２０５）。認証用データの検査の結果、上記関係が満たされる場合、ソフト実行部９は、復号されたソフトウエアを実行する（ステップＳ２０６）。
【００５４】
以上説明した第１の実施例によれば、流通しているソフトウエアのチケットを有する利用者に対してのみ、そのソフトウエアの利用を可能とし、同時にソフトウエアやチケットに予め定められたデータを付加した後に暗号化することにより、復号時に付加されたデータが現れるか否かで、暗号化されたソフトウエアやチケットの改変を検出することができる。
【００５５】
なお、暗号化すべきデータに冗長性を付加した後に暗号化し、復号時にその冗長性が現れるかどうかを検査する方法は、冗長暗号化法と呼ばれている（共立出版、岡本栄司著「暗号理論入門」Ｐ１３１参照）。そして、この冗長暗号化方法を実現するためには、誤り伝搬特性を有する暗号方式が必要である。ここで、誤り伝搬特性とは、暗号化されたデータの任意の１ビットの変更が、復号されたデータの各ビットに影響を及ぼす特性をいう。このような誤り伝搬特性を有する暗号方式としては、例えば上述の共立出版、岡本栄司著「暗号理論入門」のＰ１３２の例７．２の方法や、自然社、細貝ら訳の「暗号」に記載の平文および暗号文フィードバックを用いたブロック連鎖方法（Ｐ７１）などが利用できる。
【００５６】
上記のような構成により、改変検出のために冗長性を付加するだけで良く、ディジタル署名部を新たに付加する場合に比べて、必要とする計算量は少なくてすむ。
【００５７】
上記のように、第１の実施例では、ソフトウエアおよびそれに対応するチケットに互いに関連付けられたデータを含めてそれぞれ暗号化し、それぞれの復号結果に関連付けられたデータが正しく現れるかどうかを検査することで、暗号化ソフトおよび暗号化チケットの改変の有無を一括して検出する構成をとる。この構成により、利用者にあらかじめ認証のためのデータを知らせておく必要がなく、また暗号化されたソフトウエアおよびチケットの改変の有無を一括して検査できるという新たな効果が生まれる。
【００５８】
また、上記第１の実施例では、ソフト提供者がステップＳ１０１〜Ｓ１０６を実行するとして説明したが、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。一例として、以下のような構成が可能である。
【００５９】
まず、ソフト作成者は、上記ステップＳ１０１に従って、ソフトウエアと、このソフトウエア用の実行権データとを作成する。このとき、実行権データに、ソフトウエアの暗号化を制御する制御情報（例えば、ソフトウエアのどの部分を暗号化するかなど）を含めておく。一方、サービス提供者は、上記ステップＳ１０２〜Ｓ１０４を実行し、ソフトキーおよびチケットキーを作成し、記憶媒体２への記録する。また、認証用データを作成し、それをソフトウエアに付加した結果を暗号化し、この暗号化ソフトを記憶媒体１へ記録する。そして、この記憶媒体１および記憶媒体２および認証用データ（Ｄ１’）を、ソフト販売者に渡す。次に、ソフト販売者は、上記ステップＳ１０５に従って、チケットを暗号化し、暗号化チケットを記憶媒体２に記録し、上記記憶媒体１および記憶媒体２をソフト利用者に販売する。
【００６０】
なお、上述のサービス提供者の処理するステップＳ１０２〜Ｓ１０４（または、この一部）をソフト作成者が処理する構成も可能である。
【００６１】
また、上記第１の実施例では、暗号化されたソフトウエア、暗号化されたチケットを、読出可能領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【００６２】
（第２の実施例）
ところで、上記第１の実施例に係るソフトウエア保護方法では、多数の機能を有するソフトウエアや、多数のデータを利用するソフトウエアにおいて、各機能や各データ毎にそれらの改変を検出し、それらの利用を制御することはできない。このような問題は、以下のようにすれば解決できる。
【００６３】
以下では、ソフトウエアが、図５に示すように、１つのメインソフトウエア部（ｍａｉｎ）と、そのメインソフトウエア部から利用される複数のサブソフトウエア部（ｓｕｂ１，ｓｕｂ２，…，ｓｕｂｎ）とで構成される場合を考える。例えば、基本機能と複数の拡張機能とから構成されるソフトウエアにおいては、基本機能はメインソフトウエア部に、各拡張機能はそれぞれサブソソフトウエア部に対応する。また、複数のデータ（動画、音声など）を再生するソフトウエアでは、再生機能がメインソフトウエア部に、各データがそれぞれ各サブソフトウエア部に対応する。
【００６４】
図３は、本発明の第２の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図３において、ソフト提供者側の処理装置Ｘ２は、キー作成部１０１と、認証データ作成部１０２と、チケット暗号化部１０３と、メインソフト暗号化部１１０と、サブソフト暗号化部１１１とを備えている。一方、ソフト利用者側の実行装置Ｙ２は、暗号化ソフト利用制御部５０を備えている。この暗号化ソフト利用制御部５０は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部１０６と、メインソフト復号部１１２と、サブソフト復号部１１３と、データ認証部１０８ａおよび１０８ｂと、ソフト実行部１０９ａおよび１０９ｂとを含む。
【００６５】
ソフト提供者からソフト利用者への情報（ソフトウエア，チケット，チケットキー等）の提供は、第１および第２記憶媒体８１および８２を用いて行われる。第１記憶媒体８１は、読出可能領域８３と、書き換え禁止領域８６とを含む。第２記憶媒体８２は、読出可能領域８５と、不正読出不可領域８４とを含む。
【００６６】
上記第１記憶媒体８１としては、例えばＣＤ−ＲＯＭなどが利用できる。また、上記第２記憶媒体８２としては、例えばＩＣカード（スマートカード）などが利用できる。
【００６７】
なお、ソフト提供者側の処理装置Ｘ２としては、上記各記憶媒体８１および８２への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Ｙ２としては、上記各記憶媒体８１および８２からの読み出しが可能な機器が接続されたパーソナルコンピュータ，ワークステーション，家庭用ゲーム機器または個人用情報端末などを利用することができる。
【００６８】
次に、図６に示す実施例の動作手順を説明する。ソフト提供者は、後述するステップＳ３０１〜Ｓ３０６の手順で、暗号化ソフトなどが記録された第１記憶媒体８１と、この暗号化ソフトを利用するためのチケット（実行権データ）などが記録された第２記憶媒体８２とを作成し、利用者に提供する。
【００６９】
一方、ソフト利用者は、第１および第２記憶媒体８１および８２を購入し、後述するステップＳ４０１〜Ｓ４０９の手順で暗号化ソフトを実行する。
【００７０】
図７は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図９は、認証用データ（Ｄ１）（Ｄ２ｉ’）（ｉ＝１，２，．．．，ｎ）が付加されたメインソフトウエア、（Ｄ２ｉ）が付加されたサブソフトウエアおよび認証用データ（Ｄ１’）が付加されたチケットのデータ構造を示している。以下、これら図７および図９を参照して、ソフト提供者側で行われる処理について説明する。
【００７１】
なお、ここでは図７に示すように、メインソフトウエア部（ｍａｉｎ）と、ｎ個のサブソフトウエア部（ｓｕｂｉ）（ｉ＝１，２，．．．，ｎ）とからなるソフトウエアの場合について説明する。
【００７２】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット（実行権データ）とが作成される（ステップＳ３０１）。ここで、チケットには、ソフトウエアの識別番号，ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部１０９ａおよび１０９ｂには、現在のソフト実行状況データ（現在時刻や現在のソフトウエアの実行回数など）を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【００７３】
次に、キー作成部１０１は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に固有で秘密のチケットキーとを作成し、第２記憶媒体８２の不正読出不可領域８４に記録する（ステップＳ３０２）。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ（桁数）の数値であり、具体的には例えば６４ビット程度の数値とする。
【００７４】
次に、認証データ作成部１０２は、各ソフトウエアに固有な認証用データ（Ｄ１）および（Ｄ１’）、また各サブソフトウエア部に固有なｎ個の認証用データ（Ｄ２ｉ）および（Ｄ２ｉ’）（ｉ＝１，２，…，ｎ）を作成する（ステップＳ３０３）。ここで、認証用データ（Ｄ１）（Ｄ１’）（Ｄ２ｉ）（Ｄ２ｉ’）は、具体的には例えば６４ビット程度の数値とする。また、認証用データ（Ｄ１）および（Ｄ１’）と、（Ｄ２ｉ）および（Ｄ２ｉ’）とは、ある関係式Ｆに関して、
（Ｄ１’）  ＝Ｆ（Ｄ１）
（Ｄ２ｉ’）＝Ｆ（Ｄ２ｉ）（ｉ＝１，２，…，ｎ）
の条件を満たすものとする。なお、関係式Ｆの最も簡単な例として、Ｆを等式とする、すなわち
（Ｄ１’）  ＝（Ｄ１）
（Ｄ２ｉ’）＝（Ｄ２ｉ）
とすることもできる。
【００７５】
次に、メインソフト暗号化部１１０は、メインソフトウエア部（ｍａｉｎ）に認証用データ（Ｄ１）および認証用データ（Ｄ２１’，Ｄ２２’，…，Ｄ２ｎ’）を付加した結果ソフトキーを用いて暗号化し、またサブソフト暗号化部１１１は、各サブソフト部（ｓｕｂｉ）にそれぞれ認証用データ（Ｄ２ｉ）を付加した結果をソフトキーを用いて暗号化し、この暗号化されたメインソフトウエア部および各暗号化されたサブソフトウエア部をまとめて暗号化ソフトとして、第１記憶媒体８１の読出可能領域８３に記録する（ステップＳ３０４）。次に、チケット暗号化部１０３は、チケットに認証用データ（Ｄ１’）を付加した結果を、チケットキーを用いて暗号化し、第２記憶媒体８２の読出可能領域８５に記録する（ステップＳ３０５）。
【００７６】
次に、復号認証ソフトが作成され、第１記憶媒体８１の書き換え禁止領域８６に記録される（ステップＳ３０６）。この復号認証ソフトには、暗号化ソフト利用制御部５がそれを実行することによって所定の機能、すなわち暗号化メインソフトを復号するメインソフト復号部１１２と、暗号化サブソフトを復号するサブソフト復号部１１３と、暗号化チケットを復号するチケット復号部１０６と、復号されたメインソフトウエアと復号されたチケットにそれぞれ付加された認証用データ（Ｄ１）および（Ｄ１’）が所定の関係（Ｄ１’＝Ｆ（Ｄ１））を満たすかどうかを検査するデータ認証部１０８ａと、復号されたメインソフトウエアと復号されたサブソフトウエアにそれぞれ付加された認証用データ（Ｄ２ｉ）および（Ｄ２ｉ’）が所定の関係（Ｄ２ｉ’＝Ｆ（Ｄ２ｉ））を満たすかどうかを検査するデータ認証部１０８ｂと、それぞれの検査が満たされた時に復号されたソフトウエアを実行するソフト実行部１０９ａおよび１０９ｂとの機能を果たすためのプログラムが組み込まれている。
【００７７】
図８は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図８を参照して、ソフト利用者側で行われる処理について説明する。
【００７８】
ソフト利用者は、暗号化ソフトなどが記録された第１記憶媒体８１と、暗号化チケットなどが記録された第２記憶媒体２とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部５０に入力する（ステップＳ４０１）。
【００７９】
次に、暗号化ソフト利用制御部５０は、購入した第１記憶媒体８１に記録されている復号認証ソフトを実行する（ステップＳ４０２）。これによって、チケット復号部１０６，メインソフト復号部１１２，サブソフト復号部１１３，データ認証部１０８ａおよび１０８ｂ，ソフト実行部１０９ａおよび１０９ｂが起動する。
【００８０】
次に、メインソフト復号部１１２において暗号化メインソフトがソフトキーを用いて復号され（ステップＳ４０３）、チケット復号部１０６において暗号化チケットがチケットキーを用いて復号される（ステップＳ４０４）。次に、データ認証部１０８ａは、復号されたメインソフトウエア部に付加された認証用データ（Ｄ１）と、復号されたチケットに付加された認証用データ（Ｄ１’）が、
（Ｄ１’）＝Ｆ（Ｄ１）
という関係を満たすかどうかを検査する（ステップＳ４０５）。この検査が満たされた時、ソフト実行部１０９ａは、復号されたメインソフト部を実行する（ステップＳ４０６）。
【００８１】
次に、メインソフトウエア部（ｍａｉｎ）から、各サブソフト部の実行が要求されると、サブソフト復号部１１３は、各暗号化されたサブソフト部をソフトキーを用いて復号する（ステップＳ４０７）。次に、データ認証部１０９ｂは、復号されたサブソフトウエア部（ｓｕｂｉ）に付加された認証用データ（Ｄ２）と、復号されたメインソフトウエア部に付加された認証用データ（Ｄ２’）とが、
（Ｄ２’）＝Ｆ（Ｄ２）
という関係を満たすかどうかを検査する（ステップＳ４０８）。この検査が満たされた時、ソフト実行部１０９ｂは、復号された各サブソフト部（ｓｕｂｉ）を実行する（ステップＳ４０９）。
【００８２】
以上説明した第２の実施例によれば、暗号化された各サブソフトの改変の検出および実行の制御が行える。すなわち、第２の実施例は、第１の実施例と同様に、ソフトウエアに冗長性を付加するだけで改変の検出が行え、ディジタル署名機構を新たに付加する従来例に比べて、必要とする計算量が少なくてすむ。
【００８３】
また、上記第２の実施例では、ソフト提供者がステップＳ３０１〜Ｓ３０６を実行するとして説明したが、第１の実施例の場合と同様に、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。
【００８４】
また、上記第２の実施例では、暗号化されたソフトウエア、暗号化されたチケット、復号認証ソフトを、読出可能記憶領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【００８５】
また、上記第２の実施例によれば、複数のソフトウエアから共通に利用されるサブソフトウエア部の共用化が可能である。このことを図９に示す具体例を参照して説明する。図９に示すように、ソフトウエアＡ、Ｂ、Ｃは、それぞれメインソフト部（ｍａｉｎＡ，ｍａｉｎＢ，ｍａｉｎＣ）と、複数のサブソフトウエア部とで構成される。なお、ソフトウエアＡは、サブソフトウエア（ｓｕｂ１，ｓｕｂ２，ｓｕｂ３）を含み、ソフトウエアＢは、サブソフトウエア（ｓｕｂ２，ｓｕｂ３，ｓｕｂ４）を含み、ソフトウエアＣは、サブソフトウエア（ｓｕｂ１，ｓｕｂ４）を含む。このように、各サブソフトウエア部（ｓｕｂ１，ｓｕｂ２，ｓｕｂ３，ｓｕｂ４）は、それぞれ複数のソフトウエアから利用される。このような場合に、第２の実施例では、ソフトウエアのメインソフトウエア部とサブソフトウエア部を個別に暗号化する構成のため、各ソフトウエア毎にそれぞれ利用するサブソフトウエア部を重複して保持させる必要がない。従って、図１１に示すように、共通のサブソフトウエア部を共有化することが可能となり、これによりこれらのソフトウエアを同一の記憶媒体に記録する場合、記録容量が削減できる。
【００８６】
（第３の実施例）
以上説明した第１および第２の実施例では、各ソフトウエアに固有の認証用データを付加する一方、各ソフトウエアに共通なソフトキーと各利用者に固有なチケットキーを用いてソフトウエアおよびチケットを暗号化する構成により、各ソフトウエアに対する、また各利用者毎に有効なチケットの配布を可能としたが、各ソフトウエアに共通なソフトキーと、各利用者に共通なチケットキーを用いてソフトウエアおよびチケットをそれぞれ暗号化する構成においても、以下に述べる構成により各ソフトウエアに対する、また各利用者毎に有効なチケットの配布を可能とすることができる。
【００８７】
図１２は、本発明の第２の実施例に係るソフトウエア利用制御方法を実現するためのシステム構成を示すブロック図である。図１２において、ソフト提供者側の処理装置Ｘ３は、キー作成部２０１と、認証データ作成部２０２２と、チケット暗号化部２０３と、ソフト暗号化部２０４とを備えている。一方、ソフト利用者側の実行装置Ｙ３は、暗号化ソフト利用制御部５００を備えている。この暗号化ソフト利用制御部５００は、ソフト提供者から提供される復号認証ソフトを実行することによって実現される、チケット復号部２０６と、ソフト復号部２０７と、データ認証部２０８ａおよび２０８ｂと、ソフト実行部２０９とを含む。
【００８８】
ソフト提供者からソフト利用者への情報（ソフトウエア，チケット，チケットキー等）の提供は、第１および第２記憶媒体８１および８２を用いて行われる。第１記憶媒体８１は、読出可能領域８３と、書き換え禁止領域８６とを含む。第２記憶媒体８２は、読出可能領域８５と、不正読出不可領域８４とを含む。
【００８９】
上記第１記憶媒体８１としては、例えばＣＤ−ＲＯＭなどが利用できる。また、上記第２記憶媒体８２としては、例えばＩＣカード（スマートカード）などが利用できる。
【００９０】
なお、ソフト提供者側の処理装置Ｘ３としては、上記各記憶媒体８１および８２への書き込みが可能な機器が接続されたパーソナルコンピュータやワークステーションなどを利用することができる。また、ソフト利用者側の実行装置Ｙ３としては、上記各記憶媒体８１および８２からの読み出しが可能な機器が接続されたパーソナルコンピュータ，ワークステーション，家庭用ゲーム機器または個人用情報端末などを利用することができる。
【００９１】
次に、図１２に示す第３の実施例の動作手順を説明する。ソフト提供者は、後述するステップＳ５０１〜Ｓ５０６の手順で、暗号化ソフトなどが記録された第１記憶媒体８１と、この暗号化ソフトを利用するためのチケット（実行権データ）などが記録された第２記憶媒体８２とを作成し、利用者に提供する。
【００９２】
一方、ソフト利用者は、第１および第２記憶媒体８１および８２を購入し、後述するステップＳ６０１〜Ｓ６０７の手順で暗号化ソフトを実行する。
【００９３】
図１３は、ソフト提供者側で行われる処理の手順を示すフローチャートである。また、図１５は、認証用データ（Ｄ１）が付加されたソフトウエアおよび認証用データ（Ｄ１’），（Ｄ３’）が付加されたチケットのデータ構造を示している。以下、これら図１３および図１５を参照して、ソフト提供者側で行われる処理について説明する。
【００９４】
まず、ソフト提供者側では、利用されるべきソフトウエアと、このソフトウエアの利用を制御するためのデータであるチケット（実行権データ）とが作成される（ステップＳ５０１）。ここで、チケットには、ソフトウエアの識別番号，ソフトウエアの実行条件データなどが含まれている。この実行条件データには、実行許可を示すデータの他に、実行可能回数や実行可能期間を含めるようにしてもよい。実行条件データに実行可能回数や実行可能期間を含めた場合、ソフト実行部２０９には、現在のソフト実行状況データ（現在時刻や現在のソフトウエアの実行回数など）を記憶する機能と、当該実行状況データおよび実行権データを検査する機能とが追加される。
【００９５】
次に、キー作成部２０１は、各ソフトウエアに共通で秘密のソフトキーと、各利用者に共通なチケットキーとを作成し、第２記憶媒体８２の不正読出不可領域８４に記録する（ステップＳ５０２）。ここで、ソフトキーおよびチケットキーは、利用する暗号方式や要求する安全性によって定まるサイズ（桁数）の数値であり、具体的には例えば６４ビット程度の数値とする。
【００９６】
次に、認証データ作成部２０２は、各ソフトウエアに固有な認証用データ（Ｄ１）および（Ｄ１’）と、各利用者に固有なデータ（Ｄ３）および（Ｄ３’）とを作成する（ステップＳ５０３）。ここで、各データ（Ｄ１）（Ｄ１’）（Ｄ３）（Ｄ３’）は、具体的には例えば６４ビット程度の数値とする。また、認証用データ（Ｄ１）および（Ｄ１’）と、（Ｄ３）および（Ｄ３’）とは、ある関係式Ｆに関して、
（Ｄ１’）＝Ｆ（Ｄ１）
（Ｄ３’）＝Ｆ（Ｄ３）
の条件を満たすものとする。なお、関係式Ｆの最も簡単な例として、Ｆを等式とする、すなわち
（Ｄ１’）＝（Ｄ１）
（Ｄ３’）＝（Ｄ３）
とすることもできる。なお、認証用データ（Ｄ３）は、第２記憶媒体８２の不正読出不可領域８４に記録される。
【００９７】
次に、ソフト暗号化部２０４は、ソフトウエアに認証用データ（Ｄ１）を付加した結果を、ソフトキーを用いて暗号化し、第１記憶媒体８１の読出可能領域８３に記録する（ステップＳ５０４）。次に、チケット暗号化部２０３は、チケットに認証用データ（Ｄ１’）および（Ｄ３’）を付加した結果を、チケットキーを用いて暗号化し、第２記憶媒体８２の読出可能領域８５に記録する（ステップＳ５０５）。
【００９８】
次に、復号認証ソフトが作成され、第１記憶媒体８１の書き換え禁止領域８６に記録される（ステップＳ５０６）。この復号認証ソフトには、暗号化ソフト利用制御部２０５がそれを実行することによって、暗号化ソフトを復号するソフト復号部２０７と、暗号化チケットを復号するチケット復号部２０６と、復号されたチケットに付加された認証用データ（Ｄ３’）と第２記憶媒体８２に記録された認証用データ（Ｄ３）とが所定の関係（Ｄ３’）＝Ｆ（Ｄ３）を満たかどうかを検査するデータ認証機構２０８ａと、復号されたソフトウエアに付加された認証用データ（Ｄ１）と復号されたチケットに付加された認証用データ（Ｄ１’）とが所定の関係（Ｄ１’）＝Ｆ（Ｄ１）を満たすかどうかを検査するデータ認証機構２０８ｂと、両データ認証機構２０８ａ２０８ｂの検査が満たされた時に復号されたソフトウエアを実行するソフト実行部２０９との機能を果たすためのプログラムが組み込まれている。
【００９９】
図１４は、ソフト利用者側で行われる処理の手順を示すフローチャートである。以下、この図１４を参照して、ソフト利用者側で行われる処理について説明する。
【０１００】
ソフト利用者は、暗号化ソフトなどが記録された第１記憶媒体８１と、暗号化チケットなどが記録された第２記憶媒体２とをソフト提供者から購入し、これら記憶媒体に記録されたデータを暗号化ソフト利用制御部５００に入力する（ステップＳ６０１）。
【０１０１】
次に、暗号化ソフト利用制御部５００は、購入した第１記憶媒体８１に記録されている復号認証ソフトを実行する（ステップＳ６０２）。これによって、チケット復号部２０６，ソフト復号部２０７，データ認証部２０８ａおよび２０８ｂ，ソフト実行部２０９が起動する。
【０１０２】
次に、チケット復号部２０６は、チケットキーを用いて暗号化チケットを復号する（ステップＳ６０３）。そして、データ認証部２０８ｂは、復号されたチケットに付加された認証用データ（Ｄ３’）と、第２記憶媒体８２に記録された認証用データ（Ｄ３）とが、所定の関係、すなわち
（Ｄ３’）＝Ｆ（Ｄ３）
を満たすかどうかを検査する（ステップＳ６０４）。認証用データの検査の結果、上記関係が満たされる場合、ソフト復号部７は、ソフトキーを用いて暗号化ソフトを復号する（ステップＳ６０５）。
【０１０３】
次に、データ認証部２０８ａは、復号されたソフトウエアに付加された認証用データ（Ｄ１）と、復号されたチケットに付加された認証用データ（Ｄ１’）とが、所定の関係、すなわち
（Ｄ１’）＝Ｆ（Ｄ１）
を満たすかどうかを検査する（ステップＳ６０６）。認証用データの検査の結果、上記関係が満たされる場合、ソフト実行部２０９は、復号されたソフトウエアを実行する（ステップＳ６０７）。
【０１０４】
以上説明した第３の実施例によれば、流通されるソフトウエアの実行権（チケット）を有する利用者だけに、そのソフトウエアの利用を可能とし、同時にソフトウエアに対する改ざんの検出が可能となる。すなわち、この構成により、第１の実施例と同様に、ソフトウエアに冗長性を付加するだけで改変の検出が行え、ディジタル署名機構を新たに付加する従来例に比べて、必要とする計算量が少なくてすむ。
【０１０５】
また、上記第３の実施例では、ソフト提供者がステップＳ５０１〜Ｓ５０６を実行するとして説明したが、第１の実施例の場合と同様に、ソフト提供者の処理を、ソフト作成者、サービス提供者、ソフト販売者の処理に分けて実行することも可能である。
【０１０６】
また、上記第３の実施例では、暗号化されたソフトウエア、暗号化されたチケット、復号認証ソフトを、読出可能記憶領域を有する記憶媒体に記憶して配布する場合について説明したが、別途パソコン通信などの各種通信媒体を利用して配布するようにしてもよい。
【０１０７】
なお、各ソフトウエアに固有なソフトキーと、各利用者に共通なチケットキーとを用いて、ソフトウエアおよびチケットをそれぞれ暗号化し、認証用データ（Ｄ１）を各ソフトに固有または共通とし、認証用データ（Ｄ３）を各利用者に固有とするようにしても、上記第３の実施例とほぼ同様の効果を得ることができる。ただし、この構成では、ソフトキーが各ソフトウエアに固有であるため、例えばＮ個のソフトウエアを利用する場合、Ｎ個のソフトキーを第２記憶媒体８２の不正読出不可領域８４に記録して秘密に管理する必要がある。
【０１０８】
しかしながら、上記の構成では、多数のソフトウエアを利用する場合に、秘密にキーを管理する負担が大きいことが問題となる。このような問題は、次の構成により解決することができる。すなわち、例えば第３の実施例において、第２記憶媒体８２の不正読出不可領域８４にチケットキーのみを記録し、ソフトキーはチケットキーを用いて暗号化し、この暗号化されたソフトキーを第２記憶媒体８２の読出可能領域８５に記録して配布し、ソフト利用時に、暗号化されたソフトキーをチケットキーを用いて復号し、復号されたソフトキーで暗号化されたソフトウエアを復号する。このような構成により、ソフトキーを秘密に管理する必要がなくなる。
【０１０９】
また、第２の実施例では、各サブソフト（ｓｕｂｉ）に付加する認証用データ（Ｄ２ｉ）と所定の関係を満たす認証用データ（Ｄ２ｉ’）を、メインソフトウエア（ｍａｉｎ）に付加したが、この認証用データ（Ｄ２ｉ’）をチケット（実行権データ）に付加するようにしてもよい。
【０１１０】
また、第１〜第３の実施例では、チケットキーおよびソフトキーを、第２記憶媒体８２の不正読出不可領域８４に記録する構成をとったが、チケットキーおよびソフトキーを利用者が記憶するパスワードによって定まるキーで暗号化し、暗号化されたチケットキーおよびソフトキーを、第２記憶媒体８２の読出可能領域８５に記録して配布するようにしてもよい。ここで、パスワードとしては、例えば４桁程度数字や８文字程度の英数字が利用できる。このような構成により、チケットキーやソフトキーを秘密に管理する必要がなくなる。
【０１１１】
また、第１〜第３の実施例では、第１記憶媒体８１に暗号化されたソフトウエアと復号認証ソフトを、第２記憶媒体８２に暗号化されたチケットとソフトキーおよびチケットキーをぞれぞれ記録するようにしたが、この構成は普遍的なものではなく、ソフトキーおよびチケットキーを不正読出不可領域に記録し、暗号化されたソフトウエア、暗号化されたチケット、および復号認証機構を読出可能領域に記録するという条件を満たせば、それらをどのような組み合わせで記憶媒体に記録するようにしても構わない。例えば、読出可能領域８５を有する第１記憶媒体８１と、不正読出不可領域を有する第２記憶媒体８２とを準備し、第１記憶媒体８１に、暗号化されたソフトウエアと復号認証機構と暗号化されたチケットとを記録し、第２記憶媒体８２にソフトキーとチケットキーとを記録して配布してもよい。
【０１１２】
また、第１〜第３の実施例では、各キーを不正読出不可領域を有する記憶媒体に記録して配布したが、不正読出不可領域を設けた暗号化ソフト実行装置を準備し、この暗号化ソフト実行装置の不正読出不可領域に各キーを記録して利用者に提供するようにしてもよい。
【０１１３】
また、第１〜第３の実施例では、復号認証ソフトを書き換え禁止領域を有する記憶媒体に記録して配布したが、書き換え禁止領域を設けた暗号化ソフト実行装置を準備し、この暗号化ソフト実行装置の書き換え禁止領域に復号認証ソフトを記録して利用者に提供するようにしてもよい。また、復号認証機構を専用のハードウエアとして組み込んだ暗号化ソフト実行装置を利用者に提供するようにしてもよい。
【図面の簡単な説明】
【図１】本発明の第１の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図２】図１に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図３】図１に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図４】図１に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【図５】複数のサブソフトウエア部を有するソフトウエアのデータ構造を示す図である。
【図６】本発明の第２の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図７】図６に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図８】図６に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図９】図６に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【図１０】図６に示すソフトウエア実行システムにおいて実行されるソフトウエアの構成の一例を示す図である。
【図１１】図６に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の他の例を示す図である。
【図１２】本発明の第３の実施例に係るソフトウエア利用制御方法を実現するソフトウエア実行システムの構成を示すブロック図である。
【図１３】図１２に示すソフトウエア実行システムのソフト提供者側の動作を示すフローチャートである。
【図１４】図１２に示すソフトウエア実行システムのソフト利用者側の動作を示すフローチャートである。
【図１５】図１２に示すソフトウエア実行システムにおいて、ソフト提供者からソフト利用者に提供されるソフトウエアおよびチケットのデータ構造の一例を示す図である。
【符号の説明】
Ｘ１，Ｘ２，Ｘ３…ソフト提供者側の処理装置
Ｙ１，Ｙ２，Ｙ３…ソフト利用者側の実行装置
１，１０１，２０１…キー作成部
２，１０２，２０２…認証データ作成部
３，１０３，２０３…ソフト暗号化部
４，２０４…チケット暗号化部
５，５０，５００…復号認証ソフト
６，１０６，２０６…チケット復号部
７，２０７…ソフト復号部
８，１０８ａ，１０８ｂ，２０８ａ，２０８ｂ…データ認証部
９，２０９…ソフト実行部
１１２…メインソフト復号部
１１３…サブソフト復号部
１０９ａ…メインソフト実行部
１０９ｂ…サブソフト実行部
８１…第１記憶媒体
８２…第２記憶媒体
８３…読出可能領域
８４…不正読出不可領域
８５…読出可能領域
【図１】
0003624971.tif 000002
【図２】
0003624971.tif 000003
【図３】
0003624971.tif 000004
【図４】
0003624971.tif 000005
【図５】
0003624971.tif 000006
【図６】
0003624971.tif 000007
【図７】
0003624971.tif 000008
【図８】
0003624971.tif 000009
【図９】
0003624971.tif 000010
【図１０】
0003624971.tif 000011
【図１１】
0003624971.tif 000012
【図１２】
0003624971.tif 000013
【図１３】
0003624971.tif 000014
【図１４】
0003624971.tif 000015
【図１５】
0003624971.tif 000016