(57)【要約】【課題】秘匿通信網の復号演算が秘匿通信量に比例せず、誰から誰への通信かが分からない通信装置を提供する。【解決手段】通信装置がグループに所属する場合には、秘密鍵を用いて、入力された情報を暗号化し、サーバ装置に送信する署名暗号化部と、通信装置がグループに所属する場合には、サーバ装置から、他の通信装置からの、暗号化されたn-1個の入力された情報をダウンロードし、暗号化されたn-1個の入力された情報を秘密鍵を用いて復号する署名復号化部とを含み、署名暗号化部を介してセッション鍵生成情報をサーバ装置に送信し、署名復号化部を介して取得したn-1個のセッション鍵生成情報と通信装置のセッション鍵生成情報とを使ってセッション鍵を生成し署名暗号化部を介してセッション鍵を用いて暗号化した暗号文をサーバ装置に送信し、署名復号化部を介して取得したn-1個の暗号文をセッション鍵を用いて復号する。【選択図】図４
2019125957.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置を含む秘匿通信網を介して、匿名性を確保したまま他の通信装置と通信を行う通信装置であって、
K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成部と、
当該通信装置を含むN台の通信装置が前記秘匿通信網が提供する秘匿通信を利用しているものとし、N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化部と、
(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化部と、
前記署名暗号化部を介してセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成部と、
前記署名暗号化部を介して前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信部とを含む、
通信装置。
【請求項２】
N台の通信装置に対して秘匿通信を提供する秘匿通信網を構成するサーバ装置であって、
N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、
前記通信装置は、
K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成部と、
(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化部と、
(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化部と、
前記署名暗号化部を介してセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成部と、
前記署名暗号化部を介して前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信部とを含むものとし、
前記サーバ装置は、
暗号化されたn個の前記セッション鍵生成情報とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するセッション鍵生成情報保管部と、
暗号化されたn個の前記暗号文とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するメッセージ保管部とを含む、
サーバ装置。
【請求項３】
サーバ装置とK台の鍵生成装置とN台の通信装置とを含む秘匿通信システムであって、
N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、
前記通信装置は、
K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成部と、
(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化部と、
(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化部と、
前記署名暗号化部を介してセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成部と、
前記署名暗号化部を介して前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信部とを含み、
前記サーバ装置は、
暗号化されたn個の前記セッション鍵生成情報とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するセッション鍵生成情報保管部と、
暗号化されたn個の前記暗号文とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するメッセージ保管部とを含む、
秘匿通信システム。
【請求項４】
請求項３の秘匿通信システムであって、
セッション鍵生成部は、
(i-1)当該通信装置が前記グループに所属する場合には、一時秘密鍵を生成し、前記一時秘密鍵を用いて第一情報Xpと第二情報k'pとを生成し、前記第一情報Xpを前記署名暗号化部を介して前記サーバ装置に送信し、(i-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信するセッション鍵生成第一処理部と、
(ii-1)当該通信装置が前記グループに所属する代表通信装置以外の通信装置の場合には、前記署名復号部を介してn-1個の前記第一情報Xqを取得し、n-1個の前記第一情報Xqのうちの少なくとも2個の前記第一情報から第三情報Tpを生成し、前記第二情報k'pと前記第三情報Tpとを前記署名暗号化部を介して前記サーバ装置に送信し、(ii-2)当該通信装置が前記グループに所属する代表通信装置の場合には、前記署名復号部を介してn-1個の前記第一情報Xqを取得し、n-1個の前記第一情報Xqのうちの少なくとも2個の前記第一情報から第三情報Tpを生成し、n-1個の前記第一情報Xqのうちの少なくとも1個の前記第一情報と前記代表通信装置の前記第二情報k'pとから第四情報T'を生成し、前記第三情報Tpと前記第四情報T'とを前記署名暗号化部を介して前記サーバ装置に送信し、(ii-3)当該通信装置が前記グループに所属しない場合には、前記署名暗号化部を介してn個の前記第一情報を取得し、ダミーメッセージを前記サーバ装置に送信するセッション鍵生成第二処理部と、
(iii-1)当該通信装置が前記グループに所属する代表通信装置以外の通信装置の場合には、前記署名復号部を介してn-1個の前記第三情報Tqとn-2個の前記第二情報k'qと前記第四情報T'とを取得し、n-1個の前記第一情報Xqのうちの少なくとも1個の前記第一情報と前記第四情報T'とから代表通信装置の第二情報k'qを求め、n個の第二情報k'pからセッション鍵を生成し、(iii-2)当該通信装置が前記グループに所属する代表通信装置の場合には、前記署名復号部を介してn-1個の前記第三情報Tqとn-1個の前記第二情報k'qとを取得し、n個の第二情報k'pからセッション鍵を生成するセッション鍵生成後処理部とを含み、
前記セッション鍵生成情報は、前記第一情報、前記第二情報、前記第三情報及び前記第四情報を含む、
秘匿通信システム。
【請求項５】
サーバ装置を含む秘匿通信網を介して他の通信装置と通信を行う通信装置を用いる秘匿通信方法であって、
前記通信装置が、
K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成ステップと、
当該通信装置を含むN台の通信装置が前記秘匿通信網が提供する秘匿通信を利用しているものとし、N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化ステップと、
(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化ステップと、
前記署名暗号化ステップを経てセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信し、前記署名復号化ステップを経て取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成ステップと、
前記署名暗号化ステップを経て前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信し、前記署名復号化ステップを経て取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信ステップとを含む、
秘匿通信方法。
【請求項６】
N台の通信装置に対して秘匿通信を提供する秘匿通信網を構成するサーバ装置を用いる秘匿通信方法であって、
N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、
前記通信装置は、
K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成部と、
(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化部と、
(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化部と、
前記署名暗号化部を介してセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成部と、
前記署名暗号化部を介して前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信し、前記署名復号化部を介して取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信部とを含むものとし、
前記サーバ装置が、
暗号化されたn個の前記セッション鍵生成情報とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するセッション鍵生成情報保管ステップと、
暗号化されたn個の前記暗号文とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するメッセージ保管ステップとを含む、
サーバ装置。
【請求項７】
サーバ装置とK台の鍵生成装置とN台の通信装置とを用いる秘匿通信方法であって、
N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、
前記通信装置が、K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成ステップと、
前記通信装置が、(1-1)当該通信装置が前記グループに所属する場合には、前記秘密鍵を用いて、入力された情報を暗号化し、前記サーバ装置に送信し、(1-2)当該通信装置が前記グループに所属しない場合には、ダミーメッセージを前記サーバ装置に送信する署名暗号化ステップと、
前記通信装置が、(2-1)当該通信装置が前記グループに所属する場合には、前記サーバ装置から、他の通信装置からの、暗号化されたn-1個の前記入力された情報とN-n個の前記ダミーメッセージとをダウンロードし、暗号化されたn-1個の前記入力された情報を前記秘密鍵を用いて復号し、(2-2)当該通信装置が前記グループに所属しない場合には、他の通信装置からの、暗号化されたn個の前記入力された情報とN-n-1個の前記ダミーメッセージとをダウンロードする署名復号化ステップと、
前記通信装置が、前記署名暗号化ステップを経てセッション鍵を生成するために用いる情報であるセッション鍵生成情報を前記サーバ装置に送信するステップと、
前記サーバ装置が、暗号化されたn個の前記セッション鍵生成情報とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するセッション鍵生成情報保管ステップと、
前記通信装置が、前記署名復号化ステップを経て取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成ステップと、
前記通信装置が、前記署名暗号化ステップを経て前記セッション鍵を用いて暗号化した暗号文を前記サーバ装置に送信するステップと、
前記サーバ装置が、暗号化されたn個の前記暗号文とN-n個の前記ダミーメッセージとを受信し、ダウンロード可能に記憶するメッセージ保管ステップと、
前記通信装置が、前記署名復号化ステップを経て取得したn-1個の暗号文を前記セッション鍵を用いて復号するメッセージ送受信ステップとを含む、
秘匿通信方法。
【請求項８】
請求項１の通信装置、または、請求項２のサーバ装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報通信分野におけるメタデータ（通信元、通信先等）を秘匿可能な通信プロトコルに関し、特に、秘匿通信網を構成するサーバ装置、秘匿通信網を利用する通信装置、サーバ装置と通信装置とからなる秘匿通信システム、その方法、及びプログラムに関する。
【背景技術】
【０００２】
各国の諜報機関などが電子メールやチャット、音声通話などの通信を傍受していることが広く知られている。これに対抗してメタデータを通信網から秘匿することで通信の匿名性を確保するTor(The Onion Router)等の匿名化ツールが普及している。
【０００３】
従来技術として、通信装置で複数回異なる公開鍵を用いて暗号化し、秘匿通信網内部の複数のサーバ装置間で復号を繰り返しながらメッセージをシャッフルすることで秘匿通信網に対する匿名性を確保する手法(mix-net)が知られている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Nirvan Tyagi, Yossi Gilad, Derek Leung, Matei Zaharia, and Nickolai Zel-dovich. "Stadium: A Distributed Metadata-Private Messaging System", [online], SOSP 2017, [平成29年12月22日検索]、インターネット<URL:https://eprint.iacr.org/2016/943>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、Mix-netを使う方式では、秘匿通信網内で復号演算を繰り返し、復号演算が秘匿通信量に比例するためスループットが出ず、遅延が発生しやすく、また秘匿通信網への出入りを監視することで誰から誰への通信かが分かってしまうという課題がある。
【０００６】
本発明は、秘匿通信網の復号演算が秘匿通信量に比例せず、誰から誰への通信かが分からない秘匿通信システム、サーバ装置、通信装置、秘匿通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様によれば、通信装置は、サーバ装置を含む秘匿通信網を介して、匿名性を確保したまま他の通信装置と通信を行う。通信装置は、K台の鍵生成装置のそれぞれで生成したK個の部分秘密鍵に含まれるm個の部分秘密鍵を用いて、秘密鍵を生成する秘密鍵生成部と、当該通信装置を含むN台の通信装置が秘匿通信網が提供する秘匿通信を利用しているものとし、N台の通信装置のうちのn台の通信装置があるグループに所属するものとし、(1-1)当該通信装置がグループに所属する場合には、秘密鍵を用いて、入力された情報を暗号化し、サーバ装置に送信し、(1-2)当該通信装置がグループに所属しない場合には、ダミーメッセージをサーバ装置に送信する署名暗号化部と、(2-1)当該通信装置がグループに所属する場合には、サーバ装置から、他の通信装置からの、暗号化されたn-1個の入力された情報とN-n個のダミーメッセージとをダウンロードし、暗号化されたn-1個の入力された情報を秘密鍵を用いて復号し、(2-2)当該通信装置がグループに所属しない場合には、他の通信装置からの、暗号化されたn個の入力された情報とN-n-1個のダミーメッセージとをダウンロードする署名復号化部と、署名暗号化部を介してセッション鍵を生成するために用いる情報であるセッション鍵生成情報をサーバ装置に送信し、署名復号化部を介して取得したn-1個のセッション鍵生成情報と当該通信装置のセッション鍵生成情報とを使ってセッション鍵を生成するセッション鍵生成部と、署名暗号化部を介してセッション鍵を用いて暗号化した暗号文をサーバ装置に送信し、署名復号化部を介して取得したn-1個の暗号文をセッション鍵を用いて復号するメッセージ送受信部とを含む。
【発明の効果】
【０００８】
本発明によれば、秘匿通信網の復号演算が秘匿通信量に比例せず、遅延が発生しにくく、誰から誰への通信かが分からないという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】第一実施形態に係る秘匿通信システムの機能ブロック図。
【図２】第一実施形態に係るサーバ装置の機能ブロック図。
【図３】第一実施形態に係る鍵生成装置の機能ブロック図。
【図４】第一実施形態に係る通信の機能ブロック図。
【図５】第一実施形態に係る秘匿通信システムの処理フローの例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１１】
＜設定,用語の定義＞
Π=(BSC.Setup, BSC.Extract, Combine, BSC, BUSC):AT-DAIBSC scheme (any-trust doubly-anonymous ID-based broadcast signcryption scheme )。AT-DAIBSC schemeは以下の5個のアルゴリズムを含む。BSC.Setupはセキュリティパラメータκが入力されると、マスター秘密鍵およびマスター公開鍵を出力するアルゴリズムである。BSC.Extractはマスター秘密鍵およびユーザ識別子が入力されると、ユーザ識別子に対応する部分秘密鍵を出力するアルゴリズムである。なお、部分秘密鍵はユーザ識別子に対応するユーザに安全に送信されるものとする。Combineはm個の部分秘密鍵が入力されると秘密鍵を出力するアルゴリズムである。BSCは、m個のマスター公開鍵と、メッセージと、秘密鍵と、受信者の識別子の集合を入力とし、暗号文を出力するアルゴリズムである。BUSCは、m個のマスター公開鍵と、秘密鍵と、暗号文とを入力とし、メッセージMまたはエラーを出力するアルゴリズムである。
【００１２】
p:κビットの素数
G:gを生成元とする位数pの有限巡回群
TCR:{0,1}*→{0,1}κ  TCRハッシュ関数(TCRはtarget-collision resistantを意味する)
tPRF:{0,1}κ×Salt2κ×{0,1}κ→Zp  (PRFはpseudo-random functionを意味する)
tPRF':{0,1}κ×Salt2κ×{0,1}κ→G
tPRFとtPRF'とをtwisted PRFs
F:G×{0,1}κ→K spaceκ  K spaceκがセッション鍵空間である擬似ランダム関数
【００１３】
＜設定＞
サーバ装置は、(p,G,g,TCR,tPRF,tPRF',F)をシステムパラメータとして公開する。
【００１４】
k番目のKGCkは、BSC.Setup(1κ)を用いて、マスター秘密鍵BMSKkとマスター公開鍵BMPKkとを生成し、マスター公開鍵BMPKkを公開する。KGCkはk番目の鍵生成装置を意味し、通信網上にK台存在する。ただし、Kは1以上の整数の何れかである。
【００１５】
この秘匿通信システムにはN人のユーザ(N台の通信装置といってもよい)U1,…,UNがいるものとする。
【００１６】
各ユーザUiに対して全てのKGCkがそれぞれBSC.Extractを実行し、部分秘密鍵bsk(k)iを生成する(bsk(k)i← BSC.Extract(BMSKk,IDi))。ただし、i=1,2,…,Nである。
【００１７】
ユーザUiはm個の部分秘密鍵bsk(k)iを取得すると、Combineを使ってこれらの部分秘密鍵bsk(k)iを結合し、秘密鍵bskiを計算する(bski←Combine({bsk(k)i}k∈[1,m]))。ただし、mは1以上K以下の整数の何れかである。なお、m個の部分秘密鍵bsk(k)iは、必ずしも1番目からm番目の部分秘密鍵bsk(k)iでなくともよく、K個の部分秘密鍵bsk(k)iのうちのm個であればよい。
【００１８】
また、ユーザUiは、秘密文字列sti,st~iを生成し(sti∈R{0,1}κ,st~i∈R saltκ)、これらの情報を静的秘密鍵SSKi=(bski,sti,st~i)として格納する。
【００１９】
＜ブロードキャスト＞
あるユーザUpが、一連のやり取りで、ユーザUpが所属する所定のグループの他のユーザにメッセージMをブロードキャストする(相手を特定せずに送信する)場合には、ユーザUpは以下の処理を実行する。なお、ユーザUpが所属する所定のグループに所属するユーザの総数をn(n≦N)とし、そのユーザの集合をRとする。ここでは、説明を簡単にするために、R=(IDi_1,…,IDi_n)=(ID1,…,IDn)(1番目からn番目の通信装置が所定のグループに所属する)と仮定する。ただし、N台の通信装置の中の任意のn台の通信装置が所定のグレープに所属するものとして同様の処理を行うことができる。よって、ここでは、p=1,2,…,nとし、集合RからユーザUpを除いた集合をR＼{IDp}=R'=(ID1,…,IDp-1,IDp+1,…,IDn)とする。所定のグループに所属するユーザUp以外のユーザをUqとし、q=1,2,…,n、p≠qとする。秘匿通信システムのユーザであって、所定のグループに所属していないユーザをUrとし、r=n+1,n+2,…,Nとする。
【００２０】
(署名)ユーザUpは、BSCにより暗号文CTpを生成し(CTp←BSC({BMPKk}k∈[1,m],IDp||M,bskp,R'))、暗号文CTpをサーバ装置に送信する。なお、ユーザUpは、一連のやり取り(一回のブロードキャスト)の中で一度だけ暗号文CTpを送信できるものとする。ユーザUrは、ダミーメッセージεをサーバ装置に送信する。
【００２１】
(ダウンロードと確認)R'に属するIDqに対応するユーザUqは、サーバ装置からn-1個の暗号文(CT1,…,CTq-1,CTq+1,…,CTn)と、N-n個のダミーメッセージεとをダウンロードする。ユーザUqは、BUSCにより暗号文を復号する((IDp,M)←BUSC({BMPKk}k∈[1,m],bskq,CTp))。暗号文の復号結果が(IDp,M)であれば、ユーザUqは、MをユーザUpから送信されたメッセージと見做す。
【００２２】
ブロードキャストは、上述の（署名）処理と（ダウンロードと確認）処理とを所定の時間T1毎に実行する。例えば、予め定められた所定の時間T(<T1)の中でランダムに、ユーザが上述の（署名）処理を実行する。所定の時間Tが経過すると、ユーザは、（ダウンロードと確認）処理を実行する。
【００２３】
＜セッション鍵生成＞
一群のユーザU1,…,Unが新しいセッションを開始し、セッション鍵を共有する。このプロトコルの中で、「Mをブロードキャストする」とは、Mが以下の処理により一群のユーザ全てに送信されることを意味する。
【００２４】
(手順１)
IDp∈Rに対応するユーザUpは、xp∈R{0,1}κ,x~p∈R saltκ,kp∈R{0,1}κ,k~p∈R saltκをESKp(ユーザUpの一時秘密鍵ephemeral secret key)として生成し、x'p=tPRF(st~p,xp,stp,x~p)とk'p=tPRF'(st~p,kp,stp,k~p)を計算する。そして、ユーザUpは、Xp=gx'_pを計算し、Xpを暗号文CTpとしてブロードキャストする。つまり、CTp←BSC({BMPKk}k∈[1,m],IDp||Xp,bskp,R')を求め、暗号文CTpをサーバ装置に送信する。なお、Xpを第一情報とも呼び、k'pを第二情報とも呼ぶ。
【００２５】
IDr∈(ID1,…,IDN)＼R(全てのIDの集合(ID1,…,IDN)とIDの部分集合Rとの差集合に含まれるIDr)に対応するユーザUrは、xr∈R{0,1}κ,x~r∈R saltκ,kr∈R{0,1}κ,k~r∈R saltκをESKrとして生成し、εを暗号文CTrとしてブロードキャストする。ただし、εはG×{0,1}v_IDから選択されたダミーメッセージである。なお、CTr←BSC({BMPKk}k∈[1,m],IDr||ε,bskr,R')を求め、暗号文CTrをサーバ装置に送信してもよい。ただし、ユーザUrの識別子は集合Rに含まれないため何れのユーザも暗号文CTrを復号することはできず、暗号文CTrはダミーメッセージεと同様に意味のない情報となる。
【００２６】
(手順２)
メッセージをダウンロードすると、IDp∈Rに対応するユーザUpは、εをダミーメッセージとして取り除き、{CTq}ID_q∈R＼{ID_p}を復号し、{Xq}ID_q∈R＼{ID_p}を取得する((IDq,Xq)←BUSC({BMPKk}k∈[1,m],bskp,CTq))。なお、ダミーメッセージやその暗号文をダウンロードし、復号処理を行うと、プロトコルBUSCがエラーメッセージを出力する。なお、εは、暗号文と識別可能な情報としてもよい。例えば、εとCTjとのデータ形式を異なるものとすることで、プロトコルBUSCを実行せずにエラーと判断する構成としてもよい。
【００２７】
ユーザUp(ただしユーザU1を除く)はsid=TCR(CT1,…,CTn)とTp=Xx'_pp-1xor Xx'_pp+1とを計算する。ただし、A xor Bは、AとBとの排他的論理和を意味する。そして、ユーザUpは(k'p,Tp)をブロードキャストする。なお、Tpを第三情報とも呼ぶ。
【００２８】
ユーザU1は、sid=TCR(CT1,…,CTn)とT1=Xx'_1nxor Xx'_12とT'=Xx'_1nxor k'1を計算する。そして、ユーザU1は(T',T1)をブロードキャストする。なお、T'を第四情報とも呼ぶ。
【００２９】
IDr∈(ID1,…,IDN)＼Rに対応するユーザUrは、εをブロードキャストする。ただし、εはG2×{0,1}v_IDから選択されたダミーメッセージである。
【００３０】
(セッション鍵生成と後計算)
メッセージをダウンロードすると、IDp∈Rに対応するユーザUpは、εをダミーメッセージとして取り除き、(k'q,Tq)ID_q∈R＼{ID_p}と(T',T1)とを受け取る。
【００３１】
ユーザUp(ただしユーザU1を除く)は、k'1=T' xor Xx'_pp-1 xor (XOR 1≦j≦p-1 Tj)とSK=F(XOR 1≦p≦n k'p,sid)とを計算する。なお、XOR A≦B≦C DBは、DA xor DA+1 xor … xor DCを意味する。
【００３２】
ユーザU1は、SK=F(XOR 1≦p≦n k'p,sid)を計算する。
【００３３】
（メッセージの送受信）
IDp∈Rに対応するユーザUpはメッセージMSを送信する場合、セッション鍵SKを用いてAESのような共通鍵暗号方式を使って、MSを暗号化し、暗号文Cを出力し、Cをブロードキャストする。
【００３４】
メッセージをダウンロードすると、IDp∈Rに対応するユーザUpはεをダミーメッセージとして取り除き、メッセージMSを取得する。
【００３５】
以下、上述の秘匿通信を実現するためのシステムについて説明する。
【００３６】
＜第一実施形態＞
図１は第一実施形態に係る秘匿通信システムの配置図を示す。
【００３７】
秘匿通信システムは、サーバ装置１００と、K台の鍵生成装置２００−ｋ(上述のKGCkに相当)と、N台の通信装置３００−ｉ(上述のUiに相当)とを含む。ただし、k=1,2,…,Kであり、i=1,2,…,Nである。
【００３８】
サーバ装置１００は、秘匿通信網を構成し、通信網１を介して、N台の通信装置３００−ｉと通信可能に接続されている。K台の鍵生成装置２００−ｋは、それぞれ通信網１を介して、N台の通信装置３００−ｉと通信可能に接続されている。なお、サーバ装置１００とK台の鍵生成装置２００−ｋとは通信可能に接続されてもよいし、接続されなくともよい。また、本実施形態では、1台の通信装置を1人のユーザが操作するものと仮定しているが、1台の通信装置をL人のユーザが操作してもよい。ただし、Lは2以上の整数の何れかである。その場合には、1台の通信装置をL台の通信装置と見做してもよい。また、L台の通信装置を1人のユーザが操作する場合には、L台の通信装置を1台の通信装置と見做してもよい。要は、秘匿通信システムが提供する秘匿通信サービスの利用者の数に応じた通信装置を秘匿通信システムは含むものとする。ただし、1人の利用者が複数のアカウントを持っている場合には、1人の利用者を複数の利用者と見做してもよい。
【００３９】
サーバ装置１００、K台の鍵生成装置２００−ｋ及びN台の通信装置３００−ｉはそれぞれ、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。サーバ装置１００、K台の鍵生成装置２００−ｋ及びN台の通信装置３００−ｉはそれぞれ、例えば、中央演算処理装置の制御のもとで各処理を実行する。サーバ装置１００、K台の鍵生成装置２００−ｋ及びN台の通信装置３００−ｉに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。サーバ装置１００、K台の鍵生成装置２００−ｋ及びN台の通信装置３００−ｉの各処理部はそれぞれ、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。サーバ装置１００、K台の鍵生成装置２００−ｋ及びN台の通信装置３００−ｉがそれぞれ備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
【００４０】
図２はサーバ装置１００の機能ブロック図を、図３は鍵生成装置２００−ｋの機能ブロック図を、図４は通信装置３００−ｉの機能ブロック図を示す。図５は秘匿通信システムの処理フローの例を示す。
【００４１】
サーバ装置１００は、セッション鍵生成情報保管部１１０と、メッセージ保管部１２０とを含む。
【００４２】
鍵生成装置２００−ｋは、マスター鍵生成部２１０と、部分秘密鍵生成部２２０と、記憶部２３０とを含む。
【００４３】
通信装置３００−ｉは、秘密鍵生成部３１０と、署名暗号化部３２０と、署名復号部３３０と、セッション鍵生成部３８０と、メッセージ送受信部３７０とを含む、さらに、セッション鍵生成部３８０は、セッション鍵生成第一処理部３４０と、セッション鍵生成第二処理部３５０と、セッション鍵生成後処理部３６０とを含む。
【００４４】
通信装置３００−ｉは、K台のうちの少なくともm台の鍵生成装置２００−ｋと通信し、秘密鍵を生成する（Ｓ１）。
【００４５】
次に、通信装置３００−ｐは、サーバ装置１００を介して、当該通信装置３００−ｐが所属するグループに含まれる他の通信装置３００−ｑと通信する際に用いるセッション鍵を生成する（Ｓ２）。なお、Ｓ１で生成した秘密鍵を用いて送受信する情報を暗号化及び復号する。
【００４６】
通信装置３００−ｐは、サーバ装置１００を介して、当該通信装置３００−ｐが所属するグループに含まれる他の通信装置３００−ｑとメッセージの送受信を行う（Ｓ３）。なお、Ｓ２で生成したセッション鍵を用いてメッセージを暗号化及び復号する。さらに、Ｓ１で生成した秘密鍵を用いて暗号化したメッセージを暗号化及び復号する。
【００４７】
以下、具体的な処理内容を説明する。
【００４８】
＜Ｓ１：秘密鍵生成＞
サーバ装置１００は、システムパラメータ(p,G,g,TCR,tPRF,tPRF',F)を生成、または、選択等し、図示しない記憶部に格納し、公開する。なお、「公開する」とは、秘匿通信システムに含まれるN台の通信装置３００−ｉがアクセス可能に保管することを意味する。
【００４９】
K台の鍵生成装置２００−ｋのマスター鍵生成部２１０は、それぞれ、BSC.Setupを用いて、マスター秘密鍵BMSKkとマスター公開鍵BMPKkとを生成し((BMSKk,BMPKk)←BSC.Setup(1κ))、マスター公開鍵BMPKkを公開する。マスター秘密鍵BMSKkは、記憶部２３０に格納し、秘密にする。なお、「秘密にする」とは、ある情報に対して権限を有さない利用者や他の装置がアクセスできないように保管することを意味する。
【００５０】
K台の鍵生成装置２００−ｋの部分秘密鍵生成部２２０は、それぞれ、BSC.Extractを用いて、マスター秘密鍵BMSKkと各通信装置３００−ｉの識別子IDiとを入力とし、各通信装置３００−ｉに対して、部分秘密鍵bsk(k)iを生成し(bsk(k)i← BSC.Extract(BMSKk,IDi))、各通信装置３００−ｉに送信する。例えば、部分秘密鍵生成部２２０は、各通信装置３００−ｉから識別子IDiと部分鍵生成要求とを受け取り、求めに応じて部分秘密鍵bsk(k)iを生成する。
【００５１】
各通信装置３００−ｉの秘密鍵生成部３１０は、少なくともm台の鍵生成装置２００−ｋから部分秘密鍵bsk(k)iを取得し、Combineを使ってこれらの部分秘密鍵bsk(k)iを結合し、秘密鍵bskiを計算し(bski←Combine({bsk(k)i}k∈[1,m]))、図示しない記憶部に格納し、秘密にする。ただし、mは1以上K以下の整数の何れかである。
【００５２】
さらに、秘密鍵生成部３１０は、秘密文字列sti,st~iを生成し(sti∈R{0,1}κ,st~i∈R saltκ)、静的秘密鍵SSKi=(bski,sti,st~i)を図示しない記憶部に格納し、秘密にする。
【００５３】
以降の処理では、各通信装置３００−ｉは、秘密鍵bskiを用いて情報を暗号化したものをサーバ装置１００と送受信するため、サーバ装置はその情報を復号することができない。
【００５４】
＜ブロードキャスト＞
所定のグループに所属する通信装置３００−ｐが、そのグループに所属する他の通信装置３００−ｑに対してメッセージMをブロードキャストする方法を説明する。
【００５５】
<<署名暗号化処理>>
N台の通信装置３００−ｉのうち、集合Rに所属する通信装置３００−ｐの署名暗号化部３２０は、メッセージMと、秘密鍵bskpと、集合Rを入力とし、BSCにより暗号文CTpを生成し(CTp←BSC({BMPKk}k∈[1,m],IDp||M,bskp,R'))、暗号文CTpをサーバ装置１００に送信する。なお、秘密鍵bskpは図示しない記憶部から取り出す。集合Rは、予め、所定のグループに所属する際、または、所定のグループに所属する通信装置を変更した際、取得可能とし(例えばグループの代表通信装置から配布される)、通信装置３００−ｐは図示しない記憶部に記憶しておき、ブロードキャスト時に取り出す。{BMPKk}k∈[1,m]は、鍵生成装置２００−ｋ(k∈[1,m])のマスター鍵生成部２１０において公開されているものを受信し、図示しない記憶部に記憶しておき、ブロードキャスト時に取り出す。メッセージMは一連のやり取り(一回のブロードキャスト)の中で一度だけ何らかの方法で入力され、同様に暗号文CTpも1度だけ生成され送信される。例えば、メッセージMは通信装置３００−ｐの利用者によって入力された情報や入力された情報に基づき取得または生成した情報であってもよいし、通信装置３００−ｐが図示しない記憶部から収集した情報や収集した情報に基づき取得または生成した情報であってもよい。
【００５６】
N台の通信装置３００−ｉのうち、集合Rに所属しない通信装置３００−ｒ(r=n+1,n+2,…,N)の署名暗号化部３２０は、G×{0,1}v_IDからダミーメッセージεを選択し、サーバ装置１００に送信する。
【００５７】
サーバ装置１００のセッション鍵生成情報保管部１１０は、通信装置３００−ｐによって暗号化されたメッセージ(つまり、暗号文CTp)を受信し、n個の暗号文を他の通信装置に対してダウンロード可能に記憶する。また、セッション鍵生成情報保管部１１０は、集合Rに所属しない通信装置３００−ｒによって送信されたダミーメッセージεを受信し、他の通信装置に対してN-n個のダミーメッセージを他の通信装置に対してダウンロード可能に記憶する。
【００５８】
<<署名復号処理>>
N台の通信装置３００−ｉのうち、集合Rに所属するn台の通信装置３００−ｐの署名復号部３３０は、サーバ装置１００からn-1個の暗号文CT1,…,CTp-1,CTp+1,…,CTnとN-n個のダミーメッセージεとをダウンロードする。ただし、通信装置３００−ｉの署名復号部３３０は、n個の暗号文(CT1,…,CTn)とN-n個のダミーメッセージεをダウンロードし、当該通信装置３００−ｐが送信した暗号文CTpを破棄する構成としてもよい。さらに、署名復号部３３０は、BUSCにより暗号文CTqを復号する((IDq,M)←BUSC({BMPKk}k∈[1,m],bskp,CTq))。暗号文の復号結果が(IDq,M)であれば、通信装置３００−ｐは、Mを通信装置３００−ｑから送信されたメッセージと見做す。さらに、通信装置３００−ｐの署名復号部３３０は、N-n個のダミーメッセージεを破棄する。
【００５９】
N台の通信装置３００−ｉのうち、集合Rに所属しないN-n台の通信装置３００−ｒの署名復号部３３０は、サーバ装置１００からn個の暗号文CT1,…,CTnとN-n-1個のダミーメッセージεとをダウンロードする。ただし、通信装置３００−ｉの署名復号部３３０は、n個の暗号文(CT1,…,CTn)とN-n個のダミーメッセージεをダウンロードし、当該通信装置３００−ｐが送信したダミーメッセージεを破棄する構成としてもよい。
【００６０】
さらに、署名復号部３３０は、ダウンロードした暗号文(CT1,…,CTn)とダミーメッセージεとを破棄する。なお、集合Rに所属しない通信装置３００−ｒの署名復号部３３０は、ダウンロードした暗号文(CT1,…,CTn)を復号することはできない。
【００６１】
ブロードキャストは、上述の署名暗号化部３２０における処理と署名復号部３３０における処理とを所定の時間T1毎に実行する。例えば、予め定められた所定の時間T(<T1)の中でランダムに、上述の署名暗号化部３２０における処理を実行する。所定の時間Tが経過すると、署名復号部３３０における処理を実行する。
【００６２】
＜Ｓ２：セッション鍵生成＞
集合Rに所属する通信装置３００−ｐのセッション鍵生成部３８０は、セッション鍵を生成するために用いる情報(以下、セッション鍵生成情報ともいう)をブロードキャストする。つまり、セッション鍵生成情報を暗号化し、サーバ装置１００に送信する。
【００６３】
集合Rに所属しない通信装置３００−ｒのセッション鍵生成部３８０は、ダミーメッセージをブロードキャストする。つまり、ダミーメッセージをサーバ装置１００に送信する。
【００６４】
所定の時間Tが経過すると、集合Rに所属する通信装置３００−ｐのセッション鍵生成部３８０は、サーバ装置１００から暗号化されたn-1個のセッション鍵生成情報とN-n個のダミーメッセージεとをダウンロードし、暗号化されたn-1個のセッション鍵生成情報を秘密鍵bskpを用いて復号し、復号したn-1個のセッション鍵生成情報と自身の生成したセッション鍵生成情報とを使ってセッション鍵を生成する。
【００６５】
所定の時間Tが経過すると、集合Rに所属しない通信装置３００−ｒのセッション鍵生成部３８０は、サーバ装置１００から暗号化されたn個のセッション鍵生成情報とN-n-1個のダミーメッセージεとをダウンロードし、破棄する。
【００６６】
以下、セッション鍵生成部３８０のより具体的な処理例を説明する。
【００６７】
<<セッション鍵生成第一処理>>
N台の通信装置３００−ｉのうち、集合Rに所属する通信装置３００−ｐのセッション鍵生成第一処理部３４０は、xp∈R{0,1}κ,x~p∈R saltκ,kp∈R{0,1}κ,k~p∈R saltκを一時秘密鍵ESKpとして生成し、x'p=tPRF(st~p,xp,stp,x~p)とk'p=tPRF'(st~p,kp,stp,k~p)を計算する。さらに、セッション鍵生成第一処理部３４０は、Xp=gx'_pを計算し、Xpをブロードキャストする。つまり、CTp←BSC({BMPKk}k∈[1,m],IDp||Xp,bskp,R')を求め、暗号文CTpをサーバ装置１００に送信する。なお、tPRF,tPRF',gはサーバ装置１００において公開されているものを受信し、st~p,stpは図示しない記憶部に静的秘密鍵SSKp=(bskp,stp,st~p)として記憶されているものを取り出す。なお、前述の通り、Xpを第一情報とも呼び、k'pを第二情報とも呼ぶ。
【００６８】
N台の通信装置３００−ｉのうち、集合Rに所属しない通信装置３００−ｒのセッション鍵生成第一処理部３４０は、xi∈R{0,1}κ,x~i∈R saltκ,ki∈R{0,1}κ,k~i∈R saltκを一時秘密鍵ESKiとして生成し、εをブロードキャストする。つまり、εをサーバ装置１００に送信する。ただし、εはG×{0,1}v_IDから選択されたダミーメッセージである。
【００６９】
サーバ装置１００のセッション鍵生成情報保管部１１０は、暗号化されたn個の第一情報XpとN-n個のダミーメッセージεとを受信し、ダウンロード可能に記憶しておく。
【００７０】
<<セッション鍵生成第二処理>>
N台の通信装置３００−ｉのうち、集合Rに所属する通信装置３００−ｐのセッション鍵生成第二処理部３５０は、サーバ装置１００からn-1個の暗号文CT1,…,CTp-1,CTp+1,…,CTnとN-n個のダミーメッセージεとをダウンロードする。セッション鍵生成第二処理部３５０は、εをダミーメッセージとして取り除き、{CTq}ID_q∈R＼{ID_p}を復号し、{Xq}ID_q∈R＼{ID_p}を取得する((IDq,Xq)←BUSC({BMPKk}k∈[1,m],bskp,CTq))。
【００７１】
集合Rに所属するn台の通信装置３００−ｐのうち、代表となる通信装置(以下、代表通信装置ともいう)以外の通信装置３００−ｐのセッション鍵生成第二処理部３５０は、sid=TCR(CT1,…,CTn)とTp=Xx'_pp-1 xor Xx'_pp+1とを計算し、(k'p,Tp)をブロードキャストする。つまり、CTp←BSC({BMPKk}k∈[1,m],IDp||(k'p,Tp),bskp,R')を求め、暗号文CTpをサーバ装置１００に送信する。なお、TCRはサーバ装置１００において公開されているものを受信する。
【００７２】
集合Rに所属するn台の通信装置３００−ｐのうち、代表通信装置３００−１のセッション鍵生成第二処理部３５０は、sid=TCR(CT1,…,CTn)とT1=Xx'_1n xor Xx'_12とT'=Xx'_1n xor k'1を計算し、(T',T1)をブロードキャストする。つまり、CT1←BSC({BMPKk}k∈[1,m],ID1||(k'1,T1),bsk1,R')を求め、暗号文CT1をサーバ装置１００に送信する。
【００７３】
N台の通信装置３００−ｉのうち、集合Rに所属しない通信装置３００−ｒのセッション鍵生成第二処理部３５０は、サーバ装置１００から全ての暗号文(CT1,…,CTn)とN-n-1個のダミーメッセージεとをダウンロードし、破棄する。さらに、新たなダミーメッセージεをブロードキャストする。つまり、εをサーバ装置１００に送信する。ただし、εはG2×{0,1}v_IDから選択されたダミーメッセージである。
【００７４】
サーバ装置１００のセッション鍵生成情報保管部１１０は、n-1個の(k'p,Tp)と、1個の(T',T1)とN-n個のダミーメッセージεとを受信し、ダウンロード可能に記憶しておく。なお、前述の通り、Tpを第三情報とも呼び、T'を第四情報とも呼ぶ。上述のセッション鍵生成情報は、例えば、第一情報、第二情報、第三情報及び第四情報を含む情報である。
【００７５】
<<セッション鍵生成後処理>>
N台の通信装置３００−ｉのうち、集合Rに所属する通信装置３００−ｐのセッション鍵生成後処理部３６０は、サーバ装置１００からn-1個の暗号文CT1,…,CTp-1,CTp+1,…,CTnとN-n個のダミーメッセージεとをダウンロードする。セッション鍵生成後処理部３６０は、εをダミーメッセージとして取り除く。
【００７６】
集合Rに所属するn台の通信装置３００−ｐのうち、代表通信装置３００−１以外の通信装置３００−ｐのセッション鍵生成後処理部３６０は、{CTq}ID_q∈R＼{ID_p}を復号し、(k'q,Tq)ID_q∈R'と(T',T1)と取得する((IDq,(k'q,Tq))←BUSC({BMPKk}k∈[1,m],bskp,CTq),(ID1,(T',T1))←BUSC({BMPKk}k∈[1,m],bskp,CT1))。セッション鍵生成後処理部３６０は、k'1=T' xor Xx'_pp-1 xor (XOR 1≦q≦p-1 Tq)とSK=F(XOR 1≦p≦n k'p,sid)とを計算し、セッション鍵SKを取得する。
【００７７】
集合Rに所属するn台の通信装置３００−ｐのうち、代表通信装置３００−１のセッション鍵生成後処理部３６０は、{CTq}ID_q∈R＼{ID_1}を復号し、(k'q,Tq)ID_q∈R'を取得する((IDq,(k'q,Tq))←BUSC({BMPKk}k∈[1,m],bsk1,CTq))。セッション鍵生成後処理部３６０は、SK=F(XOR 1≦i≦n k'i,sid)を計算し、セッション鍵SKを取得する。
【００７８】
N台の通信装置３００−ｉのうち、集合Rに所属しない通信装置３００−ｒのセッション鍵生成後処理部３６０は、サーバ装置１００から全ての暗号文(CT1,…,CTn)とN-n-1個のダミーメッセージεとをダウンロードし、破棄する。
【００７９】
＜Ｓ４：メッセージ送受信＞
<<メッセージ送信>>
集合Rに所属する通信装置３００−ｐのメッセージ送受信部３７０は、セッション鍵SKを用いてAESのような共通鍵暗号方式を使って、MSを暗号化し、暗号文Cをブロードキャストする。つまり、CTp←BSC({BMPKk}k∈[1,m],IDp||C,bskp,R')を求め、暗号文CTpをサーバ装置１００に送信する。なお、ブロードキャストは所定の時間T1毎に実行されるため、メッセージMSが無い場合には空のメッセージをメッセージMSとして処理を行ってもよい。
【００８０】
集合Rに所属しない通信装置３００−ｒのメッセージ送受信部３７０は、新たなダミーメッセージεをブロードキャストする。つまり、εを暗号化せずにそのままサーバ装置１００に送信する。
【００８１】
サーバ装置１００のメッセージ保管部１２０は、暗号化されたn個の暗号文CT1,…,CTp-1,CTp+1,…,CTnとN-n個のダミーメッセージεとを受信し、ダウンロード可能に記憶しておく。
【００８２】
<<メッセージ受信>>
集合Rに所属する通信装置３００−ｐのメッセージ送受信部３７０は、サーバ装置１００からn-1個の暗号文CT1,…,CTp-1,CTp+1,…,CTnとN-n個のダミーメッセージεとをダウンロードする。メッセージ送受信部３７０は、εをダミーメッセージとして取り除き、{CTq}ID_q∈R＼{ID_p}を復号し、暗号文Cを取得する((C,IDq)←BUSC({BMPKk}k∈[1,m],bskp,CTq))。さらに、暗号文Cをセッション鍵SKを用いて復号し、メッセージMSを取得する。
【００８３】
集合Rに所属しない通信装置３００−ｒのメッセージ送受信部３７０は、サーバ装置１００からn個の暗号文CT1,…,CTnとN-n-1個のダミーメッセージεとをダウンロードし、破棄する。
【００８４】
＜効果＞
以上の構成により、秘匿通信網を構成するサーバ装置では復号演算を必要としない。また、秘匿通信サービスを受ける全ての通信装置がサーバ装置にデータを送信し、全ての通信装置がサーバ装置からデータをダウンロードするため、どの通信装置からどの通信装置に対してデータが送られたのかが分からない。言い換えると、鍵交換装置を複数用いてメタデータを秘匿して通信装置間でセッション鍵の交換を行って秘匿通信網に対する匿名性を予め確保することで、秘匿通信網内での演算を定数回に削減してスループットを向上し、全通信装置と秘匿通信網の間で常に通信を発生させることで、送受信先を識別できないメタデータ秘匿通信を実現している。例えば、グローバル企業や衛星通信を利用するような企業に対して、Tor(The Onion Router)のようなネットワークを提供し、通信におけるメタデータを含めた機密性を確保することができる。
【００８５】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００８６】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００８７】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８８】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００８９】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００９０】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019125957.tif 000003
【図２】
2019125957.tif 000004
【図３】
2019125957.tif 000005
【図４】
2019125957.tif 000006
【図５】
2019125957.tif 000007