(57)【要約】【課題】  署名装置と、当該署名装置と連携した認証を前提としてプログラムを実行する利用者装置とからなる認証システムに係り、プログラム提供者側（署名装置）の鍵が更新された場合でもユーザーが既に保持しているプログラムを使用でき、また、プログラム提供者側（署名装置）の鍵の更新を検出することを課題とする。【解決手段】  利用者装置１と署名装置３は、共通の鍵ＫＳを用いて、認証コードに基づく認証を行う。利用者装置１の認証コード付替処理（Ｓ１３）では、鍵ＫＳによる認証が成功した場合に、利用者装置１固有の鍵ＫＵによる認証コードに、認証コードを付替える。また、鍵ＫＳそのものに対する認証コードを用いて、鍵ＫＳの認証も行う。【選択図】        図１０
2005259028.tif 000002
【特許請求の範囲】
【請求項１】
署名装置と連携した認証を前提としてプログラムを実行する利用者装置であって、以下の要素を有することを特徴とする利用者装置
（１）署名装置と利用者装置で共有する一次鍵による認証コードを付した一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信部
（２）前記一次鍵と利用者装置固有の二次鍵とを記憶している鍵記憶部
（３）受信した一次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記一次鍵による認証コードを生成し、受信した一次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、一致する場合に、当該プログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、生成した認証コードを当該プログラム部分に付した二次認証コード付プログラムを生成する認証コード付替部
（４）生成した二次認証コード付プログラムを記憶する認証コード付プログラム記憶部
（５）認証コード付プログラム記憶部に記憶している二次認証コード付プログラムのプログラム部分を実行する前に、当該二次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、当該二次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、不一致の場合に前記プログラム部分の実行を行わせないプログラム認証部。
【請求項２】
署名装置と利用者装置で共有する一次鍵と、利用者装置固有の二次鍵とを記憶している鍵記憶部を有し、署名装置と連携した認証を前提としてプログラムを実行する利用者装置となるコンピュータに、以下の手順を実行させるための利用者装置用プログラム
（１）署名装置と利用者装置で共有する一次鍵による認証コードを付した一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信処理手順
（２）受信した一次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記一次鍵による認証コードを生成し、受信した一次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、一致する場合に、当該プログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、生成した認証コードを当該プログラム部分に付した二次認証コード付プログラムを生成する認証コード付替処理手順
（３）生成した二次認証コード付プログラムを記憶する認証コード付プログラム記憶処理手順
（４）認証コード付プログラム記憶処理手順で記憶した二次認証コード付プログラムのプログラム部分を実行する前に、当該二次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、当該二次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、不一致の場合に前記プログラム部分の実行を行わせないプログラム認証処理手順。
【請求項３】
署名装置と、当該署名装置と連携した認証を前提としてプログラムを実行する利用者装置とからなる認証システムであって、
署名装置は、
（１）署名装置と利用者装置で共有する一次鍵を記憶している鍵記憶部
（２）鍵記憶部に記憶している前記一次鍵について、当該一次鍵による鍵認証コード（ＭＳＫ）を生成し、更に、利用者装置で実行されるプログラムと当該鍵認証コード（ＭＳＫ）について、鍵記憶部に記憶している前記一次鍵による全体認証コード（ＭＳＰ）を生成し、生成した全体認証コード（ＭＳＰ）をプログラムと鍵認証コード（ＭＳＫ）に付した一次認証コード付プログラムを生成する認証コード生成部と、
（３）生成した一次認証コード付プログラムを送信する認証コード付プログラム送信部とを有し、
利用者装置は、
（４）署名装置と利用者装置で共有する一次鍵を記憶している鍵記憶部
（５）前記一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信部と、
（６）受信した一次認証コード付プログラムについて、鍵記憶部に記憶している前記一次鍵による全体認証コード（ＭＳＰ）を生成し、受信した一次認証コード付プログラムの全体認証コード（ＭＳＰ）部分と生成した全体認証コード（ＭＳＰ）を比較し、一致しない場合に、鍵記憶部に記憶している前記一次鍵について、当該一次鍵による鍵認証コード（ＭＳＫ）を生成し、受信した一次認証コード付プログラムの鍵認証コード（ＭＳＫ）部分と生成した鍵認証コード（ＭＳＫ）を比較し、鍵認証コード（ＭＳＫ）同士が一致しない場合に、一次鍵が更新されたと判定する認証コード判定部と、
（７）一次鍵が更新されたと判定した場合に、一次鍵が更新されたことを示す通知を出力する鍵更新通知部。
【請求項４】
署名装置と連携した認証を前提としてプログラムを実行する利用者装置であって、以下の要素を有することを特徴とする利用者装置
（１）署名装置と利用者装置で共有する一次鍵を記憶している鍵記憶部
（２）プログラム部分と、一次鍵についての当該一次鍵による鍵認証コード（ＭＳＫ）部分と、プログラムと当該鍵認証コード（ＭＳＫ）についての当該一次鍵による全体認証コード（ＭＳＰ）部分とからなる一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信部
（３）受信した一次認証コード付プログラムについて、鍵記憶部に記憶している前記一次鍵による全体認証コード（ＭＳＰ）を生成し、受信した一次認証コード付プログラムの全体認証コード（ＭＳＰ）部分と生成した全体認証コード（ＭＳＰ）を比較し、一致しない場合に、鍵記憶部に記憶している前記一次鍵について、当該一次鍵による鍵認証コード（ＭＳＫ）を生成し、受信した一次認証コード付プログラムの鍵認証コード（ＭＳＫ）部分と生成した鍵認証コード（ＭＳＫ）を比較し、鍵認証コード（ＭＳＫ）同士が一致しない場合に、一次鍵が更新されたと判定する認証コード判定部
（４）一次鍵が更新されたと判定した場合に、一次鍵が更新されたことを示す通知を出力する鍵更新通知部。
【請求項５】
署名装置と利用者装置で共有する一次鍵を記憶している鍵記憶部を有し、署名装置と連携した認証を前提としてプログラムを実行する利用者装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）プログラム部分と、一次鍵についての当該一次鍵による鍵認証コード（ＭＳＫ）部分と、プログラムと当該鍵認証コード（ＭＳＫ）についての当該一次鍵による全体認証コード（ＭＳＰ）部分とからなる一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信処理手順
（２）受信した一次認証コード付プログラムについて、鍵記憶部に記憶している前記一次鍵による全体認証コード（ＭＳＰ）を生成し、受信した一次認証コード付プログラムの全体認証コード（ＭＳＰ）部分と生成した全体認証コード（ＭＳＰ）を比較し、一致しない場合に、鍵記憶部に記憶している前記一次鍵について、当該一次鍵による鍵認証コード（ＭＳＫ）を生成し、受信した一次認証コード付プログラムの鍵認証コード（ＭＳＫ）部分と生成した鍵認証コード（ＭＳＫ）を比較し、鍵認証コード（ＭＳＫ）同士が一致しない場合に、一次鍵が更新されたと判定する認証コード判定処理手順
（３）一次鍵が更新されたと判定した場合に、一次鍵が更新されたことを示す通知を出力する鍵更新通知処理手順。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、認証装置における認証方法及びその装置に関するものである。
【背景技術】
【０００２】
近年インターネットの発達により、インターネットを介してプログラムを配信する機会が増大している。しかしながらインターネット上を流れるデータは技術的には改ざんすることが可能であり、配信過程で不正なプログラムに置き換えられる危険がある。コンテンツを安全に通信する方法として特開２００３−１３４１００号公報にはコンテンツ提供システムでコンテンツ提供者の暗号鍵とユーザー（被提供者）固有の暗号鍵を用いて電子署名、暗号化、復号化、検証する方法が提案されている。
【０００３】
特開２００３−１３４１００号公報に示されている方法においては、コンテンツ配信装置がユーザーごとに異なる鍵を生成し、電子署名添付、暗号化を行うため、例えば、自動車のカーナビゲーション上で動作するプログラムのように、正当な者が作成したプログラムであれば動作を許可するようなシステムにおいて不特定多数のユーザー向けにプログラムを配信することができないという問題がある。また、なんらかの原因でコンテンツ配信装置の鍵が更新されてしまうと利用者側で電子署名の認証に失敗するが、不正な第三者が作成したコンテンツなのかコンテンツ配信装置の鍵が更新されたのか利用者側では判断できないという問題がある。
【０００４】
また、共有されている鍵が漏えいした場合などは保持している鍵を更新する必要があり、特開２００３−１６９０５０号公報には認証失敗をトリガーとして鍵を更新する方法が提案されている。
【０００５】
特開２００３−１６９０５０号公報に示されている方法では、認証に失敗した場合にそれをトリガーとして鍵を更新するが、認証失敗が所定回数を超えた場合にセキュリティの問題があると判断するため、一度の認証失敗では鍵が更新されたのか不正が行われたのか判断することができないという問題がある。
【特許文献１】特開２００３−１３４１００号公報
【特許文献２】特開２００３−１６９０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、不特定多数のユーザー向けにプログラムを配信し、ユーザー側でプログラムの認証を行うシステムにおいて、プログラム提供者側の鍵が更新された場合でもユーザーが既に保持しているプログラムを使用でき、また、プログラム提供者側の鍵の更新を検出可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る利用者装置は、
署名装置と連携した認証を前提としてプログラムを実行する利用者装置であって、以下の要素を有することを特徴とする利用者装置
（１）署名装置と利用者装置で共有する一次鍵による認証コードを付した一次認証コード付プログラムを対象として、データを受信する認証コード付プログラム受信部
（２）前記一次鍵と利用者装置固有の二次鍵とを記憶している鍵記憶部
（３）受信した一次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記一次鍵による認証コードを生成し、受信した一次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、一致する場合に、当該プログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、生成した認証コードを当該プログラム部分に付した二次認証コード付プログラムを生成する認証コード付替部
（４）生成した二次認証コード付プログラムを記憶する認証コード付プログラム記憶部
（５）認証コード付プログラム記憶部に記憶している二次認証コード付プログラムのプログラム部分を実行する前に、当該二次認証コード付プログラムのプログラム部分について、鍵記憶部に記憶している前記二次鍵による認証コードを生成し、当該二次認証コード付プログラムの認証コード部分と生成した認証コードを比較し、不一致の場合に前記プログラム部分の実行を行わせないプログラム認証部。
【発明の効果】
【０００８】
本発明においては、プログラム提供者側の鍵が更新された場合でもユーザーが既に保持しているプログラムを使用でき、また、プログラム提供者側の鍵の更新を検出することが可能となる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
以下本発明を図面に示す実施例に基づいて説明する。図１は、実施の形態１における認証システムの構成を示す説明図である。実施の形態１では自動車の例を用いて説明する。
【００１０】
図１において、１は自動車内の利用者装置、２はプログラムを配信する配信装置、３はプログラムのメッセージ認証コード（以下認証コードと記す）を生成する署名装置である。利用者装置１と配信装置２、配信装置２と署名装置３はそれぞれ通信を行う。
【００１１】
また、利用者装置１は、配信装置２と通信を行う通信手段１１と、署名装置と共有する鍵および利用者装置固有の鍵、プログラムを格納する情報記憶手段１２と、プログラムの認証コードを生成する認証コード生成手段１３と、プログラムを実行するプログラム実行手段１４とを備える。利用者装置１として、例えば通信機能を備えたカーナビケーションシステムなどが考えられる。
【００１２】
また、配信装置２は、利用者装置１と通信を行う通信手段２１と、配信するプログラムを格納する情報記憶手段２２とを備える。配信装置２として、例えばインターネットに接続され、カーナビゲーション上で動作するプログラムを配信するプログラムメーカーのサーバ装置などが考えられる。
【００１３】
また、署名装置３は、配信装置２と通信を行う通信手段３１と、プログラムの認証コード生成に使用する鍵を格納情報記憶手段３２と、プログラムの認証コードを生成する認証コード生成手段３３とを備える。署名装置として、例えばインターネットに接続され、配信装置と通信を行う自動車メーカーのコンピュータが考えられる。
【００１４】
また、通信路４は無線通信路であり、例えば携帯電話網による通信が考えられる。通信路５は有線の通信路であり、例えば、インターネットを利用した通信が考えられる。
【００１５】
署名装置３の情報記憶装置３２にはプログラムの認証コード生成に使用する鍵ＫＳが格納される。また、利用者装置１の情報記憶手段１２には上記鍵ＫＳおよび利用者装置１に固有の鍵ＫＵが格納される。
【００１６】
配信装置２は署名装置３から受信したプログラムと認証コードからなるデータＤを情報記憶手段２２に格納し、利用者装置１からの要求に応じてデータＤを利用者装置１に送信する。
【００１７】
図２は、実施の形態１におけるプログラム認証システムの動作シーケンスを示す説明図である。
【００１８】
図３は、Ｓ２１からＳ２２までの処理に係る配信装置と署名装置のモジュール構成を示す図である。配信装置２は、認証コード生成依頼部２０１、認証コード付プログラム受信部２０２、及び認証コード付プログラム記憶部２１１を備える。認証コード生成依頼部２０１と認証コード付プログラム受信部２０２は、通信手段２１を用いて通信を行い、認証コード付プログラム記憶部２１１は、情報記憶手段２２内に設けられる。署名装置３は、プログラム受信部３０１、認証コード生成部３０２、認証コード付プログラム送信部３０３、及び鍵記憶部３１１を備えている。プログラム受信部３０１と認証コード付プログラム送信部３０３は、通信手段３１を用いて通信を行い、認証コード生成部３０２は、認証コード生成手段により認証コードを生成し、鍵記憶部３１１は、情報記憶手段３２内に設けられる。
【００１９】
図４は、Ｓ１１からＳ１４までの処理に係る利用者装置と配信装置のモジュール構成を示す図である。利用者装置１は、プログラム要求部１０１、認証コード付プログラム受信部１０２、認証コード付替部１０３、プログラム認証部１０４、プログラム実行部１０５、鍵記憶部１１１、及び認証コード付プログラム記憶部１１２を備えている。プログラム要求部１０１と認証コード付プログラム受信部１０２は、通信手段１１を用いて通信を行い、鍵記憶部１１１と認証コード付プログラム記憶部１１２は、情報記憶手段１２内に設けられる。配信装置２は、プログラム要求受信部２０３、認証コード付プログラム送信部２０４、及び認証コード付プログラム記憶部２１１を備えている。プログラム要求受信部２０３と認証コード付プログラム送信部２０４は、情報記憶手段２２内に設けられる。
【００２０】
これらの図に基づいて、動作について説明する。認証コード生成依頼部２０１によるステップＳ２１において、配信装置２は通信装置２１を使用してプログラムＰ（データＤ１）を署名装置に送信する。配信装置２の通信手段２１と署名装置３の通信手段３１は通信を行う際、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）などにより、双方を認証し、通信データを暗号化した上で通信を行う。ＳＳＬは一般的に使用されている技術であり説明を省略する。また、以下の説明では通信手段の動作の説明は省略する。
【００２１】
プログラム受信部３０１によるステップＳ３１において、署名装置３はデータＤ１を受信する。更に、認証コード生成部３０２によるステップＳ３２において、情報記憶装置３２（鍵記憶部３１１）に格納されている鍵ＫＳを鍵とし、データＤ１中のプログラムＰの認証コードＭＳ＝ＭＡＣ（ＫＳ，Ｐ）を生成し、認証コード付プログラム送信部３０３によるステップＳ３３において、プログラムＰと認証コードＭからなるデータＤ２を配信装置２に送信する。
【００２２】
図５は、データＤ２を示す図である。ＭＡＣは共通鍵暗号を使用する方式や一方向性関数を使用する方法などにより生成するが、一般的に使用されている技術であり説明を省略する。
【００２３】
プログラムを必要とするときは、プログラム要求部１０１によるステップＳ１１において、利用者装置１はプログラム要求メッセージＤ３を配信装置２に送信する。
【００２４】
プログラム要求受信部２０３によるステップＳ２３において、プログラム要求メッセージＤ３を受信する。認証コード付プログラム送信部２０４によるステップＳ２４において、配信装置２は情報格納手段２２（認証コード付プログラム記憶部２１１）に格納されているプログラムＰと認証コードＭからなるデータＤ４を利用者装置に送信する。データＤ４はデータＤ２と同一である。
【００２５】
次に、ステップＳ１２とＳ１３における利用者装置１の動作の詳細について図６に示すフローチャートを用いて説明する。
【００２６】
認証コード付プログラム受信部１０２によるステップＳ５１（図２のＳ１２と同じ）において、利用者装置１はデータＤ４を受信する。
【００２７】
認証コード付替部１０３によるステップＳ５２において、認証コード生成手段１３はデータＤ４中のプログラムＰと情報記憶手段１２（鍵記憶部１１１）に格納されている鍵ＫＳを使用して認証コードＭＳ’＝ＭＡＣ（ＫＳ，Ｐ）を生成する。
【００２８】
認証コード付替部１０３によるステップＳ５３において、ステップ５２で生成した認証コードＭＳ’がデータＤ２中の認証コードＭＳと比較して、一致しない場合にはエラー終了する。
【００２９】
認証コード付替部１０３によるステップＳ５３で認証コードが一致した場合には、ステップＳ５４において、認証コード生成手段１３はデータＤ４中のプログラムＰと情報記憶手段１２（鍵記憶部１１１）に格納されている鍵ＫＵを使用して認証コードＭＵ＝ＭＡＣ（ＫＵ，Ｐ）を生成する。
【００３０】
認証コード付替部１０３によるステップＳ５５において、プログラムＰとステップＳ６２で生成した認証コードＭＵを情報記憶手段１２（認証コード付プログラム記憶部１１２）に格納する。
【００３１】
図７は、情報記憶手段１２に格納されるデータを示す図である。情報記憶手段１２には、鍵記憶部１１１として鍵ＫＵが格納され、認証コード付プログラム記憶部１１２として認証コード付きプログラムが格納される。プログラムと認証コードの組は複数格納される。
【００３２】
次に、図２のステップＳ１４における利用者装置１の動作の詳細について、図８に示すフローチャートを用いて説明する。これらの処理は、プログラム認証部１０４により行われる。
【００３３】
ステップＳ６１において、利用者装置１は情報記憶手段１２（認証コード付プログラム記憶部１１２）に格納されている認証コードＭＵとプログラムＰを読み出す。
【００３４】
ステップＳ６２において、認証コード生成手段１３はステップＳ６１で読み出したプログラムＰと、情報記憶手段１２（鍵記憶部１１１）に格納されている鍵ＫＵを使用して認証コードＭＵ’＝ＭＡＣ（ＫＵ，Ｐ）を生成する。
【００３５】
ステップＳ６３において、ステップ６２で生成した認証コードＭＵ’とステップＳ６１で読み出した認証コードＭＵと比較して一致しない場合には、エラー終了する。ステップＳ６３で認証コードが一致した場合には、ステップＳ６４において、プログラム実行手段１４はプログラムＰを実行する。
【００３６】
以上説明したように、署名装置が生成した認証コードを認証後、利用者装置固有の鍵でプログラムの認証コードを付替えることにより、署名装置と利用者装置の共有している鍵の漏えいなどにより共有している鍵が更新された場合でも、利用者装置に格納済みのプログラムはそのまま認証することができるという効果を得ることができる。また、すべての利用者装置が署名装置と同一の鍵を共有することにより、署名装置が利用者装置を管理することなく、プログラムを配信できるという効果を得ることができる。
【００３７】
また、本実施の形態１では自動車のカーナビゲーションを例に説明したが、自動車の制御系のプログラムや一般的なコンピュータ上で動作するプログラムであってもよく、これに限られない。
【００３８】
また、本実施の形態１では利用者装置と配信装置間を無線通信路、配信装置と署名装置間を有線の通信路としたが、それぞれの通信路間で安全にデータの授受ができれば有線、無線あるいはフレキシブルディスクなどの媒体を用いてもよく、これに限られない。
【００３９】
また、本実施の形態１では署名装置と配信装置を別装置としたが、同一装置上に実現してもよく、これに限られない。
【００４０】
実施の形態２．
実施の形態２では、署名装置と利用者装置が鍵を共有している状態で署名装置が共有鍵を更新した際に、署名装置で共有鍵が更新されたことを利用者装置が検出する方式について説明する。
【００４１】
図９は、実施の形態２における認証システムの構成を示す説明図である。実施の形態２の利用者装置１は、実施の形態１の利用者装置１に署名装置の鍵が更新されたことを表示する鍵更新通知手段１５を追加した構成となっており、また、一部異なる処理を行う。署名装置３は実施の形態１の署名装置３と一部異なる処理を行い、実施の形態２の配信装置２は、実施の形態１と同様の処理を行う。
【００４２】
図１０は、実施の形態２におけるプログラム認証システムの動作シーケンスを示す説明図である。
【００４３】
図１１は、Ｓ２１からＳ２２までの処理に係る配信装置と署名装置のモジュール構成を示す図である。Ｄ２２が実施の形態１と異なる。
【００４４】
図１２は、Ｓ１１からＳ１４までの処理に係る利用者装置と配信装置のモジュール構成を示す図である。Ｄ２４が実施の形態１と異なる。また、鍵更新通知部１０６が追加されている。
【００４５】
これらの図に基づいて、動作について説明する。図１０におけるステップＳ２１、ステップＳ１１、ステップＳ２４、ステップＳ１４、は、実施の形態１と同様である。また、データＤ２１、データＤ２３は、実施の形態１のデータＤ１、データＤ３と同様である。
【００４６】
図１３は、ステップＳ３２とＳ３３における署名装置３の動作の詳細を示すフローチャートを示す図である。
【００４７】
プログラム受信部３０１によるステップＳ２２１において、署名装置３は配信装置２から認証コードを生成するプログラムＰを含むデータＤ２１を受信する。
【００４８】
認証コード生成部３０２によるステップＳ２２２において、情報記憶手段３２（鍵記憶部３１１）に格納されている鍵ＫＳを使用して鍵ＫＳの認証コードＭＳＫ＝ＭＡＣ（ＫＳ，ＫＳ）を生成する。
【００４９】
認証コード生成部３０２によるステップＳ２２３において、鍵ＫＳを使用してプログラムＰと前記認証コードＭＳＫに対して認証コードＭＳＰ＝ＭＡＣ（ＫＳ，Ｐ｜ＭＡＣ（ＫＳ，ＫＳ））を生成する。Ａ｜ＢはＡとＢを連結したデータを示す。
【００５０】
認証コード付プログラム送信部３０３によるステップＳ２２４において、プログラムＰとステップ２２３で生成した認証コードＭＳＰからなるデータＤ２２を配信装置に送信する。
【００５１】
図１４は、データＤ２２を示す図である。図１０中のデータＤ２４はデータＤ２２と同一である。
【００５２】
次に、ステップＳ１２とＳ１３における利用者装置１の動作について説明する。図１５は、ステップＳ１２とＳ１３における利用者装置１の動作の詳細を示すフローチャートを示す図である。
【００５３】
認証コード付プログラム受信部１０２によるステップＳ２５１において利用者装置１はデータＤ２４を受信する。
【００５４】
認証コード付替部１０３によるステップＳ２５２において、認証コード生成手段１３はデータＤ２４中のプログラムＰと認証コードＭＳＫに対して情報記憶手段１２（鍵記憶部１１１）に格納されている鍵ＫＳを使用して認証コードＭＳＰ’＝ＭＡＣ（ＫＳ，Ｐ｜ＭＡＣ（ＫＳ，ＫＳ））を生成する。
【００５５】
認証コード付替部１０３によるステップＳ２５３において、ステップ２５２で生成した認証コードＭＳＰ’とデータＤ２４中の認証コードＭＳＰと比較して一致した場合にはステップＳ２５７に進む。ステップＳ２５３で認証コードが一致しない場合にはステップＳ２５４において、認証コード生成手段１３は鍵ＫＳを使用して鍵ＫＳの認証コードＭＳＫ’＝ＭＡＣ（ＫＳ，ＫＳ）を生成する。
【００５６】
認証コード付替部１０３によるステップＳ２５５において、ステップ２５４で生成した認証コードＭＳＫ’とデータＤ２４中の認証コードＭＳＫと比較して一致した場合にはデータＤ２４中の認証コードＭＳＰが不正と判断して処理を終了する。ステップＳ２５５において認証コードが一致しない場合には署名装置３で共有鍵ＫＳが更新されたと判断し、ステップＳ２５６において、鍵更新通知手段２５（鍵更新通知部１０６）は共有鍵ＫＳが更新されたことを利用者に通知して処理を終了する。
【００５７】
認証コード付替部１０３によるステップＳ２５７、ステップＳ２５８の処理は実施の形態１における図６のフローチャートのステップＳ５４、ステップＳ５５と同様であり説明を省略する。
【００５８】
以上説明したように、配布するプログラムに署名装置と利用者装置が共有している鍵を使用して生成した共有鍵自身の認証コードを添付することにより、署名装置側で共有鍵が更新されたことを利用者装置が検出できるという効果を得ることができる。
【００５９】
最後に、各装置のハードウエアについて述べておく。図１６は、各装置のハードウエア構成例を示す図である。バスに、演算装置１６０１、データ記憶装置１６０２、メモリ１６０３が接続されている。データ記憶装置１６０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスクである。メモリ１６０３は、通常ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００６０】
プログラムは、通常データ記憶装置１６０２に記憶されており、メモリ１６０３にロードされた状態で、順次演算装置１６０１に読み込まれ処理を行う。
【００６１】
このように認証システムの各装置は、コンピュータであり、各要素はプログラムにより処理を実行することができる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
【図面の簡単な説明】
【００６２】
【図１】実施の形態１における認証システムの構成を示す説明図である。
【図２】実施の形態１におけるプログラム認証システムの動作シーケンスを示す説明図である。
【図３】Ｓ２１からＳ２２までの処理に係る配信装置と署名装置のモジュール構成を示す図である。
【図４】Ｓ１１からＳ１４までの処理に係る利用者装置と配信装置のモジュール構成を示す図である。
【図５】データＤ２を示す図である。
【図６】ステップＳ１２とＳ１３における利用者装置１の動作の詳細を示すフローチャートを示す図である。
【図７】情報記憶手段１２に格納されるデータを示す図である。
【図８】ステップＳ１４における利用者装置１の動作の詳細を示すフローチャートを示す図である。
【図９】実施の形態２における認証システムの構成を示す説明図である。
【図１０】実施の形態２におけるプログラム認証システムの動作シーケンスを示す説明図である。
【図１１】Ｓ２１からＳ２２までの処理に係る配信装置と署名装置のモジュール構成を示す図である。
【図１２】Ｓ１１からＳ１４までの処理に係る利用者装置と配信装置のモジュール構成を示す図である。
【図１３】ステップＳ３２とＳ３３における署名装置３の動作の詳細を示すフローチャートを示す図である。
【図１４】データＤ２２を示す図である。
【図１５】ステップＳ１２とＳ１３における利用者装置１の動作の詳細を示すフローチャートを示す図である。
【図１６】各装置のハードウエア構成を示す図である。
【符号の説明】
【００６３】
１  利用者装置、２  配信装置、３  署名装置、１１  通信手段、１２  情報記憶手段、１３  認証コード生成手段、１４  プログラム実行手段、２１  通信手段、２２  情報記憶手段、３１  通信手段、３２  情報記憶手段、３３  認証コード生成手段、１０１  プログラム要求部、１０２  認証コード付プログラム受信部、１０３  認証コード付替部、１０４  プログラム認証部、１０５  プログラム実行部、１０６  鍵更新通知部、１１１  鍵記憶部、１１２  認証コード付プログラム記憶部、２０１  認証コード生成依頼部、２０２  認証コード付プログラム受信部、２０３  プログラム要求受信部、２０４  認証コード付プログラム送信部、２１１  認証コード付プログラム記憶部、３０１  プログラム受信部、３０２  認証コード生成部、３０３  認証コード付プログラム送信部、３１１  鍵記憶部。
【図１】
2005259028.tif 000003
【図２】
2005259028.tif 000004
【図３】
2005259028.tif 000005
【図４】
2005259028.tif 000006
【図５】
2005259028.tif 000007
【図６】
2005259028.tif 000008
【図７】
2005259028.tif 000009
【図８】
2005259028.tif 000010
【図９】
2005259028.tif 000011
【図１０】
2005259028.tif 000012
【図１１】
2005259028.tif 000013
【図１２】
2005259028.tif 000014
【図１３】
2005259028.tif 000015
【図１４】
2005259028.tif 000016
【図１５】
2005259028.tif 000017
【図１６】
2005259028.tif 000018