(57)【要約】【課題】  ＩＣカードに関する情報を管理する端末に、安全、かつコストを抑えて情報を提供する。【解決手段】  端末SAMクライアント１１−１の端末SAMは、端末識別子と端末公開鍵をエンコードし、これと端末識別子を認定機関１３に送信し、認定機関１３はこれを受信する。認定機関は、エンコードされた端末識別子と端末公開鍵をデコードし、受信した端末識別子と一致するか否かを確認し、一致する場合に、認定機関秘密鍵を用いて端末公開鍵の署名を生成し、これをサーバ１４−１に送信する。サーバ１４−１は、端末公開鍵の署名を受信し、端末公開鍵が正当であることを検証し、正当であることが検証された場合、端末識別子と端末公開鍵を記憶する。本発明は、ＩＣカードに関する情報を処理する情報処理システムに適用することができる。【選択図】図１
2006033267.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードに関する情報を管理する端末装置、前記端末装置に情報を提供するサーバ、および前記端末装置を証明する認定装置からなる情報処理システムにおいて、
前記端末装置は、
前記端末装置に固有の端末識別子と、前記端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコード手段と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信手段と、
前記第１の送信手段による送信に対して、前記認定装置から送信されてきた第２の鍵の署名を受信する第１の受信手段と、
前記第１の受信手段により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶する第１の記憶手段と、
前記第２の鍵、前記第１の記憶手段に記憶された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信手段と
を備え、
前記認定装置は、
前記端末装置の前記第１の送信手段により送信されてきた、前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを受信する第２の受信手段と、
前記第２の受信手段により受信された、エンコードされた前記端末識別子および前記第２の鍵をデコードするデコード手段と、
前記デコード手段によりデコードされて得られた前記端末識別子と、前記第２の受信手段により受信された前記端末識別子とが一致するか否かを確認する確認手段と、
デコードされた前記端末識別子と、受信された前記端末識別子とが一致すると前記確認手段により確認された場合、前記認定装置が有する第３の鍵を用いて前記第２の鍵の署名を生成する第１の署名手段と、
前記第１の署名手段により生成された前記第２の鍵の署名を、前記端末装置に送信する第３の送信手段と
を備え、
前記サーバは、
前記端末装置の前記第２の送信手段により送信されてきた前記第２の鍵、前記第２の鍵の署名、および前記端末識別子を受信する第３の受信手段と、
前記第３の受信手段により受信された前記第２の鍵の署名、および認定装置が有する前記第３の鍵に対応する第４の鍵を用いて、前記第２の鍵が正当であるかを検証する第１の検証手段と、
前記第１の検証手段により前記第２の鍵が正当であることが検証された場合、前記端末識別子と前記第２の鍵を記憶する第２の記憶手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記端末装置は、
前記サーバに所定の情報を要求する場合、前記第１の鍵を用いて、前記情報を識別する識別情報の署名を生成する第２の署名手段と、
前記第２の署名手段により生成された前記識別情報の署名、前記識別情報、および前記端末識別子を、前記サーバに送信する第４の送信手段と、
前記第４の送信手段による送信に対して前記サーバから送信されてきた前記情報を受信する第４の受信手段と
をさらに備えるとともに、
前記サーバは、
前記端末装置の前記第４の送信手段により送信されてきた、前記識別情報の署名、前記識別情報、および前記端末識別子を受信する第５の受信手段と、
前記第５の受信手段により受信された前記識別情報の署名と、前記第５の受信手段により受信された前記端末識別子に対応する、前記第２の記憶手段に記憶された前記第２の鍵とを用いて、前記識別情報が正当であるかを検証する第２の検証手段と、
前記第２の検証手段により前記識別情報が正当であることが検証された場合、前記識別情報に対する前記情報を前記端末装置に送信する第５の送信手段と
をさらに備えることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報は、前記ＩＣカードに関するスクリプトまたは鍵である
ことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記エンコード手段は、前記端末装置に固有の端末識別子および前記第２の鍵を、前記認定装置が有する前記３の鍵に対応する第４の鍵を用いてエンコードし、
前記デコード手段は、エンコードされた前記端末装置に固有の端末識別子および前記第２の鍵を、前記第３の鍵を用いてデコードする
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
ＩＣカードに関する情報を管理する端末装置、前記端末装置に情報を提供するサーバ、および前記端末装置を証明する認定装置からなる情報処理システムの情報処理方法において、
前記端末装置は、
前記端末装置に固有の端末識別子と、前記端末装置が有する第１の鍵に対応する第２の鍵とをエンコードし、
エンコードされていない前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信し、
前記認定装置は、
前記端末装置から送信されてきた、前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを受信し、
受信された、エンコードされた前記端末識別子および前記第２の鍵をデコードし、
デコードされて得られた前記端末識別子と、受信された前記端末識別子とが一致するか否かを確認し、
デコードされた前記端末識別子と、受信された前記端末識別子とが一致すると確認された場合、前記認定装置が有する第３の鍵を用いて前記第２の鍵の署名を生成し、
生成された前記第２の鍵の署名を、前記端末装置に送信し、
前記端末装置は、
前記認定装置から送信されてきた前記第２の鍵の署名を受信し、
受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御し、
前記第２の鍵、記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信し、
前記サーバは、
前記端末装置から送信されてきた前記第２の鍵、前記第２の鍵の署名、および前記端末識別子を受信し、
受信された前記第２の鍵の署名、および前記認定装置が有する前記第３の鍵に対応する第４の鍵を用いて、前記第２の鍵が正当であるかを検証し、
検証により前記第２の鍵が正当であることが検証された場合、前記端末識別子と前記第２の鍵の記憶を制御する
ことを特徴とする情報処理方法。
【請求項６】
ＩＣカードに関する情報を提供するサーバおよび認定装置と情報を授受する情報処理装置において、
前記端末装置に固有の端末識別子と、前記端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコード手段と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信手段と、
前記第１の送信手段による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する第１の受信手段と、
前記第１の受信手段により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶する記憶手段と、
前記第２の鍵、前記記憶手段に記憶された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信手段と
を備えることを特徴とする情報処理装置。
【請求項７】
前記サーバに所定の情報を要求する場合、前記第１の鍵を用いて、前記情報を識別する識別情報の署名を生成する署名手段と、
前記署名手段により生成された前記識別情報の署名、前記識別情報、および前記端末識別子を、前記サーバに送信する第３の送信手段と、
前記第３の送信手段による送信に対して前記サーバから送信されてきた前記情報を受信する第２の受信手段と
をさらに備えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記情報は、前記ＩＣカードに関するスクリプトまたは鍵である
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記エンコード手段は、前記認定装置が有する前記第３の鍵に対応する前記第４の鍵を用いて、前記端末装置に固有の端末識別子および前記第２の鍵をエンコードする
ことを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
ＩＣカードに関する情報を提供するサーバおよび認定装置と情報を授受する情報処理装置の情報処理方法において、
前記端末装置に固有の端末識別子と、前記端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコードステップと、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信ステップと、
前記第１の送信ステップの処理による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する受信ステップと、
前記受信ステップの処理により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御する記憶制御ステップと、
前記第２の鍵、前記記憶制御ステップの処理により記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信ステップと
を含むことを特徴とする情報処理方法。
【請求項１１】
ＩＣカードに関する情報を処理するプログラムであって、
前記端末装置に固有の端末識別子と、前記端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコードステップと、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信ステップと、
前記第１の送信ステップの処理による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する受信ステップと、
前記受信ステップの処理により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御する記憶制御ステップと、
前記第２の鍵、前記記憶制御ステップの処理により記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、情報処理装置、並びにプログラムに関し、特に、ＩＣカードに関する情報を管理する端末装置に、安全、かつコストを抑えて情報を提供する情報処理システム、情報処理方法、情報処理装置、並びにプログラムに関する。
【背景技術】
【０００２】
近年、ＩＣ(Integrated Circuit)チップを内蔵するカード（ＩＣカード）内のデータに対して操作（更新）を行なう場合、ＩＣカードリーダライタを備える端末が、鍵やスクリプトを記憶しているサーバに接続し、オンラインで相互認証を行った後に、ＩＣカードリーダライタを備える端末がＩＣカード内のデータに対して操作を行っている。
【０００３】
例えば、特許文献１には、オンラインでＩＣカード内のデータを読み出す技術が開示されている。
【０００４】
このようなＩＣカードリーダライタを備える端末は、鍵やスクリプトを安全に守る機能を有していないため、オフラインでＩＣカード内のデータに対して操作（更新）を行なうためには、鍵やスクリプトを安全に格納できるセキュリティボックスを端末に設けることで、オフラインにおける認証を行っている。
【特許文献１】特開２００３−１４１０６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、端末にセキュリティボックスを設けた場合、そのセキュリティボックスでは、固定的な鍵やスクリプトしか格納することができず、鍵やスクリプトの更新は困難であるという課題があった。
【０００６】
また、鍵やスクリプトを提供するサービス提供者は、端末に設けられたセキュリティボックスが鍵やスクリプトを守る能力を有するか否かを認識することができないという課題があった。
【０００７】
さらに、サーバが鍵やスクリプトを記憶して、オンラインで端末（クライアント）と相互認証するクライアントサーバモデルにおいて、ＩＣカードによる決済処理などの、端末側（クライアント側）での処理が長時間発生したり、ＩＣカードの抜き差しによりカードアクセスが不規則である場合、サーバにおいて端末を管理する負荷が増加し、サーバを管理するコストが高いという課題があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、ＩＣカードに関する情報を管理する端末装置に、安全、かつコストを抑えて情報を提供するようにするものである。
【課題を解決するための手段】
【０００９】
本発明の情報処理システムは、ＩＣカードに関する情報を管理する端末装置、端末装置に情報を提供するサーバ、および端末装置を証明する認定装置からなる情報処理システムであって、端末装置は、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコード手段と、エンコードされていない端末識別子と、エンコード手段によりエンコードされた端末識別子および第２の鍵とを、認定装置に送信する第１の送信手段と、第１の送信手段による送信に対して、認定装置から送信されてきた第２の鍵の署名を受信する第１の受信手段と、第１の受信手段により受信された第２の鍵の署名を、端末識別子とともに記憶する第１の記憶手段と、第２の鍵、第１の記憶手段に記憶された第２の鍵の署名、および端末識別子をサーバに送信する第２の送信手段とを備え、認定装置は、端末装置の第１の送信手段により送信されてきた、端末識別子と、エンコードされた端末識別子および第２の鍵とを受信する第２の受信手段と、第２の受信手段により受信された、エンコードされた端末識別子および第２の鍵をデコードするデコード手段と、デコード手段によりデコードされて得られた端末識別子と、第２の受信手段により受信された端末識別子とが一致するか否かを確認する確認手段と、デコードされた端末識別子と、受信された端末識別子とが一致すると確認手段により確認された場合、認定装置が有する第３の鍵を用いて第２の鍵の署名を生成する第１の署名手段と、第１の署名手段により生成された第２の鍵の署名を、端末装置に送信する第３の送信手段とを備え、サーバは、端末装置の第２の送信手段により送信されてきた第２の鍵、第２の鍵の署名、および端末識別子を受信する第３の受信手段と、第３の受信手段により受信された第２の鍵の署名、および認定装置が有する第３の鍵に対応する第４の鍵を用いて、第２の鍵が正当であるかを検証する第１の検証手段と、第１の検証手段により第２の鍵が正当であることが検証された場合、端末識別子と第２の鍵を記憶する第２の記憶手段とを備えることを特徴とする。
【００１０】
端末装置は、サーバに所定の情報を要求する場合、第１の鍵を用いて、情報を識別する識別情報の署名を生成する第２の署名手段と、第２の署名手段により生成された識別情報の署名、識別情報、および端末識別子を、サーバに送信する第４の送信手段と、第４の送信手段による送信に対してサーバから送信されてきた情報を受信する第４の受信手段とをさらに備えるとともに、サーバは、端末装置の第４の送信手段により送信されてきた、識別情報の署名、識別情報、および端末識別子を受信する第５の受信手段と、第５の受信手段により受信された識別情報の署名と、第５の受信手段により受信された端末識別子に対応する、第２の記憶手段に記憶された第２の鍵とを用いて、識別情報が正当であるかを検証する第２の検証手段と、第２の検証手段により識別情報が正当であることが検証された場合、識別情報に対する情報を端末装置に送信する第５の送信手段とをさらに備えるものとすることができる。
【００１１】
情報は、ＩＣカードに関するスクリプトまたは鍵であるものとすることができる。
【００１２】
エンコード手段は、端末装置に固有の端末識別子および第２の鍵を、認定装置が有する３の鍵に対応する第４の鍵を用いてエンコードし、デコード手段は、エンコードされた端末装置に固有の端末識別子および第２の鍵を、第３の鍵を用いてデコードするものとすることができる。
【００１３】
本発明の第１の情報処理方法は、ＩＣカードに関する情報を管理する端末装置、端末装置に情報を提供するサーバ、および端末装置を証明する認定装置からなる情報処理システムの情報処理方法であって、端末装置は、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とをエンコードし、エンコードされていない端末識別子と、エンコードされた端末識別子および第２の鍵とを、認定装置に送信し、認定装置は、端末装置から送信されてきた、端末識別子と、エンコードされた端末識別子および第２の鍵とを受信し、受信された、エンコードされた端末識別子および第２の鍵をデコードし、デコードされて得られた端末識別子と、受信された端末識別子とが一致するか否かを確認し、デコードされた端末識別子と、受信された端末識別子とが一致すると確認された場合、認定装置が有する第３の鍵を用いて第２の鍵の署名を生成し、生成された第２の鍵の署名を、端末装置に送信し、端末装置は、認定装置から送信されてきた第２の鍵の署名を受信し、受信された第２の鍵の署名を、端末識別子とともに記憶するよう制御し、第２の鍵、記憶が制御された第２の鍵の署名、および端末識別子をサーバに送信し、サーバは、端末装置から送信されてきた第２の鍵、第２の鍵の署名、および端末識別子を受信し、受信された第２の鍵の署名、および認定装置が有する第３の鍵に対応する第４の鍵を用いて、第２の鍵が正当であるかを検証し、検証により第２の鍵が正当であることが検証された場合、端末識別子と第２の鍵の記憶を制御することを特徴とする。
【００１４】
第１の本発明においては、端末装置で、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とがエンコードされ、エンコードされていない端末識別子と、エンコードされた端末識別子および第２の鍵とが、認定装置に送信される。そして、認定装置で、端末識別子と、エンコードされた端末識別子および第２の鍵とが受信され、エンコードされた端末識別子および第２の鍵がデコードされ、デコードされて得られた端末識別子と、受信された端末識別子とが一致するか否かが確認され、一致すると確認された場合、認定装置が有する第３の鍵を用いて第２の鍵の署名が生成され、端末装置に送信される。また、端末装置で、第２の鍵の署名が受信され、第２の鍵の署名が、端末識別子とともに記憶され、第２の鍵、第２の鍵の署名、および端末識別子がサーバに送信される。さらに、サーバで、第２の鍵、第２の鍵の署名、および端末識別子が受信され、第２の鍵の署名、および認定装置が有する第３の鍵に対応する第４の鍵を用いて第２の鍵が正当であるかが検証され、正当であることが検証された場合、端末識別子と第２の鍵が記憶される。
【００１５】
本発明の情報処理装置は、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコード手段と、エンコードされていない端末識別子と、エンコード手段によりエンコードされた端末識別子および第２の鍵とを、認定装置に送信する第１の送信手段と、第１の送信手段による送信に対して、認定装置から送信されてきた、認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する第１の受信手段と、第１の受信手段により受信された第２の鍵の署名を、端末識別子とともに記憶する記憶手段と、第２の鍵、記憶手段に記憶された第２の鍵の署名、および端末識別子をサーバに送信する第２の送信手段とを備えることを特徴とする。
【００１６】
サーバに所定の情報を要求する場合、第１の鍵を用いて、情報を識別する識別情報の署名を生成する署名手段と、署名手段により生成された識別情報の署名、識別情報、および端末識別子を、サーバに送信する第３の送信手段と、第３の送信手段による送信に対してサーバから送信されてきた情報を受信する第２の受信手段とをさらに備えるものとすることができる。
【００１７】
情報は、ＩＣカードに関するスクリプトまたは鍵であるものとすることができる。
【００１８】
エンコード手段は、認定装置が有する第３の鍵に対応する第４の鍵を用いて、端末装置に固有の端末識別子および第２の鍵をエンコードするものとすることができる。
【００１９】
本発明の第２の情報処理方法は、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコードステップと、エンコードされていない端末識別子と、エンコード手段によりエンコードされた端末識別子および第２の鍵とを、認定装置に送信する第１の送信ステップと、第１の送信ステップの処理による送信に対して、認定装置から送信されてきた、認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する受信ステップと、受信ステップの処理により受信された第２の鍵の署名を、端末識別子とともに記憶するよう制御する記憶制御ステップと、第２の鍵、記憶制御ステップの処理により記憶が制御された第２の鍵の署名、および端末識別子をサーバに送信する第２の送信ステップとを含むことを特徴とする。
【００２０】
本発明のプログラムは、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とをエンコードするエンコードステップと、エンコードされていない端末識別子と、エンコード手段によりエンコードされた端末識別子および第２の鍵とを、認定装置に送信する第１の送信ステップと、第１の送信ステップの処理による送信に対して、認定装置から送信されてきた、認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名を受信する受信ステップと、受信ステップの処理により受信された第２の鍵の署名を、端末識別子とともに記憶するよう制御する記憶制御ステップと、第２の鍵、記憶制御ステップの処理により記憶が制御された第２の鍵の署名、および端末識別子をサーバに送信する第２の送信ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２１】
第２の本発明においては、端末装置に固有の端末識別子と、端末装置が有する第１の鍵に対応する第２の鍵とがエンコードされ、エンコードされていない端末識別子と、エンコードされた端末識別子および第２の鍵とが、認定装置に送信される。そして、この送信に対して、認定装置から送信されてきた、認定装置が有する第３の鍵を用いて生成された第２の鍵の署名が受信され、第２の鍵の署名が、端末識別子とともに記憶され、第２の鍵、第２の鍵の署名、および端末識別子がサーバに送信される。
【発明の効果】
【００２２】
本発明によれば、端末装置とサーバが容易に認証を行なうことができる。特に、本発明によれば、安全、かつ、容易に端末装置とサーバが情報を授受することができる。また、サーバの管理コストを抑えることができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２４】
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００２５】
請求項１に記載の情報処理システムは、ＩＣカードに関する情報を管理する端末装置（例えば、図１の端末SAMクライアント１１−１）、前記端末装置に情報を提供するサーバ（例えば、図１のサーバ１４−１）、および前記端末装置を証明する認定装置（例えば、図１の認定機関１３）からなる情報処理システム（例えば、図１の情報処理システム）であって、
前記端末装置は、
前記端末装置に固有の端末識別子（例えば、端末SAM識別子）と、前記端末装置が有する第１の鍵（例えば、端末SAM秘密鍵）に対応する第２の鍵（例えば、端末SAM公開鍵）とをエンコードするエンコード手段（例えば、図１６のステップＳ３２の処理を実行する図７のエンコード部２０４）と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信手段（例えば、図１６のステップＳ３３の処理を実行する図７の出力部２１０）と、
前記第１の送信手段による送信に対して、前記認定装置から送信されてきた第２の鍵の署名（例えば、端末SAM公開鍵の署名）を受信する第１の受信手段（例えば、図１６のステップＳ３４の処理を実行する図７の入力部２０１）と、
前記第１の受信手段により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶する第１の記憶手段（例えば、図１６のステップＳ３５の処理を実行する図５の記憶部７８）と、
前記第２の鍵、前記第１の記憶手段に記憶された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信手段（例えば、図１７のステップＳ９２の処理を実行する図７の出力部２１０）と
を備え、
前記認定装置は、
前記端末装置の前記第１の送信手段により送信されてきた、前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを受信する第２の受信手段（例えば、図１６のステップＳ５１の処理を実行する図１０の入力部３５１）と、
前記第２の受信手段により受信された、エンコードされた前記端末識別子および前記第２の鍵をデコードするデコード手段（例えば、図１６のステップＳ５２の処理を実行する図１０のデコード部３５３）と、
前記デコード手段によりデコードされて得られた前記端末識別子と、前記第２の受信手段により受信された前記端末識別子とが一致するか否かを確認する確認手段（例えば、図１６のステップＳ５３の処理を実行する図１０の主制御部３５２）と、
デコードされた前記端末識別子と、受信された前記端末識別子とが一致すると前記確認手段により確認された場合、前記認定装置が有する第３の鍵（例えば、認定機関秘密鍵）を用いて前記第２の鍵の署名を生成する第１の署名手段（例えば、図１６のステップＳ５５の処理を実行する図１０の署名処理部３５４）と、
前記第１の署名手段により生成された前記第２の鍵の署名を、前記端末装置に送信する第３の送信手段（例えば、図１６のステップＳ５６の処理を実行する図１０の出力部３５５）と
を備え、
前記サーバは、
前記端末装置の前記第２の送信手段により送信されてきた前記第２の鍵、前記第２の鍵の署名、および前記端末識別子を受信する第３の受信手段（例えば、図１７のステップＳ７１の処理を実行する図１３の入力部４５１）と、
前記第３の受信手段により受信された前記第２の鍵の署名、および認定装置が有する前記第３の鍵に対応する第４の鍵（例えば、認定機関公開鍵）を用いて、前記第２の鍵が正当であるかを検証する第１の検証手段（例えば、図１７のステップＳ７２の処理を実行する図１３の検証処理部４５５）と、
前記第１の検証手段により前記第２の鍵が正当であることが検証された場合、前記端末識別子と前記第２の鍵を記憶する第２の記憶手段（例えば、図１７のステップＳ７４の処理を実行する図１２の記憶部３７８）と
を備えることを特徴とする。
【００２６】
請求項２に記載の情報処理システムの前記端末装置は、
前記サーバに所定の情報を要求する場合、前記第１の鍵を用いて、前記情報を識別する識別情報（例えば、スクリプトＩＤ）の署名（例えば、スクリプトＩＤの署名）を生成する第２の署名手段（例えば、図１９のステップＳ１７２の処理を実行する図７の署名処理部２０５）と、
前記第２の署名手段により生成された前記識別情報の署名、前記識別情報、および前記端末識別子を、前記サーバに送信する第４の送信手段（例えば、図１９のステップＳ１７３の処理を実行する図７の出力部２１０）と、
前記第４の送信手段による送信に対して前記サーバから送信されてきた前記情報（例えば、スクリプト）を受信する第４の受信手段（例えば、図２０のステップＳ１７４の処理を実行する図７の入力部２０１）と
をさらに備えるとともに、
前記サーバは、
前記端末装置の前記第４の送信手段により送信されてきた、前記識別情報の署名、前記識別情報、および前記端末識別子を受信する第５の受信手段（例えば、図１９のステップＳ１５１の処理を実行する図１３の入力部４５１）と、
前記第５の受信手段により受信された前記識別情報の署名と、前記第５の受信手段により受信された前記端末識別子に対応する、前記第２の記憶手段に記憶された前記第２の鍵とを用いて、前記識別情報が正当であるかを検証する第２の検証手段（例えば、図１９のステップＳ１５３の処理を実行する図１３の検証処理部４５５）と、
前記第２の検証手段により前記識別情報が正当であることが検証された場合、前記識別情報に対する前記情報（例えば、スクリプトＩＤに対するスクリプト）を前記端末装置に送信する第５の送信手段（例えば、図１９のステップＳ１５８の処理を実行する図１３の出力部４５９）と
をさらに備えることを特徴とする。
【００２７】
請求項３に記載の情報処理システムの前記情報は、前記ＩＣカードに関するスクリプトまたは鍵（例えば、図３のＩＣカード５１との間で利用される共通鍵）である
ことを特徴とする。
【００２８】
請求項４に記載の情報処理システムの前記エンコード手段は、前記端末装置に固有の端末識別子および前記第２の鍵を、前記認定装置が有する前記３の鍵に対応する第４の鍵を用いてエンコードし（例えば、図１６のステップＳ３２）、
前記デコード手段は、エンコードされた前記端末装置に固有の端末識別子および前記第２の鍵を、前記第３の鍵を用いてデコードする（例えば、図１６のステップＳ５２）
ことを特徴とする。
【００２９】
請求項５に記載の情報処理方法は、ＩＣカードに関する情報を管理する端末装置（例えば、図１の端末SAMクライアント１１−１）、前記端末装置に情報を提供するサーバ（例えば、図１のサーバ１４−１）、および前記端末装置を証明する認定装置（例えば、図１の認定機関１３）からなる情報処理システム（例えば、図１の情報処理システム）の情報処理方法であって、
前記端末装置は、
前記端末装置に固有の端末識別子（例えば、端末SAM識別子）と、前記端末装置が有する第１の鍵（例えば、端末SAM秘密鍵）に対応する第２の鍵（例えば、端末SAM公開鍵）とをエンコードし（例えば、図１６のステップＳ３２）、
エンコードされていない前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信し（例えば、図１６のステップＳ３３）、
前記認定装置は、
前記端末装置から送信されてきた、前記端末識別子と、エンコードされた前記端末識別子および前記第２の鍵とを受信し（例えば、図１６のステップＳ５１）、
受信された、エンコードされた前記端末識別子および前記第２の鍵をデコードし（例えば、図１６のステップＳ５２）、
デコードされて得られた前記端末識別子と、受信された前記端末識別子とが一致するか否かを確認し（例えば、図１６のステップＳ５３）、
デコードされた前記端末識別子と、受信された前記端末識別子とが一致すると確認された場合、前記認定装置が有する第３の鍵（例えば、認定機関秘密鍵）を用いて前記第２の鍵の署名を生成し（例えば、図１６のステップＳ５５）、
生成された前記第２の鍵の署名を、前記端末装置に送信し（例えば、図１６のステップＳ５６の処理を実行する図１０の出力部３５５）、
前記端末装置は、
前記認定装置から送信されてきた前記第２の鍵の署名（例えば、端末SAM公開鍵の署名）を受信し（例えば、図１６のステップＳ３４）、
受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御し（例えば、図１６のステップＳ３５）、
前記第２の鍵、記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信し（例えば、図１７のステップＳ９２）、
前記サーバは、
前記端末装置から送信されてきた前記第２の鍵、前記第２の鍵の署名、および前記端末識別子を受信し（例えば、図１７のステップＳ７１）、
受信された前記第２の鍵の署名、および前記認定装置が有する前記第３の鍵に対応する第４の鍵（例えば、認定機関公開鍵）を用いて、前記第２の鍵が正当であるかを検証し（例えば、図１７のステップＳ７２）、
検証により前記第２の鍵が正当であることが検証された場合、前記端末識別子と前記第２の鍵の記憶を制御する（例えば、図１７のステップＳ７４）
ことを特徴とする。
【００３０】
請求項６に記載の情報処理装置は、ＩＣカードに関する情報を提供するサーバおよび認定装置と情報を授受する情報処理装置（例えば、図１の端末SAMクライアント１１−１）であって、
前記端末装置に固有の端末識別子（例えば、端末SAM識別子）と、前記端末装置が有する第１の鍵（例えば、端末SAM秘密鍵）に対応する第２の鍵（例えば、端末SAM公開鍵）とをエンコードするエンコード手段（例えば、図１６のステップＳ３２の処理を実行する図７のエンコード部２０４）と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信手段（例えば、図１６のステップＳ３３の処理を実行する図７の出力部２１０）と、
前記第１の送信手段による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名（例えば、端末SAM公開鍵の署名）を受信する第１の受信手段（例えば、図１６のステップＳ３４の処理を実行する図７の入力部２０１）と、
前記第１の受信手段により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶する記憶手段（例えば、図１６のステップＳ３５の処理を実行する図５の記憶部７８）と、
前記第２の鍵、前記記憶手段に記憶された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信手段（例えば、図１７のステップＳ９２の処理を実行する図７の出力部２１０）と
を備えることを特徴とする。
【００３１】
請求項７に記載の情報処理装置は、
前記サーバに所定の情報を要求する場合、前記第１の鍵を用いて、前記情報を識別する識別情報（例えば、スクリプトＩＤ）の署名（例えば、スクリプトＩＤの署名）を生成する署名手段（例えば、図１９のステップＳ１７２の処理を実行する図７の署名処理部２０５）と、
前記署名手段により生成された前記識別情報の署名、前記識別情報、および前記端末識別子を、前記サーバに送信する第３の送信手段（例えば、図１９のステップＳ１７３の処理を実行する図７の出力部２１０）と、
前記第３の送信手段による送信に対して前記サーバから送信されてきた前記情報（例えば、スクリプト）を受信する第２の受信手段（例えば、図２０のステップＳ１７４の処理を実行する図７の入力部２０１）と
をさらに備えることを特徴とする。
【００３２】
請求項８に記載の情報処理装置の前記情報は、前記ＩＣカードに関するスクリプトまたは鍵（例えば、図３のＩＣカード５１との間で利用される共通鍵）である
ことを特徴とする。
【００３３】
請求項９に記載の情報処理装置の前記エンコード手段は、前記認定装置が有する前記第３の鍵に対応する前記第４の鍵を用いて、前記端末装置に固有の端末識別子および前記第２の鍵をエンコードする（例えば、図１６のステップＳ３２）
ことを特徴とする。
【００３４】
請求項１０に記載の情報処理方法は、ＩＣカードに関する情報を提供するサーバおよび認定装置と情報を授受する情報処理装置（例えば、図１の端末SAMクライアント１１−１）の情報処理方法であって、
前記端末装置に固有の端末識別子（例えば、端末SAM識別子）と、前記端末装置が有する第１の鍵（例えば、端末SAM秘密鍵）に対応する第２の鍵（例えば、端末SAM公開鍵）とをエンコードするエンコードステップ（例えば、図１６のステップＳ３２）と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信ステップ（例えば、図１６のステップＳ３３）と、
前記第１の送信ステップの処理による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名（例えば、端末SAM公開鍵の署名）を受信する受信ステップ（例えば、図１６のステップＳ３４）と、
前記受信ステップの処理により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御する記憶制御ステップ（例えば、図１６のステップＳ３５）と、
前記第２の鍵、前記記憶制御ステップの処理により記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信ステップ（例えば、図１７のステップＳ９２）と
を含むことを特徴とする。
【００３５】
請求項１１に記載のプログラムは、ＩＣカードに関する情報を処理するプログラムであって、
前記端末装置に固有の端末識別子（例えば、端末SAM識別子）と、前記端末装置が有する第１の鍵（例えば、端末SAM秘密鍵）に対応する第２の鍵（例えば、端末SAM公開鍵）とをエンコードするエンコードステップ（例えば、図１６のステップＳ３２）と、
エンコードされていない前記端末識別子と、前記エンコード手段によりエンコードされた前記端末識別子および前記第２の鍵とを、前記認定装置に送信する第１の送信ステップ（例えば、図１６のステップＳ３３）と、
前記第１の送信ステップの処理による送信に対して、前記認定装置から送信されてきた、前記認定装置が有する第３の鍵を用いて生成された署名である第２の鍵の署名（例えば、端末SAM公開鍵の署名）を受信する受信ステップ（例えば、図１６のステップＳ３４）と、
前記受信ステップの処理により受信された前記第２の鍵の署名を、前記端末識別子とともに記憶するよう制御する記憶制御ステップ（例えば、図１６のステップＳ３５）と、
前記第２の鍵、前記記憶制御ステップの処理により記憶が制御された前記第２の鍵の署名、および前記端末識別子を前記サーバに送信する第２の送信ステップ（例えば、図１７のステップＳ９２）と
を含む処理をコンピュータに実行させることを特徴とする。
【００３６】
以下、図を参照して、本発明の実施の形態について説明する。
【００３７】
図１は、本発明を適用した情報処理システムの全体の構成例を示す図である。
【００３８】
端末SAM(Secure Application Module)クライアント（端末装置）１１−１乃至１１−３は、それぞれネットワーク１２に接続されている。また、ネットワーク１２には、認定機関（認定局とも称する）１３、並びにサーバ（サーバ装置）１４−１乃至１４−３が接続されている。
【００３９】
サーバ１４−１はサービス提供者Ａが運営しており、サーバ１４−２はサービス提供者Ｂが運営しており、サーバ１４−３はサービス提供者Ｃが運営している。すなわち、サーバ１４−１乃至１４−３は、それぞれ異なるサービス提供者により運営されている。ネットワーク１２は、例えば、LAN（Local Area Network）である。認定装置は、認定機関（認定局）１３により司られる装置であり、実際には、認定装置により各種の処理が実行されるが、本実施の形態においては、認定機関１３が実行する処理として称する。
【００４０】
なお、以下において、端末SAMクライアント１１−１乃至１１−３を個々に区別する必要がない場合、端末SAMクライアント１１と称し、サーバ１４−１乃至１４−３を個々に区別する必要がない場合、サーバ１４と称する。また、サービス提供者Ａ、Ｂ、およびＣを個々に区別する必要がない場合、サービス提供者と称する。
【００４１】
認定機関１３は、端末SAMクライアント１１を、サービス提供者に対して認定する機関（局）である。例えば、認定機関１３は、端末SAMクライアント１１からの要求に対して、端末SAMクライアント１１に、端末SAMクライアント１１の公開鍵の署名（認定機関１３による、端末SAMクライアント１１の公開鍵に対する署名）を発行する。端末SAMクライアント１１は、この端末SAMクライアント１１の公開鍵の署名を、サーバ１４に送信し、サーバ１４は、端末SAMクライアント１１の公開鍵の署名を検証することで（すなわち、端末SAMクライアント１１の公開鍵が正当であることを検証することで）、端末SAMクライアント１１が認定された端末（正当）であることを確認する。サービス提供者（サーバ１４）は、端末SAMクライアント１１が認定機関１３により認定されている場合に、端末SAMクライアント１１に対して鍵やスクリプトを送信する。
【００４２】
端末SAMクライアント１１は、複数のスクリプトを記憶することができ、スクリプトを実行して図示せぬＩＣカードにアクセスする。例えば、端末SAMクライアント１１は、スクリプトを実行し、ＩＣカード内のデータを更新する。そして、端末SAMクライアント１１は、スクリプトの実行結果などを、ネットワーク１２を介して、対応するサービスを提供しているサーバ１４に送信する。なお、ネットワーク１２がオフラインである場合、端末SAMクライアント１１は、スクリプトの実行結果を保持しておき、オンラインになったとき、その実行結果を、ネットワーク１２を介してサーバ１４に送信する。
【００４３】
サーバ１４はまた、図２に示されるようにSAM２１と内部のネットワーク２２を介して接続されている。SAM２１は、サーバ１４からの要求に応じて、端末SAMクライアント１１に送信するためのデータ（スクリプトや鍵）を生成し、生成したデータを適宜、管理している鍵情報に基づいて暗号化し、サーバ１４等を介して、端末SAMクライアント１１に供給する。このようにサーバ１４は、SAM２１と接続されてデータの授受を行い、ネットワーク１２（図１）を介して端末SAMクライアント１１にデータを送信しているが、この部分については本発明と直接関係はないため、以下においては、全てサーバ１４における処理として説明する。すなわち、サーバ１４がデータを送信する場合には、実際にはSAM２１との間においてデータの授受も行われているが、本実施の形態においては、SAM２１における処理もサーバ１４が実行する処理として説明する。なお、図２のネットワーク２２は、ネットワーク１２と同じネットワークでもよい。
【００４４】
次に、端末SAMクライアント１１の機能的構成例を説明する。図３は、図１の端末SAMクライアント１１の機能的構成例を示すブロック図である。
【００４５】
端末SAMクライアント１１は、制御端末４１、端末SAM４２、およびＩＣカードリーダライタアンテナ４３の機能的構成を有する。
【００４６】
制御端末４１は、例えばPOS(Point Of Sales)端末である。制御端末４１は、ＩＣカード５１に対してデータを更新する指令を出したり、ＩＣカード５１から読み出されたデータを、ネットワーク１２（図１）を介してサーバ１４に送信する。
【００４７】
ＩＣカードリーダライタアンテナ４３は、外部のＩＣカード５１と非接触により通信を行い、ＩＣカードに記憶されている各種のデータの読み出しや、データの書き込みを行なう。例えば、ＩＣカードリーダライタアンテナ４３は、ＩＣカード５１に記憶されているＩＣカード５１に固有の識別番号やＩＣカード５１に蓄積されている金額などのデータを読み出す。またＩＣカードリーダライタアンテナ４３は、ＩＣカード５１と非接触により通信を行い、ＩＣカード５１に蓄積されている金額などのデータを書き換える（更新する）。なお、本実施の形態では、ＩＣカード５１とＩＣカードリーダライタアンテナ４３とが非接触式であるとして説明したが、ＩＣカードとＩＣカードリーダライタアンテナとが接触式であってもよい。
【００４８】
端末SAM４２は、ＩＣカードリーダライタアンテナ４３から供給されたデータを暗号化したり、サーバ１４の認定を得るために、認定機関１３に対して、端末SAM４２の公開鍵の署名を要求するよう制御するとともに、サーバ１４に端末SAM公開鍵の署名を送信するよう制御する。また、端末SAM４２は、スクリプトを実行したり、各種の暗号鍵を生成したり、スクリプトの実行結果をログとして保存する。すなわち端末SAM４２は、端末SAMクライアント１１内のデータをセキュアに管理する。
【００４９】
図４は、図３の端末SAM４２のハードウエアの構成例を示すブロック図である。
【００５０】
CPU（Central Processing Unit）７１、ROM（Read Only Memory）７２、およびRAM(Random Access Memory)７３は、内部バス７４を介して相互に接続されている。この内部バス７４にはまた、入出力インターフェース７５も接続されている。
【００５１】
CPU７１は、ROM７２に記憶されているプログラム、または、記憶部７８からRAM７３にロードされたプログラムに従って各種の処理を実行する。RAM７３にはまた、CPU７１が各種の処理を実行する上で必要なデータなどが適宜記憶される。
【００５２】
入出力インターフェース７５には、電子錠、DIP（Dual Inline Package）スイッチ、キーボード、マウスなどよりなる入力部７６、状態を表示するランプ、７セグLED（Light Emitting Diode）、CRT，LCD（Liquid Crystal Display）、スピーカなどよりなる出力部７７、ハードディスクなどより構成される記憶部７８、モデム、ターミナルアダプタなどより構成される通信部７９、ＩＣカードリーダライタ８０が接続されている。通信部７９は、RS２３２Cのシリアル通信やLAN、を含む各種のネットワークを介しての通信処理を行なう。制御端末４１との間のデータの授受は、通信部７９を介して行われる。端末SAM４２に対する指令は、通信部７９を介して行なわれるようにしてもよい。ＩＣカードリーダライタ８０には、メモリ（図示せず）が内蔵されており、カードのデータはメモリに保存され、ＩＣカード５１との間の近距離間の通信は、ＩＣカードリーダライタアンテナ４３を介して行われる。
【００５３】
入出力インターフェース７５にはまた、必要に応じてドライブ８１が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア９１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部７８にインストールされる。
【００５４】
上述した図３の機能的構成例と対応付けると、図４のCPU７１が後述する所定の処理を実行することで端末SAMの機能を有する。
【００５５】
図５は、記憶部７８に記憶される、端末SAM４２（図４）に関する情報の例を説明する図である。すなわち、図５は、端末SAM４２が処理を実行するために用いられる情報（データ）の例を示している。
【００５６】
記憶部７８には、端末SAM４２に関する情報として、外部入出力ロジック１２１、公開秘密鍵ロジック１２２、サーバ証明書フォルダ１２３、端末SAM固有情報１２４、スクリプト実行情報１２５、スクリプトフォルダ１２６、端末SAM共通情報１２７、およびログフォルダ１２８が記憶されている。
【００５７】
外部入出力ロジック１２１は、外部入出力に関するインターフェース処理を実行するためのロジックである。
【００５８】
公開秘密鍵ロジック１２２は、暗号化、復号、署名、検証、および鍵ペア生成などの処理を実行するためのロジックである。具体的には、公開秘密鍵ロジック１２２は、図６に示されるような情報で構成されている。
【００５９】
図６において、公開秘密鍵ロジック１２２には、暗号化手順１９１、復号手順１９２、鍵ペア生成手順１９３、署名手順１９４、および検証手順１９５が含まれている。暗号化手順１９１には、データを暗号化するための手順が記述されており、復号手順１９２には、暗号化されているデータを復号するための手順（暗号化手順１９１に対応する手順）が記述されている。鍵ペア生成手順１９３には、端末SAM４２の公開鍵と秘密鍵を生成するための手順が記述されている。署名手順１９４には、所定のデータに署名を付すための手順が記述されており、検証手順１９５には、署名が付されたデータを検証するための手順が記述されている。このように公開秘密鍵ロジック１２２には、公開鍵と秘密鍵に関するロジックが含まれている。図６の例の場合、端末SAM４２に関する公開秘密鍵ロジック１２２であるので、ここでいう公開鍵は端末SAM４２の公開鍵であり、秘密鍵は端末SAM４２の秘密鍵である。
【００６０】
図５に戻って、サーバ証明書フォルダ１２３には、サーバＩＤ１３１、サーバ公開鍵１３２、およびURL（Uniform Resource Locator）１３３が含まれている。サーバＩＤ１３１は、サーバ１４に固有のＩＤ（識別する識別情報）であり、このサーバＩＤによりサーバ１４（サービス提供者）を特定することができる。すなわち、端末SAM４２が図１のサーバ１４−１乃至１４−３のサーバからサービスの提供を受ける状態では、サーバ証明書フォルダ１２３に、サーバＩＤ１３１、サーバ公開鍵１３２、およびURL１３３の組み合わせが３つ登録されていることになる。このサーバＩＤは、端末SAM４２が付すサーバに固有のＩＤである。サーバ公開鍵１３２は、サーバＩＤ１３１により特定されるサーバ１４の公開鍵であり、サーバ１３１に対応付けられている。URL１３３は、サーバＩＤ１３１により特定されるサーバ１４にアクセスするためのURLであり、サーバＩＤ１３１に対応付けられている。サーバ証明書フォルダ１２３の情報は、後述する処理で取得される。
【００６１】
端末SAM固有情報１２４には、端末SAM識別子１４１、端末SAM公開鍵の署名１４２、端末SAM公開鍵１４３、および端末SAM秘密鍵１４４が含まれている。端末SAM識別子１４１は、端末SAM４２を識別する（すなわち、端末SAMクライアント１１を識別する）識別子であり、端末SAM４２のそれぞれに固有である。すなわち、端末SAM識別子１４１によれば、端末SAMクライアント１１−１乃至端末SAMクライアント１１−３を識別することができる。端末SAM公開鍵の署名１４２は、サーバ１４が、端末SAM４２が認定機関に設定されていることを検証するための署名である。端末SAM公開鍵１４３と端末SAM秘密鍵１４４は、公開秘密鍵ロジック１２２を用いて実行される処理（後述する処理）で生成される、端末SAM４２の公開鍵と秘密鍵である。端末SAM公開鍵１４３と端末SAM秘密鍵１４４は鍵ペアであり、端末SAM秘密鍵１４４で署名したデータは、端末SAM公開鍵１４３によってのみ、そのデータが正当であるかを検証することができる。端末SAM公開鍵１４３で暗号化したデータは、端末SAM秘密鍵１４４によってのみ復号することができ、逆に、端末SAM秘密鍵１４４で暗号化したデータは、端末SAM公開鍵１４３によってのみ復号することができる。また、端末SAM秘密鍵１４４を保持する端末SAM４２は、その秘密鍵を他へ漏らさない機能を有する。
【００６２】
スクリプト実行情報１２５は、スクリプトを実行するための情報である。例えば、スクリプトフォルダ１２６に格納されているスクリプト１５３を実行するための情報である。
【００６３】
スクリプトフォルダ１２６には、サーバＩＤ１５１、スクリプトＩＤ１５２が含まれ、さらにサーバＩＤ１５１、スクリプトＩＤ１５２に関連付けられてスクリプト１５３が含まれている。サーバＩＤ１５１は、サーバ証明書フォルダ１２３に含まれるサーバＩＤと基本的に同様である。すなわち、サーバ１４−１に付されたサーバＩＤであれば、サーバＩＤ１３１とサーバＩＤ１５１は同じとなる。スクリプトＩＤ１５２は、スクリプト１５３を識別するための、同じサーバＩＤのスクリプトにおいて一意のＩＤである。これらのスクリプトフォルダ１２６に記憶される情報は、後述する処理でサーバ１４から取得される情報である。スクリプトフォルダ１２６には、サーバＩＤ１５１、スクリプトＩＤ１５２、およびスクリプト１５３の組み合わせが複数（スクリプトの個数分）登録される。
【００６４】
端末SAM共通情報１２７には、認定機関公開鍵１６１とエンコード手順１６２が含まれている。認定機関公開鍵１６１は、認定機関１３が配布する認定機関１３の公開鍵である。エンコード手順１６２は、認定機関１３と端末SAM４２との間であらかじめ定められた（例えば、製造メーカによって定められた）エンコード手順であり、端末SAM４２の製造時に格納される情報である。すなわち、端末SAM共通情報１２７は、あらかじめ端末SAM４２に設定されている情報である。
【００６５】
ログフォルダ１２８には、ログ１７１が含まれている。このログ１７１は、スクリプトの実行結果である。より具体的には、ログ１７１としては、スクリプトの実行結果に時刻情報と署名が付加された、スクリプト実行結果付加情報が記憶される。
【００６６】
すなわち、図５において、外部入出力ロジック１２１、公開秘密鍵ロジック１２２、端末SAM固有情報１２４の端末SAM識別子１４１、スクリプト実行情報１２５、端末SAM共通情報１２７の認定機関公開鍵１６１、および端末SAM共通情報１２７のエンコード手順１６２が、あらかじめ記憶部７８に記憶されており、その他のサーバ証明書フォルダ１２３（サーバＩＤ１３１、サーバ公開鍵１３２、およびURL１３３）、端末SAM固有情報１２４の端末SAM公開鍵の署名１４２、端末SAM公開鍵１４３、および端末SAM秘密鍵１４４、スクリプトフォルダ１２６（サーバＩＤ１５１、スクリプトＩＤ１５２、およびスクリプト１５３）、並びにログフォルダ１２８（ログ１７１）は、適宜以下の処理において記憶部７８に記憶される。
【００６７】
次に、図３の端末SAM４２の機能的構成例を説明する。図７は、図３の端末SAM４２の機能的構成例を示すブロック図である。なお、図７の機能的構成は、図４の端末SAMクライアント１１のCPU７１が、記憶部７８に記憶された図５の情報を用いて各種の処理を実行することで実現される。
【００６８】
図７において、端末SAM４２には、入力部２０１、主制御部２０２、鍵ペア生成部２０３、エンコード部２０４、署名処理部２０５、検証処理部２０６、暗号化部２０７、復号部２０８、スクリプト実行部２０９、および出力部２１０が設けられている。
【００６９】
入力部２０１は、データの入力を受け付け、受け付けたデータを主制御部２０２に供給する。例えば、入力部２０１は、ＩＣカードリーダライタアンテナ４３から供給されたデータや、制御端末４１から供給されたデータを受け付け、これを主制御部２０２に供給する。入力部２０１は、図５を用いて説明した外部入出力ロジック１２１に対応している。より具体的には、入力部２０１は、図５の外部入出力ロジック１２１をCPU７１（図４）が実行することで実現される。
【００７０】
主制御部２０２は、各部を制御する。鍵ペア生成部２０３は、主制御部２０２からの制御に基づいて、端末SAM公開鍵１４３と端末SAM秘密鍵１４４（図５）のペアを生成する。鍵ペア生成部２０３は、公開秘密鍵ロジック１２２の鍵ペア生成手順１９３（図６）をCPU７１（図４）が実行することで実現される。エンコード部２０４は、主制御部２０２からの制御に基づいて、データを所定の方式でエンコードする。エンコード部２０４は、あらかじめ製造メーカによって設定された方式でデータをエンコードするものであり、図５を用いて説明したエンコード手順１６２に沿った処理をCPU７１（図４）が実行することで実現される。
【００７１】
署名処理部２０５は、主制御部２０２からの制御に基づいて、所定のデータに対する署名を生成する。例えば、端末SAM秘密鍵１４４を用いて、所定のデータの署名を生成する。署名処理部２０５は、公開秘密鍵ロジック１２２の署名手順１９４（図６）に沿った処理をCPU７１（図４）が実行することで実現される。検証処理部２０６は、主制御部２０２からの制御に基づいて、署名を検証する処理を実行する。検証処理部２０６は、公開秘密鍵ロジック１２２の検証手順１９５（図６）に沿った処理をCPU７１（図４）が実行することで実現される。
【００７２】
暗号化部２０７は、主制御部２０２からの制御に基づいて、データを暗号化する。暗号化部２０７は、公開秘密鍵ロジック１２２の暗号化手順１９１（図６）に沿った処理をCPU７１（図４）が実行することで実現される。復号部２０８は、主制御部２０２からの制御に基づいて、暗号化されたデータを復号する。復号部２０８は、公開秘密鍵ロジック１２２の復号手順１９２（図６）に沿った処理をCPU７１（図４）が実行することで実現される。
【００７３】
スクリプト実行部２０９は、主制御部２０２からの制御に基づいて、スクリプトを実行する。例えば、スクリプト実行部２０９は、主制御部２０２からの制御に基づいて、記憶部７８（図５）に記憶されたスクリプト１５３（図５）を実行する。スクリプト実行部２０９は、スクリプト実行情報１２５（図５）に基づく処理をCPU７１（図４）が実行することで実現される。
【００７４】
出力部２１０は、主制御部２０２からの制御に基づいて、データを出力する。例えば、出力部２１０は、制御端末４１にデータを出力したり、ＩＣカードリーダライタアンテナ４３にデータを出力する。出力部２１０は、図５を用いて説明した外部入出力ロジック１２１に基づく処理をCPU７１（図４）が実行することで実現される。
【００７５】
図８は、図１の認定機関１３のハードウエアの構成例を示すブロック図である。
【００７６】
CPU２５１、ROM２５２、およびRAM２５３は、内部バス２５４を介して相互に接続されている。この内部バス２５４にはまた、入出力インターフェース２５５も接続されている。
【００７７】
CPU２５１は、ROM２５２に記憶されているプログラム、または、記憶部２５８からRAM２５３にロードされたプログラムに従って各種の処理を実行する。RAM２５３にはまた、CPU２５１が各種の処理を実行する上で必要なデータなどが適宜記憶される。
【００７８】
入出力インターフェース２５５には、キーボード、マウスなどよりなる入力部２５６、CRT，LCD、スピーカなどよりなる出力部２５７、ハードディスクなどより構成される記憶部２５８、モデム、ターミナルアダプタなどより構成される通信部２５９が接続されている。通信部２５９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【００７９】
入出力インターフェース２５５にはまた、必要に応じてドライブ２６１が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア２７１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部２５８にインストールされる。
【００８０】
図９は、図８の記憶部２５８に記憶される情報の例を説明する図である。
【００８１】
記憶部２５８には、認定機関１３が本実施の形態に記載された処理を実行するために利用される情報として、外部入出力ロジック３０１、公開秘密鍵ロジック３０２、認定機関情報３０３、端末SAM証明書フォルダ３０４、デコード手順３０５が記憶されている。
【００８２】
外部入出力ロジック３０１は、外部入出力に関するインターフェース処理を実行するためのロジックである。
【００８３】
公開秘密鍵ロジック３０２は、暗号化、復号、署名、検証、および鍵ペア生成などの処理を実行するためのロジックである。公開鍵ロジック３０２の詳細な構成は、上述した図６と同様であるのでその説明を省略するが、以下においては、図６を、公開秘密鍵ロジック３０２としても引用する。認定機関１３により扱われる公開鍵は、認定機関１３の公開鍵であり、秘密鍵は認定機関１３の秘密鍵である。
【００８４】
認定機関情報３０３には、認定機関公開鍵３１１、認定機関秘密鍵３１２が含まれている。認定機関公開鍵３１１は、図５の認定機関公開鍵１６１と同じである。より具体的には、認定機関１３で生成された認定機関公開鍵３１１が、端末SAM４２に送信され、記憶されたものが、図５の認定機関公開鍵１６１である。認定機関公開鍵３１１と認定機関秘密鍵３１２は鍵ペアであり、認定機関秘密鍵３１２で署名したデータは、認定機関公開鍵３１１によってのみ、そのデータが正当であるかを検証することができる。認定機関公開鍵３１１で暗号化したデータは、認定機関秘密鍵３１２によってのみ復号することができ、逆に、認定機関秘密鍵３１２で暗号化したデータは、認定機関公開鍵３１１によってのみ復号することができる。また、認定機関秘密鍵３１２を保持する認定機関１３は、その秘密鍵を他へ漏らさない機能を有する。
【００８５】
端末SAM証明書フォルダ３０４には、端末SAM識別子３２１と端末SAM公開鍵３２２が含まれる。この端末SAM識別子３２１によれば、端末SAMクライアント１１を特定することができる。すなわち、端末SAM識別子３２１によれば、同じ端末SAM識別子１４１（図５）を有する端末SAM４２を特定することができる。端末SAM公開鍵３２２は、端末SAM識別子３２１に対応して記憶される、端末SAM識別子３２１により特定される端末SAM４２の公開鍵である。すなわち、図９の端末SAM識別子３２１が図５の端末SAM識別子１４１と同じである場合、図９の端末SAM公開鍵３２２と図５の端末SAM公開鍵１４３は同じとなる。なお、これらの端末SAM識別子３２１と端末SAM公開鍵３２２は、後述する処理で取得される。認定機関１３が複数の端末SAM４２に対して署名を発行した場合には、その発行した数だけ、端末SAM識別子３２１と端末SAM公開鍵３２２が登録される。
【００８６】
デコード手順３０５は、認定機関１３と端末SAM４２との間であらかじめ定められた（例えば、製造メーカによって定められた）デコード手順であり、認定機関１３の製造時に格納される情報である。このデコード手順３０５は、図５の端末SAM共通情報１２７のエンコード手順１６２に対応している。すなわち、エンコード手順１６２を用いてエンコードされたデータは、デコード手順３０５によりデコードすることができる。このエンコード、デコードの方法は、認定機関１３と端末SAM４２の間で規定された独自の手順であるので、この方法でエンコードされたデータを、外部の機器が入手したとしても、容易にエンコードすることはできない。これにより、認定機関１３と端末SAM４２の間の秘匿性を高めることができる。
【００８７】
すなわち、図９において、外部入出力ロジック３０１、公開秘密鍵ロジック３０２、認定機関情報３０３、およびデコード手順３０５が、あらかじめ記憶部２５８に記憶されており、端末SAM証明書フォルダ３０４（端末SAM識別子３２１と端末SAM公開鍵３２２）は、適宜以下の処理において記憶部２５８に記憶される。
【００８８】
次に、図８の認定機関１３の機能的構成例を説明する。図１０は、図８の認定機関１３の機能的構成例を示すブロック図である。なお、図１０の機能的構成は、図８の認定機関１３のCPU２５１が、記憶部２５８に記憶された図９の情報を用いて各種の処理を実行することで実現される。
【００８９】
図１０において、認定機関１３には、入力部３５１、主制御部３５２、デコード手順３５３、署名処理部３５４、および出力部３５５が設けられている。
【００９０】
入力部３５１は、データの入力を受け付け、受け付けたデータを主制御部３５２に供給する。例えば、入力部３５１は、ネットワーク１２を介して端末SAMクライアント１１から供給されたデータや、サーバ１４から供給されたデータを受け付け、これを主制御部３５２に供給する。入力部３５１は、図９を用いて説明した外部入出力ロジック３０１に対応している。より具体的には、入力部３５１は、図９の外部入出力ロジック３０１をCPU２５１（図８）が実行することで実現される。
【００９１】
主制御部３５２は、各部を制御する。デコード部３５３は、主制御部３５２からの制御に基づいて、エンコードされているデータを所定の方式でデコードする。デコード部３５３は、あらかじめ製造メーカによって設定された方式でデータをデコードするものであり、図９を用いて説明したデコード手順３０５に沿った処理をCPU２５１（図８）が実行することで実現される。
【００９２】
署名処理部３５４は、主制御部３５２からの制御に基づいて、所定のデータの署名を生成する。例えば、署名処理部３５４は、認定機関秘密鍵３１２を用いて、所定のデータの署名を生成する。署名処理部３５４は、公開秘密鍵ロジック３０２の署名手順１９４（図６）に沿った処理をCPU２５１（図８）が実行することで実現される。
【００９３】
出力部３５５は、主制御部３５２からの制御に基づいて、データを出力する。例えば、出力部３５５は、ネットワーク１２を介して端末SAMクライアント１１やサーバ１４にデータを出力する。出力部３５５は、図９を用いて説明した外部入出力ロジック３０１に基づく処理をCPU２５（図８）が実行することで実現される。
【００９４】
図１１は、図１のサーバ１４のハードウエアの構成例を示すブロック図である。
【００９５】
CPU３７１、ROM３７２、およびRAM３７３は、内部バス３７４を介して相互に接続されている。この内部バス３７４にはまた、入出力インターフェース３７５も接続されている。
【００９６】
CPU３７１は、ROM３７２に記憶されているプログラム、または、記憶部３７８からRAM３７３にロードされたプログラムに従って各種の処理を実行する。RAM３７３にはまた、CPU３７１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００９７】
入出力インターフェース３７５には、キーボード、マウスなどよりなる入力部３７６、CRT，LCD、スピーカなどよりなる出力部３７７、ハードディスクなどより構成される記憶部３７８、モデム、ターミナルアダプタなどより構成される通信部３７９が接続されている。通信部３７９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【００９８】
入出力インターフェース３７５にはまた、必要に応じてドライブ３８１が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア３９１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部３７８にインストールされる。
【００９９】
図１２は、図１１の記憶部３７８に記憶される情報の例を説明する図である。
【０１００】
記憶部３７８には、サーバ１４が本実施の形態に記載された処理を実行するために利用される情報として、外部入出力ロジック４０１、公開秘密鍵ロジック４０２、プログラム実行情報４０３、サービス提供者固有情報４０４、スクリプトフォルダ４０５、端末SAM証明書フォルダ４０６、およびサービス提供者共通情報４０７が記憶されている。
【０１０１】
外部入出力ロジック４０１は、外部入出力に関するインターフェース処理を実行するためのロジックである。
【０１０２】
公開秘密鍵ロジック４０２は、暗号化、復号、署名、検証、および鍵ペア生成などの処理を実行するためのロジックである。公開鍵ロジック４０２の詳細な構成は、上述した図６と同様であるのでその説明を省略するが、以下においては、図６を、公開秘密鍵ロジック４０２としても引用する。サーバ１４（サービス提供者）により扱われる公開鍵は、サーバ１４の公開鍵であり、秘密鍵はサーバ１４の秘密鍵である。
【０１０３】
プログラム実行情報４０３は、プログラムを実行するための情報である。例えば、スクリプトフォルダ４０５に格納されているプログラム４２３を実行するための情報である。
【０１０４】
サービス提供者固有情報４０４には、URL４１１、サーバ公開鍵４１２、サーバ秘密鍵４１３が含まれている。このURL４１１は、サーバ１４（例えば、サーバ１４−１のサービス提供者Ａ）にアクセスするためのURLである。URL４１１が、図５のURL１３３と同じである場合、サーバ公開鍵４１２も、図５のサーバ公開鍵１３２と同じである。すなわち、URLとサーバ公開鍵は対応している。具体的には、図１のサーバ１４−１にアクセスするためのURLとサーバ公開鍵は対になっている。サーバ秘密鍵４１３は、サーバ１４の秘密鍵である。なお、サーバ秘密鍵４１３は、個々のサーバ（サービス提供者）によってそれぞれ異なる秘密鍵とされている。すなわち、図１のサーバ１４−１のサーバ秘密鍵、サーバ１４−２のサーバ秘密鍵、およびサーバ１４−３のサーバ秘密鍵は、それぞれ異なる秘密鍵とされる。これらのサービス提供者固有情報４０４は、あらかじめ記憶されている。サーバ公開鍵４１２とサーバ秘密鍵４１３は鍵ペアであり、サーバ秘密鍵４１３で署名したデータは、サーバ公開鍵４１２によってのみ、そのデータが正当であるかを検証することができる。サーバ公開鍵４１２で暗号化したデータは、サーバ秘密鍵４１３によってのみ復号することができ、逆に、サーバ秘密鍵４１３で暗号化したデータは、サーバ公開鍵４１２によってのみ復号することができる。また、サーバ秘密鍵４１３を保持するサーバ１４は、その秘密鍵を他へ漏らさない機能を有する。
【０１０５】
スクリプトフォルダ４０５には、スクリプトＩＤ４２１、スクリプト４２２、およびプログラム４２３が含まれている。スクリプトＩＤ４２１には、スクリプト４２２とプログラム４２３が対応付けられている。すなわち、スクリプトＩＤ４２１が特定された場合、そのスクリプトＩＤに対応するスクリプト４２２またはプログラム４２３に対して所定の処理が実行される。例えば、実行要求とともにスクリプトＩＤが送信されてきた場合、そのスクリプトＩＤに対応するプログラムがサーバ１４において実行される。これらのスクリプトフォルダ４０５の内容は、適宜、サービス提供者Ａによって追加、更新されるものであったり、あらかじめ記憶されているものである。すなわち、スクリプトＩＤ４２１、スクリプト４２２およびプログラム４２３の組み合わせは、複数登録されることがある。
【０１０６】
端末SAM証明書フォルダ４０６には、端末SAM識別子４３１と端末SAM公開鍵４３２が含まれている。この端末SAM証明書フォルダ４０６は、図９の端末SAM証明書フォルダ３０４に対応しており、同じ端末SAMクライアント１１の端末SAM証明書フォルダであれば、その内容は同一である。なお、これらの端末SAM識別子３２１と端末SAM公開鍵３２２は、後述する処理で取得される。また、情報の提供を行なう端末SAM４２の数の分だけ、端末SAM識別子３２１と端末SAM公開鍵３２２の組み合わせが登録される。
【０１０７】
サービス提供者共通情報４０７には、認定機関公開鍵４４１が含まれている。認定機関公開鍵４４１は、上述した図９の認定機関公開鍵３１１と同じものである。より具体的には、認定機関１３で生成された認定機関公開鍵３１１が、端末SAM４２に送信され、記憶された図５の認定機関公開鍵１６１と、サーバ１４に送信され、記憶された図１２の認定機関公開鍵４４１である。
【０１０８】
すなわち、図１２において、外部入出力ロジック４０１、公開秘密鍵ロジック４０２、プログラム実行情報４０３、サービス提供者固有情報４０４、スクリプトフォルダ４０５、およびサービス提供者共通情報４０７が、あらかじめ記憶部３７８に記憶されており、端末SAM証明書フォルダ４０６（端末SAM識別子４３１と端末SAM公開鍵４３２）は、適宜以下の処理において記憶部７８に記憶される。
【０１０９】
次に、図１１のサーバ１４の機能的構成例を説明する。図１３は、図１１のサーバ１４の機能的構成例を示すブロック図である。なお、図１３の機能的構成は、図１１のサーバ１４のCPU３７１が、記憶部３７８に記憶された図１２の情報を用いて各種の処理を実行することで実現される。
【０１１０】
図１３において、サーバ１４には、入力部４５１、主制御部４５２、鍵ペア生成部４５３、署名処理部４５４、検証処理部４５５、暗号化部４５６、復号部４５７、プログラム実行部４５８、および出力部４５９が設けられている。
【０１１１】
入力部４５１は、データの入力を受け付け、受け付けたデータを主制御部４５２に供給する。例えば、入力部４５１は、ネットワーク１２を介して端末SAMクライアント１１から供給されたデータや、認定機関１３から供給されたデータを受け付け、これを主制御部４５２に供給する。入力部４５１は、図１２を用いて説明した外部入出力ロジック４０１に対応している。より具体的には、入力部４５１は、図１２の外部入出力ロジック４０１をCPU３７１（図１１）が実行することで実現される。
【０１１２】
主制御部４５２は、各部を制御する。鍵ペア生成部４５３は、主制御部４５２からの制御に基づいて、サーバの公開鍵（サーバ公開鍵４１２）とサーバの秘密鍵（サーバ秘密鍵４１３）のペアを生成する。鍵ペア生成部４５３は、公開秘密鍵ロジック４０２の鍵ペア生成手順１９３（図６）をCPU３７１（図１１）が実行することで実現される。
【０１１３】
署名処理部４５４は、主制御部４５２からの制御に基づいて、所定のデータの署名を生成する。例えば、署名処理部４５４は、サーバ秘密鍵を用いて、所定のデータの署名を生成する。署名処理部４５４は、公開秘密鍵ロジック４０２の署名手順１９４（図６）に沿った処理をCPU３７１（図１１）が実行することで実現される。検証処理部４５５は、主制御部４５２からの制御に基づいて、署名を検証する処理を実行する。検証処理部４５５は、公開秘密鍵ロジック４０２の検証手順１９５（図６）に沿った処理をCPU３７１（図１１）が実行することで実現される。
【０１１４】
暗号化部４５６は、主制御部４５２からの制御に基づいて、データを暗号化する。暗号化部４５６は、公開秘密鍵ロジック４０２の暗号化手順１９１（図６）に沿った処理をCPU３７１（図４）が実行することで実現される。復号部４５７は、主制御部４５２からの制御に基づいて、暗号化されたデータを復号する。復号部４５７は、公開秘密鍵ロジック４０２の復号手順１９２（図６）に沿った処理をCPU３７１（図１１）が実行することで実現される。
【０１１５】
プログラム実行部４５８は、主制御部４５２からの制御に基づいてプログラムを実行する。例えば、プログラム実行部４５８は、主制御部４５２からの制御に基づいて、記憶部３７８（図１２）に記憶されたプログラム４２３を実行する。プログラム実行部４５８は、プログラム実行情報４０３（図１２）に基づく処理をCPU３７１（図１１）が実行することで実現される。
【０１１６】
出力部４５９は、主制御部４５２からの制御に基づいて、データを出力する。例えば、出力部４５９は、ネットワーク１２を介して端末SAMクライアント１１にデータを出力したり、認定機関１３にデータを出力する。出力部４５９は、図１２を用いて説明した外部入出力ロジック４０１に基づく処理をCPU３７１（図１１）が実行することで実現される。
【０１１７】
次に、図１４を参照して、以下の処理で行われる署名や検証、暗号化の詳細な例について説明する。なお、以下、本明細書では、Ｅ(Ａ，Ｂ)を、鍵ＡでデータＢを暗号化することを表わし、Ｄ(Ｐ，Ｑ)を、鍵ＰでデータＱを復号することを表わすものとする。また、暗号と復号は、どちらか前者を後者に作用させるという表現で統一することができる。さらに、Ｈ（Ｍ）は、データＭをハッシュ関数プログラムで圧縮したことを表わすものとする。
【０１１８】
図１４において、送り手側（ａ）は、送り手側（ａ）の秘密鍵Ｋｓａ、および受け手側（ｂ）の公開鍵Ｋｐｂを有しており、受け手側（ｂ）は、受け手側（ｂ）の秘密鍵Ｋｓｂ、および送り手側（ａ）の公開鍵Ｋｐａを有している。ここで、送り手側（ａ）で、文書（Ｍ）５０１を送信する場合について説明する。
【０１１９】
送り手側では、まず、文書（Ｍ）５０１を、公開鍵暗号化方式を用いて送信する。具体的には、ステップＳ１において、送り手は、受け手の公開鍵Ｋｐｂで文書（Ｍ）５０１を暗号化する。すなわち、送り手は「Ｅ（Ｋｐｂ，Ｍ）」を演算する。そして、送り手は、ステップＳ２において、暗号文「Ｅ（Ｋｐｂ，Ｍ）」を受け手に送信する。
【０１２０】
受け手は、この暗号文「Ｅ（Ｋｐｂ，Ｍ）」を受け取ると、ステップＳ３において、これを、受け手の秘密鍵Ｋｓｂで復号し（「Ｄ（Ｋｓｂ，Ｅ（Ｋｐｂ，Ｍ））」を演算し）、もとの文書（Ｍ）５０１を得る。また、受け手は、ステップＳ３の処理で得たもとの文書（Ｍ）５０１を、ステップＳ４においてハッシュ関数プログラムで圧縮する（メッセージダイジェスト「Ｈ（Ｍ）」を演算する）。
【０１２１】
一方、送り手は、ステップＳ５において、文書（Ｍ）５０１を、ハッシュ関数プログラムで圧縮し（メッセージダイジェスト「Ｈ（Ｍ）」を演算し）、ステップＳ６において、メッセージダイジェスト「Ｈ（Ｍ）」を、送り手の秘密鍵Ｋｓａで暗号化する。すなわち、送り手は「Ｅ（Ｋｓａ，Ｈ（Ｍ））」を演算する。この「Ｅ（Ｋｓａ，Ｈ（Ｍ））」がいわゆる、文書（Ｍ）５０１の送り手によるデジタル署名である。送り手は、デジタル署名「Ｅ（Ｋｓａ，Ｈ（Ｍ））」を、ステップＳ７において、受け手に送信する。受け手は、このデジタル署名「Ｅ（Ｋｓａ，Ｈ（Ｍ））」を受け取ると、ステップＳ８において、送り手の公開鍵Ｋｐａでこれを復号し（Ｄ（Ｋｐａ，Ｅ（Ｋｓａ，Ｈ（Ｍ）））を演算し）、メッセージダイジェストＨ（Ｍ）を得る。
【０１２２】
そして、受け手は、ステップＳ９において、ステップＳ４の処理で得られたメッセージダイジェストＨ（Ｍ）と、ステップＳ８の処理で得られたメッセージダイジェストＨ（Ｍ）とを比較し、一致した場合に、メッセージＭが正当であると判定する。すなわち、ステップＳ４の処理で得られたメッセージダイジェストＨ（Ｍ）と、ステップＳ８の処理で得られたメッセージダイジェストＨ（Ｍ）とが一致した場合、デジタル署名が間違いなく送り手が作成し送信したものと認識される。
【０１２３】
一般的に、ハッシュ関数プログラムで作成した圧縮データ（メッセージダイジェスト）から、もとの情報を割り出すのは不可能であるので、図１４の処理のように、デジタル署名を利用することで、送り手の否認、受け手の改ざん、平文（文書）の改ざんを防止することができる。また、受け手は送り手の身元を確認することができる。
【０１２４】
すなわち、受け手が送り手の公開鍵でデジタル署名を復号できたということは（ステップＳ８）、そのデジタル署名は、送り手の秘密鍵で暗号化されたものということがわかる。換言すれば、そのデジタル署名のもととなるメッセージダイジェストＨ（Ｍ）も送り手により生成されたものということがわかる。そして、このメッセージダイジェストＨ（Ｍ）と、受け手が受信した情報から生成したメッセージダイジェストＨ（Ｍ）（ステップＳ４）が一致すれば、ステップＳ４でメッセージダイジェストＨ（Ｍ）を生成した場合に元となったもとの文書（Ｍ）は、間違いなく送り手のものである。
【０１２５】
なお、以下においては、図１４の処理のように詳細な説明は省略し、デジタル署名、その認証については簡単に説明していくが、実際には、図１４に示されるような処理が実行されるものとする。また、以下において、署名付きメッセージは、図１５に示される構成とされるものとして説明する。
【０１２６】
次に、デジタル署名の構成についてさらに説明する。図１５は、署名付きメッセージの簡単な構成を示す図である。
【０１２７】
図１５において、もとの文書（送信した文書）をメッセージＭとした場合、メッセージＭの署名は、メッセージＭをハッシュ関数プログラムで圧縮し（Ｈ（Ｍ）を演算し）、その値を、送信元の秘密鍵Ｋｓで暗号化したものとなる。すなわち、Ｅ（Ｋｓ，Ｈ（Ｍ））がメッセージＭの署名となる。一般的には、このメッセージＭとともにメッセージＭの署名があわせて送られることで、そのメッセージＭの認証度を高めている。
【０１２８】
なお、以下においては、メッセージＭと送信元の秘密鍵Ｋｓとを、図１５の例を用いて適宜説明する。
【０１２９】
次に、図１６のフローチャートを参照して、図７の端末SAM４２（端末SAMクライアント１１）が、図１０の認定機関１３で認定して貰う処理について説明する。なお、この処理は、端末SAM４２と認定機関１３により実行される処理であり、端末SAM４２に認定の指令が入力されたとき、または、最初に端末SAM４２（端末SAMクライアント１１）の電源がオンされたとき開始される。
【０１３０】
ステップＳ３１において、端末SAM４２の鍵ペア生成部２０３は、主制御部２０２からの制御に基づいて、端末SAM公開鍵１４３と端末SAM秘密鍵１４４を生成する。生成された端末SAM公開鍵１４３と端末SAM秘密鍵１４４は、図５の端末SAM固有情報１２４に記憶される。
【０１３１】
ステップＳ３２において、エンコード部２０４は、主制御部２０２からの制御に基づいて、端末SAM公開鍵１４３と端末SAM識別子１４１（あらかじめ図５の記憶部７８に記憶されている、端末SAM固有情報１２４の端末SAM識別子１４１）を、認定鍵公開鍵１６１でエンコードする。この認定機関公開鍵１６１は、あらかじめ端末SAM４２が取得した（または製造時に格納された）認定機関１３の公開鍵である。
【０１３２】
ステップＳ３３において、出力部２１０は、主制御部２０２からの制御に基づいて、エンコードされた端末SAM公開鍵１４３および端末SAM識別子１４１と、エンコードされていない端末SAM識別子１４１とを、ネットワーク１２を介して認定機関１３に送信する。すなわち、エンコードされていない端末識別子１４１と、ステップＳ３２の処理でエンコードされた結果とが送信される。なお、本実施の形態では、必要最低限の情報のみしか、送信する情報として記載していないが、実際には、エンコードされていない端末識別子１４１と、ステップＳ３２の処理でエンコードされた結果の他にも、適宜情報が送信されるようにしてもよい。このことは、以下の処理においても同様である。
【０１３３】
これに対して、認定機関１３の入力部３５１は、ステップＳ５１において、エンコードされた端末SAM公開鍵１４３および端末SAM識別子１４１と、端末SAM識別子１４１とを、ネットワーク１２を介して受信する（受け付ける）。
【０１３４】
ステップＳ５２において、認定機関１３のデコード部３５３は、エンコードされている端末SAM公開鍵１４３および端末SAM識別子１４１を、認定機関秘密鍵３１２でデコードする。ステップＳ３２の処理で行われるエンコードと、このステップＳ５２の処理で行われるデコードは対応しており、独自に定められたエンコード、およびデコード方法であるので、外部の他の機器によりエンコードされたデータが取得された場合においても、データの解析を防ぐことができる。
【０１３５】
ステップＳ５３において、主制御部３５２は、デコードして得られた端末SAM識別子１４１と、受信した端末SAM識別子１４１とを確認する。具体的には、デコードして得られた端末SAM識別子１４１と、ステップＳ５１の処理で受信した端末SAM識別子１４１とが一致している場合には、処理をステップＳ５４に進め、一致していない場合には、認定していない場合には、確認できなかったものとして処理を終了する（一致していない場合の処理の図示は省略する）。この処理は、端末SAM４２が正常な（認定すべき）端末であるかを確認する処理である。
【０１３６】
ステップＳ５４において、主制御部３５２は、端末SAM公開鍵１４３と端末SAM識別子１４１とを、端末SAM公開鍵３２２と端末SAM識別子３２１として、端末SAM証明書フォルダ３０４に登録する。
【０１３７】
ステップＳ５５において、署名処理部３５４は、主制御部３５２からの制御に基づいて、認定機関秘密鍵３１２を用いて、端末SAM公開鍵の署名（認定機関１３による端末SAM公開鍵に対する署名）を生成する。図１５の例の場合、端末SAM公開鍵３２２がメッセージＭであり、送信元の秘密鍵Ｋｓが認定機関秘密鍵３１２となる。すなわち、署名処理部３５４は、端末SAM公開鍵３２２に対してハッシュ関数プログラムで圧縮した結果を、認定機関秘密鍵３１２で暗号化することで、端末SAM公開鍵の署名を生成する。
【０１３８】
ステップＳ５６において、出力部３５５は、主制御部３５２からの制御に基づいて、生成された端末SAM公開鍵の署名を、ネットワーク１２を介して端末SAMクライアント１１の端末SAM４２に送信する。
【０１３９】
これに対して端末SAM４２の入力部２０１は、ステップＳ３４において、端末SAM公開鍵の署名を受信する（入力を受け付ける）。
【０１４０】
ステップＳ３５において、主制御部２０２は、受信された端末SAM公開鍵の署名を、端末SAM公開鍵の署名１４２として、端末SAM固有情報１２４に登録する。このとき、端末SAM固有情報１２４には、端末SAM識別子１４１と端末SAM公開鍵の署名１４２とがペアで保持される。その後処理は終了される。
【０１４１】
図１６の処理により、端末SAM４２は、自分自身を証明する端末SAM公開鍵の署名１４２を認定機関１３により発行して貰うことができる。また、端末SAM４２と認定機関１３との間には独自のエンコード、およびデコード方法が設定されているので、認定機関１３は、端末SAM４２の能力が正常であることを認識し、署名を発行することができる。
【０１４２】
なお、図１６の例では、認定機関１３が署名を発行して送信するようにしたが、端末SAM４２の証明書を発行するようにしてもよい（以下の処理においても同様）。この場合、認定機関１３は、ステップＳ５５で生成した端末SAM公開鍵の署名と、端末SAM識別子とを合わせて、端末SAM証明書として送信し、端末SAM４２は、この証明書を登録する。
【０１４３】
次に、図１７のフローチャートを参照して、図１３のサーバ１４（サービス提供者）が、図７の端末SAM４２（端末SAMクライアント１１）が認定されていることを検証する処理を説明する。なお、この処理は、端末SAM４２とサーバ１４（サービス提供者）により実行される処理であり、端末SAM４２に、サービス提供者との間で認定の検証するよう指令が入力されたとき、または、サーバ１４から認定の検証が求められたとき、開始される。
【０１４４】
ステップＳ９１において、端末SAM４２の主制御部２０２は、図５の記憶部７８の端末SAM固有情報１２４から、端末SAM識別子１４１、端末SAM公開鍵１４３、および端末SAM公開鍵の署名１４２を読み出す。
【０１４５】
ステップＳ９２において、出力部２１０は、読み出された端末SAM識別子１４１、端末SAM公開鍵１４３、および端末SAM公開鍵の署名１４２を、ネットワーク１２を介してサービス提供者であるサーバ１４に送信する。すなわち、端末SAM公開鍵の署名１４２、端末SAM識別子１４１、および端末SAM公開鍵１４３の、計３つの情報（を少なくとも含む情報）がサーバ１４に送信される。
【０１４６】
これに対して、サーバ１４（サービス提供者）の入力部４５１は、ステップＳ７１において、端末SAM識別子１４１、端末SAM公開鍵１４３、および端末SAM公開鍵の署名１４２を受信する。
【０１４７】
ステップＳ７２において、検証処理部４５５は、主制御部４５２からの制御に基づいて、端末SAM公開鍵１４３と認定機関公開鍵１６１（あらかじめ記憶部７８に記憶されている認定機関公開鍵１６１）を用いて、端末SAM公開鍵の署名１４２を検証する。具体的には、図１４を用いて上述したように、検証処理部４５５は、端末SAM公開鍵の署名１４２を認定機関公開鍵１６１で復号したものと、端末SAM公開鍵１４３をハッシュ関数プログラムで圧縮した値が一致するか否かを判定することで検証を行なう。すなわち、検証処理部４５５は、主制御部４５２からの制御に基づいて、端末SAM公開鍵の署名１４２と認定機関公開鍵１６１を用いて、端末SAM公開鍵１４３が正当であることを検証する。
【０１４８】
ステップＳ７３において、検証処理部４５５は、端末SAM公開鍵１４３が正当であることが検証されたか否かを判定する。すなわち、検証処理部４５５は、端末SAM公開鍵の署名を認定機関公開鍵１６１で復号したものと、端末SAM公開鍵１４３をハッシュ関数プログラムで圧縮した値が一致する場合に、端末SAM公開鍵１４３が正当であることが検証されたと判定し、端末SAM公開鍵の署名１４２を認定機関公開鍵１６１で復号したものと、端末SAM公開鍵１４３をハッシュ関数プログラムで圧縮した値が一致しない場合に、正当であることが検証されなかったと判定する。正当であるとことが検証されたと判定された場合、ステップＳ７４において、主制御部４５２は、端末SAM識別子１４１と端末SAM公開鍵１４３とを、端末SAM証明書フォルダ４０６（図１２）に、端末SAM識別子４３１と端末SAM公開鍵４３２として登録する。
【０１４９】
ステップＳ７３において、正当でない（正当であることが検証されなかった）と判定された場合、またはステップＳ７４の処理の後、処理は終了される。
【０１５０】
図１６と図１７を経て（図１６のステップＳ５３で確認できなかった場合と、ステップＳ７３でＮＯと判定された場合を除いて）、サービス提供者であるサーバ１４は、端末SAM４２が、認定機関１３によって認定された端末であることを検証することができる。この処理を実行した上で、サーバ１４が、端末SAM証明書フォルダ４０６（図１２）に、端末SAM識別子４３１と端末SAM公開鍵４３２とを登録することで、サーバ１４は、安全に、鍵やスクリプトを認証済みの端末SAMのみに配信することができる。この具体的な例を、以下に順次説明する。
【０１５１】
最初に図１８のフローチャートを参照して、図７の端末SAM４２が図１３のサーバ１４からスクリプトＩＤを取得し、登録する処理について説明する。なお、この処理は、端末SAM４２が、サービス提供者であるサーバ１４からスクリプトをダウンロードするために、スクリプトをダウンロードする前提の処理として実行される処理である。
【０１５２】
ステップＳ１１１において、サーバ１４の鍵ペア生成部４５３は、サーバ公開鍵４１２とサーバ秘密鍵４１３を生成する。生成されたサーバ公開鍵４１２とサーバ秘密鍵４１３は、図１２のサービス提供者固有情報４０４に記憶される。
【０１５３】
ステップＳ１１２において、出力部４５９は、主制御部４５２からの制御に基づいて、サーバのURL４１１、サーバ公開鍵４１２、およびサーバ１４が提供するスクリプトＩＤを送信する。具体的には、主制御部４５２は、サーバのURL４１１をサービス提供者固有情報４０４から読み出すとともに、サーバが提供するスクリプトＩＤ４２１をスクリプトフォルダ４０５から読み出し、これと、ステップＳ１１１の処理で生成したサーバ公開鍵４１２とをあわせて、送信するよう出力部４５９を制御する。このとき、スクリプトフォルダ４０５に複数のスクリプトＩＤ４２１（スクリプト４２２とプログラム４２３に対応付けられた複数のスクリプトＩＤ４２１）が登録されている場合には、主制御部４５２は、複数のスクリプトＩＤ４２１を送信するよう制御する。出力部４５９は、これらのサーバのURL４１１、サーバ公開鍵４１２、およびサーバが提供する（複数の）スクリプトＩＤを、ネットワーク１２を介して端末SAM４２（端末SAMクライアント１１）に送信する。
【０１５４】
これに対して、端末SAM４２の入力部２０１（図７）は、ステップＳ１３１において、サーバのURL４１１、サーバ公開鍵４１２、およびサーバ１４が提供する（複数の）スクリプトＩＤを受信する。
【０１５５】
ステップＳ１３２において、主制御部２０２は、サーバＩＤを発行する。このサーバＩＤは、端末SAM４２の内部で、サーバ１４を一意に特定するためのＩＤである。
【０１５６】
ステップＳ１３３において、主制御部２０２は、サーバ証明書フォルダ１２３に、ステップＳ１３２の処理で発行したサーバＩＤ、ステップＳ１３１の処理で受信したサーバ公開鍵４１２、およびサーバのURL４１１を、サーバＩＤ１３１、サーバ公開鍵１３２、およびURL１３３として登録する。このとき、サーバＩＤ１３１、サーバ公開鍵１３２およびURL１３３が対応付けられて登録されるので、複数のサービス提供者からサービスを受ける場合においても、端末SAM４２は対応することができる。
【０１５７】
ステップＳ１３４において、主制御部２０２は、スクリプトフォルダ１２６に、サーバＩＤとスクリプトＩＤを対応する数だけ登録する。具体的には、ステップＳ１３２の処理で発行したサーバＩＤと、ステップＳ１３１の処理で受信されたスクリプトＩＤとを、サーバＩＤ１５１、スクリプトＩＤ１５２として、スクリプトフォルダ１２６に登録する。例えば、ステップＳ１３１の処理でスクリプトＩＤを３つ受信した場合（すなわち、サービス提供者がスクリプトを３つ提供する場合）、サーバＩＤにそれぞれのスクリプトＩＤが対応付けられたものが合計３つ登録される。このとき、サーバＩＤ１５１は全て同じサーバＩＤとされる。換言すれば、１つのサーバ１４との間で図１８の処理が実行された場合にサーバ証明書フォルダ１２３に登録されるサーバＩＤ１３１と、スクリプトフォルダ１２６に登録されるサーバＩＤ１５１は同じサーバＩＤ（ステップＳ１３２で発行されたサーバＩＤ）である。その後、処理は終了される。
【０１５８】
図１８の処理により、サーバＩＤ１３１（サーバＩＤ１５１と同じＩＤ）、サーバ公開鍵１３２、およびサーバ１４のURL１３３が対応付けられるとともに、サーバＩＤ１５１（サーバＩＤ１３１と同じＩＤ）とスクリプトＩＤ１５２が対応付けられるため、端末SAM４２において、スクリプトＩＤ１５２に対応するサーバＩＤ１５１（サーバＩＤ１３１）を特定することができ、また、サーバＩＤ１３１（サーバＩＤ１５１）に対応するサーバ公開鍵１３２、サーバ１４のURL１３３を特定することができる。
【０１５９】
次に、図１９と図２０のフローチャートを参照して、図７の端末SAM４２が、サービス提供者である図１３のサーバ１４からスクリプトをダウンロードする場合の処理について説明する。なお、この処理は、端末SAMクライアント１１の管理者（例えば、端末SAMクライアント１１を管理している店舗の店長）が、端末SAM４２に対して、スクリプトのダウンロード（更新）を指令したとき開始される。また、図１８の処理の後実行される処理である。
【０１６０】
ステップＳ１７１において、端末SAM４２の主制御部２０２（図７）は、端末SAM４２の管理者からの、サーバＩＤとスクリプトＩＤの指定と、（スクリプトの）ダウンロードの要求を、図７の入力部２０１（図４の入力部７６）を介して受け付ける。すなわち、端末SAM４２の管理者は、ダウンロードするスクリプトのサーバＩＤとスクリプトＩＤの指定とともに、ダウンロードの要求を、端末SAM４２に対して指令する。サーバＩＤやスクリプトＩＤは、上述した図１８の処理で登録されたものである。
【０１６１】
ステップＳ１７２において、端末SAM４２の署名処理部２０６は、指定されたスクリプトＩＤと端末SAM秘密鍵を用いて、スクリプトＩＤの署名（端末SAM４２によるスクリプトＩＤに対する署名）を生成する。例えば、ステップＳ１７１の処理で指定されたスクリプトＩＤが、図５のスクリプトＩＤ１５２である場合、署名処理部２０６は、スクリプトＩＤ１５２をハッシュ関数プログラムで圧縮するとともに端末SAM秘密鍵１４４で暗号化することで、スクリプトＩＤの署名を生成する。図１５の例の場合、メッセージＭがスクリプトＩＤ１５２であり、送信元の秘密鍵Ｋｓが端末SAM秘密鍵１４４である。
【０１６２】
ステップＳ１７３において、出力部２１０は、主制御部２０２からの制御に基づいて、サーバＩＤにより特定されるURLに対して、暗号化した端末SAM識別子およびスクリプトＩＤと、スクリプトＩＤの署名とを送信する。すなわち、スクリプトＩＤの署名と、暗号化された結果（端末識別子とスクリプトＩＤ）とが送信される。具体的には、暗号化部２０７がサーバ公開鍵（ステップＳ１７１の処理で指定されたサーバＩＤ１３１に対応するサーバ公開鍵１３２）を用いて、端末SAM識別子１４１およびスクリプトＩＤ１５２を暗号化し、出力部２１０が、ステップＳ１７１の処理で指定されたサーバＩＤ１３１（またはサーバＩＤ１５１）により特定されるURL１３３に対して、暗号化した端末SAM識別子１４１およびスクリプトＩＤ１５２（ステップＳ１７１の処理で指定されたスクリプトＩＤ）と、ステップＳ１７２の処理で生成されたスクリプトＩＤの署名とを送信する。
【０１６３】
これに対して、サーバ１４の入力部４５１は、ステップＳ１５１において、暗号化された端末SAM識別子１４１およびスクリプトＩＤ１５２と、スクリプトＩＤの署名とを受信する。すなわち、このサーバ１４のURL４１１（図１２）は、ステップＳ１７３の処理で特定されたURL１３３と同じURLである。そして、復号部４５７は、サーバ秘密鍵４１３を用いて、暗号化されている端末SAM識別子１４１およびスクリプトＩＤ１５２を復号し、端末SAM識別子１４１とスクリプトＩＤ１５２を得る。
【０１６４】
ステップＳ１５２において、主制御部４５２は、ステップＳ１５１の処理で復号して得られた端末SAM識別子１４１と同じ端末SAM識別子４３１に対する端末SAM公開鍵４３２を、端末証明書フォルダ４０６から取得する。端末SAM証明書フォルダ４０６に格納されている情報は、図１６と図１７を参照して説明したように、認定機関１３により認定されたものである。
【０１６５】
ステップＳ１５３において、検証処理部４５５は、主制御部４５２からの制御に基づいて、スクリプトＩＤ１５２と端末SAM公開鍵４３２を用いて、スクリプトＩＤの署名を検証する。具体的には、スクリプトＩＤ１５２をハッシュ関数プログラムで圧縮した値を、端末SAM公開鍵４３２で暗号化したものと、スクリプトＩＤの署名が一致するか否かにより検証を行なう。すなわち、検証処理部４５５は、主制御部４５２からの制御に基づいて、スクリプトＩＤの署名と端末SAM公開鍵４３２を用いて、スクリプトＩＤが正当であることを検証する。
【０１６６】
ステップＳ１５４において、検証処理部４５４は、スクリプトＩＤ１５２が正当であることが検証されたか否かを判定し、正当であることが検証されなかったと判定した場合、処理を終了し、正当であることが検証されたと判定した場合、処理をステップＳ１５５に進める。
【０１６７】
ステップＳ１５５において、主制御部４５２は、スクリプトフォルダ４０５から、スクリプトＩＤ１５２と同じスクリプトＩＤ４２１に対応するスクリプト４２２を取得する。例えば、スクリプトフォルダ４０５に複数のスクリプトＩＤとそれに対応するスクリプトが登録されていた場合には、主制御部４５２は、正当であることが検証されたスクリプトＩＤ（ステップＳ１５１の処理で受信したスクリプトＩＤ）と同じスクリプトＩＤに対応するスクリプトを取得する。
【０１６８】
ステップＳ１５６において、署名処理部４５４は、主制御部４５２からの制御に基づいて、取得したスクリプト４２２とサーバ秘密鍵４１３を用いて、スクリプトの署名（サーバ１４によるスクリプトに対する署名）を生成する。具体的には、取得したスクリプト４２２をハッシュ関数プログラムで圧縮し、その値をサーバ秘密鍵４１３で暗号化することで、スクリプトの署名を生成する（図１５の例の場合、メッセージＭがスクリプト４２２であり、送信元の秘密鍵Ｋｓがサーバ秘密鍵４１３である）。なお、スクリプトの署名（サーバ１４によるスクリプトに対する署名）は、あらかじめ署名処理部４５４が生成し、記憶しておくようにし、ステップＳ１５６の処理で読み出すようにしてもよい。
【０１６９】
ステップＳ１５７において、暗号化部４５６は、主制御部４５２からの制御に基づいて、ステップＳ１５５の処理で取得したスクリプト４２２を、端末SAM公開鍵４３２により暗号化する。
【０１７０】
ステップＳ１５８において、出力部４５９は、主制御部４５２からの制御に基づいて、ステップＳ１５６の処理で生成されたスクリプトの署名と、ステップＳ１５７の処理で暗号化されたスクリプトとを、ネットワーク１２を介して端末SAM４２に送信する。
【０１７１】
これに対して、端末SAM４２の入力部２０１は、ステップＳ１７４において、主制御部２０２からの制御に基づいて、スクリプトの署名と、端末SAM公開鍵４３２により暗号化されたスクリプトを受信する。
【０１７２】
ステップＳ１７５において、復号部２０８は、主制御部２０２からの制御に基づいて、端末SAM公開鍵４３２により暗号化されたスクリプトを、端末SAM秘密鍵１４４で復号する。
【０１７３】
ステップＳ１７６において、検証処理部２０６は、主制御部２０２からの制御に基づいて、復号して得られたスクリプトと、サーバ公開鍵１３２（ステップＳ１７１の所定で受け付けたサーバＩＤ１３１に対応するサーバ公開鍵１３２）とを用いて、受信されたスクリプトの署名を検証する。署名の検証の詳細は、図１４を用いて上述したので省略する。すなわち、検証処理部２０６は、主制御部２０２からの制御に基づいて、スクリプトの署名とサーバ公開鍵１３２を用いて、スクリプトが正当であることを検証する。
【０１７４】
ステップＳ１７７において、検証処理部４５４は、スクリプトが正当であることが検証されたか否かを判定し、正当であることが検証されなかったと判定した場合、処理を終了する。正当であることが検証されたと判定された場合、処理はステップＳ１７８に進む。
【０１７５】
ステップＳ１７８において、主制御部２０２は、正当であることが検証されたスクリプト４２２を、スクリプトフォルダ１２６のサーバＩＤ１５１とスクリプトＩＤ１５２に対応したスクリプト１５３として登録し、処理を終了する。このスクリプト１５３は、図１９のステップＳ１７１で指定されたスクリプトＩＤに対応するスクリプトである。
【０１７６】
図１９と図２０の処理により、端末SAM４２において、サーバＩＤ、スクリプトＩＤ、およびスクリプトのダウンロードが要求された場合に、安全、かつ、確実に対応するスクリプトをサービス提供者であるサーバ１４から取得することができる。
【０１７７】
次に、図７の端末SAM４２において、スクリプトの実行が指令された場合における処理について説明する。図７の端末SAM４２にスクリプトＩＤの指定とともにスクリプトの実行が指令された場合、スクリプトＩＤに対応するスクリプトを、端末SAM４２がダウンロードしていない場合（すなわち、実行が指令されたスクリプトについて、図１９と図２０の処理がまだ行われていない場合）や、既に、実行が指令されたスクリプトを端末SAM４２がダウンロードしている場合（すなわち、実行が指令されたスクリプトについて、図１９と図２０の処理が既に行われている場合）が考えられる。前者を図２１と図２２のフローチャートを参照して説明し、後者を図２３のフローチャートを参照して説明する。
【０１７８】
図２１と図２２は、端末SAM４２にスクリプトの実行が指令された場合であって、まだサーバ１４から実行が指令されたスクリプトを取得していない場合における処理を説明するフローチャートである。この処理は、端末SAMクライアント１１の管理者（例えば、端末SAMクライアント１１を管理している店舗の店長）が、端末SAM４２に対して、スクリプトの実行を指令したとき開始される。
【０１７９】
端末SAM４２の主制御部２０２（図７）は、ステップＳ２１１において、端末SAM４２の管理者からの、サーバＩＤ、スクリプトＩＤ、およびパラメータの指定、並びにスクリプトの実行要求を、入力部２０１を介して受け付ける。すなわち、端末SAM４２の管理者は、実行するスクリプトのサーバＩＤ、スクリプトＩＤ、およびパラメータの指定とともに、スクリプトの実行要求を、端末SAM４２に対して指令する。パラメータとしては、例えば、サービス提供者Ａが提供しているＩＣカードの使用と、そのＩＣカードから１００円消費することを示す値が指定される。なお、サーバＩＤやスクリプトＩＤは、上述した図１８の処理で登録されたものである。
【０１８０】
ステップＳ２１２において、主制御部２０２は、スクリプトフォルダ１２６において、ステップＳ２１１の処理で受け付けたサーバＩＤとスクリプトＩＤに対応するスクリプトを検索する。図５のスクリプトフォルダ１２６には、１つのサーバＩＤ１５１とスクリプトＩＤ１５２に対応するスクリプト１５３しか登録されていないが、実際には、この他に、サーバＩＤとスクリプトＩＤのみのもの（すなわち、スクリプトが登録されていないもの）なども複数登録されている。そのため、この処理では、実行が要求されたサーバＩＤとスクリプトＩＤに対応するスクリプトが、スクリプトフォルダ１２６に登録されているか否かが検索される。図２１と図２２の処理の例では、スクリプトフォルダ１２６に、サーバＩＤとスクリプトＩＤに対応するスクリプトがないので、以下の処理では、そのスクリプトＩＤに対応する処理を、サービス提供者に対して要求する。
【０１８１】
ステップＳ２１３において、端末SAM４２の署名処理部２０６は、指定されたスクリプトＩＤと端末SAM秘密鍵１４４を用いて、スクリプトＩＤの署名を生成する。この処理は図１９のステップＳ１７２と同様である。なお、スクリプトＩＤの署名は、署名処理部２０６によりあらかじめ生成し、記憶しておくようにしてもよい。この場合、ステップＳ２１３の処理で、記憶しておいたスクリプトＩＤの読み出しが行われる。
【０１８２】
ステップＳ２１４において、暗号化部２０７は、主制御部２０２からの制御に基づいて、ステップＳ２１１の処理で受け付けられたサーバＩＤに対応するサーバ公開鍵を用いて、スクリプトＩＤ、パラメータ、および端末SAM識別子を暗号化する。ステップＳ２１１の処理で受け付けられたサーバＩＤが、図５のサーバＩＤ１３１と同じであった場合、暗号化部２０７は、サーバ公開鍵１３２を用いて、スクリプトＩＤ、パラメータ（サービス提供者Ａが提供しているＩＣカードで１００円消費することを示すパラメータ）、および端末SAM識別子１４１を暗号化する。
【０１８３】
ステップＳ２１５において、出力部２１０は、主制御部２０２からの制御に基づいて、サーバＩＤ１３１により特定されるURL１３３に対して、スクリプトＩＤの署名と、暗号化した「スクリプトＩＤ、パラメータ、および端末SAM識別子１４１」とを送信する。
【０１８４】
これに対して、URL１３３に対応するサーバ１４（サービス提供者）の入力部４５１は、ステップＳ１９１において、スクリプトＩＤの署名と、暗号化された「スクリプトＩＤ、パラメータ、および端末SAM識別子１４１」とを受信する。
【０１８５】
ステップＳ１９２において、復号部４５７は、主制御部４５２からの制御に基づいて、暗号化された「スクリプトＩＤ、パラメータ、および端末SAM識別子１４１」をサーバ秘密鍵４１３で復号する。
【０１８６】
ステップＳ１９３において、主制御部４５２は、端末SAM識別子１４１（復号し、得られた端末SAM識別子１４１）により特定される端末SAM公開鍵を取得する。具体的には、主制御部４５２は、復号して得られた端末SAM識別子１４１と同じ端末SAM識別子４３１により特定される、端末SAM公開鍵４３２を取得する。
【０１８７】
ステップＳ１９４において、検証処理部４５５は、スクリプトＩＤと端末SAM公開鍵４３２を用いて、スクリプトＩＤの署名を検証する。具体的には、スクリプトＩＤをハッシュプログラムで圧縮した値と、スクリプトＩＤの署名（ステップＳ１９１の処理で受信したスクリプトＩＤの署名を端末SAM公開鍵４３２で復号した値とが、一致するか否かにより、スクリプトＩＤの署名が正当であるか否かが判定される。すなわち、スクリプトＩＤが改ざんされていないか否かが判定される。
【０１８８】
ステップＳ１９５において、検証処理部４５５は、スクリプトＩＤが正当であることが検証されたか否かを判定し、正当であることが検証されなかったと判定した場合、処理を終了する。ステップＳ１９５において、スクリプトＩＤが正当であることが検証されたと判定された場合、処理はステップＳ１９６に進む。
【０１８９】
ステップＳ１９６において、主制御部４５２は、ステップＳ１９２の処理で復号した結果得られたスクリプトＩＤに基づいて、図１２のスクリプトフォルダ４０５からプログラムを特定する。例えば、主制御部４５２は、得られたスクリプトＩＤがスクリプトＩＤ４２１と同じであった場合、このスクリプトＩＤに対応付けられているプログラム４２３を特定する。
【０１９０】
ステップＳ１９７において、プログラム実行部４５８は、パラメータに基づいてプログラムを実行し、実行結果を生成する。例えば、プログラム実行部４５８は、サーバ１４がサービスを提供しているＩＣカードで１００円使用したというパラメータに基づいて、プログラム４２３を実行し、その実行結果を生成する。
【０１９１】
このように、処理能力が高いサーバ１４側では、スクリプトＩＤに対してプログラムが実行され、処理能力が比較的低い端末SAM４２側では、スクリプトＩＤに対してスクリプトが実行される。
【０１９２】
ステップＳ１９８において、署名処理部４５４は、主制御部４５２からの制御に基づいて、プログラム実行結果とサーバ秘密鍵４１３を用いて、プログラム実行結果の署名（サーバ１４によるプログラム実行結果に対する署名）を生成する。図１５の例の場合、メッセージＭがプログラム実行結果であり、送信元の秘密鍵がサーバ秘密鍵４１３である。
【０１９３】
ステップＳ１９９において、主制御部４５２は、端末SAM証明書フォルダ４０６から端末SAM識別子４３１（ステップＳ１９２で復号して得られた端末SAM識別子と同じ端末SAM識別子４３１）により特定される端末SAM公開鍵４３２を取得する。
【０１９４】
ステップＳ２００において、暗号化部４５６は、主制御部４５２からの制御に基づいて、プログラム実行結果を、端末SAM公開鍵で暗号化する。
【０１９５】
ステップＳ２０１において、出力部４５９は、プログラム実行結果の署名（ステップＳ１９８の処理で生成された署名）と、暗号化されたプログラム実行結果（ステップＳ２００の処理で暗号化されたプログラム実行結果）を、端末SAM４２に送信する。
【０１９６】
これに対して、端末SAM４２の入力部２０１は、ステップＳ２１６において、プログラム実行結果の署名と、暗号化されたプログラム実行結果とを受信する。
【０１９７】
ステップＳ２１７において、復号部２０８は、暗号化されたプログラム実行結果を、端末SAM秘密鍵１４４で復号する。これによりプログラム実行結果が得られる。
【０１９８】
ステップＳ２１８において、検証処理部２０６は、プログラム実行結果とサーバ公開鍵１３２（ステップＳ２１１で受け付けられたサーバＩＤ１３１に対応するサーバ公開鍵１３２）とを用いて、プログラム実行結果の署名を検証する。すなわち、検証処理部２０６は、主制御部２０２からの制御に基づいて、プログラム実行結果の署名とサーバ公開鍵１３２とを用いて、プログラム実行結果が正当であることを検証する。
【０１９９】
ステップＳ２１９において、検証処理部２０６は、プログラム実行結果が正当であることが検証されたか否かを判定し、正当であることが検証されなかったと判定した場合、処理を終了する。ステップＳ２１９において、正当であることが検証されたと判定された場合、処理はステップＳ２２０に進み、出力部２１０は、主制御部２０２からの制御に基づいて、プログラム実行結果を出力する。例えば、出力部２１０は、図示せぬディスプレイなどに出力することで、端末SAM４２の管理者に実行結果を通知する。その後、処理は終了される。
【０２００】
次に、図７の端末SAM４２にスクリプトＩＤの指定とともにスクリプトの実行が指令された場合、実行が指令されたスクリプトを端末SAM４２がダウンロードしている場合（すなわち、実行が指令されたスクリプトについて、図１９と図２０の処理が既に行われている場合）の処理（すなわち、上述した後者の場合の処理）を、図２３のフローチャートを参照して説明する。
【０２０１】
端末SAM４２の主制御部２０２（図７）は、ステップＳ２５１において、端末SAM４２の管理者からの、サーバＩＤおよびスクリプトＩＤの指定、並びにスクリプトの実行要求を、図６の入力部２５６を介して受け付ける。すなわち、端末SAM４２の管理者は、実行するスクリプトのサーバＩＤとスクリプトＩＤの指定とともに、スクリプトの実行要求を、端末SAM４２に対して指令する。このスクリプトの実行要求には、パラメータ（例えば、サービス提供者Ａが提供しているＩＣカードの使用と、そのＩＣカードから１００円消費することを示すパラメータ）が含まれる。
【０２０２】
ステップＳ２５２において、主制御部２０２は、スクリプトフォルダ１２６において、ステップＳ２５１の処理で受け付けたサーバＩＤとスクリプトＩＤに対応するスクリプトを検索する。図２３の処理の例では、スクリプトフォルダ１２６に、サーバＩＤ１５１とスクリプトＩＤ１５２に対応するスクリプト１５３があるとされ、以下の処理では、そのスクリプトＩＤ１５２に対応する処理が実行される。
【０２０３】
ステップＳ２５３において、端末SAM４２のスクリプト実行部２０９は、指定されたスクリプト（ステップＳ２５２の処理で検索された結果特定されたスクリプト）１５３を実行する。
【０２０４】
ステップＳ２５４において、主制御部２０２は、ＩＣカードにアクセスするか否かを判定する。例えば、ステップＳ２５１の処理で実行が要求されたスクリプトが、ＩＣカードにアクセスするべき内容のスクリプトである場合には、アクセスすると判定される。
【０２０５】
ステップＳ２５４において、ＩＣカードにアクセスすると判定された場合、ステップＳ２５５において、出力部２１０は、ＩＣカードリーダライタアンテナ４３（図３）に対して、アクセスの指令を送信する。このとき、スクリプトの実行に対応するパラメータなど（例えば、１００円分の金額を減算することを示すパラメータ）もあわせて送信される。なお、スクリプト記述内にＩＣカード５１へのアクセスの指令が複数記述されている場合には、出力部２１０は、ＩＣカードリーダライタアンテナ４３（図３）に対して、複数回のアクセスの指令を送信する。また、スクリプト記述内にＩＣカードへのアクセスの指令の他、制御端末４１やサーバ１４へのアクセスの指令が複数記述されている場合には、出力部２１０は、制御端末４１やサーバ１４に対して、それぞれアクセスの指令を送信する（またはアクセスする）。
【０２０６】
これに対して、ＩＣカードリーダライタアンテナ４３は、ステップＳ２３１において、端末SAM４２の出力部２１０からの指令を受け付け、ステップＳ２３２において、ＩＣカード（図３のＩＣカード５１）にアクセスする。
【０２０７】
そして、ＩＣカードリーダライタアンテナ４３は、ステップＳ２３３において、アクセスした結果（例えば、ＩＣカード５１から１００円分の金額を減算が成功したことを示す結果）を、端末SAM４２に対して送信する。
【０２０８】
これに対して、端末SAM４２の入力部２０１は、ステップＳ２５６において、アクセスした結果（１００円の金額の減算が成功したことを示す結果）を受信する。
【０２０９】
ステップＳ２５４においてＩＣカードにアクセスしないと判定された場合、またはステップＳ２５６の処理の後、ステップＳ２５７において、スクリプト実行部２０９は、スクリプト実行結果を生成し、出力部２１０は、これを出力する。出力部２１０は、例えば、図示せぬディスプレイなどに出力することで、端末SAM４２の管理者に実行結果を通知する。その後、処理は終了される。
【０２１０】
図２１乃至図２３により、スクリプト実行時に、対応するスクリプトがダウンロードされていれば、端末SAM４２内でスクリプトを実行し、対応するスクリプトがダウンロードされていなければサーバ１４（サービス提供者）に対して実行を要求することで、端末SAM４２の管理者が、スクリプトＩＤを指定するだけで、端末SAM４２におけるスクリプトのダウンロードの有無にかかわらずスクリプトＩＤに対応する処理を実行することができる。
【０２１１】
次に、図２４のフローチャートを参照して、端末SAM４２がスクリプト実行中に、制御端末４１にアクセスを行なう場合の処理の例を説明する。なお、この処理は、例えば、図２３のステップＳ２５３において、スクリプトを実行するときに開始される処理である。
【０２１２】
ステップＳ２９１において、端末SAM４２のスクリプト実行部２０９は、実行中のスクリプトに制御端末４１とのメッセージ交換要求が記述されているか否かを判定する。制御端末４１とのメッセージ交換要求が記述されていると判定された場合、ステップＳ２９２において、出力部２１０は、主制御部２０２からのスクリプト実行部２０９を介する制御に基づいて、スクリプトに記述された制御端末アクセス記述を、制御端末４１（図３）に送信する。この制御端末アクセス記述は、制御端末４１において実行させる処理に関する記述とされる。なお、スクリプト記述内に制御端末４１へのアクセスの指令が複数記述されている場合には、出力部２１０は、制御端末４１に対して複数回、アクセス記述を送信する。また、スクリプト記述内に制御端末アクセス記述の他、ＩＣカード５１やサーバ１４へのアクセスの指令が複数記述されている場合には、出力部２１０は、ＩＣカードリーダライタ４３やサーバ１４に対して、それぞれアクセスの指令を送信する（またはアクセスする）。
【０２１３】
これに対して、制御端末４１（図３）は、ステップＳ２７１において、制御端末アクセス記述を受信する。
【０２１４】
ステップＳ２７２において、制御端末４１は、受信した制御端末アクセス記述に基づく処理を実行し、制御端末アクセス記述結果を生成する。そして制御端末４１は、ステップＳ２７３において、制御端末アクセス記述結果を、端末SAM４２に対して送信する。
【０２１５】
これに対して、端末SAM４２の入力部２０１は、ステップＳ２９３において、制御端末アクセス記述結果を受信し、ステップＳ２９４において、主制御部２０２は、制御端末アクセス記述結果を、スクリプト実行部２０９に戻す。
【０２１６】
ステップＳ２９１において、スクリプトに制御端末４１とのメッセージ交換要求が記述されていないと判定された場合、またはステップＳ２９４の処理の後、処理は終了される。
【０２１７】
図２４の処理により、スクリプト実行中に制御端末４１とのメッセージ交換要求が記述されている場合においても、端末SAM４２は、制御端末４１との間でメッセージを交換することができる。
【０２１８】
次に、図２５と図２６のフローチャートを参照して、スクリプト実行中にサーバ１４に対してアクセスを行なう場合の処理の例を説明する。なお、この処理は、例えば、図２３のステップＳ２５３において、スクリプトを実行するときに開始される処理である。
【０２１９】
ステップＳ３３１において、端末SAM４２のスクリプト実行部２０９は、主制御部２０２からの制御に基づいて、実行中のスクリプトにサーバ１４とのメッセージ交換要求が記述されているか否かを判定する。例えば、対応するＩＣカードで１２万円の商品を購入するためのスクリプトが実行されている場合であって、そのＩＣカードの限度額が１０万円である場合、対応するスクリプトの記述は、サーバ１４へのメッセージ交換要求の記述である。サーバ１４とのメッセージ交換要求が記述されていると判定された場合、ステップＳ３３２において、出力部２１０は、主制御部２０２からのスクリプト実行部２０９を介する制御に基づいて、実行中のスクリプトに対応するサーバＩＤに基づいて、サーバ公開鍵とURLを取得する。例えば、主制御部２０２は、実行中のスクリプトが図５のスクリプト１５３である場合、このスクリプトＩＤ１５２のサーバＩＤ１５１と同じサーバＩＤであるサーバＩＤ１３１に対応するサーバ公開鍵１３２とURL１３３を取得する。
【０２２０】
ステップＳ３３３において、署名処理部２０５は、主制御部２０２からの制御に基づいて、端末SAM秘密鍵１４４を用いて、サーバアクセス記述とスクリプトＩＤの署名（端末SAM４２によるサーバアクセス記述とスクリプトＩＤに対する署名）を生成する。図１５の例の場合、メッセージＭがサーバアクセス記述とスクリプトＩＤであり、送信元の秘密鍵Ｋｓが端末SAM秘密鍵１４４である。
【０２２１】
ステップＳ３３４において、暗号化部２０７は、主制御部２０２からの制御に基づいて、サーバアクセス記述とスクリプトＩＤをサーバ公開鍵１３２（ステップＳ３３２の処理で取得されたサーバ公開鍵１３２）で暗号化する。
【０２２２】
ステップＳ３３５において、出力部２１０は、主制御部２０２からの制御に基づいて、サーバアクセス記述とスクリプトＩＤの署名（ステップＳ３３３で生成された署名）、暗号化したサーバアクセス記述とスクリプトＩＤ（ステップＳ３３４）、および端末SAM識別子１４１をURL１３３に対して送信する。すなわち、端末SAM識別子１４１、暗号化された情報(サーバアクセス記述とスクリプトＩＤ)、および署名（サーバアクセス記述とスクリプトＩＤの署名）の３つが送信される。
【０２２３】
これに対して、サービス提供者であるサーバ１４の入力部４５１は、ステップＳ３１１において、サーバアクセス記述とスクリプトＩＤの署名、暗号化されたサーバアクセス記述とスクリプトＩＤ、および端末SAM識別子１４１を受信する（入力を受け付ける）。
【０２２４】
ステップＳ３１２において、復号部４５７は、主制御部４５２からの制御に基づいて、暗号化されたサーバアクセス記述とスクリプトＩＤをサーバ秘密鍵（図１２のサーバ秘密鍵４１３）で復号する。
【０２２５】
ステップＳ３１３において、主制御部４５２は、ステップＳ３１１の処理で受信された端末SAM識別子１４１により特定される端末SAM公開鍵を取得する。例えば、端末SAM識別子１４１と図１２の端末SAM識別子４３１が同じである場合、端末SAM識別子４３１により特定される端末SAM公開鍵４３２が取得される。
【０２２６】
ステップＳ３１４において、検証処理部４５５は、主制御部４５２からの制御に基づいて、サーバアクセス記述およびスクリプトＩＤの署名と、ステップＳ３１３の処理で取得された端末SAM公開鍵４３２を用いて、サーバアクセス記述およびスクリプトＩＤを検証する。具体的には、サーバアクセス記述とスクリプトＩＤに対してハッシュ関数プログラムで圧縮した結果を、サーバ秘密鍵４１３で暗号化した結果と、サーバアクセス記述とスクリプトＩＤの署名が一致するか否かが検証される。すなわち、検証処理部４５５は、主制御部４５２からの制御に基づいて、サーバアクセス記述およびスクリプトＩＤの署名と、サーバ秘密鍵４１３とを用いて、サーバアクセス記述およびスクリプトＩＤが正当であることを検証する。
【０２２７】
ステップＳ３１５において、サーバアクセス記述とスクリプトＩＤが正当であることが検証されたか否かが判定され、正当であることが検証されなかったと判定された場合、処理は終了される。ステップＳ３１５において、サーバアクセス記述とスクリプトＩＤが正当であることが検証されたと判定された場合、ステップＳ３１６において、サーバ１４のプログラム実行部４５８は、主制御部４５２からの制御に基づいて、正当であることが検証されたサーバアクセス記述に基づいて、処理を実行し、サーバアクセス記述結果を生成する。
【０２２８】
ステップＳ３１７において、署名処理部４５４は、主制御部４５２からの制御に基づいて、サーバ秘密鍵４１３を用いて、サーバアクセス記述結果の署名（サーバ１４によるサーバアクセス記述結果に対する署名）を生成する。
【０２２９】
ステップＳ３１８において、暗号化部４５６は、主制御部４５２からの制御に基づいて、サーバアクセス記述結果を、ステップＳ３１３の処理で取得された端末SAM公開鍵４３２で暗号化する。
【０２３０】
ステップＳ３１９において、出力部４５９は、主制御部４５２からの制御に基づいて、サーバアクセス記述結果の署名（ステップＳ３１７）と、暗号化したサーバアクセス記述結果（ステップＳ３１８）とを、端末SAM４２に送信する。
【０２３１】
これに対して、端末SAM４２の入力部２０１は、ステップＳ３３６において、サーバアクセス記述結果の署名と、暗号化したサーバアクセス記述結果とを受信する。
【０２３２】
ステップＳ３３７において、復号部２０８は、主制御部２０２からの制御に基づいて、暗号化されているサーバアクセス記述結果を、端末SAM秘密鍵１４４で復号する。
【０２３３】
ステップＳ３３８において、検証処理部２０６は、主制御部２０２からの制御に基づいて、サーバアクセス記述結果とサーバ公開鍵１３２（ステップＳ３３４の処理で用いたサーバ公開鍵と同じ公開鍵）を用いてサーバアクセス記述結果の署名を検証する（上述した検証の処理と同様）。すなわち、検証処理部２０６は、主制御部２０２からの制御に基づいて、サーバアクセス記述結果の署名と、サーバ公開鍵１３２とを用いて、サーバアクセス記述結果が正当であることを検証する。
【０２３４】
ステップＳ３３９において、検証処理部２０６は、サーバアクセス記述結果が正当であることが検証されたか否かを判定し、正当であることが検証されたと判定された場合、ステップＳ３４０において、主制御部２０２は、サーバアクセス記述結果をスクリプト実行部２０９に戻し、処理を終了する。またステップＳ３３９において、正当であることが検証されなかったと判定された場合、処理は終了される。
【０２３５】
図２６の処理により、スクリプトの実行途中に、サーバ１４にアクセスが必要である場合に、そのメッセージを受け取る受け手側（例えば、サーバ１４）の公開鍵で暗号化してサーバ１４に送信することで、セキュアにメッセージ交換を行なうことができる。また、スクリプト実行中に、スクリプトに記述された内容に基づいた高度な分岐処理を行なうことができる。
【０２３６】
次に、サーバ１４と端末SAM４２がオフラインの状態で、端末SAM４２においてスクリプトを実行した後、その処理結果をログとして保存しておき、後で、サーバ１４と端末SAM４２がオンラインになったときにサーバ１４にログをアップロードする場合の処理を、図２７と図２８を参照して説明する。
【０２３７】
図２７は、端末SAM４２とＩＣカードリーダライタアンテナ４３（図３）において実行される処理の例を説明するフローチャートである。この処理は、基本的には、図２３の処理と対応しており、適宜、図２３の処理を流用して説明する。
【０２３８】
ステップＳ３７１乃至ステップＳ３７３の処理は、図２３のステップＳ２５１乃至ステップＳ２５３に対応しているのでその説明は省略する。
【０２３９】
ステップＳ３７４において、出力部２１０は、ＩＣカードリーダライタアンテナ４３（図３）に対して、アクセスの指令を送信する。このとき、スクリプトの実行に対応するパラメータなど（例えば、１００円分の金額を減算することを示すパラメータ）もあわせて送信される。
【０２４０】
これに対するＩＣカードリーダライタアンテナ４３のステップＳ３５１乃至３５３の処理は、図２３のステップＳ２３１乃至ステップＳ２３３の処理に対応しているのでその説明は省略する。
【０２４１】
ステップＳ３７５において、端末SAM４２の入力部２０１は、アクセスした結果（１００円の金額の減算が成功したことを示す結果）を受信する。
【０２４２】
ステップＳ３７６において、スクリプト実行部２０９は、スクリプト実行結果を生成する。
【０２４３】
ステップＳ３７７において、主制御部２０２は、スクリプトＩＤ（ステップＳ３７１で指定されたスクリプトＩＤ）、と時刻情報（現在の時刻の情報）を、スクリプト実行結果に付加し、スクリプト実行結果付加情報とする。
【０２４４】
ステップＳ３７８において、署名処理部２０５は、端末SAM秘密鍵１４４を用いて、スクリプト実行結果付加情報の署名（図１５においてメッセージＭがスクリプト実行結果付加情報であり、送信もとの秘密鍵Ｋｓが端末SAM秘密鍵１４４である）を生成する。
【０２４５】
ステップＳ３７９において、主制御部２０２は、ステップＳ３７８の処理で生成されたスクリプト実行結果付加情報の署名、並びにサーバＩＤおよびスクリプト実行結果付加情報を、ログフォルダ１２８のログ１７１として登録する。
【０２４６】
図２７の処理により、スクリプト実行結果に時刻情報とスクリプトＩＤが付加されたものがログ１７１に登録される。この処理は、端末SAM４２とサーバ１４の間がオフラインであって、スクリプトが実行されるたびに繰り返され、これにより、複数のログがログフォルダ１２８に登録される。
【０２４７】
次に、図２８のフローチャートを参照して、図２７の処理の繰り返しによりログフォルダ１２８に登録された（複数の）ログ１７１を、サーバ１４に送信する場合の処理を説明する。
【０２４８】
ステップＳ４１１において、端末SAM４２の主制御部２０２は、サーバ１４と接続されたか否かを判定し、接続されるまで待機する。すなわち、これ以降の処理は、サーバ１４と端末SAM４２がオンライン（接続）されたとき開始される。
【０２４９】
ステップＳ４１１において、サーバ１４と端末SAM４２が接続されたと判定された場合、主制御部２０２は、ステップＳ４１２において、接続されたサーバ１４のサーバＩＤを、サーバ証明書フォルダ１２３から検索し、URLを取得する。例えば、接続されたサーバ１４のサーバＩＤが、図５のサーバＩＤ１３１である場合、主制御部２０２は、サーバＩＤ１３１のURL１３３を取得する。
【０２５０】
ステップＳ４１３において、主制御部２０２は、ログフォルダ１２８に登録されているログの中から、サーバＩＤが同じログを取得する。図２７を用いて上述したように、ログには、スクリプト実行結果付加情報の他に、サーバＩＤも含まれているので、主制御部２０２は、このサーバＩＤに基づいて同じサーバＩＤを持つログを取得する。例えば、図５のログ１７１が取得される。
【０２５１】
ステップＳ４１４において、暗号化部２０７は、主制御部２０２からの制御に基づいて、ログ１７１に含まれるサーバＩＤとスクリプト実行結果付加情報を、サーバ公開鍵１３２（サーバＩＤに対応するサーバ公開鍵）で暗号化する。
【０２５２】
ステップＳ４１５において、出力部２１０は、主制御部２０２からの制御に基づいて、スクリプト実行結果付加情報の署名（ステップＳ４１３で取得されたログに含まれるスクリプト実行結果付加情報の署名、すなわち、図２７のステップＳ３７８で生成された署名）、暗号化された「サーバＩＤおよびスクリプト実行結果付加情報」、並びに端末SAM識別子１４１を、URL１３３（ステップＳ４１２の処理で取得されたURL）に対して送信する。すなわち、端末SAM識別子１４１、暗号化された結果（サーバＩＤとスクリプト実行結果付加情報が暗号化された結果）、署名（スクリプト実行結果付加情報の署名）の３つを（少なくとも）含む情報が送信される。
【０２５３】
これに対して、サーバ１４の入力部４５１は、ステップＳ３９１において、スクリプト実行結果付加情報の署名、暗号化されたサーバＩＤおよびスクリプト実行結果付加情報、並びに端末SAM識別子１４１を受信する。
【０２５４】
ステップＳ３９２において、復号部４５７は、サーバ秘密鍵４１３を用いて、暗号化されたサーバＩＤおよびスクリプト実行結果付加情報を復号する。
【０２５５】
ステップＳ３９３において、主制御部４５２は、ステップＳ３９１で受信した端末SAM識別子に対応する端末SAM公開鍵を取得する。例えば、図１２の端末SAM識別子３９１の端末SAM公開鍵４３２が取得される。
【０２５６】
ステップＳ３９４において、検証処理部４５５は、主制御部４５２からの制御に基づいて、スクリプト実行結果付加情報と端末SAM公開鍵４３２を用いて、スクリプト実行結果付加情報の署名を検証し、ステップＳ３９５において、スクリプト実行結果付加情報が正当であるか否かを判定する。すなわち、検証処理部４５５は、主制御部４５２からの制御に基づいて、スクリプト実行結果付加情報の署名と端末SAM公開鍵４３２とを用いて、スクリプト実行結果付加情報が正当であることを検証する。
【０２５７】
ステップＳ３９５において、スクリプト実行結果付加情報が正当であることが検証されたと判定された場合、主制御部４５２は、スクリプト実行結果付加情報に付加されていたスクリプトＩＤと時刻情報を取り出し、ログとして保存した後、処理を終了する。また、ステップＳ３９５において正当であることが検証されなかったと判定された場合、処理は終了される。
【０２５８】
図２７と図２８の処理により、スクリプト実行結果に時刻情報を追加して署名を付与するとともに、端末SAM４２にログ１７１として登録しておくことにより、サービス提供者のサーバ１４と通信コネクションが確立されたときにまとめてアップロードすることができる。
【０２５９】
以上によれば、認定機関１３が、端末SAM４２を証明するようにしたので、サービス提供者（サーバ１４）側で、証明済みの端末SAM４２を認識して、データの授受を行なうことができる。
【０２６０】
すなわち、認定機関１３が、端末SAM４２の能力が正常であることを認定（証明）することで、サービス提供者が、認定済みの端末SAM４２を容易に判断することができる。
【０２６１】
このようにすることで、端末SAM４２の内部に格納（登録）されているスクリプトやその実行状況が参照されることがなく、第三者（例えば、あらかじめ登録しておいたスクリプトを提供したサービス提供者Ａとは異なるサービス提供者Ｂ）が実行可能なスクリプトを格納することができる。
【０２６２】
また、サービス提供者（サーバ１４）は、認定機関１３により発行された端末SAM公開鍵の署名（端末SAMの証明書）を端末SAM４２から取得し、この署名に基づいて端末SAM公開鍵が正当でることを検証することで、端末SAM４２が認定済みの端末SAMであることを確実、かつ、容易に認識することができる。これに対して、端末SAM４２は、サービス提供者（サーバ１４）の証明書（図５のサーバ証明書フォルダ１２３）をサーバ１４から取得しておき、サーバ１４からスクリプトなどが送信されてきた場合には、スクリプトを検証することで（例えば、図２０のステップＳ１７６）、端末SAM４２においても、安全な情報のみを受信することができる。このような処理を行なうことで、サービス提供者（サーバ１４）と端末SAMクライアント１１との間で、安全に（合意して）コンテンツ送受信することができる。
【０２６３】
さらに、端末とサーバが容易に認証を行なうことができる。また、安全、かつ、容易に端末とサーバが情報を授受することができる。さらに、サーバの管理コストを抑えることができる。
【０２６４】
また、以上のような構成により、複数のスクリプトを管理し、いつでもスクリプトと登録、削除、または更新することができる。また、異なるサービス提供者からのスクリプトを、安全に格納することができる。例えば、サービス提供者Ａからのスクリプトとサービス提供者Ｂからのスクリプトが端末SAM４２に記憶されており、サービス提供者Ｂが、スクリプトと更新する場合においても、サービス提供者Ｂは、自分自身が提供しているスクリプトしか見ることができない。このことは、図５のスクリプトフォルダ１２６が、サーバＩＤ１５１、スクリプトＩＤ１５２に対して、スクリプト１５３が格納されているためである。
【０２６５】
また、端末SAMクライアント１１に端末SAM４２を格納することで、端末SAM４２により管理されたスクリプトを実行し、そのスクリプトに記述されたカードアクセス処理を、ＩＣカードリーダライタアンテナ４３を利用して、ＩＣカードにアクセスすることで行なうこともできる。
【０２６６】
さらに、サービス提供者の所持するスクリプトＩＤリストを端末SAM４２のスクリプトフォルダ１２６（セキュリティボックス）に格納し、スクリプト実行時に、そのスクリプトＩＤに対応するスクリプトがダウンロードされていれば端末SAM４２（セキュリティボックス）内で実行し（例えば、図２１と図２２）、ダウンロードされていなければサービス提供者に実行要求することで（例えば、図２３）、端末SAM４２の所有者がスクリプトＩＤを指定するだけで、スクリプトがダウンロードされているかいないかに関わらず実行指示を行なうことができる。
【０２６７】
また、スクリプト実行後の処理結果の署名とともに時刻情報を付与して端末SAM４２内（ログフォルダ１２８）に一時的に格納しておき（例えば、図２７）、サービス提供者のサーバ１４と通信コネクションが確立されたときにまとめてアップロードする（図２８）ようにしたので、オフラインにおいても、端末SAMクライアント１１を利用することができる。なお、以上の例では、ログフォルダ１２８にスクリプト実行後の処理結果の署名と時刻情報とを格納しておくようにしたが、制御端末４１に格納しておくようにしてもよい。
【０２６８】
さらに、スクリプトの実行途中に、メッセージを受け取る受け手側の公開鍵（証明書）で暗号化して通信することで（例えば、図２５）、カードにアクセスしたり、上位クライアントまたは上位サーバに処理要求を行なってセキュアにメッセージ交換を行なうことができ、スクリプト内でそれに基づいた高度な分岐処理を行なうことができる。
【０２６９】
なお、以上の例では、スクリプトを管理することについて説明したが、スクリプトの他に、鍵を管理するようにしてもよい。鍵の授受の場合においても、上述した処理と同様の処理が行われる。
【０２７０】
また、以上の例では、送信するメッセージＭを受信側の公開鍵で暗号化し、暗号化したメッセージＭとともに、そのメッセージＭの署名を送信するようにしたが、メッセージＭの署名も、メッセージＭと一緒に暗号化して送るようにしてもよい。すなわち、メッセージＭの署名を生成した後、そのメッセージＭの署名とメッセージＭを、受信側の公開鍵で暗号化して送信するようにしてもよい。
【０２７１】
このように、サービス提供者が、端末SAMを認識することで、安心してスクリプトや鍵を端末SAMに提供することができる。
【０２７２】
また、サービス提供者の提供するスクリプトや鍵を端末SAM４２の内部でセキュアに実行してＩＣカードにアクセスを行なうことで、サービス提供者の意図しない不正動作を防ぎつつ、オフラインでスクリプトを実行させることができる。
【０２７３】
このようにＩＣカードにスクリプトを格納するのではなく、端末SAM４２にスクリプトを格納して処理を実行することで、ＩＣカードにあるデータを変更することなく、ＩＣカード所有者の権限とは無関係に、いつでもスクリプトを追加、更新、または削除することができる。
【０２７４】
また、データ（カード情報などのデータ）をＩＣカードに、スクリプトを端末SAM４２に格納することで、それらの所有者を明確に分離することができる。
【０２７５】
さらに、ＩＣカードの全てに同じスクリプトを配信する必要がなく、アクセスする端末SAMにのみ配信すればよいので、スクリプトや鍵の更新に対する処理コストを抑えることができる。
【０２７６】
また、端末SAMクライアント１１の管理者は、端末SAM４２内にスクリプトがダウンロードされているか否かを意識することなく、端末SAM４２に対してスクリプト実行を要求することができる。
【０２７７】
さらに、ＩＣカード内のスクリプト更新には、ＩＣカードをかざす必要があるが、端末SAM４２内にスクリプトを格納するようにしたので、いつでも更新でき、かつ、ＩＣカード所有者に更新時間を待たせることがない。
【０２７８】
また、端末SAM４２内でスクリプトが実行できるため、処理性能の低いＩＣカードではなく、処理性能に余裕がある端末SAM４２で高速処理を行なうことができる。
【０２７９】
さらに、端末SAM４２とサーバ１４との間がオフラインである場合にサービス提供者のスクリプトが実行されても、端末SAM４２においてログを時刻情報とともに保存するようにしたので、サーバ１４との間でオンラインとなったときに実行ログをサービス提供者にアップロードでき、端末SAM４２でのオフライン実行結果を、サーバ１４側で同期することができる。
【０２８０】
また、サーバ１４で行なっていた処理の一部を端末SAM４２に負荷分散することができ（図２５）、クライアントとサーバ間の通信コストも削減することができる。
【０２８１】
さらに、暗号化の方式は上述した方式に限らず、例えば、共通鍵などを利用した方式であってもよい。
【０２８２】
また、以上の例では、特定の情報（例えば、スクリプト）を暗号化すると記載した箇所については、少なくともその特定の情報を含むものを暗号化することを示す。すなわち、「特定の情報を暗号化する」という記載には、「暗号化する情報の中に、特定の情報が含まれている」ことを示す。
【０２８３】
さらに、端末SAMクライアント１１は、情報を処理する情報処理装置であれば、他のものにも適用することができる。例えば、パーソナルコンピュータにＩＣカードリーダライタアンテナを設けたものを端末SAMクライアント１１としてもよい。
【０２８４】
また、以上の例では、それぞれを区別するためにＩＤを用いるようにしたが、情報を識別するための識別情報を用いるようにしてもよい。
【０２８５】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２８６】
この記録媒体は、図４（並びに図８および図１１）に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア９１よりなるパッケージメディアにより構成されるだけでなく、装置本体にあらかじめ組み込まれた状態でユーザに提供される、プログラムが記録されているROM７２や記憶部７８が含まれるハードディスクなどで構成される。なお、図８、図１１においても同様である。
【０２８７】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
【図面の簡単な説明】
【０２８９】
【図１】本発明を適用した情報処理システムの全体の構成例を示す図である。
【図２】図１のサーバについて説明する図である。
【図３】図１の端末SAMクライアントの機能的構成例を示す図である。
【図４】図１の端末SAMのハードウエアの構成例を示すブロック図である。
【図５】図４の記憶部に記憶される情報を説明する図である。
【図６】図５の公開秘密鍵ロジックに含まれる情報を説明する図である。
【図７】図４の端末SAMの機能的構成例を示すブロック図である。
【図８】図１の認定機関のハードウエアの構成例を示すブロック図である。
【図９】図８の記憶部に記憶される情報を説明する図である。
【図１０】図８の認定機関の機能的構成例を示すブロック図である。
【図１１】図１のサーバのハードウエアの構成例を示すブロック図である。
【図１２】図１１の記憶部に記憶される情報を説明する図である。
【図１３】図１１のサーバの機能的構成例を示すブロック図である。
【図１４】デジタル署名と暗号化を説明する図である。
【図１５】デジタル署名を説明する図である。
【図１６】認定機関が端末SAMを認定する処理を説明するフローチャートである。
【図１７】サーバが端末SAMを検証する処理を説明するフローチャートである。
【図１８】端末SAMがサーバからスクリプトＩＤを受信し、登録する処理を説明するフローチャートである。
【図１９】端末SAMがサーバからスクリプトをダウンロードする処理を説明するフローチャートである。
【図２０】端末SAMがサーバからスクリプトをダウンロードする処理を説明するフローチャートである。
【図２１】端末SAMで実行するスクリプトがダウンロードされていない場合の処理を説明するフローチャートである。
【図２２】端末SAMで実行するスクリプトがダウンロードされていない場合の処理を説明するフローチャートである。
【図２３】端末SAMで実行するスクリプトがダウンロードされていた場合の処理を説明するフローチャートである。
【図２４】スクリプト実行中に制御端末に対してアクセスを行なう場合の処理を説明するフローチャートである。
【図２５】スクリプト実行中にサーバに対してアクセスを行なう場合の処理を説明するフローチャートである。
【図２６】スクリプト実行中にサーバに対してアクセスを行なう場合の処理を説明するフローチャートである。
【図２７】スクリプト実行結果のログを格納する処理を説明するフローチャートである。
【図２８】端末SAMにおいて格納しておいたログを、サーバに送信する場合の処理を説明するフローチャートである。
【符号の説明】
【０２９０】
１  情報処理システム，  １１  端末SAMクライアント，  １４  サーバ，  ４２  端末SAM，  ４３  ＩＣカードリーダライタアンテナ，  １２３  サーバ証明書フォルダ，  １２４  端末SAM固有情報，  １２６  スクリプトフォルダ，  １２７  端末SAM共通情報，  １２８  ログフォルダ，  １３１  サーバＩＤ，  １３２  サーバ公開鍵，  １３３  URL，  １４１  端末SAM識別子，  １４２  端末SAM公開鍵の署名，  １４３  端末SAM公開鍵，  １４４  端末SAM秘密鍵，  １５１  サーバＩＤ，  １５２  スクリプトＩＤ，  １５３  スクリプト，  １６１  認定機関公開鍵，  １７１  ログ，  ２０２  主制御部，  ２０４  エンコード部，  ２０５  署名処理部，  ２０６  検証処理部，  ２０９  スクリプト実行部，  ３０３  認定機関情報，  ３０４  端末SAM証明書フォルダ，  ３２１  端末SAM識別子，  ３２２  端末SAM公開鍵，  ３５３  デコード部，  ３５４  署名処理部，  ４０４  サービス提供者固有情報，  ４０５  スクリプトフォルダ，  ４０６  端末SAM証明書フォルダ，  ４０７  サービス提供者共通情報，  ４４１  URL，  ４１２  サーバ公開鍵，  ４１３  サーバ秘密鍵，  ４２１  スクリプトＩＤ，  ４２２  スクリプト，  ４２３  プログラム，  ４３１  端末SAM識別子，  ４３２  端末SAM公開鍵，  ４４１  認定機関公開鍵，  ４５４  署名処理部，  ４５５  検証処理部，  ４５８  プログラム実行部
【図１】
2006033267.tif 000003
【図２】
2006033267.tif 000004
【図３】
2006033267.tif 000005
【図４】
2006033267.tif 000006
【図５】
2006033267.tif 000007
【図６】
2006033267.tif 000008
【図７】
2006033267.tif 000009
【図８】
2006033267.tif 000010
【図９】
2006033267.tif 000011
【図１０】
2006033267.tif 000012
【図１１】
2006033267.tif 000013
【図１２】
2006033267.tif 000014
【図１３】
2006033267.tif 000015
【図１４】
2006033267.tif 000016
【図１５】
2006033267.tif 000017
【図１６】
2006033267.tif 000018
【図１７】
2006033267.tif 000019
【図１８】
2006033267.tif 000020
【図１９】
2006033267.tif 000021
【図２０】
2006033267.tif 000022
【図２１】
2006033267.tif 000023
【図２２】
2006033267.tif 000024
【図２３】
2006033267.tif 000025
【図２４】
2006033267.tif 000026
【図２５】
2006033267.tif 000027
【図２６】
2006033267.tif 000028
【図２７】
2006033267.tif 000029
【図２８】
2006033267.tif 000030