(57)【要約】      （修正有）【課題】複数のアプリごとのデータの送受信を高い秘匿性で実現すること。【解決手段】アプリ格納部２０３の各メモリバンクは、ＩＤ格納部、サービス固有鍵格納部、サービスプログラム格納部、サービスデータ格納部を含む。暗号処理部２０１は、サービス固有の公開鍵を用いてサービス提供装置との間に暗号通信路を構築し、共有した共通鍵Ｒｈ、Ｒｃを用いて、サービスデータを暗号化して送受信する。制御部２０２は、サービス提供装置から受信したサービスＩＤに基づきアプリ格納部２０３を検索し、サービスＩＤを格納したＩＤ格納部を含むメモリバンクがあれば、そのメモリバンクのサービス固有鍵格納部に格納されている公開鍵を取り出して暗号処理部２０１に提供し、暗号処理部２０１で鍵交換処理を実行してサービス提供装置との間に暗号通信路を構築すると、対応するメモリバンクのサービスプログラム格納部からアプリを受け取って起動する。【選択図】図６
2010061244.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスの中から第１のサービスを識別する第１の識別情報と、前記第１のサービスを提供する第１のサービス提供装置との間で前記第１のサービスに固有の第１のサービスデータを送受信して前記第１のサービスを実現する第１のアプリケーションプログラムと、前記第１のサービスに固有の第１の暗号鍵と、前記第１のサービスデータをグループ化し、複数の記憶領域の中から選択した第１の記憶領域に記憶する記憶部と、
前記第１の暗号鍵を用いて前記第１のサービス提供装置との間に前記第１のサービスに固有の第１の暗号通信路を構築するとともに、前記第１の暗号通信路を介して前記第１のサービスデータを送受信するため、前記第１のサービスデータに対して暗号処理を実行する暗号処理部と、
前記第１のサービス提供装置から前記第１のアプリケーションプログラムの起動が要求されると、前記要求のため前記第１のサービス提供装置から送信された前記第１の識別情報に基づき、前記複数の記憶領域の中から第１の記憶領域を特定し、前記第１の記憶領域に記憶されている第１の暗号鍵で前記第１の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第１の暗号通信路が構築されると前記第１のアプリケーションプログラムを起動し、前記第１の記憶領域に記憶される第１のサービスデータに対する前記第１のアプリケーションプログラムのアクセスを許可するように制御する制御部と、
を備えることを特徴とする記憶装置。
【請求項２】
前記複数のサービスのなかには、前記第１の識別情報と、前記第１のアプリケーションプログラムと、前記第１の暗号鍵を含む第１のサービス情報を前記記憶装置に送信する第２のサービスが含まれており、
前記記憶部は、前記第２のサービスを提供する第２のサービス提供装置から前記第１のサービス情報を受信する第２のアプリケーションプログラムと、前記第２のサービスに固有の第２の暗号鍵をグループ化し、複数の記憶領域のうちで、あらかじめ規定された第２の記憶領域に記憶し、  
前記暗号処理部は、前記第２の暗号鍵を用いて前記第２のサービス提供装置との間に前記第２のサービスに固有の第２の暗号通信路を構築するとともに、前記第２の暗号通信路を介して前記第１のサービス情報を送受信するため、前記第１のサービス情報に対して暗号処理を実行し、
前記制御部は、前記第２のサービス提供装置から前記第２のアプリケーションプログラムの起動が要求されると、前記複数の記憶領域の中から第２の記憶領域を特定し、前記第２の記憶領域に記憶されている第２の暗号鍵で第２の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第２の暗号通信路が構築されると前記第２のアプリケーションプログラムを起動して前記第２のサービス提供装置から前記第１のサービス情報を受信し、前記第１の記憶領域に前記第１のサービス情報を記憶するように前記記憶部を制御する、
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
複数のサービスの中から第１のサービスを識別する第１の識別情報と、前記第１のサービスを提供する第１のサービス提供装置との間で前記第１のサービスに固有の第１のサービスデータを送受信して前記第１のサービスを実現する第１のアプリケーションプログラムと、前記第１のサービスに固有の第１の暗号鍵と前記第１のサービスデータをグループ化し、複数の記憶領域の中から選択した第１の記憶領域に記憶する第１のステップと、
前記第１の暗号鍵を用いて前記第１のサービス提供装置との間に前記第１のサービスに固有の第１の暗号通信路を構築するとともに、前記第１の暗号通信路を介して前記第１のサービスデータを送受信するため、前記第１のサービスデータに対して暗号処理を実行する第２のステップと、
前記第１のサービス提供装置から前記第１のアプリケーションプログラムの起動が要求されると、前記要求のため前記第１のサービス提供装置から送信された前記第１の識別情報に基づき、前記複数の記憶領域の中から第１の記憶領域を特定し、前記第１の記憶領域に記憶されている第１の暗号鍵で前記第１の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第１の暗号通信路が構築されると前記第１のアプリケーションプログラムを起動し、前記第１の記憶領域に記憶される第１のサービスデータに対する前記第１のアプリケーションプログラムのアクセスを許可するように制御する第３のステップと、
を含むことを特徴とする制御方法。
【請求項４】
前記複数のサービスのなかには、前記第１の識別情報と、前記第１のアプリケーションプログラムと、前記第１の暗号鍵を含む第１のサービス情報を前記記憶装置に送信する第２のサービスが含まれており、
前記第１のステップは、前記第２のサービスを提供する第２のサービス提供装置から前記第１のサービス情報を受信する第２のアプリケーションプログラムと、前記第２のサービスに固有の第２の暗号鍵をグループ化し、複数の記憶領域のうちで、あらかじめ規定された第２の記憶領域に記憶し、  
前記第２のステップは、前記第２の暗号鍵を用いて前記第２のサービス提供装置との間に前記第２のサービスに固有の第２の暗号通信路を構築するとともに、前記第２の暗号通信路を介して前記第１のサービス情報を送受信するため、前記第１のサービス情報に対して暗号処理を実行し、
前記第３のステップは、前記第２のサービス提供装置から前記第２のアプリケーションプログラムの起動が要求されると、前記複数の記憶領域の中から第２の記憶領域を特定し、前記第２の記憶領域に記憶されている第２の暗号鍵で第２の暗号通信路を構築するように前記第２のステップを制御するとともに、前記第２の暗号通信路が構築されると前記第２のアプリケーションプログラムを起動して前記第２のサービス提供装置から前記第１のサービス情報を受信し、前記第１の記憶領域に前記第１のサービス情報を記憶するように前記第１のステップを制御する、
ことを特徴とする請求項３に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定のサービスを実現するアプリケーションプログラム（以下、アプリと言う）、そのアプリ向けデータを記憶する装置とそのアプリを制御する装置との間で送受信されるデータの保護技術に関する。
【背景技術】
【０００２】
近年、高いセキュリティを備えたＩＣカード（以下、アプリ記憶装置とも言う）が普及してきている。このようなＩＣカードのなかには、プリペイド機能や入退出管理機能など複数のアプリに対応するものもある。ＩＣカードは、機能（以下、サービスとも言う）を実現するアプリごとに付与されている証明書を検証し、その正当性が確認されたアプリのみ格納を許可することで、所望のサービスを実現するアプリをセキュアに追加することができる。（例えば、特許文献１）
【特許文献１】特開2004−334542号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＩＣカードに格納されるアプリのなかには、例えば、プリペイド機能における入金情報の更新など、サービスを提供する装置（以下、サービス提供装置とも言う）との間でアプリの制御プロトコルなどサービスに固有のデータ（以下、サービスデータとも言う）を送受信し、特定のサービスを実現するものがある。このようなサービスデータは高い秘匿性を必要とされため、ひとつのICカードに複数のアプリを格納する場合、アプリ格納時にその正当性を確認するだけでなく、ひとつのアプリが送受信するサービスデータを、他のアプリから秘匿し、保護できることが好ましい。
【０００４】
本発明はこのような状況に鑑みてなされたものであり、複数のアプリごとのサービスデータの送受信を高い秘匿性で実現できる制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明のある態様は、記憶装置である。この記憶装置は、複数のサービスの中から第１のサービスを識別する第１の識別情報と、前記第１のサービスを提供する第１のサービス提供装置との間で前記第１のサービスに固有の第１のサービスデータを送受信して前記第１のサービスを実現する第１のアプリケーションプログラムと、前記第１のサービスに固有の第１の暗号鍵と、前記第１のサービスデータをグループ化し、複数の記憶領域の中から選択した第１の記憶領域に記憶する記憶部と、前記第１の暗号鍵を用いて前記第１のサービス提供装置との間に前記第１のサービスに固有の第１の暗号通信路を構築するとともに、前記第１の暗号通信路を介して前記第１のサービスデータを送受信するため、前記第１のサービスデータに対して暗号処理を実行する暗号処理部と、前記第１のサービス提供装置から前記第１のアプリケーションプログラムの起動が要求されると、前記要求のため前記第１のサービス提供装置から送信された前記第１の識別情報に基づき、前記複数の記憶領域の中から第１の記憶領域を特定し、前記第１の記憶領域に記憶されている第１の暗号鍵で前記第１の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第１の暗号通信路が構築されると前記第１のアプリケーションプログラムを起動し、前記第１の記憶領域に記憶される第１のサービスデータに対する前記第１のアプリケーションプログラムのアクセスを許可するように制御する制御部と、を備えることをその要旨とする。
【０００６】
また、前記複数のサービスのなかには、前記第１の識別情報と、前記第１のアプリケーションプログラムと、前記第１の暗号鍵を含む第１のサービス情報を前記記憶装置に送信する第２のサービスが含まれており、前記記憶部は、前記第２のサービスを提供する第２のサービス提供装置から前記第１のサービス情報を受信する第２のアプリケーションプログラムと、前記第２のサービスに固有の第２の暗号鍵をグループ化し、複数の記憶領域のうちで、あらかじめ規定された第２の記憶領域に記憶し、前記暗号処理部は、前記第２の暗号鍵を用いて前記第２のサービス提供装置との間に前記第２のサービスに固有の第２の暗号通信路を構築するとともに、前記第２の暗号通信路を介して前記第１のサービス情報を送受信するため、前記第１のサービス情報に対して暗号処理を実行し、前記制御部は、前記第２のサービス提供装置から前記第２のアプリケーションプログラムの起動が要求されると、前記複数の記憶領域の中から第２の記憶領域を特定し、前記第２の記憶領域に記憶されている第２の暗号鍵で第２の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第２の暗号通信路が構築されると前記第２のアプリケーションプログラムを起動して前記第２のサービス提供装置から前記第１のサービス情報を受信し、前記第１の記憶領域に前記第１のサービス情報を記憶するように前記記憶部を制御することが望ましい。
【０００７】
本発明の別の態様は、制御方法である。この制御方法は、複数のサービスの中から第１のサービスを識別する第１の識別情報と、前記第１のサービスを提供する第１のサービス提供装置との間で前記第１のサービスに固有の第１のサービスデータを送受信して前記第１のサービスを実現する第１のアプリケーションプログラムと、前記第１のサービスに固有の第１の暗号鍵と前記第１のサービスデータをグループ化し、複数の記憶領域の中から選択した第１の記憶領域に記憶する第１のステップと、前記第１の暗号鍵を用いて前記第１のサービス提供装置との間に前記第１のサービスに固有の第１の暗号通信路を構築するとともに、前記第１の暗号通信路を介して前記第１のサービスデータを送受信するため、前記第１のサービスデータに対して暗号処理を実行する第２のステップと、前記第１のサービス提供装置から前記第１のアプリケーションプログラムの起動が要求されると、前記要求のため前記第１のサービス提供装置から送信された前記第１の識別情報に基づき、前記複数の記憶領域の中から第１の記憶領域を特定し、前記第１の記憶領域に記憶されている第１の暗号鍵で前記第１の暗号通信路を構築するように前記暗号処理部を制御するとともに、前記第１の暗号通信路が構築されると前記第１のアプリケーションプログラムを起動し、前記第１の記憶領域に記憶される第１のサービスデータに対する前記第１のアプリケーションプログラムのアクセスを許可するように制御する第３のステップと、を含むことをその要旨とする。
【０００８】
また、前記複数のサービスのなかには、前記第１の識別情報と、前記第１のアプリケーションプログラムと、前記第１の暗号鍵を含む第１のサービス情報を前記記憶装置に送信する第２のサービスが含まれており、前記第１のステップは、前記第２のサービスを提供する第２のサービス提供装置から前記第１のサービス情報を受信する第２のアプリケーションプログラムと、前記第２のサービスに固有の第２の暗号鍵をグループ化し、複数の記憶領域のうちで、あらかじめ規定された第２の記憶領域に記憶し、前記第２のステップは、前記第２の暗号鍵を用いて前記第２のサービス提供装置との間に前記第２のサービスに固有の第２の暗号通信路を構築するとともに、前記第２の暗号通信路を介して前記第１のサービス情報を送受信するため、前記第１のサービス情報に対して暗号処理を実行し、前記第３のステップは、前記第２のサービス提供装置から前記第２のアプリケーションプログラムの起動が要求されると、前記複数の記憶領域の中から第２の記憶領域を特定し、前記第２の記憶領域に記憶されている第２の暗号鍵で第２の暗号通信路を構築するように前記第２のステップを制御するとともに、前記第２の暗号通信路が構築されると前記第２のアプリケーションプログラムを起動して前記第２のサービス提供装置から前記第１のサービス情報を受信し、前記第１の記憶領域に前記第１のサービス情報を記憶するように前記第１のステップを制御する、ことが望ましい。
【発明の効果】
【０００９】
本発明によれば、複数のアプリごとのデータの送受信を、高い秘匿性で実現できる。
【発明を実施するための最良の形態】
【００１０】
本発明を具体的に説明する前に概要について述べる。本発明の実施の形態は、アプリと連携して特定のサービスを提供するため、そのアプリを制御するサービス提供装置、およびサービス提供装置と連携して特定のサービスを実現するアプリや特定のサービスに固有のサービスデータを格納するアプリ記憶装置を有する情報システムに関する。
【００１１】
アプリ記憶装置に格納されるアプリは、サービス提供装置と所定のサービスデータを送受信することで、特定のサービスを実現する。アプリ記憶装置は、複数のサービスに対応したアプリとサービスデータを格納でき、また、ひとつのサービスに対応するサービス提供装置との間で送受信される所定のサービスデータには、利用者に固有の情報や金銭情報が含まれることもある。このため、所定のデータの送受信に関与しない第三者のみならず、複数のアプリ間においても高い秘匿性が必要とされる。そこで、本発明の実施の形態におけるアプリ記憶装置およびサービス提供装置は次の処理を実行する。
【００１２】
サービスには、これらを識別するためのサービスＩＤが付与されるとともに、サービス固有の公開暗号方式の公開鍵と、それに対応するサービス固有の秘密鍵が関連付けられる。サービス提供装置は、提供するサービス固有の秘密鍵を記憶する。アプリ記憶装置には記憶装置固有の公開鍵と秘密鍵が関連付けられる。また、アプリ記憶装置は、格納している対応アプリが実現するサービスの、サービスＩＤとサービス固有の公開鍵を記憶する。サービス提供装置は、提供するサービスのサービスＩＤをアプリ記憶装置に送信し、サービスＩＤを受信したアプリ記憶装置は、サービスＩＤに基づき、対応するサービス固有の公開鍵とアプリを特定する。そして、特定されたサービス固有公開鍵と記憶装置固有の公開鍵および秘密鍵とを用いて、サービス提供装置との間で公開暗号方式による鍵交換を実行し、サービス提供装置との間で共通鍵を共有する。この共通鍵で暗号通信路が確立されると、アプリ記憶装置は対応アプリを起動する。サービス提供装置と対応アプリは、特定のサービスを実現するために、先に確立した暗号通信路を介して所定のサービスデータを送受信する。対応アプリは、受信したサービスデータの記憶、記憶されているサービスデータの送信、あるいは、受信したサービスデータに基づく記憶されているサービスデータの変更等を行う。
【００１３】
このような処理により、サービス提供装置と対応アプリとの間で共通鍵を用いた暗号通信を行うことが可能となり、送受信されるデータの秘匿性を向上させることができる。
【００１４】
図１は、本発明の実施の形態における情報システム１の構成を示す概念図である。情報システム１は、サービス提供装置１０、アプリ記憶装置２０およびサービス管理サーバ装置３０を含む。
【００１５】
サービス提供装置１０は、例えば、改札機であり、アプリ記憶装置２０と通信を行ってサービスデータの交換を行い、乗車区間の判定やアプリ記憶装置２０に記憶されている電子マネーの残金の更新をする。また、必要に応じてサービス管理サーバ装置３０と通信して、内部の蓄積されたデータ（例えば、アプリ記憶装置２０との通信履歴や課金データなど）をサービス管理サーバ装置３０にアップロードしたりや、不正なアプリ記憶装置２０を排除するためのリボークリストをダウンロードしたりする。
【００１６】
アプリ記憶装置２０は、例えば、ＩＣカードであり、サービス提供装置１０と連携し、乗車区間を確認するデータや電子マネーの残金などのサービスデータと、サービスデータを更新するアプリとを格納する。
【００１７】
サービス管理サーバ装置３０は、例えば、改札機を介して利用者がプリペイドした電子マネーを管理する課金サーバである。
【００１８】
図２はアプリ記憶装置２０で実行される通信プロトコルを、階層構造で示す通信モデルの概念図である。通信相手はサービス提供装置１０である。
【００１９】
以下においては、説明の便宜上、ひとつのサービス提供装置１０がひとつのアプリを制御して、ひとつのサービスを実現するものとし、アプリａ〜ｃに対応するサービス提供装置を、それぞれサービス提供装置１０ａ〜１０ｃとして説明を行う。
【００２０】
通信モデルの最下層は物理層であり、伝送媒体上の物理的コネクションを確立するためのプロトコルなどを実行する。例えば、伝送方式として無線LAN(Local Area Network)の規格であるIEEE 802.11gを適用する場合は、OFDM(Orthogonal Frequency Division Multiplexing)を実行する。
【００２１】
物理層の上位層はデータリンク層であり、伝送媒体へのアクセス制限行うためのプロトコルなどを実行する。上述のIEEE 802.11gを適用する場合は、CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)を実行する。
【００２２】
以上の説明では、物理層とデータリンク層に無線LANを適用するとしたが、これに限らず有線LANの規格であるIEEE 802.3や、それ以外の伝送媒体、例えば人体を伝送媒体とする伝送方式を適用してもよい。
【００２３】
データリンク層の上位層では、セキュアプロトコルを実行する。すなわち、サービス提供装置１０が生成した共通鍵Ｒｈとアプリ記憶装置２０が生成した共通鍵Ｒｃを所定の鍵交換処理を実行することで交換し、サービス提供装置１０と対応アプリとの間で共通鍵Ｒｈ、Ｒｃを共有する。鍵交換処理については後述する。
【００２４】
セキュアプロトコルが実行される階層より上位層では、サービスごとに専用の暗号通信路が確立される。特定のサービスを実現するサービス提供装置１０と対応アプリは、この暗号通信路を介して、アプリ制御プロトコルを実行する。
【００２５】
以下では、説明の便宜上、サービスｉに対応したサービス提供装置１０を、サービス提供装置１０ｉとし、サービスｉに対応したサービスデータを、サービスデータｉと記す。
【００２６】
図２においては、サービスａを提供するサービス提供装置１０ａと対応するアプリａは、サービ提供装置１０ａとの間でサービスデータａを送受信するための制御プロトコルを実行し、サービスデータａの管理を行う。サービスデータａは、サービスａを提供するに当たって、ユーザサイドに保持されているデータで、サービスの種類によって多様である。
【００２７】
また、サービスｂを提供するサービス提供装置１０ｂと対応するアプリｂは、サービ提供装置１０ｂとの間でサービスデータｂを送受信するための制御プロトコルを実行し、サービスデータｂの管理を行う。さらに、サービスｃを提供するサービス提供装置１０ｃと対応するのは、アプリｃとサービスデータｃである。
【００２８】
このとき、サービス提供装置１０対応アプリは、共有している共通鍵Ｒｈ、Ｒｃを用いて、サービスデータを暗号化して送受信する。
【００２９】
ここで、図２のアプリ記憶装置２０のアプリａが、対応するサービス提供装置１０ａとの間でサービスデータを暗号化して送受信する場合について、具体的な説明を行う。なお、サービス提供装置１０ａは、共通鍵Ｒｈ「ａ」生成し、アプリ記憶装置２０は、共通鍵Ｒｃ「ａ」を生成し、セキュアプロトコルにより、相手方が生成した共通鍵をそれぞれが共有しているものとする。
【００３０】
サービス提供装置１０ａは、送信すべきサービスデータＤａｔａと共通鍵Ｒｃ「ａ」を連結し、自身の生成した共通鍵Ｒｈ「ａ」を認証子とする認証子付データＲｈ「ａ」｜｜Ｄａｔａを生成する。そして、認証子付データをアプリａの共通鍵Ｒｃ「ａ」で暗号化し、暗号化データＥ（Ｒｃ「ａ」、Ｒｈ「ａ」｜｜Ｄａｔａ）を生成し、アプリａに送信する。ここで、記号「｜｜」は、データの連結を示す。また、Ｅは暗号化関数を示し、Ｅ（Ｒｃ「ａ」、Ｒｈ「ａ」｜｜Ｄａｔａ）は、認証子付データＲｈ「ａ」｜｜Ｄａｔａを共通鍵Ｒｃ「ａ」で暗号化したことを示す。認証子付データの暗号化には、例えば、ＡＥＳ(Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ)などの共通鍵暗号方式を用いる。
【００３１】
アプリａは、受信した暗号化データＥ（Ｒｃ「ａ」、Ｒｈ「ａ」｜｜Ｄａｔａ）を、自身の共通鍵のＲｃ「ａ」で復号し、認証子付データＲｈ「ａ」｜｜Ｄａｔａを取り出す。アプリａは、認証子付データから認証子を取り出し、サービス提供装置１０ａの共通鍵Ｒｈ「ａ」と比較し、送信されてきたデータＤａｔａの正当性を確認する。
【００３２】
このように、相手方が生成した共通鍵を認証子として送信すべきデータに付加し、自身が生成した共通鍵で暗号化して送信することで、データの秘匿性を確保するとともに、データの正当性を確認することができる。
【００３３】
また、アプリ記憶装置２０は、サービスごとにサービス固有の公開鍵を使用してサービス提供装置１０との間で共通鍵を共有したときに、そのサービスに対応したアプリのみを起動する。そしてアプリが起動されなければ、そのサービを提供するためにアプリ記憶装置２０内に記憶されているサービススデータが、アクセスされることはない。これにより、アプリ記憶装置２０に複数のサービスに対応したアプリ及びサービスデータが格納された場合に、アプリ間のサービスデータの漏えいを防止することができる。
【００３４】
なお、上記において、ひとつのサービス提供装置１０がひとつのアプリを制御して、ひとつのサービスを実現するものとして説明したが、サービス提供装置１０が複数のアプリを制御するようにしてもよい。
【００３５】
また、上記の説明は、３つのサービス（アプリａ、アプリｂ、および、アプリｃ）に対応したアプリ記憶装置２０の例であるが、アプリ記憶装置２０におけるアプリの数や種類を制限するものではない。目的に応じて、１つ以上の任意のアプリを実装することができる。
【００３６】
まや、上記においてアプリ記憶装置２０に記憶されたアプリを起動し、そのアプリに対応したサービスデータを送受信して、サービスデータを更新する説明をしたが、サービス固有公開鍵の更新、さらにはアプリ自身の更新をしてもよい。すなわち、アプリ記録装置２０は、サービスＩＤによって特定したサービス固有公開鍵で構築した暗号通信路を介して、サービスＩＤよって特定したアプリを記憶するアプリ格納部のメモリバンク（詳細は後述する。）内に格納する全てデータを送受信することで、これらを更新することができる。
【００３７】
図３は、サービスＩＤとして「ｉ」が付与されたサービスと、そのサービスに割り当てられる公開鍵暗号方式の公開鍵ＫＰｓｖ「ｉ」およびそれに対応する秘密鍵Ｋｐｓｖ「ｉ」の対応関係を示す概念図である。図３に示すように、公開鍵ＫＰｓｖ「ｉ」はアプリ記憶装置２０が記憶し、対応する秘密鍵Ｋｐｓｖ「ｉ」はサービス提供サーバ装置１０が記憶する。なおアプリ記憶装置２０が記憶する公開鍵ＫＰｓｖ「ｉ」は、その正当性を確認するため、第三者機関である認証局の秘密鍵Ｋｐｒで電子署名を行う。電子署名としては、例えば、ＤＳＡ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｔｕｒｅ Ａｌｇｏｒｉｔｈｍ）を用いる。公開鍵ＫＰｓｖ「ｉ」を記憶するアプリ記憶装置２０は、その正当性を電子署名で検証するため、認証局の公開鍵ＫＰｒもあわせて記憶する。
【００３８】
図４は、サービス提供装置１０の構成を示す概念図である。サービス提供装置１０は、インターフェース部１００、暗号処理部１０１、制御部１０２、データ記憶部１０３および通信モジュール部１０４を含む。インターフェース部１００は、サービス管理サーバ装置３０とのデータの送受信を制御する。
【００３９】
暗号処理部１０１は、アプリ記憶装置２０とのセキュアプロトコルや暗号通信路を介した制御プロトコルの実行のため必要な暗号処理を行う。制御部１０２は、特定のサービスを実現するため、サービス提供装置１０全体を制御する。
【００４０】
データ記憶部１０３は、通信モジュール部１０４を介して送受信したサービスデータや通信履歴を、逐次格納しておく。格納されたデータは特定のタイミング（例えば、毎日午前8:00）に、サービス管理サーバ装置３０へ転送する。通信モジュール部１０４は、アプリ記憶装置２０とのデータの送受信を行う。
【００４１】
図５は、暗号処理部１０１の構成を示す概念図である。暗号処理部１０１は、格納部１０１０、鍵交換処理部１０１１、データ処理部１０１２、乱数生成部１０１３および証明書検証部１０１４を含む。
【００４２】
格納部１０１０は、認証局が電子署名した証明書を検証するための認証局公開鍵ＫＰｒを格納する認証局公開鍵格納部１０１００、サービス提供装置１０で実現するサービス「ｉ」固有の秘密鍵Ｋｐｓｖ「ｉ」を格納するサービス固有鍵格納部１０１０１を含む。
【００４３】
鍵交換処理部１０１１は、第１暗号部１０１１０、第２暗号部１０１１１および第１復号部１０１１２を含み、共通鍵暗号方式と公開暗号方式を組み合わせた鍵交換処理を実行する。鍵交換のための公開暗号方式としては、例えば、ＲＳＡを用いる。また、鍵交換のための共通鍵暗号方式としては、例えば、ＡＥＳを用いる。
【００４４】
第１暗号部１０１１０は、証明書検証部１０１４から受け取ったアプリ記憶装置２０の固有の公開鍵ＫＰｃで、乱数生成部１０１３から受け取った第２共通鍵Ｒｈを暗号化し、第２暗号化情報Ｅｐ（ＫＰｃ、Ｒｈ）を生成する。そして、生成した第２暗号化情報を第２暗号部１０１１１に出力する。ここで、Ｅｐは暗号化関数がＲＳＡに基づくことを示す。
【００４５】
第２暗号部１０１１１は、乱数生成部１０１３から受け取った第２共通鍵Ｒｈで、第２復号部から受け取った第１共通鍵Ｒｃを暗号化し、第３暗号化情報Ｅｓ（Ｒｈ、Ｒｃ）を生成する。ここで、Ｅｓは共通鍵暗号化関数を示し、具体的には、ＡＥＳに基づくことを示す。
【００４６】
また、第２暗号部１０１１１は、第１暗号部１０１１０から第２暗号化情報を受け取り、第３暗号化情報と連結し、第２チャレンジ情報Ｅｐ（ＫＰｃ、Ｒｈ）｜｜Ｅｓ（Ｒｈ、Ｒｃ）を生成する。
【００４７】
第１復号部１０１１２は、第１チャレンジ情報から第１暗号化情報を取り出し、サービス固有鍵格納部１０１０１から取り出したサービス「ｉ」固有の秘密鍵Ｋｐｓｖ「ｉ」で復号し、第１共通鍵Ｒｃを取り出す。そして、取り出した第１共通鍵Ｒｃを第２暗号部１０１１１とデータ処理部１０１２に出力する。
【００４８】
データ処理部１０１２は、データ暗号部１０１２０およびデータ復号部１０１２１を含み、共通鍵暗号方式に基づく暗号通信に必要なデータ処理を実行する。データ処理のための共通鍵暗号方式として、例えば、ＡＥＳを用いる。
【００４９】
データ暗号部１０１２０は、送信すべき第２データＤａｔａと乱数生成部１０１３から受け取った第２共通鍵Ｒｈを連結し、第２共通鍵Ｒｈを第２認証子とする第２認証子付データＲｈ｜｜Ｄａｔａを生成する。そして、第１復号部１０１１２から受け取った第１共通鍵Ｒｃで第２認証子付データを暗号化し、第２暗号化データＥｓ（Ｒｃ、Ｒｈ｜｜Ｄａｔａ）を生成する。
【００５０】
データ復号部１０１２１は、乱数生成部１０１３から受け取った第１共通鍵Ｒｈで、第１暗号化データを復号し、第１認証子付データＲｃ｜｜Ｄａｔａを取り出す。そして、第１認証子付データから第１認証子Ｒｃと第１データＤａｔａとを分離するとともに、第１認証子Ｒｃと第１復号部１０１１２から受け取った第１共通鍵Ｒｃとを比較し、第１データＤａｔａの正当性を確認する。
【００５１】
乱数生成部１０１３は、所定の乱数アルゴリズムにより乱数を発生し、発生した乱数から第２共通鍵Ｒｃを生成し、鍵交換処理部１０１１およびデータ処理部１０１２に出力する。
【００５２】
証明書検証部１０１４は、認証局公開鍵ＫＰｒで、第１チャレンジ情報から取り出した記憶装置固有公開鍵証明書の正当性を確認する。正当性が確認できたら、記憶装置固有公開鍵証明書よりアプリ記憶装置２０の固有の公開鍵ＫＰｃ取り出して、鍵交換処理部１０１１に出力する。
【００５３】
図６は、アプリ記憶装置２０の構成を示す概念図である。アプリ記憶装置２０は、通信モジュール部２００、暗号処理部２０１、制御部２０２およびアプリ格納部２０３を含む。通信モジュール部２００は、サービス提供装置１０の通信モジュール部１０４との間でデータの送受信を行う。
【００５４】
暗号処理部２０１は、サービス提供装置１０とのセキュアプロトコルや暗号通信路を介した制御プロトコルの実行のため必要な暗号処理を行う。制御部２０２は、特定のサービスを実現するため、対応するアプリをアプリ格納部２０３から読み出して実行する。アプリ格納部２０３は、複数のアプリを格納する。
【００５５】
図７は、暗号処理部２０１の構成を示す概念図である。暗号処理部２０１は、格納部２０１０、鍵交換処理部２０１１、データ処理部２０１２および乱数生成部２０１３を含む。
【００５６】
格納部２０１０は、アプリ記憶装置２０の固有の公開鍵ＫＰｃを含む証明書本体に対して、認証局が電子署名した証明書を格納する記憶装置固有公開鍵証明書格納部２０１００、公開鍵ＫＰｃと対となる秘密鍵Ｋｐｃを格納する記憶装置固有鍵格納部２０１０１を含む。
【００５７】
鍵交換処理部２０１１は、第１復号部２０１１０、第２復号部２０１１１および第１暗号部２０１１２を含む。
【００５８】
第１復号部２０１１０は、第２チャレンジ情報から第２暗号化情報を取り出し、記憶装置固有鍵格納部２０１０１から取り出したアプリ記憶装置２０の固有の秘密鍵Ｋｐｃで、第２暗号化情報を復号し、第２共通鍵Ｒｈを取り出す。そして、取り出した第２共通鍵Ｒｈを第２復号部２０１１１とデータ処理部２０１２に出力する。
【００５９】
第２復号部２０１１１は、第１復号部から受け取った第２共通鍵Ｒｈで、第２チャレンジ情報から取り出した第３暗号化情報を復号し、第１共通鍵Ｒｃを取り出す。そして、乱数生成部２０１３から受け取った第１共通鍵Ｒｃと比較し、第１復号部から受け取った第２共通鍵Ｒｈの正当性を確認する。これにより、第２チャレンジ情報の送信元が所定のサービスに対応したサービス提供装置１０であることの認証を行う。
【００６０】
第１暗号部２０１１２は、記憶装置固有公開鍵証明書格納部２０１００から証明書Ｃ（ｋｒ、ＫＰｃ）を取り出す。ここで、Ｃは電子署名関数であり、Ｃ（Ｋｒ、ＫＰｃ）は認証局の秘密鍵Ｋｒで、アプリ記憶装置２０の固有の公開鍵ＫＰｃを含む証明書本体が電子署名されていることを示す。電子署名としては、例えば、ＤＳＡを用いる。
【００６１】
第１暗号部２０１１２は、アプリ格納部２０３からサービス「ｉ」固有の公開鍵ＫＰｓｖ「ｉ」の提供を受け、乱数生成部２０１３から受け取った第１共通鍵Ｒｃを暗号化し、第１暗号情報Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）を生成する。そして、証明書Ｃ（ｋｒ、ＫＰｃ）と第１暗号化情報を連結し、第１チャレンジ情報Ｃ（ｋｒ、ＫＰｃ）｜｜Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）を生成する。
【００６２】
データ処理部２０１２は、データ暗号部２０１２０およびデータ復号部２０１２１を含み、共通鍵暗号方式に基づく暗号通信に必要な、データ処理を実行する。
【００６３】
データ暗号部２０１２０は、送信すべき第１データＤａｔａと乱数生成部２０１３から受け取った第１共通鍵Ｒｃを連結し、第１共通鍵Ｒｃを第１認証子とする第１認証子付データＲｃ｜｜Ｄａｔａを生成する。そして、第１復号部２０１１０から受け取った第２共通鍵Ｒｈで第１認証子付データを暗号化し、第１暗号化データＥｓ（Ｒｈ、Ｒｃ｜｜Ｄａｔａ）を生成する。
【００６４】
データ復号部２０１２１は、乱数生成部２０１３から受け取った第１共通鍵Ｒｃで、第２暗号化データを復号し、第２認証子付データＲｈ｜｜Ｄａｔａを取り出す。そして、第２認証子付データから第２認証子Ｒｈと第２データＤａｔａとを分離するとともに、第２認証子Ｒｈと第１復号部２０１１０から受け取った第２共通鍵Ｒｈとを比較し、第２データＤａｔａの正当性を確認する。
【００６５】
乱数生成部２０１３は、所定の乱数アルゴリズムにより乱数を発生し、発生した乱数から第１共通鍵Ｒｃを生成し、鍵交換処理部２０１１およびデータ処理部２０１２に出力する。
【００６６】
図８は、図２に示す３つのアプリ（アプリａ、アプリｂおよびアプリｃ）を搭載可能なアプリアプリ格納部２０３の構成を示す概念図である。アプリ格納部２０３は、搭載可能なアプリの数のメモリバンクを含む。図８では、搭載可能なアプリ数を３としており、３つのメモリバンク２０３０、２０３１、２０３２を含む。
【００６７】
アプリ格納部２０３は、ひとつのメモリバンクにひとつのアプリを割り当てる。ここでは、メモリバンク２０３０にアプリａが、メモリバンク２０３１にアプリｂが、メモリバンク２０３２にアプリｃが割り当てられているものとする。そしてアプリは、自身が割り当てられたメモリバンク内にサービス提供装置１０との間で送受信するサービスデータを記憶する。さらに、アプリ格納部２０３は、あるメモリバンクに割り当てられたアプリは、他のメモリバンクにアクセスできないように制御する。これにより、アプリ間のサービスデータの漏えいを防止することができる。
【００６８】
メモリバンク２０３０は、アプリａが対応するサービス「ａ」のサービスＩＤを格納するＩＤ格納部２０３００、サービス「ａ」固有の公開鍵ＫＰｓｖ「ａ」を格納するサービス固有鍵格納部２０３０１、アプリａそのものを格納するサービスプログラム格納部２０３０２、課金データなどのサービスを提供するため、データ提供装置１０との間で送受信するサービスデータａを格納するサービスデータ格納部２０３０３を含む。同様に、メモリバンク２０３１は、ＩＤ格納部２０３１０、サービス固有鍵格納部２０３１１、サービスプログラム格納部２０３１２、サービスデータ格納部２０３１３を含み、メモリバンク２０３２は、ＩＤ格納部２０３２０、サービス固有鍵格納部２０３２１、サービスプログラム格納部２０３２２、サービスデータ格納部２０３２３を含む。
【００６９】
次に、サービスｉに対応するアプリｉの起動方法について簡単に説明する。制御部２０２は、サービス提供装置１０ｉから通信モジュール部２００を介して、サービスＩＤ「ｉ」を受信すると、アプリ格納２０３を検索する。具体的には、各メモリバンクのＩＤ格納部を確認し、受信したサービスＩＤ「ｉ」が格納されていたメモリバンクが存在するか否かを確認する。サービスＩＤ「ｉ」を格納したメモリバンクが存在する場合、メモリバンクのサービス固有鍵格納部に格納されているサービス「ｉ」固有の公開鍵ＫＰｓｖ「ｉ」を、暗号処理部２０１に提供する。存在しない場合、サービスＩＤを送信してきたサービス提供装置１０ｉが提供するサービスｉに対応できないので処理を終了する。
【００７０】
制御部２０２は、暗号処理部２０１で鍵交換処理を実行し、サービス提供装置１０ｉとの間に暗号通信路を構築すると、対応するメモリバンクのサービスプログラム格納部からアプリｉを受け取って起動する。サービス提供装置１０ｉとの間に暗号通信路を構築できない場合、制御部２０２は、処理を終了する。
【００７１】
制御部２０２で起動されたアプリｉは、サービスｉを実現するために、通信モジュール２００および暗号処理部２０１を介して、サービス提供装置１０ｉとの間でサービスデータｉを暗号化して送受信する。このとき、制御部２０２は、対応するメモリバンクのサービスデータ格納部からの読み出したサービスデータｉをサービス提供装置１０ｉに送信し、サービス提供装置１０ｉから受信したサービスデータｉを対応するメモリバンクのサービスデータ格納部に記憶する。
【００７２】
以上の構成による情報システム１の動作を説明する。図９、１０は、鍵交換処理の手順を示すフローチャートである。
【００７３】
サービス提供装置１０の制御部１０２は、実現しようとするサービスのサービスＩＤ「ｉ」をアプリ記憶装置２０に送信する（S100）。サービスＩＤ「ｉ」を受信した（S101）アプリ記憶装置２０の制御部２０２は、サービスＩＤ「ｉ」に基づきアプリ格納部２０３のメモリバンクを検索し、サービスＩＤ「ｉ」を格納したＩＤ格納部を含むメモリバンクが存在するか否かを確認する(S102)。サービスＩＤ「ｉ」を格納したＩＤ格納部を含むメモリバンクが存在しなければ(S102のN)、制御部１０２はサービスに対応できないので、処理を異常終了する。存在すれば(S102のY)、そのメモリバンクのサービス固有鍵格納部に格納されているサービスＩＤ「ｉ」に対応するサービス固有の公開鍵ＫＰｓｖ「ｉ」を取り出し(S103)、暗号処理部２０１に出力するとともに、第１チャレンジ情報の生成を指示する。暗号処理部２０１は、第１共通鍵Ｒｃを生成し（S104）、アプリ記憶装置２０ごとに固有の記憶装置固有公開鍵証明書と、制御部２０２から受け取ったサービス固有の公開鍵ＫＰｓｖ「ｉ」を用いて、第１チャレンジ情報を生成し（S105）、制御部２０２に出力する。第１チャレンジ情報を受け取った制御部２０２は、第１チャレンジ情報をサービス提供装置１０に送信する（S106）。
【００７４】
第１チャレンジ情報を受け取ったサービス提供装置１０の制御部１０２は、第１チャレンジ情報を暗号処理部１０１に出力し、第２チャレンジ情報の生成を指示する（S107）。暗号処理部１０１は、第１チャレンジ情報から記憶装置固有公開鍵証明書を取り出し、認証局の公開鍵で証明書の検証をする（S108）。このとき、サービス管理サーバ装置３０から受け取ったリボケーションリストが、サービス提供装置１０のデータ格納部２０３に格納されていれば、その証明書がリボークされているか否かの確認も併せて行う。証明書が正当でない、あるいは、リボークされていれば（S108のN）、制御部１０２に検証エラーを通知し、鍵交換処理を異常終了する。証明書が正当で、かつ、リボークされていなければ（S108のY）、サービス固有秘密鍵で第１チャレンジ情報を復号し（S109）、第１共有鍵Ｒｃを取り出して共有する（S110）。次に、第２共通鍵Ｒｈを生成し（S111）、第２チャレンジ情報を生成し（S112）、制御部１０２に出力する。第２チャレンジ情報を受け取った制御部１０２は、第２チャレンジ情報をアプリ記憶装置２０に送信する（S113）。
【００７５】
第２チャレンジ情報を受け取ったアプリ記憶装置２０の制御部２０２は、第２チャレンジ情報を暗号処理部２０１に出力し、第１共通鍵の復号を指示する（S114）。第２チャレンジ情報を受け取った暗号処理部２０１は、記憶装置固有の秘密鍵で第２チャレンジ情報を復号し（S115）、第２共通鍵を取り出す。また、第２チャレンジ情報から第１共通鍵を抽出し（S116）と、自身が生成した第１共通鍵と比較し、取り出した第２共通鍵Ｒｈの正当性を検証する。比較した結果、両者が一致しなければ、取り出した第２共通鍵が正当でないと判断し（S117のN）、制御部２０２に検証エラーを通知し、鍵交換処理を異常終了する。両者が一致していれば、取り出した第２共通鍵が正当であると判断し（S117のY）、第２共通鍵Ｒｈを共有し（S118）、鍵交換処理を終了する。このような鍵交換処理により、サービス提供装置１０とアプリ記憶装置２０との間にサービスごとに専用の暗号通信路が構築される。
【００７６】
次に本発明の第１の変形例について説明する。本発明の第１の変形例もサービスごとに専用の暗号通信を行う情報システムに関する。これまでの説明では、サービスごとに割り当てられたサービス固有公開鍵とサービス固有秘密鍵を利用して、サービス提供装置１０とアプリ記憶装置２０との間で２つの共通鍵ＲｃとＲｈを共有した。本発明の第１の変形例では、サービス提供装置１０とアプリ記憶装置２０にサービス固有の共通鍵を割り当てることで、２つの共通鍵ＲｃとＲｈを共有する。このために、アプリで実現するサービス「ｉ」固有の共通鍵Ｋｓｖ「ｉ」を、サービス提供装置１０およびアプリ記憶装置２０の双方が格納する。このとき、第１チャレンジ情報は、Ｃ（ｋｒ、ＫＰｃ）｜｜Ｅｓ（Ｋｓｖ「ｉ」、Ｒｃ）、第１暗号化データは、Ｅｓ（Ｋｓｖ「ｉ」、Ｒｃ）となる。これにより、公開鍵暗号方式の演算する機会が少なくなるので、鍵交換処理全体の所要時間を短縮化できる。
【００７７】
本発明の第１の変形例に係る情報システム１の暗号処理部１０１は、図５に示した暗号処理部１０１と同様のタイプのため、同じ構成の部分については説明を省略する。
【００７８】
格納部１０１０は、認証局が電子署名した証明書を検証するための認証局公開鍵ＫＰｒを格納する認証局公開鍵格納部１０１００とサービス固有鍵格納部１０１０１を含む。サービス固有鍵格納部１０１０１は、サービス提供装置１０が提供するサービス「ｉ」固有の共通鍵Ｋｓｖ「ｉ」を格納する。
【００７９】
鍵交換処理部１０１１は、第１暗号部１０１１０、第２暗号部１０１１１および第１復号部１０１１２を含む。第１復号部１０１１２は、第１チャレンジ情報Ｃ（ｋｒ、ＫＰｃ）｜｜Ｅｓ（Ｋｓｖ「ｉ」、Ｒｃ）から第１暗号化情報Ｅｓ（Ｋｓｖ「ｉ」、Ｒｃ）を取り出し、サービス固有鍵格納部１０１０１から取り出したサービス「ｉ」固有の共通鍵Ｋｓｖ「ｉ」で復号し、第１共通鍵Ｒｃを取り出す。そして、取り出した第１共通鍵Ｒｃを第２暗号部１０１１１とデータ処理部１０１２に出力する。
【００８０】
第２暗号部１０１１１は、乱数生成部１０１３から受け取った第２共通鍵Ｒｈで、第１チャレンジ情報に含まれる第１共通鍵Ｒｃを暗号化し、第３暗号化情報Ｅｃ（Ｒｈ、Ｒｃ）を生成する。
【００８１】
データ処理部１０１２は、データ暗号部１０１２０を含み、共通鍵暗号方式に基づく暗号通信に必要な、データの暗号化処理を実行する。
【００８２】
本発明の第１の変形例に係る情報システム１の暗号処理部２０１の構成は、図７に示した暗号処理部２０１と同様のタイプのため、同じ構造の部分については説明を省略する。
第１暗号部２０１１２は、記憶装置固有公開鍵証明書格納部２０１００から証明書Ｃ（ｋｒ、ＫＰｃ）を取り出し、アプリ格納部２０３からサービス「ｉ」固有の共通鍵Ｋｓｖ「ｉ」の提供を受け、乱数生成部２０１３から受け取った第１共通鍵Ｒｃを暗号化し、第１暗号情報Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）を生成する。そして、証明書Ｃ（ｋｒ、ＫＰｃ）と第１暗号化情報を連結し、第１チャレンジ情報Ｃ（ｋｒ、ＫＰｃ）｜｜Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）を生成する。
【００８３】
本発明の第１の変形例に係る情報システム１のアプリ格納部２０３は、図８に示したアプリ格納部２０３と同様のタイプのため、同じ構造の部分については説明を省略する。３つのメモリバンク２０３０、２０３１、２０３２内のサービス固有鍵格納部２０３１０、２０３１１および２０３１２は、アプリで実現するサービス「ｉ」固有の公開鍵ＫＰｓｖ「ｉ」の代わりに。サービス固有の共通鍵Ｋｓｖ「ｉ」を格納する。
【００８４】
以上の構成による変形例に係る情報システムに係る鍵交換処理の手順は、情報システム１の鍵交換手順を示すフローチャートと同一となるため説明を省略する。上記説明以外に、サービス固有の公開鍵ＫＰｓｖ「ｉ」およびサービス固有の秘密鍵Ｋｐｓｖ「ｉ」を、共に、サービス固有の共通鍵Ｋｓｖ「ｉ」と読み代えればよい。
【００８５】
このように本発明の第１の変形例に係る情報システム１では、公開鍵暗号処理を共通鍵暗号に置き換え、第１共通鍵Ｒｃを、サービスごとに割り当てられた共通鍵で暗号化して送信するので、セキュリティ強度を確保しつつ鍵交換処理の所要時間を短縮化することができる。
【００８６】
次に本発明の第２の変形例について説明する。本発明の第２の変形例もサービスごとに専用の暗号通信を行う情報システムに関する。これまでの説明では、鍵交換処理の公開暗号方式としてＲＳＡを用いるとした。本発明の第２の変形例では、鍵交換処理の公開暗号方式としてＥＣＤＨ（Elliptic Curve Diffie-Hellman）を用いる。ＥＣＤＨは、ＲＳＡよりも短い鍵長で同程度のセキュリティ強度を実現できる。一般に、公開鍵暗号方式の演算時間は鍵長に依存するため、ＥＣＤＨを用いることで、鍵交換処理全体の所要時間を短縮化できる。
【００８７】
本発明の第２の変形例に係る情報システム１の暗号処理部１０１は、図５に示され暗号処理部１０１と同様のタイプのため、同じ構成の部分については説明を省略する。
【００８８】
鍵交換処理部１０１１は、第１暗号部１０１１０、第２暗号部１０１１１および第１復号部１０１１２を含み、共通鍵暗号方式と公開暗号方式を組み合わせた鍵交換処理を実行する。鍵交換のための公開暗号方式としては、ＥＣＤＨを用いる。
【００８９】
第１暗号部１０１１０は、楕円曲線上のベースポイントＧと、乱数生成部１０１３から受け取った第２乱数Ｒｈ’を楕円曲線上で掛け合わせ、第２暗号化情報Ｅｐ（ＫＰｃ、Ｒｈ）＝Ｒｈ’＊Ｇを生成する。また、第２証明書検証部１０１４から受け取ったアプリ記憶装置２０の固有の公開鍵ＫＰｃと、第２乱数Ｒｈ’を楕円曲線上で掛け合わせ、第２共通鍵Ｒｈ＝Ｒｈ’＊ＫＰｃを生成する。そして、生成した第２暗号化情報と第２共通鍵を第２暗号部１０１１１に出力する。ここで、Ｅｐは暗号化関数がＥＣＤＨに基づくことを示す。また、楕円曲線上の乗算を「＊」で示す。
【００９０】
第１復号部１０１１２は、第１チャレンジ情報から第１暗号化情報Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）＝Ｒｃ’＊Ｇを取り出し、サービス固有鍵格納部から取り出したサービス「ｉ」固有の秘密鍵Ｋｐｓｖ「ｉ」と楕円曲線上で掛け合わせ、第１共通鍵Ｒｃ＝Ｆ（Ｋｐｓｖ「ｉ」＊Ｒｃ’＊Ｇ）＝Ｆ（Ｒｃ’＊（Ｋｐｓｖ「ｉ」＊Ｇ））＝Ｆ（Ｒｃ’＊ＫＰｓｖ「ｉ」）を取り出す。ここで、Ｆは楕円上の２次元座標から、スカラー（１次元の値）を導出する導出関数である。そして、取り出した第１共通鍵Ｒｃを第２暗号部１０１１１とデータ処理部１０１２に出力する。ここで、サービス「ｉ」固有の秘密鍵Ｋｐｓｖ「ｉ」とサービス「ｉ」固有の公開鍵ＫＰｓｖ「ｉ」との間には、ＫＰｓｖ「ｉ」＝Ｋｐｓｖ「ｉ」＊Ｇの関係式があり、第１共通鍵Ｒｃの最後の式変形は、この関係式を用いている。
【００９１】
本発明の第２の変形例に係る情報システム１の暗号処理部２０１は、図７に示され暗号処理部２０１と同様のタイプのため、同じ構成の部分については説明を省略する。
【００９２】
第１復号部２０１１０は、第２チャレンジ情報から第２暗号化情報Ｅｐ（ＫＰｃ、Ｒｈ）＝Ｒｈ’＊Ｇを取り出し、記憶装置固有秘密鍵格納部２０１０１から取り出したアプリ記憶装置２０の固有の秘密鍵Ｋｐｃと楕円曲線上で掛け合わせ、第２共通鍵Ｒｈ＝Ｆ（Ｋｐｃ＊Ｒｃ’＊Ｇ）＝Ｆ（Ｒｃ’＊（Ｋｐｃ＊Ｇ））＝Ｆ（Ｒｃ’＊ＫＰｃ）を生成する。そして、生成した第２共通鍵Ｒｈを第２復号部２０１１１とデータ処理部２０１２に出力する。ここで、アプリ記憶装置２０の固有の秘密鍵Ｋｐｃとアプリ記憶装置２０の固有の公開鍵ＫＰｃとの間には、ＫＰｃ＝Ｋｐｃ＊Ｇの関係式があり、第２共通鍵Ｒｈの最後の式変形は、この関係式を用いている。
【００９３】
第２復号部２０１１１は、第１復号部から受け取った第２共通鍵Ｒｈで、第２チャレンジ情報から取り出した第３暗号化情報を復号し、第１共通鍵Ｒｃを取り出す。そして、第１暗号部２０１１２から受け取った第１共通鍵Ｒｃと比較し、第１復号部から受け取った第２共通鍵Ｒｈの正当性を確認する。これにより、第２チャレンジ情報の送信元であるサービス提装置１０の認証を行う。
【００９４】
第１暗号部２０１１２は、記憶装置固有公開鍵証明書格納部２０１００から証明書Ｃ（ｋｒ、ＫＰｃ）を取り出す。ここで、Ｃは電子署名関数であり、Ｃ（Ｋｒ、ＫＰｃ）は認証局の秘密鍵Ｋｒで、アプリ記憶装置２０の固有の公開鍵ＫＰｃを含む証明書本体が電子署名されていることを示す。電子署名としては、例えば、ＥＣＤＳＡ（Elliptic Curve ＤＳＡ）を用いる。
【００９５】
第１暗号部２０１１２は、楕円曲線上のベースポイントＧと、乱数生成部２０１３から受け取った第１乱数Ｒｃ’を楕円曲線上で掛け合わせ、第１暗号化情報Ｅｐ（ＫＰｓｖ「ｉ」、Ｒｃ）＝Ｒｃ’＊Ｇを生成する。また、アプリ格納部２０３からサービス「ｉ」固有の公開鍵ＫＰｓｖ「ｉ」を取り出し、第１乱数Ｒｃ’と楕円曲線上で掛け合わせ、第１共通鍵Ｒｃ＝Ｆ（Ｒｃ’＊ＫＰｓｖ「ｉ」）を生成する。そして、第１共通鍵を第２復号部２０１１１とデータ処理部２０１２に出力する。
【００９６】
データ処理部２０１２は、データ暗号部２０１２０およびデータ復号部２０１２１を含み、共通鍵暗号方式に基づく暗号通信に必要な、データ処理を実行する。
【００９７】
データ暗号部２０１２０は、送信すべき第１データＤａｔａと第１暗号部２０１１２から受け取った第１共通鍵Ｒｃを連結し、第１共通鍵Ｒｃを第１認証子とする第１認証子付データＲｃ｜｜Ｄａｔａを生成する。そして、第１復号部２０１１０から受け取った第２共通鍵Ｒｈで第１認証子付データを暗号化し、第１暗号化データＥｓ（Ｒｈ、Ｒｃ｜｜Ｄａｔａ）を生成する。
【００９８】
データ復号部２０１２１は、第１暗号部２０１１２から受け取った第１共通鍵Ｒｃで、第２暗号化データを復号し、第２認証子付データＲｈ｜｜Ｄａｔａを取り出す。そして、第２認証子付データから第２認証子Ｒｈと第２データＤａｔａとを分離するとともに、第２認証子Ｒｈと第１復号部から受け取った第２共通鍵Ｒｈとを比較し、第２データＤａｔａの正当性を確認する。
【００９９】
本発明の第２の変形例に係る情報システム１のアプリ格納部２０３は、図８に示したアプリ格納部２０３と同じため、説明を省略す
このように本発明の第２の変形例に係る情報システム１では、鍵交換処理の公開暗号方式としてＥＣＤＨを用いるので、セキュリティ強度を維持したまま鍵長を短くすることができ、鍵交換処理全体の所要時間を短縮化できる。
【０１００】
なお、本発明の第２の変形例に係る情報システム１では、導出関数Ｆはシステムに固有として説明しているが、２つのＥＣＤＨ処理のおける導出関数Ｆの少なくとも１つをサービスサービス固有の導出関数Ｆ「ｉ」を用いるようにしてもよい。この場合、サービス「ｉ」に対応したメモリバンク内にサービス固有の導出関数Ｆ「ｉ」を格納し、サービス固有の公開鍵ＫＰｓｖ「ｉ」と同様に暗号処理部１０１に提供するように構成すればよい。
【０１０１】
また、上述した全ての情報システム１では、データの送信および受信ごとに、認証子と暗号鍵を定めるものとした。すなわち、サービス提供装置１０からアプリ記憶装置２０へサービスデータを送信する場合は、第２共通鍵Ｒｈを認証子とし、第１共通鍵Ｒｃによって認証子付データを暗号化し、アプリ記憶装置２０からサービスデータを受信する場合は、第１共通鍵Ｒｃを認証子とし、第２共通鍵Ｒｈによって認証子付データを暗号化した。しかしなら、２つの共通鍵の利用方法をこれに限定するものではない。いずれの場合であっても、一方の共通鍵を認証子とし、認証子とデータを連結した認証子付データを、他方の共通鍵で暗号化することができる。
【０１０２】
次に本発明の第３の変形例について説明する。本発明の第３の変形例もサービスごとに専用の暗号通信を行う情報システムに関する。本発明の第２の変形例に係る情報システム１における第２チャレンジ情報は、第２暗号化情報Ｅｐ（ＫＰｃ、Ｒｈ）と第３の暗号化情報Ｅｓ（Ｒｈ、Ｒｃ）とを連結させたものであった。ＥＣＤＨを用いた本発明の第３の変形例では、第２チャレンジ情報は、第２暗号化情報のみで構成されるものとする。そして、第３暗号化情報とアプリ記憶装置２０で生成した第１共通鍵Ｒｃと比較による正当性の判断は、最初のサービスデータ通信時に行うものとする。この場合、サービスデータ通信において、第１共通鍵Ｒｃを認証子に、第２共通鍵Ｒｈをデータの暗号鍵に使用する。
【０１０３】
図１１は、本発明の第３の変形例に係る情報システム１のサービス提供装置１０の暗号処理部１０１の構成を示す概念図である。図５に示した暗号処理部１０１と同様のタイプのため、図中、同じ構造の部分については同じ番号を付し、必要に応じて説明を省略する。
【０１０４】
鍵交換処理部１０１１は  、第１暗号処理部１０１１０と第１復号処理部１０１１２を含む。各構成の部分の動作は図５に示した構成の部分と同じであるが、第１復号部１０１１２において取り出された第１共通鍵Ｒｃは、データ処理部１０１２にのみ出力される。
【０１０５】
データ処理部１０１２は、データ暗号部１０１２０およびデータ復号部１０１２１を含み、共通鍵暗号方式に基づく暗号通信に必要なデータ処理を実行する。
【０１０６】
データ暗号部１０１２０は、送信すべき第２データＤａｔａと第１復号部１０１１２から受け取った第１共通鍵Ｒｃを認証子とする第２認証子付データＲｃ｜｜Ｄａｔａを生成する。そして、乱数生成部１０１３から受け取った第２共通鍵Ｒｈで第２認証子付データを暗号化し、第２暗号化データＥｓ（Ｒｈ、Ｒｃ｜｜Ｄａｔａ）を生成する。
【０１０７】
データ復号部１０１２１は、乱数生成部１０１３から受け取った第１共通鍵Ｒｈで、第１暗号化データを復号し、第１認証子付データＲｃ｜｜Ｄａｔａを取り出す。そして、第１認証子付データから認証子Ｒｃと第１データＤａｔａとを分離するとともに、第１認証子Ｒｃと第１復号部１０１１２から受け取った第１共通鍵Ｒｃとを比較し、第１データＤａｔａの正当性を確認する。
【０１０８】
図１２は、本発明の第３の変形例に係る情報システム１のアプリ記憶置２０の暗号処理部２０１の構成を示す概念図である。図７に示した暗号処理部２０１と同様のタイプのため、図中、同じ構造の部分については同じ番号を付し、必要に応じて説明を省略する。
【０１０９】
鍵交換処理部２０１１は  、第１復号処理部２０１１０と第１暗号処理部２０１１２を含む。
【０１１０】
データ処理部２０１２は、データ暗号部２０１２０およびデータ復号部２０１２１を含み、共通鍵暗号方式に基づく暗号通信に必要なデータ処理を実行する。
【０１１１】
データ暗号部２０１２０は、送信すべき第１データＤａｔａと乱数生成部２０１３から受け取った第１共通鍵Ｒｃを連結し、第１共通鍵Ｒｃを第１認証子とする第１認証子付データＲｃ｜｜Ｄａｔａを生成する。そして、第１復号部２０１１０から受け取った第２共通鍵Ｒｈで第１認証子付データを暗号化し、第１暗号化データＥｓ（Ｒｈ、Ｒｃ｜｜Ｄａｔａ）を生成する。
【０１１２】
データ復号部２０１２１は、第１復号部２０１１０から受け取った第２共通鍵Ｒｈで、第２暗号化データを復号し、第２認証子付データＲｃ｜｜Ｄａｔａを取り出す。そして、第２認証子付データから認証子Ｒｃと第２データＤａｔａとを分離するとともに、認証子Ｒｃと第１復号部から受け取った第１共通鍵Ｒｃとを比較し、第２データＤａｔａの正当性を確認する。まお、データ処理部２０１２は、初回のデータ通信において正当性が確認されなかった場合、サービス提供装置１０は信頼できないと判断し、後続の処理を中止するように、制御部２０２に伝える。
【０１１３】
以上の構成による情報システムに係る鍵交換処理の手順は、図９、１０に示す鍵交換処理の手順から、ステップS116とステップS117を省いたものと同様になるので、ここでの説明を省略する。
【０１１４】
このように本発明の第３の変形例に係る情報システム１では、第２チャレンジ情報は、第３暗号化情報を含まないので、鍵交換処理の必要な暗号演算を削減することができ、処理時間の短縮を図ることができる。
【０１１５】
なお、この変形は上述した全ての情報システム１に対して適応可能であり、サービス提供装置２０からアプリ記憶装置１０への最初のデータ通信を待って、鍵交換による相互認証が終了することとなる。このため最初のデータ通信は、サービス提供装置２０からアプリ記憶装置１０へのデータ通信であることが必要となる。しかしながら、保護を必要としないデータ通信については、この限りではない。
【０１１６】
次に本発明の第４の変形例について説明する。本発明の第４の変形例もサービスごとに専用の暗号通信を行う情報システムに関する。これまでの説明では、アプリ記憶装置２０のアプリ格納部２０３の各メモリバンクに、アプリが格納されているもとして説明した。本発明の第４の変形例では、メモリバンクにアプリ書き込み機能を提供する。これにより、例えば、アプリ記憶装置２０を携帯電話機に組み込む場合、携帯電話網を介してアプリを書き換えることが可能になる。また、いずれのサービスにも対応しない、すなわち、アプリを格納しない状態でユーザに提供することも可能となる。本発明の第４の変形例はこのような場合を想定して、アプリを書き換える機能を提供する。このため本発明の第４の変形例に係る情報システム１のアプリ記憶装置２０は、図６に示す構成に加え、携帯電話網を介してアプリ書き換え用のサービス提供装置１０Ａとの間でアプリ書き換えサービス専用の暗号通信路を構築するための接続部２０４を備える。
【０１１７】
図１３は、本発明の第４の変形例に係る情報システム１のアプリ格納２０３の構成を示す概念図である。図中、図８に示したアプリ格納部２０１と同様のタイプのため、同じ構造の部分については同じ番号を付し、必要に応じて説明を省略する。
【０１１８】
アプリ格納部２０３は、メモリバンク２０３０、２０３１、２０３２および２０３３を含む。
【０１１９】
メモリバンク２０３３は、アプリを書き換える機能を提供する特別なサービスに対応したアプリを格納するためのメモリバンクで、書き換えサービスのサービスＩＤを「Ａ」に対応する。メモリバンク２０３３は、アプリ書き換えサービス固有の公開鍵ＫＰｓｖ「Ａ」を格納するサービス固有鍵格納部２０３３１およびアプリ書き換えサービス用アプリを格納するサービスプログラム格納部２０３３２を含む。
【０１２０】
サービス書き換えサービス用アプリは、他のメモリバンクのＩＤ格納部、サービス固有鍵格納部、サービスプログラム格納部に対して、それぞれサービスＩＤ「ｉ」、サービス固有の公開鍵ＫＰｓｖ「ｉ」、アプリ「ｉ」を書き込むプログラムである。また、サービス書き換え用アプリは、書き換えの対象としたメモリバンクに含まれるサービスデータ格納部の内容を消去し、サービスデータ格納部の初期化も行う。
【０１２１】
次にアプリ書き換えの動作を簡単に説明する。制御部２０２は、アプリ書き換え用のサービス提供装置１０Ａから接続部２０４を介して、サービスＩＤ「Ａ」を受信すると、メモリバンク２０３３のサービス固有鍵格納部２０３３１に格納されているサービス「Ａ」固有の公開鍵ＫＰｓｖ「Ａ」を、暗号処理部２０１に提供する。
【０１２２】
制御部２０２は、暗号処理部２０１による鍵交換処理が終了しサービス提供装置１０Ａとの間に暗号通信路を構築すると、メモリバンク２０３３のサービスプログラム格納部２０３３２からアプリ書き換えサービス用のアプリを受け取って起動する。暗号通信路を構築できない場合は、処理を終了する。
【０１２３】
制御部２０２で起動されたアプリ書き換えサービス用のアプリは、接続部２０４および暗号処理部２０１を介して、サービス提供装置１０Ａとの間で暗号化されたサービスデータの送受信を行い、アプリ書き換えのサービスを実現する。具体的に説明すると、アプリ書き換えサービス用のアプリは、サービス提供装置１０Ａから書き換え対象となるメモリバンク番号と、そのメモリバンクに書き込む新たなサービスｉのサービスＩＤ「ｉ」、サービス固有の公開鍵ＫＰｓｖ「ｉ」およびアプリ「ｉ」を受け取り、それぞれを対象とすべきメモリバンク内のＩＤ格納部、サービス固有鍵格納部およびサービスプログラム格納部に上書きして更新を行う。次いで、サービスデータ格納部の内容を消去する。このときサービスデータ「ｉ」を受け取った場合、受け取ったサービスデータ「ｉ」を対象とすべきメモリバンクに含まれるサービスデータ格納部に書き込む。
【０１２４】
このように本発明の第４の変形例に係る情報システム１では、携帯電話に代表される通信機器にアプリ記憶装置を組み込むと、通信網を介したアプリの書き換えが実現できるので、ユーザ自身によって選択されたサービスに対応したアプリをアプリ記憶装置に書き込むことができ、ユーザの利便性が向上する。
【０１２５】
なお、以上の説明では、アプリ記憶装置２０は、アプリ書き換え専用のインターフェースとして接続部２０４を備えたが、通信モジュール部２００でアプリ書き換えを行ってもよいし、逆に、接続部２０４を介して他のアプリを起動するようにしてもよい。
【０１２６】
また、本発明の第４の変形例に係るアプリ書き換え機能は、上述の全ての情報システム１に対しても適応可能である。
【０１２７】
このような本発明の実施の形態によれば、以下の通りの作用効果を享受することができる。
【０１２８】
（１）アプリ格納部２０３は、複数のメモリバンクを有し、各メモリバンクは、サービスＩＤを格納するＩＤ格納部、サービス固有の公開鍵を格納するサービス固有鍵格納部、アプリそのものを格納するサービスプログラム格納部、サービスを提供するサービス提供装置１０との間で送受信するサービスデータを格納するサービスデータ格納部を含み、暗号処理部２０１は、サービス固有の公開鍵を用いてサービス提供装置との間に暗号通信路を構築し、共有した共通鍵Ｒｈ、Ｒｃを用いて、サービスデータを暗号化して送受信し、制御部２０２は、サービス提供装置から受信したサービスＩＤに基づきアプリ格納部２０３を検索し、サービスＩＤを格納したＩＤ格納部を含むメモリバンクがあれば、そのメモリバンクのサービス固有鍵格納部に格納されている公開鍵を取り出して暗号処理部２０１に提供し、暗号処理部２０１で鍵交換処理を実行してサービス提供装置との間に暗号通信路を構築すると、対応するメモリバンクのサービスプログラム格納部からアプリを受け取って起動する。このため、アプリごとに、対応するサービス提供装置１０との間で専用の暗号通信路を確立できるので、同一のアプリ記憶装置２０に格納されている複数のアプリ間においても、送受信するデータに関するセキュリティ強度を高めることができる。
【０１２９】
（２）アプリ格納部２０３は、アプリ書き換えサービス用アプリを格納するサービスプログラム格納部、アプリ書き換えサービス固有の公開鍵を格納するサービス固有鍵格納部を含むメモリバンクを備え、制御部２０２は、アプリ書き換え用のサービス提供装置１０ＡからサービスＩＤを受信すると、対応するメモリバンクのサービス固有鍵格納部に格納されている公開鍵を暗号処理部２０１に提供し、暗号処理部２０１で鍵交換処理を実行してサービス提供装置１０Ａとの間に暗号通信路を構築すると、対応するメモリバンクのサービスプログラム格納部からアプリ書き換えサービス用アプリを受け取って起動し、アプリを書き換えるべきメモリバンクを特定し、暗号通信路を介してサービス提供装置１０Ａから受け取った新たなサービスのサービスＩＤなどで、特定したメモリバンクの内容を更新する。このため、通信網を介したアプリの書き換えが実現できるので、ユーザ自身によって選択されたサービスに対応したアプリをアプリ記憶装置に書き込むことができ、ユーザの利便性が向上する。
【０１３０】
以上、本発明を実施するための最良の形態について説明をしてきたが、本発明は、この実施の形態の構成に限定されるものではなく、特許請求の範囲に規定された本発明の適用範囲にあり、上述した実施の形態の構成が備える機能を達成可能であれば、いろいろな変形が可能である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施の形態における情報システム１の構成を示す概念図
【図２】アプリケーションモデルの概念図
【図３】サービスごとに付与される公開鍵とそれに対応する秘密鍵の対応関係を示す概念図
【図４】サービス提供装置１０の構成を示す概念図
【図５】暗号処理部１０１の構成を示す概念図
【図６】アプリ記憶装置２０の構成を示す概念図
【図７】暗号処理部２０１の構成を示す概念図
【図８】アプリ格納部２０２の構成を概念図
【図９】鍵交換処理の手順を示すフローチャート
【図１０】鍵交換処理の手順を示すフローチャート
【図１１】第３の変形例に係る暗号処理部１０１の構成を示す概念図
【図１２】第３の変形例に係る暗号処理部２０１の構成を示す概念図
【図１３】第４の変形例に係るアプリ格納２０３の構成を示す概念図
【符号の説明】
【０１３２】
１０          サービス提供装置
２０          アプリ記憶装置
３０          サービス提供サーバ装置
１００        通信モジュール部
１０１        暗号処理部
１０２        制御部
１０１０      格納部
１０１１      鍵交換処理部
１０１２      データ処理部
１０１３      乱数生成部
１０１４      証明書検証部
１０１００    認証局公開鍵格納部
１０１０１    サービス固有鍵格納部
１０１１０    第１暗号部
１０１１１    第２暗号部
１０１１２    第１復号部
１０１２０    データ暗号部
１０１２１    データ復号部
２００      通信モジュール部
２０１      暗号処理部
２０３      アプリ格納部
２０３０、２０３１、２０３２、２０３３  メモリバンク
２０１００    記憶装置固有公開鍵証明書格納部
２０１０１    記憶装置固有鍵格納部
２０１１０    第１復号部
２０１１１    第２復号部
２０１１２    第１暗号部
２０１２０    データ暗号部
２０１２１    データ復号部
２０３００、２０３１０、２０３２０  ＩＤ格納部
２０３０１、２０３１１、２０３２１、２０３３１  サービス固有鍵格納部
２０３０２、２０３１２、２０３２２、２０３３２  サービスプログラム（アプリ）格納部
２０３０３、２０３１３、２０３２３  サービスデータ格納部
【図１】
2010061244.tif 000003
【図２】
2010061244.tif 000004
【図３】
2010061244.tif 000005
【図４】
2010061244.tif 000006
【図５】
2010061244.tif 000007
【図６】
2010061244.tif 000008
【図７】
2010061244.tif 000009
【図８】
2010061244.tif 000010
【図９】
2010061244.tif 000011
【図１０】
2010061244.tif 000012
【図１１】
2010061244.tif 000013
【図１２】
2010061244.tif 000014
【図１３】
2010061244.tif 000015