(57)【要約】【課題】ユーザ端末が情報を生成する情報生成装置に直接アクセスできない場合でも、安全に情報を配信することができる情報配信システムを提供する。【解決手段】ユーザ端末１０２は、共通鍵を端末側記憶装置に記憶する共通鍵記憶部を備え、ＰＫＧ１０４は、共通鍵を入力し、入力した共通鍵を用いて情報を暗号化し、暗号化情報としてサーバ１０３に送信し、サーバ１０３は、ＰＫＧ１０４から受信した暗号化情報をサーバ側記憶装置に記憶する暗号化情報記憶部を備え、サーバ１０３は、ユーザ端末１０２から情報配信要求を受信すると、サーバ側記憶装置に記憶された暗号化情報をユーザ端末１０２に送信する情報送信部を備え、ユーザ端末１０２は、受信した暗号化情報を端末側記憶装置に記憶されている共通鍵を用いて復号して情報を取得する復号部を備える。【選択図】図１
2015099961.tif 000002
【特許請求の範囲】
【請求項１】
情報を生成する情報生成装置と、前記情報生成装置と接続されるサーバ装置と、前記サーバ装置に接続され、前記サーバ装置を介して前記情報生成装置と通信する端末装置とを備える情報配信システムにおいて、
共通鍵を生成する共通鍵生成部を備え、
前記端末装置は、
端末側記憶装置と、
前記共通鍵生成部により生成された前記共通鍵を入力し、入力した前記共通鍵を前記端末側記憶装置に記憶する共通鍵記憶部と
を備え、
前記情報生成装置は、
前記共通鍵生成部により生成された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を処理装置により暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化部
を備え、
前記サーバ装置は、
サーバ側記憶装置と、
前記情報生成装置の前記情報暗号化部から前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶部と
を備えることを特徴とする情報配信システム。
【請求項２】
前記端末装置は、
前記情報の配信を要求する情報配信要求を前記サーバ装置に送信する配信要求送信部を備え、
前記サーバ装置は、
前記配信要求送信部から前記情報配信要求を受信すると、前記暗号化情報記憶部により前記サーバ側記憶装置に記憶された前記暗号化情報を前記端末装置に送信する情報送信部を備え、
前記端末装置は、
前記サーバ装置の前記情報送信部から送信された前記暗号化情報を受信し、受信した前記暗号化情報を前記端末側記憶装置に記憶されている前記共通鍵を用いて復号することにより、前記情報を取得する復号部を備える
ことを特徴とする請求項１に記載の情報配信システム。
【請求項３】
前記情報生成装置は、
公開鍵と、前記公開鍵に対応する秘密鍵とを生成する鍵生成部と、
前記鍵生成部により生成された前記公開鍵を前記サーバ装置に送信する鍵送信部と
を備え、
前記サーバ装置は、
前記情報生成装置の前記鍵送信部から送信された前記公開鍵を前記端末装置に送信するサーバ側送信部を備え、
前記端末装置は、
前記サーバ側送信部から送信された前記公開鍵を用いて、前記共通鍵記憶部により前記端末側記憶装置に記憶された前記共通鍵を暗号化し、暗号化した前記共通鍵を暗号化共通鍵として前記サーバ装置に送信する共通鍵暗号化部を備え、
前記サーバ装置の前記サーバ側送信部は、
前記端末装置の前記共通鍵暗号化部から送信された前記暗号化共通鍵を前記情報生成装置に送信し、
前記情報生成装置は、
前記サーバ側送信部から送信された前記暗号化共通鍵を、前記鍵生成部により生成された前記秘密鍵を用いて復号することにより前記共通鍵を取得し、取得した前記共通鍵を前記情報暗号化部に出力する共通鍵取得部を備え、
前記情報生成装置の前記情報暗号化部は、
前記共通鍵取得部により取得された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化する
ことを特徴とする請求項１または２に記載の情報配信システム。
【請求項４】
前記サーバ装置は、
前記端末装置を使用するユーザのユーザ識別子とパスワードとを前記端末装置から入力し、入力した前記ユーザ識別子と前記パスワードとを用いて前記ユーザを認証する認証部と、
前記認証部により前記ユーザが認証されると、前記認証部から前記パスワードを入力し、入力した前記パスワードを前記情報生成装置に送信するサーバ側送信部と
を備え、
前記情報生成装置の前記情報暗号化部は、
前記サーバ側送信部から送信された前記パスワードを前記共通鍵として入力し、入力した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信し、
前記端末装置の前記復号部は、
前記サーバ装置の前記情報暗号化部から送信された前記暗号化情報を受信し、受信した前記暗号化情報を前記パスワードを用いて復号することにより、前記情報を取得することを特徴とする請求項２に記載の情報配信システム。
【請求項５】
情報を生成する情報生成装置に接続されるとともに、端末側記憶装置を備える端末装置に接続されるサーバ装置において、
サーバ側記憶装置と、
共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化する前記情報生成装置であって、暗号化した前記情報を暗号化情報として送信する前記情報生成装置から、前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶部と、
前記情報の配信を要求する情報配信要求を前記端末装置から受信すると、前記暗号化情報記憶部により前記サーバ側記憶装置に記憶された前記暗号化情報を、前記共通鍵を前記端末側記憶装置に記憶している前記端末装置に送信する情報送信部と
を備えることを特徴とするサーバ装置。
【請求項６】
情報を生成する情報生成装置であって、サーバ装置に接続されるとともに、前記サーバ装置に接続された端末装置と前記サーバ装置を介して通信する情報生成装置において、
公開鍵と、前記公開鍵に対応する秘密鍵とを生成する鍵生成部と、
前記鍵生成部により生成された前記公開鍵を前記サーバ装置に送信する鍵送信部と、
共通鍵を記憶する端末側記憶装置を備える前記端末装置であって、前記サーバ装置を介して前記鍵送信部から送信された前記公開鍵を受信し、受信した前記公開鍵を用いて前記共通鍵を暗号化し、暗号化した前記共通鍵を暗号化共通鍵として送信する前記端末装置から、前記サーバ装置を介して前記暗号化共通鍵を受信し、受信した前記暗号化共通鍵を前記鍵生成部により生成された前記秘密鍵を用いて復号することにより、前記共通鍵を取得する共通鍵取得部と、
前記共通鍵取得部により取得された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化部と
を備えることを特徴とする情報生成装置。
【請求項７】
サーバ側記憶装置を備えるサーバ装置に接続されるとともに、情報を生成する情報生成装置と前記サーバ装置を介して通信する端末装置において、
共通鍵を記憶する端末側記憶装置と、
公開鍵と前記公開鍵に対応する秘密鍵とを生成する情報生成装置から、前記サーバ装置を介して前記公開鍵を受信し、受信した前記公開鍵を用いて、前記端末側記憶装置に記憶された前記共通鍵を暗号化し、暗号化した前記共通鍵を暗号化共通鍵として送信する共通鍵暗号化部と、
前記サーバ装置を介して前記暗号化共通鍵を受信し、受信した前記暗号化共通鍵を前記秘密鍵を用いて復号することにより前記共通鍵を取得する前記情報生成装置であって、取得した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として送信する前記情報生成装置から、前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶するサーバ装置に対し、前記情報の配信を要求する情報配信要求を送信する配信要求送信部と、
前記情報配信要求を受信した前記サーバ装置から送信された前記暗号化情報を受信し、受信した前記暗号化情報を、前記端末側記憶装置に記憶されている前記共通鍵を用いて復号することにより、前記情報を取得する復号部と
を備えることを特徴とする端末装置。
【請求項８】
情報を生成する情報生成装置と、前記情報生成装置と接続されるサーバ装置と、前記サーバ装置に接続され、前記サーバ装置を介して前記情報生成装置と通信する端末装置とを備える情報配信システムの情報配信方法において、
共通鍵生成部が、共通鍵を生成する共通鍵生成工程と、
端末側記憶装置を備える前記端末装置が、前記共通鍵生成工程により生成された前記共通鍵を入力し、入力した前記共通鍵を前記端末側記憶装置に記憶する共通鍵記憶工程と、
前記情報生成装置が、前記共通鍵生成工程により生成された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化工程と、
サーバ側記憶装置を備える前記サーバ装置が、前記情報暗号化工程により送信された前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶工程と
を備えることを特徴とする情報配信方法。
【請求項９】
サーバ側記憶装置を備え、情報を生成する情報生成装置に接続されるとともに、端末側記憶装置を備える端末装置に接続されるサーバ装置のプログラムにおいて、
暗号化情報記憶部が、共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化する前記情報生成装置であって、暗号化した前記情報を暗号化情報として送信する前記情報生成装置から、前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶処理と、
情報送信部が、前記情報の配信を要求する情報配信要求を前記端末装置から受信すると、前記暗号化情報記憶処理により前記サーバ側記憶装置に記憶された前記暗号化情報を、前記共通鍵を前記端末側記憶装置に記憶している前記端末装置に送信する情報送信処理と
をコンピュータであるサーバ装置に実行させることを特徴とするプログラム。
【請求項１０】
情報を生成する情報生成装置であって、サーバ装置に接続されるとともに、前記サーバ装置に接続された端末装置と前記サーバ装置を介して通信する情報生成装置のプログラムにおいて、
鍵生成部が、公開鍵と、前記公開鍵に対応する秘密鍵とを生成する鍵生成処理と、
鍵送信部が、前記鍵生成処理により生成された前記公開鍵を前記サーバ装置に送信する鍵送信処理と、
共通鍵取得部が、共通鍵を記憶する端末側記憶装置を備える前記端末装置であって、前記サーバ装置を介して前記鍵送信処理により送信された前記公開鍵を受信し、受信した前記公開鍵を用いて前記共通鍵を暗号化し、暗号化した前記共通鍵を暗号化共通鍵として送信する前記端末装置から、前記サーバ装置を介して前記暗号化共通鍵を受信し、受信した前記暗号化共通鍵を前記鍵生成処理により生成された前記秘密鍵を用いて復号することにより、前記共通鍵を取得する共通鍵取得処理と、
情報暗号化部が、前記共通鍵取得処理により取得された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化処理と
をコンピュータである情報生成装置に実行させることを特徴とするプログラム。
【請求項１１】
共通鍵を記憶する端末側記憶装置を備え、サーバ側記憶装置を備えるサーバ装置に接続されるとともに、情報を生成する情報生成装置と前記サーバ装置を介して通信する端末装置のプログラムにおいて、
共通鍵暗号化部が、公開鍵と前記公開鍵に対応する秘密鍵とを生成する情報生成装置から、前記サーバ装置を介して前記公開鍵を受信し、受信した前記公開鍵を用いて、前記端末側記憶装置に記憶された前記共通鍵を暗号化し、暗号化した前記共通鍵を暗号化共通鍵として送信する共通鍵暗号化処理と、
配信要求送信部が、前記サーバ装置を介して前記暗号化共通鍵を受信し、受信した前記暗号化共通鍵を前記秘密鍵を用いて復号することにより前記共通鍵を取得する前記情報生成装置であって、取得した前記共通鍵を用いて前記情報を暗号化し、暗号化した前記情報を暗号化情報として送信する前記情報生成装置から、前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶するサーバ装置に対し、前記情報の配信を要求する情報配信要求を送信する配信要求送信処理と、
復号部が、前記情報配信要求を受信した前記サーバ装置から送信された前記暗号化情報を受信し、受信した前記暗号化情報を、前記端末側記憶装置に記憶されている前記共通鍵を用いて復号することにより、前記情報を取得する復号処理と
をコンピュータである端末装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラムに関し、特に、情報を安全に配信することができる情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラムに関する。
【背景技術】
【０００２】
公開鍵暗号の分野における新たな暗号技術として、関数型暗号と呼ばれる暗号方式に注目が集まっている。関数型暗号は、暗号文を復号するための条件を柔軟に設定できるという特徴をもった暗号方式である。関数型暗号には、条件の付け方によって、ＩＤベース暗号、属性ベース暗号、内積述語暗号などの種類が存在する。また、関数型暗号の応用として、暗号化したままキーワード検索できる検索可能暗号を実現できることが知られている。このような、検索可能暗号自体の開発も活発に行われている（例えば、非特許文献１、非特許文献２参照）。
【０００３】
関数型暗号や検索可能暗号は、信頼できないサーバ上でのデータ管理を実現するために利用される。具体的には、ユーザは機密データを信頼できないサーバ上に格納する際、暗号化した上で格納しておく。こうすれば、サーバの管理者は機密データの中身を見ることができなくなる。
一方、暗号文を復号したりキーワード検索したりする権限を持つユーザは、後述する方法により自分の権限に沿った鍵を保有しているので、必要なデータをサーバから取得して復号することにより、データの中身を見ることができる。
【０００４】
このように、信頼できないサーバ上でのデータ管理を実現するのが関数型暗号や検索可能暗号の主な利用方法である。
上述の利用方法を可能にするため、関数型暗号やその応用である検索可能暗号では、暗号で使う鍵を次のように準備する。
（１）まず、ＰＫＧ（Ｐｒｉｖａｔｅ−Ｋｅｙ・Ｇｅｎｅｒａｔｏｒ：秘密鍵生成局））と呼ばれる信頼できる組織がマスタ公開鍵とマスタ秘密鍵の鍵ペアを生成し保管する。ここで、マスタ公開鍵は、暗号化する際に必要となる鍵であるため、システム全体に広く公開する。一方、マスタ秘密鍵は、後述するユーザ秘密鍵を生成する際に用いる鍵であり、ＰＫＧ内で安全に保管しておく。
（２）次に、暗号文を復号したりキーワード検索したりする権限を持つユーザは、ＰＫＧにアクセスして、自分の権限に沿ったユーザ秘密鍵を受け取る。ここで、ユーザ秘密鍵は復号権限や検索権限を持つ秘密のデータであるため、ＰＫＧからユーザに対して安全に配布し、また安全に保管しておく必要がある。
【０００５】
以上のように鍵を準備すれば、暗号化する際には誰もがマスタ公開鍵を用いて暗号化することができ、また復号や検索をする際には、ユーザ秘密鍵を持つユーザのみが自身のユーザ秘密鍵を用いて復号・検索することができるようになる。
このように、一般にユーザがユーザ秘密鍵を取得する場合には、ユーザがユーザ端末からＰＫＧへ直接アクセスしてユーザ秘密鍵を受け取ることが前提とされてきた。具体的には、インターネットや専用線などのネットワーク経由でユーザの端末からＰＫＧに接続してユーザ秘密鍵を受け取る方法がとられていた（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５０２７７４２号公報
【非特許文献】
【０００７】
【非特許文献１】高島克幸、酒井康行、内藤祐介、坂上勉、松田規、森拓海、「クラウド向き関数型暗号技術の進展」、三菱電機技報、ｖｏｌ．８６、ｎｏ．７、ｐｐ．１２−１５、２０１２年７月
【非特許文献２】Ｄａｎ  Ｂｏｎｅｈ，Ａｍｉｔ  Ｓａｈａｉ  ａｎｄ  Ｂｒｅｎｔ  Ｗａｔｅｒｓ，’’Ｆｕｎｃｔｉｏｎａｌ  ｅｎｃｒｙｐｔｉｏｎ：Ｄｅｆｉｎｉｔｉｏｎｓ  ａｎｄ  ｃｈａｌｌｅｎｇｅｓ，’’Ｔｈｅｏｒｙ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｃｏｎｆｅｒｅｎｃｅ  ２０１１，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｖｏｌ．６５９７，ｐｐ．２５３−２７３，２０１１．
【非特許文献３】Ｔａｔｓｕａｋｉ  Ｏｋａｍｏｔｏ  ａｎｄ  Ｋａｔｓｕｙｕｋｉ  Ｔａｋａｓｈｉｍａ，’’Ｆｕｌｌｙ  ｓｅｃｕｒｅ  ｆｕｎｃｔｉｏｎａｌ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｇｅｎｅｒａｌ  ｒｅｌａｔｉｏｎｓ  ｆｒｏｍ  ｔｈｅ  ｄｅｃｉｓｉｏｎａｌ  ｌｉｎｅａｒ  ａｓｓｕｍｐｔｉｏｎ，’’Ｃｒｙｐｔｏ  ２０１０，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｖｏｌ．６２３３，ｐｐ．１９１−２０８，２０１０．
【非特許文献４】Ｔａｔｓｕａｋｉ  Ｏｋａｍｏｔｏ  ａｎｄ  Ｋａｔｓｕｙｕｋｉ  Ｔａｋａｓｈｉｍａ，’’Ａｄａｐｔｉｖｅｌｙ  ａｔｔｒｉｂｕｔｅ−ｈｉｄｉｎｇ（ｈｉｅｒａｒｃｈｉｃａｌ）ｉｎｎｅｒ  ｐｒｏｄｕｃｔ  ｅｎｃｒｙｐｔｉｏｎ，’’Ｅｕｒｏｃｒｙｐｔ  ２０１２，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｖｏｌ．７２３７，ｐｐ．５９１−６０８，２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
システムによっては、ユーザ端末がＰＫＧへ直接アクセスできず、信頼できないサーバを経由してアクセスせざるを得ない場合が存在する。例えば、ユーザ端末はインターネットなどの公衆ネットワークに接続できない環境にあり、信頼できないサーバとの間でしかローカル接続されない場合である。あるいは、コストや利便性の観点から、ユーザ端末の接続先を信頼できないサーバに限定する場合である。このような場合には、ユーザ秘密鍵が信頼できないサーバを経由することになるため、何らかの形でユーザ秘密鍵を保護する必要が生じる。
【０００９】
また、ユーザ自身がユーザ秘密鍵を管理するのではなく、信頼できないサーバ上でユーザ秘密鍵を管理しておくことが求められる場合がある。ユーザ自身がユーザ秘密鍵を管理する場合には、例えばＩＣカードに格納する方法が考えられる。しかし、実際、このような方法にすると、ＩＣカードの発行コストや読み取り端末の購入コストがかかるほか、ユーザは常にＩＣカードを所持することが求められるため、利便性にも影響する。そのため、暗号化した機密データと同様に、ユーザ秘密鍵も信頼できないサーバ上で管理しておくことが求められる場合がある。
【００１０】
本発明は、上述の課題を解決するためのものであり、ユーザ端末がユーザ秘密鍵などの情報を生成する情報生成装置に直接アクセスできない場合でも、ユーザ端末に安全にユーザ秘密鍵などの情報を配信することができる情報配信システムを提供する。
【課題を解決するための手段】
【００１１】
本発明に係る情報配信システムは、
情報を生成する情報生成装置と、前記情報生成装置と接続されるサーバ装置と、前記サーバ装置に接続され、前記サーバ装置を介して前記情報生成装置と通信する端末装置とを備える情報配信システムにおいて、
共通鍵を生成する共通鍵生成部を備え、
前記端末装置は、
端末側記憶装置と、
前記共通鍵生成部により生成された前記共通鍵を入力し、入力した前記共通鍵を前記端末側記憶装置に記憶する共通鍵記憶部と
を備え、
前記情報生成装置は、
前記共通鍵生成部により生成された前記共通鍵を入力し、入力した前記共通鍵を用いて前記情報を処理装置により暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化部
を備え、
前記サーバ装置は、
サーバ側記憶装置と、
前記情報生成装置の前記情報暗号化部から前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶部と
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明に係る情報配信システムによれば、端末装置が共通鍵生成部により生成された共通鍵を入力し、入力した共通鍵を端末側記憶装置に記憶する共通鍵記憶部を備え、情報生成装置が前記共通鍵生成部により生成された前記共通鍵を入力し、入力した前記共通鍵を用いて情報を暗号化し、暗号化した前記情報を暗号化情報として前記サーバ装置に送信する情報暗号化部を備え、サーバ装置が前記情報生成装置の前記情報暗号化部から前記暗号化情報を受信し、受信した前記暗号化情報を前記サーバ側記憶装置に記憶する暗号化情報記憶部を備えているので、端末装置が情報生成装置に接続されていない場合でも、サーバ装置を介して端末装置に安全に情報を配信することができる。
【図面の簡単な説明】
【００１３】
【図１】情報配信システム５００の構成の一例を示す図である。
【図２】関数型暗号の鍵の種類と機能について説明するための図である。
【図３】検索可能暗号（検索可能暗号方式）の鍵の種類と機能について説明するための図である。
【図４】実施の形態１に係るＰＫＧ１０４のブロック構成を示す図である。
【図５】実施の形態１に係るサーバ１０３のブロック構成を示す図である。
【図６】実施の形態１に係るユーザ端末１０２のブロック構成を示す図である。
【図７】実施の形態１に係るユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成の一例を示す図である。
【図８】実施の形態１に係る情報配信システム５００におけるシステムセットアップ処理の手順を示すフローチャートである。
【図９】実施の形態１に係る情報配信システム５００における端末セットアップ処理の手順を示すフローチャートである。
【図１０】実施の形態１に係るシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。
【図１１】実施の形態１に係るユーザ端末に関数型暗号のユーザ秘密鍵を配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
【図１２】実施の形態１に係るユーザ端末に関数型暗号のマスタ公開鍵を配信する処理（マスタ公開鍵配信処理）の手順を示すフローチャートである。
【図１３】実施の形態２に係る情報配信システム５００ａにおけるシステムセットアップ処理の手順を示すフローチャートである。
【図１４】実施の形態２に係る情報配信システム５００ａにおけるユーザセットアップ処理の手順を示すフローチャートである。
【図１５】実施の形態２に係るシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。
【図１６】実施の形態２に係るユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
【図１７】実施の形態２に係るユーザ端末に関数型暗号のマスタ公開鍵を配信する処理（マスタ公開鍵配信処理）の手順を示すフローチャートである。
【図１８】実施の形態３に係る情報配信システム５００ｂにおけるユーザセットアップ処理の手順を示すフローチャートである。
【図１９】実施の形態３に係るシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。
【図２０】実施の形態３に係るユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
実施の形態１．
本実施の形態１では、最も安全性の高い方式として、サーバがユーザ秘密鍵を取得できないことに加えて、サーバがＰＫＧになりすましてマスタ公開鍵やユーザ秘密鍵を勝手に偽造してユーザに送りつけることもできない情報配信システム５００（情報配信方式）について説明する。
まず、本実施の形態に係る情報配信システム５００の機能構成を説明するための前提として、情報配信システム５００の構成、関数型暗号、検索可能暗号について説明する。
【００１５】
図１は、本実施の形態１に係る情報配信システム５００の構成の一例を示す図である。
図１に示すように、情報配信システム５００は、公開鍵、秘密鍵、マスタ公開鍵、マスタ秘密鍵、ユーザ秘密鍵などの情報を生成するＰＫＧ１０４（情報生成装置）と、ＰＫＧ１０４と接続されるサーバ１０３（サーバ装置）と、サーバ１０３に接続され、サーバ１０３を介してＰＫＧ１０４と通信するユーザ端末１０２（端末装置）とを備える。また、共通鍵を生成する共通鍵生成部１０５を備えていてもよい。あるいは、共通鍵生成部１０５は、ユーザ端末１０２が備えていてもよいし、サーバ１０３が備えていてもよい。
【００１６】
図１において、ユーザ１０１（ユーザ１０１ａ〜ユーザ１０１ｚ）は、関数型暗号や検索可能暗号の利用者である。情報配信システム５００は、少なくとも２人以上のユーザ１０１に利用されるが、ユーザ１０１は１人でもよい。
また、情報配信システム５００は、少なくとも２つ以上のユーザ端末１０２（ユーザ端末１０２ａ〜ユーザ端末１０２ｎ）を備えているものとするが、ユーザ端末１０２は１つでもよい。ユーザ端末１０２ａ〜ユーザ端末１０２ｎは、ユーザが利用する情報機器であり、具体的には、パーソナルコンピュータ、スマートフォン、タブレット端末などである。
【００１７】
サーバ１０３は、暗号化データ、ユーザ秘密鍵などを格納する。
ＰＫＧ１０４は、関数型暗号や検索可能暗号で用いられるマスタ公開鍵とマスタ秘密鍵とを生成する。また、ＰＫＧ１０４は、生成したマスタ公開鍵とマスタ秘密鍵と保管する。さらに、ＰＫＧ１０４は、ユーザ秘密鍵を生成する。
【００１８】
図１において、ユーザ端末１０２はいずれもＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）やインターネットなどのネットワークでサーバ１０３と接続されているが、ＰＫＧ１０４とは直接接続されていない。
また、ＰＫＧ１０４は、ＬＡＮやインターネットなどのネットワークでサーバ１０３と接続されているが、ユーザ端末１０２とは直接接続されていない。
【００１９】
このように、ユーザ端末１０２は、サーバ１０３を経由してＰＫＧ１０４と接続される。サーバ１０３は、例えば、セキュリティ上、信頼できないサーバである場合がある。
なお、ユーザ１０１ａ〜ユーザ１０１ｚの各々は、任意のユーザ端末１０２を用いて情報配信システム５００を利用するものとする。したがって、複数のユーザ１０１が同一のユーザ端末１０２を共有する構成としてもよいし、１人のユーザ１０１が複数のユーザ端末１０２を使用する構成としてもよい。
【００２０】
図２は、関数型暗号（関数型暗号方式）の鍵の種類と機能について説明するための図である。図２を用いて、関数型暗号の鍵の種類と機能について説明する。
図２に示すように、関数型暗号は、セットアップ機能部２１１、鍵生成機能部２１２、暗号化機能部２１３、復号機能部２１４の４つの機能部を少なくとも備える。
【００２１】
セットアップ機能部２１１は、セキュリティパラメータ２０１を入力として、マスタ公開鍵２０２とマスタ秘密鍵２０３とを出力する機能部である。ここで、セキュリティパラメータ２０１とは、安全性の強度をビット数などの数値で表したものであり、通常は８０ビットや１２８ビットなどの値が用いられる。
【００２２】
鍵生成機能部２１２は、属性２０４とマスタ秘密鍵２０３とを入力として、属性２０４に対応するユーザ秘密鍵２０５を出力する機能部である。ここで、属性２０４とは、ユーザＩＤやユーザの特性（所属、役職など）を表すデータであり、ユーザ秘密鍵２０５の復号権限を規定するものである。
【００２３】
暗号化機能部２１３は、機密データ２０６と、マスタ公開鍵２０２と、述語２０７とを入力として、暗号化データ２０８を出力する機能部である。ここで、述語２０７とは、暗号化データ２０８を復号できる条件を規定したものであり、例えば「総務部部長または経理部部長」のようなデータである。
【００２４】
復号機能部２１４は、暗号化データ２０８とマスタ公開鍵２０２、ユーザ秘密鍵２０５を入力として、元の機密データ２０６を出力する機能部である。ただし、ユーザ秘密鍵２０５に組み込まれた属性２０４が、暗号化データ２０８に組み込まれた述語２０７を満たさない場合、復号失敗という結果になる。例えば、属性２０４が「総務部」「一般社員」「男性」の組であり、述語２０７が「総務部部長または経理部部長」であった場合、元の機密データ２０６は復号されず、復号失敗という結果になる。
【００２５】
なお、以上の説明は、厳密に言えば暗号文ポリシ型（Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ）の関数型暗号の場合で説明したが、鍵ポリシ型（Ｋｅｙ−Ｐｏｌｉｃｙ）や双対ポリシ型（Ｄｕａｌ−Ｐｏｌｉｃｙ）など他の形式においても、適宜読み替えることにより同様の機能構成および鍵構成となる。
【００２６】
図３は、検索可能暗号（検索可能暗号方式）の鍵の種類と機能について説明するための図である。図２の一部及び図３を用いて、検索可能暗号（検索可能暗号方式）の鍵の種類と機能について説明する。
【００２７】
検索可能暗号は、図２のセットアップ機能部２１１、鍵生成機能部２１２、暗号化機能部２１３に加えて、図３の検索クエリ生成機能部３１１、秘匿突合機能部３１２の５つの機能部を少なくとも備える。セットアップ機能部２１１、鍵生成機能部２１２、暗号化機能部２１３は関数型暗号と共通であるので説明を省略し、図３の各機能部について説明する。
【００２８】
図３において、検索クエリ生成機能部３１１は、検索キーワード３０１、マスタ公開鍵２０２、ユーザ秘密鍵２０５を入力として、暗号化クエリ３０２を出力する機能部である。ここで、検索キーワード３０１は、検索対象となる機密データ２０６に含まれるキーワードである。例えば、検索キーワード３０１は、「財務諸表」「経理課社外秘事項」といったキーワードである。
【００２９】
秘匿突合機能部３１２は、暗号化データ２０８、マスタ公開鍵２０２、暗号化クエリ３０２を入力として、突合結果３０３を出力する機能部である。ここで、突合結果３０３は、暗号化データ２０８に含まれる機密データ２０６と、暗号化クエリ３０２に含まれる検索キーワード３０１とが一致したか否かを表す１ビット情報である。例えば、一致していれば「１：ヒット」、一致していなければ「０：ヒットせず」を出力する。このように、検索可能暗号は、暗号化データ２０８や暗号化クエリ３０２を復号することなく突合できる。
【００３０】
以上、関数型暗号および検索可能暗号の鍵の種類と機能について説明した。本実施の形態に係る情報配信システム５００は、一般的な関数型暗号および一般的な検索可能暗号に適用できるものであるため、これ以上の詳細化はここでは行わない。なお、これら暗号の具体的な実現方法については、関数型暗号については、例えば非特許文献３、検索可能暗号については、例えば非特許文献４に掲載されている。
ここまで、本実施の形態に係る情報配信システム５００のシステム構成と、関数型暗号および検索可能暗号について説明した。
【００３１】
図４は、本実施の形態に係るＰＫＧ１０４のブロック構成を示す図である。図５は、本実施の形態に係るサーバ１０３のブロック構成を示す図である。図６は、本実施の形態に係るユーザ端末１０２のブロック構成を示す図である。
図４〜図５を用いて、ＰＫＧ１０４、サーバ１０３、ユーザ端末１０２のブロック構成について説明する。
【００３２】
図４に示すように、ＰＫＧ１０４は、ＰＫＧデータベース１０４１、通常暗号鍵生成部４１、マスタ鍵生成部４２、ＰＫＧ送受信部４３、ＰＫＧ記憶部４４、共通鍵取得部４５、ユーザ秘密鍵生成部４６を備える。
【００３３】
ＰＫＧ１０４は、ユーザ秘密鍵、マスタ公開鍵、マスタ秘密鍵、通常の公開鍵、通常の秘密鍵などの情報を生成する情報生成装置の一例である。
ＰＫＧデータベース１０４１は、マスタ公開鍵、マスタ秘密鍵、秘密鍵などを記憶する装置側記憶装置の一例である。
ＰＫＧ記憶部４４は、マスタ公開鍵、マスタ秘密鍵、秘密鍵などをＰＫＧデータベース１０４１に記憶する。
通常暗号鍵生成部４１は、公開鍵と、この公開鍵に対応する秘密鍵とを生成する鍵生成部の一例である。
マスタ鍵生成部４２は、関数型暗号や検索可能暗号などにより、マスタ公開鍵、マスタ秘密鍵を生成する。
【００３４】
ＰＫＧ送受信部４３は、ＰＫＧ１０４におけるデータの送受信を行う。例えば、通常暗号鍵生成部４１により生成された公開鍵をサーバ１０３に送信する鍵送信部の一例である。
共通鍵取得部４５は、ユーザ端末１０２から、公開鍵で暗号化された暗号化共通鍵をサーバ１０３を介して受信し、受信した暗号化共通鍵を秘密鍵で復号して共通鍵を取得する。
ユーザ秘密鍵生成部４６は、共通鍵取得部４５により取得された共通鍵を入力し、入力した共通鍵を用いてユーザ秘密鍵などの情報を暗号化し、暗号化した暗号化情報をサーバ１０３に送信する情報暗号化部の一例である。
【００３５】
図５に示すように、サーバ１０３は、サーバデータベース１０３１、認証部３１、サーバ送受信部３２、サーバ記憶部３３、サーバ検証部３４を備える。
認証部３１は、ユーザ１０１からのログイン情報を受け付け、認証処理を行う。
サーバデータベース１０３１は、情報配信システム５００に共通の共通データ１０３２、ユーザ１０１やユーザ端末１０２に応じた個別データ１０３３などを記憶するサーバ側記憶装置の一例である。
サーバ記憶部３３は、例えば、共通データ１０３２や個別データ１０３３をサーバデータベース１０３１に記憶する。また、サーバ記憶部３３は、共通鍵を用いて暗号化された暗号化情報をＰＫＧ１０４から受信し、サーバデータベース１０３１に記憶する暗号化情報記憶部の一例である。
【００３６】
サーバ送受信部３２は、サーバ１０３におけるデータの送受信を行う。例えば、サーバ１０３は、ユーザ秘密鍵などの情報の配信を要求する情報配信要求をユーザ端末１０２から受信すると、サーバ記憶部３３によりサーバデータベース１０３１に記憶された暗号化情報を、ユーザ端末１０２に送信する情報送信部の一例である。また、サーバ送受信部３２は、ＰＫＧ１０４から送信された通常の公開鍵をユーザ端末に送信するサーバ側送信部の一例である。
サーバ検証部３４は、ＰＫＧ１０４から送信された通常の公開鍵を検証する。
【００３７】
図６に示すように、ユーザ端末１０２は、端末データベース１０２１、共通鍵入力部２１、共通鍵暗号化部２２、端末送受信部２３、端末記憶部２４、ユーザ秘密鍵取得部２５、端末検証部２６を備える。
端末データベース１０２１は、端末識別子ＴＩＤや、共通鍵などを記憶する端末側記憶装置の一例である。
端末記憶部２４は、例えば、共通鍵を端末データベース１０２１に記憶する共通鍵記憶部の一例である。
【００３８】
共通鍵入力部２１は、共通鍵を生成する共通鍵生成部１０５から共通鍵を入力する。あるいは、共通鍵入力部２１が共通鍵を生成する機能を有していてもよい。
共通鍵暗号化部２２は、ＰＫＧ１０４から、サーバ１０３を介して公開鍵を受信し、受信した公開鍵を用いて、端末データベース１０２１に記憶された共通鍵を暗号化し、暗号化した暗号化共通鍵を送信する。
【００３９】
端末送受信部２３は、ユーザ端末１０２において、データの送受信を行う。例えば、端末送受信部２３は、ＰＫＧ１０４から、サーバに対し、ユーザ秘密鍵などの情報の配信を要求する情報配信要求を送信する配信要求送信部の一例である。
ユーザ秘密鍵取得部２５は、情報配信要求を受信したサーバ１０３が送信した暗号化情報を受信し、受信した暗号化情報を端末データベース１０２１に記憶されている共通鍵を用いて復号することにより、ユーザ秘密鍵などの情報を取得する復号部の一例である。
端末検証部２６は、サーバ１０３を介してＰＫＧ１０４から送信された公開鍵を検証する。
【００４０】
図７は、本実施の形態に係るユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成の一例を示す図である。
図７を用いて、ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成例について説明する。
【００４１】
ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４はコンピュータを備え、ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４の各要素をプログラムで実現することができる。
【００４２】
ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００４３】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。ハードディスク１２０は、外部記憶装置９０２の一例である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
【００４４】
通信装置９０４は、例えば通信ボード等であり、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信装置９０４は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
【００４５】
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。マウスの代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。ディスプレイ装置は、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置でもよい。ディスプレイ１３０は、表示装置の一例である。
【００４６】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図４〜図６に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図４〜図６に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーションプログラムも外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１により実行される。
また、「〜テーブル」等の情報も外部記憶装置９０２に記憶されている。
【００４７】
また、本実施の形態の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
また、ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４が受信したデータが主記憶装置９０３に記憶される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置９０３にファイルとして記憶されてもよい。
【００４８】
なお、図７の構成は、あくまでもユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成の一例を示すものであり、ユーザ端末１０２、サーバ１０３、ＰＫＧ１０４のハードウェア構成は図３に記載の構成に限らず、他の構成であってもよい。
【００４９】
図８は、本実施の形態に係る情報配信システム５００の情報配信方法（情報配信処理、情報配信工程）におけるシステムセットアップ処理の手順を示すフローチャートである。
なお、情報配信システム５００におけるユーザ秘密鍵の配信方式は、関数型暗号でも検索可能暗号でも適用することができるため、ここでは関数型暗号を例に説明する。
【００５０】
システムセットアップ処理の概要について説明する。システムセットアップ処理とは、情報配信システム５００において、システムをはじめて立ち上げる時や既存システムを全面的にリプレースする時など、システムを新しく始める場合に実行されるものである。
【００５１】
＜ＰＫＧ側システムセットアップ処理：Ｓ４０１〜Ｓ４０６＞
まず、図８においてＰＫＧ１０４の処理を説明する。
Ｓ４０１において、ＰＫＧ１０４の通常暗号鍵生成部４１は、通常の公開鍵暗号の公開鍵ｐｋ、秘密鍵ｓｋを生成する（鍵生成処理）。ここで通常の公開鍵暗号とは、例えば、ＲＳＡ暗号やＥｌＧａｍａｌ暗号などのことである。
Ｓ４０２において、通常暗号鍵生成部４１は、Ｓ４０１で生成した公開鍵ｐｋに対してＣＡ（Ｃｅｒｔｉｆｉｃａｔｅ・Ａｕｔｈｏｒｉｔｙ）から公開鍵証明書ｃｅｒｔを発行してもらう。ここで、ＣＡは、ＰＫＩ（Ｐｕｂｌｉｃ−Ｋｅｙ・Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）（公開鍵基盤）の認証局であり、公開鍵ｐｋが確かにＰＫＧ１０４の公開鍵であることをユーザに対して保証する役割を果たす。
【００５２】
Ｓ４０３において、ＰＫＧ１０４のマスタ鍵生成部４２は、関数型暗号のマスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋを生成する。これは、図２において説明したセットアップ機能部２１１を実行することで実現される。
【００５３】
Ｓ４０４において、マスタ鍵生成部４２は、関数型暗号のマスタ公開鍵ｍｐｋに通常の公開鍵暗号の秘密鍵ｓｋで署名し、署名ｓｉｇを作成する。この署名ｓｉｇの作成は、ＤＳＡ（Ｄｉｇｉｔａｌ・Ｓｉｇｎａｔｕｒｅ・Ａｌｇｏｒｉｔｈｍ）などのデジタル署名アルゴリズムにより実現される。
【００５４】
Ｓ４０５において、ＰＫＧ１０４のＰＫＧ送受信部４３は、関数型暗号のマスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇをサーバ１０３に送信する（鍵送信処理）。この際、サーバとＰＫＧの間は安全な通信路が確保されていることが望ましい。具体的には、オンラインであればＳＳＬ（Ｓｅｃｕｒｅ・Ｓｏｃｋｅｔ・Ｌａｙｅｒ）による通信路暗号化、オフラインであれば媒体にデータを格納した上で、信頼できる業者による配送を行うことにより、安全に送信することが望ましい。
【００５５】
最後に、Ｓ４０６において、ＰＫＧ１０４のＰＫＧ記憶部４４は、関数型暗号のマスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋ、通常の公開鍵暗号の秘密鍵ｓｋをＰＫＧデータベース１０４１に格納する。ＰＫＧ１０４のシステムセットアップ処理は以上である。
【００５６】
＜サーバ側システムセットアップ処理：Ｓ４１１〜Ｓ４１３＞
次に、サーバ１０３のシステムセットアップ処理を説明する。
Ｓ４１１において、サーバ１０３のサーバ送受信部３２は、関数型暗号のマスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇをＰＫＧ１０４から受信する。
次に、Ｓ４１２において、サーバ１０３のサーバ検証部３４は、公開鍵証明書ｃｅｒｔと署名ｓｉｇとをそれぞれ検証する。公開鍵証明書ｃｅｒｔは、ＣＡの公開鍵を用いて検証できる。また、ｃｅｒｔが検証されれば、それを用いて署名ｓｉｇを検証できる。これにより、これらのデータが確かにＰＫＧ１０４から送られてきたことが確認できる。
【００５７】
最後に、Ｓ４１３において、サーバ１０３のサーバ記憶部３３は、マスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇを、情報配信システム５００における共通データ１０３２として、サーバデータベース１０３１に格納する。サーバ１０３のシステムセットアップ処理は以上である。
【００５８】
なお、受信データ（マスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇ）が確かにＰＫＧ１０４から送られてきたことが明らかである場合には、サーバ１０３はＳ４１２を省略してもよい。例えば、サーバ１０３とＰＫＧ１０４とがＳＳＬで接続されており、ＳＳＬのサーバ認証によりサーバ１０３の接続先がＰＫＧ１０４であることがあらかじめわかっている場合には、Ｓ４１２を省略してもよい。
以上、システムセットアップ処理について説明した。
【００５９】
図９は、本実施の形態に係る情報配信システム５００の情報配信方法におけるユーザセットアップ処理の手順を示すフローチャートである。
図９を用いて、ユーザセットアップ処理について説明する。
ユーザセットアップ処理の概要について説明する。ユーザセットアップ処理は、ユーザ１０１がはじめて情報配信システム５００の利用を開始する際や、既存のユーザ１０１であっても新しいユーザ端末１０２を使い始める際など、ユーザ１０１とユーザ端末１０２との組み合わせがまだサーバ１０３内に登録されていない場合に実行される処理である。なお、このようにユーザ１０１とユーザ端末１０２との組み合わせでサーバ１０３内に登録するのは、各ユーザ１０１が任意のユーザ端末１０２を用いてシステムを利用できるようにするためである。
【００６０】
まず、Ｓ５０１において、ユーザ１０１は、ユーザ端末１０２を操作して情報配信システム５００にログインする。具体的には、Ｓ５０１ａにおいて、ユーザ端末１０２の端末送受信部２３は、ユーザ識別子ＵＩＤ、パスワードＰＷをサーバ１０３に送信する。サーバ１０３の認証部３１は、Ｓ５０１ｂにおいて、ユーザ識別子ＵＩＤ、パスワードＰＷを受信する。認証部３１は、Ｓ５０１ｃにおいて、ユーザ識別子ＵＩＤ、パスワードＰＷを用いてユーザ１０１を認証する。この際、ユーザ端末１０２とサーバ１０３との間は安全な通信路が確保されていることが望ましい。
【００６１】
なお、このＳ５０１のログイン処理に用いるＵＩＤ、ＰＷは、関数型暗号専用のものでもよいし、関数型暗号機能のない本来のデータ管理システムがもともと持っているものでもよい。後者の場合には、ユーザにとって複数のユーザ識別子とパスワードを管理せずに済むというメリットがある。
【００６２】
＜サーバ１０３の処理＞
Ｓ５０２において、サーバ１０３は、ユーザ認証が完了すると、公開鍵証明書ｃｅｒｔをサーバデータベース１０３１から取り出す。
Ｓ５０３において、サーバ１０３のサーバ送受信部３２は、取り出した公開鍵証明書ｃｅｒｔをユーザ端末１０２に送信する。
【００６３】
＜ユーザ端末１０２の処理＞
Ｓ５０４において、ユーザ端末１０２の端末送受信部２３は、公開鍵証明書ｃｅｒｔをサーバ１０３から受信する。
Ｓ５０５において、ユーザ端末１０２の端末検証部２６は、公開鍵証明書ｃｅｒｔを検証する。既述のように公開鍵証明書ｃｅｒｔはＣＡによって発行されているため、ＣＡの公開鍵証明書ｃｅｒｔを保有していればユーザ端末１０２は公開鍵証明書ｃｅｒｔを検証することができる。この検証が失敗すればそこで処理を終了する。
【００６４】
検証が成功すると、ユーザ端末１０２の処理はＳ５０６に進む。
Ｓ５０６において、ユーザ端末１０２の共通鍵入力部２１は、共通鍵生成部１０５から共通鍵ｒｎｄを入力する。あるいは、共通鍵入力部２１自体が共通鍵生成部１０５の機能（例えば、端末側共通鍵生成部）を有し、共通鍵ｒｎｄを生成してもよい（共通鍵生成処理、共通鍵生成工程）。この場合、共通鍵生成部１０５は、無くてもよい。
【００６５】
Ｓ５０７において、ユーザ端末１０２の共通鍵暗号化部２２は、共通鍵ｒｎｄを公開鍵証明書ｃｅｒｔ内の公開鍵ｐｋで公開鍵暗号化して暗号化共通鍵Ｅ（ｒｎｄ）を作成する（共通鍵暗号化処理、共通鍵暗号化工程）。ここで、Ｅ（ｘ）とは、ｘを公開鍵暗号化したデータを表す。この暗号化共通鍵Ｅ（ｒｎｄ）は、公開鍵ｐｋ対応する秘密鍵ｓｋを持っているＰＫＧ１０４しか復号することができない暗号化データである。
Ｓ５０８において、ユーザ端末１０２の端末送受信部２３は、暗号化共通鍵Ｅ（ｒｎｄ）をサーバ１０３に送信する。
【００６６】
＜サーバ１０３の処理＞
Ｓ５０９において、サーバ送受信部３２は、暗号化共通鍵Ｅ（ｒｎｄ）をユーザ端末１０２から受信する。
Ｓ５１０において、サーバ送受信部３２は、受信した暗号化共通鍵Ｅ（ｒｎｄ）と、ユーザ識別子ＵＩＤとをＰＫＧ１０４に送信する。
【００６７】
＜ＰＫＧ１０４の処理＞
Ｓ５１１において、ＰＫＧ送受信部４３は、暗号化共通鍵Ｅ（ｒｎｄ）とユーザ識別子ＵＩＤとをサーバ１０３から受信する。
Ｓ５１２において、ＰＫＧ１０４の共通鍵取得部４５は、ＰＫＧデータベース１０４１に格納されている秘密鍵ｓｋを用いて、暗号化共通鍵Ｅ（ｒｎｄ）を復号し、共通鍵ｒｎｄを取得する（共通鍵取得処理、共通鍵取得工程）。
【００６８】
Ｓ５１３において、ＰＫＧ１０４のユーザ秘密鍵生成部４６は、マスタ秘密鍵ｍｓｋをＰＫＧデータベース１０４１から取り出す。
Ｓ５１４において、ユーザ秘密鍵生成部４６は、マスタ秘密鍵ｍｓｋを用いて、ユーザ識別子ＵＩＤに対するユーザ秘密鍵ｕｓｋを作成する。このユーザ秘密鍵ｕｓｋの作成は、図２で説明した関数型暗号の鍵生成機能部２１２を実行することにより実現できる。
【００６９】
Ｓ５１５において、ユーザ秘密鍵生成部４６は、ユーザ秘密鍵ｕｓｋを、Ｓ５１２で取得した共通鍵ｒｎｄで共通鍵暗号化し、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を作成する（情報暗号化処理、情報暗号化工程）。ここでＥ’（ｙ）は、ｙが共通鍵暗号化されたデータを表す。また、共通鍵暗号のアルゴリズムは例えばＡＥＳ（Ａｄｖａｎｃｅｄ・Ｅｎｃｒｙｐｔｉｏｎ・Ｓｔａｎｄａｒｄ）やＭＩＳＴＹ（登録商標）などである。
【００７０】
Ｓ５１６において、ユーザ秘密鍵生成部４６は、は、秘密鍵ｓｋを用いて暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）の署名ｓｉｇ（Ｅ’（ｕｓｋ））を作成する。ここで署名ｓｉｇ（ｚ）はｚに対するデジタル署名を表す。
最後に、Ｓ５１７において、ＰＫＧ送受信部４３は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））をサーバ１０３に送信する。
【００７１】
＜サーバ１０３の処理＞
Ｓ５１８において、サーバ送受信部３２は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））をＰＫＧ１０４から受信する。
Ｓ５１９において、サーバ１０３は、端末識別子ＴＩＤを生成する。
Ｓ５２０において、サーバ記憶部３３は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））をサーバデータベース１０３１に保存する（暗号化情報記憶部）。ここで、サーバデータベース１０３１には、ユーザ識別子ＵＩＤと端末識別子ＴＩＤの組（ＵＩＤ，ＴＩＤ）に対して、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））を対応付けて保存する。
最後に、Ｓ５２１において、サーバ送受信部３２は、端末識別子ＴＩＤをユーザ端末１０２に送信する。
【００７２】
＜ユーザ端末１０２の処理＞
Ｓ５２２において、端末送受信部２３は、端末識別子ＴＩＤをサーバ１０３から受信する。
Ｓ５２３において、端末記憶部２４は、端末識別子ＴＩＤ、共通鍵ｒｎｄを端末データベース１０２１に保存して終了する（共通鍵記憶処理、共通鍵記憶工程）。
以上で、ユーザ１０１とユーザ端末１０２とを対応付けるユーザセットアップ処理についての説明を終わる。
【００７３】
図１０は、システムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。
図１０を用いて、システムセットアップ処理とユーザセットアップ処理が終わったときの端末データベース１０２１、サーバデータベース１０３１、ＰＫＧデータベース１０４１内のデータについて説明する。
【００７４】
図１０に示すように、ユーザ端末１０２の端末データベース１０２１には、端末識別子ＴＩＤと共通鍵ｒｎｄとが格納される。
サーバ１０３のサーバデータベース１０３１には、共通データ１０３２としてマスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、マスタ公開鍵に対するデジタル署名ｓｉｇが格納される。また、個別データ１０３３としてユーザ識別子ＵＩＤと端末識別子ＴＩＤの組に対して、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）およびその署名ｓｉｇ（Ｅ’（ｕｓｋ））が格納される。
ＰＫＧ１０４のＰＫＧデータベース１０４１には、マスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋ、通常の公開鍵暗号の秘密鍵ｓｋが格納される。
【００７５】
図１０からわかるように、サーバデータベース１０３１においては、ユーザ秘密鍵ｕｓｋはすべて共通鍵ｒｎｄを用いて暗号化されている。このため、サーバ管理者はその中身を見ることができない。また、マスタ公開鍵ｍｐｋに対して署名ｓｉｇがあるため、サーバ管理者が勝手にマスタ公開鍵ｍｐｋを偽造することはできない。
このように、本実施の形態に係る情報配信システム５００におけるシステムセットアップ処理とユーザセットアップ処理とを実行することにより、ユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信やマスタ公開鍵配信を安全に実施することができる。
【００７６】
以下に、情報配信システム５００において、ユーザからの情報（ユーザ秘密鍵、マスタ公開鍵）の配信要求（情報配信要求）を受け付けた場合の、ユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）、マスタ公開鍵ｍｐｋを配信する処理（マスタ公開鍵配信処理）の具体的な手順を説明する。
【００７７】
図１１は、本実施の形態に係るユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
図１１を用いて、ユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する手順について説明する。
【００７８】
＜配信要求送信処理及び認証処理＞
Ｓ７０１において、まずユーザ１０１は、ユーザ端末１０２を操作して情報配信システム５００にログインするとともに、ユーザ秘密鍵の配信を要求する情報配信要求を発信する。具体的には、Ｓ７０１ａにおいて、ユーザ端末１０２は、端末識別子ＴＩＤを端末データベース１０２１から取り出す。Ｓ７０１ｂにおいて、ユーザ端末１０２は、ログイン時に入力したユーザ１０１のユーザ識別子ＵＩＤ及びパスワードＰＷと、端末識別子ＴＩＤと、情報配信要求とをサーバ１０３に送信する（配信要求送信処理、配信要求送信工程）。Ｓ７０１ｃにおいて、サーバ送受信部３２は、ユーザ識別子ＵＩＤ及びパスワードＰＷと、端末識別子ＴＩＤと、情報配信要求とを受信する。Ｓ７０１ｄにおいて、サーバ１０３の認証部３１は、受信したユーザ識別子ＵＩＤ及びパスワードＰＷと端末識別子ＴＩＤとを用いて、ユーザ１０１を認証する。この際、ユーザ端末１０２とサーバ１０３との間は、安全な通信路が確保されていることが望ましい。
【００７９】
＜サーバ１０３の処理＞
Ｓ７０２において、サーバ１０３は、情報配信要求を受信すると、サーバデータベース１０３１から、公開鍵証明書ｃｅｒｔ、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））を取り出す。サーバ１０３は、公開鍵証明書ｃｅｒｔを共通データ１０３２の領域から取り出す。サーバ１０３は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ）を個別データ１０３３の領域からそれぞれ取り出す。
Ｓ７０３において、サーバ送受信部３２は、これらのデータ（公開鍵証明書ｃｅｒｔ、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））をユーザ端末１０２に送信する（情報送信処理、情報送信工程）。
【００８０】
＜ユーザ端末１０２の処理＞
Ｓ７０４において、端末送受信部２３は、サーバ１０３から公開鍵証明書ｃｅｒｔ、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）、署名ｓｉｇ（Ｅ’（ｕｓｋ））を受信する。
Ｓ７０５において、端末検証部２６は、公開鍵証明書ｃｅｒｔを検証する。この検証が失敗すればそこで処理を終了する。検証が成功すると、ユーザ端末１０２の処理はＳ７０６に進む。
【００８１】
Ｓ７０６において、端末検証部２６は、公開鍵証明書ｃｅｒｔ内の公開鍵ｐｋで署名ｓｉｇ（Ｅ’（ｕｓｋ））を検証する。この検証が失敗すればそこで処理を終了する。検証が成功すると、ユーザ端末１０２の処理はＳ７０７に進む。
Ｓ７０７において、ユーザ秘密鍵取得部２５は、端末データベース１０２１から共通鍵ｒｎｄを取り出す。
Ｓ７０８において、ユーザ秘密鍵取得部２５は、取り出した共通鍵ｒｎｄで暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を復号し、ユーザ秘密鍵ｕｓｋを取り出す（復号処理、復号工程）。これで、ユーザ端末１０２からの情報配信要求（ユーザ秘密鍵配信要求）に対して、ユーザ秘密鍵ｕｓｋをユーザ端末１０２に配信することができた。
【００８２】
Ｓ７０９において、ユーザ端末１０２は、ユーザ秘密鍵ｕｓｋを使用して関数型暗号の復号処理（検索可能暗号の場合には検索クエリ生成処理）などを実行する。
最後に、Ｓ７１０において、ユーザ端末１０２は、ユーザ秘密鍵ｕｓｋを端末データベース１０２１から消去して終了する。
なお、最後のＳ７１０でユーザ秘密鍵ｕｓｋを端末から消去するのは、ユーザ秘密鍵ｕｓｋが秘密のデータであり、ユーザ端末１０２から漏洩するリスクを低減するためであるが、省略しても良い。
【００８３】
図１２は、本実施の形態に係るユーザ端末に関数型暗号のマスタ公開鍵を配信する処理（マスタ公開鍵配信処理）の手順を示すフローチャートである。
図１２を用いて、ユーザ端末１０２に関数型暗号のマスタ公開鍵ｍｐｋを配信する手順について説明する。
【００８４】
＜ユーザ端末１０２の処理＞
Ｓ８０１において、ユーザ１０１からマスタ公開鍵ｍｐｋを要求するマスタ公開鍵要求を受け付けると、端末送受信部２３は、サーバ１０３に対してマスタ公開鍵要求を送信する。図１１のユーザ秘密鍵配信処理ではログイン処理があったが、マスタ公開鍵配信処理ではログイン処理はない。これは、ユーザ秘密鍵とは異なりマスタ公開鍵が公開情報であり、ユーザ認証が不要であるためである。しかし、マスタ公開鍵配信処理においてもログイン処理を行ってもよい。
【００８５】
＜サーバ１０３の処理＞
Ｓ８０２において、サーバ送受信部３２は、ユーザ端末１０２からマスタ公開鍵要求を受信する。
Ｓ８０３において、サーバ１０３は、マスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇをサーバデータベース１０３１から取り出す。
Ｓ８０４において、サーバ送受信部３２は、取り出したマスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇをユーザ端末１０２に送信する。
【００８６】
＜ユーザ端末１０２の処理＞
Ｓ８０５において、端末送受信部２３は、サーバ１０３からマスタ公開鍵ｍｐｋ、公開鍵証明書ｃｅｒｔ、署名ｓｉｇを受信する。
Ｓ８０６において、ユーザ端末１０２は、公開鍵証明書ｃｅｒｔを検証する。この検証が失敗すればそこで処理を終了する。検証が成功すると、処理はＳ８０７に進む。
Ｓ８０７において、ユーザ端末１０２は、公開鍵証明書ｃｅｒｔ内の公開鍵ｐｋでデジタル署名ｓｉｇを検証する。この検証が失敗すればそこで処理を終了する。検証が成功すると、処理はＳ８０８に進む。
Ｓ８０８において、ユーザ端末１０２は、マスタ公開鍵ｍｐｋを使用して終了する。
【００８７】
以上、ユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信手順とマスタ公開鍵配信手順を説明した。これらの手順は必要に応じて繰り返し行うことができる。
以下に、この実施の形態の効果である、サーバ１０３がユーザ秘密鍵を取得できないことに加えて、サーバ１０３がＰＫＧ１０４になりすましてマスタ公開鍵やユーザ秘密鍵を勝手に偽造してユーザに送りつけることもできないことを確認する。
【００８８】
まず、サーバ１０３がユーザ秘密鍵を取得できないことについて説明する。図１０のサーバデータベース１０３１から明らかなように、サーバ１０３が扱うデータの中でユーザ秘密鍵を得るのに必要なものはＥ’（ｕｓｋ）である。しかし、このＥ’（ｕｓｋ）は、サーバ１０３が知らない共通鍵ｒｎｄを用いて共通鍵暗号化されている。共通鍵ｒｎｄはユーザ端末１０２で生成するデータであるが、これが十分にランダムであれば、Ｅ’（ｕｓｋ）からユーザ秘密鍵ｕｓｋを得ることが極めて困難である。
【００８９】
次に、サーバ１０３がＰＫＧ１０４になりすましてマスタ公開鍵やユーザ秘密鍵を勝手に偽造してユーザに送りつけることができないことについて説明する。偽造するためにはマスタ公開鍵に対するデジタル署名ｓｉｇを正しく生成する必要があり、そのためには秘密鍵ｓｋに対応した公開鍵ｐｋの公開鍵証明書ｃｅｒｔを正しく生成する必要がある。しかし、このｃｅｒｔはＣＡによって発行されるものであるため、ＰＫＧ以外が入手することはできない。この場合、仮にサーバがｃｅｒｔ以外をすべてうまく偽造したとしても、ｃｅｒｔを偽造することはできないため、ユーザ端末１０２におけるｃｅｒｔの検証に失敗することになる。このようにして、サーバ１０３が偽造することはできないことがわかる。
【００９０】
以上のように、本実施の形態１に係る情報配信システム５００によれば、ユーザがＰＫＧに直接アクセスできない場合でも安全にユーザ秘密鍵を配信することができる。
また、ＰＫＧが常にオンラインとは限らない場合、すなわち、いつもサーバからＰＫＧへアクセスできるとは限らない場合においても、ユーザに対して関数型暗号や検索可能暗号の機能を提供することができる。
また、信頼できないサーバ上でユーザ秘密鍵を管理することにより、ユーザにおける鍵管理を不要にすることができる。
また、ユーザがＰＫＧに直接アクセスできない場合でも関数型暗号や検索可能暗号を安全に実現することができる。
【００９１】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。
本実施の形態では、実施の形態１で説明した情報配信システム５００とは一部が異なる情報配信システム５００ａについて説明する。
実施の形態１で説明した構成部と同様の機能、動作を有するものについては、同一の符号を付し、その説明を省略する場合がある。
【００９２】
本実施の形態では、サーバ１０３による鍵の偽造やメモリ上のデータの窃取などの不正は、サーバ管理者の規約や能力、意欲など何らかの形で制限されていることを前提として、実施の形態１に比べてステップ数やデータ数の面でより効率よく、サーバ１０３がユーザ秘密鍵を取得できないようにできる方式を開示する。
【００９３】
図１３は、本実施の形態に係る情報配信システム５００ａにおけるシステムセットアップ処理の手順を示すフローチャートである。図１３は、実施の形態１で説明した図８に対応する。図１３を用いて、情報配信システム５００ａにおけるシステムセットアップ処理について説明する。システムセットアップ処理の概要については、実施の形態１で説明したものと同様である。
【００９４】
まず、Ｓ９０１において、ＰＫＧ１０４のマスタ鍵生成部４２は、関数型暗号のマスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋを生成する。これは、図２において説明したセットアップ機能部２１１を実行することで実現される。この処理は、図８のＳ４０３と同様である。
【００９５】
Ｓ９０２において、ＰＫＧ１０４のＰＫＧ送受信部４３は、関数型暗号のマスタ公開鍵ｍｐｋをサーバに送信する。この際、サーバとＰＫＧの間は安全な通信路が確保されていることが望ましい。具体的には、オンラインであればＳＳＬ（Ｓｅｃｕｒｅ・Ｓｏｃｋｅｔ・Ｌａｙｅｒ）による通信路暗号化、オフラインであれば媒体にデータを格納した上で、信頼できる業者による配送を行うことにより、安全に送信することが望ましい。最後にＳ９０３において、ＰＫＧ１０４のＰＫＧ記憶部４４は、関数型暗号のマスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋをＰＫＧデータベース１０４１に格納する。ＰＫＧ１０４の処理は以上である。
【００９６】
次に、サーバ１０３の処理を説明する。
サーバ１０３のサーバ送受信部３２は、Ｓ９１１において、関数型暗号のマスタ公開鍵ｍｐｋをＰＫＧ１０４から受信する。Ｓ９１２において、サーバ１０３のサーバ記憶部３３は、マスタ公開鍵ｍｐｋを共通データ１０３２として、サーバデータベース１０３１に格納する。サーバ１０３の処理は以上である。
【００９７】
以上、本実施の形態に係る情報配信システム５００ａのシステムセットアップ処理について説明した。
このように、本実施の形態では、図８のＳ４０１，Ｓ４０２，Ｓ４０４，Ｓ４１２に対応する処理がない。すなわち、本実施の形態に係る情報配信システム５００ａのシステムセットアップ処理では、公開鍵証明書ｃｅｒｔ、マスタ公開鍵ｍｐｋの署名ｓｉｇを使用しない。したがって、ＰＫＧ１０４のブロック構成は、図４に示す実施の形態１に係るＰＫＧ１０４のブロック構成から通常暗号鍵生成部４１を省いた構成となる。
【００９８】
図１４は、本実施の形態に係る情報配信システム５００ａにおけるユーザセットアップ処理の手順を示すフローチャートである。図１４は、実施の形態１で説明した図９に対応する。図１４を用いて、情報配信システム５００ａにおけるユーザセットアップ処理について説明する。ユーザセットアップ処理の概要については、実施の形態１で説明したものと同様である。
【００９９】
図１４のＳ１００１ａ〜Ｓ１００１ｃまでの処理は、図９のＳ５０１ａ〜Ｓ５０１ｃまでの処理と同様である。
【０１００】
次に、サーバ１０３は、Ｓ１００２において、共通鍵ｒｎｄを共通鍵生成部１０５から入力する。なお、サーバ１０３が共通鍵ｒｎｄを入力する機能（例えば、サーバ共通鍵入力部）を有していてもよいし、あるいは、サーバ１０３自体が共通鍵ｒｎｄを生成する機能（サーバ共通鍵生成部）を有していてもよい。サーバ１０３自体が共通鍵ｒｎｄを生成する場合、共通鍵生成部１０５は、無くてもよい。
そして、サーバ１０３サーバ送受信部３２は、Ｓ１００３において、共通鍵ｒｎｄとユーザ識別子ＵＩＤとをＰＫＧ１０４に送信する。
【０１０１】
ＰＫＧ送受信部４３は、Ｓ１００４において共通鍵ｒｎｄとユーザ識別子ＵＩＤとをサーバ１０３から受信する。
ＰＫＧ１０４のユーザ秘密鍵生成部４６は、Ｓ１００５において、マスタ秘密鍵ｍｓｋをＰＫＧデータベース１０４１から取り出す。ユーザ秘密鍵生成部４６は、Ｓ１００６において、マスタ秘密鍵ｍｓｋを用いてユーザ識別子ＵＩＤに対するユーザ秘密鍵ｕｓｋを作成する（図９のＳ５１３〜Ｓ５１４と同様の処理）。これは、関数型暗号の鍵生成機能部２１２により実現できる。
【０１０２】
次に、ユーザ秘密鍵生成部４６は、Ｓ１００７において、ユーザ秘密鍵ｕｓｋを共通鍵ｒｎｄで共通鍵暗号化し、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を作成する（図９のＳ５１５と同様の処理）。
最後に、ＰＫＧ送受信部４３は、Ｓ１００８において、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をサーバに送信する。
【０１０３】
サーバ送受信部３２は、Ｓ１００９において、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をＰＫＧ１０４から受信する。
Ｓ１０１０において、サーバ１０３は、端末識別子ＴＩＤを生成する（図９のＳ５１９と同様の処理）。
そして、Ｓ１０１１において、サーバ送受信部３２は、端末識別子ＴＩＤ、共通鍵ｒｎｄをユーザ端末１０２に送信する。
次に、サーバ記憶部３３は、Ｓ１０１２において、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をサーバデータベース１０３１に保存する。ここで、保存する際はユーザ識別子ＵＩＤと端末識別子ＴＩＤの組（ＵＩＤ，ＴＩＤ）に対してデータを保存する。
最後に、サーバ記憶部３３は、Ｓ１０１３において、メモリなどのサーバ側記憶装置から共通鍵ｒｎｄを消去する。
【０１０４】
ユーザ端末１０２の端末送受信部２３は、Ｓ１０１４において、端末識別子ＴＩＤ、共通鍵ｒｎｄをサーバ１０３から受信する。
端末記憶部２４は、Ｓ１０１５において、端末識別子ＴＩＤ、共通鍵ｒｎｄを端末データベース１０２１に保存し（図９のＳ５２３と同様の処理）、処理を終了する。
以上、情報配信システム５００ａにおけるユーザセットアップ処理について説明した。
【０１０５】
本実施の形態に係る情報配信システム５００ａにおけるシステムセットアップ処理とユーザセットアップ処理とが終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータ構成について説明する。
【０１０６】
図１５は、本実施の形態に係るシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。図１５は、実施の形態１で説明した図１０に対応する。
図１５において、端末データベース１０２１には端末識別子ＴＩＤと共通鍵ｒｎｄとが格納される。サーバデータベース１０３１には、共通データ１０３２としてマスタ公開鍵ｍｐｋが格納される。また、個別データ１０３３としてユーザ識別子ＵＩＤと端末識別子ＴＩＤの組に対して、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）が格納される。ＰＫＧデータベース１０４１には、マスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋが格納される。
【０１０７】
図１５からわかるように、サーバデータベース１０３１においては、ユーザ秘密鍵ｕｓｋはすべて共通鍵ｒｎｄを用いて暗号化されているため、サーバ管理者はその中身を見ることができない。
以上説明したように、本実施の形態に係るシステムセットアップ処理とユーザセットアップ処理とを行えば、ユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信やマスタ公開鍵配信を安全に実施することができる。
【０１０８】
以下に、情報配信システム５００ａにおいて、ユーザからの情報（ユーザ秘密鍵、マスタ公開鍵）の配信要求（情報配信要求）を受け付けた場合の、ユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）、マスタ公開鍵ｍｐｋを配信する処理（マスタ公開鍵配信処理）の具体的な手順を説明する。
【０１０９】
図１６は、本実施の形態に係るユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
図１６を用いて、ユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する手順について説明する。図１６は、実施の形態１で説明した図１１に対応する。
【０１１０】
図１６において、まずユーザは、Ｓ１２０１にて、ユーザ端末１０２を操作して情報配信システム５００ａにログインする。
Ｓ１２０１ａ〜Ｓ１２０１ｄまでの処理は、図１１で説明したＳ７０１ａ〜Ｓ７０１ｄまでの処理と同様である。
【０１１１】
次に、サーバ１０３は、Ｓ１２０２において、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をサーバデータベース１０３１の個別データ１０３３の領域から取り出す。次に、Ｓ１２０３において、サーバ送受信部３２は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をユーザ端末１０２に送信する。
【０１１２】
端末送受信部２３は、Ｓ１２０４において、サーバ１０３から暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を受信する。
Ｓ１２０５において、ユーザ秘密鍵取得部２５は、端末データベース１０２１から共通鍵ｒｎｄを取り出す（図１１のＳ７０７と同様の処理）。
Ｓ１２０６において、ユーザ秘密鍵取得部２５は、取り出した共通鍵ｒｎｄで暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を復号し、ユーザ秘密鍵ｕｓｋを取り出す（図１１のＳ７０８と同様の処理）。
【０１１３】
この後は、Ｓ１２０７において、ユーザ端末１０２は、ユーザ秘密鍵ｕｓｋを使用して関数型暗号の復号処理（検索可能暗号の場合には検索クエリ生成処理）などを実行する。最後に、Ｓ１２０８において、ユーザ端末１０２は、ユーザ秘密鍵ｕｓｋを端末から消去して終了する。Ｓ１２０７〜Ｓ１２０８までの処理は、図１１で説明したＳ７０９〜Ｓ７０１０までの処理と同様である。
【０１１４】
図１７は、本実施の形態に係るユーザ端末に関数型暗号のマスタ公開鍵を配信する処理（マスタ公開鍵配信処理）の手順を示すフローチャートである。図１７は、実施の形態１で説明した図１２に対応する。
図１７を用いて、ユーザ端末１０２に関数型暗号のマスタ公開鍵ｍｐｋを配信する手順について説明する。
【０１１５】
図１７において、Ｓ１３０１〜Ｓ１３０２までの処理は、図１２で説明したＳ８０１〜Ｓ８０２までの処理と同様である。
Ｓ１３０３において、サーバ１０３は、マスタ公開鍵ｍｐｋをサーバデータベース１０３１から取り出す。
Ｓ１３０４において、サーバ送受信部３２は、取り出したマスタ公開鍵ｍｐｋをユーザ端末１０２に送信する。
【０１１６】
Ｓ１３０５において、端末送受信部２３は、サーバ１０３からマスタ公開鍵ｍｐｋを受信する。
Ｓ１３０６において、ユーザ端末１０２は、マスタ公開鍵ｍｐｋを使用して終了する（図１２のＳ８０８の処理と同様）。
【０１１７】
以上のように本実施の形態に係るユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信手順とマスタ公開鍵配信手順とを説明した。これらの手順は必要に応じて繰り返し行うことができる。
【０１１８】
以上、本実施の形態に係る情報配信システム５００ａによれば、サーバ１０３による鍵の偽造やメモリ上のデータの窃取などの不正は、サーバ管理者の規約や能力、意欲など何らかの形で制限されていることを前提として、実施の形態１に比べてステップ数やデータ数の面でより効率よく、サーバ１０３がユーザ秘密鍵を取得できないようにすることができる。以下、その理由について説明する。
【０１１９】
まず、サーバ１０３がユーザ秘密鍵を取得できないことであるが、図１５のサーバデータベース１０３１から明らかなように、サーバ１０３が扱うデータの中でユーザ秘密鍵を得るのに必要なものは暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）である。これは、サーバ１０３が生成（入力）した共通鍵ｒｎｄを用いて共通鍵暗号化されているが、この共通鍵ｒｎｄは図１４のＳ１０１３にて消去されており、サーバデータベース１０３１に保存されることはない。したがって、メモリ上のデータの窃取などの不正が行われない限りにおいてはサーバ管理者が共通鍵ｒｎｄを得ることはできないので、ユーザ秘密鍵を得ることもできない。
【０１２０】
次に効率性であるが、まずステップ数については、各処理においてデータに対する署名および検証のステップ、ならびにそれに必要な公開鍵、秘密鍵を生成するステップがそれぞれ省略されているため、実施の形態１に比べて少ないステップ数で実現されている。また、データ数についても、図１０と図１５との比較からも明らかなように、実施の形態１に比べて管理すべきデータ数が少なくて済む。以上のことから、本実施の形態に係る情報配信システム５００ａは、実施の形態１に比べて効率がよいことがわかる。
【０１２１】
実施の形態３．
本実施の形態では、主に、実施の形態１，２と異なる点について説明する。
本実施の形態では、実施の形態１，２で説明した情報配信システム５００，５００ａとは一部が異なる情報配信システム５００ｂについて説明する。
実施の形態１，２で説明した構成部と同様の機能、動作を有するものについては、同一の符号を付し、その説明を省略する場合がある。
【０１２２】
本実施の形態では、ユーザのパスワードを流用してさらに効率よく、サーバ１０３がユーザ秘密鍵を取得できないようにできる方式を開示する。
なお、本実施の形態の前提として、一般的なシステムでは、パスワードによる認証を行う場合にパスワードそのものではなくパスワードのハッシュ値を比較することにより認証を行っているという事実を理解しておく必要がある。つまり、サーバ上ではパスワードそのものではなくパスワードのハッシュ値が保管されており、認証時にユーザが入力したパスワードは、サーバ上で一旦ハッシュ値に置き換えられ、これがサーバに保管されているハッシュ値と比較されて認証されるということである。このようにする理由は、パスワードそのものを保管しておいた場合に万一それが漏洩してしまうと容易になりすましをされてしまう恐れがあるので、このような不正を防ぐためである。
【０１２３】
本実施の形態においても、はじめに、システムをはじめて立ち上げる時や既存システムを全面的にリプレースする時など、システムを新しく始める場合に実行されるシステムセットアップ処理を実行する。本実施の形態に係る情報配信システム５００ａにおけるシステムセットアップ処理は、実施の形態２で説明した図１３に示された処理と同様であるため、説明を省略する。
【０１２４】
図１８は、本実施の形態に係る情報配信システム５００ｂにおけるユーザセットアップ処理の手順を示すフローチャートである。図１８は、実施の形態１で説明した図１４に対応する。図１８を用いて、本実施の形態に係る情報配信システム５００ｂのユーザセットアップ処理について説明する。ユーザセットアップ処理の概要については、実施の形態１で説明したものと同様である。
【０１２５】
まずユーザは、Ｓ１４０１において、ユーザ端末１０２を操作してシステムにログインする。図１８のＳ１４０１ａ〜Ｓ１４０１ｃまでの処理は、図１４のＳ１００１ａ〜Ｓ１００１ｃまでの処理と同様である。
次に、サーバ送受信部３２は、Ｓ１４０２において、入力したパスワードＰＷとユーザ識別子ＵＩＤをＰＫＧ１０４に送信する。
【０１２６】
ＰＫＧ送受信部４３は、Ｓ１４０３において、パスワードＰＷとユーザ識別子ＵＩＤとをサーバ１０３から受信する。
ＰＫＧ１０４のユーザ秘密鍵生成部４６は、Ｓ１４０４において、マスタ秘密鍵ｍｓｋをＰＫＧデータベース１０４１から取り出す。ユーザ秘密鍵生成部４６は、Ｓ１４０５において、マスタ秘密鍵ｍｓｋを用いてユーザ識別子ＵＩＤに対するユーザ秘密鍵ｕｓｋを作成する（図１４のＳ１００５〜Ｓ１００６と同様の処理）。これは、関数型暗号の鍵生成機能部２１２により実現できる。
【０１２７】
次に、ユーザ秘密鍵生成部４６は、Ｓ１４０６において、ユーザ秘密鍵ｕｓｋをパスワードＰＷで暗号化し、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を作成する。
最後に、ＰＫＧ送受信部４３は、Ｓ１４０７において、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をサーバに送信する（図１４のＳ１００８と同様の処理）。
【０１２８】
サーバ１０３は、Ｓ１４０８にて暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をＰＫＧ１０４から受信すると、Ｓ１４０９にて端末識別子ＴＩＤを生成する。Ｓ１４０８〜Ｓ１４０９の処理は、図１４のＳ１００９〜Ｓ１０１０と同様の処理である。
そして、Ｓ１４１０において、サーバ送受信部３２は、端末識別子ＴＩＤをユーザ端末１０２に送信する。
最後にＳ１４１１において、サーバ記憶部は、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をデータベースに保存する（図１４のＳ１０１２と同様の処理）。ここで、保存する際はユーザ識別子ＵＩＤと端末識別子ＴＩＤの組（ＵＩＤ，ＴＩＤ）に対して暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）などのデータを保存する点も実施の形態２と同様である。
【０１２９】
端末送受信部２３は、Ｓ１４１２にて端末識別子ＴＩＤをサーバ１０３から受信する。
Ｓ１４１３において、端末記憶部２４は、端末識別子ＴＩＤを端末データベース１０２１に保存して処理を終了する。
以上、本実施の形態に係る情報配信システム５００ｂにおけるユーザセットアップ処理の説明を終わる。
【０１３０】
本実施の形態に係る情報配信システム５００ｂにおけるシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータ構成について説明する。
【０１３１】
図１９は、本実施の形態に係るシステムセットアップ処理とユーザセットアップ処理が終わったときのユーザ端末１０２、サーバ１０３、ＰＫＧ１０４それぞれのデータベース内のデータの構成の一例を示す図である。図１９は、実施の形態２で説明した図１５に対応する。
【０１３２】
図１９において、ユーザ端末１０２の端末データベース１０２１には端末識別子ＴＩＤが格納される。サーバデータベース１０３１には、共通データ１０３２としてマスタ公開鍵ｍｐｋが格納される。また、個別データ１０３３としてユーザ識別子ＵＩＤと端末識別子ＴＩＤの組に対して、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）が格納される。この暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）は、パスワードＰＷを用いて暗号化されたものである。ＰＫＧデータベース１０４１にはマスタ公開鍵ｍｐｋ、マスタ秘密鍵ｍｓｋが格納される。
図１９からわかるように、サーバデータベース１０３１においてはユーザ秘密鍵ｕｓｋはすべて、ユーザ識別子ＵＩＤに対応するパスワードＰＷを用いて暗号化されているため、サーバ管理者はその中身を見ることができない。
【０１３３】
以上説明したように、本実施の形態に係るシステムセットアップ処理とユーザセットアップ処理とを行えば、ユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信やマスタ公開鍵配信を安全に実施することができる。
【０１３４】
以下に、情報配信システム５００ｂにおいて、ユーザからの情報（ユーザ秘密鍵、マスタ公開鍵）の配信要求（情報配信要求）を受け付けた場合の、ユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）、マスタ公開鍵ｍｐｋを配信する処理（マスタ公開鍵配信処理）の具体的な手順を説明する。
【０１３５】
図２０は、本実施の形態に係るユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する処理（ユーザ秘密鍵配信処理）の手順を示すフローチャートである。
図２０を用いて、ユーザ端末１０２に関数型暗号のユーザ秘密鍵ｕｓｋを配信する手順について説明する。図２０は、実施の形態２で説明した図１６に対応する。
【０１３６】
図２０において、まずユーザは、Ｓ１６０１にて、ユーザ端末１０２を操作して情報配信システム５００ｂにログインする。
Ｓ１６０１ａ〜Ｓ１６０１ｄまでの処理は、図１６で説明したＳ１２０１ａ〜Ｓ１２０１ｄまでの処理と同様である。
【０１３７】
次に、サーバ１０３は、Ｓ１６０２にて、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をサーバデータベース１０３１の個別データ１０３３の領域から取り出す。次にＳ１６０３にて、暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）をユーザ端末１０２に送信する。ユーザ端末１０２は、Ｓ１６０４にてサーバから暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を受信する。Ｓ１６０２〜Ｓ１６０４までの処理は、図１６で説明したＳ１２０２〜Ｓ１２０４までの処理と同様である。
【０１３８】
Ｓ１６０５において、ユーザ端末１０２のユーザ秘密鍵取得部２５は、パスワードＰＷで暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）を復号してユーザ秘密鍵ｕｓｋを取り出す。ここで、パスワードＰＷはログイン時のデータをそのまま用いてもよいし、ユーザ１０１に再度入力させてもよい。
【０１３９】
これでユーザ秘密鍵ｕｓｋをユーザ端末１０２に配信することができたので、この後はＳ１６０６にてｕｓｋを使用して関数型暗号の復号処理（検索可能暗号の場合には検索クエリ生成処理）などを実行する。最後にＳ１６０７にてｕｓｋを端末から消去して終了する。Ｓ１６０６〜Ｓ１６０７までの処理は、図１６で説明したＳ１２０７〜Ｓ１２０８までの処理と同様である。
【０１４０】
次に、ユーザ端末１０２に関数型暗号のマスタ公開鍵を配信する手順（マスタ公開鍵配信処理）であるが、実施の形態２で説明した図１７の手順と同様である。
以上、本実施の形態に係る情報配信システム５００ｂにおいて、ユーザ端末１０２に対する関数型暗号のユーザ秘密鍵配信手順とマスタ公開鍵配信手順を説明した。これらの手順は必要に応じて繰り返し行うことができる。
【０１４１】
なお、本実施の形態３に係るユーザセットアップ処理とユーザ秘密鍵配信手順において、サーバ１０３はＰＫＧ１０４に対してユーザのパスワードＰＷをそのまま送る構成とした。しかし、もしＰＫＧ管理者によるユーザ１０１へのなりすましを防ぐ必要がある場合には、システムのパスワード認証のために使っているパスワードハッシュとは別のハッシュ関数を使ってパスワードＰＷのハッシュ値を計算し、その値をパスワードＰＷの代わりに用いる構成としてもよい。このようにすれば、上述のなりすましを防ぐことができる。
【０１４２】
以上、本実施の形態３を説明した。最後に、本実施の形態３の効果である、ユーザ１０１のパスワードＰＷを流用して、実施の形態２よりさらに効率よく、サーバ１０３がユーザ秘密鍵を取得できないようにできることを確認する。
【０１４３】
まず、サーバ１０３がユーザ秘密鍵を取得できないことであるが、図１９のサーバデータベース１０３１から明らかなように、サーバ１０３が扱うデータの中でユーザ秘密鍵を得るのに必要なものは暗号化ユーザ秘密鍵Ｅ’（ｕｓｋ）である。これはユーザ１０１のパスワードＰＷを共通鍵として共通鍵暗号化されている。しかし、このパスワードＰＷは認証時に一時的にサーバ１０３上に現れるものの、サーバデータベース１０３１に保存されることはない。したがって、メモリ上のデータの窃取などの不正が行われない限りにおいてはサーバ管理者がパスワードＰＷを得ることはできないので、ユーザ秘密鍵を得ることもできない。
【０１４４】
次に効率性であるが、まずステップ数については、共通鍵ｒｎｄを生成するステップが省略されているため、実施の形態２に比べて少ないステップ数で実現されている。また、データ数についても、図１５と図１９との比較からも明らかなように、ユーザ端末１０２において実施の形態２に比べて管理すべきデータ数が少なくて済む。以上から、実施の形態２に比べてさらに効率がよいことがわかる。
【０１４５】
以上、実施の形態１から実施の形態３を用いて本発明を説明した。ただし、本発明はこれらの実施の形態に限定されるものではなく、様々な形態が考えられる。例えば、本発明ではシステム構成として信頼できないサーバが１つ、ＰＫＧが１つとしたが、これらがそれぞれ複数存在する構成としてもよい。この場合、ユーザ端末、サーバ、ＰＫＧのそれぞれにおいて、接続先を正しく識別でき、保存すべきデータも接続先ごとに管理できるような仕組みを導入することにより、各実施の形態で述べたのと同様の処理を行うことができる。
【０１４６】
また、本発明では、ＰＫＧが生成しユーザ端末が利用するデータとして、公開情報を関数型暗号のマスタ公開鍵、秘密情報を関数型暗号のユーザ秘密鍵としたが、必ずしも関数型暗号に限らないことは明らかである。既に述べたように検索可能暗号の鍵であってもよいし、また通常の公開鍵暗号の公開鍵、秘密鍵であってもよい。また、共通鍵暗号の共通鍵であってもよい。この場合には公開情報は特に存在しない。あるいはより一般に、公開情報、秘密情報を配信するシステムとして使用することもできる。いずれの場合も、各実施の形態で述べたのと同様の処理でユーザ端末に公開情報、秘密情報を配信することができる。
つまり本発明は、情報の生成者から利用者へ信頼できない中継者を経由して情報を配信するシステムであり、特に、信頼できない中継者に情報を格納しておいてから利用者へ配信するシステムである。
【０１４７】
上記実施の形態１〜３の説明では、情報配信システムは、ユーザ端末、サーバ、ＰＫＧを備え、ユーザ端末は、「端末送受信部」、「端末記憶部」、「ユーザ秘密鍵取得部」、「端末検証部」から構成され、サーバは、「認証部」、「サーバ送受信部」、「サーバ記憶部」、「サーバ検証部」から構成され、ＰＫＧは、「通常暗号鍵生成部」、「マスタ鍵生成部」、「ＰＫＧ送受信部」、「ＰＫＧ記憶部」、「共通鍵取得部」、「ユーザ秘密鍵生成部」から構成されているとした。しかし、このような構成に限られるわけではなく、例えば、ユーザ端末において、「ユーザ秘密鍵取得部」と「端末検証部」とをひとつの機能ブロックで実現してもよいし、ＰＫＧにおいて「通常暗号鍵生成部」と「マスタ鍵生成部」とをひとつの機能ブロックで実現しても良い。あるいは、これらの機能ブロックを、他のどのような組み合わせで情報配信システムを構成しても構わない。
なお、以上の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
【符号の説明】
【０１４８】
２１  共通鍵入力部、２２  共通鍵暗号化部、２３  端末送受信部、２４  端末記憶部、２５  ユーザ秘密鍵取得部、２６  端末検証部、３１  認証部、３２  サーバ送受信部、３３  サーバ記憶部、３４  サーバ検証部、４１  通常暗号鍵生成部、４２  マスタ鍵生成部、４３  ＰＫＧ送受信部、４４  ＰＫＧ記憶部、４５  共通鍵取得部、４６  ユーザ秘密鍵生成部、１０１  ユーザ、１０２  ユーザ端末、１０３  サーバ、１０４  ＰＫＧ、１０５  共通鍵生成部、２００  関数型暗号方式、２０１  セキュリティパラメータ、２０２  マスタ公開鍵、２０３  マスタ秘密鍵、２０４  属性、２０５  ユーザ秘密鍵、２０６  機密データ、２０７  述語、２０８  暗号化データ、２１１  セットアップ機能部、２１２  鍵生成機能部、２１３  暗号化機能部、２１４  復号機能部、３０１  検索キーワード、３０２  暗号化クエリ、３０３  突合結果、３１１  検索クエリ生成機能部、３１２  秘匿突合機能部、５００  情報配信システム、９０１  演算装置、９０２  外部記憶装置、９０３  主記憶装置、９０４  通信装置、９０５  入出力装置、１０２１  端末データベース、１０３１  サーバデータベース、１０３２  共通データ、１０３３  個別データ、１０４１  ＰＫＧデータベース。
【図１】
2015099961.tif 000003
【図２】
2015099961.tif 000004
【図３】
2015099961.tif 000005
【図４】
2015099961.tif 000006
【図５】
2015099961.tif 000007
【図６】
2015099961.tif 000008
【図７】
2015099961.tif 000009
【図８】
2015099961.tif 000010
【図９】
2015099961.tif 000011
【図１０】
2015099961.tif 000012
【図１１】
2015099961.tif 000013
【図１２】
2015099961.tif 000014
【図１３】
2015099961.tif 000015
【図１４】
2015099961.tif 000016
【図１５】
2015099961.tif 000017
【図１６】
2015099961.tif 000018
【図１７】
2015099961.tif 000019
【図１８】
2015099961.tif 000020
【図１９】
2015099961.tif 000021
【図２０】
2015099961.tif 000022