"暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理装置であり、属性情報が設定された暗号化データを記憶装置から取得するデータ取得部と、前記データ取得部が取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定部と、秘密鍵が失効しているユーザが含まれると前記失効判定部に判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定部と、前記鍵情報設定部が鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信部とを備えることを特徴とする暗号化データ管理装置。前記データ取得部は、前記鍵情報として乱数値が設定された暗号化データを取得し、前記鍵情報設定部は、前記データ取得部が取得した暗号化データに設定された鍵情報を前記異なる値に設定し直すことを特徴とする請求項1に記載の暗号化データ管理装置。前記暗号化データ管理装置は、さらに、失効した秘密鍵の世代番号を管理する失効情報管理部を備え、前記鍵情報設定部は、秘密鍵が失効しているユーザが含まれないと判定された場合、前記世代番号の初期値を前記鍵情報として設定し、秘密鍵が失効しているユーザが含まれると判定された場合、前記失効情報管理部が管理する世代番号とは異なる値を前記鍵情報として設定することを特徴とする請求項1に記載の暗号化データ管理装置。前記データ取得部は、所定の基底Bにおける一部の基底ベクトルである基底ベクトルAの係数に前記属性情報が設定された暗号化ベクトルを前記暗号化データとして取得し、前記鍵情報設定部は、前記基底Bにおける前記基底ベクトルAとは異なる基底ベクトルである基底ベクトルKの係数に前記異なる値を設定することを特徴とする請求項1に記載の暗号化データ管理装置。前記データ取得部は、前記基底ベクトルKの係数に乱数値が設定された前記暗号化ベクトルと、前記乱数値が暗号化された暗号化乱数値とを含む暗号化データを取得し、前記鍵情報設定部は、前記暗号化乱数値を復号して前記乱数値を得て、前記基底ベクトルKの係数に前記乱数値を設定したベクトルを前記暗号化ベクトルから減算し、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記暗号化ベクトルに加算することを特徴とする請求項4に記載の暗号化データ管理装置。前記データ取得部は、前記基底ベクトルKの係数に0が設定された前記暗号化ベクトルを前記暗号化データとして取得し、前記鍵情報設定部は、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記暗号化ベクトルに加算することを特徴とする請求項4に記載の暗号化データ管理装置。前記データ取得部は、t=1,...,nnは2以上の整数の各tについての基底B[t]の一部の基底である属性基底の基底ベクトルの係数に前記属性情報が設定された属性ベクトルと、前記基底B[t]における前記属性基底とは異なる基底である鍵情報基底の鍵情報ベクトルとを含む暗号化ベクトルを前記暗号化データとして取得し、前記鍵情報設定部は、前記鍵情報基底の基底ベクトルの係数に前記異なる値を設定したベクトルに前記鍵情報ベクトルをすることを特徴とする請求項1に記載の暗号化データ管理装置。前記データ取得部は、前記鍵情報基底の基底ベクトルのうちの所定の基底ベクトルKの係数に乱数値が設定されたベクトルを、前記鍵情報ベクトルとして含む前記暗号化ベクトルと、前記乱数値が暗号化された暗号化乱数値とを含む暗号化データを取得し、前記鍵情報設定部は、前記暗号化乱数値を復号して前記乱数値を得て、前記基底ベクトルKの係数に前記乱数値を設定したベクトルを前記鍵情報ベクトルから減算し、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記鍵情報ベクトルに加算することを特徴とする請求項7に記載の暗号化データ管理装置。前記データ取得部は、前記鍵情報基底の基底ベクトルのうちの所定の前記基底ベクトルKの係数に0が設定された前記暗号化ベクトルを前記暗号化データとして取得し、前記鍵情報設定部は、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記鍵情報ベクトルに加算することを特徴とする請求項7に記載の暗号化データ管理装置。暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理方法であり、通信装置が、属性情報が設定された暗号化データを記憶装置から取得するデータ取得ステップと、処理装置が、前記データ取得ステップで取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定ステップと、処理装置が、秘密鍵が失効しているユーザが含まれると前記失効判定ステップで判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定ステップと、通信装置が、前記鍵情報設定ステップで鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信ステップとを備えることを特徴とする暗号化データ管理方法。暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理プログラムであり、属性情報が設定された暗号化データを記憶装置から取得するデータ取得処理と、前記データ取得処理で取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定処理と、秘密鍵が失効しているユーザが含まれると前記失効判定処理で判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定処理と、前記鍵情報設定処理で鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信処理とをコンピュータに実行させることを特徴とする暗号化データ管理プログラム。関数型暗号方式は、従来と大きく異なる暗号方式であるため、従来の暗号方式に適用された秘密鍵の失効方式を適用することができない。また、関数型暗号方式は、従来の暗号方式と同様に、アルゴリズム自体では失効を考慮していない。そのため、関数型暗号方式は、一般のユーザが利用するシステムに適用した場合に発生する可能性の高い秘密鍵の紛失に対応できない。特許文献1に記載された失効方式では、秘密鍵が失効した場合に新しく鍵ペアを再発行する。そのため、この失効方式を関数型暗号方式に適用すると失効した秘密鍵で復号できるように暗号化した全てのデータを再暗号化しなければならない。したがって、過去に暗号化した多くデータを再暗号化することが必要となる恐れがあり、膨大なコストがかかってしまう恐れがある。特許文献2に記載された失効方式を関数型暗号方式に適用した場合も同様に、失効した秘密鍵で復号できるように暗号化したデータを再暗号化しなければならない。この発明は、関数型暗号方式においても利用可能な秘密鍵の失効方式を実現することを主な目的とする。この発明に係る暗号化データ管理装置は、暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理装置であり、属性情報が設定された暗号化データを記憶装置から取得するデータ取得部と、前記データ取得部が取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定部と、秘密鍵が失効しているユーザが含まれると前記失効判定部に判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定部と、前記鍵情報設定部が鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信部とを備えることを特徴とする。この発明に係る暗号化データ管理装置は、暗号化データを復号可能なユーザに秘密鍵が失効しているユーザが含まれるか否かによって、異なる値を鍵情報として設定した上で、ユーザへ送信する。これにより、失効した秘密鍵で暗号化データが復号されることを防止できる。実施の形態1.実施の形態1では、非特許文献1に記載された関数型暗号方式において、秘密鍵の失効方式を実現する方法を説明する。まず、非特許文献1に記載された関数型暗号方式について、この実施の形態の説明に必要な部分のみに簡略化して説明する。非特許文献1に記載された関数型暗号方式には、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムがある。Setupアルゴリズムは、公開パラメータpkとマスター秘密鍵skとを生成するアルゴリズムである。Setupアルゴリズムでは、双対ペアリングベクトル空間のパラメータparamと、ペアリング演算で関連付けられた双対正規直交基底である基底B及び基底Bとが生成される。そして、パラメータparamと基底Bとが公開パラメータpkとされ、基底Bがマスター秘密鍵skとされる。なお、基底Bは、基底ベクトルb1,b2,...,bn2を有し、基底Bは、基底ベクトルb1,b2,...,bn2を有する。つまり、基底B,Bは、それぞれのn2個nは1以上の整数の基底ベクトルを有する。KeyGenアルゴリズムは、ユーザ秘密鍵kを生成するアルゴリズムである。KeyGenアルゴリズムでは、式1に示すように、マスター秘密鍵skに含まれる基底Bを用いて、ユーザ秘密鍵kが生成される。<式1>k:=σv1b1...vnbnbn1ここで、σは、乱数値である。v1,...,vnは、ユーザ秘密鍵kが与えられるユーザの属性情報等である。Encアルゴリズムは、暗号化データcを生成するアルゴリズムである。Encアルゴリズムでは、式2に示すように、公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c1が生成される。<式2>c1:=ωx1b1...xnbnζbn1φbn2ここで、ω,ζ,φは、乱数値である。x1,...,xnは、暗号化データcを復号可能なユーザの属性情報等である。また、Encアルゴリズムでは、式3に示すように、公開パラメータpkに含まれるパラメータparamを用いて、暗号化データcの要素c2が生成される。<式3>c2:=eg,gζmここで、gは、パラメータparamに含まれる情報であり、双対ペアリングベクトル空間を構成する群Gの要素である。mは、メッセージである。eg,gは、要素gと要素gとについてのペアリング演算である。Decアルゴリズムは、暗号化データcをユーザ秘密鍵kで復号するアルゴリズムである。Decアルゴリズムでは、式4に示す計算が実行され、暗号化データcがユーザ秘密鍵kで復号されて、m’が抽出される。<式4>m’:=c2/ec1,kここで、ec1,kは、要素c1とユーザ秘密鍵kとについてのペアリング演算である。Decアルゴリズムでは、ユーザ秘密鍵kにおける基底ベクトルb1,...,bnに設定された属性情報等v1,...,vnと、要素c1における基底ベクトルb1,...,bnに設定された属性情報等x1,...,xnとが対応する場合、抽出されたm’=mとなる。属性情報等v1,...,vnと属性情報等x1,...,xnとが対応するとは、Σi=1nvixi=0となることである。ペアリング演算esg,tg=eg,gstである。そのため、ec1,k=eg,gYとなる。ここで、Y=ωσx1v1...xnvnζである。したがって、Σi=1nvixi=0であれば、Y=ζであり、ec1,k=eg,gζである。式3に示すように、c2:=eg,gζmであるから、式4の計算を実行すれば、Σi=1nvixi=0の場合には、m’=mとなる。以下の説明では、説明を簡単にするため、n=4として説明する。図1は、実施の形態1に係る暗号処理システム10の構成図である。暗号処理システム10は、非特許文献1,2等に記載された関数型暗号方式に基づく暗号処理を実現する。暗号処理システム10は、複数のユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400を備える。各ユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400は、それぞれ、インターネット等のネットワーク500を介して接続されている。図2は、実施の形態1に係るユーザ端末100の構成図である。ユーザ端末100は、ユーザが使用する端末であり、データの暗号化、復号を行う。ユーザ端末100は、暗号化データ生成部110、データ送信部120、データ受信部130、復号部140、鍵管理部150を備える。図3は、実施の形態1に係る暗号化データ管理装置200の構成図である。暗号化データ管理装置200は、ユーザ端末100と暗号化データ記憶装置300との間で、暗号化データの管理をする。暗号化データ管理装置200は、データ受信部210データ取得部、失効判定部220、鍵情報設定部230、データ送信部240、失効情報管理部250、鍵管理部260を備える。図4は、実施の形態1に係る暗号化データ記憶装置300の構成図である。暗号化データ記憶装置300は、暗号化データを記憶する。暗号化データ記憶装置300は、データ受信部310、データ操作部320、データ送信部330、暗号化データ管理部340を備える。図5は、実施の形態1に係る鍵生成装置400の構成図である。鍵生成装置400は、ユーザ秘密鍵k、マスター秘密鍵sk、公開パラメータpkを生成する。鍵生成装置400は、指示受信部410、鍵生成部420、鍵送信部430、マスター鍵記憶部440を備える。暗号処理システム10の主な処理には、暗号化データ登録処理と、暗号化データ取得処理とがある。暗号化データ登録処理は、ユーザ端末100が暗号化データを暗号化データ記憶装置300に登録する処理である。暗号化データ取得処理は、ユーザ端末100が暗号化データを暗号化データ記憶装置300から取得する処理である。また、暗号化データ登録処理と暗号化データ取得処理とには、3つの前提条件がある。そこで、3つの前提条件を説明した上で、暗号化データ登録処理と、暗号化データ取得処理とを説明する。<前提条件1>ユーザ端末100が、関数型暗号方式におけるユーザ秘密鍵kを取得している必要がある。鍵生成装置400の指示受信部410は、ユーザ端末100等から鍵の生成指示を受信する。すると、鍵生成装置400の鍵生成部420は、処理装置により、Setupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成し、マスター鍵記憶部440に記憶する。また、鍵生成部420は、処理装置により、KeyGenアルゴリズムを実行して、マスター秘密鍵skに含まれる基底Bを用いて、ユーザ秘密鍵kを生成する。そして、鍵送信部430は、公開パラメータpkとユーザ秘密鍵kとをユーザ端末100へ送信する。ユーザ端末100のデータ受信部130は、公開パラメータpkとユーザ秘密鍵kとを受信して、鍵管理部150に記憶する。また、鍵送信部430は、公開パラメータpkを暗号化データ管理装置200へ送信する。暗号化データ管理装置200のデータ受信部210は、公開パラメータpkを受信して、鍵管理部260に記憶する。なお、Setupアルゴリズムは一度だけ実行されればよく、ユーザ秘密鍵kを生成する度に実行する必要はない。また、鍵送信部430がユーザ秘密鍵kをユーザ端末100へ送信する場合、ユーザ認証を行い、正当なユーザの端末であることを確認する。また、鍵送信部430がユーザ秘密鍵kをユーザ端末100へ送信する場合、盗聴と改ざんを防ぐため、SSLSecureSocketLayer等を用いた安全な通信路を使用する。つまり、ユーザ秘密鍵kが悪意ある第三者に不正に利用されないようにする。ここでは、鍵生成部420は、式5に示すようにユーザ秘密鍵kを生成する。<式5>k=σ1v1b1v2b2σ2v3b3v4b4b5ここで、σ1,σ2は、乱数値である。v1,v2は、鍵情報である。ここでは、鍵情報として、新たな鍵の発行毎に値がインクリメントされる世代番号を用いる。v3,v4は、ユーザ秘密鍵kが与えられるユーザの属性情報である。世代番号の値をρとし、属性情報の値をαとした場合、ここでは、式6に示すようにユーザ秘密鍵kは生成される。<式6>k=σ1ρb1b2σ2αb3b4b5つまり、v1:=ρ,v2:=1,v3:=α,v4:=1である。鍵生成部420は、あるユーザに対して、初めにユーザ秘密鍵kを生成する場合には、世代番号の値を1とする。そのユーザがユーザ秘密鍵kを紛失して、再びユーザ秘密鍵kを生成する場合には、世代番号の値をインクリメントして2とする。以降、ユーザ秘密鍵kを紛失して再生成する場合には、インクリメントした世代番号の値を用いる。<前提条件2>ユーザ端末100が、ドメイン公開鍵dpkを取得している必要がある。ドメイン公開鍵dpkとは、暗号化データ管理装置200の秘密鍵ドメイン秘密鍵dskに対応する公開鍵である。なお、ドメイン秘密鍵dskとドメイン公開鍵dpkとの鍵ペアは、関数型暗号方式における鍵ペアでなく、他の公開鍵暗号方式における鍵ペアであってもよい。鍵生成部420は、ドメイン秘密鍵dskとドメイン公開鍵dpkとの鍵ペアを生成し、鍵送信部430は、ドメイン公開鍵dpkをユーザ端末100へ送信し、ドメイン秘密鍵dskを暗号化データ管理装置200へ送信する。ユーザ端末100のデータ受信部130は、ドメイン公開鍵dpkを受信し、鍵管理部150に記憶する。また、暗号化データ管理装置200のデータ受信部210は、ドメイン公開鍵dpkを受信し、鍵管理部260に記憶する。鍵送信部430がドメイン秘密鍵dskを暗号化データ管理装置200へ送信する場合、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路を使用する。<前提条件3>暗号化データ管理装置200が、失効情報を取得している必要がある。失効情報とは、ユーザ秘密鍵kを紛失したユーザの識別情報と、紛失したユーザ秘密鍵kの世代番号とを示す情報である。ユーザがユーザ秘密鍵kを紛失した場合、ユーザ端末100のデータ送信部120は、ユーザ秘密鍵kを紛失したユーザの識別情報と、紛失したユーザ秘密鍵kの世代番号とを失効情報として暗号化データ管理装置200へ送信する。暗号化データ管理装置200のデータ受信部210は、失効情報を受信し、失効情報管理部250に記憶する。なお、データ受信部210は、失効情報を受信する場合、ユーザ認証を行い、失効を届け出たユーザが本人であることを確認する。<暗号化データ登録処理>図6は、実施の形態1に係る暗号化データ登録処理の流れを示すフローチャートである。S11:暗号化処理ユーザ端末100の暗号化データ生成部110は、Encアルゴリズムを実行して暗号化データcを生成する。ここでは、暗号化データ生成部110は、処理装置により、式7に示すように、鍵管理部150に記憶した公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c1を生成する。<式7>c1:=ω1r1b1r2b2ω2x3b3x4b4ζb5φb6ここで、ω1,ω2,r1,r2,ζ,φは、乱数値である。x3,x4は、暗号化データcを復号可能なユーザの属性情報が設定される。属性情報の値をαとした場合、ここでは、式8に示すように暗号化データcは生成される。<式8>c1:=ω1r1b1r2b2ω2b3-αb4ζb5φb6つまり、x3:=1,x4:=-αである。また、暗号化データ生成部110は、処理装置により、式9に示すように、鍵管理部150に記憶した公開パラメータpkに含まれるパラメータparamを用いて、暗号化データcの要素c2を生成する。<式9>c2:=eg,gζmまた、暗号化データ生成部110は、処理装置により、鍵管理部150に記憶したドメイン公開鍵dpkで、ω1r1を暗号化したEω1r1と、ω1r2を暗号化したEω1r2とを生成する。また、暗号化データ生成部110は、要素c1に設定した属性情報が示すユーザの識別情報をユーザリストulとして生成する。S12:第1データ送信処理ユーザ端末100のデータ送信部120は、通信装置により、暗号化データ生成部110が生成した要素c1,c2,Eω1r1,Eω1r2,ulを含む暗号化データcを、暗号化データ管理装置200へ送信する。S13:第2データ送信処理暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcをユーザ端末100から受信する。暗号化データ管理装置200のデータ送信部240は、暗号化データcに関連情報rを添付して、暗号化データ記憶装置300へ送信する。なお、関連情報rとは、暗号化データcの作成者や、暗号化データcの受信日時等であり、後に暗号化データcを検索する際に利用される情報である。S14:データ記憶処理暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データcと関連情報rとを暗号化データ管理装置200から受信する。暗号化データ記憶装置300のデータ操作部320は、暗号化データcと関連情報rとを関連付けて、暗号化データ管理部340に記憶する。S15:結果送信処理暗号化データ記憶装置300のデータ送信部330は、通信装置により、暗号化データcの記憶が成功したか否かを示す結果情報を、暗号化データ管理装置200へ送信する。S16:結果転送処理暗号化データ管理装置200のデータ受信部210は、通信装置により、結果情報を暗号化データ記憶装置300から受信する。暗号化データ管理装置200のデータ送信部240は、通信装置により、結果情報をユーザ端末100へ送信する。S17:結果受信処理ユーザ端末100のデータ受信部130は、通信装置により、結果情報を暗号化データ管理装置200から受信する。<暗号化データ取得処理>図7は、実施の形態1に係る暗号化データ取得処理の流れを示すフローチャートである。S21:キーワード送信処理ユーザ端末100のデータ送信部120は、通信装置により、暗号化データcを特定可能なキーワードを、暗号化データ管理装置200へ送信する。S22:キーワード転送処理暗号化データ管理装置200のデータ受信部210は、通信装置により、キーワードをユーザ端末100から受信する。暗号化データ管理装置200のデータ送信部240は、通信装置により、キーワードを暗号化データ記憶装置300へ送信する。S23:データ検索処理暗号化データ記憶装置300のデータ受信部310は、通信装置により、キーワードを暗号化データ管理装置200から受信する。暗号化データ記憶装置300のデータ操作部320は、処理装置により、キーワードと一致する関連情報rを有する暗号化データcを暗号化データ管理部340から抽出する。S24:第1データ送信処理暗号化データ記憶装置300のデータ送信部330は、通信装置により、抽出した暗号化データcを暗号化データ管理装置200へ送信する。S25:世代番号付け代え処理暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcを暗号化データ記憶装置300から受信する。暗号化データ管理装置200の失効判定部220は、処理装置により、暗号化データcのユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれているか否か判定する。鍵情報設定部230は、処理装置により、暗号化データcの要素c1における乱数値r1,r2を、失効判定部220の判定結果に応じて異なる値に設定し直し、要素c1’を生成する。具体的には、鍵情報設定部230は、以下のように乱数値r1,r2を設定し直す。なお、ここでは、式8に示す要素c1における乱数値r1,r2を設定し直した要素c1’を示す。ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれていない場合、鍵情報設定部230は、式10に示すように、要素c1’を生成する。<式10>c1’:=ω1b1-b2ω2b3-αb4ζb5φb6つまり、r1を1に設定し直し、r2を-1に設定し直す。r2を設定し直した-1は、-1×世代番号の初期値である。なお、式11に示す計算をすることにより、式8に示す要素c1から式10に示す要素c1’を得ることができる。<式11>c1’:=c1-ω1r1b1ω1r2b2ω1b1-ω1b2ここで、ω1r1,ω1r2は、暗号化データcの要素Eω1r1,Eω1r2を、鍵管理部260に記憶したドメイン秘密鍵dskで復号することにより得られる。また、b1,b2は、公開パラメータpkに含まれる基底Bから得られる。ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれている場合、鍵情報設定部230は、式12に示すように、要素c1’を生成する。<式12>c1’:=ω1b1-ρ1b2ω2b3-αb4ζb5φb6つまり、r1を1に設定し直し、r2を-ρ1に設定し直す。r2を設定し直した-ρ1は、-1×失効したユーザ秘密鍵kの世代番号の値1である。つまり、ユーザリストulにユーザAが含まれており、失効したユーザAのユーザ秘密鍵kの世代番号として1が失効リストに含まれている場合、-ρ1は、-1×11=-2となる。なお、式13に示す計算をすることにより、式8に示す要素c1から式12に示す要素c1’を得ることができる。<式13>c1’:=c1-ω1r1b1ω1r2b2ω1b1-ω1ρ1b2S26:第2データ送信処理暗号化データ管理装置200のデータ送信部240は、通信装置により、暗号化データcの要素c1を要素c1’に置き換えた暗号化データc’を、ユーザ端末100へ送信する。S27:復号処理ユーザ端末100の暗号化データ生成部110は、通信装置により、暗号化データc’を暗号化データ管理装置200から受信する。ユーザ端末100の復号部140は、Decアルゴリズムを実行することにより、暗号化データc’をユーザ秘密鍵kで復号する。ここでは、復号部140は、処理装置により、式14に示す計算を実行することにより、暗号化データc’をユーザ秘密鍵kで復号して、メッセージm’を抽出する。<式14>m’:=c2/ec1,k上述したように、ユーザ秘密鍵kにおける基底ベクトルb1,...,bnに設定された属性情報等v1,...,vnと、要素c1における基底ベクトルb1,...,bnに設定された属性情報等x1,...,xnとが対応する場合、抽出されたm’=mとなる。そして、ここでは、属性情報等v1,...,vnと属性情報等x1,...,xnとが対応するとは、Σi=1nvixi=0となることである。ユーザ端末100は、初めに生成され、世代番号の値として1が付されたユーザ秘密鍵kを有しているとする。つまり、ユーザ端末100は、式6のρに1が設定された、式15に示すユーザ秘密鍵kを有しているとする。<式15>k=σ1b1b2σ2αb3b4b5また、S11において、暗号化データcの要素c1は、式16=式8に示すように生成されているとする。<式16>c1:=ω1r1b1r2b2ω2b3-αb4ζb5φb6ユーザリストulに含まれるユーザの識別情報が失効情報に含まれていない場合、式17=式10に示すように、要素c1’は生成される。<式17>c1’:=ω1b1-b2ω2b3-αb4ζb5φb6この場合、v1=1,v2=1,v3=α,v4=1であり、x1=1,x2=-1,x3=1,x4=-αであるから、Σi=14vixi=1-1α-α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。つまり、ユーザ秘密鍵kで、暗号化データcを復号することができる。一方、ユーザリストulに含まれるユーザの識別情報が失効情報に含まれている場合、式18に示すように、要素c1’は生成される。ここでは、世代番号がの値が1のユーザ秘密鍵kが失効していたとする。<式18>c1’:=ω1b1-2b2ω2b3-αb4ζb5φb6この場合、ユーザ秘密鍵kにおいて、基底ベクトルb1,...,b4の係数に設定されたv1,...,v4は、v1=1,v2=1,v3=α,v4=1である。また、要素c1’において、基底ベクトルb1,...,b4の係数に設定されたx1,...,x4は、x1=1,x2=-2,x3=1,x4=-αであるから、Σi=14vixi=1-2α-α≠0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しくない。つまり、失効しているユーザ秘密鍵kでは、暗号化データcを復号することはできない。しかし、ユーザ端末100は、鍵生成装置400にユーザ秘密鍵kを再生成してもらい、世代番号の値として2が付されたユーザ秘密鍵kを取得したとする。つまり、ユーザ端末100は、式6のρに2が設定された、式19に示すユーザ秘密鍵kを取得したとする。<式19>k=σ12b1b2σ2αb3b4b5この場合、v1=2,v2=1,v3=α,v4=1であり、x1=1,x2=-2,x3=1,x4=-αであるから、Σi=14vixi=2-2α-α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。つまり、ユーザ秘密鍵kを紛失した場合、ユーザ秘密鍵kを再生成してもらうことで、暗号化データcの復号が可能となる。また、ユーザ端末100が、暗号化データ管理装置200を介すことなく、暗号化データ記憶装置300から暗号化データcを取得することも考えられる。しかし、この場合、暗号化データcの要素c1は、式20=式8に示す通りである。<式20>c1:=ω1r1b1r2b2ω2b3-αb4ζb5φb6この場合、乱数値r1,r2が用いられているため、ユーザ秘密鍵kに設定された世代番号の値がいくつであっても、Σi=14vixi≠0となり、復号できない。以上のように、実施の形態1に係る暗号処理システム10では、ユーザ秘密鍵kを紛失した場合には、紛失したユーザ秘密鍵kでは暗号化データcを復号できない状態とし、再生成されたユーザ秘密鍵kでは暗号化データcを復号できる状態とすることができる。特に、この際、既に暗号化データ記憶装置300に記憶された暗号化データcに対して、再暗号化等の処理を行う必要はない。また、実施の形態1に係る暗号処理システム10では、仮に、ユーザ端末100が、暗号化データ管理装置200を介すことなく、暗号化データ記憶装置300から暗号化データcを取得した場合にも、暗号化データcを復号できない。したがって、実施の形態1に係る暗号処理システム10では、暗号化データ記憶装置300を第三者に委託し、暗号化データ記憶装置300から暗号化データcが漏洩する可能性がある場合であっても、安全性を保つことができる。つまり、実施の形態1に係る暗号処理システム10では、ユーザ秘密鍵kに、ユーザの属性情報と、その鍵の世代番号とを設定しておく。また、暗号化データcに、復号できる条件として、復号可能なユーザの属性情報の条件と、復号可能な鍵の世代番号の条件とをAND条件で設定しておく。また、実施の形態1に係る暗号処理システム10では、ユーザ端末100と暗号化データ記憶装置300との間の処理を中継する暗号化データ管理装置200を設置する。そして、ユーザ端末100が暗号化データcを取得する場合、暗号化データ管理装置200が暗号化データ記憶装置300から暗号化データcを取得して、ユーザ端末100へ送信する。この際、暗号化データ管理装置200は、暗号化データcを復号可能なユーザにユーザ秘密鍵kを失効したユーザが含まれるか否かに応じて、暗号化データcの世代番号を異なる値に設定し直す。具体的には、失効したユーザが含まれない場合には、世代番号の値に初期値を設定し、失効したユーザが含まれる場合には、世代番号の値に失効していない世代番号の値を設定する。これにより、実施の形態1に係る暗号処理システム10は、暗号化データcの再暗号化をすることなく、紛失したユーザ秘密鍵kでは暗号化データcを復号できず、再生成されたユーザ秘密鍵kでは暗号化データcを復号できる状態とする。なお、上記説明では、式5に示すようにユーザ秘密鍵kを生成するとした。つまり、鍵情報と属性情報とに、異なる乱数値σ1,σ2を乗じていた。しかし、式21に示すように、鍵情報と属性情報とに同一の乱数値σを乗じて、ユーザ秘密鍵kを生成してもよい。<式21>k=σv1b1v2b2v3b3v4b4b5また、上記説明では、式7に示すように暗号化データcの要素c1を生成するとした。つまり、鍵情報と属性情報とに、異なる乱数値ω1,ω2を乗じていた。しかし、式22に示すように、鍵情報と属性情報とに同一の乱数値ωを乗じて、要素c1を生成してもよい。<式22>c1:=ωr1b1r2b2x3b3x4b4ζb5φb6また、式23に示すように、乱数値ω1を用いず、要素c1を生成してもよい。これは、r1,r2自身が乱数値であり、さらに乱数値を掛けなくてもよいためである。<式23>c1:=r1b1r2b2ω2x3b3x4b4ζb5φb6また、式24に示すように、鍵情報を設定する一部の基底ベクトル式24ではb1の係数を0とし、要素c1を生成してもよい。これは、基底ベクトルb1,b2は、暗号化データ管理装置200によって値を付け直しされるので、どちらか1つの基底ベクトルの係数に乱数値を設定しておけばよいためである。<式24>c1:=r2b2ω2x3b3x4b4ζb5φb6また、式25に示すように、鍵情報を設定する基底ベクトルに乱数値を設定せず、他の部分をドメイン公開鍵で暗号化して、要素c1を生成してもよい。鍵情報を設定する基底ベクトルに乱数値を設定することにより、ユーザ端末100が暗号化データ記憶装置300から直接暗号化データcを取得した場合に、復号できない状態としていた。しかし、他の部分をドメイン公開鍵で暗号化しておくことで、同様の効果が得られるためである。<式25>c1:=Eω2x3b3x4b4ζb5φb6また、上記説明では、説明を簡単にするため、αが属性情報の値として設定されたユーザ秘密鍵kと暗号化データcとを用いて説明した。しかし、実際には、ユーザUの所属するA会社を示す値α1、B部を示す値α2、C課を示す値α3、ユーザUを示すα4が属性情報の値として設定されたユーザ秘密鍵kを用いることがある。例えば、式26に示すユーザ秘密鍵kを用いることがある。なお、ここでは、世代番号の値として1を設定している。また、この場合、n=10である。<式26>k=σ1b1b2σ2α1b3b4α2b5b6α3b7b8α4b9b10b11また、A会社のB部に所属するユーザであれば誰でも復号可能であるように、A会社を示す値α1、B部を示す値α2が属性情報の値として設定された暗号化データcを用いることがある。例えば、式27に示す暗号化データcを用いることがある。<式27>c1:=ω1r1b1r2b2ω2b3-α1b4b5-α2b6ζb11φb12ユーザリストulに含まれるユーザの識別情報が失効情報に含まれている場合、式28に示すように、要素c1’は生成される。<式28>c1:=ω1b1-b2ω2b3-α1b4b5-α2b6ζb11φb12この場合、v1=1,v2=1,v3=α1,v4=1,v5=α2,v6=1,v7=α3,v8=1,v9=α4,v10=1であり、x1=1,x2=-1,x3=1,x4=-α1,x5=1,x6=-α2,x7=0,x8=0,x9=0,x10=0であるから、Σi=110vixi=σ1ω11-1σ2ω2α1-α1α2-α20000=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。一方、ユーザリストulに含まれるユーザの識別情報が失効情報に含まれている場合、式29に示すように、要素c1’は生成される。ここでは、世代番号がの値が1のユーザ秘密鍵kが失効していたとする。<式29>c1:=ω1b1-2b2ω2b3-α1b4b5-α2b6ζb11φb12なお、B部に所属する1人のユーザU1がユーザ秘密鍵kを紛失すると、B部に所属する他のユーザU2が暗号化データcを取得する場合にも、要素c1は式28に示す要素c1’ではなく、式29に示す要素c1’に変換される。したがって、ユーザU1だけでなく、ユーザU2等のB部に所属する他のユーザもユーザ秘密鍵kを再作成してもらわなければ、暗号化データcを復号することはできなくなる。実施の形態2.実施の形態2では、非特許文献2に記載された関数型暗号方式において、秘密鍵の失効方式を実現する方法を説明する。まず、非特許文献2に記載された関数型暗号方式について、この実施の形態の説明に必要な部分のみに簡略化して説明する。特に、非特許文献2に記載された関数型暗号方式で用いられるスパンプログラムや秘密分散等については、省略、あるいは簡略化して説明する。非特許文献2に記載された関数型暗号方式には、非特許文献1に記載された関数型暗号方式と同様に、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムがある。Setupアルゴリズムは、公開パラメータpkとマスター秘密鍵skとを生成するアルゴリズムである。Setupアルゴリズムでは、双対ペアリングベクトル空間のパラメータparamと、t=0,...,ddは1以上の整数の各tについての正規直交基底である基底Bt及び基底Btとが生成される。そして、パラメータparamと基底Btとが公開パラメータpkとされ、基底Btがマスター秘密鍵skとされる。なお、基底B0は、基底ベクトルb0,1,b0,2,...,b0,5を有し、基底B0は、基底ベクトルb0,1,b0,2,...,b0,5を有する。つまり、基底B0,B0は、それぞれ5個の基底ベクトルを有する。また、t=1,...,dの各tについての基底Btは、基底ベクトルbt,1,bt,2,...,bt,3nt1を有し、基底Btは、基底ベクトルbt,1,bt,2,...,bt,3nt1を有する。つまり、基底Bt,Btは、それぞれ3nt1個ntは1以上の整数の基底ベクトルを有する。但し、厳密には、係数として必ず0が割り当てられる基底ベクトルは公開パラメータpkやマスター秘密鍵skに含める必要がない。そのため、公開パラメータpkに含める基底B0は、基底ベクトルb0,1,b0,3,b0,5のみを有し、マスター秘密鍵skに含める基底B0は、基底ベクトルb0,1,b0,3,b0,4のみを有するとしてもよい。また、t=1,...,dの各tについて、公開パラメータpkに含める基底Btは、基底ベクトルbt,1,,...,bt,nt,bt,3nt1のみを有し、マスター秘密鍵skに含める基底Btは、基底ベクトルbt,1,...,bt,nt1,bt,2nt1,...,bt,3ntのみを有するとしてもよい。KeyGenアルゴリズムは、ユーザ秘密鍵kを生成するアルゴリズムである。KeyGenアルゴリズムでは、式30に示すように、マスター秘密鍵skに含まれる基底Btを用いて、要素k0と、t=1,...,dの各tについての要素ktとを有するユーザ秘密鍵kが生成される。<式30>k0:=δ,0,1,φ0,0B0kt:=δv→t,0nt,φ→t,0Btここで、δ,φ0,φ→t:=φt,1,...,φt,ntは、乱数値である。v→t:=vt,1,...,vt,ntは、ユーザ秘密鍵kが与えられるユーザの属性情報等である。また、z1,...,zNBt:=Σi=1Nzibt,iである。つまり、k0:=δ,0,1,φ0,0B0:=δb0,1b0,3φ0b0,4である。また、kt:=δv→t,0nt,φ→t,0Bt:=Σi=1ntδvt,ibt,iΣi=1ntφt,ibt,2ntiである。Encアルゴリズムは、暗号化データcを生成するアルゴリズムである。Encアルゴリズムでは、式31に示すように、公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c0と、t=1,...,LLは、d以下の整数の各tについての要素ctとが生成される。<式31>c0:=-s0,0,ζ,0,η0B0ct:=ste→t,1θtx→t,0nt,0nt,ηtBtここで、e→t,1は、nt個の要素を持ち、先頭要素が1で残りの要素が0であるベクトルである。また、s0=Σi=1Lsiである。ζ,θt,η0,ηtは、乱数値である。xt,1,...,xt,ntは、暗号化データcを復号可能なユーザの属性情報等である。また、z1,...,zNBt:=Σi=1Nzibt,iである。つまり、c0:=-s0,0,ζ,0,η0B0:=-s0b0,1ζb0,3η0b0,5である。また、ct:=ste→t,1θtx→t,0nt,0nt,ηtBt:=Σi=1ntste→t,1θtxt,ibt,iηtb3nt1である。また、Encアルゴリズムでは、式32に示すように、公開パラメータpkに含まれるパラメータparamを用いて、暗号化データcの要素cd1が生成される。<式32>cd1:=eg,gζmここで、gは、パラメータparamに含まれる情報であり、双対ペアリングベクトル空間を構成する群Gの要素である。mは、メッセージである。eg,gは、要素gと要素gとについてのペアリング演算である。Decアルゴリズムは、暗号化データcをユーザ秘密鍵kで復号するアルゴリズムである。Decアルゴリズムでは、式33に示す計算が実行され、暗号化データcがユーザ秘密鍵kで復号されて、m’が抽出される。<式33>m’:=cd1/ec0,k0Πt=1Lect,ktここで、ec0,k0は、要素c0とユーザ秘密鍵k0とについてのペアリング演算であり、ect,ktは、要素ctとユーザ秘密鍵ktとについてのペアリング演算である。Decアルゴリズムでは、t=1,...,Lの各tについて、ユーザ秘密鍵kにおける要素ktに設定された属性情報等v→tと、暗号化データcにおける要素ctに設定された属性情報等x→tとが対応する場合、抽出されたm’=mとなる。属性情報等v→tと属性情報等x→tとが対応するとは、v→tx→t=Σi=1ntvt,ixt,i=0となることである。ペアリング演算esg,tg=eg,gstである。そのため、ec0,k0=eg,gY1となる。ここで、Y1=-s0ζである。また、Πt=1Lect,kt=g,gY2となる。ここで、Y2=Σi=1Lsiv→tx→t=Σi=1LsiΣi=1Lv→ix→iである。したがって、Σi=1Lv→ix→i=0であれば、Y2=Σi=1Lsiである。そして、ec0,k0Πt=1Lect,kt=eg,gY3となり、Σi=1Lv→ix→i=0であれば、Y3=-s0ζΣi=1Lsiである。そして、上述した通り、s0=Σi=1Lsiであるから、Y3=ζである。つまり、ec0,k0Πt=1Lect,kt=eg,gζである。式32に示すように、cd1:=eg,gζmであるから、式33の計算を実行すれば、Σi=1Lv→ix→i=0の場合には、m’=mとなる。以下の説明では、説明を簡単にするため、d=2,L=2とし、n1=2,n2=2として説明する。実施の形態2に係る暗号処理システム10の構成は、図1に示す実施の形態1に係る暗号処理システム10の構成と同じである。実施の形態2に係るユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400の構成は、図2-5に示す実施の形態1に係るユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400の構成と同じである。実施の形態2に係る暗号処理システム10の主な処理には、実施の形態1に係る暗号処理システム10と同様に、暗号化データ登録処理と、暗号化データ取得処理とがあり、暗号化データ登録処理と暗号化データ取得処理とには、3つの前提条件がある。3つの前提条件は、前提条件1において生成されるユーザ秘密鍵kの構成を除き、実施の形態1と同じである。ここでは、鍵生成部420は、式34に示すようにユーザ秘密鍵kを生成する。<式34>k0:=δ,0,1,φ0,0B0k1:=δv→1,0n1,φ→1,0B1k2:=δv→2,0n2,φ→2,0B2ここで、δ,φ0,φ→1,φ→2は、乱数値である。v→1:=v1,1,v1,2は、鍵情報である。ここでは実施の形態1と同様に、鍵情報として、新たな鍵の発行毎に値がインクリメントされる世代番号を用いる。v→2:=v2,1,v2,2は、ユーザ秘密鍵kが与えられるユーザの属性情報等である。世代番号の値をρとし、属性情報の値をαとした場合、ここでは、式35に示すようにユーザ秘密鍵kは生成される。<式35>k0:=δ,0,1,φ0,0B0k1:=δρ,1,0n1,φ→1,0B1k2:=δα,1,0n2,φ→2,0B2つまり、v1,1:=ρ,v1,2:=1,v2,1:=α,v2,2:=1である。<暗号化データ登録処理>図6を用いて、実施の形態2に係る暗号化データ登録処理について、実施の形態1に係る暗号化データ登録処理と異なる部分を中心に説明する。S11:暗号化処理ユーザ端末100の暗号化データ生成部110は、Encアルゴリズムを実行して暗号化データcを生成する。ここでは、暗号化データ生成部110は、処理装置により、式36に示すように、鍵管理部150に記憶した公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c0,c1,c2を生成する。<式36>c0:=-s0,0,ζ,0,η0B0c1:=s1e→1,1θ11,r,0n1,0n1,η1B1c2:=s2e→2,1θ2x→2,0n2,0n2,η2B2ここで、s0=s1s2である。ζ,θ1,θ2,η0,η1,η2,rは、乱数値である。x2,1,x2,2は、暗号化データcを復号可能なユーザの属性情報等である。属性情報の値をαとした場合、ここでは、式37に示すように暗号化データcは生成される。<式37>c0:=-s0,0,ζ,0,η0B0c1:=s1e→1,1θ11,r,0n1,0n1,η1B1c2:=s2e→2,1θ21,-α,0n2,0n2,η2B2つまり、x2,1:=1,x2,2:=-αである。また、暗号化データ生成部110は、処理装置により、式38に示すように、鍵管理部150に記憶した公開パラメータpkに含まれるパラメータparamを用いて、暗号化データcの要素cd1を生成する。<式38>cd1:=eg,gζmまた、暗号化データ生成部110は、処理装置により、鍵管理部150に記憶したドメイン公開鍵dpkで、rを暗号化したErと、θ1を暗号化したEθ1とを生成する。また、暗号化データ生成部110は、要素c1に設定した属性情報が示すユーザの識別情報をユーザリストulとして生成する。S12:第1データ送信処理データ送信部120は、通信装置により、暗号化データ生成部110が生成した要素c0,c1,c2,cd1,Er,Er,ulを含む暗号化データcを、暗号化データ管理装置200へ送信する。S13からS17までの処理は、実施の形態1と同じである。<暗号化データ取得処理>図7を用いて、実施の形態2に係る暗号化データ取得処理について、実施の形態1に係る暗号化データ取得処理と異なる部分を中心に説明する。S21からS24までの処理は、実施の形態1と同じである。S25:世代番号付け代え処理S25も、原則として実施の形態1と同様である。しかし、暗号化データcの要素c1における乱数値rを設定し直す方法が異なる。具体的には、鍵情報設定部230は、以下のように乱数値rを設定し直す。なお、ここでは、式37に示す要素c1における乱数値rを設定し直した要素c1’を示す。ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれていない場合、鍵情報設定部230は、式39に示すように、要素c1’を生成する。<式39>c1’:=s1e→1,1θ11,-1,0n1,0n1,η1B1つまり、rを-1に設定し直す。rを設定し直した-1は、-1×世代番号の初期値である。なお、式40に示す計算をすることにより、式37に示す要素c1から式39に示す要素c1’を得ることができる。<式40>c1’:=c1-θ1rb1,2-θ1b1,2ここで、r,θ1は、暗号化データcの要素Er,Eθ1を、鍵管理部260に記憶したドメイン秘密鍵dskで復号することにより得られる。また、b1,1,b1,2は、公開パラメータpkに含まれる基底Bから得られる。ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれている場合、鍵情報設定部230は、式41に示すように、要素c1’を生成する。<式41>c1’:=s1e→1,1θ11,-ρ1,0n1,0n1,η1B1つまり、rを-ρ1に設定し直す。rを設定し直した-ρ1は、-1×失効したユーザ秘密鍵kの世代番号の値1である。つまり、ユーザリストulにユーザAが含まれており、失効したユーザAのユーザ秘密鍵kの世代番号として1が失効リストに含まれている場合、-ρ1は、-1×11=-2となる。なお、式42に示す計算をすることにより、式37に示す要素c1から式41に示す要素c1’を得ることができる。<式42>c1’:=c1-θ1rb1,2-θ1ρ1b1,2S26は、実施の形態1と同じである。S27も、原則として実施の形態1と同様である。しかし、復号の方法が異なる。ここでは、復号部140は、処理装置により、式43に示す計算を実行することにより、暗号化データc’をユーザ秘密鍵kで復号して、メッセージm’を抽出する。<式43>m’:=cd1/ec0,k0Πt=1Lect,kt上述したように、t=1,...,Lの各tについて、ユーザ秘密鍵kにおける要素ktに設定された属性情報等v→tと、暗号化データcにおける要素ctに設定された属性情報等x→tとが対応する場合、抽出されたm’=mとなる。そして、ここでは、属性情報等v→tと属性情報等x→tとが対応するとは、v→tx→t=Σi=1ntvt,ixt,i=0となることである。ユーザ端末100は、初めに生成され、世代番号の値として1が付されたユーザ秘密鍵kを有しているとする。つまり、ユーザ端末100は、式35のρに1が設定された、式44に示すユーザ秘密鍵kを有しているとする。<式44>k0:=δ,0,1,φ0,0B0k1:=δ1,1,0n1,φ→1,0B1k2:=δα,1,0n2,φ→2,0B2また、S11において、暗号化データcの要素c1は、式45=式37に示すように生成されているとする。<式45>c0:=-s0,0,ζ,0,η0B0c1:=s1e→1,1θ11,r,0n1,0n1,η1B1c2:=s2e→2,1θ21,-α,0n2,0n2,η2B2ユーザリストulに含まれるユーザの識別情報が失効情報に含まれていない場合、式46=式39に示すように、要素c1’は生成される。<式46>c1’:=s1e→1,1θ11,-1,0n1,0n1,η1B1この場合、ユーザ秘密鍵kにおいて、基底B1の基底ベクトルb1,1,b1,2の係数に設定されたv1,1,v1,2は、v1,1=1,v1,2=1である。また、要素c1’において、基底B1の基底ベクトルb1,1,b1,2の係数に設定されたx1,1,x1,2は、x1,1=1,x1,2=-1である。そのため、v→1x→1=Σi=12v1,ix1,i=1-1=0となる。また、ユーザ秘密鍵kにおいて、基底B2の基底ベクトルb2,1,b2,2の係数に設定されたv2,1,v2,2は、v2,1=α,v2,2=1である。また、要素c1’において、基底B2の基底ベクトルb2,1,b2,2の係数に設定されたx2,1,x2,2は、x2,1=1,x2,2=-αである。そのため、v→2x→2=Σi=12v2,ix2,i=α-α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd1に設定されたメッセージmと等しい。つまり、ユーザ秘密鍵kで、暗号化データcを復号することができる。一方、ユーザリストulに含まれるユーザの識別情報が失効情報に含まれている場合、式47に示すように、要素c1’は生成される。ここでは、世代番号がの値が1のユーザ秘密鍵kが失効していたとする。<式47>c1’:=s1e→1,1θ11,-2,0n1,0n1,η1B1この場合、v1,1=1,v1,2=1であり、x1,1=1,x1,2=-2であるから、v→1x→1=Σi=12v1,ix1,i=1-2≠0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd1に設定されたメッセージmと等しくない。つまり、失効しているユーザ秘密鍵kでは、暗号化データcを復号することはできない。しかし、ユーザ端末100は、鍵生成装置400にユーザ秘密鍵kを再生成してもらい、世代番号の値として2が付されたユーザ秘密鍵kを取得したとする。つまり、ユーザ端末100は、式35のρに2が設定された、式48に示すユーザ秘密鍵kを取得したとする。<式48>k0:=δ,0,1,φ0,0B0k1:=δ2,1,0n1,φ→1,0B1k2:=δα,1,0n2,φ→2,0B2この場合、v1,1=2,v1,2=1であり、x1,1=1,x1,2=-2であるから、v→1x→1=Σi=12v1,ix1,i=2-2=0となる。また、v→2x→2=Σi=12v2,ix2,i=α-α=0である。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd1に設定されたメッセージmと等しい。つまり、ユーザ秘密鍵kを紛失した場合、ユーザ秘密鍵kを再生成してもらうことで、暗号化データcの復号が可能となる。また、ユーザ端末100が、暗号化データ管理装置200を介すことなく、暗号化データ記憶装置300から暗号化データcを取得することも考えられる。しかし、この場合、暗号化データcの要素c1は、式49=式37に示す通りである。<式49>c1:=s1e→1,1θ11,r,0n1,0n1,η1B1この場合、乱数値rが用いられているため、ユーザ秘密鍵kに設定された世代番号の値がいくつであっても、Σi=12v1,ix1,i≠0となり、復号できない。以上のように、実施の形態2に係る暗号処理システム10では、実施の形態1に係る暗号処理システム10と同様の効果を得ることができる。なお、上記説明では、式36に示すように暗号化データcの要素c1を生成するとした。しかし、式50に示すように、乱数値θ1を用いず、要素c1を生成してもよい。これは、r自身が乱数値であり、さらに乱数値を掛けなくてもよいためである。<式50>c1:=s1e→1,11,r,0n1,0n1,η1B1また、式51に示すように、鍵情報を設定する基底ベクトルに乱数値を設定せず、要素c1全体をドメイン公開鍵で暗号化して、要素c1を生成してもよい。鍵情報を設定する基底ベクトルに乱数値を設定することにより、ユーザ端末100が暗号化データ記憶装置300から直接暗号化データcを取得した場合に、復号できない状態としていた。しかし、他の部分をドメイン公開鍵で暗号化しておくことで、同様の効果が得られるためである。<式51>c1:=Es1e→1,1,0n1,0n1,η1B1実施の形態3.実施の形態1では、暗号化データcの要素c1における鍵情報が設定される基底ベクトルに乱数値r1,r2を設定すること等により、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得した場合の安全性を保っていた。同様に、実施の形態2では、暗号化データcの要素c1における鍵情報が設定される基底に乱数値rを設定すること等により、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得した場合の安全性を保っていた。実施の形態3では、暗号化データcの設定を簡略化しつつ、暗号化データ記憶装置300へのアクセス制御を行うことにより、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得しようとした場合の安全性を保つ方法について説明する。実施の形態3では、実施の形態1に係る処理を応用した場合について説明するが、実施の形態2に係る処理を応用した場合についても同様に実現可能である。暗号処理システム10の構成は、図1に示す実施の形態1に係る暗号処理システム10の構成と同じである。ユーザ端末100、鍵生成装置400の構成は、図2,5に示す実施の形態1に係るユーザ端末100、鍵生成装置400の構成と同じである。図8は、実施の形態3に係る暗号化データ管理装置200の構成図である。実施の形態3に係る暗号化データ管理装置200は、図3に示す実施の形態1に係る暗号化データ管理装置200の機能に加え、認証処理部270を備える。図9は、実施の形態3に係る暗号化データ記憶装置300の構成図である。実施の形態3に係る暗号化データ記憶装置300は、図4に示す実施の形態1に係る暗号化データ記憶装置300の機能に加え、認証処理部350を備える。3つの前提条件については、原則として実施の形態1と同じである。但し、実施の形態1では公開パラメータpkに含まれていた基底Bの基底ベクトルb1,b2は、公開パラメータpkから除かれ、鍵生成装置400から暗号化データ管理装置200へのみ送信される。なお、この際、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路が使用される。<暗号化データ登録処理>図10は、実施の形態3に係る暗号化データ登録処理の流れを示すフローチャートである。S31:暗号化処理ユーザ端末100の暗号化データ生成部110は、図6のS11と同様に、Encアルゴリズムを実行して暗号化データcを生成する。ここでは、暗号化データ生成部110は、処理装置により、式52に示すように暗号化データcの要素c1を生成する。<式52>c1:=ωx3b3x4b4ζb5φb6ここで、ω,ζ,φは、乱数値である。x3,x4は、暗号化データcを復号可能なユーザの属性情報が設定される。属性情報の値をαとした場合、ここでは、式53に示すように暗号化データcは生成される。<式53>c1:=ωb3-αb4ζb5φb6つまり、x3:=1,x4:=-αである。暗号化データ生成部110は、要素c2,Eω1r1,Eω1r2,ulについても、図6のS11と同様に生成する。S32:第1認証情報送信処理ユーザ端末100のデータ送信部120は、通信装置により、認証情報として、ユーザの識別情報とパスワードとを暗号化データ管理装置200へ送信する。S33:第1認証処理暗号化データ管理装置200のデータ受信部210は、通信装置により、ユーザの識別情報とパスワードとをユーザ端末100から受信する。すると、暗号化データ管理装置200の認証処理部270は、ユーザの識別情報とパスワードとに基づき、ユーザの認証を行う。例えば、認証処理部270は、ユーザ毎に識別情報とパスワードとを予め記憶しておき、受信した識別情報及びパスワードと、記憶された識別情報及びパスワードとが一致するか否かにより認証する。認証処理部270は、認証に成功した場合、処理をS34へ進め、認証に失敗した場合、処理を終了する。S34:第1データ送信処理ユーザ端末100のデータ送信部120は、図6のS12と同様に、暗号化データcを暗号化データ管理装置200へ送信する。S35:第2認証情報送信処理暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcをユーザ端末100から受信する。すると、データ送信部240は、認証情報として、暗号化データ管理装置200の識別情報とパスワードとを暗号化データ記憶装置300へ送信する。S36:第2認証処理暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データ管理装置200の識別情報とパスワードとをユーザ端末100から受信する。すると、暗号化データ記憶装置300の認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとに基づき認証処理を行う。例えば、認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとを予め記憶しておき、受信した識別情報及びパスワードと、記憶された識別情報及びパスワードとが一致するか否かにより認証する。認証処理部350は、認証に成功した場合、処理をS37へ進め、認証に失敗した場合、処理を終了する。S37:第2データ送信処理暗号化データ管理装置200のデータ送信部240は、暗号化データcに関連情報rを添付して、暗号化データ記憶装置300へ送信する。S38からS41までの処理は、図6に示すS14からS17までの処理と同じである。<暗号化データ取得処理>図11は、実施の形態3に係る暗号化データ取得処理の流れを示すフローチャートである。S51:第1認証情報送信処理ユーザ端末100のデータ送信部120は、通信装置により、認証情報として、ユーザの識別情報とパスワードとを暗号化データ管理装置200へ送信する。S52:第1認証処理暗号化データ管理装置200のデータ受信部210は、通信装置により、ユーザの識別情報とパスワードとをユーザ端末100から受信する。すると、暗号化データ管理装置200の認証処理部270は、ユーザの識別情報とパスワードとに基づき、ユーザの認証を行う。例えば、認証処理部270は、S33と同じ方法により認証を行う。認証処理部270は、認証に成功した場合、処理をS53へ進め、認証に失敗した場合、処理を終了する。S53:キーワード送信処理ユーザ端末100のデータ送信部120は、通信装置により、暗号化データcを特定可能なキーワードを、暗号化データ管理装置200へ送信する。S54:第2認証情報送信処理暗号化データ管理装置200のデータ受信部210は、通信装置により、キーワードをユーザ端末100から受信する。すると、データ送信部240は、認証情報として、暗号化データ管理装置200の識別情報とパスワードとを暗号化データ記憶装置300へ送信する。S55:第2認証処理暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データ管理装置200の識別情報とパスワードとをユーザ端末100から受信する。すると、暗号化データ記憶装置300の認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとに基づき認証処理を行う。例えば、認証処理部350は、S36と同じ方法より認証する。認証処理部350は、認証に成功した場合、処理をS56へ進め、認証に失敗した場合、処理を終了する。S56:キーワード転送処理暗号化データ管理装置200のデータ送信部240は、通信装置により、キーワードを暗号化データ記憶装置300へ送信する。S57からS58までの処理は、図7に示すS23からS24までの処理と同じである。S59:権限判定処理暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcを暗号化データ記憶装置300から受信する。すると、暗号化データ管理装置200の認証処理部270は、処理装置により、S52で受信したユーザの識別情報が、暗号化データcのユーザリストulに含まれているか否かを判定する。認証処理部270は、含まれている場合、処理をS60へ進め、含まれていない場合、処理を終了する。S60:世代番号付け代え処理暗号化データ管理装置200の失効判定部220は、処理装置により、暗号化データcのユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれているか否か判定する。鍵情報設定部230は、処理装置により、暗号化データcの要素c1に、失効判定部220の判定結果に応じて異なる値に設定し、要素c1’を生成する。具体的には、鍵情報設定部230は、以下のように要素c1に値を設定する。なお、ここでは、式53に示す要素c1に値を設定した要素c1’を示す。ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれていない場合、鍵情報設定部230は、式54=式10に示すように、要素c1’を生成する。<式54>c1’:=ω1b1-b2ω2b3-αb4ζb5φb6つまり、基底ベクトルb1の係数に1を設定し、基底ベクトルb2の係数に-1を設定する。基底ベクトルb2の係数に設定し直した-1は、-1×世代番号の初期値である。なお、式55に示す計算をすることにより、式53に示す要素c1から式54に示す要素c1’を得ることができる。<式55>c1’:=c1ω1b1-ω1b2ユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれている場合、鍵情報設定部230は、式56=式12に示すように、要素c1’を生成する。<式56>c1’:=ω1b1-ρ1b2ω2b3-αb4ζb5φb6つまり、基底ベクトルb1の係数に1を設定し、基底ベクトルb2の係数に-ρ1を設定する。基底ベクトルb2の係数に設定した-ρ1は、-1×失効したユーザ秘密鍵kの世代番号の値1である。なお、式57に示す計算をすることにより、式53に示す要素c1から式56に示す要素c1’を得ることができる。<式57>c1’:=c1ω1b1-ω1ρ1b2S61からS62までの処理は、図7に示すS26からS27までの処理と同じである。以上のように、実施の形態3に係る暗号処理システム10は、暗号化データ管理装置200と暗号化データ記憶装置300とでそれぞれ認証を行う。これにより、ユーザ端末100により直接暗号化データ記憶装置300から暗号化データcを取得されることを防止できる。そのため、暗号化データcに乱数値を設定する等せずに、安全性を保つことができる。また、実施の形態3に係る暗号処理システム10は、暗号化データ登録処理において、不正なデータを暗号化データ記憶装置300に登録されることを防止できる。なお、上記説明では、暗号化データ管理装置200と暗号化データ記憶装置300とでそれぞれ認証を行った。しかし、暗号化データ管理装置200では認証を行わず、暗号化データ記憶装置300だけが認証を行うようにしてもよい。少なくとも暗号化データ記憶装置300が認証を行うことで、ユーザ端末100により直接暗号化データ記憶装置300から暗号化データcを取得されることや、不正なデータを暗号化データ記憶装置300に登録されることを防止できる。また、上記説明では、実施の形態1に係る処理を応用した場合について説明した。実施の形態2に係る処理を応用した場合、処理の流れは実施の形態1に係る処理を応用した場合と同じである。しかし、S31で生成される要素c1と、S60で生成される要素c1’とが、実施の形態1に係る処理を応用した場合とは異なる。実施の形態2に係る処理を応用した場合、S31で生成される要素c1は式58のようになる。<式58>c1:=s1e→1,1,0n1,0n1,η1B1また、実施の形態2に係る処理を応用した場合、S60で生成される要素c1’は式39や式41のようになる。また、実施の形態2では公開パラメータpkに含まれていた基底B1は、公開パラメータpkから除かれ、鍵生成装置400から暗号化データ管理装置200へのみ送信される。なお、この際、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路が使用される。ここで、上記実施の形態におけるユーザ秘密鍵kと暗号化データcとへの鍵情報や属性情報の割り当て方法は、一例であり他の方法であってもよい。例えば、実施の形態1では、属性情報がαであれば、ユーザ秘密鍵kについては、基底ベクトルb3の係数としてα、基底ベクトルb4の係数として1が設定された。また、暗号化データcの要素c1については、基底ベクトルb3の係数として1、基底ベクトルb4の係数として-αが設定された。しかし、例えば、ユーザ秘密鍵kについては、基底ベクトルb3の係数として1、基底ベクトルb4の係数としてαが設定され、暗号化データcの要素c1については、基底ベクトルb3の係数として-α、基底ベクトルb4の係数として1が設定されてもよい。また、このように単純に値を設定する基底ベクトルを変更するのではなく、全く別の方法により鍵情報や属性情報を割り当てるようにしてもよい。どのような割り当て方法であっても、上記実施の形態に係る失効方式を適用することは可能である。また、上記実施の形態では、鍵の失効方式を非特許文献1,2に記載された関数型暗号方式へ適用する方法について説明した。しかし、上記実施の形態に係る鍵の失効方式は、非特許文献1,2に記載された関数型暗号方式に限らず、非特許文献1,2に記載された関数型暗号方式を応用した関数型暗号方式に適用することも可能である。また、上記実施の形態に係る鍵の失効方式は、関数型暗号方式に限らず、他の暗号方式にも適用可能である。また、上記実施の形態では、関数型暗号方式を用いて、メッセージmを送信する場合について説明した。公開鍵暗号方式を用いた暗号化では、通常、データを共通鍵で暗号化した後、その共通鍵をユーザの公開鍵で暗号化するいわゆるハイブリッド暗号方式を用いることが多い。ハイブリッド暗号方式では、暗号化したデータにユーザの公開鍵で暗号化された共通鍵が添付される。ハイブリッド暗号方式では、暗号化された共通鍵を暗号化データから削除することで、共通鍵で暗号化されたデータを復号することができなくなる。しかし、関数型暗号方式は複数の秘密鍵で復号可能なデータを1つの公開鍵で暗号化する。そのため、仮に同じ仕組みで共通鍵を添付する場合、複数の秘密鍵に対して1つしか暗号化された共通鍵を付与しない。つまり、1人のユーザが失効すれば、従来通りの方式で対応すると再暗号化するしか方法がない。しかし、上記実施の形態に係る鍵の失効方式を用いれば、関数型暗号方式を用いたハイブリッド暗号方式の場合であっても鍵の失効を実現することができる。なお、ハイブリッド暗号方式の場合、メッセージmとして、コンテンツを暗号化するための共通鍵又は共通鍵の生成元データが設定される。図12は、ユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400のハードウェア構成の一例を示す図である。図12に示すように、ユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400は、プログラムを実行するCPU911CentralProcessingUnit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいうを備えている。CPU911は、バス912を介してROM913、RAM914、LCD901LiquidCrystalDisplay、キーボード902K/B、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920固定ディスク装置の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置メモリの一例である。また、キーボード902、通信ボード915は、入力装置の一例である。また、通信ボード915は、通信装置の一例である。さらに、LCD901は、表示装置の一例である。磁気ディスク装置920又はROM913などには、オペレーティングシステム921OS、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、上記の説明において暗号化データ生成部110、データ送信部120、データ受信部130、復号部140、データ受信部210、失効判定部220、鍵情報設定部230、データ送信部240、認証処理部270、データ受信部310、データ操作部320、データ送信部330、指示受信部410、鍵生成部420、鍵送信部430等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。ファイル群924には、上記の説明において鍵管理部150、失効情報管理部250、鍵管理部260、暗号化データ管理部340、マスター鍵記憶部440等に記憶される情報やデータや信号値や変数値やパラメータが、ファイルやデータベースの各項目として記憶される。ファイルやデータベースは、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出検索参照比較演算計算処理出力印刷表示などのCPU911の動作に用いられる。抽出検索参照比較演算計算処理出力印刷表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。また、上記の説明において~部として説明するものは、~回路、~装置、~機器、~手段、~機能であってもよく、また、~ステップ、~手順、~処理であってもよい。また、~装置として説明するものは、~回路、~機器、~手段、~機能であってもよく、また、~ステップ、~手順、~処理であってもよい。さらに、~処理として説明するものは~ステップであっても構わない。すなわち、~部として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子デバイス基板配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた~部としてコンピュータ等を機能させるものである。あるいは、上記で述べた~部の手順や方法をコンピュータ等に実行させるものである。"