(57)【要約】【課題】鍵の交換相手に対するユーザを識別する情報の漏洩を防止しつつ、公開鍵を安全に送信する方法を提供する。【解決手段】鍵送信方法は、ユーザ端末と、第１情報処理装置と、第２情報処理装置と、第１情報処理装置、第２情報処理装置、及びユーザ端末と通信する通信装置と、を有するシステムにおける鍵送信方法であって、ユーザ端末は、ユーザ端末の第１公開鍵と、第１公開鍵に対する電子署名と、第１公開鍵を署名する電子証明書とを、通信装置を介して第１情報処理装置に送信し、第１情報処理装置は、電子署名と電子証明書を用いて、第１公開鍵が真正であると判定した場合、通信装置を介する経路とは異なる経路を介して、第１公開鍵を第２情報処理装置に送信する。【選択図】図１
2015192377.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末と、第１情報処理装置と、第２情報処理装置と、前記第１情報処理装置、前記第２情報処理装置、及び前記ユーザ端末と通信する通信装置と、を有するシステムにおける鍵送信方法であって、
前記ユーザ端末は、該ユーザ端末の第１公開鍵と、該第１公開鍵に対する電子署名と、前記第１公開鍵を電子署名する電子証明書とを、前記通信装置を介して前記第１情報処理装置に送信し、
前記第１情報処理装置は、前記電子署名と前記電子証明書を用いて、前記第１公開鍵が真正であると判定した場合、前記通信装置を介する経路とは異なる経路を介して、前記第１公開鍵を前記第２情報処理装置に送信する
ことを特徴とする鍵送信方法。
【請求項２】
前記鍵送信方法は、さらに、
前記第２情報処理装置は、前記通信装置を介して、前記第２情報処理装置の第２公開鍵を前記ユーザ端末へ送信する、
ことを特徴とする請求項１に記載の鍵送信方法。
【請求項３】
前記第１情報処理装置は、前記第１公開鍵が真正であると判定した場合、前記通信装置を介する経路とは異なる経路を介して、前記第１公開鍵と、前記第１情報処理装置の第３公開鍵とを前記第２情報処理装置に送信し、
前記第２情報処理装置は、前記第２公開鍵に対応する第２秘密鍵と、受信した前記第１公開鍵とから生成した第１共通鍵を用いて、受信した前記第３公開鍵を暗号化し、前記第２公開鍵と暗号化した前記第３公開鍵とを前記通信装置を介して前記ユーザ端末へ送信する、
ことを特徴とする請求項２に記載の鍵送信方法。
【請求項４】
前記ユーザ端末は、前記第２情報処理装置から受信した前記第３公開鍵と前記ユーザ端末の第４秘密鍵とから第２共通鍵を生成し、前記第４秘密鍵に対応する第４公開鍵と、生成した前記第２共通鍵とを、前記通信装置を介して前記第１情報処理装置に送信し、
前記第１情報処理装置は、前記第３公開鍵に対応する第３秘密鍵と前記第４公開鍵とを用いて、前記第４公開鍵の真正性を検証する
ことを特徴とする請求項３に記載の鍵送信方法。
【請求項５】
前記第１公開鍵は、ユーザを識別する第１識別情報に対応付けられており、
前記ユーザ端末は、前記通信装置を介して前記第１識別情報を前記第１情報処理装置に送信し、
前記第１情報処理装置は、前記第１公開鍵が真正であると判定した場合、前記第１情報処理装置が記憶する、前記第１識別情報に対応付けられた第２の識別情報を前記第２情報処理装置に送信し、
前記第２情報処理装置は、前記第１共通鍵を用いて、前記第２情報処理装置が記憶する、前記第２識別情報に対応付けられた情報を暗号化して前記ユーザ端末へ前記通信装置を介して送信する、
ことを特徴とする請求項２〜４のうちいずれか１項に記載の鍵送信方法。
【請求項６】
前記第２情報処理装置は、前記ユーザ端末から前記通信装置を介して、情報の送信要求を受信すると、前記送信要求を識別する第３識別情報を前記通信装置に送信し、
前記第１情報処理装置は、前記第１識別情報と前記第３識別情報を対応付けた情報を前記通信装置から受信すると、前記第１識別情報に対応付けられた前記第２識別情報を前記第２情報処理装置に送信する
ことを特徴とする請求項５に記載の鍵送信方法。
【請求項７】
前記第１情報処理装置は、前記第１公開鍵が真正であると判定した場合、前記通信装置を介する経路とは異なる経路を介して、前記第１公開鍵が真正であることが前記第１情報処理装置において確認されたことを示す検証情報を前記第２情報処理装置に送信し、
前記第２情報処理装置は、前記検証情報を受信した場合、前記通信装置を介して前記第２公開鍵を前記ユーザ端末へ送信する、
ことを特徴とする請求項２〜６のうちいずれか１項に記載の鍵送信方法。
【請求項８】
第１情報処理装置と、第２情報処理装置と、ユーザ端末と、前記第１情報処理装置、前記第２情報処理装置、及び前記ユーザ端末と通信する通信装置と、を有する鍵送信システムであって、
前記ユーザ端末は、該ユーザ端末の第１公開鍵と、該第１公開鍵に対する電子署名と、前記第１公開鍵を電子署名する電子証明書とを、前記通信装置を介して前記第１情報処理装置に送信し、
前記第１情報処理装置は、前記電子署名と前記電子証明書を用いて、前記第１公開鍵が真正であると判定した場合、前記通信装置を介する経路とは異なる経路を介して、前記第１公開鍵を前記第２情報処理装置に送信する、
ことを特徴とする鍵送信システム。
【請求項９】
コンピュータに、
ユーザ端末から通信装置を介して、該ユーザ端末の第１公開鍵と、該第１公開鍵に対する電子署名と、前記第１公開鍵を電子署名する電子証明書とを受信し、
前記電子署名と前記電子証明書を用いて、前記第１公開鍵が真正であると判定した場合、前記通信装置を介する経路とは異なる経路を介して、前記第１公開鍵を第２情報処理装置に送信する
処理を実行させることを特徴とする鍵送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵の送信方法に関する。
【背景技術】
【０００２】
近年、解析の依頼元からVirtual Private Network（ＶＰＮ）等を介して取得したデータを解析し、得られた結果を依頼元に提供するサービスが解析業者によって行われている。依頼元が個人のユーザから得たデータについて、ユーザ別の解析結果を依頼する場合は、解析対象のデータにユーザを識別するための個人情報が対応付けられている。そこで、解析業者に渡したデータからの個人情報の漏洩を防ぐため、依頼元は、個人を一意に特定できる解析用ＩＤなどに個人情報を置き換える処理を行ってから、処理後のデータを解析業者に渡すことが多い。解析業者は、依頼元から取得したデータを解析し、ユーザごとの解析結果を解析用ＩＤに対応付ける。さらに、解析業者は、得られた解析結果を解析用ＩＤに対応付けて、解析の依頼元に提供する。依頼元は、解析業者から取得した解析結果に対応付けられた解析用ＩＤを、ユーザの個人情報に置き換える。一方、ユーザは、そのユーザについて得られた解析結果を依頼元に要求する。すると、依頼元は、解析結果の要求を行ったユーザに対して、そのユーザに対応づけられた解析結果を提供する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１６６２２６号公報
【特許文献２】特開平１１−１９１７６１号公報
【特許文献３】特開２０１１−１６０１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
背景技術の欄で説明したように、ユーザが依頼元を介して、そのユーザについて得られた解析結果を得る場合、解析業者から依頼元に解析結果が送られ、依頼元からユーザへと解析結果が送られることになる。ここで、個々のユーザが、直接、解析業者に対して、そのユーザのデータについて得られた解析結果を要求できると、ユーザの利便性が高くなる上、収集サーバの処理負荷が軽減される。
【０００５】
ユーザが解析業者のサーバにアクセスするためには、ユーザは、そのユーザの個人情報と置き換えられた解析用ＩＤを取得した上で、解析業者のサーバに対して、取得した解析用ＩＤに対応する解析結果の照会を要求することになる。このように取得した解析用ＩＤに対応する解析結果の紹介を要求するのは、解析サーバに対してユーザの個人情報を渡すことなく解析結果をユーザが要求するためである。
【０００６】
一方、ユーザが解析業者のサーバに直接アクセスする場合に、ユーザが取得する解析結果の情報は情報のセキュリティの観点から、暗号化されることが望ましい。暗号化の方法としては、公開鍵をお互いに交換し、相手の公開鍵と自分の秘密鍵で共通鍵を生成し、共通鍵でデータの暗号化/復号化するDH(Diffie-Hellman)方式が利用されている(SSL（Secure Sockets Layer）等）。しかしながらこの方法でお互いの公開鍵を交換する時、ユーザと解析業者とのネットワーク通信の間で、第３者に公開鍵をすり替えられる恐れがある。
【０００７】
このような公開鍵のすり替えや、データの改ざんを防止するための方法として、公開鍵の電子証明書を用いる方法がある。しかしながら単なる電子証明書を用いた方法では、解析サーバは個々のユーザを特定できてしまう。
【０００８】
そこで、１つの側面では、本発明は、鍵の交換相手に対するユーザを識別する情報の漏洩を防止しつつ、公開鍵を安全に送信する方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様の方法は、ユーザ端末と、第１情報処理装置と、第２情報処理装置と、第１情報処理装置、第２情報処理装置、及びユーザ端末と通信する通信装置と、を有するシステムにおける鍵送信方法であって、ユーザ端末は、ユーザ端末の第１公開鍵と、第１公開鍵に対する電子署名と、第１公開鍵を電子署名する電子証明書とを、通信装置を介して第１情報処理装置に送信し、第１情報処理装置は、電子署名と電子証明書を用いて、第１公開鍵が真正であると判定した場合、通信装置を介する経路とは異なる経路を介して、第１公開鍵を第２情報処理装置に送信する。
【発明の効果】
【００１０】
一態様によれば、鍵の交換相手に対するユーザを識別する情報の漏洩を防止しつつ、公開鍵を安全に送信する方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る情報処理システムの構成の一例を示す図である。
【図２】ユーザが初めて解析結果の取得要求を行うときの鍵送信方法の例を説明する図である。
【図３】２回目以降にユーザが解析結果の取得要求を行うときの鍵送信方法の例を説明する図である。
【図４】システム構成の例を示す図である。
【図５】収集サーバの構成の例を示す図である。
【図６】解析用ＩＤテーブルの例を示す図である。
【図７】解析サーバの構成の例を示す図である。
【図８】アカウントテーブルの例を示す図である。
【図９】通信装置の構成の例を示す図である。
【図１０】ＩＤ管理テーブルの例を示す図である。
【図１１】端末の構成の例を示す図である。
【図１２】端末の記憶部に記憶される情報の例を示す図である。
【図１３】サーバおよび端末のハードウェア構成の例を示す図である。
【図１４】置換データの生成方法と置換データの解析結果の例を示す図である。
【図１５Ａ】実施形態に係る、ユーザが初めて解析結果の取得要求を行うときの通信の例を示すシーケンス図である。
【図１５Ｂ】実施形態に係る、ユーザが初めて解析結果の取得要求を行うときの通信の例を示すシーケンス図である。
【図１６】端末と通信装置の間の通信による情報の更新の例を説明する図である。
【図１７】通信装置と解析サーバの間の認証による情報の更新の例を説明する図である。
【図１８】アクセス識別子が解析サーバから通信装置に通知されるときの情報の更新の例を説明する図である。
【図１９】登録要求メッセージの例を示す図である。
【図２０】通信装置と収集サーバの通信による情報の更新の例を示す図である。
【図２１】アクセス識別子が収集サーバに登録された後の情報の更新の例を説明する図である。
【図２２Ａ】実施形態に係る、２回目以降にユーザが解析結果の取得要求を行うときの通信の例を示すシーケンス図である。
【図２２Ｂ】実施形態に係る、２回目以降にユーザが解析結果の取得要求を行うときの通信の例を示すシーケンス図である。
【図２３】２回目以降にユーザが解析結果の取得要求を行うときの、アクセス識別子が収集サーバに登録された後の情報の更新の例を説明する図である。
【図２４Ａ】解析サーバの動作の例を説明するフローチャートである。
【図２４Ｂ】解析サーバの動作の例を説明するフローチャートである。
【図２５Ａ】通信装置の動作の例を説明するフローチャートである。
【図２５Ｂ】通信装置の動作の例を説明するフローチャートである。
【図２６Ａ】収集サーバの動作の例を説明するフローチャートである。
【図２６Ｂ】収集サーバの動作の例を説明するフローチャートである。
【図２７Ａ】端末の動作の例を説明するフローチャートである。
【図２７Ｂ】端末の動作の例を説明するフローチャートである。
【図２７Ｃ】端末の動作の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、実施形態に係る情報処理システムの構成の一例を示す図である。図１において、情報処理システム９は、ユーザ端末１と、第１情報処理装置３と、第２情報処理装置４と、第１情報処理装置３、第２情報処理装置４、及びユーザ端末１と通信する通信装置２と、を有する。
【００１３】
ユーザ端末１は、ユーザ端末１の第１公開鍵と、第１公開鍵に対する電子署名と、第１公開鍵を署名する電子証明書とを、通信装置２を介して第１情報処理装置３に送信する。第１情報処理装置３は、電子署名と電子証明書を用いて、第１公開鍵が真正であると判定した場合、通信装置２を介する経路とは異なる経路を介して、第１公開鍵を第２情報処理装置４に送信する。第２情報処理装置４は、通信装置２を介して、第２情報処理装置４の第２公開鍵をユーザ端末１へ送信する。
【００１４】
また、第１情報処理装置３は、第１公開鍵が真正であると判定した場合、通信装置２を介する経路とは異なる経路を介して、第１公開鍵と、第１情報処理装置３の第３公開鍵とを第２情報処理装置４に送信する。第２情報処理装置４は、第２公開鍵に対応する第２秘密鍵と、受信した第１公開鍵とから生成した第１共通鍵を用いて、受信した第３公開鍵を暗号化し、第２公開鍵と暗号化した第３公開鍵とを通信装置２を介してユーザ端末１へ送信する。
【００１５】
また、ユーザ端末１は、第２情報処理装置４から受信した第３公開鍵とユーザ端末１の第４秘密鍵とから第２共通鍵を生成し、第４秘密鍵に対応する第４公開鍵と、生成した第２共通鍵とを、通信装置２を介して第１情報処理装置３に送信する。第１情報処理装置３は、第３公開鍵に対応する第３秘密鍵と第４公開鍵とを用いて、受信した第４公開鍵の真正性を検証する。
【００１６】
また、第１公開鍵は、ユーザを識別する第１識別情報に対応付けられており、ユーザ端末１は、通信装置２を介して第１識別情報を第１情報処理装置３に送信する。第１情報処理装置３は、第１公開鍵が真正であると判定した場合、第１情報処理装置３が記憶する、第１識別情報に対応付けられた第２の識別情報を第２情報処理装置４に送信する。第２情報処理装置４は、第１共通鍵を用いて、第２情報処理装置４が記憶する、第２識別情報に対応付けられた情報を暗号化してユーザ端末１へ通信装置２を介して送信する。
【００１７】
第２情報処理装置４は、ユーザ端末１から通信装置２を介して、情報の送信要求を受信すると、送信要求を識別する第３識別情報を通信装置２に送信する。第１情報処理装置３は、第１識別情報と第３識別情報を対応付けた情報を通信装置２から受信すると、第１識別情報に対応付けられた第２識別情報を第２情報処理装置４に送信する。
【００１８】
第１情報処理装置３は、第１公開鍵が真正であると判定した場合、通信装置２を介する経路とは異なる経路を介して、第１公開鍵が真正であることが第１情報処理装置３において確認されたことを示す検証情報を第２情報処理装置４に送信する。第２情報処理装置４は、検証情報を受信した場合、通信装置２を介して第２公開鍵をユーザ端末１へ送信する。
【００１９】
図２及び図３は、実施形態に係る鍵管理方法の例を示す。図２は、ユーザが初めて解析結果の取得要求を行うときの例を示しており、図３は、２回目以降にユーザが解析結果の取得要求を行うときの例を示している。
【００２０】
図２は、端末８０、通信装置６０、収集サーバ１０、解析サーバ３０の間で行われる通信の例を示している。
【００２１】
端末８０はユーザ端末１の一例である。通信装置６０は通信装置２の一例である。収集サーバ１０は第１情報処理装置３の一例である。解析サーバ３０は第２情報処理装置４の一例である。
【００２２】
収集サーバ１０は、各ユーザのデータと、ユーザごとの解析用ＩＤを記憶している。そして収集サーバ１０は、各種センサ等から取得したセンサデータから各ユーザについての秘匿される情報である秘匿情報を抽出し、秘匿情報をそのユーザに対応付けられている解析用ＩＤに置き換えた置換データを生成する。図２の例では、ユーザＡに関する秘匿情報が解析用ＩＤ「i」に置き換えられたとする。収集サーバ１０は、置換データを解析サーバ３０に送信する。解析サーバ３０は、置換データに含まれているデータを解析し、解析結果を保持する。ユーザごとの解析結果は、各ユーザの解析用ＩＤに対応付けて保持される。例えば、ユーザＡのデータに関する解析結果は解析用ＩＤ「i」に対応付けて、解析サーバ３０に保持される。
【００２３】
（１）端末８０は、解析サーバ３０から解析結果を取得するために、先ず、通信装置６０に対して、解析結果を要求する。この解析結果の要求において、端末８０は、ユーザの識別情報、ユーザの秘密鍵に対応する公開鍵、その公開鍵を電子証明書に含まれている公開鍵で署名した電子署名、及び電子証明書を通信装置６０へ送付する。図２の例では、端末８０は、ユーザの識別情報「A」、ユーザの秘密鍵「Key-a」に対応する公開鍵「Key-ga」、及び公開鍵「Key-ga」の電子署名「署名ga」、及び電子証明書「PKI-a」を通信装置６０へ送付している。
【００２４】
（２）通信装置６０は、端末８０から解析結果の要求を受信すると、ゲスト用のＩＤを用いて解析サーバ３０にアクセスし、解析結果を要求する。尚、ゲスト用のＩＤは、ユーザが所属するグループに一意に割り振られたＩＤとしてもよい。
【００２５】
（３）解析サーバ３０は、通信装置６０から解析結果の要求を受信すると、その要求に対応するアクセス識別子を生成する。尚このアクセス識別子は、解析結果の要求に対して一意に割り当てられた識別子である。図２の例では、解析サーバ３０はアクセス識別子「α」を生成している。
【００２６】
（４）解析サーバ３０は、通信装置６０に、アクセス識別子を送信する。図２の例では、解析サーバ３０はアクセス識別子「α」を通信装置６０に送信している。
【００２７】
（５）通信装置６０は、解析サーバ３０から受信したアクセス識別子を、（１）で受信した、ユーザの識別情報、公開鍵、電子署名、及び電子証明書とともに、収集サーバ１０に送信する。図２の例では、ユーザを識別するアクセス識別子「α」、ユーザの識別情報「A」、公開鍵「Key-ga」、電子署名「署名ga」、及び電子証明書「PKI-a」の組み合わせが、通信装置６０から収集サーバ１０に通知されている。
【００２８】
（６）収集サーバ１０は、通信装置６０から受信した公開鍵、電子署名、及び電子証明書を用いて、受信した公開鍵の真正性を検証する。受信した公開鍵が真正であると判定した場合、収集サーバ１０は、収集サーバ１０において、検証用情報を生成する。検証用情報は、具体的には、収集サーバ１０の秘密鍵に対応する公開鍵である。図２の例では、収集サーバ１０は通信装置６０から、アクセス識別子「α」、ユーザの識別情報「A」、公開鍵「Key-ga」、電子署名「署名ga」、電子証明書「PKI-a」の組み合わせを受信し、公開鍵「Key-ga」の真正性を検証する。そして、公開鍵「Key-ga」が真正であると判定すると、収集サーバ１０は、検証用情報として、収集サーバ１０の秘密鍵「Key-c」に対応する公開鍵「Key-gc」を生成する。
【００２９】
（７）そして収集サーバ１０は、受信したユーザの識別情報とアクセス識別子の組み合わせを用いて、アクセス識別子と解析用ＩＤを対応付ける。図２の例では、収集サーバ１０は、通信装置６０から受信した情報によりユーザ「A」に対してアクセス識別子「α」が割り当てられたことを認識する。そこで、収集サーバ１０は、ユーザ「A」に対応付けている解析用ＩＤ「i」を、アクセス識別子「α」と対応付ける。
【００３０】
（８）収集サーバ１０は、手順（５）で受信したアクセス識別子と、手順（７）でアクセス識別子に対応付けた解析用ＩＤと、手順（５）で受信した公開鍵と、手順（６）で生成した検証用情報と、確認通知との組み合わせを、解析サーバ３０に送信する。ここで、確認通知は、ユーザの公開鍵が真正であることが収集サーバ１０において確認されたことを示す通知（検証情報）である。尚、ここで送信される情報は、通信装置６０を経由せずに解析サーバ３０に受信される。図２の例では、アクセス識別子「α」、解析用ＩＤ「i」、公開鍵「Key-ga」、及び検証用情報「Key-gc」の組み合わせが、収集サーバ１０から解析サーバ３０に送信されている。
【００３１】
（９）解析サーバ３０は、収集サーバ１０から手順（８）で送信された情報を受信すると、確認通知が受信した情報に含まれていることを確認する。
【００３２】
（１０）そして解析サーバ３０は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果について、解析結果の送信が要求されたと判定する。すなわち、解析サーバ３０は、手順（２）において要求された解析結果は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果であると認識する。図２の例では、解析サーバ３０は、解析用ＩＤ「i」に対応付けられた解析結果が通信装置６０から要求されたと判定する。
【００３３】
（１１）次に解析サーバ３０は、手順（９）で受信したユーザの公開鍵と、解析サーバ３０の秘密鍵とから、共通鍵を生成する。そして解析サーバ３０は、生成した共通鍵を用いて、受信した解析用ＩＤに対応付けられた解析結果と、検証用情報とを暗号化する。図２の例では、解析サーバ３０は、受信した公開鍵「Key-ga」と解析サーバ３０の秘密鍵「Key-b」とから、共通鍵「K-gab」を生成する。そして、解析サーバ３０は、共通鍵「K-gab」を用いて、解析用ＩＤ「i」に対応付けられた解析結果と検証用情報「Key-gc」とを暗号化する。
【００３４】
（１２）解析サーバ３０は、解析サーバ３０の秘密鍵に対応する公開鍵、その公開鍵を電子証明書に含まれている公開鍵で署名した電子署名、電子証明書、及び、暗号化した、解析用ＩＤに対応付けられた解析結果及び検証用情報を、通信装置６０に送信する。ここで、データを署名するとは、データの正当性を保証するための署名情報である電子署名を生成することを指す。図２の例では、解析サーバ３０は、解析サーバ３０の公開鍵「Key-gb」と、電子署名「署名gb」と、電子証明書「PKI-b」と、暗号化した、解析用ＩＤ「i」に対応付けられた解析結果及び検証用情報「Key-gc」とを通信装置６０に送信する。
【００３５】
（１３）通信装置６０は、解析サーバ３０から受信した情報を、端末８０に転送する。
【００３６】
（１４）端末８０は、受信した電子署名及び電子証明書を用いて、受信した解析サーバ３０の公開鍵の真正性を検証する。解析サーバ３０の公開鍵が真正であると判定した場合、端末８０は、解析サーバ３０の公開鍵と、端末８０の秘密鍵とから共通鍵を生成する。図２の例では、端末８０は、解析サーバ３０の公開鍵「Key-gb」と、端末８０の秘密鍵「Key-a」とから共通鍵「K-gba」を生成する。
【００３７】
（１５）そして端末８０は、生成した共通鍵を用いて、暗号化された、解析用ＩＤに対応付けられた解析結果及び検証用情報を復号する。そして端末８０は、復号の結果、ユーザについての解析結果と検証用情報を取得し、検証用情報を記録する。図２の例では、端末８０は、生成した共通鍵「K-gba」を用いて、暗号化された、解析用ＩＤ「i」に対応付けられた解析結果及び検証用情報「Key-gc」を復号する。そして端末８０は、検証用情報「Key-gc」を記録し、解析用ＩＤ「i」に対応付けられた解析結果を取得する。
【００３８】
図２を参照しながら説明した鍵交換方法を用いると、図２の手順（６）において収集サーバ１０は、電子署名及び電子証明書を用いてユーザの秘密鍵に対応する公開鍵の真正性を検証している。これにより、端末８０から収集サーバ１０における通信でユーザの公開鍵のすり替えが行われた場合には、収集サーバ１０は公開鍵がすり替えられたことを検知することができる。
【００３９】
手順（８）において、収集サーバ１０は、受信した公開鍵が真正であると確認すると、収集サーバ１０において、ユーザの公開鍵が真正であることの確認が行われたことを示す確認通知を送信している。そして収集サーバ１０はこの確認通知とともにユーザの公開鍵を、通信装置６０を介さずに、解析サーバへ送信し、手順（９）において解析サーバ３０は確認通知の受信を確認している。これにより解析サーバ３０は、ユーザの識別情報を認識することなく、通信装置６０による受信したユーザの公開鍵のすり替えが行われていないことを確認することができる。またユーザの個人情報など、秘匿の対象となるデータは解析サーバ３０に送信されないので、解析サーバ３０がユーザとは無関係の第３者が運営するサーバであっても個人情報等の漏洩の恐れがない。
【００４０】
手順（１１）において、解析結果は、ユーザの公開鍵と解析サーバ３０の秘密鍵とから生成した共通鍵を用いて暗号化されて、端末８０に送信されている。これにより、解析結果の情報は通信装置６０に対して秘匿される。
【００４１】
手順（１４）において、端末８０は、電子署名及び電子証明書を用いて、収集サーバ１０の秘密鍵に対応する公開鍵の真正性を検証している。これにより、収集サーバ１０から端末８０における通信で収集サーバ１０の公開鍵のすり替えが行われた場合には、端末８０は公開鍵がすり替えられたことを検知することができる。
【００４２】
次に図３を参照して、ユーザが２回目以降にユーザが解析結果の取得要求を行うときの例を説明する。
【００４３】
（１）端末８０は、通信装置６０に対して、解析結果を要求する。この解析結果の要求において、端末８０は先ず、ユーザの秘密鍵に対応する公開鍵と前回の要求で解析サーバ３０から受信した検証用情報とから共通鍵を生成する。ここで、２回目以降のユーザの秘密鍵は、それ以前の解析結果の要求の処理で使用した秘密鍵とは異なる鍵が使用される。次に端末８０は、生成した共通鍵のハッシュ値を算出する。ハッシュ値の算出においては所定のハッシュ関数が用いられてよい。そして端末８０は、ユーザの識別情報、ユーザの秘密鍵に対応する公開鍵、及び算出したハッシュ値を通信装置６０へ送付する。図３の例では、端末８０は、ユーザの秘密鍵「Key-a2」から共通鍵「K-gca2」を生成し、ユーザの識別情報「A」、ユーザの秘密鍵「Key-a2」に対応する公開鍵「Key-ga2」、及びハッシュ値「Hash(K-gca2)」を通信装置６０へ送付している。
【００４４】
（２）通信装置６０は、端末８０から解析結果の要求を受信すると、ゲスト用のＩＤを用いて解析サーバ３０にアクセスし、解析結果を要求する。尚、ゲスト用のＩＤは、ユーザが所属するグループに一意に割り振られたＩＤとしてもよい。
【００４５】
（３）解析サーバ３０は、通信装置６０から解析結果の要求を受信すると、その要求に対するアクセス識別子を生成する。尚このアクセス識別子は、解析結果の要求に対して一意に割り当てられた識別子である。図３の例では、解析サーバ３０はアクセス識別子「β」を生成している。
【００４６】
（４）解析サーバ３０は、通信装置６０に、アクセス識別子を送信する。図３の例では、解析サーバ３０はアクセス識別子「β」を通信装置６０に送信している。
【００４７】
（５）通信装置６０は、解析サーバ３０から受信したアクセス識別子を、（１）で受信した、ユーザの識別情報、公開鍵、及びハッシュ値とともに、収集サーバ１０に送信する。図３の例では、ユーザを識別するアクセス識別子「β」、ユーザの識別情報「A」、公開鍵「Key-ga」、ハッシュ値「Hash(K-gca2)」の組み合わせが、通信装置６０から収集サーバ１０に通知されている。
【００４８】
（６）収集サーバ１０は、通信装置６０から受信したハッシュ値を用いて、受信した公開鍵の真正性を検証する。すなわち収集サーバ１０は、先ず、受信した公開鍵と収集サーバ１０の秘密鍵とを用いて共通鍵を生成する。次に収集サーバ１０は、生成した共通鍵のハッシュ値を算出する。このハッシュ値の算出で使用するハッシュ関数は、（１）で端末８０がハッシュ値を算出する際に使用したものと同じであり、予め同一のハッシュ関数が使用されるように設定されているものとする。そして収集サーバ１０は、算出したハッシュ値が受信したハッシュ値と同じ値になるか否かを判定する。算出したハッシュ値が受信したハッシュ値と同じであると判定した場合、収集サーバ１０は、受信したユーザの公開鍵が真正であると判定する。図３の例では、収集サーバ１０は先ず、アクセス識別子「β」、ユーザの識別情報「A」、公開鍵「Key-ga2」、ハッシュ値「Hash(K-gca2)」の組み合わせを受信する。次に収集サーバ１０は、公開鍵「Key-ga2」と収集サーバ１０の秘密鍵「c」とを用いて共通鍵「K-ga2c」を生成する。次に収集サーバ１０は、生成した共通鍵「K-ga2c」のハッシュ値「Hash(K-ga2c)」を算出する。そして収集サーバ１０は、算出したハッシュ値「Hash(K-ga2c)」が受信したハッシュ値「Hash(K-gca2)」と同じ値になるか否かを判定することにより、公開鍵「Key-ga2」の真正性を判定する。
【００４９】
（７）そして収集サーバ１０は、受信したユーザの識別情報とアクセス識別子の組み合わせを用いて、アクセス識別子と解析用ＩＤを対応付ける。図３の例では、収集サーバ１０は、通信装置６０から受信した情報によりユーザ「A」に対してアクセス識別子「β」が割り当てられたことを認識する。そこで、収集サーバ１０は、ユーザに対応付けている解析用ＩＤ「i」を、アクセス識別子「β」と対応付ける。
【００５０】
（８）収集サーバ１０は、手順（５）で受信したアクセス識別子と、手順（７）でアクセス識別子に対応付けた解析用ＩＤと、手順（５）で受信した公開鍵と、確認通知との組み合わせを、解析サーバ３０に送信する。尚、ここで送信される情報は、通信装置６０を経由せずに解析サーバ３０に受信されるものとする。図３の例では、アクセス識別子「β」、解析用ＩＤ「i」、公開鍵「Key-ga2」、及び確認通知の組み合わせが、収集サーバ１０から解析サーバ３０に送信されている。
【００５１】
（９）解析サーバ３０は、収集サーバ１０から手順（８）で送信された情報を受信すると、受信した情報に確認通知が含まれていることを確認する。
【００５２】
（１０）そして解析サーバ３０は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果について、解析結果の送信が要求されたと判定する。すなわち、解析サーバ３０は、手順（２）において要求された解析結果は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果であると認識する。図３の例では、解析サーバ３０は、解析用ＩＤ「i」に対応付けられた解析結果が通信装置６０から要求されたと判定する。
【００５３】
（１１）次に解析サーバ３０は、手順（９）で受信したユーザの公開鍵と、解析サーバ３０の秘密鍵とから、共通鍵を生成する。ここで、２回目以降の解析サーバ３０の秘密鍵は、それ以前の解析結果の要求の処理で使用した秘密鍵とは異なる鍵が使用される。そして解析サーバ３０は、生成した共通鍵を用いて、受信した解析用ＩＤに対応付けられた解析結果を暗号化する。図３の例では、解析サーバ３０は、受信した公開鍵「Key-ga2」と解析サーバ３０の秘密鍵「Key-b2」とから、共通鍵「K-ga2b2」を生成する。そして、解析サーバ３０は、共通鍵「K-ga2b2」を用いて、解析用ＩＤ「i」に対応付けられた解析結果を暗号化する。
【００５４】
（１２）解析サーバ３０は、解析サーバ３０の公開鍵と、その公開鍵を電子証明書に含まれている公開鍵で署名した電子署名と、電子証明書と、暗号化した、解析用ＩＤに対応付けられた解析結果とを、通信装置６０に送信する。図３の例では、解析サーバ３０は、解析サーバ３０の公開鍵「Key-gb2」と、電子署名「署名gb2」、電子証明書「PKI-b」と、暗号化した、解析用ＩＤ「i」に対応付けられた解析結果とを、通信装置６０に送信する。
【００５５】
（１３）通信装置６０は、解析サーバ３０から受信した情報を、端末８０に転送する。
【００５６】
（１４）端末８０は、受信した電子署名及び電子証明書を用いて、受信した解析サーバ３０の公開鍵の真正性を検証する。解析サーバ３０の公開鍵が真正であると判定した場合、端末８０は、解析サーバ３０の公開鍵と、端末８０の秘密鍵とから共通鍵を生成する。図３の例では、端末８０は、解析サーバ３０の公開鍵「Key-gb2」と、端末８０の秘密鍵「Key-a2」とから共通鍵「K-gb2a2」を生成する。
【００５７】
（１５）そして端末８０は、生成した共通鍵を用いて、暗号化された、解析用ＩＤに対応付けられた解析結果を復号する。そして端末８０は、復号の結果、ユーザについての解析結果を取得する。図３の例では、端末８０は、生成した共通鍵「K-gb2a2」を用いて、暗号化された、解析用ＩＤ「i」に対応付けられた解析結果を復号し、その結果、解析用ＩＤ「i」に対応付けられた解析結果を取得する。
【００５８】
図３を参照しながら説明した鍵交換方法を用いると、図３の手順（６）において収集サーバ１０は、共通鍵のハッシュ値を用いて、ユーザの公開鍵の真正性を検証している。すなわち、２回目以降の解析結果の取得処理においては、通信装置６０と収集サーバ１０間では、公開鍵の電子証明書の送受信が行われない。鍵情報（数10byte)の転送に比べ、電子証明書(数Kbyte)は情報量が多いため、このような電子証明書の送受信が行われない本実施形態では、例えば専用線等で接続される場合、回線のコストを抑えることができる。さらに、収集サーバ１０における、電子証明書の検証のための認証機関へ問い合わせや電子証明書の失効チェック等を削減でき、収集サーバ１０にかかる負荷を抑制することができる。
【００５９】
なお、図２及び図３の例では、わかりやすくするために、通信装置６０が個人のユーザによって使用される場合について説明したが、通信装置６０は、ポータルサイトを提供するサーバなど、複数のユーザからのアクセスを受け付ける装置であってもよい。
【００６０】
＜システム構成と装置構成＞
図４は、システム構成の例を示す。以下の説明では、通信装置６０が複数のユーザからのアクセスを受け付ける場合を例として説明する。各ユーザは個々の端末８０（８０ａ、８０ｂ）を用い、インターネット５ａを介して通信装置６０にアクセスする。通信装置６０は、収集サーバ１０や解析サーバ３０に対して、各ユーザの端末８０の代理として代理認証処理を行う。通信装置６０は、インターネット５ｂを介して収集サーバ１０や解析サーバ３０と通信する。収集サーバ１０、解析サーバ３０、通信装置６０、端末８０の装置構成については、後述する。なお、インターネット５ａ、５ｂを介した通信では、適宜、ＶＰＮが用いられるものとする。
【００６１】
図５は、収集サーバ１０の構成の例を示す。収集サーバ１０は、ゲートウェイ（ＧＷ）部１１、認証部１６、アプリケーション処理部２１、記憶部２２を備える。ゲートウェイ部１１は、受信部１２、送信部１３、情報収集部１４、ＩＤ変換処理部１５、セッション管理部１７、解析用ＩＤ管理部１８、署名検証部１９、鍵管理部２０を有する。記憶部２２は、解析用ＩＤテーブル２３、セッション管理テーブル２４を保持し、さらに、ゲートウェイ部１１、認証部１６、アプリケーション処理部２１等で使用されるデータも記憶する。
【００６２】
受信部１２は、インターネット５ｂを介して通信装置６０、及び解析サーバ３０からデータを受信する。また、受信部１２は、受信したデータをそのデータの種類に応じて、認証部１６、情報収集部１４、セッション管理部１７、解析用ＩＤ管理部１８、アプリケーション処理部２１、などに振り分ける。送信部１３は、認証部１６、ＩＤ変換処理部１５、セッション管理部１７、解析用ＩＤ管理部１８、アプリケーション処理部２１などから入力されたデータの送信を行う。送信部１３は、インターネット５ｂを介して解析サーバ３０や通信装置６０にデータを送信する。
【００６３】
情報収集部１４は、種々のデータを収集する。ここで収集するデータは例えば、インターネット５ｂを介して接続された各種センサによって計測されたデータであってもよい。そして収集したデータをＩＤ変換処理部１５に送信する。
【００６４】
ＩＤ変換処理部１５は、情報収集部１４からデータを受信する。ＩＤ変換処理部１５は、受信したデータから秘匿情報を抽出し、ユーザに対応付けられた解析用ＩＤで秘匿情報を置き換えることにより、置換データを生成する。ＩＤ変換処理部１５は、置換データを生成するために使用する解析用ＩＤを、解析用ＩＤテーブル２３を参照して決定する。解析用ＩＤテーブル２３は、ユーザを一意に識別する情報、置換データの生成の際にそのユーザのデータに付加される解析用ＩＤ、及び公開鍵の真正性の検証に用いる検証用秘密情報を対応付ける。解析用ＩＤテーブル２３の例を図６に示す。図６は、ユーザが学生であり、グループが学校である場合の例であり、各ユーザの生徒ＩＤが解析用ＩＤと対応付けられている。また図６の（ａ）では、検証用秘密情報には情報が格納されていないが、初回のログイン時に鍵管理部２０により生成された検証用秘密情報が生徒ＩＤに対応付けて記録される。図６の（ｂ）は、検証用秘密情報が記録された解析用ＩＤテーブル２３の例である。これについては後ほど説明する。そしてＩＤ変換処理部１５は、生成した置換データを、送信部１３を介して、解析サーバ３０へ送信する。
【００６５】
認証部１６は、収集サーバ１０にアクセスしたユーザについての認証処理を行い、アクセスしているユーザが収集サーバ１０を利用する権限を有するかを判定する。認証部１６は、収集サーバ１０にアクセスする権限を有する個々のユーザについて、アカウントとパスワードの組み合わせの情報を記憶しているものとする。以下、個々のユーザに割り当てられたアカウントを「ユーザアカウント」と記載するものとする。
【００６６】
セッション管理部１７は、認証部１６での認証が成功すると、セッションＩＤを生成する。セッション管理部１７は、送信部１３を介して、認証が成功した通信装置６０に向けてセッションＩＤを送信する。さらに、セッション管理部１７は、各セッションについて、そのセッションによって通信を行っているユーザに関する情報を対応付けることによりセッション管理テーブル２４を生成する。セッション管理テーブル２４の例と使用方法の例は後述する。
【００６７】
解析用ＩＤ管理部１８は、解析用ＩＤテーブル２３の変更が発生した場合に、解析用ＩＤテーブル２３を修正する。解析用ＩＤテーブル２３は、収集サーバ１０の運営者とユーザの間での契約により変更され得る。オペレータは、収集サーバ１０の制御に用いる通信装置６０から、解析用ＩＤ管理部１８に解析用ＩＤテーブル２３の変更内容を通知するメッセージを送信することにより、解析用ＩＤテーブル２３を修正することができる。
【００６８】
署名検証部１９は、端末８０から通信装置６０を介して受信した公開鍵の真正性の検証を、公開鍵の署名情報と、その署名情報とともに受信した電子証明書を用いて行う。具体的には例えば、署名検証部１９は、電子証明書の発行者（例えば認証局等）に問い合わせを行い、電子証明書の所有者が正当か否か、電子証明書が失効していないか、及び電子証明書の有効期間が満了していないか等を確認する。また例えば、署名検証部１９は、受信した公開鍵及び電子証明書に含まれる公開鍵を用いて算出した値と、受信した署名情報の値とを比較して、結果が一致しているかを確認する。端末８０から受信したユーザの公開鍵の真正性が確認されたら、ユーザの公開鍵は、通信装置６０を介さずに解析サーバ３０に送信される。またその際、収集サーバ１０において、ユーザの公開鍵が真正であると判定されたことを示す確認通知もユーザの公開鍵とともに送信される。
【００６９】
鍵管理部２０は、受信したユーザの公開鍵の真正性が署名検証部１９により確認されたら、収集サーバ１０の秘密鍵を検証用秘密情報として生成し、また、生成した秘密鍵に対応する公開鍵を検証用情報として生成する。鍵管理部２０は、生成した検証用秘密情報を生徒ＩＤに対応付けて、解析用ＩＤテーブル２３に格納する。また、検証用情報は、ユーザの公開鍵とともに、通信装置６０を介さずに解析サーバ３０に送信される。尚、ここで生成する鍵の生成アルゴリズムは、ユーザの公開鍵と収集サーバ１０の秘密鍵で生成した共通鍵と、収集サーバ１０の公開鍵と端末８０の秘密鍵で生成した共通鍵と、が同じになるように生成されるものである。例えば鍵の生成アルゴリズムは、Diffie-Hellman方式である。
【００７０】
アプリケーション処理部２１は、受信部１２から入力されたデータに対して、アプリケーションによる処理を行う。
【００７１】
図７は、解析サーバ３０の構成の例を示す。解析サーバ３０は、ゲートウェイ部３１、認証部３４、アプリケーション処理部４０、記憶部５０を備える。ゲートウェイ部３１は、受信部３２、送信部３３、アクセス識別子生成部３５、アドレス解決部３６、シーケンス管理部３７、鍵管理部３８を有する。
【００７２】
受信部３２は、インターネット５ｂを介して通信装置６０や収集サーバ１０からデータを受信する。そして受信したデータを種類に応じて、受信部３２は、認証部３４、アクセス識別子生成部３５、アドレス解決部３６、シーケンス管理部３７、鍵管理部３８、アプリケーション処理部４０などに振り分ける。送信部３３は、認証部３４、アクセス識別子生成部３５、アドレス解決部３６、シーケンス管理部３７、鍵管理部３８、アプリケーション処理部４０などから入力されたデータの送信を行う。送信部１３は、インターネット５ｂを介して収集サーバ１０や通信装置６０にデータを送信する。
【００７３】
認証部３４は、解析サーバ３０にアクセスしたユーザについての認証処理を行い、アクセスしているユーザが解析サーバ３０を利用する権限を有するかを判定する。ここで、各ユーザは、通信装置６０を介して、解析サーバ３０にゲストアカウントを用いて、認証を要求する。もしくは、ユーザは、そのユーザの所属するグループに割り当てられたアカウントを用いて認証を要求する。この場合、認証部３４は、解析サーバ３０にアクセスする権限を有するグループについて、アカウントとパスワードの組み合わせの情報を記憶しているものとする。以下、認証部３４に記憶されている各グループのアカウントを「グループアカウント」と記載するものとする。
【００７４】
アクセス識別子生成部３５は、認証部３４での認証が成功すると、セッションＩＤを生成し、送信部３３を介して、認証に成功した装置にセッションＩＤを送信する。さらに、解析結果を要求する要求メッセージを解析サーバ３０が受信した場合、アクセス識別子生成部３５は、アクセス識別子を生成する。アクセス識別子生成部３５は、アクセス識別子をセッションＩＤに対応づけて記憶部５０中の解析用ＩＤテーブル５２に記録することができる。
【００７５】
アドレス解決部３６は、アカウントテーブル５３を使用する。アカウントテーブル５３は、グループアカウントと、そのグループアカウントで識別されるグループのデータを保持している収集サーバ１０を識別する識別情報を対応付けている。アカウントテーブル５３は、収集サーバ１０と解析業者の間で解析サービスが契約されると、解析サービスの提供に先立って生成されるものとする。図８にアカウントテーブル５３の例を示す。図８の例では、識別情報として、ユーザが収集サーバ１０へのアクセスに用いるＵＲＬ（Uniform Resource Locator）が用いられている。なお、識別情報は、ＵＲＬに限られず、例えば、収集サーバ１０に割り当てられたＩＰアドレス（Internet Protocol address）などであっても良い。
【００７６】
シーケンス管理部３７は、アクセス識別子ごとに、そのアクセス識別子が収集サーバ１０で登録されたかを判定し、判定結果を状態テーブル５４に記録する。状態テーブル５４の例については後述する。
【００７７】
鍵管理部３８は、収集サーバ１０から、通信装置６０を介さずにユーザの公開鍵を受信する。また、鍵管理部３８は、解析サーバ３０の秘密鍵と、その秘密鍵に対応する公開鍵を作成する。また鍵管理部３８は、作成した解析サーバ３０の公開鍵を、予め登録しておいた電子証明書の公開鍵を用いて署名し、署名情報（電子署名）を生成する。尚、電子証明書には、署名情報の生成で使用される公開鍵と、その公開鍵の所有者情報とが含まれ、電子証明書に含まれる公開鍵は、鍵管理部３８が生成する公開鍵とは異なるものである。また鍵管理部３８は、受信したユーザの公開鍵と、作成した解析サーバ３０の秘密鍵とを用いて、共通鍵を生成する。尚、ここで生成する鍵の生成アルゴリズムは、ユーザの公開鍵と解析サーバ３０の秘密鍵で生成した共通鍵と、解析サーバ３０の公開鍵と端末８０の秘密鍵で生成した共通鍵が同じになるように生成されるものである。例えば鍵の生成アルゴリズムは、Diffie-Hellman方式である。共通鍵を生成すると鍵管理部３８は、生成した共通鍵と、ユーザの公開鍵と、解析サーバ３０の公開鍵と、解析用ＩＤとを対応付けて、解析用ＩＤテーブル５２に記録する。
【００７８】
アプリケーション処理部４０は、解析部４１と出力部４２を有する。解析部４１は、収集サーバ１０から受信した置換データを解析し、解析結果を生成する。解析結果はデータ５１として記憶される。
【００７９】
出力部４２は、要求メッセージによって解析結果の出力が要求されているユーザに対応する解析用ＩＤが解析サーバ３０に通知されると、通知された解析用ＩＤに対応付けられた解析結果を記憶部５０から取得し、鍵管理部３８に出力する。鍵管理部３８は、検証用情報と、出力部４２から入力された解析結果の情報とを、生成した共通鍵を用いて暗号化し暗号データを生成する。そして鍵管理部３８は、暗号化した暗号データと、解析サーバ３０の公開鍵と、解析サーバ３０の電子証明書で公開鍵を署名した署名情報と解析サーバ３０の電子証明書とを、通信装置６０を介して端末８０へ送信する。
【００８０】
記憶部５０は、データ５１、解析用ＩＤテーブル５２、アカウントテーブル５３、状態テーブル５４を保持している。なお、データ５１は解析結果を含む。記憶部５０は、さらに、ゲートウェイ部３１、認証部３４、アプリケーション処理部４０での処理により得られたデータや、ゲートウェイ部３１、認証部３４、アプリケーション処理部４０での処理に用いられるデータも記憶する。
【００８１】
図９は通信装置６０の構成の例を示す。通信装置６０は、ゲートウェイ部６１、認証部６４、ＩＤ管理部６５、記憶部７０を備える。ゲートウェイ部６１は、受信部６２、送信部６３、代理認証部６６、セッション管理部６７、シーケンス管理部６８を備える。
【００８２】
記憶部７０は、ＩＤ管理テーブル７１、連携テーブル７２、セッション管理テーブル７３を保持し、さらに、ゲートウェイ部６１、送信部６３、ＩＤ管理部６５の処理で生成されたデータを記憶する。
【００８３】
受信部６２は、インターネット５ａを介して端末８０からデータを受信し、さらに、インターネット５ｂを介して収集サーバ１０や解析サーバ３０からデータを受信する。また、受信部６２は、受信したデータを種類に応じて、認証部６４、ＩＤ管理部６５、代理認証部６６、セッション管理部６７、シーケンス管理部６８に振り分ける。送信部６３は、インターネット５ａを介して端末８０にデータを送信し、さらに、インターネット５ｂを介して収集サーバ１０や解析サーバ３０にデータを送信する。
【００８４】
認証部６４は、通信装置６０にアクセスした端末８０についての認証処理を行い、端末８０を介してアクセスしているユーザが、通信装置６０を利用する権限を有するかを判定する。例えば認証部６４は、端末８０から電子証明書を受信して、電子証明書の所有者の情報を用いて、端末８０の認証を行う。
【００８５】
セッション管理部６７は、認証に成功した端末８０に対してセッションＩＤを生成する。また、セッション管理部６７は、通信装置６０と解析サーバ３０との通信や、通信装置６０と収集サーバ１０の間の通信に用いられるセッションＩＤの情報も管理する。以下の説明では、セッションＩＤ同士の区別を容易にするために、端末８０と通信装置６０の間で使用されるセッションＩＤを「第１セッションＩＤ」、通信装置６０と解析サーバ３０の間で使用されるセッションＩＤを「第２セッションＩＤ」と記載する。さらに、通信装置６０と収集サーバ１０の間で使用されるセッションＩＤを「第３セッションＩＤ」と記載する。
【００８６】
ＩＤ管理部６５は、ＩＤ管理テーブル７１の更新処理を行う。ＩＤ管理テーブル７１は、通信装置６０が代理認証を行う対象のユーザに関する情報を保持する。ＩＤ管理テーブル７１は、ユーザと通信装置６０によるサービスを提供する業者との間の契約が行われると、生成もしくは更新される。ＩＤ管理テーブル７１では、ユーザごとにアクセス先を識別する情報と、アクセス先での認証に用いられる情報が対応付けて記録される。図１０にＩＤ管理テーブル７１の例を示す。図１０の例では、ユーザＩＤに対応付けて、通信装置６０が代理認証を行うアクセス先のＵＲＬと、アクセス先での認証に用いられるアカウントとパスワードが記録されている。
【００８７】
代理認証部６６は、ＩＤ管理テーブル７１の情報を用いて代理認証を行う。
セッション管理部６７は、ユーザごとに、第１セッションＩＤ、第２セッションＩＤ、第３セッションＩＤの各値と、第２セッションＩＤや第３セッションＩＤを用いた通信での通信先の情報を管理する。またセッション管理部６７は、受信したユーザの公開鍵と、電子証明書と、公開鍵の署名情報または共通鍵のハッシュ値を、連携テーブル７２に格納し管理する。
【００８８】
シーケンス管理部６８は、セッションＩＤに対応付けてそのセッションＩＤで特定される通信の状況を特定し、セッション管理テーブル７３に記録する。
【００８９】
図１１は、端末８０の構成の例を示す。端末８０は、アプリケーション処理部８８、表示装置８９、復元処理部９０、及び記憶部９１を含む。復元処理部９０は、送信部８１、受信部８２、秘匿情報復元部８３、セッション管理部８４、署名検証部８５、鍵管理部８６、署名作成部８７を含む。
【００９０】
送信部８１は、インターネット５ａを介して通信装置６０へデータを送信する。
受信部８２は、インターネット５ａを介して通信装置６０からデータを受信し、受信したデータを種類に応じて、秘匿情報復元部８３、セッション管理部８４、署名検証部８５、鍵管理部８６、署名作成部８７に振り分ける。
【００９１】
秘匿情報復元部８３は、通信装置６０へ送信するデータを暗号化する場合、暗号化の処理を行う。さらに、通信装置６０から受信部６２を介して受信したデータが暗号化されている場合、秘匿情報復元部８３は、受信データを復号する。復号した暗号データに検証用情報が含まれている場合、秘匿情報復元部８３は、その検証用情報を記憶部９１の検証用情報９３に記録する。
【００９２】
セッション管理部８４は、通信装置６０との間の通信に使用されるセッション情報を保持し、適宜、更新する。
【００９３】
署名検証部８５は、解析サーバ３０から通信装置６０を介して受信した（解析サーバ３０の）公開鍵の真正性の検証を、公開鍵の署名情報とともに受信した電子証明書の公開鍵を用いて行う。具体的には例えば、署名検証部８５は、電子証明書の発行者（例えば認証局等）に問い合わせを行い、電子証明書の所有者が正当か否か、電子証明書が失効していないか、及び電子証明書の有効期間が満了していないか等を確認する。また例えば、署名検証部８５は、受信した公開鍵及び電子証明書に含まれる公開鍵を用いて算出した値と、受信した署名情報の値とを比較して、結果が一致しているかを確認する。
【００９４】
鍵管理部８６は、署名検証部８５により解析サーバ３０の公開鍵の真正性が確認されると、解析サーバ３０の公開鍵とユーザの秘密鍵とを用いて、共通鍵を生成する。そして鍵管理部８６は、生成した共通鍵（解析サーバとユーザの共通鍵）と、解析サーバ３０の公開鍵と、ユーザの秘密鍵を対応付けて、鍵管理テーブル９２に記録する。ここで記録された共通鍵を用いて、秘匿情報復元部８３は、解析サーバ３０から受信した暗号データを復号する。
【００９５】
また、鍵管理部８６は、解析結果要求処理の開始に当たって、検証用情報が記憶部９１に記憶されているかに基づいて、解析結果要求処理が初回か、２回目以降かを判定する。解析結果要求処理が初回であると判定した場合、鍵管理部８６はユーザの秘密鍵と、その秘密鍵に対応する公開鍵を生成し、署名作成部８７に、生成した公開鍵の署名情報の生成を指示する。ここで生成する鍵の生成アルゴリズムは、ユーザの公開鍵と解析サーバ３０の秘密鍵で生成した共通鍵と、解析サーバ３０の公開鍵と端末８０の秘密鍵で生成した共通鍵が同じになるように生成されるものである。例えば鍵の生成アルゴリズムは、Diffie-Hellman方式である。一方、解析結果要求処理が２回目以降であると判定した場合、鍵管理部８６は、以前の解析結果要求処理で使用された秘密鍵とは異なる秘密鍵と、その秘密鍵に対応する公開鍵を生成し、署名作成部８７に、生成した公開鍵の署名として共通鍵のハッシュ値を生成するように指示する。尚、秘密鍵は、端末８０を利用する各ユーザを一意に識別する識別情報に対応付けられているとする。ここで生成する鍵の生成アルゴリズムは、ユーザの公開鍵と収集サーバ１０の秘密鍵で生成した共通鍵と、収集サーバ１０の公開鍵と端末８０の秘密鍵で生成した共通鍵が同じになるように生成されるものである。例えば鍵の生成アルゴリズムは、Diffie-Hellman方式である。
【００９６】
署名作成部８７は、鍵管理部８６から公開鍵の署名情報の生成を指示されると、予め登録しておいた電子証明書の公開鍵を用いて、ユーザの公開鍵を署名することで、署名情報を生成する。尚、電子証明書には、署名情報の生成に使用する公開鍵と、その公開鍵の所有者情報とが含まれ、電子証明書に含まれる公開鍵は、鍵管理部８６が生成する公開鍵とは異なるものである。署名作成部８７は、署名情報を生成すると、ユーザの秘密鍵、公開鍵、署名情報、及び電子証明書を対応付けて鍵管理テーブル９２に記録する。
【００９７】
また、鍵管理部８６から公開鍵の署名情報として共通鍵のハッシュ値の生成を指示されると、署名作成部８７は、検証用情報９３と、鍵管理部８６により生成された秘密鍵とを用いて、共通鍵を生成する。ここで生成した共通鍵が、鍵管理部８６から生成を指示された、公開鍵の署名となる。尚、検証用情報は上述したように、収集サーバ１０の公開鍵の情報である。そして署名作成部８７は、所定のハッシュ関数を用いて、生成した共通鍵のハッシュ値を算出する。ハッシュ値を算出すると、署名作成部８７は、ユーザの秘密鍵、公開鍵、生成した共通鍵（収集サーバとユーザの共通鍵）、及びハッシュ値を対応付けて鍵管理テーブル９２に記録する。
【００９８】
アプリケーション処理部８８は、アプリケーションによるデータの処理を行う。
表示装置８９は、端末８０で処理されているデータをユーザが視認できるように表示する。例えば、表示装置８９は、アプリケーション処理部８８での処理結果を表示する。
【００９９】
記憶部９１は、鍵管理テーブル９２と検証用情報９３を記憶する。図１２は、記憶部９１に記憶される情報の一例を示す。図１２（Ａ）は、鍵管理テーブル９２の構成の一例である。図１２（Ｂ）は、検証用情報９３の構成の一例である。図１２（Ａ）の例では、ユーザの秘密鍵、ユーザの公開鍵、電子証明書、解析サーバの公開鍵、解析サーバとユーザの共通鍵、収集サーバとユーザの共通鍵、署名情報が対応付けて、記録されている。尚、図１２（Ａ）の署名情報には、初回の解析結果要求処理では、ユーザの公開鍵を電子証明書の公開鍵を用いて署名した署名情報が格納され、２回目以降の処理においては、共通鍵のハッシュ値の値が格納される。
【０１００】
図１３は、サーバおよび端末８０のハードウェア構成の例を示す。収集サーバ１０、解析サーバ３０、通信装置６０、端末８０のいずれも、図１３に示すハードウェア構成をとることができる。サーバは、プロセッサ１０１、メモリ１０２、入力装置１０３、出力装置１０４、バス１０５、外部記憶装置１０６、媒体駆動装置１０７、ネットワーク接続装置１０９を備える。収集サーバ１０、解析サーバ３０、通信装置６０、端末８０は、例えば、コンピュータなどで実現されることがある。
【０１０１】
プロセッサ１０１は、Central Processing Unit（ＣＰＵ）を含む任意の処理回路とすることができる。収集サーバ１０において、プロセッサ１０１は、情報収集部１４、ＩＤ変換処理部１５、認証部１６、セッション管理部１７、解析用ＩＤ管理部１８、署名検証部１９、鍵管理部２０、アプリケーション処理部２１として動作する。解析サーバ３０において、プロセッサ１０１は、認証部３４、アクセス識別子生成部３５、アドレス解決部３６、シーケンス管理部３７、鍵管理部３８、アプリケーション処理部４０として動作する。通信装置６０において、プロセッサ１０１は、認証部６４、ＩＤ管理部６５、代理認証部６６、セッション管理部６７、シーケンス管理部６８として動作する。端末８０では、プロセッサ１０１は、秘匿情報復元部８３、セッション管理部８４、署名検証部８５、鍵管理部８６、署名作成部８７、アプリケーション処理部８８として動作する。なお、プロセッサ１０１は、例えば、外部記憶装置１０６に記憶されたプログラムを実行することができる。
【０１０２】
メモリ１０２は、プロセッサ１０１の動作により得られたデータや、プロセッサ１０１の処理に用いられるデータを、適宜、記憶する。メモリ１０２は、収集サーバ１０では記憶部２２として動作し、解析サーバ３０では記憶部５０として動作し、通信装置６０では記憶部７０として動作し、端末８０では記憶部９１として動作する。
【０１０３】
ネットワーク接続装置１０９は、他の装置との間の通信のための処理を行なう。ネットワーク接続装置１０９は、収集サーバ１０では受信部１２と送信部１３として動作し、解析サーバ３０では受信部３２と送信部３３として動作する。また、ネットワーク接続装置１０９は、通信装置６０では、受信部６２、送信部６３として動作し、端末８０では、送信部８１、受信部８２として動作する。
【０１０４】
入力装置１０３は、例えば、ボタン、キーボードやマウスとして実現され、出力装置１０４は、ディスプレイなどとして実現される。例えば、端末８０では、出力装置１０４は表示装置８９として動作する。バス１０５は、プロセッサ１０１、メモリ１０２、入力装置１０３、出力装置１０４、外部記憶装置１０６、媒体駆動装置１０７、ネットワーク接続装置１０９の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置１０６は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ１０１などに提供する。媒体駆動装置１０７は、メモリ１０２や外部記憶装置１０６のデータを可搬記憶媒体１０８に出力することができ、また、可搬記憶媒体１０８からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体１０８は、フロッピイディスク、Magneto-Optical（ＭＯ）ディスク、Compact Disc Recordable（ＣＤ−Ｒ）やDigital Versatile Disk Recordable（ＤＶＤ−Ｒ）を含む、持ち運びが可能な任意の記憶媒体とすることができる。
【０１０５】
＜実施形態＞
以下、収集サーバ１０がＦ高校により運営されており、生徒の試験結果の解析が解析サーバ３０に依頼された場合を例として説明する。従って、以下の説明では、解析サーバ３０を参照しようとするユーザは、Ｆ高校の各生徒である。また、解析サーバ３０は、解析結果の参照を要求しているユーザの試験結果から得られたデータをユーザに送信することになる。
【０１０６】
図１４は、置換データの生成方法と置換データの解析結果の例を示す。図１４（ａ）は、解析される対象となる生徒のうちの１人の試験結果の例を示す。各教科の試験結果は、受験者の氏名や生徒ＩＤに対応付けられている。この例では、受験者の氏名と生徒ＩＤが第３者に対しては秘匿される対象であり、秘匿情報として扱われるものとする。そこで、収集サーバ１０の解析用ＩＤ管理部１８は、試験結果が得られている生徒を一意に識別できる解析用ＩＤを決定することにより、解析用ＩＤテーブル２３（図６参照）を生成する。ＩＤ変換処理部１５は、解析用ＩＤテーブル２３が生成された後、解析用ＩＤテーブル２３を用いて、秘匿情報を解析用ＩＤに置き換える。図１４（ａ）の試験結果を、図６に示す解析用ＩＤテーブル２３を用いて置換データに変換する場合、ＩＤ変換処理部１５は、秘匿情報である生徒ＩＤと氏名を、生徒ＩＤに対応付けられた解析用ＩＤに置き換える。従って、ＩＤ変換処理部１５は、図１４（ａ）に示す情報から、図１４（ｂ）に示す置換データを生成する。ＩＤ変換処理部１５は、解析サーバ３０に解析を依頼する対象となっている全ての生徒の試験結果についても同様の処理を行う。さらに、ＩＤ変換処理部１５は、生成した置換データを解析サーバ３０に送信する。
【０１０７】
収集サーバ１０から置換データを受信すると、解析サーバ３０の解析部４１は、置換データを解析する。各ユーザの解析結果は、解析用ＩＤに対応付けて記録される。解析により得られた結果が各教科の偏差値である場合、解析部４１は、解析用ＩＤ＝１２３４５６のユーザに対して、図１４（ｃ）に示す解析結果を保持することができる。また、解析部４１は、図１４（ｄ）に示すように、個々のユーザの解析結果の有無を容易に判定するためのメタデータを生成することもできる。
【０１０８】
図１５Ａと図１５Ｂは、実施形態に、ユーザが初めて解析結果の取得要求を行うときの通信の例を示すシーケンス図である。図１５Ａと図１５Ｂを参照しながら、解析サーバ３０での解析が終了した後で、ユーザが解析結果を解析サーバ３０に要求するときに行われる通信と公開鍵の交換の例を説明する。以下の例では、ユーザは、図１４（ａ）に示すテスト結果を出した生徒であるとする。なお、図１５Ａ、図１５Ｂの例では、端末８０と通信装置６０の間でSecurity Assertion Markup Language（ＳＡＭＬ）を用いた代理認証が行われるものとする。
【０１０９】
（Ａ１）ユーザは、端末８０を用いて通信装置６０に、解析結果の閲覧のメニューを含むポータルサイトへのアクセスを要求する（ポータルサービス要求）。
【０１１０】
（Ａ２）通信装置６０から認証が要求されると（この要求を認証要求と記す）、端末８０の鍵管理部８６は、ユーザの秘密鍵、ユーザの秘密鍵に対応する公開鍵を生成し、署名作成部８７は、予め登録された電子証明書を用いて公開鍵の署名情報を生成する。そして署名作成部８７は、鍵管理テーブル９２に、生成したユーザの秘密鍵、ユーザの公開鍵、ユーザの公開鍵の署名情報、及び電子証明書を対応付けて格納する。電子証明書には、公開鍵の所有者の情報としてユーザの識別情報が含まれているおり、通信装置６０にアクセスするための認証にも使用される。尚、ユーザの秘密鍵、公開鍵、署名情報、電子証明書は予め端末８０の記憶部９１の鍵管理テーブル９２に記憶されていてもよい。
【０１１１】
（Ａ３）端末８０のアプリケーション処理部８８は、認証要求とともに、電子証明書を通信装置６０に送信する。ここでは、電子証明書の所有者として「ｈａｎａｋｏ」が示されているものとする。
【０１１２】
（Ａ４）通信装置６０の受信部６２は、認証要求を認証部６４に出力する。認証部６４は、電子証明書の発行者に問い合わせを行い、電子証明書の所有者が正当か否かを判定する。そして、正当であると判定した場合、端末８０のアクセスを許可する。また、通信装置６０の認証部６４は、端末８０に認証アサーションを発行する。
【０１１３】
（Ａ５）端末８０のアプリケーション処理部８８は、認証アサーションを通信装置６０に送信することにより、認証に成功したことを通信装置６０に通知する。
【０１１４】
（Ａ６）認証アサーションを受信すると、通信装置６０のセッション管理部６７は、端末８０に第１セッションＩＤを割り当て、第１セッションＩＤを端末８０に通知する。このとき、例えば、HyperText Transfer Protocol（ＨＴＴＰ）のＳｅｔ  Ｃｏｏｋｉｅヘッダを使用することができる。
【０１１５】
図１６は、端末８０と通信装置６０の間の通信による情報の更新の例を示す。第１セッションＩＤが生成されると、シーケンス管理部６８は、第１セッションＩＤに対応付けて端末８０と通信装置６０の間の通信手順の進行状況を、セッション管理テーブル７３に記録する。例えば、端末８０との通信に割り当てられる第１セッションＩＤは、ｘｘｘｘ００１であるとする。すると、シーケンス管理部６８は、手順（Ａ６）の時点では、図１６に示されているセッション管理テーブル７３ａを保持する。
【０１１６】
（Ａ７）アプリケーション処理部８８は、通信装置６０にポータルサービス要求を送信することにより、解析結果の閲覧のメニューを含むポータルサイトへのアクセスを要求する。なお、ポータルサイトへのアクセスの要求に用いられるメッセージには、第１セッションＩＤが含まれている。
【０１１７】
（Ａ８）通信装置６０は、端末８０に向けてポータルサイトの表示に用いられるデータを送信する。このとき、認証部６４は、第１セッションＩＤを、手順（Ａ３）の認証の際に通知された電子証明書の所有者情報、すなわちユーザの識別情報に対応付けることにより、ポータルサイトへのアクセスを要求してきたユーザについての情報を連携テーブル７２に記録する。手順（Ａ８）の時点では、通信装置６０は、図１６に示す連携テーブル７２ａを保持する。なお、以下の説明では、手順（Ａ３）の認証の際に端末８０から通信装置６０に通知された電子証明書の所有者情報を「ユーザＩＤ」と記載することがある。
【０１１８】
一方、端末８０の受信部８２は、通信装置６０から受信したデータをアプリケーション処理部８８に出力する。アプリケーション処理部８８は、入力されたデータを用いて、表示装置８９に解析結果の閲覧メニューを含むポータルサイトを表示する。
【０１１９】
（Ａ９）ユーザは、表示装置８９でポータルサイトを確認し、入力装置によって、解析結果の閲覧を選択する。すると、アプリケーション処理部８８は、解析結果の閲覧の要求を表す解析結果要求を、通信装置６０に送信する。このとき、解析結果要求の中には、第１セッションＩＤ、解析結果を保持している解析サーバ３０のアドレス（ＵＲＬ）、ユーザの公開鍵、及び公開鍵の署名情報が含まれている。また、セッション管理部６７は、解析結果要求によりアクセスが要求されているアドレスを認識することができるものとする。このため、解析結果要求を受信すると、通信装置６０では、セッション管理部６７が連携テーブル７２ａを図１６の連携テーブル７２ｂに更新する。尚ここでは、解析サーバ３０のアドレス「https://kaisekiservice1.com」、公開鍵「Key-ga」、署名情報「署名ga」、電子証明書「PKI-a」が指定された例を示している。尚、電子証明書の情報については、セッション管理部６７は、（Ａ４）において認証部６４が既に受信していたものを取得する。また、シーケンス管理部６８は、セッション管理テーブル７３を、図１６に示すセッション管理テーブル７３ｂに更新する。
【０１２０】
次に、通信装置６０が解析サーバ３０にアクセスしてから、アクセス識別子が通信装置６０に通知されるまでの処理の例を、図１５Ａの（Ｂ１）〜（Ｂ７）を参照しながら説明する。
【０１２１】
（Ｂ１）代理認証部６６は、解析結果要求でアクセスが要求されているアドレスを連携テーブル７２ｂの「第２セッションＩＤを用いる通信先」から取得し、アクセス先が解析サーバ３０であると判定する。すると、代理認証部６６は、解析結果を要求するための要求メッセージを解析サーバ３０に送信する。このとき、まだ通信装置６０と解析サーバ３０の間の認証が行われていないので、要求メッセージには第２セッションＩＤは含まれていない。
【０１２２】
（Ｂ２）解析サーバ３０の認証部３４は、第２セッションＩＤを含まない要求メッセージの送信元に、認証を要求する。
【０１２３】
（Ｂ３）代理認証部６６は、解析サーバ３０との間の認証に用いるアカウントとパスワードを、ＩＤ管理テーブル７１を用いて特定する。ここでは、代理認証部６６は、解析サーバ３０のＵＲＬ「https://kaisekiservice1.com」とユーザＩＤをキーとしてＩＤ管理テーブル７１を検索する。なお、代理認証部６６は、解析結果要求に含まれている第１セッションＩＤと連携テーブル７２ｂからユーザＩＤを特定する。すると、代理認証部６６は、ユーザが所属しているグループ（Ｆ高校）に対して指定されているグループアカウントとパスワードを、代理認証に使用する情報として取得する。以下の説明では、代理認証部６６はＩＤ管理テーブル７１（図１０）を参照することにより、グループアカウント「ｄ００１」と、パスワード「ｐｗ００１」を代理認証に使用することを決定したものとする。代理認証部６６は、代理認証に使用することを決定したグループアカウントとパスワードを使用して、解析サーバ３０に認証を要求するための認証要求メッセージを送信する。
【０１２４】
（Ｂ４）認証要求メッセージを通信装置６０から受信すると、解析サーバ３０の受信部３２は、認証要求メッセージを認証部３４に出力する。認証部３４は、予め記憶しているアカウントとパスワードの組み合わせのいずれかと、入力された情報に含まれるグループアカウントとパスワードの組み合わせが一致している場合、通信装置６０のアクセスを許可し、第２セッションＩＤを生成する。以下の説明では、第２セッションＩＤとして、「Ｓ０００１」が生成されたとする。図１７は、通信装置６０と解析サーバ３０の間の認証による情報の更新の例を説明する図である。認証部３４での認証に成功すると、アクセス識別子生成部３５は、図１７の解析用ＩＤテーブル５２ａに示すように、第２セッションＩＤとグループアカウントを対応付けて記録する。さらに、認証部３４は、通信装置６０に第２セッションＩＤを通知する。
【０１２５】
（Ｂ５）解析サーバ３０から第２セッションＩＤを含む通知メッセージを受信した受信部６２は、受信した通知メッセージを代理認証部６６とセッション管理部６７に出力する。セッション管理部６７は、通知メッセージから第２セッションＩＤを取得することにより、連携テーブル７２ｂ（図１６）を連携テーブル７２ｃ（図１７）に更新する。代理認証部６６は、第２セッションＩＤを含めた要求メッセージを生成し、送信部６３を介して、解析サーバ３０に送信する。
【０１２６】
（Ｂ６）要求メッセージを通信装置６０から受信すると、解析サーバ３０の受信部３２は、要求メッセージをアクセス識別子生成部３５に出力する。すると、アクセス識別子生成部３５は、要求メッセージに含まれている第２セッションＩＤにアクセス識別子が対応付けられているかを、解析用ＩＤテーブル５２ａ（図１７）を参照して判定する。ここで受信した要求メッセージに含まれている第２セッションＩＤ「Ｓ０００１」には、アクセス識別子が対応付けられていない。そこで、アクセス識別子生成部３５は、第２セッションＩＤに対応付するアクセス識別子を決定する。以下、「Ｓ０００１」の第２セッションＩＤに対応付けられたアクセス識別子は「ａｃ００１」であるものとする。
【０１２７】
図１８は、アクセス識別子が解析サーバ３０から通信装置６０に通知されるときの情報の更新の例を説明する図である。アクセス識別子生成部３５は、アクセス識別子を決定すると、解析用ＩＤテーブル５２に記録する。例えば、アクセス識別子生成部３５は、解析用ＩＤテーブル５２ａを解析用ＩＤテーブル５２ｂに更新する。アクセス識別子生成部３５は、アクセス識別子を決定すると、アクセス識別子と第２セッションＩＤの組合せをシーケンス管理部３７に通知する。すると、シーケンス管理部３７は、アクセス識別子生成部３５から通知されたアクセス識別子が収集サーバ１０で登録されているかを特定するための状態テーブル５４を更新する。例えば、アクセス識別子生成部３５は、図１８に示す状態テーブル５４ａのように状態テーブル５４を更新することができる。
【０１２８】
さらに、アクセス識別子生成部３５は、アクセス識別子を収集サーバ１０に登録するための登録要求メッセージを生成する。登録要求メッセージを生成するために、アクセス識別子生成部３５は、アカウントテーブル５３（図８）を参照することにより、アクセス識別子を登録する収集サーバ１０に割り当てられたアドレスやＵＲＬを特定する。以下の説明では、収集サーバ１０に割り当てられたＵＲＬとして「https://abc.ed.jp」が特定されたとする。図１９に登録要求メッセージの例を示す。図１９に示す登録要求メッセージは、後述するように、ＨＴＴＰリダイレクトを用いて通信装置６０から収集サーバ１０に送信される。アクセス識別子生成部３５は、特定したアドレスを含む登録要求メッセージを、第２セッションＩＤで識別される通信先に送信する。
【０１２９】
（Ｂ７）登録要求メッセージを受信した受信部６２は、登録要求メッセージをセッション管理部６７に出力する。セッション管理部６７は、登録要求メッセージを用いて、連携テーブル７２ｃ（図１７）を連携テーブル７２ｄ（図１８）に更新する。さらに、セッション管理部６７は、登録要求メッセージを、収集サーバ１０に向けて送信する。例えば、セッション管理部６７は、図１９に示す登録要求メッセージを受信すると、収集サーバ１０に向けた登録要求メッセージに変形した上で、送信部６３を介して、収集サーバ１０に送信する。
【０１３０】
（Ｂ８）登録要求メッセージを受信した収集サーバ１０の受信部１２は、受信した登録要求メッセージを認証部１６に出力する。認証部１６は、登録要求メッセージに第３セッションＩＤが含まれているかを判定する。第３セッションＩＤが含まれていない場合、認証部１６は、登録要求メッセージの送信元に認証を要求する。ここでは、通信装置６０と収集サーバ１０の間で認証が行われていないため、認証部１６は、送信部１３を介して、通信装置６０に認証要求メッセージを送信する。このとき、認証部１６は、登録要求メッセージに含まれているアクセス識別子を、認証要求メッセージに含める。従って、ここでは、アクセス識別子「ａｃ００１」を含む認証要求メッセージが通信装置６０に向けて送信される。
【０１３１】
（Ｂ９）収集サーバ１０から認証要求メッセージを受信すると、通信装置６０の受信部６２は、受信した認証要求メッセージを代理認証部６６に出力する。すると代理認証部６６は、認証要求メッセージ中のアクセス識別子をキーとして連携テーブル７２ｄ（図１８）を検索する。連携テーブル７２ｄより、要求された認証は、ユーザＩＤ「ｈａｎａｋｏ」に関連した「https://abc.ed.jp」へのアクセスであることを特定する。そこで、代理認証部６６は、ユーザＩＤとアクセス先をキーとしてＩＤ管理テーブル７１を検索することにより、認証に使用するアカウントとパスワードを特定する。ＩＤ管理テーブル７１（図１０）は、収集サーバ１０に認証を要求する際のアカウントとして、ユーザごとに決定されているユーザアカウントを記録している。従って、通信装置６０から収集サーバ１０への認証では、ユーザアカウントが用いられる。例えば、ＩＤ管理テーブル７１が図１０の通りであると、認証に使用されるアカウントは「９８６０１２」、パスワードは「ｐｗｘｘｘ」である。代理認証部６６は、ＩＤ管理テーブル７１を用いて特定したアカウントとパスワードを用いて、収集サーバ１０に認証を要求する。
【０１３２】
（Ｂ１０）通信装置６０から認証要求を受信すると、収集サーバ１０の受信部１２は、通信装置６０からの認証要求を認証部１６に出力する。認証部１６は、予め記憶しているユーザアカウントとパスワードの組合せのいずれかと一致するアカウントとパスワードの組合せを含む認証要求が入力されると、通信装置６０からのアクセスを許可する。さらに、認証部１６は、新たに認証に成功したユーザのユーザアカウントをセッション管理部１７に出力する。セッション管理部１７は、認証部１６から通知されたユーザアカウントに対して、第３セッションＩＤを生成する。さらに、セッション管理部１７は、解析用ＩＤテーブル２３を用いて、新たに生成した第３セッションＩＤと解析用ＩＤを対応付けることにより、セッション管理テーブル２４を生成する。例えば、「９８６０１２」というアカウントからのアクセスに、「ｚｚｚｚｚｚｚ」という第３セッションＩＤが割り当てられたとする。すると、セッション管理部１７は、図２０に示すセッション管理テーブル２４ａを生成する。セッション管理部１７は、通信装置６０に、認証の成功と第３セッションＩＤを通知する。
【０１３３】
（Ｂ１１）認証の成功を通知するメッセージを受信した受信部６２は、そのメッセージをセッション管理部６７に出力する。セッション管理部６７は、入力されたメッセージを処理することにより、連携テーブル７２ｄ（図１８）を連携テーブル７２ｅ（図２０）に更新する。セッション管理部６７は、アクセス識別子「ａｃ００１」、第３セッションＩＤ、公開鍵、公開鍵の署名情報、及び電子証明書を含む登録要求メッセージを生成する。登録要求メッセージは、送信部６３を介して、収集サーバ１０に送信される。
【０１３４】
（Ｂ１２）第３セッションＩＤを含む登録要求メッセージを受信すると、収集サーバ１０の受信部１２は、受信したメッセージをセッション管理部１７に出力する。するとセッション管理部１７は先ず、受信した登録要求メッセージを署名検証部１９に出力する。署名検証部１９は、登録要求メッセージに電子証明書が含まれているか否かを判定する。登録要求メッセージに電子証明書が含まれていると判定すると、署名検証部１９は、受信した登録要求メッセージが端末８０による初回ログインにおけるものであると判定する。そして、署名検証部１９は、署名情報及び電子証明書を用いて、公開鍵の真正性を検証する。例えば、署名検証部１９は先ず、電子証明書の発行者に問い合わせを行い、電子証明書の所有者が正当か否かを判定する。そして署名検証部１９は、署名情報と電子証明書とを用いて、公開鍵の改竄やなりすましが行われていないか否かを判定する。検証の結果、受信したユーザの公開鍵が真正であると判定すると、署名検証部１９は、セッション管理部１７に公開鍵の真正性が確認されたことを通知する。公開鍵の真正性が確認されたことを通知されると、セッション管理部１７は、以下の動作を実行する。すなわちセッション管理部１７は、入力された登録要求メッセージに含まれている第３セッションＩＤをキーとして、セッション管理テーブル２４を検索する。セッション管理部１７は、ヒットしたエントリに、登録要求メッセージによって通知されたアクセス識別子、及びユーザの公開鍵を対応付けて登録する。この処理により、例えば、図２０に示すセッション管理テーブル２４ａは、セッション管理テーブル２４ｂのように更新される。セッション管理テーブル２４の更新が終了すると、セッション管理部１７は、アクセス識別子の登録の完了を通信装置６０に通知するための登録完了メッセージを生成し、送信部１３を介して、通信装置６０に送信する。このとき、登録完了メッセージには、登録が完了したアクセス識別子が含まれているものとする。
【０１３５】
（Ｂ１３）通信装置６０の受信部６２は、登録完了メッセージを受信すると、セッション管理部６７に出力する。セッション管理部６７は、登録完了メッセージに含まれているアクセス識別子について、登録が完了したことを解析サーバ３０に通知するメッセージ（登録完了通知メッセージ）を生成する。このとき、セッション管理部６７は、図２０に示す連携テーブル７２ｅを用いて、解析サーバ３０に割り当てられているアドレスと、第２セッションＩＤを特定する。
【０１３６】
（Ｃ１）図１５Ｂと図２１を参照しながら、アクセス識別子が収集サーバ１０に登録された後の情報の更新の例を説明する。解析サーバ３０の受信部３２は、通信装置６０から登録完了通知メッセージを受信すると、そのメッセージをアクセス識別子生成部３５とシーケンス管理部３７に出力する。シーケンス管理部３７は、登録完了通知メッセージを用いて、状態テーブル５４ａ（図１８）を状態テーブル５４ｂ（図２１）に更新する。アクセス識別子生成部３５は、登録の完了が通知されたアクセス識別子に対応付けられた解析用ＩＤを要求するメッセージ（解析用ＩＤ要求メッセージ）を生成する。アクセス識別子生成部３５は、ここで生成する解析用ＩＤ要求メッセージにアクセス識別子の情報を含ませる。解析用ＩＤ要求メッセージを生成する際に、アクセス識別子生成部３５は、解析用ＩＤテーブル５２を参照することにより、通知が完了したアクセス識別子に対応付けられたグループアカウントを取得する。例えば、アクセス識別子生成部３５は、解析用ＩＤテーブル５２ｂ（図１８）を参照して、グループアカウント「ｄ００１」を取得する。アクセス識別子生成部３５は、取得したグループアカウントをキーとしてアカウントテーブル５３を検索することにより、収集サーバ１０のアドレスを取得する。アクセス識別子生成部３５は、収集サーバ１０に向けて、解析用ＩＤ要求メッセージを送信する。
【０１３７】
（Ｃ２）解析サーバ３０から解析用ＩＤ要求メッセージを受信すると、収集サーバ１０の受信部１２は、解析用ＩＤ要求メッセージをセッション管理部１７に出力する。すると、セッション管理部１７は、解析用ＩＤとユーザの公開鍵の情報を、セッション管理テーブルを参照して取得する。すなわち、セッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの解析用ＩＤとユーザの公開鍵の情報を取得する。次に、セッション管理部１７は、検証用秘密情報が存在するか否かを判定する。すなわちセッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの生徒ＩＤを取得する。次に、取得した生徒ＩＤをキーとして、セッション管理部１７は、解析用ＩＤテーブル２３を検索する。そしてセッション管理部１７は、ヒットしたエントリに検証用秘密情報が格納されているか否かを判定する。検証用秘密情報が存在しないと判定した場合、セッション管理部１７は、鍵管理部２０に対して、検証用秘密情報の作成依頼通知を出力する。すると鍵管理部２０は先ず、収集サーバ１０の秘密鍵を検証用秘密情報として生成し、また、生成した秘密鍵に対応する公開鍵を検証用情報として生成する。次に鍵管理部２０は、生成した検証用秘密情報を生徒ＩＤに対応付けて、解析用ＩＤテーブル２３に格納する。鍵管理部２０は、検証用秘密情報を格納することにより、図６において、解析用ＩＤテーブル２３を（ａ）から（ｂ）に更新する。そして鍵管理部２０は、検証用情報とともに、検証用秘密情報の格納が完了したことをセッション管理部１７に通知する。すると、セッション管理部１７は、要求された解析用ＩＤ、ユーザの公開鍵、検証用情報、及び、収集サーバ１０においてユーザの公開鍵の正当性が確認されたことを示す確認通知を、通信装置６０を介さずに解析サーバ３０に送信する。例えば、アクセス識別子「ａｃ００１」に対応付けられた解析用ＩＤが要求された場合、以下となる。すなわち、セッション管理部１７は、セッション管理テーブル２４ｂ（図２０）及び解析用ＩＤテーブル２３（図６）に基づいて、解析用ＩＤ「１２３４５６」、公開鍵「Key-ga」、及び検証用情報「Key-gc」を解析サーバ３０に通知する。尚、アクセス識別子「ａｃ００１」に対応付けられた解析用ＩＤが要求された場合には、受信した解析用ＩＤ要求には、アクセス識別子が「ａｃ００１」が指定されている。
【０１３８】
（Ｂ１４）収集サーバ１０から解析用ＩＤ、ユーザの公開鍵、検証用情報、及び確認通知を受信すると、解析サーバ３０の受信部３２は、受信した情報をアクセス識別子生成部３５、出力部４２、及び鍵管理部３８に出力する。アクセス識別子生成部３５は、入力された情報を用いて、解析用ＩＤテーブル５２ｂ（図１８）を解析用ＩＤテーブル５２ｃ（図２１）に更新する。
【０１３９】
鍵管理部３８は、入力された情報に確認通知が含まれるか否かを判定する。入力された情報に確認通知が含まれないと判定した場合は、ユーザの公開鍵の真正性が確認できていないと判定して、鍵管理部３８はエラー処理を行う。エラー処理では、例えば、ユーザの公開鍵の真正性が確認できない旨の通知が通信装置６０に送信される。
【０１４０】
入力された情報に確認通知が含まれると判定した場合、鍵管理部３８は、入力されたユーザの公開鍵を用いて共通鍵の生成を行う。具体的には、鍵管理部３８は先ず、解析サーバ３０の秘密鍵と、その秘密鍵に対応する公開鍵の生成を行う。また鍵管理部３８は、生成した公開鍵を、予め登録しておいた電子証明書を用いて署名することで、署名情報を生成する。
【０１４１】
次に鍵管理部３８は、生成した秘密鍵と入力されたユーザの公開鍵とを用いて共通鍵を生成する。そして鍵管理部３８は、ユーザの公開鍵、解析サーバ３０の公開鍵、及び生成した共通鍵を対応付けて、解析用ＩＤテーブル５２に格納する。ここでは、鍵管理部３８は、解析用ＩＤテーブル５２ｃ（図２１）を解析用ＩＤテーブル５２ｄに更新する。
【０１４２】
そして出力部４２は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果を含むパケットを生成し、鍵管理部３８に出力する。鍵管理部３８は、検証用情報と、出力部４２から入力された解析結果の情報とを、生成した共通鍵を用いて暗号化する。そして鍵管理部３８は、暗号化した暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を、解析結果応答として、送信部３３に出力する。
【０１４３】
送信部３３は、手順（Ｂ１３）の応答（解析結果応答）として、暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を通信装置６０に送信する。例えば、解析用ＩＤ＝１２３４５６の場合、出力部４２は、図１４（ｃ）に示す解析結果を含む暗号データを、通信装置６０に送信する。
【０１４４】
（Ａ１０）解析結果応答を解析サーバ３０から受信すると、通信装置６０の受信部６２は、受信した解析結果応答をセッション管理部６７に出力する。セッション管理部６７は、入力された解析結果応答を、送信部６３を介して端末８０に送信する。ここで、セッション管理部６７は、端末８０を特定するために、連携テーブル７２の情報を用いることができる。解析結果を含むパケットは、手順（Ａ９）の応答として端末８０に送信される。なお、手順（Ａ９）から（Ａ１０）までの間、ｋｅｅｐ−ａｌｉｖｅなどにより、通信装置６０と端末８０の間の通信は継続されているものとする。
【０１４５】
端末８０の受信部８２は、通信装置６０から解析結果応答を受信し、署名検証部８５へ出力する。すると署名検証部８５は、解析結果応答に含まれる署名情報及び電子証明書を用いて、解析サーバ３０の公開鍵の検証を行う。
【０１４６】
検証の結果、解析サーバ３０の公開鍵の真正性が確認されたら、鍵管理部８６は、ユーザの秘密鍵と解析サーバ３０の公開鍵とを用いて、共通鍵を生成する。そして生成した共通鍵を用いて、秘匿情報復元部８３は、解析結果応答に含まれる暗号データを復号する。秘匿情報復元部８３は、復号したデータをアプリケーション処理部８８へ出力し、アプリケーション処理部８８は、表示装置８９に解析結果を表示することができる。
【０１４７】
次に秘匿情報復元部８３は、復号した暗号データに検証用情報が含まれているか否かを判定する。暗号テータに検証用情報が含まれていると判定した場合、秘匿情報復元部８３は、暗号テータに含まれていた検証用情報を、記憶部９１の検証用情報９３に格納する。
【０１４８】
図２２Ａと図２２Ｂは、実施形態に係る、２回目以降にユーザが解析結果の取得要求を行うときの通信の例を示すシーケンス図である。
【０１４９】
端末８０と通信装置６０の間では、手順（Ｄ１）〜（Ｄ１０）の処理が行われる。手順（Ｄ１）〜手順（Ｄ８）は、図１５Ａを参照しながら説明した手順（Ａ１）〜手順（Ａ８）と同様である。
【０１５０】
（Ｄ９）ユーザは、表示装置８９でポータルサイトを確認し、入力装置によって、解析結果の閲覧を選択する。すると、鍵管理部８６は、検証用情報９３が記録されているかを判定する。検証用情報９３が記録されていると判定された場合、鍵管理部８６は、ユーザの新たな秘密鍵と、新たな秘密鍵に対応する公開鍵を生成する。次に署名作成部８７は、検証用情報、すなわち、収集サーバ１０の公開鍵と、新たに生成したユーザの秘密鍵とから共通鍵を生成して、生成した共通鍵を電子署名とする。次に署名作成部８７は、ユーザの秘密鍵、公開鍵、及び生成した共通鍵を対応付けて鍵管理テーブル９２に記録する。そして署名作成部８７は、所定のハッシュ関数を用いて、公開鍵の署名情報として、共通鍵のハッシュ値を算出する。すると、アプリケーション処理部８８は、解析結果の閲覧の要求を表す解析結果要求を、通信装置６０に送信する。このとき、解析結果要求の中には、第１セッションＩＤ、解析結果を保持している解析サーバ３０のアドレス（ＵＲＬ）、新たに作成したユーザの公開鍵、その公開鍵を用いて生成した共通鍵のハッシュ値（電子署名）が含まれている。図２３は、２回目以降にユーザが解析結果の取得要求を行うときの、アクセス識別子が収集サーバに登録された後の情報の更新の例を説明する図である。解析結果要求を受信すると、通信装置６０では、セッション管理部６７が連携テーブル７２ａ２を連携テーブル７２ｂ２に更新する。尚ここでは、解析サーバ３０のアドレス「https://kaisekiservice1.com」、公開鍵「Key-ga2」、署名情報として共通鍵のハッシュ値「Hash(K-gca2)」が指定された例を示している。また、シーケンス管理部６８は、セッション管理テーブル７３を、初回ログイン時と同様に更新する。
【０１５１】
通信装置６０と解析サーバ３０の間では、手順（Ｅ１）〜手順（Ｅ１４）の処理が行われる。手順（Ｅ１）〜手順（Ｅ１０）、Ｅ（１３）は、図１５Ａを参照しながら説明した手順（Ｂ１）〜手順（Ｂ１０）、Ｂ（１３）と同様である。
【０１５２】
（Ｅ１１）認証の成功を通知するメッセージを受信した受信部６２は、そのメッセージをセッション管理部６７に出力する。セッション管理部６７は、入力されたメッセージを処理することにより、初回ログイン時と同様に、連携テーブル７２を更新する。セッション管理部６７は、アクセス識別子「ａｃ００２」、第３セッションＩＤ、ユーザの公開鍵、及び共通鍵を含む登録要求メッセージを生成する。登録要求メッセージは、送信部６３を介して、収集サーバ１０に送信される。
【０１５３】
（Ｅ１２）第３セッションＩＤを含む登録要求メッセージを受信すると、収集サーバ１０の受信部１２は、受信したメッセージをセッション管理部１７に出力する。するとセッション管理部１７は先ず、受信した登録要求メッセージを署名検証部１９に出力する。署名検証部１９は、登録要求メッセージに電子証明書が含まれているか否かを判定する。登録要求メッセージに電子証明書が含まれていないと判定すると、署名検証部１９は、受信した登録要求メッセージが端末８０による２回目以降のログインにおけるものであると判定する。そして、署名検証部１９は、登録要求メッセージに含まれる共通鍵のハッシュ値を用いて、ユーザの公開鍵の真正性を検証する。すなわち、署名検証部１９は先ず、登録要求メッセージにより通知されるユーザＩＤをキーとして、解析用ＩＤテーブル２３を検索する。そして署名検証部１９は、ヒットしたエントリの検証用秘密情報を取得する。この検証用秘密情報は、具体的には収集サーバ１０の秘密鍵である。そして署名検証部１９は、受信した登録要求メッセージに含まれるユーザの公開鍵と検証用秘密情報とを用いて、共通鍵を生成する。そして署名検証部１９は、生成した共通鍵のハッシュ値を算出し、算出したハッシュ値と、登録要求メッセージに含まれるハッシュ値とが一致するか否かを判定する。算出したハッシュ値と、登録要求メッセージに含まれるハッシュ値とが一致する場合、署名検証部１９は、登録要求メッセージに含まれる公開鍵が真正であると判定する。すると署名検証部１９は、セッション管理部１７に公開鍵の真正性が確認されたことを通知する。公開鍵の真正性が確認されたことを通知されると、セッション管理部１７は、初回ログイン時と同様に以下の動作を実行する。すなわちセッション管理部１７は、入力された登録要求メッセージに含まれている第３セッションＩＤをキーとして、セッション管理テーブル２４を検索する。セッション管理部１７は、ヒットしたエントリに、登録要求メッセージによって通知されたアクセス識別子、及びユーザの公開鍵を対応付けて登録する。セッション管理テーブル２４の更新が終了すると、セッション管理部１７は、アクセス識別子の登録の完了を通信装置６０に通知するための登録完了メッセージを生成し、送信部１３を介して、通信装置６０に送信する。このとき、登録完了メッセージには、登録が完了したアクセス識別子が含まれているものとする。
【０１５４】
手順（Ｆ１）は、図１５Ｂを参照しながら説明した手順（Ｃ１）と同様である。
【０１５５】
（Ｆ２）解析サーバ３０から解析用ＩＤ要求メッセージを受信すると、収集サーバ１０の受信部１２は、解析用ＩＤ要求メッセージをセッション管理部１７に出力する。すると、セッション管理部１７は、解析用ＩＤとユーザの公開鍵の情報を、セッション管理テーブル２４を参照して取得する。すなわち、セッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの解析用ＩＤとユーザの公開鍵の情報を取得する。次に、セッション管理部１７は、検証用秘密情報が存在するか否かを判定する。すなわちセッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの生徒ＩＤを取得する。次に、取得した生徒ＩＤをキーとして、セッション管理部１７は、解析用ＩＤテーブル２３を検索する。そしてセッション管理部１７は、ヒットしたエントリに検証用秘密情報が格納されているか否かを判定する。初回ログイン時に検証用秘密情報が格納されるため、２回目以降では、検証用秘密情報が格納されていることとなる。よってここでは、セッション管理部１７は、検証用秘密情報が格納されていると判定する。すると、セッション管理部１７は、要求された解析用ＩＤ、ユーザの公開鍵、及び、収集サーバ１０においてユーザの公開鍵の正当性が確認されたことを示す確認通知を解析サーバ３０に送信する。
【０１５６】
（Ｅ１４）収集サーバ１０から解析用ＩＤ、ユーザの公開鍵、及び確認通知を受信すると、解析サーバ３０の受信部３２は、受信した情報をアクセス識別子生成部３５、出力部４２、及び鍵管理部３８に出力する。アクセス識別子生成部３５は、入力された情報を用いて、解析用ＩＤテーブルを初回ログイン時と同様に更新する。鍵管理部３８は、入力された情報に確認通知が含まれるか否かを判定する。入力された情報に確認通知が含まれないと判定した場合は、初回ログイン時と同様に、ユーザの公開鍵の真正性が確認できていないと判定して、エラー処理を行う。入力された情報に確認通知が含まれると判定した場合、鍵管理部３８は、入力されたユーザの公開鍵を用いて共通鍵の生成を行う。具体的には、鍵管理部３８は先ず、新たに解析サーバ３０の秘密鍵と、その秘密鍵に対応する公開鍵の生成を行う。また鍵管理部３８は、新たに生成した公開鍵を、予め登録しておいた電子証明書を用いて署名することで、署名情報を生成する。次に鍵管理部３８は、生成した秘密鍵と入力されたユーザの公開鍵とを用いて共通鍵を生成する。そして鍵管理部３８は、ユーザの公開鍵、解析サーバ３０の公開鍵、及び生成した共通鍵を対応付けて、解析用ＩＤテーブル２３に格納する。
【０１５７】
そして出力部４２は、収集サーバ１０から通知された解析用ＩＤに対応付けられた解析結果を含むパケットを生成し、鍵管理部３８に出力する。鍵管理部３８は、出力部４２から入力された解析結果の情報を、生成した共通鍵を用いて暗号化する。そして鍵管理部３８は、暗号化した暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を、解析結果応答として、送信部３３に出力する。
【０１５８】
送信部３３は、手順（Ｅ１３）の応答（解析結果応答）として、暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を通信装置６０に送信する。
【０１５９】
（Ｄ１０）解析結果応答を解析サーバ３０から受信すると、通信装置６０の受信部６２は、受信した解析結果応答をセッション管理部６７に出力する。セッション管理部６７は、入力された解析結果応答を、送信部６３を介して端末８０に送信する。ここで、セッション管理部６７は、端末８０を特定するために、連携テーブル７２の情報を用いることができる。解析結果を含むパケットは、手順（Ｄ９）の応答として端末８０に送信される。なお、手順（Ｄ９）から（Ｄ１０）までの間、ｋｅｅｐ−ａｌｉｖｅなどにより、通信装置６０と端末８０の間の通信は継続されているものとする。
【０１６０】
端末８０の受信部８２は、通信装置６０から解析結果応答を受信し、署名検証部８５へ出力する。すると署名検証部８５は、解析結果応答に含まれる署名情報及び電子証明書を用いて、解析サーバ３０の公開鍵の検証を行う。
【０１６１】
検証の結果、解析サーバ３０の公開鍵の真正性が確認されたら、鍵管理部８６は、ユーザの秘密鍵と解析サーバ３０の公開鍵とを用いて、共通鍵を生成する。そして生成した共通鍵を用いて、秘匿情報復元部８３は、解析結果応答に含まれる暗号データを復号する。秘匿情報復元部８３は、復号したデータをアプリケーション処理部８８へ出力し、アプリケーション処理部８８は、表示装置８９に解析結果を表示することができる。
【０１６２】
次に秘匿情報復元部８３は、復号した暗号データに検証用情報が含まれているか否かを判定する。ここでは、秘匿情報復元部８３は、暗号テータに検証用情報は含まれていないと判定する。
【０１６３】
図２４Ａ、図２４Ｂは、解析サーバ３０の動作の例を説明するフローチャートである。受信部３２は、メッセージを受信すると、受信したメッセージをアクセス識別子生成部３５に出力する（ステップＳ１）。アクセス識別子生成部３５は、入力されたメッセージが要求メッセージであるかを判定する（ステップＳ２）。要求メッセージを受信したと判定すると、アクセス識別子生成部３５は、要求メッセージの送信元との間の認証が終了しているかを判定する（ステップＳ３）。例えば、アクセス識別子生成部３５は、要求メッセージに第２セッションＩＤが含まれている場合に認証済みと判定し、第２セッションＩＤが含まれていない場合、認証が終わっていないと判定する。認証が終わっていないと判定した場合、アクセス識別子生成部３５は、認証部３４に認証処理を要求し、認証部３４は、要求メッセージの送信元との間での認証を行う（ステップＳ３でＮｏ、ステップＳ４）。通信装置６０と解析サーバ３０の間の認証が成功すると、アクセス識別子生成部３５は、通信装置６０にアクセス識別子を割り当てる（ステップＳ５でＹｅｓ、ステップＳ７）。さらに、アクセス識別子生成部３５は、割り当てたアクセス識別子を、通信装置６０に対応付けられた第２セッションＩＤに対応付けて、解析用ＩＤテーブル５２に記録する。アクセス識別子生成部３５は、送信部３３を介して、アクセス識別子を含む登録要求を、要求メッセージの送信元に送信する（ステップＳ８）。アクセス識別子生成部３５は、認証に失敗した通信装置６０については、アクセス識別子を生成せずに処理を終了する（ステップＳ５でＮｏ）。
【０１６４】
認証済みの通信装置６０がサービス要求メッセージの送信元である場合、アクセス識別子生成部３５は、要求メッセージから第２セッションＩＤを抽出する（ステップＳ３でＹｅｓ）。さらに、アクセス識別子生成部３５は、抽出した第２セッションＩＤに対応付けて解析用ＩＤが解析用ＩＤテーブル５２に記録されているかを判定する（ステップＳ６）。第２セッションＩＤに対応付けられた解析用ＩＤが解析用ＩＤテーブル５２に記録されていない場合、アクセス識別子生成部３５は、ステップＳ７以降の処理を行う（ステップＳ６でＮｏ）。第２セッションＩＤに対応付けられた解析用ＩＤが解析用ＩＤテーブル５２に記録されている場合、アクセス識別子生成部３５は、第２セッションＩＤに対応付けられた解析用ＩＤを取得する（ステップＳ６でＹｅｓ、ステップＳ９）。さらに、アクセス識別子生成部３５は取得した解析用ＩＤを鍵管理部３８、出力部４２に出力する。そして処理は、図２４ＢのステップＳ１０１に遷移する。
【０１６５】
図２４ＢのステップＳ１０１において、先ず鍵管理部３８は、入力された情報に確認通知が含まれるか否かを判定する（ステップＳ１０１）。入力された情報に確認通知が含まれないと判定した場合は、ユーザの公開鍵の真正性が確認できていないと判定して、エラー処理を行う（ステップＳ１０１でＮｏ、ステップＳ１０２）。入力された情報に確認通知が含まれると判定された場合、鍵管理部３８は、新たに解析サーバ３０の秘密鍵と、その秘密鍵に対応する公開鍵の生成を行う（ステップＳ１０１でＹｅｓ、ステップＳ１０３）。ここで鍵管理部３８は、公開鍵の生成とともに、電子証明書を用いて、公開鍵の署名情報の生成も行う。次に鍵管理部３８は、生成した秘密鍵と入力されたユーザの公開鍵とを用いて共通鍵を生成する（ステップＳ１０４）。
【０１６６】
次に出力部４２は、通知された解析用ＩＤに対応付けられた解析結果を特定して記憶部５０から取得し、鍵管理部３８に出力する（ステップＳ１０５）。
【０１６７】
次に鍵管理部３８は、入力された情報に検証用情報が含まれるか否かを判定する（ステップＳ１０６）。入力された情報に検証用情報が含まれると判定した場合、鍵管理部３８は、出力部４２から入力された解析結果の情報と検証用情報を、ステップＳ１０４で生成した共通鍵を用いて暗号化する。そして鍵管理部３８は、暗号化した暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を、解析結果応答として、送信部３３に出力する（ステップＳ１０６でＹｅｓ、ステップＳ１０７）。
【０１６８】
ステップＳ１０６において、入力された情報に検証用情報が含まれないと判定した場合、鍵管理部３８は、出力部４２から入力された解析結果の情報を、ステップＳ１０４で生成した共通鍵を用いて暗号化する。そして鍵管理部３８は、暗号化した暗号データ、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書を、解析結果応答として、送信部３３に出力する（ステップＳ１０６でＮｏ、ステップＳ１０８）。
【０１６９】
図２４のステップＳ２において、入力されたメッセージが要求メッセージではない場合、アクセス識別子生成部３５は、登録完了通知メッセージが入力されたかを判定する（ステップＳ１１）。入力されたメッセージが登録完了通知メッセージである場合、アクセス識別子生成部３５は、解析用ＩＤ要求メッセージを、解析対象のデータの送信元である収集サーバ１０に送信する（ステップＳ１１でＹｅｓ、ステップＳ１２）。
【０１７０】
一方、入力されたメッセージが登録完了通知メッセージでもない場合、アクセス識別子生成部３５は、解析用ＩＤ応答メッセージが入力されたかを判定する（ステップＳ１１でＮｏ、ステップＳ１３）。入力されたメッセージが解析用ＩＤ応答メッセージである場合、アクセス識別子生成部３５は、通知された解析用ＩＤを抽出し、鍵管理部３８、出力部４２に通知する（ステップＳ１３でＹｅｓ）。そして処理は、図２４ＢのステップＳ１０１に遷移する。
【０１７１】
なお、入力されたメッセージが、要求メッセージ、登録完了通知メッセージ、解析用ＩＤ応答メッセージのいずれでもない場合、アクセス識別子生成部３５は、処理を終了する（ステップＳ１３でＮｏ）。
【０１７２】
図２５Ａ、図２５Ｂは、通信装置６０の動作の例を説明するフローチャートである。受信部６２は、メッセージを受信する（ステップＳ２１）。受信部６２は、端末８０からの解析結果要求を受信した場合、解析結果要求を認証部６４に出力する（ステップＳ２２でＹｅｓ）。認証部６４は、認証済みの端末８０から解析結果要求を受信したかを判定する（ステップＳ２３）。解析結果要求の送信元が認証済みの端末８０である場合、認証部６４は、解析結果要求をセッション管理部６７に出力する。セッション管理部６７は、解析結果要求に含まれるユーザの公開鍵と、電子証明書と、署名情報または共通鍵のハッシュ値と、を連携テーブル７２に格納する。そしてセッション管理部６７は、解析サーバ３０へのアクセスに使用するグループアカウントを、ＩＤ管理テーブル７１を参照して特定する。このとき、セッション管理部６７は、その端末８０に対応付けられたユーザＩＤと、解析結果要求で通知された解析サーバ３０のＵＲＬをキーとして、ＩＤ管理テーブル７１を検索する（ステップＳ２３でＹｅｓ、ステップＳ２４）。セッション管理部６７は、グループアカウントを用いて、解析サーバ３０あての要求メッセージを生成し、送信部６３を介して、解析サーバ３０に送信する（ステップＳ２５）。一方、ステップＳ２３で認証が終了していない端末８０からの解析結果要求を受信したと判定すると、認証部６４は、端末８０に認証を要求し、端末８０との間の認証処理を行う（ステップＳ２６）。この認証処理では、ユーザの電子証明書を用いた認証が行われる。
【０１７３】
受信したメッセージが解析結果要求ではない場合、受信部６２は、端末８０からログアウトが要求されているかを判定する（ステップＳ２２でＮｏ、ステップＳ２７）。端末８０からログアウトが要求された場合、受信部６２は受信したメッセージをセッション管理部６７に出力する（ステップＳ２７でＹｅｓ）。セッション管理部６７は、ログアウトを要求している端末８０から通知された第１セッションＩＤを含むエントリを連携テーブル７２から削除する（ステップＳ２８）。
【０１７４】
受信部６２は、ステップＳ２７で端末８０からログアウトが要求されていないと判定した場合、認証要求を受信したかを判定する（ステップＳ２９）。認証要求を受信していると判定した場合、受信部６２は、認証要求を代理認証部６６に出力する。代理認証部６６は、認証要求の送信元が解析サーバ３０であるかを判定する（ステップＳ３０）。解析サーバ３０から認証が要求されている場合、代理認証部６６は、グループアカウントと、グループアカウントに対応付けられたパスワードを用いて、解析サーバ３０との間の認証処理を行う（ステップＳ３１）。一方、解析サーバ３０から認証が要求されていない場合、代理認証部６６は、収集サーバ１０からの認証要求を受信したと判定する。そこで、代理認証部６６は、収集サーバ１０との通信に用いるユーザアカウントと、ユーザアカウントに対応付けられたパスワードを用いて、収集サーバ１０との間の認証処理を行う（ステップＳ３２）。
【０１７５】
一方、ステップＳ２９において、認証要求を受信していないと判定した場合、受信部６２は、認証の成功が通知されているかを判定する（ステップＳ３３）。認証の成功が通知されている場合、受信部６２は、受信したメッセージをセッション管理部６７に出力する。セッション管理部６７は、認証成功の通知の送信元が解析サーバ３０であるかを判定する（ステップＳ３４）。送信元が解析サーバ３０である場合、セッション管理部６７は、解析サーバ３０に向けて、要求メッセージを送信する（ステップＳ３４でＹｅｓ、ステップＳ３５）。認証成功の通知の送信元が解析サーバ３０ではない場合、セッション管理部６７は、送信元が収集サーバ１０であるかを判定する（ステップＳ３４でＮｏ、ステップＳ３６）。送信元が収集サーバ１０である場合、セッション管理部６７は、収集サーバ１０に向けて、ユーザの公開鍵、署名情報、及び電子証明書とともにアクセス識別子の登録要求を送信する（ステップＳ３６でＹｅｓ、ステップＳ３７）。認証成功の通知の送信元が解析サーバ３０と収集サーバ１０のいずれでもない場合、セッション管理部６７は、処理を終了する（ステップＳ３６でＮｏ）。
【０１７６】
受信部６２は、ステップＳ３３で認証成功が通知されていないと判定すると、アクセス識別子の通知を受信したかを判定する（ステップＳ３８）。アクセス識別子の通知を受信した場合、受信部６２は、受信したメッセージをセッション管理部６７に出力する。ここで、アクセス識別子の通知は、リダイレクト先を収集サーバ１０に指定したリダイレクトメッセージであるものとする。セッション管理部６７は、リダイレクトメッセージを用いて、収集サーバ１０宛てであり、かつ、アクセス識別子を含むＨＴＴＰメッセージを生成し、送信部６３を介して送信する（ステップＳ３８でＹｅｓ、ステップＳ３９）。
【０１７７】
一方、ステップＳ３８において、受信したメッセージがアクセス識別子の通知でもないと判定した場合、受信部６２は以下の動作を実行する。すなわち、解析サーバ３０から暗号化された解析結果の情報、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書の組み合わせを受信したかを判定する（ステップＳ４０）。解析サーバ３０から、暗号化された解析結果の情報、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書の組み合わせを受信した場合、受信部６２は、受信したメッセージをセッション管理部６７に出力する。セッション管理部６７は、解析結果要求を送信したユーザの端末８０へ、送信部６３を介して、受信したメッセージを送信する（ステップＳ４０でＹｅｓ、ステップＳ４１）。そして処理は終了する。ステップＳ４０で、解析サーバ３０から、暗号化された解析結果の情報、解析サーバ３０の公開鍵、解析サーバ３０の公開鍵の署名情報、及び電子証明書の組み合わせを受信していないと判定した場合、受信部６２は処理を終了する。
【０１７８】
図２６Ａ、図２６Ｂは、収集サーバ１０の動作の例を説明するフローチャートである。
【０１７９】
受信部３２は、メッセージを受信すると、受信したメッセージを認証部１６に出力する（ステップＳ３０１）。認証部１６は、入力されたメッセージが認証要求であるかを判定する（ステップＳ３０２）。メッセージが認証要求であると判定すると、認証部１６は、認証要求に含まれるユーザアカウントとパスワードが、予め記憶しているユーザアカウントとパスワードと一致するか否かを判定することにより、ユーザアカウントの認証処理を行う（ステップＳ３０３）。この認証に成功した場合、認証部１６は、新たに認証に成功したユーザのユーザアカウントをセッション管理部１７に出力する。セッション管理部１７は、認証部１６から通知されたユーザアカウントに対して、第３セッションＩＤを生成する。そして、セッション管理部１７は、通信装置６０に、認証の成功と第３セッションＩＤを通知する。
【０１８０】
受信したメッセージが認証要求ではない場合、認証部１６は、入力されたメッセージが登録要求メッセージであるかを判定する（ステップＳ３０２でＮｏ、ステップＳ３０４）。入力されたメッセージが登録要求メッセージであると判定すると、認証部１６は、登録要求メッセージに第３セッションＩＤが含まれているか否かを判定する（ステップＳ３０４でＹｅｓ、ステップＳ３０５）。要求メッセージに第３セッションＩＤが含まれていないと判定すると、認証部１６は、登録要求メッセージの送信元に認証を要求する（ステップＳ３０５でＮｏ、ステップＳ３０６）。そして処理は終了する。
【０１８１】
一方、ステップＳ３０５において、要求メッセージに第３セッションＩＤが含まれていると判定されると、受信部１２は、受信したメッセージをセッション管理部１７に出力する。そして、セッション管理部１７は、登録要求メッセージを署名検証部１９に出力する。署名検証部１９は、登録要求メッセージに電子証明書が含まれているか否かを判定する（ステップＳ３０５でＹｅｓ、ステップＳ３０７）。
【０１８２】
登録要求メッセージに電子証明書が含まれていると判定すると、署名検証部１９は、受信した登録要求メッセージは、端末８０による初回ログインにおけるものであると判定する（ステップＳ３０７でＹｅｓ、ステップＳ３０８）。そして、署名検証部１９は、公開鍵の署名情報及び電子証明書を用いて、公開鍵の真正性を検証する（ステップＳ３０９）。署名検証部１９は、受信したユーザの公開鍵が真正であると判定すると、セッション管理部１７に、公開鍵の真正性が確認されたことを通知する。
【０１８３】
公開鍵の真正性が確認されたことを通知されると、セッション管理部１７は、以下の動作を実行する。すなわちセッション管理部１７は、登録要求メッセージに含まれている第３セッションＩＤをキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリに、登録要求メッセージによって通知されたアクセス識別子、及び公開鍵を対応付けて登録する（ステップＳ３１０）。そして、セッション管理部１７は、アクセス識別子の登録の完了を通信装置６０に通知するための登録完了メッセージを生成し、送信部１３を介して通信装置６０に送信する（ステップＳ３１１）。そして処理は終了する。
【０１８４】
Ｓ３０７において、登録要求メッセージに電子証明書が含まれていないと判定すると、署名検証部１９は、受信した登録要求メッセージは、端末８０による２回目以降のログインにおけるものであると判定する（ステップＳ３０７でＮｏ、ステップＳ３１２）。次に署名検証部１９は、登録要求メッセージにより通知されるユーザＩＤをキーとして、解析用ＩＤテーブル２３を検索する。そして署名検証部１９は、ヒットしたエントリの検証用秘密情報を取得する（ステップＳ３１３）。この検証用秘密情報は具体的には収集サーバ１０の秘密鍵である。そして署名検証部１９は、登録要求メッセージに含まれる署名の検証を行う（ステップＳ３１４）。具体的には、署名検証部１９は、受信した登録要求メッセージに含まれるユーザの公開鍵とハッシュ値、及びＳ３１３で取得した検証用秘密情報を用いて、公開鍵が真正か否かの検証を行う。そして処理はＳ３１１に遷移する。
【０１８５】
Ｓ３０４において、受信したメッセージが登録要求メッセージではない場合、受信部１２は、受信したメッセージをセッション管理部１７に出力する。そしてセッション管理部１７は、入力されたメッセージが解析用ＩＤ要求メッセージであるかを判定する（ステップＳ３１５）。入力されたメッセージが解析用ＩＤ要求メッセージであると判定すると、セッション管理部１７は、解析用ＩＤとユーザの公開鍵の情報を、セッション管理テーブルを参照して取得する（ステップＳ３１５でＹｅｓ、ステップＳ３１６）。すなわち、セッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの解析用ＩＤと公開鍵の情報を取得する。
【０１８６】
次に、セッション管理部１７は、検証用秘密情報が存在するか否かを判定する（ステップＳ３１７）。すなわちセッション管理部１７は、解析用ＩＤ要求メッセージに含まれるアクセス識別子をキーとして、セッション管理テーブル２４を検索する。そしてセッション管理部１７は、ヒットしたエントリの生徒ＩＤを取得する。そして、取得したユーザＩＤをキーとして、解析用ＩＤテーブル２３を検索する。そしてセッション管理部１７は、ヒットしたエントリに検証用秘密情報が格納されているか否かを判定する。
【０１８７】
検証用秘密情報が存在しないと判定した場合、セッション管理部１７は、鍵管理部２０に対して、検証用秘密情報の作成依頼通知を出力する。すると鍵管理部２０は、検証用秘密情報を生成して、生成した検証用秘密情報を生徒ＩＤに対応付けて、解析用ＩＤテーブル２３に格納する（ステップＳ３１７でＮｏ、ステップＳ３１８）。そして鍵管理部２０は、検証用秘密情報の格納が完了したことをセッション管理部１７に通知する。すると、セッション管理部１７は、要求された解析用ＩＤ、ユーザの公開鍵、検証用情報、及び確認通知を解析サーバ３０に通知する（Ｓ３１９）。そして処理は終了する。
【０１８８】
Ｓ３１７において、検証用秘密情報が存在すると判定した場合、セッション管理部１７は、要求された解析用ＩＤ、ユーザの公開鍵、及び確認通知を解析サーバ３０に通知する（Ｓ３１７でＹｅｓ、Ｓ３１８）。そして処理は終了する。
【０１８９】
Ｓ３１５において、解析用ＩＤ要求を受信していないと判定されると、処理は終了する（Ｓ３１５でＮｏ）。
【０１９０】
図２７Ａ、図２７Ｂ、図２７Ｃは、端末８０の動作の例を説明するフローチャートである。
【０１９１】
図２７Ａにおいて、先ず鍵管理部８６は、検証用情報９３が記憶部９１に記憶されているか否かを判定する（ステップＳ４０１）。検証用情報９３が記憶部９１に記憶されていないと判定した場合、鍵管理部８６は、ユーザの秘密鍵と、その秘密鍵に対応する公開鍵を生成する（ステップＳ４０１でＮｏ、ステップＳ４０２）。次に署名作成部８７は、公開鍵の署名情報を生成する（ステップＳ４０３）。署名作成部８７は、電子証明書を取得すると、Ｓ４０２で生成されたユーザの秘密鍵と公開鍵、Ｓ４０３で生成した署名情報、及び電子証明書を対応付けて鍵管理テーブル９２に記録する。そして処理はステップＳ４０６に遷移する。
【０１９２】
ステップＳ４０１において、検証用情報９３が記憶部９１に記憶されていると判定した場合、鍵管理部８６は、以前の解析結果要求処理で使用された秘密鍵とは異なる秘密鍵と、その秘密鍵に対応する公開鍵を生成する（ステップＳ４０１でＹｅｓ、Ｓ４０４）。次に署名作成部８７は、検証用情報９３と、鍵管理部８６により生成された秘密鍵とを用いて、共通鍵（署名）を生成する（ステップＳ４０５）。共通鍵を生成すると、署名作成部８７は、Ｓ４０４で生成されたユーザの秘密鍵と公開鍵、及び共通鍵（収集サーバとユーザの共通鍵）を対応付けて鍵管理テーブル９２に記録する。
【０１９３】
そして、アプリケーション処理部８８は、通信装置６０にポータルサービス要求を送信する（Ｓ４０６）。
【０１９４】
図２７Ｂにおいて、受信部８２は、メッセージを受信すると、受信したメッセージをアプリケーション処理部８８に出力する（ステップＳ４０７）。するとアプリケーション処理部８８は、入力されたメッセージが認証要求であるかを判定する（ステップＳ４０８）。入力されたメッセージが認証要求であると判定すると、アプリケーション処理部８８は、通信装置６０へのアクセスの認証処理を行う（ステップＳ４０８でＹｅｓ、ステップＳ４０９）。この認証処理において、アプリケーション処理部８８は、鍵管理テーブル９２からユーザの電子証明書を取得して通信装置６０へ送信する。尚、この認証処理では種々の認証方法が用いられてもよい。
【０１９５】
ステップＳ４０８において、入力されたメッセージが認証要求でないと判定されると、セッション管理部８４は、入力されたメッセージが第１セッションＩＤの通知か否かを判定する（ステップＳ４０８でＮｏ、ステップＳ４１０）。入力されたメッセージが第１セッションＩＤの通知であると判定されると、セッション管理部８４は、記憶部９１に検証用情報が記録されているか否かを判定する（ステップＳ４１０でＹｅｓ、ステップＳ４１１）。検証用情報が記録されていないと判定した場合、セッション管理部８４は、解析結果要求として、ユーザの公開鍵及び署名情報を送信する（ステップＳ４１１でＮｏ、Ｓ４１２）。尚、ステップＳ４０９の認証処理において、電子証明書による認証方法を用いない場合には、解析結果要求に、ユーザの公開鍵、署名情報、及び電子証明書を含める。
【０１９６】
一方、ステップＳ４１１において、検証用情報が記録されている場合、セッション管理部８４は、鍵管理テーブル９２からＳ４０５で生成した公開鍵の署名（共通鍵）を取得する。そして署名作成部８７は、所定のハッシュ関数を用いて、共通鍵のハッシュ値を算出する。セッション管理部８４は、共通鍵のハッシュ値を公開鍵とともに、通信装置６０へ送信する（ステップＳ４１１でＹｅｓ、Ｓ４１３）。
【０１９７】
ステップＳ４１０において、入力されたメッセージが第１セッションＩＤの通知でないと判定すると、受信部８２は、受信したメッセージを署名検証部８５へ出力する。すると署名検証部８５は、解析結果応答を受信したか否かを判定する（ステップＳ４１０でＮｏ、ステップＳ４１４）。解析結果応答を受信したと判定すると署名検証部１９は、解析結果応答に含まれる署名情報と電子証明書を用いて、解析サーバ３０の公開鍵の署名の検証を行う（ステップＳ４１４でＹｅｓ、ステップＳ４１５）。
【０１９８】
検証の結果、解析サーバ３０の公開鍵の真正性が確認されたら、鍵管理部８６は、解析サーバ３０の公開鍵とユーザの秘密鍵とを用いて、共通鍵を生成する。そして鍵管理部８６は、生成した共通鍵（解析サーバとユーザの共通鍵）と、解析サーバ３０の公開鍵と、ユーザの秘密鍵を対応付けて、鍵管理テーブル９２に記録する。そして共通鍵を用いて、秘匿情報復元部８３は、解析サーバ３０から受信した暗号データを復号する。（ステップＳ４１６）。秘匿情報復元部８３は、復号したデータをアプリケーション処理部８８へ出力し、アプリケーション処理部８８は、表示装置８９に解析結果を表示することができる。
【０１９９】
次に秘匿情報復元部８３は、復号した暗号データに検証用情報が含まれているか否かを判定する（ステップＳ４１７）。暗号データに検証用情報が含まれていると判定した場合、秘匿情報復元部８３は、受信した解析応答データは、初回ログイン時の解析結果要求に対するデータであると判定する（ステップＳ４１７でＹｅｓ、ステップＳ４１８）。そして秘匿情報復元部８３は、暗号テータに含まれていた検証用情報を、記憶部９１の検証用情報９３に記録する（ステップＳ４１９）。そして処理は終了する。
【０２００】
ステップＳ４１７において、暗号テータに検証用情報が含まれていないと判定した場合、秘匿情報復元部８３は、受信した解析応答データは、２回目以降のログイン時の解析結果要求に対するデータであると判定する（ステップＳ４１７でＮｏ、ステップＳ４２０）。そして処理は終了する。また、ステップＳ４１４において、入力されたデータが解析結果応答ではないと判定されると、処理は終了する（Ｓ４１４でＮｏ）。
【０２０１】
（その他の変形例）
グループ識別子は、解析サーバ３０においてグループを一意に識別できる任意の情報とすることができる。例えば、グループアカウントや、グループアカウントを用いた認証で発行されたセッションＩＤなどが、グループ識別子として使用される。同様に、ユーザ識別子は、収集サーバ１０においてユーザを一意に識別できる任意の情報とすることができる。例えば、ユーザアカウントや、ユーザアカウントを用いた認証により発行されたセッションＩＤなどが個人識別子として使用されうる。
【０２０２】
以上の説明では、端末８０、通信装置６０、収集サーバ１０、解析サーバ３０がネットワーク中に１つずつの場合を例として説明したが、ネットワーク中の端末８０、通信装置６０、収集サーバ１０、解析サーバ３０の数は任意である。解析サーバ３０が複数存在しても、通信装置６０は、解析サーバ３０にアクセスする際には、端末８０からアクセス先を通知されるので、アクセス先を特定することができる。また、収集サーバ１０が複数存在しても、通信装置６０は、収集サーバ１０にアクセスする際には、解析サーバ３０から通知されたＵＲＬなどの情報を用いて、アクセス先の収集サーバ１０を特定できる。収集サーバ１０や解析サーバ３０が複数含まれているネットワークでも、通信装置６０は、ＩＤ管理テーブル７１を用いて、アクセスの際に使用するアカウントとパスワードを特定できる。さらに、端末８０が複数存在する場合、個々のユーザは第１〜第３セッションＩＤやアクセス識別子などで区別できるので、収集サーバ１０、解析サーバ３０や通信装置６０は、複数のユーザからの要求を並行して処理できる。第２の実施形態でも、同様に、ネットワーク中の端末８０、通信装置６０、収集サーバ１０、解析サーバ３０の数は任意である。
【０２０３】
以上の説明で使用したテーブルはいずれも例示であり、実装に応じて、各テーブルに含まれる情報要素は変更されることがある。また、説明を簡単にするために、通信装置６０、収集サーバ１０、解析サーバ３０のいずれも１つのサーバである場合を例として説明したが、これも例である。例えば、通信装置６０の動作が任意の複数の通信装置６０を用いて実現されるように設計が変更されることがあるものとする。また、収集サーバ１０、解析サーバ３０についても同様に、複数の通信装置６０により処理が実現されてもよいものとする。
【０２０４】
尚、図２の（６）、（１４）、及び図３の（１４）における、電子署名と電子証明書とを用いて行う、受信した公開鍵の真正性の検証は、例えば以下のようにしてもよい。ここで説明のために、電子証明書の発行者により正当性が保証される公開鍵（電子証明書に含まれる公開鍵）を公開鍵Ｘ、公開鍵Ｘに対応する、送信側の端末の秘密鍵を秘密鍵Ｙとする。すると例えば、送信側の装置は、検証対象の公開鍵を、所定のハッシュアルゴリズムＨを用いてハッシュ値を算出し、算出したハッシュ値に対して、秘密鍵Ｙを用いて電子署名を生成して、検証対象の公開鍵とともに受信側の端末へ送信する。そのデータを受信した受信側の端末は、受信した電子署名を、公開鍵Ｘを用いて復号して、ハッシュ値ｈ１を取得する。また受信側の端末は、受信した検証対象の公開鍵を所定のハッシュアルゴリズムＨを用いてハッシュ値ｈ２を算出する。そして受信側の端末は、復号して取得したハッシュ値ｈ１と、算出したハッシュ値ｈ２とを比較し、値が一致しているか否かを判定する。この値が一致している場合、受信側の端末は、受信した検証対象の公開鍵は真正であると判定する。
【符号の説明】
【０２０５】
１      ユーザ端末
２      通信装置
３      第１情報処理装置
４      第２情報処理装置
９      情報処理システム
１０１  プロセッサ
１０２  メモリ
１０３  入力装置
１０４  出力装置
１０５  バス
１０６  外部記憶装置
１０７  媒体駆動装置
１０８  可搬記憶媒体
１０９  ネットワーク接続装置
１１０  ネットワーク
【図１】
2015192377.tif 000003
【図２】
2015192377.tif 000004
【図３】
2015192377.tif 000005
【図４】
2015192377.tif 000006
【図５】
2015192377.tif 000007
【図６】
2015192377.tif 000008
【図７】
2015192377.tif 000009
【図８】
2015192377.tif 000010
【図９】
2015192377.tif 000011
【図１０】
2015192377.tif 000012
【図１１】
2015192377.tif 000013
【図１２】
2015192377.tif 000014
【図１３】
2015192377.tif 000015
【図１４】
2015192377.tif 000016
【図１５Ａ】
2015192377.tif 000017
【図１５Ｂ】
2015192377.tif 000018
【図１６】
2015192377.tif 000019
【図１７】
2015192377.tif 000020
【図１８】
2015192377.tif 000021
【図１９】
2015192377.tif 000022
【図２０】
2015192377.tif 000023
【図２１】
2015192377.tif 000024
【図２２Ａ】
2015192377.tif 000025
【図２２Ｂ】
2015192377.tif 000026
【図２３】
2015192377.tif 000027
【図２４Ａ】
2015192377.tif 000028
【図２４Ｂ】
2015192377.tif 000029
【図２５Ａ】
2015192377.tif 000030
【図２５Ｂ】
2015192377.tif 000031
【図２６Ａ】
2015192377.tif 000032
【図２６Ｂ】
2015192377.tif 000033
【図２７Ａ】
2015192377.tif 000034
【図２７Ｂ】
2015192377.tif 000035
【図２７Ｃ】
2015192377.tif 000036