(57)【要約】【課題】コンテンツの違法コピーなどを目的とした再生用ソフトウエアの改変・なりすましなどを確実に検出すること。【解決手段】暗号化されたコンテンツ１００を再生するためのソフトウエア１０１につき、実行開始から終了までの全期間にわたって随時その正当性をチェックする。ソフトウエア１０１・ハードウエア１０２のそれぞれで計算したハッシュ関数の出力を照合し、両者が一致する（認証ＯＫ）限りにおいて、ハードウエア１０２はソフトウエア１０１に、コンテンツ１００の再生に必要な復号鍵を供給する。さらに、本発明では定期的な認証と平行して、定期的または不定期に認証方法の切替を行う。この切替はもっぱらハードウエア１０２で行うが、切替後の認証方式をハードウエア１０２からメインメモリ上のソフトウエア１０１内に直接書き込むなどして、認証側・被認証側での同期を取るようにする。【選択図】      図１
2004342046.tif 000002
【特許請求の範囲】
【請求項１】
実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【請求項２】
実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記認証で使用する認証方式を切り替えるべき切替時期の到来を検出する切替時期検出工程と、
前記切替時期検出工程で切替時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【請求項３】
実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記ソフトウエアの起動時に前記認証で使用する認証方式の切替に関する規則を設定する切替規則設定工程と、
前記切替規則設定工程で設定された規則を前記ソフトウエアに通知する切替規則通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記切替規則設定工程で設定された規則にもとづいて使用すべき認証方式を特定する認証方式特定工程と、
前記認証方式特定工程で特定された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【請求項４】
前記切替規則設定工程で設定される規則には、前記認証で使用する複数の認証方式の使用順序に関する規則および／または前記認証で使用する複数の認証方式の切替時期に関する規則が含まれることを特徴とする前記請求項３に記載のソフトウエア認証方法。
【請求項５】
実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証プログラムにおいて、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
をプロセッサに実行させることを特徴とするソフトウエア認証プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法、ソフトウエア認証プログラムおよびソフトウエア認証装置に関する。
【０００２】
【従来の技術】
デジタル放送やＤＶＤなどにより配信・配布されるデジタルコンテンツは、複製が容易でかつ複製による劣化もないことから、著作権を保護するために暗号化されることが多い。そして、コンテンツは暗号化された状態のままである限り、違法な複製や覗き見に対して安全である。
【０００３】
こうしたコンテンツはいずれ視聴（再生）の時点で、何らかのソフトウエアにより復号される。そこでこのソフトウエアを改変したり、別のソフトウエアで差し替える（なりすまし）ことにより、ソフトウエアから復号後のコンテンツを取り出して複製することが可能になってしまう。そのためコンテンツだけでなく、当該コンテンツを再生するためのソフトウエアを保護することはきわめて重要である。
【０００４】
そしてそのための技術としては、ソフトウエアのアルゴリズム自体の秘匿や、ソフトウエアの難読化がある。しかし、これらの手法はソフトウエアを解析することによって最終的には回避することが可能で、復号化後のコンテンツのコピーを防ぐことはできない。
【０００５】
それに対して、ソフトウエアを使用してソフトウエアを認証する認証する手法（たとえば、特許文献１参照。）、またはハードウエアを使用してソフトウエアを認証する手法（たとえば、特許文献２参照。）がある。ここで、ハードウエアはソフトウエアに比例してより頑強の保護することができるので、改竄に対してより強固である。
【０００６】
【特許文献１】
特開平１０−２４０５１８号公報
【特許文献２】
特開２００２−２３６５２２号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、従来はソフトウエアの起動時や、ハードウエアの起動時に認証を行うのみであったり、同じ認証方式を繰り返し使用したりするため、起動時をやりすごしたり、認証方式を解析したりすることによって、ソフトウエアの改変やなりすましが可能になってしまい、コンテンツのコピーを防ぐことはできないという問題点があった。
【０００８】
この発明は上記従来技術による問題点を解決するため、コンテンツの違法コピーなどを目的とした再生用ソフトウエアの改変・なりすましなどを確実に検出することが可能なソフトウエア認証方法、ソフトウエア認証プログラムおよびソフトウエア認証装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明にかかるソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置は、実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置において、前記認証を実行すべき認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択して前記ソフトウエアに通知するとともに、当該方式にもとづいて前記ソフトウエアを認証することを特徴とする。
【００１０】
また、この発明にかかるソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置は、実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置において、前記認証で使用する認証方式を切り替えるべき切替時期の到来が検出された場合に、複数の認証方式の中から一つを選択して前記ソフトウエアに通知するとともに、前記認証を実行すべき認証時期の到来が検出された場合に、当該方式にもとづいて前記ソフトウエアを認証することを特徴とする。
【００１１】
また、この発明にかかるソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置は、実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法、ソフトウエア認証プログラムまたはソフトウエア認証装置において、前記ソフトウエアの起動時に前記認証で使用する認証方式の切替に関する規則を設定して前記ソフトウエアに通知するとともに、前記認証を実行すべき認証時期の到来が検出された場合に、上記で設定した規則にもとづいて使用すべき認証方式を特定するとともに、当該方式にもとづいて前記ソフトウエアを認証することを特徴とする。
【００１２】
また、この発明にかかるソフトウエア認証方法は、前記ソフトウエアの起動時に設定される規則に、前記認証で使用する複数の認証方式の使用順序に関する規則および／または前記認証で使用する複数の認証方式の切替時期に関する規則が含まれることを特徴とする。
【００１３】
これらの発明によって、コンテンツを再生するためのソフトウエアは、その実行開始から終了までの全期間にわたって、認証方式を随時変更されながら継続的かつリアルタイムに認証される。
【００１４】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるソフトウエア認証方法、ソフトウエア認証プログラムおよびソフトウエア認証装置の好適な実施の形態を詳細に説明するが、その前に、本発明の概略について簡単に説明する。
【００１５】
（発明の概略）
図１は、本発明によるソフトウエア認証装置の構成を模式的に示す説明図である。暗号化されたコンテンツ１００、コンテンツ１００を復号し再生するソフトウエア１０１、およびソフトウエア１０１を認証するハードウエア１０２から構成される。
【００１６】
図示する装置は具体的にはＰＣ（パーソナルコンピュータ）であり、認証のためのハードウエア１０２は、たとえば上記ＰＣに組み込まれたデジタル放送用のチューナー（ＰＣＩボード）に具備されている。ハードウエア１０２は、ソフトウエア１０１の実行開始から終了までの間、定期的（たとえばｎ秒ごと）にその認証を行い、認証が成功していることを条件に、コンテンツ１００の再生に必要な復号鍵をソフトウエア１０１へ供給する。
【００１７】
一方、認証が失敗したときは、ハードウエア１０２は復号鍵の供給を停止する。ソフトウエア１０１の改変やなりすまし、あるいはステップ実行による解析などがなされていると、ハードウエア１０２からの認証要求に対して、ソフトウエア１０１は正常に応答することができないので、認証に失敗して復号鍵の供給が停止する結果、動画像の再生が阻止される。なお、復号鍵だけでなく動画像そのものも、ハードウエア１０２経由でソフトウエア１０１に供給するようにし、認証失敗時にはどちらの供給も停止するようにしてもよい。
【００１８】
そして本発明では、認証方式としてあらかじめソフトウエア１０１側・ハードウエア１０２側に複数のものを用意しておき、使用する認証方式をソフトウエア１０１の起動の都度でなく、一回の起動中（ソフトウエア１０１の動作中）にも随時切り替えるようにする。
【００１９】
ハードウエア１０２によるソフトウエア１０１の認証は、たとえば双方で同一のデータを入力としたときのハッシュ関数の出力を計算し、それぞれの計算結果をハードウエア１０２で照合することにより行う。なお、周知のようにハッシュ関数とは、与えられたデータから１２８ｂｉｔ〜１９６ｂｉｔ程度のダイジェストを生成するものである。ＭＤ２、ＭＤ４、ＭＤ５、ＳＨＡ、ＳＨＡ−１など各種の関数がすでに知られているほか、使用するデータ長を変更したり、暗号化と併用したりすることで、様々なバリエーションの認証方式を用意することができる。
【００２０】
そして以下で説明する実施の形態１〜４は、認証方式の切り替えを認証側であるハードウエア１０２主体で行いながら、ソフトウエア１０１の動作中、一定期間ごとに繰り返される各回の認証の方式を、被認証側であるソフトウエア１０１が確実に特定できるようにしたものである。これにより、両者間で同期して認証方式を切り替えてゆくことができる。
【００２１】
なお、実施の形態１は認証の都度、今回の認証に使用する方式をハードウエア１０２が決定するものである。また、実施の形態２は認証ごとではないものの、定期的な認証と平行して、不定期に認証方式の切り替えを行うものである。この実施の形態１および２では、複数の認証方式がどんな順序で、あるいはどんなタイミングで切り替わってゆくかは完全にランダムである。
【００２２】
一方、実施の形態３および４はいずれもソフトウエア１０１の実行開始時（起動時）に、複数ある認証方式の使用順序だけ、あるいは使用順序と切り替えタイミングとをハードウエア１０２で決めておき、終了までの間は上記順序やタイミングに従って、ソフトウエア１０１・ハードウエア１０２の双方でサイクリックに認証方式を切り替えるものである。一回の起動中は切り替えに一定の規則性があるものの、この規則はソフトウエア１０１の起動の都度変更される。
【００２３】
（実施の形態１）
図２は、本発明の実施の形態１にかかるソフトウエア認証装置の構成を模式的に示す説明図である。実施の形態１では、ソフトウエア１０１とハードウエア１０２との間に、後述する認証情報を受け渡しするための認証情報領域を設ける。この領域はソフトウエア１０１・ハードウエア１０２の双方から読み書き可能である。
【００２４】
なお、ここでは認証情報領域はハードウエア１０２上に設けることとするが、たとえばメインメモリ上の、ソフトウエア１０１はもちろんハードウエア１０２からもアクセス可能な領域に設けるようにしてもよい。
【００２５】
次に、図３は本発明の実施の形態１にかかるソフトウエア認証装置の構成を機能的に示す説明図である。図中、３０１ａ〜３０１ｄはソフトウエア１０１を実行するＰＣ上のＣＰＵにより、３０２ａ〜３０２ｆはＰＣＩボード上のハードウエア１０２により実現される。各部の機能は、すぐ下に述べるフローチャート中で順次説明する。
【００２６】
次に、図４は本発明の実施の形態１にかかるソフトウエア認証装置における、ハードウエア１０２によるソフトウエア１０１の認証処理の手順を示すフローチャートである。図示する処理は、ソフトウエア１０１の実行開始から終了までの間、認証側であるハードウエア１０２・被認証側であるソフトウエア１０１のそれぞれで繰り返し実行される。
【００２７】
ハードウエア１０２は、たとえばソフトウエア１０１の起動時や前回の認証時からｎ秒後など、その正当性を確認すべき時期（認証時期）が到来したのを認証時期監視部３０２ａで検出すると（ステップＳ４０１：Ｙｅｓ）、次にその認証方式選択部３０２ｆにより、複数ある認証方式の中から今回使用する一つをランダムに選択する（ステップＳ４０２）。そして認証情報書き込み部３０２ｃにより、上記で選択した方式を示す値を方式指定情報として、また当該方式のもとで認証に使用するデータを認証データとして、それぞれ認証情報領域の所定位置に書き込む（ステップＳ４０３・Ｓ４０４）。
【００２８】
一方、ソフトウエア１０１は認証時期の到来をその認証時期監視部３０１ａにより検出すると（ステップＳ４０５：Ｙｅｓ）、次にその認証情報読み出し部３０１ｂにより、認証情報領域内の方式指定情報および認証データを読み出す（ステップＳ４０６・Ｓ４０７）。続いてその認証結果データ算出部３０１ｄにより、ステップＳ４０６で読み出した値により特定される認証方式に従って、ステップＳ４０７で読み出した認証データから認証結果データを算出する（ステップＳ４０８）。そしてこの認証結果データを、認証情報書き込み部３０１ｃにより、認証情報領域の所定位置に書き込む（ステップＳ４０９）。
【００２９】
一方、ハードウエア１０２では方式指定情報と認証データとを認証情報領域に書き込んだ後、その認証結果データ算出部３０２ｄにより、ソフトウエア１０１の認証結果データ算出部３０１ｄと平行して、上記認証データの認証結果データを算出する（ステップＳ４１０）。次に認証情報読み出し部３０２ｂにより、ステップＳ４０９で書き込まれた認証結果データを認証情報領域から読み出すとともに（ステップＳ４１１）、照合部３０２ｅにより、ステップＳ４１０で算出した認証結果データと照合する（ステップＳ４１２）。そして、両者が一致していればＯＫ、不一致であればＮＧの認証結果を出力する（ステップＳ４１３）。
【００３０】
なお、上記の説明から明らかなように、認証情報領域を介して受け渡しされる認証情報とは、具体的には今回の認証で使用する認証方式を通知するために、ハードウエア１０２からソフトウエア１０１に渡される方式指定情報、ハードウエア１０２からソフトウエア１０１に渡される認証データ、および認証データをもとに生成され、ソフトウエア１０１からハードウエア１０２に渡される認証結果データよりなる。
【００３１】
（実施の形態２）
さて、上述した実施の形態１では認証ごとにその方式を切り替えるようにしたが、以下で説明する実施の形態２のように、認証方式の切り替えは認証のタイミングとは独立に、不定期に行うようにしてもよい。
【００３２】
図５は、本発明の実施の形態２にかかるソフトウエア認証装置の構成を模式的に示す説明図である。実施の形態２では、ソフトウエア１０１のコード中に、認証にあたってどの認証方式を使用すべきかが記述されている。以下ではこの記述も方式指定情報と呼ぶ。実施の形態２による方式指定情報は、具体的には現在使用中の認証方式を示す値（番号）や、当該方式に従って入力データから出力データを算出するサブルーチンへのポインタなどである。
【００３３】
実施の形態２では、ソフトウエア１０１の全体、あるいは少なくとも方式指定情報の記述された部分は、メインメモリ中ハードウエア１０２からも読み書き可能な領域にロードされる。ハードウエア１０２はメモリ上の方式指定情報の位置を把握しており、実施の形態１の認証情報領域のような特別な場所を介さず、ソフトウエア１０１の実行中、ＤＭＡなどにより直接上記情報を書き換える。
【００３４】
次に、図６は本発明の実施の形態２にかかるソフトウエア認証装置の構成を機能的に示す説明図である。図中、６０１ａ〜６０１ｃはソフトウエア１０１を実行するＰＣ上のＣＰＵにより、６０２ａ〜６０２ｆはＰＣＩボード上のハードウエア１０２により実現される。各部の機能は、すぐ下に述べるフローチャート中で順次説明する。
【００３５】
次に、図７は本発明の実施の形態２にかかるソフトウエア認証装置における、ハードウエア１０２による認証方式の切替処理の手順を示すフローチャートである。図示する処理は、ソフトウエア１０１の実行開始から終了までの間、ハードウエア１０２により繰り返し実行される。
【００３６】
ハードウエア１０２はその切替時期監視部６０２ｅにより、ソフトウエア１０１の起動時あるいは前回の切替時からランダムに生成した乱数分だけの時間が経過したこと、すなわち認証方式の切替時期が到来したことを検出すると（ステップＳ７０１：Ｙｅｓ）、次にその方式指定情報更新部６０２ｆにより、複数ある認証方式の中から一つをランダムに選択する（ステップＳ７０２）。そして、選択した方式に対応する方式指定情報を、メインメモリ上の所定位置に書き込む（ステップＳ７０３）。
【００３７】
次に、図８は本発明の実施の形態２にかかるソフトウエア認証装置における、ハードウエア１０２によるソフトウエア１０１の認証処理の手順を示すフローチャートである。図示する処理は、ソフトウエア１０１の実行開始から終了までの間、認証側であるハードウエア１０２・被認証側であるソフトウエア１０１のそれぞれで繰り返し実行される。
【００３８】
ハードウエア１０２は、たとえばソフトウエア１０１の起動時や前回の認証時からｎ秒後など、その正当性を確認すべき時期（認証時期）が到来したのを認証時期監視部６０２ａで検出すると（ステップＳ８０１：Ｙｅｓ）、次にその認証方式特定部６０２ｂにより、方式指定情報更新部６０２ｆに問い合わせて、直近に選択された認証方式すなわち今回の認証で使用すべき認証方式を特定する（ステップＳ８０２）。そして、特定した認証方式のもとで、認証結果データ算出部６０２ｃにより認証データから認証結果データを算出する（ステップＳ８０３）。
【００３９】
一方、ソフトウエア１０１は認証時期の到来をその認証時期監視部６０１ａにより検出すると（ステップＳ８０４：Ｙｅｓ）、次にその認証方式特定部６０１ｂにより、方式指定情報を参照して使用すべき認証方式を特定する（ステップＳ８０５）。そして、特定した認証方式のもとで、認証結果データ算出部６０１ｃにより認証データから認証結果データを算出し（ステップＳ８０６）、算出した認証結果データをハードウエア１０２からも参照可能なメモリ領域に書き込む（ステップＳ８０７）。
【００４０】
ハードウエア１０２ではその照合部６０２ｄにより、ステップＳ８０７で書き込まれた認証結果データを読み出すとともに（ステップＳ８０８）、ステップＳ８０３で算出した認証結果データと照合する（ステップＳ８０９）。そして、両者が一致していればＯＫ、不一致であればＮＧの認証結果を出力する（ステップＳ８１０）。
【００４１】
（実施の形態３）
さて、上述した実施の形態１および２では、複数ある認証方式がどんな順序で使用されるかは実際に実行してみなければ分からないが、以下で説明する実施の形態３のように、ソフトウエア１０１の起動時に、この方式の次はあの方式といった使用順序だけでも決めておくようにしてもよい。
【００４２】
図９は、本発明の実施の形態３にかかるソフトウエア認証装置の構成を模式的に示す説明図である。実施の形態３では、ソフトウエア１０１の内部に０または１の値を取る方式切替フラグと、図１０に示すような切替規則テーブルとが保持されている。
【００４３】
実施の形態３による切替規則テーブルは、個々の認証方式と対応づけてそのＩｎｄｅｘ、および次に使用される認証方式のＩｎｄｅｘを保持しており、これにより複数ある認証方式の使用順序を規定している。たとえば、図示する例では認証方式はＡ（Ｉｎｄｅｘ＝１）→Ｃ（Ｉｎｄｅｘ＝３）→Ｂ（Ｉｎｄｅｘ＝２）→Ｄ（Ｉｎｄｅｘ＝４）と順次切り替わった後、最初のＡに戻ることになる。そして、切り替わりのタイミングは方式切替フラグが０から１に変化（フラグＯＮ）した直後、あるいは１から０に変化（フラグＯＦＦ）した直後の最初の認証となる。
【００４４】
実施の形態３では、ソフトウエア１０１の全体、あるいは少なくとも方式切替フラグと切替規則テーブルとを含む部分は、メインメモリ中ハードウエア１０２からも読み書き可能な領域にロードされる。ハードウエア１０２はメモリ上の方式切替フラグおよび切替規則テーブルの位置とサイズを把握しており、ＤＭＡなどにより直接これらを書き換える。この書き換えは、ソフトウエア１０１の実行中いつでも行うことができるが、ここではフラグの更新は随時、テーブル内の値（具体的には「次Ｉｎｄｅｘ」の値）の更新は起動時に１回だけ行うものとする。
【００４５】
次に、図１１は本発明の実施の形態３にかかるソフトウエア認証装置の構成を機能的に示す説明図である。図中、１１０１ａ〜１１０１ｃはソフトウエア１０１を実行するＰＣ上のＣＰＵにより、１１０２ａ〜１１０２ｇはＰＣＩボード上のハードウエア１０２により実現される。各部の機能は、すぐ下に述べるフローチャート中で順次説明する。
【００４６】
次に、図１２は本発明の実施の形態３にかかるソフトウエア認証装置における、ハードウエア１０２による認証方式の切替処理の手順を示すフローチャートである。ソフトウエア１０１の実行開始時には（ステップＳ１２０１：Ｙｅｓ）、切替規則テーブル更新部１１０２ｅにより、「次Ｉｎｄｅｘ」欄にランダムな順序で各方式のＩｎｄｅｘを設定することで、図１０のような切替規則テーブルを作成する（ステップＳ１２０２）。そして、作成したテーブルをメインメモリ上の所定位置に書き込む（ステップＳ１２０３）。
【００４７】
なお、ここでは上記テーブルを、すでにメモリにロードされたソフトウエア１０１中にはめこむようにしたが、あるいはソフトウエア１０１のロードをハードウエア１０２経由で行い、起動時、メモリへの転送に先立って、あらかじめハードウエア１０２でソフトウエア１０１に上記テーブルを書き込むようにしてもよい。
【００４８】
ソフトウエア１０１の終了（ステップＳ１２０１：Ｎｏ）とともに、ハードウエア１０２も本フローチャートによる処理を終了するが（ステップＳ１２０４：Ｙｅｓ）、開始から終了までの間、すなわちソフトウエア１０１の実行中は（ステップＳ１２０４：Ｎｏ）、切替時期監視部１１０２ｆにより認証方式の切替時期を継続的に監視する。
【００４９】
そして当該時期の到来、具体的には、ソフトウエア１０１の起動時あるいは前回の切替時からランダムに生成した乱数分だけの時間が経過したことを検出すると（ステップＳ１２０５：Ｙｅｓ）、次にその方式切替フラグ更新部１１０２ｇにより、メインメモリ上の所定位置にある方式切替フラグを０から１へ、あるいは１から０へ更新する（ステップＳ１２０６）。
【００５０】
なお、実施の形態３のハードウエア１０２によるソフトウエア１０１の認証処理の手順は、図８に示した実施の形態２のそれとほぼ同様である。異なるのは認証方式の特定の際（ステップＳ８０２・Ｓ８０５）、方式指定情報でなく、切替規則テーブルの内容と方式切替フラグの更新状況によって、使用すべき認証方式を特定する点のみである。
【００５１】
（実施の形態４）
さて、上述した実施の形態３ではソフトウエア１０１の起動時に、複数の認証方式の使用順序のみを決めていたが、以下で説明する実施の形態４のように、順序とともに切り替えのタイミングもあわせて決めてしまうようにしてもよい。
【００５２】
図１３は、本発明の実施の形態４にかかるソフトウエア認証装置の構成を模式的に示す説明図である。実施の形態４では、ソフトウエア１０１の内部に図１４に示すような切替規則テーブルが保持されている。
【００５３】
実施の形態４による切替規則テーブルは、図１０に示した実施の形態３によるそれに、各方式の使用回数を追加した構成であり、複数ある認証方式の使用順序と切替時期とを規定している。たとえば、図示する例では認証方式Ａ（Ｉｎｄｅｘ＝１）を５回使用した後、認証方式Ｃ（Ｉｎｄｅｘ＝３）を１２回使用する。続いてＢ（Ｉｎｄｅｘ＝２）を９回、Ｄ（Ｉｎｄｅｘ＝４）を６回使用した後、最初のＡに戻ることを繰り返す。
【００５４】
実施の形態４では、ソフトウエア１０１の全体、あるいは少なくとも切替規則テーブルを含む部分は、メインメモリ中ハードウエア１０２からも読み書き可能な領域にロードされる。ハードウエア１０２はメモリ上の切替規則テーブルの位置とサイズを把握しており、ＤＭＡなどにより直接その値（具体的には「使用回数」と「次Ｉｎｄｅｘ」の値）を書き換える。この書き換えは、ソフトウエア１０１の実行中いつでも行うことができるが、ここでは起動時に１回だけ行うものとする。
【００５５】
次に、図１５は本発明の実施の形態４にかかるソフトウエア認証装置の構成を機能的に示す説明図である。図１１に示した実施の形態３のそれから、方式切替フラグに関連する部分、具体的には切替時期監視部１１０２ｆと方式切替フラグ更新部１１０２ｇ、および認証方式特定部１１０１ｂ内の方式切替フラグを削除した構成である。
【００５６】
ソフトウエア１０１の起動時に、ハードウエア１０２の切替規則テーブル更新部１５０２ｅで図１４のようなテーブルを作成し（なお、その「使用回数」の値と「次Ｉｎｄｅｘ」の値の順序はランダムに決定される）、メインメモリ上の所定位置に書き込んだ後は、図８に示したのと同様の手順で定期的に認証を行う。異なるのは認証方式の特定の際（ステップＳ８０２・Ｓ８０５）、方式指定情報や方式切替フラグでなく、もっぱら切替規則テーブルにもとづいて使用すべき認証方式を特定する点のみである。
【００５７】
以上説明した実施の形態１〜４によれば、コンテンツ１００を復号するソフトウエア１０１は、その開始から終了までの全期間を通じてハードウエア１０２による認証を受けるとともに、その認証方式がハードウエア１０２主導で随時変更されるので、ソフトウエア１０１の改変やなりすまし、あるいは解析などの不正行為を確実に検出することができる。
【００５８】
そして、認証に失敗したソフトウエア１０１へは復号鍵の供給を停止することで、復号後のコンテンツ１００が不正なソフトウエア１０１を介して取り出されること、ひいてはその違法な複製や頒布を阻止することが可能である。
【００５９】
なお、上述した実施の形態１〜４ではもっぱら認証方式を切り替えるようにしたが、さらに、各方式のもとで認証に使用するデータも不規則に変更することで、解析などに対する強度をいっそう高めるようにしてもよい。
【００６０】
この場合、上述の認証データを差し替えるようにしてもよいが、このデータは解析による特定が比較的容易なため、認証データの代わりに認証鍵情報を差し替えるようにしたほうがより安全である。この認証鍵情報とは、上述した復号鍵（コンテンツ１００を復号するための鍵）とは異なり、ハッシュ関数による認証結果データの算出時に、入力側の認証データに付加されるデータである。認証鍵情報はソフトウエア１０１・ハードウエア１０２の双方に、認証方式ごとに保持されている。
【００６１】
そこで、たとえば現在使用中の認証方式がＡであるうちに、まずハードウエア１０２側の認証方式Ｃの鍵情報ｃをｃ’に書き換え、次にメインメモリ上の所定位置、具体的にはソフトウエア１０１側の鍵情報ｃがロードされている領域に、新たな鍵情報ｃ’をハードウエア１０２から書き込んでおく。この後、認証方式がＡからＣに切り替わると、ソフトウエア１０１・ハードウエア１０２の双方で、認証データと鍵情報ｃ’を基礎として認証結果データを算出する（図１６）。
【００６２】
このように認証鍵情報を不規則に変更することで、実は同じ認証データや同じ認証方式を使い回しているのであっても、見かけ上、照合される認証結果データは認証鍵情報によって変化することになり、簡素なアルゴリズムで一見複雑な（解析に強い）認証を実現することができる。
【００６３】
なお、本発明によるソフトウエア認証処理や認証方式の切替処理を実行するプログラムは、ＲＯＭ、ＦＤ、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＭＯ、ＤＶＤなどプロセッサで読み取り可能な各種の記録媒体に記録され、当該記録媒体によって配布することができる。また、インターネットなどのネットワークを介して配布することも可能である。
【００６４】
（付記１）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【００６５】
（付記２）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記認証で使用する認証方式を切り替えるべき切替時期の到来を検出する切替時期検出工程と、
前記切替時期検出工程で切替時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【００６６】
（付記３）前記認証方式通知工程では、前記認証方式選択工程で選択された認証方式を、当該方式に対応する情報を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記１または前記付記２に記載のソフトウエア認証方法。
【００６７】
（付記４）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証方法において、
前記ソフトウエアの起動時に前記認証で使用する認証方式の切替に関する規則を設定する切替規則設定工程と、
前記切替規則設定工程で設定された規則を前記ソフトウエアに通知する切替規則通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記切替規則設定工程で設定された規則にもとづいて使用すべき認証方式を特定する認証方式特定工程と、
前記認証方式特定工程で特定された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
を含んだことを特徴とするソフトウエア認証方法。
【００６８】
（付記５）前記切替規則設定工程で設定される規則には、前記認証で使用する複数の認証方式の使用順序に関する規則および／または前記認証で使用する複数の認証方式の切替時期に関する規則が含まれることを特徴とする前記付記４に記載のソフトウエア認証方法。
【００６９】
（付記６）前記切替規則通知工程では、前記切替規則設定工程で設定された規則を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記４または前記付記５に記載のソフトウエア認証方法。
【００７０】
（付記７）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証プログラムにおいて、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
をプロセッサに実行させることを特徴とするソフトウエア認証プログラム。
【００７１】
（付記８）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証プログラムにおいて、
前記認証で使用する認証方式を切り替えるべき切替時期の到来を検出する切替時期検出工程と、
前記切替時期検出工程で切替時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択工程と、
前記認証方式選択工程で選択された認証方式を前記ソフトウエアに通知する認証方式通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記認証方式選択工程で選択された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
をプロセッサに実行させることを特徴とするソフトウエア認証プログラム。
【００７２】
（付記９）前記認証方式通知工程では、前記認証方式選択工程で選択された認証方式を、当該方式に対応する情報を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記７または前記付記８に記載のソフトウエア認証プログラム。
【００７３】
（付記１０）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証プログラムにおいて、
前記ソフトウエアの起動時に前記認証で使用する認証方式の切替に関する規則を設定する切替規則設定工程と、
前記切替規則設定工程で設定された規則を前記ソフトウエアに通知する切替規則通知工程と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出工程と、
前記認証時期検出工程で認証時期の到来が検出された場合に、前記切替規則設定工程で設定された規則にもとづいて使用すべき認証方式を特定する認証方式特定工程と、
前記認証方式特定工程で特定された認証方式にもとづいて前記ソフトウエアを認証する認証工程と、
をプロセッサに実行させることを特徴とするソフトウエア認証プログラム。
【００７４】
（付記１１）前記切替規則設定工程で設定される規則には、前記認証で使用する複数の認証方式の使用順序に関する規則および／または前記認証で使用する複数の認証方式の切替時期に関する規則が含まれることを特徴とする前記付記１０に記載のソフトウエア認証プログラム。
【００７５】
（付記１２）前記切替規則通知工程では、前記切替規則設定工程で設定された規則を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記１０または前記付記１１に記載のソフトウエア認証プログラム。
【００７６】
（付記１３）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証装置において、
前記認証を実行すべき認証時期の到来を検出する認証時期検出手段と、
前記認証時期検出手段により認証時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択手段と、
前記認証方式選択手段により選択された認証方式を前記ソフトウエアに通知する認証方式通知手段と、
前記認証方式選択手段により選択された認証方式にもとづいて前記ソフトウエアを認証する認証手段と、
を備えたことを特徴とするソフトウエア認証装置。
【００７７】
（付記１４）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証装置において、
前記認証で使用する認証方式を切り替えるべき切替時期の到来を検出する切替時期検出手段と、
前記切替時期検出手段により切替時期の到来が検出された場合に、複数の認証方式の中から一つを選択する認証方式選択手段と、
前記認証方式選択手段により選択された認証方式を前記ソフトウエアに通知する認証方式通知手段と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出手段と、
前記認証時期検出手段により認証時期の到来が検出された場合に、前記認証方式選択手段により選択された認証方式にもとづいて前記ソフトウエアを認証する認証手段と、
を備えたことを特徴とするソフトウエア認証装置。
【００７８】
（付記１５）前記認証方式通知手段は、前記認証方式選択手段により選択された認証方式を、当該方式に対応する情報を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記１３または前記付記１４に記載のソフトウエア認証装置。
【００７９】
（付記１６）実行中のソフトウエアを認証することでその正当性を検査するソフトウエア認証装置において、
前記ソフトウエアの起動時に前記認証で使用する認証方式の切替に関する規則を設定する切替規則設定手段と、
前記切替規則設定手段により設定された規則を前記ソフトウエアに通知する切替規則通知手段と、
前記認証を実行すべき認証時期の到来を検出する認証時期検出手段と、
前記認証時期検出手段により認証時期の到来が検出された場合に、前記切替規則設定手段により設定された規則にもとづいて使用すべき認証方式を特定する認証方式特定手段と、
前記認証方式特定手段により特定された認証方式にもとづいて前記ソフトウエアを認証する認証手段と、
を備えたことを特徴とするソフトウエア認証装置。
【００８０】
（付記１７）前記切替規則設定手段により設定される規則には、前記認証で使用する複数の認証方式の使用順序に関する規則および／または前記認証で使用する複数の認証方式の切替時期に関する規則が含まれることを特徴とする前記付記１６に記載のソフトウエア認証装置。
【００８１】
（付記１８）前記切替規則通知手段は、前記切替規則設定手段により設定された規則を前記ソフトウエアを実行するプロセッサから参照可能な記憶領域に書き込むことで前記ソフトウエアに通知することを特徴とする前記付記１６または前記付記１７に記載のソフトウエア認証装置。
【００８２】
【発明の効果】
以上説明したように本発明によれば、コンテンツを再生するためのソフトウエアは、その実行開始から終了までの全期間にわたって、認証方式を随時変更されながら継続的かつリアルタイムに認証されるので、これによって、コンテンツの違法コピーなどを目的とした再生用ソフトウエアの改変・なりすましなどを確実に検出することが可能なソフトウエア認証方法、ソフトウエア認証プログラムおよびソフトウエア認証装置が得られるという効果を奏する。
【図面の簡単な説明】
【図１】本発明によるソフトウエア認証装置の構成を模式的に示す説明図である。
【図２】本発明の実施の形態１にかかるソフトウエア認証装置の構成を模式的に示す説明図である。
【図３】本発明の実施の形態１にかかるソフトウエア認証装置の構成を機能的に示す説明図である。
【図４】本発明の実施の形態１にかかるソフトウエア認証装置における、ハードウエア１０２によるソフトウエア１０１の認証処理の手順を示すフローチャートである。
【図５】本発明の実施の形態２にかかるソフトウエア認証装置の構成を模式的に示す説明図である。
【図６】本発明の実施の形態２にかかるソフトウエア認証装置の構成を機能的に示す説明図である。
【図７】本発明の実施の形態２にかかるソフトウエア認証装置における、ハードウエア１０２による認証方式の切替処理の手順を示すフローチャートである。
【図８】本発明の実施の形態２にかかるソフトウエア認証装置における、ハードウエア１０２によるソフトウエア１０１の認証処理の手順を示すフローチャートである。
【図９】本発明の実施の形態３にかかるソフトウエア認証装置の構成を模式的に示す説明図である。
【図１０】本発明の実施の形態３にかかるソフトウエア認証装置における、切替規則テーブルの一例を示す説明図である。
【図１１】本発明の実施の形態３にかかるソフトウエア認証装置の構成を機能的に示す説明図である。
【図１２】本発明の実施の形態３にかかるソフトウエア認証装置における、ハードウエア１０２による認証方式の切替処理の手順を示すフローチャートである。
【図１３】本発明の実施の形態４にかかるソフトウエア認証装置の構成を模式的に示す説明図である。
【図１４】本発明の実施の形態４にかかるソフトウエア認証装置における、切替規則テーブルの一例を示す説明図である。
【図１５】本発明の実施の形態４にかかるソフトウエア認証装置の構成を機能的に示す説明図である。
【図１６】認証方式でなく認証鍵情報を切り替える場合のソフトウエア認証装置の構成を模式的に示す説明図である。
【符号の説明】
１００  暗号化コンテンツ
１０１  ソフトウエア（コンテンツ１００再生用）
１０２  ハードウエア（ソフトウエア１０１認証用）
３０１ａ，３０２ａ，６０１ａ，６０２ａ，１１０１ａ，１１０２ａ，１５０１ａ，１５０２ａ  認証時期監視部
３０１ｂ，３０２ｂ  認証情報読み出し部
３０１ｃ，３０２ｃ  認証情報書き込み部
３０１ｄ，３０２ｄ，６０１ｃ，６０２ｃ，１１０１ｃ，１１０２ｃ，１５０１ｃ，１５０２ｃ  認証結果データ算出部
３０２ｅ，６０２ｄ，１１０２ｄ，１５０２ｄ  照合部
３０２ｆ  認証方式選択部
６０１ｂ，６０２ｂ，１１０１ｂ，１１０２ｂ，１５０１ｂ，１５０２ｂ  認証方式特定部
６０２ｅ，１１０２ｆ  切替時期監視部
６０２ｆ  方式指定情報更新部
１１０２ｅ，１５０２ｅ  切替規則テーブル更新部
１１０２ｇ  方式切替フラグ更新部
【図１】
2004342046.tif 000003
【図２】
2004342046.tif 000004
【図３】
2004342046.tif 000005
【図４】
2004342046.tif 000006
【図５】
2004342046.tif 000007
【図６】
2004342046.tif 000008
【図７】
2004342046.tif 000009
【図８】
2004342046.tif 000010
【図９】
2004342046.tif 000011
【図１０】
2004342046.tif 000012
【図１１】
2004342046.tif 000013
【図１２】
2004342046.tif 000014
【図１３】
2004342046.tif 000015
【図１４】
2004342046.tif 000016
【図１５】
2004342046.tif 000017
【図１６】
2004342046.tif 000018