(57)【要約】      （修正有）【課題】通信におけるセキュリティを向上させる情報処理システム、情報処理方法及びプログラムを提供する。【解決手段】情報処理システム１０は、ユーザが使用するクライアント端末１と、複数のサーバ２Ｎと、サービスを提供するサービスサーバ３とを有する。クライアント端末１は、ユーザを識別するユーザデータ及びサービスサーバ３に対してアクセスするリクエストをそれぞれのサーバ２Ｎに送信する。サーバ２Ｎは、リクエストに基づいて、ユーザデータをサービスサーバ３に送信する。サービスサーバ３は、ユーザデータが登録されているか否かを判断し、判断結果をサーバ２Ｎに送信する。サーバ２Ｎは、判断結果に基づいて、鍵又は鍵を生成する素材となる素材データを生成後、暗号化し、クライアント端末１及びサービスサーバ３に送信する。クライアント端末１及びサービスサーバ３は、復号化した鍵又は素材データに基づいて通信を行う。【選択図】図１
2020077978.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが使用する第１情報処理装置と、複数の第２情報処理装置と、サービスを提供する第３情報処理装置とを有する情報処理システムであって、
前記第１情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第３情報処理装置に対してアクセスするリクエストをそれぞれの前記第２情報処理装置に送信する第１送信部
を有し、
前記第２情報処理装置は、
前記リクエストに基づいて、前記ユーザデータを前記第３情報処理装置に送信する第２送信部
をそれぞれ有し、
前記第３情報処理装置は、
入力されるユーザデータを登録する登録部と、
前記第２情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断部と、
前記判断部による判断結果を前記第２情報処理装置に送信する第３送信部と
を有し、
前記第２情報処理装置は、
前記判断結果に基づいて、前記第１情報処理装置及び前記第３情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成部と、
前記鍵又は前記素材データを暗号化して第１暗号化データを生成する第１暗号化部と、
前記鍵又は前記素材データを暗号化して第２暗号化データを生成する第２暗号化部と、
前記第１暗号化データを前記第１情報処理装置に送信する第４送信部と、
前記第２暗号化データを前記第３情報処理装置に送信する第５送信部と
をそれぞれ更に有し、
前記第１情報処理装置及び前記第３情報処理装置は、
前記第１暗号化データ及び前記第２暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
情報処理システム。
【請求項２】
前記複数の第２情報処理装置は、
前記通信のセッションを識別するセッションデータを生成し、
前記複数の第２情報処理装置が有するそれぞれの前記生成部は、
異なる前記鍵を生成し、
前記セッションデータと、前記鍵とが対応し、
前記第１情報処理装置及び前記第３情報処理装置は、
セッションごとに、異なる前記鍵を用いて通信を行う
請求項１に記載の情報処理システム。
【請求項３】
前記第１情報処理装置は、
前記第１情報処理装置を識別する第１固有データを記憶する第１記憶部を更に有し、
前記第２情報処理装置は、
前記第１固有データを取得し、
前記判断結果に基づいて、前記ユーザデータが登録されていると判断されると、所定の値を示す第１所定値を前記第１情報処理装置に送信し、
前記第１情報処理装置は、
前記第１所定値及び前記第１固有データに基づく計算によって第１計算値を計算し、
前記第１計算値を前記第２情報処理装置に送信し、
前記第１暗号化部は、
前記第１計算値に基づいて、前記鍵を暗号化して前記第１暗号化データを生成する
請求項１又は２に記載の情報処理システム。
【請求項４】
前記第３情報処理装置は、
前記第３情報処理装置を識別する第２固有データを記憶する第２記憶部を更に有し、
所定の値を示す第２所定値を前記第２情報処理装置に送信し、
前記第２情報処理装置は、
前記第２固有データを取得し、
前記第２所定値及び前記第２固有データに基づく計算によって第２計算値を計算し、
前記第２計算値を前記第３情報処理装置に送信し、
前記第３情報処理装置は、
前記第２情報処理装置から送信される前記第２計算値と、前記第３情報処理装置が計算して生成する第２計算値とを比較して比較結果を前記第２情報処理装置に送信し、
前記生成部は、
前記比較結果に基づいて、前記鍵を生成する
請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記複数の第２情報処理装置は、
２乃至１０  台である
請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
前記第１情報処理装置を識別する第１固有データは、
前記第１情報処理装置及び前記第２情報処理装置が分散して記憶する複数の分散データに基づいて生成される
請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
ユーザが使用する第１情報処理装置と、複数の第２情報処理装置と、サービスを提供する第３情報処理装置とを有する情報処理システムが行う情報処理方法であって、
前記第１情報処理装置が、前記ユーザを識別するユーザデータ及び前記第３情報処理装置に対してアクセスするリクエストをそれぞれの前記第２情報処理装置に送信する第１送信手順と、
前記第２情報処理装置が、前記リクエストに基づいて、前記ユーザデータを前記第３情報処理装置に送信する第２送信手順と、
前記第３情報処理装置が、入力されるユーザデータを登録する登録手順と、
前記第３情報処理装置が、前記第２情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断手順と、
前記第３情報処理装置が、前記判断手順による判断結果を前記第２情報処理装置に送信する第３送信手順と、
前記第２情報処理装置が、前記判断結果に基づいて、前記第１情報処理装置及び前記第３情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成手順と、
前記第２情報処理装置が、前記鍵又は前記素材データを暗号化して第１暗号化データを生成する第１暗号化手順と、
前記第２情報処理装置が、前記鍵又は前記素材データを暗号化して第２暗号化データを生成する第２暗号化手順と、
前記第２情報処理装置が、前記第１暗号化データを前記第１情報処理装置に送信する第４送信手順と、
前記第２情報処理装置が、前記第２暗号化データを前記第３情報処理装置に送信する第５送信手順と、
前記第１情報処理装置及び前記第３情報処理装置は、
前記第１暗号化データ及び前記第２暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
情報処理方法。
【請求項８】
ユーザが使用する第１情報処理装置と、複数の第２情報処理装置と、サービスを提供する第３情報処理装置とを有するコンピュータに情報処理方法を実行させるためのプログラムであって、
前記第１情報処理装置が、前記ユーザを識別するユーザデータ及び前記第３情報処理装置に対してアクセスするリクエストをそれぞれの前記第２情報処理装置に送信する第１送信手順と、
前記第２情報処理装置が、前記リクエストに基づいて、前記ユーザデータを前記第３情報処理装置に送信する第２送信手順と、
前記第３情報処理装置が、入力されるユーザデータを登録する登録手順と、
前記第３情報処理装置が、前記第２情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断手順と、
前記第３情報処理装置が、前記判断手順による判断結果を前記第２情報処理装置に送信する第３送信手順と、
前記第２情報処理装置が、前記判断結果に基づいて、前記第１情報処理装置及び前記第３情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成手順と、
前記第２情報処理装置が、前記鍵又は前記素材データを暗号化して第１暗号化データを生成する第１暗号化手順と、
前記第２情報処理装置が、前記鍵又は前記素材データを暗号化して第２暗号化データを生成する第２暗号化手順と、
前記第２情報処理装置が、前記第１暗号化データを前記第１情報処理装置に送信する第４送信手順と、
前記第２情報処理装置が、前記第２暗号化データを前記第３情報処理装置に送信する第５送信手順と、
前記第１情報処理装置及び前記第３情報処理装置は、
前記第１暗号化データ及び前記第２暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
ように実行させるためのプログラム。
【請求項９】
ユーザが使用する第１情報処理装置と、複数の第２情報処理装置と、サービスを提供する第３情報処理装置とを有する情報処理システムであって、
前記第３情報処理装置は、
前記ユーザを認証する認証データを登録データに登録するデータ登録部
を有し、
前記第１情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第３情報処理装置に対してアクセスするリクエストをそれぞれの前記第２情報処理装置に送信するリクエスト送信部
を有し、
前記第２情報処理装置は、
前記リクエストに基づいて、前記第１情報処理装置及び前記第３情報処理装置の間で行われる通信に用いられる鍵、及び、前記通信のセッションを識別するセッションデータを生成するデータ生成部と、
前記鍵及び前記セッションデータを暗号化して第１データを生成し、前記第１データを前記第１情報処理装置に送信する第１データ送信部と、
前記鍵、前記セッションデータ及び前記ユーザデータを暗号化した第２データを前記第３情報処理装置に送信する第２データ送信部と
をそれぞれ有し、
前記第１情報処理装置は、
前記ユーザから操作を受け付ける受付部と、
前記操作で入力される内容を示す入力データに基づいて、第３データを生成する第３データ生成部と、
前記第３データ及び前記鍵に基づいて、第１合成鍵を生成する第１合成鍵生成部と、
前記第１合成鍵に基づいて前記入力データを暗号化させて第４データを生成する第４データ生成部と
前記第４データを前記第３情報処理装置に送信する第４データ送信部と
を更に有し、
前記第３情報処理装置は、
前記登録データから、前記ユーザデータに基づいて前記認証データを抽出する抽出部と、
前記抽出部によって抽出される前記認証データに基づいて、第５データを生成する第５データ生成部と、
前記第２データを復号化して取得される前記鍵及び前記第５データに基づいて、第２合成鍵を生成する第２合成鍵生成部と、
前記第２合成鍵に基づいて前記第４データを復号化する第４データ復号化部と
前記第４データを復号化して取得される前記入力データと、前記認証データとを照合する照合部と
を更に有し、
前記第１情報処理装置及び前記第３情報処理装置は、
前記照合部による照合結果に基づいて通信を行う
情報処理システム。
【請求項１０】
前記第４データ生成部は、
ＧＣＭを用いて、前記入力データを暗号化する
請求項９に記載の情報処理システム。
【請求項１１】
前記第１情報処理装置、前記第２情報処理装置及び前記第３情報処理装置は、
少なくとも３装置の間で合意して前記第１情報処理装置及び前記第３情報処理装置の間で通信を行う
請求項１乃至６、９及び１０のうち、いずれか１項に記載の情報処理システム。
【請求項１２】
ＶＰＮにおける通信を行う
請求項１乃至６、９、１０及び１１のうち、いずれか１項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン及びＳＤＮ等に適用する情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、通信において送受信されるデータを鍵で難読化し、データが不正に取得されてもデータの内容が漏洩しないようにする方法が知られている。
【０００３】
例えば、ディフィー・ヘルマン鍵共有（Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎ  ｋｅｙ  ｅｘｃｈａｎｇｅ）方式（以下「ＤＨ方式」という。）と呼ばれる技術が知られている（例えば、特許文献１等を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第４２００７７０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では、いわゆる中間者攻撃等が行われると、鍵等のデータが不正に取得される場合がある。したがって、セキュリティが十分でない場合がある。
【０００６】
本発明は、上記課題に鑑み、通信におけるセキュリティを向上させる情報処理システム、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題に鑑み、本発明の一実施形態に係る、ユーザが使用する第１情報処理装置と、複数の第２情報処理装置と、サービスを提供する第３情報処理装置とを有する情報処理システムでは、
前記第１情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第３情報処理装置に対してアクセスするリクエストをそれぞれの前記第２情報処理装置に送信する第１送信部
を有し、
前記第２情報処理装置は、
前記リクエストに基づいて、前記ユーザデータを前記第３情報処理装置に送信する第２送信部
をそれぞれ有し、
前記第３情報処理装置は、
入力されるユーザデータを登録する登録部と、
前記第２情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断部と、
前記判断部による判断結果を前記第２情報処理装置に送信する第３送信部と
を有し、
前記第２情報処理装置は、
前記判断結果に基づいて、前記第１情報処理装置及び前記第３情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成部と、
前記鍵又は前記素材データを暗号化して第１暗号化データを生成する第１暗号化部と、
前記鍵又は前記素材データを暗号化して第２暗号化データを生成する第２暗号化部と、
前記第１暗号化データを前記第１情報処理装置に送信する第４送信部と、
前記第２暗号化データを前記第３情報処理装置に送信する第５送信部と
をそれぞれ更に有し、
前記第１情報処理装置及び前記第３情報処理装置は、
前記第１暗号化データ及び前記第２暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行うことを特徴とする。
【発明の効果】
【０００８】
通信におけるセキュリティを向上させる情報処理システム、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの全体構成例を示す概略図である。
【図２】本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【図３】本発明の一実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。
【図４】本発明の一実施形態に係る情報処理システムによる全体処理における「事前処理」の処理結果例を示す概略図である。
【図５】本発明の一実施形態に係る情報処理システムによる全体処理における「本処理」の処理結果例を示す概略図である。
【図６】本発明の一実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。
【図７】比較例に係る情報処理システムに対する中間者攻撃の例を示す概念図である。
【図８】比較例に係る情報処理システムによる全体処理例を示すシーケンス図である。
【図９】比較例に係る情報処理システムに対する「なりすまし」の例を示す概念図である。
【図１０】本発明の一実施形態に係る情報処理システムにおいて分散データを用いる例を示す概略図である。
【図１１】本発明の第２実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。
【図１２】本発明の第２実施形態に係る登録データの例を示す図である。
【図１３】本発明の第２実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。
【図１４】本発明の第２実施形態に係る情報処理システムによる全体処理の処理結果例を示す概念図である。
【図１５】本発明の実施形態に係る情報処理システムを適用するＳＤＮの例を示す概念図である。
【図１６】本発明の実施形態に係る情報処理システムを適用するブロックチェーンの例を示す概念図である。
【図１７】本発明の実施形態に係る情報処理システムを適用するブロックチェーンの処理結果例を示す概念図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、具体例等を説明する。
【００１１】
＜第１実施形態＞
＜全体構成例＞
図１は、情報処理システムの全体構成例を示す概略図である。例えば、情報処理システム１０は、図示するように、第１情報処理装置の例であるクライアント端末１と、複数の第２情報処理装置の例であるサーバ群２と、第３情報処理装置の例であるサービスサーバ３とを有する構成である。
【００１２】
クライアント端末１は、ユーザＵＲが使用する情報処理装置である。以下、クライアント端末１に対してユーザＵＲがサービスサーバ３にアクセスするように操作した場合を例に説明する。
【００１３】
サービスサーバ３は、ネットワークを利用したサービスを提供する情報処理装置である。この例では、まず、サービスサーバ３は、例えば、いわゆるインターネットバンク又はネットショッピング等のネットワークを利用したサービスを提供する。そして、このようなサービスは、サービスサーバ３によって公開されるホームページにクライアント端末１がアクセスする等によって提供が開始される。
【００１４】
サーバ群２は、図示するように、Ｎ台（Ｎは、２以上の自然数である。）の情報処理装置の集まりである。例えば、サーバ２１、２２、・・・、２Ｎは、いずれも同様の処理を行うとする。以下、サーバ２１、２２、・・・、２Ｎは、同様の処理を行うとする。そして、以下の説明では、サーバ２１のみを取り上げて説明し、重複する説明を省略する。
【００１５】
＜ハードウェア構成例＞
図２は、本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。例えば、第１情報処理装置、第２情報処理装置及び第３情報処理装置は、同じハードウェア構成である。以下、クライアント端末１を例に説明し、第２情報処理装置及び第３情報処理装置についての説明は、省略する。
【００１６】
例えば、クライアント端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００と、通信装置２０１と、インタフェース（ｉｎｔｅｒｆａｃｅ）２０２と、記憶装置２０３と、入力装置２０４と、出力装置２０５とを含むハードウェア構成である。
【００１７】
ＣＰＵ２００は、演算装置及び制御装置の例である。
【００１８】
通信装置２０１は、有線又は無線で外部装置と通信を行う装置である。例えば、通信装置２０１は、ネットワークカード等である。
【００１９】
インタフェース２０２は、外部とデータを送受信する装置である。例えば、インタフェース２０２は、コネクタ等である。
【００２０】
記憶装置２０３は、例えば、主記憶装置等である。なお、記憶装置２０３は、ハードディスク等の補助記憶装置を有してもよい。
【００２１】
入力装置２０４は、ユーザによる操作を入力する装置である。例えば、入力装置２０４は、キーボード、マウス又はこれらの組み合わせ等である。
【００２２】
出力装置２０５は、ユーザに処理結果等を出力する装置である。例えば、出力装置２０５は、ディスプレイ等である。
【００２３】
図示するように、第１情報処理装置、第２情報処理装置及び第３情報処理装置は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ、ノートＰＣ、タブレット、スマートフォン又はこれらの組み合わせ等である。
【００２４】
なお、ハードウェア構成は、図示する構成に限られない。例えば、第１情報処理装置、第２情報処理装置及び第３情報処理装置は、異なるハードウェア構成でもよい。ほかにも、各ハードウェア構成は、情報処理装置の外部又は内部に複数あってもよい。
【００２５】
＜全体処理例＞
図３は、本発明の一実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。まず、情報処理システム１０におけるクライアント端末１、サーバ２１及びサービスサーバ３は、「本処理」を行う前に、「事前処理」を行う。その後、「本処理」によって通信が確立した状態で、クライアント端末１及びサービスサーバ３は、「通信」を行う。
【００２６】
＜第１固有データの記憶例＞（ステップＳ０１）
ステップＳ０１では、クライアント端末１は、第１固有データを記憶するのが望ましい。なお、第１固有データは、クライアント端末１を識別できるデータであればよい。つまり、第１固有データは、クライアント端末１を特定できるユニークな値等である。具体的には、第１固有データは、ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）等である。又は、第１固有データは、例えば、ＭＡＣアドレス（物理アドレス）又は製造番号等である。
【００２７】
また、第１固有データは、デバイス等に設定される値でもよい。又は、第１固有データは、カーネル（Ｋｅｒｎｅｌ）、プロトコル又はソフトウェア等に埋め込まれる値等でもよい。つまり、第１固有データの形式及び設定方法は問わない。
【００２８】
＜第２固有データの記憶例＞（ステップＳ０２）
ステップＳ０２では、サービスサーバ３は、第２固有データを記憶するのが望ましい。なお、第２固有データは、サービスサーバ３を識別できるデータであればよい。つまり、第２固有データは、第１固有データと同様に、サービスサーバ３を特定できるユニークな値等である。また、第１固有データと同様に、第２固有データの形式及び設定方法は問わない。さらに、第２固有データは、第１固有データと同様に、カーネル、プロトコル又はソフトウェア等に埋め込まれる値等でもよい。
【００２９】
＜第１固有データ及び第２固有データの記憶例＞（ステップＳ０３）
ステップＳ０３では、サーバ２１は、第１固有データ及び第２固有データを記憶するのが望ましい。すなわち、サーバ２１は、クライアント端末１から、ステップＳ０１で記憶した第１固有データを取得する。同様に、サーバ２１は、サービスサーバ３から、ステップＳ０２で記憶した第２固有データを取得する。
【００３０】
なお、第１固有データ及び第２固有データの取得方法は、セキュリティが確保できていれば問わない。つまり、クライアント端末１がいわゆる「なりすまし」等でない状態であると確認できる環境下で、サーバ２１は、クライアント端末１からネットワーク等を貸して第１固有データを取得してもよい。一方で、例えば、クライアント端末１の第１固有データとなる値が記載された用紙が郵送で送られ、サーバ２１の管理者等が、用紙に記載された値等を入力する操作を行って、第１固有データが取得されてもよい。
【００３１】
＜ユーザデータの登録例＞（ステップＳ０４）
ステップＳ０４では、サービスサーバ３は、ユーザデータを登録する。
【００３２】
ユーザデータは、ユーザＵＲを識別するデータである。具体的には、ユーザデータは、例えば、ユーザ名、ＩＤ又はユーザが設定する名称等である。ゆえに、ユーザデータは、ユーザＵＲを特定できれば、データの形式等は問わない。
【００３３】
そして、サービスサーバ３は、入力されるユーザデータをデータベース等にして、「本処理」より前に、あらかじめユーザデータを登録する。したがって、サービスサーバ３は、「本処理」において、ユーザデータが登録されているか否かを照合できる。
【００３４】
なお、処理順序は、図示するような順序でなくともよい。例えば、ステップＳ０１及びステップＳ０２は、どちらが先に行われてもよいし、又は、並行して行われてもよい。
【００３５】
情報処理システム１０は、以上のような「事前処理」をあらかじめ行う。そして、「事前処理」が行われると、情報処理システム１０において、データは、例えば、以下のようになる。
【００３６】
図４は、本発明の一実施形態に係る情報処理システムによる全体処理における「事前処理」の処理結果例を示す概略図である。
【００３７】
ステップＳ０１が行われると、図示するように、クライアント端末１は、第１固有データＤＡを記憶する。
【００３８】
ステップＳ０２が行われると、図示するように、サービスサーバ３は、第２固有データＤＢを記憶する。
【００３９】
ステップＳ０３が行われると、図示するように、サーバ２１は、第１固有データＤＡ及び第２固有データＤＢを記憶する。
【００４０】
ステップＳ０４が行われると、図示するように、サービスサーバ３には、ユーザデータＤＣが登録される。
【００４１】
したがって、「事前処理」が行われると、図示するように、サーバ２１は、第１固有データＤＡ及び第２固有データＤＢを把握できる。そして、サーバ２１のように、第２固有データＤＢを記憶しているサーバ、すなわち、サービスサーバ３をあらかじめ把握しているサーバがあると、クライアント端末１は、サーバ２１を検索することで、サーバ２１を介してサービスサーバ３にリクエストが可能になる。
【００４２】
そして、「事前処理」の後、例えば、以下のような「本処理」が実行される。
【００４３】
＜ユーザデータ及び第３情報処理装置に対してアクセスするリクエストの送信例＞（ステップＳ０５）
ステップＳ０５では、クライアント端末１は、サービスサーバに対してアクセスするリクエスト（以下単に「リクエスト」という。）をサーバ２１に送信する。
【００４４】
リクエストは、アクセスを希望するサイト等を示すデータである。具体的には、この例では、サービスサーバ３を特定できるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）又はアドレス等である。ゆえに、リクエストは、サービスサーバ３等が特定できれば、データの形式等は問わない。
【００４５】
ユーザデータは、ユーザＵＲを識別するデータである。具体的には、ユーザデータは、例えば、ユーザ名、ＩＤ又はユーザが設定する名称等である。ゆえに、ユーザデータは、ユーザＵＲを特定できれば、データの形式等は問わない。
【００４６】
ユーザデータは、例えば、リクエストに含まれて送信されてもよい。以下、図等では、ユーザデータは、リクエストに含まれる形式の例で説明する。ただし、リクエストと、ユーザデータとが対応できれば、送信するタイミング及び送信する形式等は問わない。
【００４７】
＜ユーザデータの送信例＞（ステップＳ０６）
ステップＳ０６では、サーバ２１は、ユーザデータをサービスサーバに送信する。すなわち、サーバ２１は、リクエストがあると、リクエストが示すアドレス等に、リクエストがあった旨及びユーザデータを送信する。
【００４８】
＜ユーザデータが登録されているか否かの判断例＞（ステップＳ０７）
ステップＳ０７では、サービスサーバ３は、ユーザデータが登録されているか否かを判断する。すなわち、サービスサーバ３は、サーバ２１を介してリクエストをしてきたユーザＵＲがあらかじめステップＳ０４で登録されている者か否かを判断する。具体的には、サービスサーバ３が有するデータベース等にステップＳ０６で送信されたユーザデータがあると、サービスサーバ３は、ユーザデータが登録されているという判断結果を出力する。一方で、サービスサーバ３が有するデータベース等にステップＳ０６で送信されたユーザデータがないと、サービスサーバ３は、ユーザデータが登録されていないという判断結果を出力する。
【００４９】
＜判断結果の送信例＞（ステップＳ０８）
ステップＳ０８では、サービスサーバ３は、判断結果をサーバ２１に送信する。すなわち、サービスサーバ３は、ステップＳ０７による判断結果をサーバ２１に送信する。
【００５０】
＜判断結果に基づくユーザデータが登録されているか否かの判断例＞（ステップＳ０９）
ステップＳ０９では、サーバ２１は、判断結果に基づいて、ユーザデータが登録されているか否かを判断する。すなわち、ステップＳ０７によって判断された結果に基づいて、サーバ２１は、ユーザデータがサービスサーバ３に登録されているか否かを判断する。
【００５１】
次に、ユーザデータがサービスサーバ３に登録されていると判断すると、情報処理システム１０は、ステップＳ１１に進む。一方で、ユーザデータがサービスサーバ３に登録されていないと判断すると（ステップＳ０９でユーザデータが登録されていないと判断された場合）、情報処理システム１０は、ステップＳ１０に進む。
【００５２】
＜終了処理例＞（ステップＳ１０）
ステップＳ１０では、サーバ２１は、終了処理を行う。つまり、情報処理システム１０は、クライアント端末１と、サービスサーバ３との間で通信をさせない。
【００５３】
＜第１情報処理装置及び第３情報処理装置の間で行われる通信に用いられる鍵の生成例＞（ステップＳ１１）
ステップＳ１１では、サーバ２１は、クライアント端末１及びサービスサーバ３の間で行われる通信（図示する例における「通信」の処理に相当する。）に用いられる鍵を生成する。例えば、鍵の生成手順は、ステップＳ１１１以降のような処理が望ましい。
【００５４】
＜第１所定値の生成及び送信例＞（ステップＳ１１１）
ステップＳ１１１では、サーバ２１は、所定の値（以下「第１所定値」という。）を生成し、クライアント端末１に送信する。
【００５５】
第１所定値は、例えば、乱数等である。つまり、第１所定値は、乱数を生成する関数を実行する等で生成できる値である。なお、第１所定値は、任意に定まる値であればよい。つまり、第１所定値は、乱数に限られず、タイマ等で定まる値等でもよい。
【００５６】
次に、サーバ２１は、生成した第１所定値をクライアント端末１に送信する。
【００５７】
＜第１所定値及び第１固有値に基づく第１計算値の計算例＞（ステップＳ１１２）
ステップＳ１１２では、クライアント端末１は、第１所定値及び第１固有値に基づいて第１計算値を計算する。
【００５８】
第１計算値は、第１所定値及び第１固有値を所定の関数の入力とし、関数を実行すると出力される値である。例えば、関数は、ハッシュ関数等である。すなわち、第１計算値は、ハッシュ値等である。
【００５９】
具体的には、第１計算値は、例えば、下記（１）式のように計算される。
第１計算値  ＝  Ｈａｓｈ（第１所定値，第１固有値）・・・（１）
上記（１）式において、「Ｈａｓｈ（）」は、ハッシュ関数を示す。例えば、ハッシュ関数は、実行されると、第１入力（上記（１）式では、第１所定値である。）を第２入力（上記（１）式では、第１固有値である。なお、第１固有値は、第１固有データで定まる値である。）で除算し、余りを計算する。そして、この例では、計算される余りが第１計算値となる。
【００６０】
なお、ハッシュ関数は、上記のように、除算により、余りを計算する関数に限られない。例えば、ハッシュ関数は、第１入力と、第２入力とを乗算し、乗算結果を設定値で除算する関数等でもよい。この例では、第１計算値は、除算で求まる値を整数にした値等である。
【００６１】
また、第１計算値の計算方法は、ハッシュ関数に限られず、入力に対して出力が定まればよい。つまり、入力が同一であれば、同一の第１計算値が計算される関数であれば、第１計算値の方法は、どのような計算方法であってもよい。
【００６２】
＜第１計算値の送信例＞（ステップＳ１１３）
ステップＳ１１３では、クライアント端末１は、第１計算値をサーバ２１に送信する。すなわち、ステップＳ１１２で計算された第１計算値が、サーバ２１に送信される。
【００６３】
そして、第１計算値等があると、サーバ２１は、クライアント端末１の真正性等を確認できる。
【００６４】
＜第２所定値の生成及び送信例＞（ステップＳ１１４）
ステップＳ１１４では、サービスサーバ３は、所定の値（以下「第２所定値」という。）を生成し、サーバ２１に送信する。
【００６５】
第２所定値は、例えば、乱数等である。つまり、第２所定値は、第１所定値と同様に、乱数を生成する関数を実行する等で生成できる値である。なお、第２所定値は、第１所定値と異なる値である。
【００６６】
次に、サービスサーバ３は、生成した第２所定値をサーバ２１に送信する。
【００６７】
＜第２所定値及び第２固有値に基づく第２計算値の計算例＞（ステップＳ１１５）
ステップＳ１１５では、サーバ２１は、第２所定値及び第２固有値に基づいて第２計算値を計算する。
【００６８】
第２計算値は、第２所定値及び第２固有値を所定の関数の入力とし、関数を実行すると出力される値である。例えば、関数は、ハッシュ関数等である。すなわち、第２計算値は、ハッシュ値等である。
【００６９】
具体的には、第２計算値は、例えば、下記（２）式のように計算される。
第２計算値  ＝  Ｈａｓｈ（第２所定値，第２固有値）・・・（２）
上記（２）式において、「Ｈａｓｈ（）」は、ハッシュ関数を示す。例えば、ハッシュ関数は、実行されると、第１入力（上記（２）式では、第２所定値である。）を第２入力（上記（２）式では、第２固有値である。なお、第２固有値は、第２固有データで定まる値である。）で除算し、余りを計算する。そして、この例では、計算される余りが第２計算値となる。
【００７０】
なお、ハッシュ関数は、上記のように、除算により、余りを計算する関数に限られない。例えば、ハッシュ関数は、第１入力と、第２入力とを乗算し、乗算結果を設定値で除算する関数等でもよい。この例では、第２計算値は、除算で求まる値を整数にした値等である。
【００７１】
また、第２計算値の計算方法は、ハッシュ関数に限られず、入力に対して出力が定まればよい。つまり、入力が同一であれば、同一の第２計算値が計算される関数であれば、第２計算値の方法は、どのような計算方法であってもよい。
【００７２】
なお、第１計算値及び第２計算値の計算方法、すなわち、計算に用いられる関数は、同一でもよいし、異なってもよい。
【００７３】
＜第２計算値の送信例＞（ステップＳ１１６）
ステップＳ１１６では、サーバ２１は、第２計算値をサービスサーバ３に送信する。
【００７４】
＜第２計算値の比較及び比較結果の送信例＞（ステップＳ１１７）
ステップＳ１１７では、サービスサーバ３は、送信された第２計算値と、サービスサーバ３で計算する第２計算値とを比較する。まず、ステップＳ１１７では、サービスサーバ３は、ステップＳ１１５と同様に計算する。
【００７５】
なお、サービスサーバ３には、あらかじめ上記（２）式で用いられるのと同様の関数が設定されるとする。したがって、ステップＳ１１７では、サービスサーバ３は、サーバ２１による第２計算値の計算と同様の計算、すなわち、上記（２）式を計算する。そして、サービスサーバ３は、ステップＳ０２であらかじめ第２固有値を示す第２固有データを記憶し、かつ、ステップＳ１１４で第２所定値を生成する。これらの値を入力とし、サービスサーバ３は、上記（２）式を計算する。
【００７６】
そして、サービスサーバ３は、ステップＳ１１６で受信する第２計算値と、ステップＳ１１７で計算した値とを比較する。比較では、サービスサーバ３は、２つの値が一致するか否かを判断する。
【００７７】
次に、ステップＳ１１７では、サービスサーバ３は、比較結果をサーバ２１に送信する。
【００７８】
比較結果に基づいて、第２計算値がステップＳ１１７で計算される値と一致すると（ステップＳ１１７で送信される比較結果で一致したと判断された場合）、情報処理システム１０は、ステップＳ１１８に進む。
【００７９】
＜セッションＩＤ及び鍵の生成例＞（ステップＳ１１８）
ステップＳ１１８では、サーバ２１は、鍵等を生成する。また、ステップＳ１１８では、サーバ２１は、セッションＩＤを生成するのが望ましい。以下、セッションＩＤと、鍵とがいずれも生成される例で説明する。
【００８０】
例えば、鍵は、所定のビット数になる乱数等である。なお、鍵の生成方法は、乱数を生成する関数の実行に限られず、他のデータを決定する方法でもよい。
【００８１】
セッションＩＤは、「通信」を行うのに用いるセッションを決定するパラメータである。したがって、「通信」は、セッションＩＤで定まるセッションで通信が行われるように設定される。したがって、セッションＩＤを生成すると、通信を行うセッションを変更できる。
【００８２】
なお、サーバ２１は、鍵でなく、鍵を生成するための素材となるデータ（以下「素材データ」という。）を生成してもよい。そして、素材データがあれば、第１情報処理装置及び第３情報処理装置は、同一の鍵を生成できる。
【００８３】
例えば、素材データは、鍵の一部を示すデータ又は鍵を生成するのに素材となるデータ等である。したがって、素材データが送信されると、第１情報処理装置及び第３情報処理装置は、素材データに対して、素材データを入力として所定の関数を実行したり、あらかじめ定められた法則で鍵を完成させたり、又は、あらかじめ定められたデータを素材データに追加したりして、鍵を完成させる。なお、素材データは、関数の入力値等でもよい。この場合には、第１情報処理装置及び第３情報処理装置は、あらかじめ実行する関数が設定される。ゆえに、同一の素材データが入力されると、同一の関数が同一の入力で実行されるため、第１情報処理装置及び第３情報処理装置は、同一の鍵をそれぞれ持つことができる。
【００８４】
なお、鍵を生成する前に行う比較等は、図示する方法及び順序に限られない。
【００８５】
＜鍵等を暗号化して第１暗号化データを生成する例＞（ステップＳ１２）
ステップＳ１２では、サーバ２１は、鍵等を暗号化して第１暗号化データを生成する。例えば、ステップＳ１２では、サーバ２１は、下記（３）式のように、ステップＳ１１８で生成される鍵及びセッションＩＤ等を暗号化して第１暗号化データを生成する。
第１暗号化データ＝  （鍵  ＸＯＲ  第１所定値）  ＸＯＲ  第１固有値・・・（３）
上記（３）式において、「ＸＯＲ」は、排他的論理和（ｅｘｃｌｕｓｉｖｅ  ｏｒ）を示す（「ＥＯＲ」又は「ＥＸ−ＯＲ」等と呼ばれる場合もある）。なお、排他的論理和の計算順序は上記式の順序でなくともよい。以下同様に記載する。したがって、上記（３）式に示すように、サーバ２１は、鍵と、第１所定値との排他的論理和の計算結果に対して、更に第１固有値との排他的論理和を演算する。このようにすると、元のデータである鍵は、別の値となる。ゆえに、第１暗号化データは、第１暗号化データを取得しても、鍵等を知ることが難しい暗号化された状態である。なお、データが複数ある場合には、データを１つにまとめて暗号化してもよいし、別々に暗号化して複数の暗号化データを生成するでもよい。
【００８６】
そして、以降に、第１暗号化データに対して、例えば、下記（４）式のように、第１所定値及び第１固有値の排他的論理和を計算すると、第１暗号化データは、暗号化前のデータに復号化され、鍵等が取得できる。
（第１暗号化データ  ＸＯＲ  第１所定値）  ＸＯＲ  第１固有値・・・（４）
また、セッションＩＤも、例えば、上記（３）式のようにして暗号化される。
【００８７】
＜第１暗号化データの送信例＞（ステップＳ１３）
ステップＳ１３では、サーバ２１は、第１暗号化データをクライアント端末１に送信する。そして、クライアント端末１は、第１所定値及び第１固有値に基づいて、例えば、上記（４）式のように第１暗号化データを復号化すると鍵等を取得できる。
【００８８】
＜鍵等を暗号化して第２暗号化データを生成する例＞（ステップＳ１４）
ステップＳ１４では、サーバ２１は、鍵等を暗号化して第２暗号化データを生成する。例えば、ステップＳ１４では、サーバ２１は、下記（５）式のように、ステップＳ１１８で生成される鍵及びセッションＩＤ等を暗号化して第２暗号化データを生成する。
第２暗号化データ＝  （鍵  ＸＯＲ  第２所定値）  ＸＯＲ  第２固有値・・・（５）
上記（５）式に示すように、サーバ２１は、鍵と、第２所定値との排他的論理和の計算結果に対して、更に第２固有値との排他的論理和を演算する。このようにすると、元のデータである鍵は、別の値となる。
【００８９】
そして、第１暗号化データと同様に、第２暗号化データに対して、例えば、下記（６）式のように、第２所定値及び第２固有値の排他的論理和を計算すると、第２暗号化データは、暗号化前のデータに復号化され、鍵等が取得できる。
（第２暗号化データ  ＸＯＲ  第２所定値）  ＸＯＲ  第２固有値・・・（６）
また、セッションＩＤも、例えば、上記（５）式のようにして暗号化される。
【００９０】
さらに、第２暗号化データには、ユーザデータが暗号化されて含まれるのが望ましい。
【００９１】
＜第２暗号化データの送信例＞（ステップＳ１５）
ステップＳ１５では、サーバ２１は、第２暗号化データをサービスサーバ３に送信する。そして、サービスサーバ３は、第２所定値及び第２固有値に基づいて、例えば、上記（６）式のように第２暗号化データを復号化させて、鍵等を取得できる。
【００９２】
例えば、情報処理システム１０は、以上のような「本処理」を行う。このような「本処理」の後に、例えば、以下のような「通信」を行う。
【００９３】
＜通信例＞（ステップＳ１６）
ステップＳ１６では、クライアント端末１及びサービスサーバ３は、「本処理」で取得した鍵等に基づいて通信を行う。具体的には、「本処理」におけるステップＳ１３によって、クライアント端末１は、鍵を取得できる。そして、サービスサーバ３も、「本処理」におけるステップＳ１５によって、クライアント端末１が取得したのと同一の鍵を取得できる。したがって、クライアント端末１及びサービスサーバ３は、「本処理」で同一の鍵を取得できる。ゆえに、クライアント端末１及びサービスサーバ３は、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の共通鍵方式で暗号化及び復号化して、安全に通信を行うことができる。
【００９４】
また、セッションＩＤも、鍵と同様に、クライアント端末１及びサービスサーバ３は、同一のデータを取得できる。
【００９５】
さらに、サービスサーバ３は、ユーザデータも再度取得できる。
【００９６】
図５は、本発明の一実施形態に係る情報処理システムによる全体処理における「本処理」の処理結果例を示す概略図である。
【００９７】
ステップＳ０５が行われると、図示するように、「本処理」において、「事前処理」で検索されたサーバ２１に対して、クライアント端末１がサービスサーバ３にアクセスしたいというリクエストＲＥＱがされる。
【００９８】
ステップＳ０６が行われると、図示するように、サーバ２１は、リクエストＲＥＱがあった旨及びユーザデータＤＣをサービスサーバ３に送信する。
【００９９】
ステップＳ０７が行われると、図示するように、サーバ２１は、リクエストＲＥＱをしてきたユーザが「事前処理」であらかじめ登録されているユーザか否かを判断する。
【０１００】
ステップＳ０８が行われると、図示するように、サーバ２１は、ステップＳ０７での判断結果ＤＪをサーバ２１に送信する。したがって、判断結果ＤＪによって、サーバ２１は、リクエストＲＥＱのとおり、クライアント端末１をサービスサーバ３にアクセスさせてよいか否かを判断できる。
【０１０１】
次に、判断結果ＤＪに基づいて、登録されていないユーザである場合には（ステップＳ０９でユーザデータが登録されていないと判断された場合）、サーバ２１は、終了処理を行う。一方で、判断結果ＤＪに基づいて、登録されているユーザである場合には（ステップＳ０９でユーザデータが登録されていると判断された場合）、サーバ２１は、クライアント端末１及びサービスサーバ３の間で行われる通信に用いられる鍵ＤＫの生成を行う。
【０１０２】
ステップＳ１０が行われると、情報処理システム１０は、通信を中止するように終了する。したがって、ユーザＵＲがあらかじめサービスサーバ３に登録されていないと、リクエストがあっても、情報処理システム１０では、クライアント端末１及びサービスサーバ３の間で通信が開始されない。
【０１０３】
ステップＳ１１が行われると、図示するように、クライアント端末１及びサービスサーバ３の間で行われる通信をするための鍵ＤＫが生成される。
【０１０４】
ステップＳ１２及びステップＳ１３が行われると、図示するように、クライアント端末１には、鍵ＤＫ等が暗号化された第１暗号化データＤＣＩ１が送信される。
【０１０５】
ステップＳ１４及びステップＳ１５が行われると、図示するように、サービスサーバ３には、鍵ＤＫ等が暗号化された第２暗号化データＤＣＩ２が送信される。
【０１０６】
第１暗号化データＤＣＩ１は、例えば、上記（３）式のように、第１固有値等で暗号化されたデータである。そのため、第１固有データＤＡが記憶されているクライアント端末１は、第１暗号化データＤＣＩ１を、上記（４）式のように復号化して鍵ＤＫ等を取得することができる。
【０１０７】
第２暗号化データＤＣＩ２は、例えば、上記（５）式のように、第２固有値等で暗号化されたデータである。そのため、第２固有データＤＢが記憶されているサービスサーバ３は、第２暗号化データＤＣＩ２を、上記（６）式のように復号化して鍵ＤＫ等を取得することができる。
【０１０８】
このようにすると、クライアント端末１及びサービスサーバ３は、共通する鍵ＤＫをお互いに持つことができる。したがって、クライアント端末１及びサービスサーバ３は、ステップＳ１６のように、共通鍵方式等でセキュリティを確保して通信を行うことができる。
【０１０９】
＜機能構成例＞
図６は、本発明の一実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。図示するように、例えば、第１情報処理装置の例であるクライアント端末１は、第１記憶部１０Ｆ１と、第１送信部１０Ｆ２と、通信部１０Ｆ１３とを有する。また、複数の第２情報処理装置のうち、１台の例であるサーバ２１は、第２送信部１０Ｆ３と、生成部１０Ｆ４と、第１暗号化部１０Ｆ５と、第２暗号化部１０Ｆ６と、第４送信部１０Ｆ７と、第５送信部１０Ｆ８とを有する。さらに、第３情報処理装置の例であるサービスサーバ３は、第２記憶部１０Ｆ９と、登録部１０Ｆ１０と、判断部１０Ｆ１１と、第３送信部１０Ｆ１２と、通信部１０Ｆ１４とを有する。以下、図示するような構成を例に説明する。
【０１１０】
第１記憶部１０Ｆ１は、第１情報処理装置を識別する第１固有データＤＡを記憶する第１記憶手順を行う。例えば、第１記憶部１０Ｆ１は、記憶装置２０３等によって実現される。
【０１１１】
第２記憶部１０Ｆ９は、第２情報処理装置を識別する第２固有データＤＢを記憶する第２記憶手順を行う。例えば、第２記憶部１０Ｆ９は、記憶装置２０３等によって実現される。
【０１１２】
第１送信部１０Ｆ２は、第１情報処理装置を使用するユーザを識別するユーザデータＤＣを第２情報処理装置に送信する第１送信手順を行う。さらに、第１送信部１０Ｆ２は、第３情報処理装置に対する第１情報処理装置によるアクセスのリクエストＲＥＱを送信する第１送信手順を行う。例えば、第１送信部１０Ｆ２は、インタフェース２０２等によって実現される。
【０１１３】
第２送信部１０Ｆ３は、第１情報処理装置からリクエストＲＥＱが送信されると、ユーザデータＤＣを第３情報処理装置に送信する第２送信手順を行う。例えば、第２送信部１０Ｆ３は、インタフェース２０２等によって実現される。
【０１１４】
登録部１０Ｆ１０は、ユーザデータＤＣを登録する登録手順を行う。例えば、登録部１０Ｆ１０は、記憶装置２０３等によって実現される。
【０１１５】
判断部１０Ｆ１１は、第２送信部１０Ｆ３によって送信されるユーザデータＤＣを受信する判断手順を行う。そして、判断部１０Ｆ１１は、受信したユーザデータＤＣが登録部１０Ｆ１０によって登録されているか否かを判断する判断手順を行う。例えば、判断部１０Ｆ１１は、ＣＰＵ２００等によって実現される。
【０１１６】
第３送信部１０Ｆ１２は、判断部１０Ｆ１１による判断結果を第２情報処理装置に送信する第３送信手順を行う。例えば、第３送信部１０Ｆ１２は、インタフェース２０２等によって実現される。
【０１１７】
生成部１０Ｆ４は、判断部１０Ｆ１１による判断結果に基づいて、第１情報処理装置及び第３情報処理装置の間で行われる通信に用いられる鍵ＤＫを生成する生成手順を行う。なお、生成部１０Ｆ４は、素材データを生成してもよい。例えば、生成部１０Ｆ４は、ＣＰＵ２００等によって実現される。
【０１１８】
なお、生成部１０Ｆ４は、第１情報処理装置及び第３情報処理装置の間で行われる通信のセッションを識別するセッションデータＤＳＥ等を生成するのが望ましい。
【０１１９】
第１暗号化部１０Ｆ５は、鍵ＤＫ等を暗号化して第１暗号化データＤＣＩ１を生成する第１暗号化手順を行う。例えば、第１暗号化部１０Ｆ５は、ＣＰＵ２００等によって実現される。
【０１２０】
第２暗号化部１０Ｆ６は、鍵ＤＫ等を暗号化して第２暗号化データＤＣＩ２を生成する第２暗号化手順を行う。例えば、第２暗号化部１０Ｆ６は、ＣＰＵ２００等によって実現される。
【０１２１】
第４送信部１０Ｆ７は、第１暗号化部１０Ｆ５が生成する第１暗号化データＤＣＩ１を第１情報処理装置に送信する第４送信手順を行う。例えば、第４送信部１０Ｆ７は、インタフェース２０２等によって実現される。
【０１２２】
第５送信部１０Ｆ８は、第２暗号化部１０Ｆ６が生成する第２暗号化データＤＣＩ２を第３情報処理装置に送信する第５送信手順を行う。例えば、第５送信部１０Ｆ８は、インタフェース２０２等によって実現される。
【０１２３】
通信部１０Ｆ１３及び通信部１０Ｆ１４は、第１暗号化データＤＣＩ１及び第２暗号化データＤＣＩ２を復号化して取得できる鍵ＤＫ又は素材データに基づいて生成される鍵を用いて通信を行う通信手順を行う。例えば、通信部１０Ｆ１３及び通信部１０Ｆ１４は、インタフェース２０２等によって実現される。
【０１２４】
また、第２情報処理装置は、図１に示すように、サーバ２１、２２、・・・２Ｎのように複数となる。そして、それぞれの第２情報処理装置が有するそれぞれの生成部１０Ｆ４によって、異なる鍵ＤＫ又は素材データを生成する。このようにすると、Ｎ個の異なる鍵ＤＫ又は素材データが生成できる。これらの鍵ＤＫ又は素材データから生成される鍵は、セッションデータＤＳＥに対応するように、すなわち、セッションごとに生成されるのが望ましい。このように、複数の鍵が生成されると、第１情報処理装置及び第３情報処理装置は、セッションごとに、異なる鍵を用いることができる。そして、各セッションは、セッションデータＤＳＥによって設定できる。
【０１２５】
このように、セッションごとに、異なる鍵を用いて通信を行うと、よりセキュリティを高めることができる。
【０１２６】
また、第２情報処理装置の数、すなわち、「Ｎ」は、多すぎると、鍵を生成する時間及びユーザデータを用いる判断等のチェック時間が長くなり、通信が遅くなる場合がある。一方で、第２情報処理装置の数、すなわち、「Ｎ」は、少ないと、鍵の数も少なくなる、及び、ユーザデータを用いる判断等のチェックを行う回数が少なくなる等によりセキュリティが十分でない場合がある。
【０１２７】
そこで、第２情報処理装置の数、すなわち、「Ｎ」は、２乃至１０  台程度であるのが望ましい。より望ましくは、「Ｎ」は、３乃至５  台程度であるのが望ましい。このような台数であると、通信が遅くなるのを少なくし、かつ、セキュリティを高めることができる。
【０１２８】
なお、複数の第２情報処理装置を用いると、判断結果が複数発生する。そこで、第２情報処理装置は、複数の判断結果がすべて通信を行ってよいという判断である場合に鍵等を生成するとしてもよい。このように、複数のチェック結果を、いわゆる「ＡＮＤ」で利用すると、よりセキュリティを向上させることができる。なお、複数の判断結果を用いる場合には、すべてでなく、多数決等としてもよい。
【０１２９】
また、第１情報処理装置は、第１所定値Ｐ１及び第１固有データＤＡに基づく計算によって第１計算値Ｃ１を生成するのが望ましい。第１計算値Ｃ１は、ハッシュ値等である。したがって、第１計算値Ｃ１は、同一の第１所定値Ｐ１及び第１固有データＤＡを持つ情報処理装置であれば、同一の値を計算できる。ゆえに、第１計算値Ｃ１を用いて暗号化した第１暗号化データＤＣＩ１は、あらかじめ第１所定値Ｐ１及び第１固有データＤＡを渡した情報処理装置でないと復号化が難しい。そのため、「なりすまし」等を防ぐことができたり、又は、第１暗号化データＤＣＩ１が不正に取得されても、鍵ＤＫ等が漏洩するのを防ぐことができたりする。
【０１３０】
また、第３情報処理装置は、第２所定値Ｐ２及び第２固有データＤＢに基づく計算によって第２計算値Ｃ２を生成するのが望ましい。第２計算値Ｃ２は、ハッシュ値等である。したがって、第２計算値Ｃ２は、同一の第２所定値Ｐ２及び第２固有データＤＢを持つ情報処理装置であれば、同一の値を計算できる。ゆえに、第２計算値Ｃ２を用いて比較することで「なりすまし」等がないかをチェックできる。
【０１３１】
＜第１比較例＞
図７は、比較例に係る情報処理システムに対する中間者攻撃の例を示す概念図である。この比較例は、図１に示す例におけるクライアント端末１に相当する第４情報処理装置４が、図１に示す例におけるサービスサーバ３に相当する第５情報処理装置にアクセスする例である。
【０１３２】
図７（Ａ）に示すように、第４情報処理装置４と、第５情報処理装置５との通信経路に対して、不正にデータを取得しようとする第３者（以下「中間者」という。）によって、例えば、図示するように、第６情報処理装置６が接続される。なお、第４情報処理装置４及び第５情報処理装置５は、第６情報処理装置６が接続されたのを分からないとする。
【０１３３】
そして、図７（Ａ）に示すような点に第６情報処理装置６が接続されると、以降の通信経路は、例えば、図７（Ｂ）のようになる。具体的には、図示する例では、第４情報処理装置４から第５情報処理装置５に送信するデータは、第６情報処理装置６を経由して第５情報処理装置５に送信される。この場合には、第６情報処理装置６は、データが削除されたり、又は、データが改ざんされたりしないと、データが無事に送受信されたように見える。そのため、第４情報処理装置４及び第５情報処理装置５は、データの内容を第６情報処理装置６に不正に取得されたが分からない場合がある。
【０１３４】
同様に、第４情報処理装置４に第５情報処理装置５から送信するデータも、第６情報処理装置６を経由して第４情報処理装置４に送信される通信経路にすることができる。
【０１３５】
したがって、中間者攻撃を行うと、第６情報処理装置６は、第４情報処理装置４及び第５情報処理装置５の間を送受信するデータを不正に取得できる場合がある。
【０１３６】
ゆえに、第６情報処理装置６は、第４情報処理装置４及び第５情報処理装置５の間で送信されるデータを取得し続けると、鍵等のデータを取得できる可能性がある。このように、鍵等のデータを第６情報処理装置６に取得されると、第６情報処理装置６は、鍵を用いて暗号化されたデータを復号化できる場合がある。ゆえに、比較例のような構成であると、セキュリティが十分でない可能性がある。
【０１３７】
一方で、本実施形態のような構成であると、クライアント端末１及びサービスサーバ３を結ぶ通信経路に中間者攻撃をしても、鍵は、サーバ２１から送信されるため、クライアント端末１及びサービスサーバ３を結ぶ通信経路からでは、中間者は、取得できない。したがって、本実施形態のような構成であると、中間者攻撃等があっても、鍵等のデータが漏洩するのを防ぐことができる。
【０１３８】
また、本実施形態のような構成であると、いわゆるワンタイムパスワード等を利用する場合とは異なり、通信を行う情報処理装置の間で、時間を同期させるのを不要にできる。
【０１３９】
さらに、本実施形態のような構成であると、第２情報処理装置に、第１情報処理装置が第３情報処理装置にアクセスする時間等を示すログを残すことができる。
【０１４０】
＜第２比較例＞
図８は、比較例に係る情報処理システムによる全体処理例を示すシーケンス図である。図３に示す全体処理と比較すると、ステップＳ０３、ステップＳ０４、ステップＳ０６乃至ステップＳ１０に示す処理がない点が異なる。このような全体処理を行う比較例において、例えば、以下のような「なりすまし」が行われたとする。
【０１４１】
図９は、比較例に係る情報処理システムに対する「なりすまし」の例を示す概念図である。図示する比較例は、正規の使用者であるユーザＵＲに「なりすまし」をした第３者ＦＵＲが、図８に示す全体処理を行う比較例情報処理システム２０を用いて、サービスサーバ３に不正にアクセスする例である。なお、この比較例では、第３者ＦＵＲが使用する情報処理装置を第７情報処理装置７とする。
【０１４２】
第７情報処理装置７は、クライアント端末１でないため、第１固有データＤＡを有しない。また、第３者ＦＵＲは、ユーザＵＲでないため、あらかじめサービスサーバ３に登録されるユーザＵＲのＩＤ等を知らない。そのため、第７情報処理装置７は、ユーザＵＲのユーザデータを有さない。
【０１４３】
比較例情報処理システム２０では、ステップＳ０４及びステップＳ０６乃至ステップＳ１０が行われない。そのため、比較例情報処理システム２０では、ユーザＵＲのユーザデータでなくとも、第３者ＦＵＲのユーザデータでリクエストをサーバ２１に行えば、鍵等を生成する処理、すなわち、ステップＳ１１等が実行される場合がある。
【０１４４】
また、比較例情報処理システム２０では、ステップＳ１１２等では、クライアント端末１の第１固有データＤＡに代えて、例えば、第７情報処理装置７の固有データを用いるようにする。このようにすると、クライアント端末１、すなわち、第１固有データＤＡでなくとも、ハッシュ値が生成される場合がある。そのため、第３者ＦＵＲであっても、第７情報処理装置７は、鍵ＤＫを取得できる場合がある。ゆえに、第３者ＦＵＲは、「なりすまし」によって、ユーザＵＲと不正に代わって、サービスサーバ３にステップＳ１６により、アクセスできる場合がある。
【０１４５】
もし、いわゆる「フィッシング」等の不正な取得方法によって、ユーザＵＲのＩＤ及びパスワード等が、第３者ＦＵＲに不正に取得されてしまうと、比較例情報処理システム２０では、サービスサーバ３は、第３者ＦＵＲをユーザＵＲと認証してしまうおそれがある。すなわち、第３者ＦＵＲによる「なりすまし」等よって、ユーザＵＲは、サービスサーバ３におけるアカウントを不正に使用される可能性がある。
【０１４６】
一方で、本実施形態であると、例えば、リクエストの際等にユーザＵＲのユーザデータを送信し、ステップＳ０６乃至ステップＳ０９のようにチェックする。このような構成であると、第３者ＦＵＲのユーザデータでは、ユーザＵＲのユーザデータでないため、事前にサービスサーバ３に登録されているユーザデータとは異なるとステップＳ０７で判断される。
【０１４７】
このような判断結果では、ステップＳ１０による終了処理が行われるため、鍵ＤＫを生成する処理等（すなわち、ステップＳ１１以降の処理等である。）が実行されない。ゆえに、本実施形態では、第３者ＦＵＲは、「なりすまし」によって、ユーザＵＲと不正に代わって鍵ＤＫを取得できない。このようにして、「なりすまし」等を防ぐことで、情報処理システム１０は、セキュリティを高めることができる。
【０１４８】
また、本実施形態では、ステップＳ１２では、サーバ２１は、ステップＳ０３であらかじめ記憶する第１固有データＤＡ等で暗号化する。そのため、第７情報処理装置７は、ステップＳ１３で第１暗号化データＤＣＩ１を取得できても、第１固有データＤＡを有さないため、第１暗号化データＤＣＩ１を復号化するのが難しい。ゆえに、第７情報処理装置７は、第１暗号化データＤＣＩ１から鍵ＤＫ等を不正に取得するのが難しい。
【０１４９】
また、セッションデータＤＳＥがないため、第７情報処理装置７は、サービスサーバ３と異なるセッションで通信を行おうとする（異なるセッションＩＤを使用する）。このような状態では、ステップＳ１６のような通信を行うのは難しい。このようにして、鍵ＤＫ及びセッションデータＤＳＥ等が不正に取得されるのを防ぐことで、情報処理システム１０は、セキュリティを高めることができる。
【０１５０】
＜固有データの発行例＞
第１固有データ及び第２固有データは、動的に割り当てられるのが望ましい。例えば、第１固有データ、すなわち、第１情報処理装置を識別する固有データは、第２情報処理装置にアクセスすることで割り当てられるのが望ましい。したがって、第１固有データは、例えば、リクエストごとに切り替えられると、よりセキュリティを高めることができる。
【０１５１】
なお、固有データは、第２固有データが切り替えられてもよい。また、切り替えるタイミングは、リクエストごとでなく、一定期間ごと又は１通信ごと等でもよい。
【０１５２】
このように、動的に固有データを切り替える方式を「動的固有アイデンティティ（Ｄｙｎａｍｉｃ  Ｓｐｅｃｉｆｉｃ  Ｉｄｅｎｔｉｔｙ、ＤＳＩ）」と呼ぶ。
【０１５３】
また、第１情報処理装置等は、例えば、ＯＭＡ−ＤＭ（Ｏｐｅｎ  Ｍｏｂｉｌｅ  Ａｌｌｉａｎｃｅ−Ｄｅｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ）、ＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）又はＲａｄｉｕｓ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）等によって認証されるのが望ましい。いわゆるＡＡＡ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ（認証）、Ａｕｔｈｏｒｉｚａｔｉｏｎ（認可）及びＡｃｃｏｕｎｔｉｎｇ（アカウンティング）の機能を有する情報処理システムをいう。）等によって、第１情報処理装置等は、認証等がされるのが望ましい。
【０１５４】
さらに、第１固有データ等は、ハードウェア等を特定するデータでもよい。例えば、第１固有データ等は、第１情報処理装置が有するセンサ等に基づく位置情報又は第１情報処理装置が有するデバイスのＩＤ等でもよい。
【０１５５】
また、第１固有データ等は、分散して記憶されるデータ（以下「分散データ」という。）に基づいて生成されるのが望ましい。
【０１５６】
図１０は、本発明の一実施形態に係る情報処理システムにおいて分散データを用いる例を示す概略図である。まず、Ｎ台の第２情報処理装置及び第１情報処理装置には、図示するように、あらかじめ第１分散データＤＤ１、第２分散データＤＤ２、・・・、第Ｎ分散データＤＤＮ及び第（Ｎ＋１）分散データＤＤＮ１がそれぞれ記憶される。
【０１５７】
例えば、「事前処理」等において、クライアント端末１がサーバ２１等にアクセスすると、サーバ群２におけるサーバ２１、２２、・・・、２Ｎは、クライアント端末１にそれぞれの分散データを送信する。
【０１５８】
そして、クライアント端末１は、各分散データを受信すると、分散データに基づいて、第１固有データを生成する。例えば、第１分散データＤＤ１、第２分散データＤＤ２、第Ｎ分散データＤＤＮ及び第（Ｎ＋１）分散データＤＤＮ１が１ビットのデータである場合には、すべての分散データをビットとした第１固有データ等を生成する。なお、第１固有データの生成方法は、各分散データをビットとする方法に限られない。すなわち、第１固有データは、例えば、各分散データを組み合わせ又は加算等してもよい。ほかにも、第１固有データは、所定の関数に対して、分散データを入力して生成されてもよい。
【０１５９】
このように、第１固有データ等は、第２情報処理装置が記憶する分散データ等に基づいて生成されるのが望ましい。すなわち、複数の分散データのうち、いずれか１つの分散データを取得できただけでは、第１固有データ等を不正に複製するのは難しい。したがって、第１固有データを特定するためのデータを図示するように、複数の情報処理装置で分散して記憶すると、よりセキュリティを高めることができる。
【０１６０】
＜第２実施形態＞
例えば、第２実施形態は、第１実施形態と同様の全体構成及び同様のハードウェア構成である情報処理装置等によって実現される。一方で、第２実施形態では、第１実施形態と全体処理が異なる。以下、異なる点を中心に説明し、第１実施形態と同様の構成には同一の符号を付して重複する説明を省略する。
【０１６１】
また、以下の説明は、第２実施形態も第１実施形態と同様に、複数の第２情報処理装置のうち、サーバ２１を代表とした例で説明する。
【０１６２】
＜全体処理例＞
図１１は、本発明の第２実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。第１実施形態と同様に、全体処理では、まず、「本処理」の前に「事前処理」が行われる。その後、「本処理」によって通信が確立した状態で、クライアント端末１及びサービスサーバ３は、「通信」を行う。
【０１６３】
＜認証データ等の登録例＞（ステップＳ２０１）
ステップＳ２０１では、サーバ２１は、認証データ等を登録する。例えば、サーバ２１は、あらかじめ認証データ等を対応させて登録し、以下のようなデータベースを構築する。
【０１６４】
図１２は、本発明の第２実施形態に係る登録データの例を示す図である。例えば、ステップＳ２０１によって、図示するような形式でデータ（以下「登録データＤＲ」という。）が記憶され、データベースが構築されるとする。
【０１６５】
登録データＤＲでは、図示するように、「ユーザ名」に対応して、認証データの例である「ログインＩＤ」及び「パスワード」等があらかじめデータ登録される。さらに、登録データＤＲには、セッションデータの例である「セッションＩＤ」がデータ登録される。また、例えば、図示するように、登録データＤＲには、各セッションに対応するように、「鍵」等がデータ登録される。
【０１６６】
「ログインＩＤ」及び「パスワード」は、サーバ２１がユーザを認証するのに用いるデータの例である。具体的には、サーバ２１は、サービス開始又はアクセス等の際に、ログインＩＤ及びパスワードの入力を求める。そして、クライアント端末１等に対して、ユーザがログインＩＤ及びパスワード等を入力する操作を行う。
【０１６７】
具体的には、サーバ２１から要求されると、例えば、「ユーザα」は、クライアント端末１に対して、ログインＩＤとして「ＡＡＡＡ」を入力し、かつ、パスワードとして「Ａ１２３４Ｒｅｔ」を入力する。このようにして入力されたログインＩＤ及びパスワード等がクライアント端末１からサーバ２１に送信される。
【０１６８】
そして、サーバ２１は、登録データＤＲに登録されているログインＩＤ及びパスワードと、クライアント端末１から送信されたログインＩＤ及びパスワードとを照合する。この照合の結果、ログインＩＤ及びパスワードがどちらも完全に一致すると、サーバ２１は、クライアント端末１を使用しているユーザが「ユーザα」であると認証できる。
【０１６９】
「セッションＩＤ」は、通信におけるセッションを特定できるデータである。なお、「セッションＩＤ」の決定方法は、どのような方法でもよい。
【０１７０】
「鍵」は、通信において、データを暗号化等に用いるデータである。なお、「鍵」の生成方法は、どのような方法でもよい。
【０１７１】
また、「セッションＩＤ」及び「鍵」は、あらかじめ生成するのでなく、リクエストがあった場合等に生成されてもよい。以下、リクエストがあった場合に、「セッションＩＤ」及び「鍵」を生成する例で説明する。
【０１７２】
また、以下に説明する例では、「セッションＩＤ」及び「鍵」は、「事前処理」の段階では、未入力であるとする。この例では、「セッションＩＤ」及び「鍵」は、「本処理」において登録されるとする。
【０１７３】
＜第３情報処理装置に対してアクセスするリクエストの送信例＞（ステップＳ２０２）
ステップＳ２０２では、クライアント端末１は、サービスサーバ３に対してアクセスするリクエストをサーバ２１に送信する。
【０１７４】
＜セッションＩＤ及び鍵の生成例＞（ステップＳ２０３）
ステップＳ２０３では、サーバ２１は、セッションＩＤ及び鍵を生成する。
【０１７５】
＜セッションＩＤ及び鍵を暗号化して第１データを生成し、第１データを送信する例＞（ステップＳ２０４）
ステップＳ２０４では、サーバ２１は、まず、セッションＩＤ及び鍵を暗号化して、クライアント端末１が復号化できる暗号化されたデータ（以下「第１データ」という。）を生成する。したがって、第１データの生成方法は、クライアント端末１が復号化できれば問わない。
【０１７６】
次に、ステップＳ２０４では、サーバ２１は、生成した第１データをクライアント端末１に送信する。
【０１７７】
＜セッションＩＤ、鍵及びユーザデータを暗号化して第２データを生成し、第２データを送信する例＞（ステップＳ２０５）
ステップＳ２０５では、サーバ２１は、まず、セッションＩＤ、鍵及びユーザデータを暗号化して、サービスサーバ３が復号化できる暗号化されたデータ（以下「第２データ」という。）を生成する。したがって、第２データの生成方法は、サービスサーバ３が復号化できれば問わない。
【０１７８】
また、ユーザデータは、登録データＤＲにおける「ユーザ名」が識別できるデータである。したがって、「ログインＩＤ」等がユーザデータとして入力されてもよい。
【０１７９】
次に、ステップＳ２０５では、サーバ２１は、生成した第２データをサービスサーバ３に送信する。
【０１８０】
＜セッションＩＤ及び鍵の登録例＞（ステップＳ２０６）
ステップＳ２０６では、サービスサーバ３は、登録データＤＲに、ユーザデータに基づいて、セッションＩＤ及び鍵を登録する。具体的には、サービスサーバ３は、まず、ステップＳ２０５で送信される第２データを復号化してセッションＩＤ、鍵及びユーザデータを取得する。そして、サービスサーバ３は、ユーザデータが示す「ユーザ名」を特定する。
【０１８１】
例えば、クライアント端末１を操作するユーザが「ユーザα」である場合には、ユーザデータは、「ユーザα」であることを示す。この場合には、サービスサーバ３は、「ユーザα」に対応する「セッションＩＤ」及び「鍵」に、第２データで送信されたセッションＩＤ及び鍵を登録する。このような登録がされると、登録データＤＲは、例えば、図１２に示すような状態となる。
【０１８２】
＜セッションＩＤの送信例＞（ステップＳ２０７）
ステップＳ２０７では、クライアント端末１は、サービスサーバ３にセッションＩＤを送信するのが望ましい。すなわち、ステップＳ２０７では、クライアント端末１は、まず、ステップＳ２０４で送信された第１データを復号化してセッションＩＤを取得する。そして、ステップＳ２０７では、クライアント端末１は、取得したセッションＩＤをサービスサーバ３に知らせる。
【０１８３】
＜セッションＩＤが登録されているか否かの判断例＞（ステップＳ２０８）
ステップＳ２０８では、サービスサーバ３は、ステップＳ２０７で送信されるセッションＩＤが登録されているか否かを判断する。そして、サービスサーバ３は、判断結果をクライアント端末１に返信する。
【０１８４】
次に、セッションＩＤが登録されているという判断結果であると、クライアント端末１は、ステップＳ２０９以降の処理を続ける。一方で、セッションＩＤが登録されていないという判断結果であると、情報処理システム１０は、全体処理を終了する。
【０１８５】
このようにセッションＩＤの登録を確認することで、真正性を確認することができる。
【０１８６】
＜ログインＩＤ及びパスワードの受付例＞（ステップＳ２０９）
ステップＳ２０９では、クライアント端末１は、ログインＩＤ及びパスワードをユーザＵＲから受け付ける。例えば、クライアント端末１は、ログインＩＤ及びパスワードを入力するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等によって、ユーザＵＲによる操作を受け付ける。
【０１８７】
ユーザＵＲは、あらかじめ登録してある認証データと同一の内容、すなわち、登録データＤＲにあらかじめ登録してある「ログインＩＤ」及び「パスワード」を入力する操作を行う。
【０１８８】
以下、ステップＳ２０９で入力されたログインＩＤ及びパスワードを示すデータを「入力データ」という。
【０１８９】
＜鍵及び入力データに基づく第３データの生成例＞（ステップＳ２１０）
ステップＳ２１０では、クライアント端末１は、鍵及び入力データに基づいて、第３データを生成する。
【０１９０】
第３データは、例えば、ハッシュ値等である。したがって、クライアント端末１は、あらかじめ設定されるハッシュ関数を実行する等によって、第３データを生成する。例えば、第３データは、下記（７）式等のように生成される。
第３データ＝ＨＭＡＣ（鍵，入力データ）・・・（７）
上記（７）式における「ＨＭＡＣ」は、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）アルゴリズムを実行する関数を指す。そして、上記（７）式における「ＨＭＡＣ」では、例えば、ＨＭＡＣ−ＳＨＡ−２５６（Ｋｅｙｅｄ  Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ−ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ）−２５６、ＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ）４８６８で定義されるハッシュ関数である。）等の関数が実行される。この例では、「ＳＨＡ−２５６」を採用するため、関数が実行されると、２５６ビットのハッシュ値が算出される。このように、ＨＭＡＣ−ＳＨＡ−２５６に準じたハッシュ関数には、第１データによって取得できる鍵と、入力データによって取得できるログインＩＤ及びパスワードとが入力される。
【０１９１】
すなわち、上記（７）式のように計算すると、２５６ビットの第３データが生成できる。このように、第３データが２５６ビットのデータであると、例えば、以下のように、処理を行うことができる。
【０１９２】
＜第３データ及び鍵に基づく第１合成鍵の生成例＞（ステップＳ２１１）
ステップＳ２１１では、クライアント端末１は、第３データ及び鍵に基づいて、第１合成鍵を生成する。例えば、第１合成鍵は、下記（８）式のように生成される。
第１合成鍵＝第３データの上位１２８ビット  ＸＯＲ  第３データの下位１２８ビット
ＸＯＲ  鍵・・・（８）
なお、上記（８）式では、「鍵」は、あらかじめ１２８ビットであるとする。例えば、上記（８）式のとおりに、第３データの上位１２８ビット、第３データの下位１２８ビット及び鍵の排他的論理和が計算されると、第１合成鍵は、１２８ビットのデータとなる。したがって、第３データは、上記（８）式のように計算するため、２５６ビットであるのが望ましい。
【０１９３】
＜第１合成鍵に基づいて入力データを暗号化して第４データを生成する例＞（ステップＳ２１２）
ステップＳ２１２では、クライアント端末１は、ステップＳ２１１で生成する第１合成鍵を用いて、入力データを暗号化して第４データを生成する。具体的には、暗号化は、ＧＣＭ（Ｇａｌｏｉｓ／Ｃｏｕｎｔｅｒ  Ｍｏｄｅ）用いられるが望ましい。ＧＣＭが用いられると、オーバヘッドを少なくできる。また、ＧＣＭを用いると、暗号化によるデータ保護と、認証とを両立させることができる。
【０１９４】
このように、ＧＣＭを用いるには、第１合成鍵等は、１２８ビットのデータであるのが望ましい。
【０１９５】
＜第４データを第３情報処理装置に送信する例＞（ステップＳ２１３）
ステップＳ２１３では、クライアント端末１は、ステップＳ２１２で生成する第４データをサービスサーバ３に送信する。
【０１９６】
＜ログインＩＤ及びパスワードの抽出例＞（ステップＳ２１４）
ステップＳ２１４では、サービスサーバ３は、登録データＤＲから、ログインＩＤ及びパスワードを抽出する。具体的には、サービスサーバ３は、ステップＳ２０５で送信される第２データを復号化すると、ユーザデータを取得できる。そして、サービスサーバ３は、ユーザデータに基づいて、認証データを登録データＤＲから抽出する。つまり、この例では、サービスサーバ３は、ユーザデータが示す「ユーザ名」に対応する「ログインＩＤ」及び「パスワード」を抽出する。
【０１９７】
＜鍵及び認証データに基づく第５データの生成例＞（ステップＳ２１５）
ステップＳ２１５では、サービスサーバ３は、鍵及び認証データに基づいて、第５データを生成する。
【０１９８】
第５データは、例えば、ハッシュ値等である。したがって、サービスサーバ３は、あらかじめ設定されるハッシュ関数を実行する等によって、第５データを生成する。例えば、第５データは、下記（９）式等のように生成される。
第５データ＝ＨＭＡＣ（鍵，認証データ）・・・（９）
上記（９）式における「ＨＭＡＣ」は、上記（７）式と同様である。また、この例では、上記（７）式と同様に、「ＳＨＡ−２５６」を採用すると、２５６ビットのハッシュ値が算出される。したがって、「鍵」が同一であり、かつ、「認証データ」が示す内容と、「入力データ」が示す内容とが同一であれば、上記（９）式の計算結果、すなわち、第５データと、上記（７）式の計算結果、すなわち、第３データとは、一致する。
【０１９９】
＜第５データ及び鍵に基づく第２合成鍵の生成例＞（ステップＳ２１６）
ステップＳ２１６では、サービスサーバ３は、第５データ及び鍵に基づいて、第２合成鍵を生成する。例えば、第２合成鍵は、下記（１０）式のように生成される。
第２合成鍵＝第５データの上位１２８ビット  ＸＯＲ  第５データの下位１２８ビット
ＸＯＲ  鍵・・・（１０）
なお、上記（１０）式では、上記（８）式と同様に、「鍵」は、あらかじめ１２８ビットであるとする。例えば、上記（１０）式のとおりに、第５データの上位１２８ビット、第５データの下位１２８ビット及び鍵の排他的論理和が計算されると、第２合成鍵は、１２８ビットのデータとなる。したがって、第５データは、上記（１０）式のように計算するため、２５６ビットであるのが望ましい。また、第５データが第３データと同一であり、かつ、上記（１０）式における「鍵」が同一であれば、第２合成鍵は、第１合成鍵と同一のデータとなる。
【０２００】
＜第２合成鍵に基づく第４データの復号化例＞（ステップＳ２１７）
ステップＳ２１７では、サービスサーバ３は、第２合成鍵に基づいて、第４データを復号化する。すなわち、サービスサーバ３は、ステップＳ２１３で送信される第４データをステップＳ２１６で生成する第２合成鍵で復号化する。
【０２０１】
第２合成鍵が第１合成鍵と同一であれば、第４データが第１合成鍵で暗号化されているため、サービスサーバ３は、第４データを第２合成鍵で復号化できる。そして、サービスサーバ３は、第４データから入力データを取得できる。
【０２０２】
＜第４データを復号化して取得する入力データと、認証データとの照合例＞（ステップＳ２１８）
ステップＳ２１８では、サービスサーバ３は、第４データを復号化して取得する入力データと、認証データとを照合する。そして、サービスサーバ３は、照合結果をクライアント端末１に送信する。
【０２０３】
まず、サービスサーバ３は、ステップＳ２１７で復号化する第４データから入力データを取得する。次に、サービスサーバ３は、取得する入力データと、登録データから抽出される認証データとが同一の内容であるかを照合する。すなわち、サービスサーバ３は、クライアント端末１でユーザＵＲが入力したログインＩＤ及びパスワードが、あらかじめ登録データＤＲに登録されたログインＩＤ及びパスワードと同一であるか否かをチェックする。
【０２０４】
照合の結果、入力データと、認証データとが同一の内容であると（ステップＳ２１８で送信される照合結果で一致したと判断された場合）、サービスサーバ３は、ステップＳ２１９に進む。一方で、入力データと、認証データとが同一の内容でないと、サービスサーバ３は、クライアント端末１と通信を開始しない。
【０２０５】
＜通信例＞（ステップＳ２１９）
ステップＳ２１９では、クライアント端末１及びサービスサーバ３は、照合結果に基づいて通信を行う。つまり、照合結果に基づいて、入力データと、認証データとが同一の内容である場合には、クライアント端末１及びサービスサーバ３は、暗号化及び復号化等を行いながら通信を行う。
【０２０６】
例えば、クライアント端末１及びサービスサーバ３は、第１合成鍵及び第２合成鍵を鍵とするＧＣＭ等によって通信を行う。
【０２０７】
＜機能構成例＞
図１３は、本発明の第２実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。例えば、第１情報処理装置の例であるクライアント端末１は、リクエスト送信部１０Ｆ２０２と、受付部１０Ｆ２０６と、第３データ生成部１０Ｆ２０７と、第１合成鍵生成部１０Ｆ２０８と、第４データ生成部１０Ｆ２０９と、第４データ送信部１０Ｆ２１０と、通信部１０Ｆ２１６とを有する。また、第２情報処理装置の例であるサーバ２１は、例えば、データ生成部１０Ｆ２０３と、第１データ送信部１０Ｆ２０４と、第２データ送信部１０Ｆ２０５とを有する。さらに、第３情報処理装置の例であるサービスサーバ３は、例えば、データ登録部１０Ｆ２０１と、抽出部１０Ｆ２１１と、第５データ生成部１０Ｆ２１２と、第２合成鍵生成部１０Ｆ２１３と、第４データ復号化部１０Ｆ２１４と、照合部１０Ｆ２１５と、通信部１０Ｆ２１７を有する。
【０２０８】
データ登録部１０Ｆ２０１は、ログインＩＤ及びパスワードのようなユーザＵＲを認証する認証データＤＡＵを登録データＤＲに登録する。例えば、データ登録部１０Ｆ２０１は、記憶装置２０３等によって実現される。
【０２０９】
リクエスト送信部１０Ｆ２０２は、ユーザデータＤＣ及びリクエストＲＥＱをサーバ２１等に送信するリクエスト送信手順を行う。例えば、リクエスト送信部１０Ｆ２０２は、インタフェース２０２等によって実現される。
【０２１０】
データ生成部１０Ｆ２０３は、リクエストＲＥＱに基づいて、鍵ＤＫ及びセッションデータＤＳＥを生成するデータ生成手順を行う。例えば、データ生成部１０Ｆ２０３は、ＣＰＵ２００等によって実現される。
【０２１１】
第１データ送信部１０Ｆ２０４は、まず、データ生成部１０Ｆ２０３が生成する鍵ＤＫ及びセッションデータＤＳＥを暗号化して第１データＤ１を生成する第１データ手順を行う。次に、第１データ送信部１０Ｆ２０４は、第１データＤ１をクライアント端末１に送信する第１データ送信手順を行う。例えば、第１データ送信部１０Ｆ２０４は、インタフェース２０２等によって実現される。
【０２１２】
第２データ送信部１０Ｆ２０５は、データ生成部１０Ｆ２０３が生成する鍵ＤＫ及びセッションデータＤＳＥと、リクエスト送信部１０Ｆ２０２が送信するユーザデータＤＣとを暗号化して第２データＤ２を生成する第２データ送信手順を行う。例えば、第２データ送信部１０Ｆ２０５は、インタフェース２０２等によって実現される。
【０２１３】
受付部１０Ｆ２０６は、ユーザＵＲから操作を受け付ける受付手順を行う。例えば、受付部１０Ｆ２０６は、入力装置２０４等によって実現される。
【０２１４】
第３データ生成部１０Ｆ２０７は、受付部１０Ｆ２０６で受け付けた操作で入力される入力データＤＩＮに基づいて、第３データＤ３を生成する第３データ生成手順を行う。例えば、第３データ生成部１０Ｆ２０７は、ＣＰＵ２００等によって実現される。
【０２１５】
第１合成鍵生成部１０Ｆ２０８は、第３データ生成部１０Ｆ２０７が生成する第３データＤ３及び第１データＤ１を復号化すると取得できる鍵ＤＫに基づいて、第１合成鍵ＤＫ１を生成する第１合成鍵生成手順を行う。例えば、第１合成鍵生成部１０Ｆ２０８は、ＣＰＵ２００等によって実現される。
【０２１６】
第４データ生成部１０Ｆ２０９は、第１合成鍵生成部１０Ｆ２０８が生成する第１合成鍵ＤＫ１に基づいて、入力データＤＩＮを暗号化して第４データＤ４を生成する第４データ生成手順を行う。例えば、第４データ生成部１０Ｆ２０９は、ＣＰＵ２００等によって実現される。
【０２１７】
第４データ送信部１０Ｆ２１０は、第４データ生成部１０Ｆ２０９が生成する第４データＤ４をサービスサーバ３に送信する第４データ送信手順を行う。例えば、第４データ送信部１０Ｆ２１０は、インタフェース２０２等によって実現される。
【０２１８】
抽出部１０Ｆ２１１は、登録データＤＲから、ユーザデータＤＣに基づいて、認証データＤＡＵを抽出する抽出手順を行う。例えば、抽出部１０Ｆ２１１は、ＣＰＵ２００等によって実現される。
【０２１９】
第５データ生成部１０Ｆ２１２は、抽出部１０Ｆ２１１が抽出する認証データＤＡＵに基づいて、第５データＤ５を生成する第５データ生成手順を行う。例えば、第５データ生成部１０Ｆ２１２は、ＣＰＵ２００等によって実現される。
【０２２０】
第２合成鍵生成部１０Ｆ２１３は、第２データ送信部１０Ｆ２０５が送信する第２データＤ２を復号化して取得する鍵ＤＫと、第５データ生成部１０Ｆ２１２が生成する第５データＤ５とに基づいて、第２合成鍵ＤＫ２を生成する第２合成鍵生成手順を行う。例えば、第２合成鍵生成部１０Ｆ２１３は、ＣＰＵ２００等によって実現される。
【０２２１】
第４データ復号化部１０Ｆ２１４は、第２合成鍵生成部１０Ｆ２１３が生成する第２合成鍵ＤＫ２に基づいて、第４データ送信部１０Ｆ２１０が送信する第４データＤ４を対象にして復号化する第４データ復号化手順を行う。例えば、第４データ復号化部１０Ｆ２１４は、ＣＰＵ２００等によって実現される。
【０２２２】
照合部１０Ｆ２１５は、第４データ復号化部１０Ｆ２１４による復号化で取得できる入力データＤＩＮと、抽出部１０Ｆ２１１が抽出する認証データＤＡＵとを照合する照合手順を行う。例えば、照合部１０Ｆ２１５は、ＣＰＵ２００等によって実現される。
【０２２３】
通信部１０Ｆ２１６及び通信部１０Ｆ２１７は、照合部１０Ｆ２１５による照合結果に基づいて、第１情報処理装置及び第３情報処理装置の間で通信を行う通信手順を行う。例えば、通信部１０Ｆ２１６及び通信部１０Ｆ２１７は、インタフェース２０２等によって実現される。
【０２２４】
以上のような機能構成であると、全体処理を行うことで、例えば、以下のような処理結果となる。
【０２２５】
図１４は、本発明の第２実施形態に係る情報処理システムによる全体処理の処理結果例を示す概念図である。
【０２２６】
図示するように、例えば、クライアント端末１からサーバ２１にリクエストＲＥＱがあると、サーバ２１は、鍵ＤＫ等を生成する。この際に、サーバ２１は、セッションデータＤＳＥ等の通信を行うのに設定等で必要となるデータも生成するのが望ましい。
【０２２７】
そして、サーバ２１は、鍵ＤＫを第１データＤ１にしてクライアント端末１に送信する。一方で、サーバ２１は、鍵ＤＫ及びユーザデータＤＣを第２データＤ２にしてサービスサーバ３に送信する。
【０２２８】
次に、クライアント端末１は、ログインＩＤ及びパスワードをユーザＵＲに入力させる。このようにして、ユーザＵＲによる操作で入力された結果が、入力データＤＩＮとなる。そして、クライアント端末１は、操作で入力されたログインＩＤ及びパスワードを示す入力データＤＩＮと、第１データＤ１で送信される鍵ＤＫとを、例えば、上記（７）式の入力にして関数を実行すると第３データＤ３を生成できる。
【０２２９】
続いて、クライアント端末１は、第３データＤ３と、鍵ＤＫとを用いて、例えば、上記（８）式のように計算すると、第１合成鍵ＤＫ１を生成できる。
【０２３０】
そして、クライアント端末１は、第１合成鍵ＤＫ１を用いて入力データＤＩＮを暗号化して第４データＤ４を生成する。次に、クライアント端末１は、このようにして生成した第４データＤ４をサービスサーバ３に送信する。
【０２３１】
一方で、サービスサーバ３には、ログインＩＤ及びパスワード等の認証データＤＡＵが登録データＤＲにあらかじめ登録される。そして、リクエストＲＥＱがあると、サービスサーバ３には、第２データＤ２によって、鍵ＤＫ及びユーザデータＤＣがサーバ２１から送信される。次に、ユーザデータＤＣ、すなわち、リクエストＲＥＱを行ったユーザＵＲに対応させて、サービスサーバ３は、登録データＤＲに鍵ＤＫ等を登録する。なお、第２データＤ２からセッションデータＤＳＥ等が取得できる場合には、ユーザデータＤＣに対応させて、サービスサーバ３は、登録データＤＲにセッションＩＤ等も登録する。
【０２３２】
次に、サービスサーバ３は、登録データＤＲから、ユーザデータＤＣに対応する認証データＤＡＵ、すなわち、「ユーザα」の場合には、「ユーザα」のログインＩＤ及び「ユーザα」のパスワードが抽出される。
【０２３３】
続いて、サービスサーバ３は、抽出された認証データＤＡＵと、第２データＤ２で送信される鍵ＤＫとを、例えば、上記（９）式の入力にして関数を実行すると第５データＤ５を生成できる。
【０２３４】
ユーザＵＲが「なりすまし」等でない正当な操作者であれば、ユーザＵＲは、登録データＤＲにあらかじめ登録したログインＩＤ及びパスワードを知っている。このような正当なユーザであれば、クライアント端末１には、登録データＤＲにあらかじめ登録されたログインＩＤ及びパスワードと同一のデータが入力される。すなわち、入力データＤＩＮと、認証データＤＡＵとは、同一の内容となる。
【０２３５】
そして、クライアント端末１及びサービスサーバ３には、第１データＤ１及び第２データＤ２によって、同一の鍵ＤＫが送信される。ゆえに、上記（７）式及び上記（９）式において、「鍵」は、同一である。そのため、上記（７）式及び上記（９）式において、「認証データ」及び「入力データ」の内容が同一であれば、第３データＤ３及び第５データＤ５は、同一の内容となる。
【０２３６】
また、サービスサーバ３は、第５データＤ５と、鍵ＤＫとを用いて、例えば、上記（１０）式のように計算すると、第２合成鍵ＤＫ２を生成できる。上記のとおり、第３データＤ３及び第５データＤ５は、同一の内容であり、上記（８）式と鍵ＤＫも同一である。そのため、上記（１０）式の計算結果、すなわち、第２合成鍵ＤＫ２は、上記（８）式の計算結果、すなわち、第１合成鍵ＤＫ１と同一となる。
【０２３７】
サービスサーバ３に送信される第４データＤ４は、第１合成鍵ＤＫ１で暗号化されたデータである。そのため、サービスサーバ３、第１合成鍵ＤＫ１と同一の第２合成鍵ＤＫ２を用いると、第４データＤ４を復号化して入力データＤＩＮを取得できる。
【０２３８】
次に、サービスサーバ３は、第４データＤ４を復号化すると取得できる入力データＤＩＮと、抽出された認証データＤＡＵとを照合する。すなわち、サービスサーバ３は、クライアント端末１で受け付けられたログインＩＤ及びパスワードが、あらかじめ登録データＤＲに登録されたログインＩＤ及びパスワードと一致するか否かを照合する。
【０２３９】
照合結果に基づいて、クライアント端末１で受け付けられたログインＩＤ及びパスワードと、登録されたログインＩＤ及びパスワードとが一致する場合には、サービスサーバ３は、クライアント端末１との通信を開始する。
【０２４０】
例えば、上記のとおり、第１合成鍵ＤＫ１及び第２合成鍵ＤＫ２は、同一の鍵であるため、クライアント端末１及びサービスサーバ３は、第１合成鍵ＤＫ１及び第２合成鍵ＤＫ２を用いることで、共通鍵方式等で暗号化及び復号化して通信を行うことができる。そのため、情報処理システム１０は、クライアント端末１及びサービスサーバ３の間におけるセキュリティを向上できる。
【０２４１】
このようにすると、クライアント端末１及びサービスサーバ３は、クライアント端末１及びサービスサーバ３の間で直接鍵を交換しなくとも、暗号化及び復号化によって、通信を行うことができる。したがって、クライアント端末１及びサービスサーバ３の間を中間者攻撃しても、情報処理システム１０は、鍵を不正に取得されるのを難しくして、セキュリティを向上させることができる。
【０２４２】
＜まとめ＞
第１実施形態及び第２実施形態のいずれの実施形態でも、情報処理システムでは、第１情報処理装置、第２情報処理装置及び第３情報処理装置の少なくとも３装置の間で「合意」して通信を開始する。第１実施形態では、比較結果によって合意が図られる。一方で、第２実施形態では、照合結果によって合意が図られる。このような構成であると、通信を行う２装置間で「合意」する場合よりも、情報処理システムは、セキュリティを向上できる。
【０２４３】
また、合意がなければ、通信が行われないため、不正にデータが送信される等のようなことも防げる。さらに、本実施形態に係る情報処理システムを用いると、いわゆる真正性（ａｕｔｈｅｎｔｉｃｉｔｙ）が確保できるため、通信を行う情報処理装置が特定できる。したがって、情報処理システムは、不正な通信を行うサーバ等を特定し、不正なデータの取得等を防ぐことができる。
【０２４４】
＜ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）等への適用例＞
図１５は、本発明の実施形態に係る情報処理システムを適用するＳＤＮの例を示す概念図である。図示するように、第１エンドポイントＥＰ１及び第２エンドポイントＥＰ２の間で通信を行う場合には、例えば、下図に示すようなハードウェアネットワークＨＮＴが構築される。そして、ハードウェアネットワークＨＮＴでは、通信装置及び情報処理装置等の「Ｈａｒｄｗａｒｅ  Ｒｅｓｏｕｒｃｅｓ」が物理リンクＬＰで接続される。
【０２４５】
ＳＤＮでは、例えば、ソフトウェアによって、「Ｈａｒｄｗａｒｅ  Ｒｅｓｏｕｒｃｅｓ」等を動的に仮想化する。具体的には、ＳＤＮでは、ハードウェアネットワークＨＮＴにおける「Ｈａｒｄｗａｒｅ  Ｒｅｓｏｕｒｃｅｓ」等を仮想化して、例えば、上図のような仮想ネットワークＶＮＴを構築する。すなわち、ＳＤＮでは、「Ｈａｒｄｗａｒｅ  Ｒｅｓｏｕｒｃｅｓ」等が仮想化されて、仮想マシン等になり、仮想マシン同士は、仮想リンクＬＬ等で接続される。
【０２４６】
このような仮想リンクＬＬ及び仮想マシン等が、ＳＤＮでは、動的に変更される。したがって、ＳＤＮでは、論理的な通信経路及びネットワークを構成する装置が、ネットワークを利用している間も変更される場合がある通信環境となる。
【０２４７】
このようなＳＤＮ等において、本実施形態に係る情報処理装置は適用されてもよい。また、ネットワークの仮想化には、ＯｐｅｎＦｌｏｗ等が用いられてもよい。
【０２４８】
なお、図における「ＶＮＦ」は、「Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ」である。すなわち、「ＶＮＦ」は、仮想的な通信装置によって提供される様々なネットワーク機能である。また、図における「ＰＮＦ」は、「Ｐｈｙｓｉｃａｌ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ」である。すなわち、「ＰＮＦ」は、物理的な通信装置によって提供される様々なネットワーク機能である。さらに、図における「ＶＮＦ−ＦＧ」は、「ＶＮＦ  Ｆｏｒｗａｒｄｉｎｇ  Ｇｒａｐｈ」である。したがって、「ＶＮＦ−ＦＧ」は、仮想リンクＬＬ等の論理的なリンクによって、「ＶＮＦ」等に接続される。
【０２４９】
したがって、図示するように、エンドポイント間のネットワークサービスにおいて、仮想的な要素と、物理的な要素とが混在するネットワークに、本実施形態に係る情報処理システムは、適用されてもよい。
【０２５０】
以上のようなＳＤＮでは、ネットワークにおける物理的な装置等と、仮想的な装置等とを柔軟に対応付けでき、変更できる。
【０２５１】
なお、ＳＤＰ等において、本実施形態に係る情報処理装置は適用されてもよい。
【０２５２】
＜ブロックチェーンへの適用例＞
図１６は、本発明の実施形態に係る情報処理システムを適用するブロックチェーンの例を示す概念図である。例えば、本実施形態に係る情報処理システムは、図示するような処理を行う装置の間で行われる通信に適用されてもよい。
【０２５３】
図示する例では、いわゆるブロックチェーンにおける電子署名等と呼ばれる処理の例である。この例では、元データＤＯＲが、送信データＤＳＤに含まれて送信側情報処理装置ＭＳから受信側情報処理装置ＭＲに送信される。
【０２５４】
このような処理を行う上で、送信側情報処理装置ＭＳは、公開鍵ＫＰ及び秘密鍵ＫＳのうち、公開鍵ＫＰを公開し、外部装置の情報処理装置が、公開鍵ＫＰを取得できるようにする。一方で、送信側情報処理装置ＭＳは、秘密鍵ＫＳを秘密に保持する。したがって、受信側情報処理装置ＭＲは、公開鍵ＫＰを取得できる。
【０２５５】
公開鍵ＫＰ及び秘密鍵ＫＳは一対となる。図示する例では、公開鍵ＫＰ及び秘密鍵ＫＳは、秘密鍵ＫＳを用いて暗号化されたデータは、公開鍵ＫＰを用いると復号化できる関係となる。なお、受信側情報処理装置ＭＲが公開鍵ＫＰ及び秘密鍵ＫＳを持つ構成等でもよい。すなわち、まず、受信側情報処理装置ＭＲは、公開鍵ＫＰ及び秘密鍵ＫＳのうち、公開鍵ＫＰを公開する。そして、公開鍵ＫＰで暗号化されたデータは、秘密鍵ＫＳで復号化できる。このような鍵の持ち方及び公開の仕方でもよい。
【０２５６】
そして、送信側情報処理装置ＭＳは、元データＤＯＲに対してハッシュ関数等を実行して第１ハッシュ値ＤＨＡ１を算出する。次に、送信側情報処理装置ＭＳは、第１ハッシュ値ＤＨＡ１を秘密鍵ＫＳを用いて暗号化して暗号化ハッシュ値ＤＨＡＣを生成する。この例では、暗号化ハッシュ値ＤＨＡＣが電子署名となる。
【０２５７】
次に、送信側情報処理装置ＭＳは、元データＤＯＲと、暗号化ハッシュ値ＤＨＡＣとをセットにした送信データＤＳＤを受信側情報処理装置ＭＲに送信する。
【０２５８】
そして、送信データＤＳＤを受信すると、受信側情報処理装置ＭＲは、図示するように、送信データＤＳＤに含まれる元データＤＯＲに対して、送信側情報処理装置ＭＳが実行するのと同一のハッシュ関数を実行して第２ハッシュ値ＤＨＡ２を算出する。
【０２５９】
また、送信データＤＳＤを受信すると、受信側情報処理装置ＭＲは、図示するように、送信データＤＳＤに含まれる暗号化ハッシュ値ＤＨＡＣを公開鍵ＫＰで復号化して第３ハッシュ値ＤＨＡ３を取得する。
【０２６０】
続いて、受信側情報処理装置ＭＲは、第２ハッシュ値ＤＨＡ２と、第３ハッシュ値ＤＨＡ３とを比較する。この比較の結果、第２ハッシュ値ＤＨＡ２と、第３ハッシュ値ＤＨＡ３とが一致すると、受信側情報処理装置ＭＲは、送信データＤＳＤが改ざん等の不正な処理が行われていないと判断できる。
【０２６１】
暗号化ハッシュ値ＤＨＡＣは、第１ハッシュ値ＤＨＡ１を暗号化したデータであるため、暗号化ハッシュ値ＤＨＡＣを復号化して取得される第３ハッシュ値ＤＨＡ３は、第１ハッシュ値ＤＨＡ１と同一となる。
【０２６２】
また、第２ハッシュ値ＤＨＡ２は、同一のハッシュ関数及び同一の元データＤＯＲを使用すれば、第１ハッシュ値ＤＨＡ１と同一となる。一方で、送信データＤＳＤが不正に改ざんされたりすると、元データＤＯＲが送信側と、受信側とで異なるため、同一のハッシュ関数が実行されても、第２ハッシュ値ＤＨＡ２と、第３ハッシュ値ＤＨＡ３とは、一致しない。したがって、受信側情報処理装置ＭＲは、第２ハッシュ値ＤＨＡ２と、第３ハッシュ値ＤＨＡ３とを比較することで改ざんがないか否かをチェックできる。
【０２６３】
図示するようなブロックチェーンでは、公開鍵ＫＰ及び秘密鍵ＫＳ等の鍵が用いられる。したがって、本実施形態に係る情報処理システムが、送信側情報処理装置ＭＳ及び受信側情報処理装置ＭＲの間で行われる通信に適用されてもよい。
【０２６４】
図１７は、本発明の実施形態に係る情報処理システムを適用するブロックチェーンの処理結果例を示す概念図である。例えば、図示するように、第１ブロック、第２ブロック及び第３ブロックのように、各ブロックにおいて、処理が行われる構成でブロックチェーンが構成される。このようにすると、他のブロックにおける処理及び送信についての履歴等が残る。そして、本実施形態に係る情報処理システムは、各ブロックの間における通信に適用されてもよい。
【０２６５】
また、本実施形態に係る情報処理システムは、ブロックチェーンのうち、いわゆるプライベート型（「プライベートチェーン」等と呼ばれる場合もある。）及びコンソーシアム型（「コンソーシアムチェーン」等と呼ばれる場合もある。）により適する。
【０２６６】
＜ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）への適用例＞
本実施形態に係る情報処理システムは、例えば、ＶＰＮにおけるネットワーク内の通信又はＶＰＮの間で行われる通信等に適用されてもよい。ＶＰＮの構築には、いわゆるＶＰＮルータ等が用いられる。ＶＰＮルータは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等の設定が一定である場合が多い。したがって、例えば、ＶＰＮルータを本実施形態における第２情報処理装置等にすると、本実施形態に係る情報処理システムをＶＰＮに適用できる。
【０２６７】
ＶＰＮプロトコルでは、例えば、ＩＰｓｅｃ（Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、ＰＰＴＰ（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）及びＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）等により、データの暗号化又は認証等が行われる。このような暗号化及び認証において、本実施形態に係る情報処理システムは、適用されてもよい。また、ＶＰＮ間の接続等といった秘匿性の高い通信等に、本実施形態に係る情報処理システムが適用されてもよい。
【０２６８】
＜その他の実施形態＞
本実施形態に係る情報処理システムは、例えば、カーネル、ＳＳＬ及びＴＬＳ等のプロトコルにおけるスタック等に適用されてもよい。カーネル等に本実施形態に係る情報処理システムが埋め込まれると、ハッキング等がしにくい構成となり、よりセキュリティを向上させることができる。
【０２６９】
なお、本実施形態に係る情報処理システムでは、学習処理が行われてもよい。例えば、学習処理は、ディープラーニング又は機械学習等で実現されてもよい。つまり、学習処理として、まず、学習用データであらかじめ学習させる処理が行われてもよい。
【０２７０】
すなわち、本実施形態に係る情報処理システムは、いわゆるＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、人工知能）等を利用してもよい。そして、学習処理等が行われると、設定及び処理が高速にできたり、効率よく行われたりする。
【０２７１】
なお、第１情報処理装置、第２情報処理装置及び第３情報処理装置等の各装置は、１台の装置で実現されなくともよい。すなわち、各装置は、複数の装置で構成されてもよい。例えば、各装置は、複数の情報処理装置を有し、各処理を分散、並列又は冗長して行ってもよい。
【０２７２】
なお、本発明に係る各処理の全部又は一部は、アセンブラ等の低水準言語又はオブジェクト指向言語等の高水準言語で記述され、コンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【０２７３】
したがって、プログラムに基づいて情報処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
【０２７４】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【０２７５】
以上、本発明の好ましい実施形態について詳述したが、本発明は、上記に説明した実施形態等に限定されるものではない。したがって、特許請求の範囲に記載された本発明の要旨の範囲内において、実施形態は、種々の変形又は変更が可能である。
【符号の説明】
【０２７６】
１０  情報処理システム
１  クライアント端末
２  サーバ群
２１、２２、２Ｎ  サーバ
３  サービスサーバ
ＵＲ  ユーザ
ＤＡ  第１固有データ
ＤＢ  第２固有データ
ＤＣ  ユーザデータ
ＤＫ  鍵
ＤＫ１  第１合成鍵
ＤＫ２  第２合成鍵
ＲＥＱ  リクエスト
ＤＳＥ  セッションデータ
ＤＣＩ１  第１暗号化データ
ＤＣＩ２  第２暗号化データ
ＤＪ  判断結果
ＤＲ  登録データ
ＤＡＵ  認証データ
ＤＩＮ  入力データ
Ｄ１  第１データ
Ｄ２  第２データ
Ｄ３  第３データ
Ｄ４  第４データ
Ｄ５  第５データ
【図１】
2020077978.tif 000003
【図２】
2020077978.tif 000004
【図３】
2020077978.tif 000005
【図４】
2020077978.tif 000006
【図５】
2020077978.tif 000007
【図６】
2020077978.tif 000008
【図７】
2020077978.tif 000009
【図８】
2020077978.tif 000010
【図９】
2020077978.tif 000011
【図１０】
2020077978.tif 000012
【図１１】
2020077978.tif 000013
【図１２】
2020077978.tif 000014
【図１３】
2020077978.tif 000015
【図１４】
2020077978.tif 000016
【図１５】
2020077978.tif 000017
【図１６】
2020077978.tif 000018
【図１７】
2020077978.tif 000019