(57)【特許請求の範囲】
【請求項１】
復号装置において復号が可能な条件である復号可能条件が記述される復号可能条件情報を生成する復号可能条件生成部と、
前記復号可能条件情報を用いてスパンプログラムのアクセスストラクチャを生成するアクセスストラクチャ生成部と、
前記アクセスストラクチャを用いて暗号化データ及び秘密鍵のいずれかを送信データとして生成する送信データ生成部と、
前記アクセスストラクチャに代えて前記復号可能条件情報を前記送信データとともに前記復号装置に送信する送信部とを有するデータ処理装置。
【請求項２】
前記復号可能条件生成部は、
前記復号可能条件情報として、前記復号装置が前記スパンプログラムのアクセスストラクチャを生成可能な情報を生成する請求項１に記載のデータ処理装置。
【請求項３】
前記復号可能条件生成部は、
前記スパンプログラムのアクセスストラクチャよりもデータサイズが小さい復号可能条件情報を生成する請求項１に記載のデータ処理装置。
【請求項４】
前記復号可能条件生成部は、
前記復号可能条件情報として、前記復号可能条件が記述されるブール代数の式を生成する請求項１に記載のデータ処理装置。
【請求項５】
前記復号可能条件生成部は、
前記復号可能条件が記述されるブール代数の式を既定の圧縮ルールに従って圧縮し、圧縮後のブール代数の式と、前記圧縮後のブール代数の式を伸長するための情報とを、前記復号可能条件情報として用いる請求項１に記載のデータ処理装置。
【請求項６】
復号を行う復号部と、
スパンプログラムのアクセスストラクチャを用いて生成された暗号化データ及び秘密鍵のいずれかと、前記復号部による復号が可能な条件である復号可能条件が記述され、前記スパンプログラムのアクセスストラクチャの生成に用いられた復号可能条件情報とを受信する受信部と、
前記復号可能条件情報を用いて前記スパンプログラムのアクセスストラクチャを生成するアクセスストラクチャ生成部と、
生成された前記スパンプログラムのアクセスストラクチャを用いて前記復号可能条件が成立しているか否かを判定する判定部とを有する復号装置。
【請求項７】
前記受信部は、
前記復号可能条件情報として、前記復号可能条件が記述されるブール代数の式を受信する請求項６に記載の復号装置。
【請求項８】
前記受信部は、
前記復号可能条件情報として、前記復号可能条件が記述されるブール代数の式が既定の圧縮ルールに従って圧縮されて得られた圧縮後のブール代数の式を受信する請求項６に記載の復号装置。
【請求項９】
プロセッサが、復号装置において復号が可能な条件である復号可能条件が記述される復号可能条件情報を生成し、
前記プロセッサが、前記復号可能条件情報を用いてスパンプログラムのアクセスストラクチャを生成し、
前記プロセッサが、前記アクセスストラクチャを用いて暗号化データ及び秘密鍵のいずれかを送信データとして生成し、
前記プロセッサが、前記アクセスストラクチャに代えて前記復号可能条件情報を前記送信データとともに前記復号装置に送信するデータ処理方法。
【請求項１０】
復号を行うプロセッサが、スパンプログラムのアクセスストラクチャを用いて生成された暗号化データ及び秘密鍵のいずれかと、前記プロセッサによる復号が可能な条件である復号可能条件が記述され、前記スパンプログラムのアクセスストラクチャの生成に用いられた復号可能条件情報とを受信し、
前記プロセッサが、前記復号可能条件情報を用いて前記スパンプログラムのアクセスストラクチャを生成し、
前記プロセッサが、生成された前記スパンプログラムのアクセスストラクチャを用いて前記復号可能条件が成立しているか否かを判定する復号方法。
【請求項１１】
復号装置において復号が可能な条件である復号可能条件が記述される復号可能条件情報を生成する復号可能条件生成処理と、
前記復号可能条件情報を用いてスパンプログラムのアクセスストラクチャを生成するアクセスストラクチャ生成処理と、
前記アクセスストラクチャを用いて暗号化データ及び秘密鍵のいずれかを送信データとして生成する送信データ生成処理と、
前記アクセスストラクチャに代えて前記復号可能条件情報を前記送信データとともに前記復号装置に送信する送信処理とをプロセッサに実行させるデータ処理プログラム。
【請求項１２】
復号を行う復号処理と、
スパンプログラムのアクセスストラクチャを用いて生成された暗号化データ及び秘密鍵のいずれかと、前記復号処理による復号が可能な条件である復号可能条件が記述され、前記スパンプログラムのアクセスストラクチャの生成に用いられた復号可能条件情報とを受信する受信処理と、
前記復号可能条件情報を用いて前記スパンプログラムのアクセスストラクチャを生成するアクセスストラクチャ生成処理と、
生成された前記スパンプログラムのアクセスストラクチャを用いて前記復号可能条件が成立しているか否かを判定する判定処理とをプロセッサに実行させる復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化技術に関する。
【背景技術】
【０００２】
関数型暗号は、復号可能なユーザの条件を暗号文へ埋め込むこと、又は、復号可能な暗号文の条件をユーザ秘密鍵に埋め込むことで柔軟なアクセス制御が可能な公開鍵暗号である。
近年ではクラウドサービスが普及している。例えば安価かつ手間なく即時利用可能なクラウドストレージなどは、現在広く利用されるクラウドサービスの一つである。一方で、機微な情報を含むデータをクラウドで管理するような場合は、情報漏洩のリスクがある。このため、データを暗号化し、暗号化により得られた暗号文をクラウドで管理する必要がある。従来の公開鍵暗号方式では、暗号文とその暗号文を復号できる秘密鍵が１対１の関係にある。このため、従来の公開鍵暗号方式では、データを開示するユーザの数だけ暗号化を行い、暗号文を生成し、クラウドストレージへアップロードし、ユーザの数分の暗号文を管理する必要がある。この方法では、多くの暗号化計算量が必要である。また、ユーザの数だけ暗号文をクラウドストレージへ送信し、クラウドストレージで保持するため、通信帯域及びクラウドストレージの記憶容量が圧迫されるという課題がある。更に、各ユーザの公開鍵の管理コスト及び暗号文の管理コストが増大するという課題がある。【０００３】
関数型暗号は、データの開示範囲の条件式を暗号文又はユーザ秘密鍵に埋め込むことにより、１回の暗号化によって生成される１つの暗号文で開示範囲の制御が実現可能である。
関数型暗号では、属性を用いて暗号文又はユーザ秘密鍵の特徴付け又は条件付けを行う。属性は、種類、役割等を表す値である。属性による特徴付けは属性集合により行う。属性による条件付けは属性と論理積、論理和又は否定を用いた条件式により行う。例えば、会社内でデータ共有を行う場合を想定する。この場合に、各社員のユーザ秘密鍵に属性集合として部署名や役職、社員ＩＤなどを埋め込み、暗号文に（部署名＝営業部）ＯＲ（（部署名＝総務部）ＡＮＤ（役職＝部長））という復号可能条件を埋め込む。このようにすることで、営業部の全社員または総務部の部長のみが復号でき、条件に該当しない者は復号できないような暗号文を生成することができる。このようにして、関数型暗号では、アクセス制御を実現することが可能である。この例では属性集合をユーザ秘密鍵、復号可能条件を暗号文に埋め込んでいる。これをＣｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ関数型暗号という。逆に、属性集合を暗号文、復号可能条件をユーザ秘密鍵に埋め込む方式を、Ｋｅｙ−Ｐｏｌｉｃｙ関数型暗号という。【０００４】
特許文献１及び特許文献２は、Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ関数型暗号及びＫｅｙ−Ｐｏｌｉｃｙ関数型暗号、さらに双方を組み合わせたＵｎｉｆｉｅｄ−Ｐｏｌｉｃｙ関数型暗号の構成を示している。これらの関数型暗号では、いずれも、スパンプログラムを用いたアクセスストラクチャによってアクセス制御を実現している。そして、これらの関数型暗号では、暗号文又はユーザ秘密鍵にアクセスストラクチャを含めている。アクセスストラクチャとして用いるスパンプログラムは行列とラベルで構成される。行列はＬ行ｒ列である。ラベルは行列の各行が復号可能条件のどの変数に対応するかを表現する長さＬのリストである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２３２４７５号公報
【特許文献２】特開２０１２−１３３２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アクセスストラクチャとして用いられるスパンプログラムのデータサイズは大きい。このため、従来のように、スパンプログラムのアクセスストラクチャを用いてアクセス制御を行うと、通信帯域及びストレージの記憶容量が圧迫されるという課題がある。【０００７】
本発明は、このような課題を解決することを主な目的の一つとしている。具体的には、本発明は、通信帯域及びストレージの記憶容量を圧迫せずに関数型暗号を実現することを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ処理装置は、
復号が可能な条件である復号可能条件が記述される復号可能条件情報を生成する復号可能条件生成部と、
前記復号可能条件情報を用いてスパンプログラムのアクセスストラクチャを生成するアクセスストラクチャ生成部と、
前記アクセスストラクチャを用いて暗号化データ及び秘密鍵のいずれかを送信データとして生成する送信データ生成部と、
前記アクセスストラクチャに代えて前記復号可能条件情報を前記送信データとともに復号装置に送信する送信部とを有する。
【発明の効果】
【０００９】
本発明では、スパンプログラムのアクセスストラクチャと比較してデータサイズが格段に小さい復号可能条件情報を、スパンプログラムのアクセスストラクチャに代えて復号装置に送信する。このため、本発明によれば、通信帯域及びストレージの記憶容量を圧迫することなく関数型暗号を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る暗号処理システムの構成例を示す図。
【図２】実施の形態１に係る鍵生成装置の機能構成例を示す図。
【図３】実施の形態１に係る暗号化装置の機能構成例を示す図。
【図４】実施の形態１に係る復号装置の機能構成例を示す図。
【図５】実施の形態１に係る鍵生成装置におけるマスター鍵生成処理を示すフローチャート。
【図６】実施の形態１に係る鍵生成装置におけるユーザ秘密鍵生成処理を示すフローチャート。
【図７】実施の形態１に係る暗号化装置における暗号化処理を示すフローチャート。
【図８】実施の形態１に係る復号装置における復号処理を示すフローチャート。
【図９】実施の形態２に係る暗号処理システムの構成例を示す図。
【図１０】実施の形態２に係る鍵生成装置の機能構成例を示す図。
【図１１】実施の形態２に係る暗号化装置の機能構成例を示す図。
【図１２】実施の形態２に係る復号装置の機能構成例を示す図。
【図１３】実施の形態２に係る鍵生成装置におけるユーザ秘密鍵生成処理を示すフローチャート。
【図１４】実施の形態２に係る暗号化装置における暗号化処理を示すフローチャート。
【図１５】実施の形態２に係る復号装置における復号処理を示すフローチャート。
【図１６】実施の形態１に係る鍵生成装置のハードウェア構成例を示す図。
【図１７】実施の形態１に係る暗号化装置のハードウェア構成例を示す図。
【図１８】実施の形態１に係る復号装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
また、以下では、Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ関数型暗号への本発明の適用例及びＫｅｙ−Ｐｏｌｉｃｙ関数型暗号への適用例を説明する。Ｕｎｉｆｉｅｄ−Ｐｏｌｉｃｙ関数型暗号にも同様に本発明は適用可能である。
【００１２】
実施の形態１．
＊＊＊概要＊＊＊
特許文献１や特許文献２の関数型暗号では、アクセスストラクチャとして終始スパンプログラムを使用している。しかし、実際に関数型暗号を使用する際は、復号可能条件はユーザが指定するため、ユーザが理解しやすいブール代数の式で復号可能条件を指定することが多い。即ち、ユーザによって指定されたブール代数の式からスパンプログラムのアクセスストラクチャが生成される。そして、生成されたスパンプログラムのアクセスストラクチャが関数型暗号のアルゴリズムに入力される。
例えば、Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ関数型暗号の場合は、ブール代数の式から生成されたアクセスストラクチャが暗号文に含められる。アクセスストラクチャとしてスパンプログラムを用いた場合は、前述のように、アクセスストラクチャのデータサイズが肥大化するという課題がある。
そこで、本実施の形態では、スパンプログラムのアクセスストラクチャに代えて、復号可能条件が記述されたブール代数の式を暗号文とともに復号装置に送信する。ブール代数の式は、スパンプログラムのアクセスストラクチャと比較して格段にデータサイズが小さい。
本実施の形態では、このように、スパンプログラムのアクセスストラクチャに代えてブール代数の式を送信することで、データサイズの削減を図ることができる。また、復号装置では、必要に応じてブール代数の式からスパンプログラムを生成することができる。
【００１３】
更に、本実施の形態では、ブール代数の式を既定の圧縮ルールに従って圧縮する。そして、本実施の形態では、圧縮後のブール代数の式を復号装置に送信する。このようにすることで、データサイズの更なる削減を図ることができる。
具体的には、本実施の形態では、論理和、論理積、変数及び否定の変数をそれぞれエンコードする。例えば、論理和は０、論理積は１、変数は２、否定の変数は３にエンコードする。そして、エンコードした論理和、論理積、変数及び否定の変数をブール代数の式に沿った順に配置する。例えば、ポーランド記法を使用すれば、変数ｐ１、ｐ２、ｐ３が含まれる式“ｐ１  ＯＲ  ｐ２  ＡＮＤ  ¬ｐ３”は“０２１２３”とエンコードされる。
次に、上記でエンコードされた変数のリストをエンコードする。上記の例では、エンコードされたデータの２、４、５番目にある“２”または“３”が、それぞれ変数ｐ１、ｐ２、ｐ３であることをリストで表現する。即ち、リストには、スパンプログラムのラベルと同等の情報が含まれる。但し、データサイズを削減するために、本実施の形態では、変数よりもデータサイズが小さい識別子を変数の代わりにエンコードする。例えば、ｐ１は識別子“１２３”、ｐ２は識別子“４５６”、ｐ３は識別子“７８９”とすれば、エンコード結果は“１２３４５６７８９”となる。
本実施の形態では、変数と変数の識別子は変数識別子変換表を用いて相互に変換する。ただし、変数識別子変換表は変数と変数の識別子の関係を表す情報の一例である。変数識別子変換表に代えて、変数と変数の識別子を相互に変換するためのルール又は関数を用いてもよい。
また、以下では、復号可能条件をＰ、エンコード後（圧縮後）のブール代数の式をｆと表記する。また、データサイズを削減した変数のリストをρ’、ｆとρ’に対して復号可能条件情報をＱ：＝（ｆ，ρ’）と表記する。また、変数識別子変換表をＴと表記する。
つまり、本実施の形態では、エンコード後のブール代数の式ｆと、圧縮後のブール代数の式を伸長するための情報であるリストρ’とを復号可能条件情報Ｑとして扱う。
これに代えて、ブール代数の式のエンコードを行わずに、復号可能条件情報Ｑとして、エンコードされていないブール代数の式を送信するようにしてもよい。
【００１４】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る暗号処理システム１０の構成例を示す。
【００１５】
本実施の形態に係る暗号処理システム１０は、図１に示すように、鍵生成装置１００、暗号化装置２００及び復号装置３００を備える。
鍵生成装置１００、暗号化装置２００及び復号装置３００は、それぞれコンピュータである。
鍵生成装置１００、暗号化装置２００及び復号装置３００は、お互いに通信路で接続されている。通信路は例えばインターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などであるが、他の種類の通信路を用いてもよい。
なお、本実施の形態では、暗号化装置２００はデータ処理装置に相当する。また、暗号化装置２００の動作手順は、データ処理方法に相当する。また、暗号化装置２００の動作を実現するプログラムは、データ処理プログラムに相当する。
また、復号装置３００の動作手順は、復号方法に相当する。また、復号装置３００の動作を実現するプログラムは、復号プログラムに相当する。
【００１６】
鍵生成装置１００は、セキュリティパラメータλを取得する。そして、鍵生成装置１００は、関数型暗号のＳｅｔｕｐアルゴリズムを実行し、マスター公開鍵ｐｋとマスター秘密鍵ｓｋを生成する。また、鍵生成装置１００は、マスター公開鍵ｐｋを公開する。
更に、鍵生成装置１００は、属性集合Γを取得する。そして、鍵生成装置１００は、関数型暗号のＫｅｙＧｅｎアルゴリズムを実行し、属性集合Γに対するユーザ秘密鍵ｓｋΓを生成する。また、鍵生成装置１００は、ユーザ秘密鍵ｓｋΓを秘密裡に復号装置３００へ送信する。また、鍵生成装置１００は、必要があれば変数識別子変換表Ｔを更新する。そして、鍵生成装置１００は、変数識別子変換表Ｔを公開する。
鍵生成装置１００は、通信路を介してマスター公開鍵ｐｋ、ユーザ秘密鍵ｓｋΓ及び変数識別子変換表Ｔを暗号化装置２００又は復号装置３００へ送信する。また、鍵生成装置１００のユーザが郵送などでマスター公開鍵ｐｋ、ユーザ秘密鍵ｓｋΓ及び変数識別子変換表Ｔを暗号化装置２００のユーザ又は復号装置３００のユーザへ送付してもよい。
【００１７】
暗号化装置２００は、平文ｍと、復号可能条件Ｐと、マスター公開鍵ｐｋと、変数識別子変換表Ｔとを取得する。そして、暗号化装置２００は、関数型暗号のＥｎｃアルゴリズムを実行し、暗号文Ｃと復号可能条件情報Ｑを生成する。そして、暗号化装置２００は暗号文Ｃと復号可能条件情報Ｑを復号装置３００へ送信する。
【００１８】
復号装置３００は、暗号文Ｃ、復号可能条件情報Ｑ、マスター公開鍵ｐｋ、ユーザ秘密鍵ｓｋΓ及び変数識別子変換表Ｔを取得する。そして、復号装置３００は、関数型暗号のＤｅｃアルゴリズムを実行し、平文ｍ又は識別情報⊥を出力する。
【００１９】
図２は、鍵生成装置１００の機能構成例を示す。
図１６は、鍵生成装置１００のハードウェア構成例を示す。
【００２０】
図２に示すように、鍵生成装置１００は、受信部１０１と、送信部１０２と、マスター鍵生成部１０３と、ユーザ秘密鍵生成部１０４と、変数識別子変換表生成部１０５とを備える。
また、図１６に示すように、鍵生成装置１００は、プロセッサ１５１、バス１５２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５４、通信ボード１５５、ディスプレイ１５６、キーボード１５７、マウス１５８、ドライブ１５９、磁気ディスク装置１６０を備える。
磁気ディスク装置１６０には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１６１、プログラム１６２、ファイル１６３が格納されている。
プログラム１６２は、図２に示す、受信部１０１、送信部１０２、マスター鍵生成部１０３、ユーザ秘密鍵生成部１０４及び変数識別子変換表生成部１０５の機能を実現するプログラムである。
プログラム１６２は、プロセッサ１５１により磁気ディスク装置１６０からＲＡＭ１５４にロードされ、プロセッサ１５１により実行される。
図２は、プロセッサ１５１が受信部１０１、送信部１０２、マスター鍵生成部１０３、ユーザ秘密鍵生成部１０４及び変数識別子変換表生成部１０５の機能を実現するプログラム１６２を実行している状態を模式的に示している。
他のハードウェア要素については後述する。
【００２１】
図２において、受信部１０１は、セキュリティパラメータλと属性集合Γを受信する。
【００２２】
マスター鍵生成部１０３は、パラメータλを用いてＳｅｔｕｐアルゴリズムを実行し、マスター公開鍵ｐｋとマスター秘密鍵ｓｋとを生成する。
【００２３】
ユーザ秘密鍵生成部１０４は、マスター公開鍵ｐｋとマスター秘密鍵ｓｋと属性集合Γとを用いてＫｅｙＧｅｎアルゴリズムを実行し、ユーザ秘密鍵ｓｋΓを生成する。
【００２４】
変数識別子変換表生成部１０５は、変数識別子変換表Ｔに属性集合Γを追加することで、変数識別子変換表Ｔを更新する。
【００２５】
送信部１０２は、マスター公開鍵ｐｋと変数識別子変換表Ｔを暗号化装置２００に送信する。また、送信部１０２は、マスター公開鍵ｐｋとユーザ秘密鍵ｓｋΓと変数識別子変換表Ｔを復号装置３００に送信する。
【００２６】
図３は、暗号化装置２００の機能構成例を示す。
図１７は、暗号化装置２００のハードウェア構成例を示す。
【００２７】
図３に示すように、暗号化装置２００は、受信部２０１と、送信部２０２と、暗号化部２０３と、アクセスストラクチャ生成部２０４と、復号可能条件生成部２０５とを備える。
また、図１７に示すように、暗号化装置２００は、プロセッサ２５１、バス２５２、ＲＯＭ２５３、ＲＡＭ２５４、通信ボード２５５、ディスプレイ２５６、キーボード２５７、マウス２５８、ドライブ２５９、磁気ディスク装置２６０を備える。
磁気ディスク装置２６０には、ＯＳ２６１、プログラム２６２、ファイル２６３が格納されている。
プログラム２６２は、図３に示す、受信部２０１と、送信部２０２と、暗号化部２０３と、アクセスストラクチャ生成部２０４と、復号可能条件生成部２０５の機能を実現するプログラムである。
プログラム２６２は、プロセッサ２５１により磁気ディスク装置２６０からＲＡＭ２５４にロードされ、プロセッサ２５１により実行される。
図３は、プロセッサ２５１が、受信部２０１と、送信部２０２と、暗号化部２０３と、アクセスストラクチャ生成部２０４と、復号可能条件生成部２０５の機能を実現するプログラム２６２を実行している状態を模式的に示している。
他のハードウェア要素については後述する。
【００２８】
受信部２０１は、マスター公開鍵ｐｋと変数識別子変換表Ｔを受信する。また、受信部２０１は、復号可能条件Ｐと平文ｍを受信する。
【００２９】
復号可能条件生成部２０５は、復号可能条件Ｐと変数識別子変換表Ｔとを用いて復号可能条件情報Ｑを生成する。
なお、復号可能条件生成部２０５により行われる処理は、復号可能条件生成処理に相当する。
【００３０】
アクセスストラクチャ生成部２０４は、復号可能条件情報Ｑと変数識別子変換表Ｔとを用いて、スパンプログラムのアクセスストラクチャＳを生成する。
なお、アクセスストラクチャ生成部２０４により行われる処理は、アクセスストラクチャ生成処理に相当する。
【００３１】
暗号化部２０３は、アクセスストラクチャＳと平文ｍとを用いてＥｎｃアルゴリズムを実行し、暗号文Ｃを生成する。
つまり、暗号化部２０３は、送信データである暗号文Ｃを生成する。暗号化部２０３は、送信データ生成部に相当する。また、暗号化部２０３により行われる処理は、送信データ生成処理に相当する。
【００３２】
送信部２０２は、暗号文Ｃと復号可能条件情報Ｑとを復号装置３００に送信する。
つまり、送信部２０２は、アクセスストラクチャＳに代えて復号可能条件情報Ｑを暗号文Ｃとともに復号装置３００に送信する。
なお、送信部２０２により行われる処理は、送信処理に相当する。
【００３３】
図４は、復号装置３００の機能構成例を示す。
図１８は、復号装置３００のハードウェア構成例を示す。
【００３４】
図４に示すように、復号装置３００は、受信部３０１と、送信部３０２と、復号部３０３と、アクセスストラクチャ生成部３０４とを備える。
また、図１８に示すように、復号装置３００は、プロセッサ３５１、バス３５２、ＲＯＭ３５３、ＲＡＭ３５４、通信ボード３５５、ディスプレイ３５６、キーボード３５７、マウス３５８、ドライブ３５９、磁気ディスク装置３６０を備える。
磁気ディスク装置３６０には、ＯＳ３６１、プログラム３６２、ファイル３６３が格納されている。
プログラム３６２は、図４に示す、受信部３０１と、送信部３０２と、復号部３０３と、アクセスストラクチャ生成部３０４の機能を実現するプログラムである。
プログラム３６２は、プロセッサ３５１により磁気ディスク装置３６０からＲＡＭ３５４にロードされ、プロセッサ３５１により実行される。
図４は、プロセッサ３５１が、受信部３０１と、送信部３０２と、復号部３０３と、アクセスストラクチャ生成部３０４の機能を実現するプログラム３６２を実行している状態を模式的に示している。
他のハードウェア要素については後述する。
【００３５】
受信部３０１は、マスター公開鍵ｐｋとユーザ秘密鍵ｓｋΓと変数識別子変換表Ｔを受信する。また、受信部３０１は、暗号文Ｃと復号可能条件情報Ｑを受信する。
なお、受信部３０１により行われる処理は、受信処理に相当する。
【００３６】
アクセスストラクチャ生成部３０４は、復号可能条件情報Ｑと変数識別子変換表ＴとからスパンプログラムのアクセスストラクチャＳを生成する。
【００３７】
復号部３０３は、アクセスストラクチャＳと、ユーザ秘密鍵ｓｋΓに含まれる属性集合Γとを用いて、復号可能条件が成立しているか否かを判定する。復号可能条件が成立していない場合は、復号部３０３は、識別情報⊥を送信部３０２に出力する。復号可能条件が成立している場合は、復号部３０３は、マスター公開鍵ｐｋと、ユーザ秘密鍵ｓｋΓと、アクセスストラクチャＳとを用いてＤｅｃアルゴリズムを実行して、暗号文Ｃを復号して、平文ｍを得る。
なお、復号部３０３は判定部に相当する。また、復号部３０３により行われる処理は、復号処理に相当する。
【００３８】
送信部３０２は、平文ｍ又は識別情報⊥を出力する。
【００３９】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る暗号処理システム１０の動作例を説明する。
【００４０】
図５は、鍵生成装置１００が実行するＳｅｔｕｐアルゴリズムの動作を示すフローチャートである。
【００４１】
ステップＳ１０１において、鍵生成装置１００の受信部１０１は、セキュリティパラメータλを受信する。
【００４２】
次に、ステップＳ１０２において、鍵生成装置１００のマスター鍵生成部１０３は、ステップＳ１０１において鍵生成装置１００の受信部１０１が受信したパラメータλを用いて、Ｓｅｔｕｐアルゴリズムを実行し、マスター公開鍵ｐｋとマスター秘密鍵ｓｋとを生成する。
【００４３】
次に、ステップＳ１０３において、鍵生成装置１００のマスター鍵生成部１０３は、ステップＳ１０２において生成したマスター公開鍵ｐｋとマスター秘密鍵ｓｋとを保管する。
例えば、マスター公開鍵ｐｋとマスター秘密鍵ｓｋは磁気ディスク装置１６０においてファイル１６３として保管される。
【００４４】
次に、ステップＳ１０４において、鍵生成装置１００の送信部１０２は、ステップＳ１０３において保管されているマスター公開鍵ｐｋを暗号化装置２００と復号装置３００に公開する。具体的には、送信部１０２は、マスター公開鍵ｐｋを暗号化装置２００と復号装置３００に送信する。
【００４５】
次に、ステップＳ１０５において、暗号化装置２００の受信部２０１は、ステップＳ１０４において鍵生成装置１００の送信部１０２が送信したマスター公開鍵ｐｋを受信する。
【００４６】
また、ステップＳ１０６において、復号装置３００の受信部３０１は、ステップＳ１０４において鍵生成装置１００の送信部１０２が送信したマスター公開鍵ｐｋを受信する。
【００４７】
図６は、鍵生成装置１００が実行するＫｅｙＧｅｎアルゴリズムの動作を示すフローチャートである。
【００４８】
ステップＳ２０１において、鍵生成装置１００の受信部１０１は、属性集合Γを受信する。
【００４９】
次に、ステップＳ２０２において、鍵生成装置１００のユーザ秘密鍵生成部１０４は、ステップＳ１０３において保管されたマスター公開鍵ｐｋと、マスター秘密鍵ｓｋと、ステップＳ２０１において鍵生成装置１００の受信部１０１が受信した属性集合Γとを用いて、ＫｅｙＧｅｎアルゴリズムを実行し、ユーザ秘密鍵ｓｋΓを生成する。
【００５０】
次に、ステップＳ２０３において、鍵生成装置１００の変数識別子変換表生成部１０５は、ステップＳ２０１において受信された属性集合Γを変数識別子変換表Ｔに追加することで、変数識別子変換表Ｔを更新する。既に変数識別子変換表Ｔに属性集合Γが含まれている場合は、変数識別子変換表生成部１０５は、属性集合Γを変数識別子変換表Ｔに追加しなくてよい。但し、変数識別子変換表Ｔの初期状態は空集合としてもよいし、使用する属性のリストを予め設定してもよい。
【００５１】
次に、ステップＳ２０４において、鍵生成装置１００の送信部１０２は、ステップＳ２０２において鍵生成装置１００のユーザ秘密鍵生成部１０４が生成したユーザ秘密鍵ｓｋΓを、秘密裡に復号装置３００の受信部３０１へ送信する。
【００５２】
次に、ステップＳ２０５において、鍵生成装置１００の送信部１０２は、ステップＳ２０３において鍵生成装置１００の変数識別子変換表生成部１０５が更新した変数識別子変換表Ｔを、暗号化装置２００の受信部２０１と復号装置３００の受信部３０１とに公開する。具体的には、送信部１０２は、変数識別子変換表Ｔを、暗号化装置２００の受信部２０１と復号装置３００の受信部３０１とに送信する。
【００５３】
次に、ステップＳ２０７において、暗号化装置２００の受信部２０１は、ステップＳ２０５において鍵生成装置１００の送信部１０２が送信した変数識別子変換表Ｔを受信する。
【００５４】
また、ステップＳ２０８において、復号装置３００の受信部３０１は、ステップＳ２０４において鍵生成装置１００の送信部１０２が送信したユーザ秘密鍵ｓｋΓを秘密裡に受信する。
【００５５】
更に、ステップＳ２０９において、復号装置３００の受信部３０１は、ステップＳ２０５において鍵生成装置１００の送信部１０２が送信した変数識別子変換表Ｔを受信する。
【００５６】
次に、本実施の形態に係る暗号化装置２００の動作例を説明する。
【００５７】
図７は、暗号化装置２００が実行するＥｎｃアルゴリズムの動作を示すフローチャートである。
【００５８】
ステップＳ３０１において、暗号化装置２００の受信部２０１は、復号可能条件Ｐと平文ｍを受信する。
【００５９】
次に、ステップＳ３０２において、暗号化装置２００の復号可能条件生成部２０５は、ステップＳ３０１において暗号化装置２００の受信部２０１が受信した復号可能条件Ｐと、ステップＳ２０７において暗号化装置２００の受信部２０１が受信した変数識別子変換表Ｔとを用いて、復号可能条件情報Ｑを生成する。
【００６０】
次に、ステップＳ３０３において、暗号化装置２００のアクセスストラクチャ生成部２０４は、ステップＳ３０２において暗号化装置２００の復号可能条件生成部２０５が生成した復号可能条件情報Ｑと、ステップＳ２０７において暗号化装置２００の受信部２０１が受信した変数識別子変換表Ｔとを用いて、アクセスストラクチャＳを生成する。
ステップＳ３０３で生成されるアクセスストラクチャＳは、スパンプログラムである。
【００６１】
次に、ステップＳ３０４において、暗号化装置２００の暗号化部２０３は、ステップＳ３０３において暗号化装置２００のアクセスストラクチャ生成部２０４が生成したアクセスストラクチャＳと、ステップＳ３０１で暗号化装置２００の受信部２０１が受信した平文ｍとを用いて、Ｅｎｃアルゴリズムを実行し、暗号文Ｃを生成する。
【００６２】
次に、ステップＳ３０５において、暗号化装置２００の送信部２０２は、ステップＳ３０４において暗号化装置２００の暗号化部２０３が生成した暗号文Ｃと、ステップＳ３０２において暗号化装置２００の復号可能条件生成部２０５が生成した復号可能条件情報Ｑを、復号装置３００の受信部３０１に送信する。
【００６３】
次に、ステップＳ３０６において、復号装置３００の受信部３０１は、ステップＳ３０５において暗号化装置２００の送信部２０２が送信した暗号文Ｃと復号可能条件情報Ｑを受信する。
【００６４】
次に、本実施の形態に係る復号装置３００の動作例を説明する。
【００６５】
図８は、復号装置３００が実行するＤｅｃアルゴリズムの動作を示すフローチャートである。
【００６６】
ステップＳ４０１において、復号装置３００の受信部３０１は、ステップＳ３０６において暗号化装置２００の送信部２０２が送信した暗号文Ｃと復号可能条件情報Ｑを受信する。
【００６７】
次に、ステップＳ４０２において、復号装置３００のアクセスストラクチャ生成部３０４は、ステップＳ４０１において復号装置３００の受信部３０１が受信した復号可能条件情報Ｑと、ステップＳ２０９において復号装置３００の受信部３０１が受信した変数識別子変換表Ｔとを用いて、アクセスストラクチャＳを生成する。
ステップＳ４０２のアクセスストラクチャＳの生成手順は、ステップＳ３０３のアクセスストラクチャＳの生成手順と同じである。
【００６８】
次に、ステップＳ４０３において、復号装置３００の復号部３０３は、ステップＳ４０２において復号装置３００のアクセスストラクチャ生成部３０４が生成したアクセスストラクチャＳと、ステップＳ２０８において復号装置３００の受信部３０１が受信したユーザ秘密鍵ｓｋΓに含まれる属性集合Γとを用いて、アクセスストラクチャＳが属性集合Γを受理するか否かを判定する。つまり、復号部３０３は、復号可能条件が成立しているか否かを判定する。
判定結果が拒絶だった場合、つまり、復号可能条件が成立していない場合は、復号部３０３は、ステップＳ４０６において、識別情報⊥を復号装置３００の送信部３０２へ出力する。そして、送信部３０２が識別情報⊥を出力する。
一方、判定結果が受理だった場合、つまり、復号可能条件が成立している場合は、処理がステップＳ４０４に進む。
【００６９】
ステップＳ４０４では、復号装置３００の復号部３０３は、ステップＳ１０６において復号装置３００の受信部３０１が受信したマスター公開鍵ｐｋと、ステップＳ２０８において復号装置３００の受信部３０１が受信したユーザ秘密鍵ｓｋΓと、ステップＳ４０２において復号装置３００のアクセスストラクチャ生成部３０４が生成したアクセスストラクチャＳと、ステップＳ４０１において復号装置３００の受信部３０１が受信した暗号文Ｃとを用いてＤｅｃアルゴリズムを実行し、暗号文Ｃを復号して、平文ｍを復元する。
【００７０】
次に、ステップＳ４０５において、復号装置３００の送信部３０２は、ステップＳ４０４において復号装置３００の復号部３０３が復号により得られた平文ｍを送信部３０２に出力する。そして、送信部３０２が平文ｍを出力する。
【００７１】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、スパンプログラムのアクセスストラクチャと比較してデータサイズが格段に小さい復号可能条件情報を、スパンプログラムのアクセスストラクチャに代えて復号装置に送信する。このため、本実施の形態によれば、通信帯域及びストレージを圧迫することなくＣｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ関数型暗号を実現することができる。
【００７２】
実施の形態２．
本実施の形態では、Ｋｅｙ−Ｐｏｌｉｃｙ関数型暗号においてスパンプログラムの代わりに復号可能条件情報を用いる構成を説明する。
本実施の形態では、主に実施の形態１との差異を説明する。
以下で説明していない事項は、実施の形態１と同様である。
【００７３】
＊＊＊構成の説明＊＊＊
図９は、本実施の形態に係る暗号処理システム２０の構成例を示す。
実施の形態１と同様に、本実施の形態に係る暗号処理システム２０も、鍵生成装置１００、暗号化装置２００及び復号装置３００を備える。
但し、本実施の形態では、鍵生成装置１００がデータ処理装置に相当する。また、鍵生成装置１００の動作手順は、データ処理方法に相当する。また、鍵生成装置１００の動作を実現するプログラムは、データ処理プログラムに相当する。
【００７４】
本実施の形態では、鍵生成装置１００は、セキュリティパラメータλを取得する。そして、鍵生成装置１００は、関数型暗号のＳｅｔｕｐアルゴリズムを実行し、マスター公開鍵ｐｋとマスター秘密鍵ｓｋを生成する。そして、鍵生成装置１００は、マスター公開鍵ｐｋを公開する。また、鍵生成装置１００は、復号可能条件Ｐを取得する。そして、鍵生成装置１００は、関数型暗号のＫｅｙＧｅｎアルゴリズムを実行し、復号可能条件Ｐに対するユーザ秘密鍵Ｋを生成し、秘密裡にユーザ秘密鍵Ｋを復号装置３００へ送信する。また、鍵生成装置１００は、必要があれば変数識別子変換表Ｔを更新する。そして、鍵生成装置１００は、変数識別子変換表Ｔを公開する。
鍵生成装置１００は、通信路を介してマスター公開鍵ｐｋ、ユーザ秘密鍵Ｋ及び変数識別子変換表Ｔを暗号化装置２００又は復号装置３００に送信する。また、鍵生成装置１００のユーザが郵送などでマスター公開鍵ｐｋ、ユーザ秘密鍵Ｋ及び変数識別子変換表Ｔを暗号化装置２００のユーザ又は復号装置３００のユーザへ送付してもよい。
【００７５】
暗号化装置２００は、平文ｍと、属性集合Γと、マスター公開鍵ｐｋとを取得する。そして、暗号化装置２００は、関数型暗号のＥｎｃアルゴリズムを実行し、暗号文ＣΓを生成する。そして、暗号化装置２００は暗号文ＣΓを復号装置３００へ送信する。
【００７６】
復号装置３００は、暗号文ＣΓ、復号可能条件情報Ｑ、マスター公開鍵ｐｋ、ユーザ秘密鍵Ｋ及び変数識別子変換表Ｔを取得する。そして、復号装置３００は、関数型暗号のＤｅｃアルゴリズムを実行し、平文ｍまたは識別情報⊥を出力する。
【００７７】
図１０は、本実施の形態に係る鍵生成装置１００の機能構成例を示す。
本実施の形態に係る鍵生成装置１００のハードウェア構成例は図１６に示す通りである。但し、本実施の形態では、磁気ディスク装置１６０には、図１０に示す受信部１０１、送信部１０２、マスター鍵生成部１０３、変数識別子変換表生成部１０５、アクセスストラクチャ生成部１０６及び復号可能条件生成部１０７の機能を実現するプログラム１６２が格納されている。
このため、本実施の形態に係る鍵生成装置１００では、図１６のプロセッサ１５１のブロック内にアクセスストラクチャ生成部１０６及び復号可能条件生成部１０７のブロックが追加される。
【００７８】
本実施の形態では、受信部１０１は、パラメータλと復号可能条件Ｐを受信する。
【００７９】
マスター鍵生成部１０３は、パラメータλを用いてＳｅｔｕｐアルゴリズムを実行し、マスター公開鍵ｐｋとマスター秘密鍵ｓｋとを生成する。
【００８０】
変数識別子変換表生成部１０５は、変数識別子変換表Ｔに属性集合Γを追加することで、変数識別子変換表Ｔを更新する。
【００８１】
復号可能条件生成部１０７は、復号可能条件Ｐと変数識別子変換表Ｔとを用いて復号可能条件情報Ｑを生成する。
なお、復号可能条件生成部１０７により行われる処理は、復号可能条件生成処理に相当する。
【００８２】
アクセスストラクチャ生成部１０６は、復号可能条件情報Ｑと変数識別子変換表Ｔとを用いて、スパンプログラムのアクセスストラクチャＳを生成する。
なお、アクセスストラクチャ生成部１０６により行われる処理は、アクセスストラクチャ生成処理に相当する。
【００８３】
ユーザ秘密鍵生成部１０４は、マスター公開鍵ｐｋと、マスター秘密鍵ｓｋと、アクセスストラクチャＳとを用いてＫｅｙＧｅｎアルゴリズムを実行し、ユーザ秘密鍵Ｋを生成する。
つまり、ユーザ秘密鍵生成部１０４は、送信データであるユーザ秘密鍵Ｋを生成する。
なお、ユーザ秘密鍵生成部１０４は、送信データ生成部に相当する。また、ユーザ秘密鍵生成部１０４により行われる処理は、送信データ生成処理に相当する。
【００８４】
送信部１０２は、マスター公開鍵ｐｋを暗号化装置２００に送信する。
また、送信部１０２は、マスター公開鍵ｐｋと変数識別子変換表Ｔとを復号装置３００に送信する。
更に、送信部１０２は、ユーザ秘密鍵Ｋと復号可能条件情報Ｑとを、秘密裡に復号装置３００に送信する。
つまり、送信部１０２は、アクセスストラクチャＳに代えて復号可能条件情報Ｑをユーザ秘密鍵Ｋとともに復号装置３００に送信する。
なお、送信部１０２により行われる処理は、送信処理に相当する。
【００８５】
図１１は、本実施の形態に係る暗号化装置２００の機能構成例を示す。
本実施の形態に係る暗号化装置２００のハードウェア構成例は図１７に示す通りである。但し、本実施の形態では、磁気ディスク装置２６０には、図１１に示す受信部２０１、送信部２０２及び暗号化部２０３の機能を実現するプログラム２６２が格納されている。
このため、本実施の形態に係る暗号化装置２００では、図１７のプロセッサ２５１のブロックにアクセスストラクチャ生成部２０４及び復号可能条件生成部２０５のブロックが含まれない。
【００８６】
受信部２０１は、属性集合Γと平文ｍを受信する。
【００８７】
暗号化部２０３は、属性集合Γと平文ｍとを用いてＥｎｃアルゴリズムを実行し、暗号文ＣΓを生成する。
【００８８】
送信部２０２は、暗号文ＣΓを復号装置３００に送信する。
【００８９】
図１２は、本実施の形態に係る復号装置３００の機能構成例を示す。
本実施の形態に係る復号装置３００のハードウェア構成例は図１８に示す通りである。
【００９０】
受信部３０１は、マスター公開鍵ｐｋとユーザ秘密鍵Ｋと復号可能条件情報Ｑと変数識別子変換表Ｔを受信する。また、受信部３０１は、暗号文ＣΓを受信する。
【００９１】
アクセスストラクチャ生成部３０４は、復号可能条件情報Ｑと変数識別子変換表ＴとからアクセスストラクチャＳを生成する。
【００９２】
復号部３０３は、アクセスストラクチャＳと、暗号文ＣΓに含まれる属性集合Γとを用いて、復号可能条件が成立しているか否かを判定する。復号可能条件が成立していない場合は、復号部３０３は、識別情報⊥を送信部３０２に出力する。復号可能条件が成立している場合は、復号部３０３は、マスター公開鍵ｐｋと、ユーザ秘密鍵Ｋと、アクセスストラクチャＳとを用いてＤｅｃアルゴリズムを実行して、暗号文ＣΓを復号して、平文ｍを得る。
【００９３】
送信部３０２は、平文ｍ又は識別情報⊥を出力する。
【００９４】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る暗号処理システム２０の動作例を説明する。
【００９５】
鍵生成装置１００は、実施の形態１と同様に、Ｓｅｔｕｐアルゴリズムを実行する。
本実施の形態でも、鍵生成装置１００によるＳｅｔｕｐアルゴリズムは、図３に示す通りであるため、説明を省略する。
【００９６】
図１３は、鍵生成装置１００が実行するＫｅｙＧｅｎアルゴリズムの動作を示すフローチャートである。
【００９７】
ステップＳ１２０１において、鍵生成装置１００の受信部１０１は、復号可能条件Ｐを受信する。
【００９８】
次に、ステップＳ１２０２において、鍵生成装置１００の変数識別子変換表生成部１０５は、ステップＳ１２０１において受信した復号可能条件Ｐを変数識別子変換表Ｔに追加することで、変数識別子変換表Ｔを更新する。既に変数識別子変換表Ｔに復号可能条件Ｐが含まれている場合は追加しなくてよい。但し、変数識別子変換表Ｔの初期状態は空集合としてもよいし、使用する属性のリストを予め設定してもよい。
【００９９】
次に、ステップＳ１２０３において、鍵生成装置１００の復号可能条件生成部１０７は、ステップＳ１２０１において鍵生成装置１００の受信部１０１が受信した復号可能条件Ｐと、ステップＳ１２０２において鍵生成装置１００の変数識別子変換表生成部１０５が生成した変数識別子変換表Ｔとを用いて、復号可能条件情報Ｑを生成する。
【０１００】
次に、ステップＳ１２０４において、鍵生成装置１００のアクセスストラクチャ生成部１０６は、ステップＳ１２０３において鍵生成装置１００の復号可能条件生成部１０７が生成した復号可能条件情報Ｑと、ステップＳ１２０１において鍵生成装置１００の受信部１０１が受信した変数識別子変換表Ｔとを用いて、スパンプログラムのアクセスストラクチャＳを生成する。
【０１０１】
次に、ステップＳ１２０５において、鍵生成装置１００のユーザ秘密鍵生成部１０４は、ステップＳ１０３において保管されたマスター公開鍵ｐｋと、マスター秘密鍵ｓｋと、ステップＳ１２０４において鍵生成装置１００のアクセスストラクチャ生成部１０６が生成したアクセスストラクチャＳとを用いてＫｅｙＧｅｎアルゴリズムを実行し、ユーザ秘密鍵Ｋを生成する。
【０１０２】
次に、ステップＳ１２０６において、鍵生成装置１００の送信部１０２は、ステップＳ１２０５において鍵生成装置１００のユーザ秘密鍵生成部１０４が生成したユーザ秘密鍵ＫとステップＳ１２０３において鍵生成装置１００の復号可能条件生成部１０７が生成した復号可能条件情報Ｑとを、秘密裡に復号装置３００の受信部３０１へ送信する。
【０１０３】
次に、ステップＳ１２０７において、鍵生成装置１００の送信部１０２は、ステップＳ１２０２において鍵生成装置１００の変数識別子変換表生成部１０５が更新した変数識別子変換表Ｔを、暗号化装置２００の受信部２０１と復号装置３００の受信部３０１とに公開する。具体的には、送信部１０２は、変数識別子変換表Ｔを、暗号化装置２００の受信部２０１と復号装置３００の受信部３０１とに送信する。
【０１０４】
次に、ステップＳ１２０８において、暗号化装置２００の受信部２０１は、ステップＳ１２０７において鍵生成装置１００の送信部１０２が送信した変数識別子変換表Ｔを受信する。
【０１０５】
また、ステップＳ１２０９において、復号装置３００の受信部３０１は、ステップＳ１２０６において鍵生成装置１００の送信部１０２が送信したユーザ秘密鍵Ｋと復号可能条件情報Ｑとを秘密裡に受信する。
【０１０６】
更に、ステップＳ１２１０において、復号装置３００の受信部３０１は、ステップＳ１２０７において鍵生成装置１００の送信部１０２が送信した変数識別子変換表Ｔを受信する。
【０１０７】
図１４は、暗号化装置２００が実行するＥｎｃアルゴリズムの動作を示すフローチャートである。
【０１０８】
ステップＳ１３０１において、暗号化装置２００の受信部２０１は、属性集合Γと平文ｍを受信する。
【０１０９】
次に、ステップＳ１３０２において、暗号化装置２００の暗号化部２０３は、ステップＳ１３０１で暗号化装置２００の受信部２０１が受信した属性集合Γと平文ｍとを用いてＥｎｃアルゴリズムを実行し、暗号文ＣΓを生成する。
【０１１０】
次に、ステップＳ１３０３において、暗号化装置２００の送信部２０２は、ステップＳ１３０２において暗号化装置２００の暗号化部２０３が生成した暗号文ＣΓを、復号装置３００の受信部３０１に送信する。
【０１１１】
次に、ステップＳ１３０４において、復号装置３００の受信部３０１は、ステップＳ１３０３において暗号化装置２００の送信部２０２が送信した暗号文ＣΓを受信する。
【０１１２】
図１５は、復号装置３００が実行するＤｅｃアルゴリズムの動作を示すフローチャートである。
【０１１３】
ステップＳ１４０１において、復号装置３００の受信部３０１は、ステップＳ１３０４において暗号化装置２００の送信部２０２が送信した暗号文ＣΓを受信する。
【０１１４】
ステップＳ１４０２において、復号装置３００のアクセスストラクチャ生成部３０４は、ステップＳ１２０９において復号装置３００の受信部３０１が受信した復号可能条件情報Ｑと、ステップＳ１２１０において復号装置３００の受信部３０１が受信した変数識別子変換表ＴとからアクセスストラクチャＳを生成する。
ステップＳ１４０２のアクセスストラクチャＳの生成手順は、ステップＳ１２０４のアクセスストラクチャＳの生成手順と同じである。
【０１１５】
ステップＳ１４０３において、復号装置３００の復号部３０３は、ステップＳ１４０２において復号装置３００のアクセスストラクチャ生成部３０４が生成したアクセスストラクチャＳと、ステップＳ１４０１において復号装置３００の受信部３０１が受信した暗号文ＣΓに含まれる属性集合Γとを用いて、アクセスストラクチャＳが属性集合Γを受理するか否かを判定する。つまり、復号部３０３は、復号可能条件が成立しているか否かを判定する。
判定結果が拒絶だった場合、つまり、復号可能条件が成立していない場合は、復号部３０３は、ステップＳ１４０６において、識別情報⊥を復号装置３００の送信部３０２へ出力する。そして、送信部３０２が識別情報⊥を出力する。
一方、判定結果が受理だった場合、つまり、復号可能条件が成立している場合は、処理がステップＳ１４０４に進む。
【０１１６】
ステップＳ１４０４では、復号装置３００の復号部３０３は、ステップＳ１０６において復号装置３００の受信部３０１が受信したマスター公開鍵ｐｋと、ステップＳ１２０９において復号装置３００の受信部３０１が受信したユーザ秘密鍵Ｋと、ステップＳ１４０２において復号装置３００のアクセスストラクチャ生成部３０４が生成したアクセスストラクチャＳと、ステップＳ１４０１において復号装置３００の受信部３０１が受信した暗号文ＣΓとを用いてＤｅｃアルゴリズムを実行し、暗号文ＣΓを復号して、平文ｍを復元する。
【０１１７】
次に、ステップＳ１４０５において、復号装置３００の送信部３０２は、ステップＳ１４０４において復号装置３００の復号部３０３が復号により得られた平文ｍを送信部３０２に出力する。そして、送信部３０２が平文ｍを出力する。
【０１１８】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、通信帯域及びストレージを圧迫することなくＫｅｙ−Ｐｏｌｉｃｙ関数型暗号を実現することができる。
【０１１９】
以上、本発明の実施の形態について説明したが、これら２つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら２つの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これら２つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【０１２０】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、鍵生成装置１００、暗号化装置２００及び復号装置３００のハードウェア構成の補足説明を行う。
プロセッサ１５１、プロセッサ２５１及びプロセッサ３５１は、それぞれ、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ１５１、プロセッサ２５１及びプロセッサ３５１は、それぞれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
プロセッサ１５１は、バス１５２を介してＲＯＭ１５３、ＲＡＭ１５４、通信ボード１５５、ディスプレイ１５６、キーボード１５７、マウス１５８、ドライブ１５９及び磁気ディスク装置１６０を制御する。
プロセッサ２５１は、バス２５２を介してＲＯＭ２５３、ＲＡＭ２５４、通信ボード２５５、ディスプレイ２５６、キーボード２５７、マウス２５８、ドライブ２５９及び磁気ディスク装置２６０を制御する。
プロセッサ３５１は、バス３５２を介してＲＯＭ３５３、ＲＡＭ３５４、通信ボード３５５、ディスプレイ３５６、キーボード３５７、マウス３５８、ドライブ３５９及び磁気ディスク装置３６０を制御する。
ドライブ１５９、ドライブ２５９及びドライブ３５９は、それぞれ、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤなどの記憶媒体を読み書きする装置である。
ＲＯＭ１５３、ＲＡＭ１５４、磁気ディスク装置１６０、ＲＯＭ２５３、ＲＡＭ２５４、磁気ディスク装置２６０、ＲＯＭ３５３、ＲＡＭ３５４及び磁気ディスク装置３６０は記憶装置の一例である。キーボード１５７、マウス１５８、ドライブ１５９、キーボード２５７、マウス２５８、ドライブ２５９、キーボード３５７、マウス３５８及びドライブ３５９は入力装置の一例である。通信ボード１５５、ディスプレイ１５６、通信ボード２５５、ディスプレイ２５６、通信ボード３５５及びディスプレイ３５６は出力装置の一例である。
通信ボード１５５、通信ボード２５５及び通信ボード３５５は、それぞれ、有線または無線で、ＬＡＮ、インターネット、電話回線などの通信網に接続している。
【０１２１】
プロセッサ１５１はＯＳ１６１の少なくとも一部を実行しながら、プログラム１６２を実行する。
プロセッサ１５１がＯＳ１６１を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、プログラム１６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、ファイル１６３として磁気ディスク装置１６０で記憶される。また、プログラム１６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかは、ＲＯＭ１５３、プロセッサ１５１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶されてもよい。
また、プログラム１６２は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。そして、プログラム１６２が格納された可搬記録媒体を商業的に流通させてもよい。
【０１２２】
プロセッサ２５１はＯＳ２６１の少なくとも一部を実行しながら、プログラム２６２を実行する。
プロセッサ２５１がＯＳ２６１を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、プログラム２６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、ファイル２６３として磁気ディスク装置２６０で記憶される。また、プログラム２６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかは、ＲＯＭ２５３、プロセッサ２５１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶されてもよい。
また、プログラム２６２は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。そして、プログラム２６２が格納された可搬記録媒体を商業的に流通させてもよい。
【０１２３】
プロセッサ３５１はＯＳ３６１の少なくとも一部を実行しながら、プログラム３６２を実行する。
プロセッサ３５１がＯＳ３６１を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、プログラム３６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、ファイル３６３として磁気ディスク装置３６０で記憶される。また、プログラム３６２の実行結果を示す情報、データ、信号値及び変数値の少なくともいずれかは、ＲＯＭ３５３、プロセッサ３５１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶されてもよい。
また、プログラム３６２は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。そして、プログラム３６２が格納された可搬記録媒体を商業的に流通させてもよい。
【０１２４】
また、受信部１０１、送信部１０２、マスター鍵生成部１０３、ユーザ秘密鍵生成部１０４、変数識別子変換表生成部１０５、アクセスストラクチャ生成部１０６、復号可能条件生成部１０７、受信部２０１、送信部２０２、暗号化部２０３、アクセスストラクチャ生成部２０４、復号可能条件生成部２０５、受信部３０１、送信部３０２、復号部３０３及びアクセスストラクチャ生成部３０４の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、鍵生成装置１００、暗号化装置２００及び復号装置３００は、それぞれ、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【０１２５】
１０  暗号処理システム、２０  暗号処理システム、１００  鍵生成装置、１０１  受信部、１０２  送信部、１０３  マスター鍵生成部、１０４  ユーザ秘密鍵生成部、１０５  変数識別子変換表生成部、１０６  アクセスストラクチャ生成部、１０７  復号可能条件生成部、１５１  プロセッサ、１５２  バス、１５３  ＲＯＭ、１５４  ＲＡＭ、１５５  通信ボード、１５６  ディスプレイ、１５７  キーボード、１５８  マウス、１５９  ドライブ、１６０  磁気ディスク装置、１６１  ＯＳ、１６２  プログラム、１６３  ファイル、２００  暗号化装置、２０１  受信部、２０２  送信部、２０３  暗号化部、２０４  アクセスストラクチャ生成部、２０５  復号可能条件生成部、２５１  プロセッサ、２５２  バス、２５３  ＲＯＭ、２５４  ＲＡＭ、２５５  通信ボード、２５６  ディスプレイ、２５７  キーボード、２５８  マウス、２５９  ドライブ、２６０  磁気ディスク装置、２６１  ＯＳ、２６２  プログラム、２６３  ファイル、３００  復号装置、３０１  受信部、３０２  送信部、３０３  復号部、３０４  アクセスストラクチャ生成部、３５１  プロセッサ、３５２  バス、３５３  ＲＯＭ、３５４  ＲＡＭ、３５５  通信ボード、３５６  ディスプレイ、３５７  キーボード、３５８  マウス、３５９  ドライブ、３６０  磁気ディスク装置、３６１  ＯＳ、３６２  プログラム、３６３  ファイル。
【図１】
0006980158.tif 000002
【図２】
0006980158.tif 000003
【図３】
0006980158.tif 000004
【図４】
0006980158.tif 000005
【図５】
0006980158.tif 000006
【図６】
0006980158.tif 000007
【図７】
0006980158.tif 000008
【図８】
0006980158.tif 000009
【図９】
0006980158.tif 000010
【図１０】
0006980158.tif 000011
【図１１】
0006980158.tif 000012
【図１２】
0006980158.tif 000013
【図１３】
0006980158.tif 000014
【図１４】
0006980158.tif 000015
【図１５】
0006980158.tif 000016
【図１６】
0006980158.tif 000017
【図１７】
0006980158.tif 000018
【図１８】
0006980158.tif 000019