"鍵発行装置と、送信者装置と、受信者装置とを含み、予め定められた時間以外において暗号文の復号が失敗する時限暗号システムであって、公開パラメータpkとマスター秘密鍵skが定められた暗号が、KeyGen→ski:鍵生成アルゴリズムマスター秘密鍵skと情報iを入力とし、当該情報iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズムと、Enc→cj:暗号化アルゴリズム公開パラメータpkと情報jと暗号化対象の情報以下、平文というxを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズムと、Dec→y:復号アルゴリズム公開パラメータpkと秘密鍵skiと暗号文cjを入力とし、情報yを出力する確率的多項式時間アルゴリズムとを含み、上記情報iと上記情報jが予め定められた関係Rを満たすときに上記情報yとして上記平文xが得られるように構成されており、上記鍵発行装置は、上記情報iを上記復号アルゴリズムの実行の時的制限に係る上記予め定められた時間に関する情報t以下、時的制限情報tというを含む情報として、上記暗号の鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成する秘密鍵生成部を含み、上記送信者成装置は、上記情報jを暗号文に設定される時刻t以下、暗号化時刻tというを含む情報とし、上記暗号の暗号化アルゴリズムEncを実行して暗号文ct←Encを生成する暗号文生成部を含み、上記受信者装置は、上記秘密鍵skiを上記秘密鍵sktとし、上記暗号文cjを上記暗号文ctとして、上記暗号の復号アルゴリズムDecを実行する復号部を含む時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tを時刻とし、上記関係Rは、上記時的制限情報tに対してTを述語変数とするt≧Tなる述語と当該述語変数Tに代入されうる上記暗号化時刻tとの関係であり、上記秘密鍵生成部は、上記情報iを上記述語t≧Tとして、上記鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成することを特徴とする時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tを時刻とし、上記関係Rは、上記暗号化時刻tに対してTを述語変数とするT≧tなる述語と当該述語変数Tに代入されうる上記時的制限情報tとの関係であり、上記暗号文生成部は、上記情報jを上記述語T≧tとして、上記暗号化アルゴリズムEncを実行して暗号文ct←Encを生成することを特徴とする時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tを時刻とし、上記関係Rは、上記時的制限情報tに対してTを述語変数とするt≧Tなる述語と当該述語変数Tに代入されうる上記暗号化時刻tとの関係R1と、述語変数である第2の上記情報iと述語である第2の上記情報jとの間の関係R2とからなる関係であり、上記秘密鍵生成部は、上記情報iを上記述語t≧Tと第2の上記情報iとの結合として、上記鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成し、上記暗号文生成部は、上記情報jを上記暗号化時刻tと第2の上記情報jとの結合として、上記暗号化アルゴリズムEncを実行して暗号文ct←Encを生成すことを特徴とする時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tをn個の時間区間bieii12...nとし、上記関係Rは、Tを上記暗号化時刻tが代入されうる述語変数として、上記時的制限情報tと述語変数Tとによる論理和∨∨∨∨で表される述語と上記暗号化時刻tとの関係であり、上記秘密鍵生成部は、上記情報iを上記述語∨として、上記鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成することを特徴とする時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tをn個の時間区間bieii12...nとし、上記関係Rは、Tを上記時的制限情報tが代入されうる述語変数として、上記暗号化時刻tと述語変数Tとによる論理和∨∨∨∨で表される述語と上記時的制限情報tとの関係であり、上記暗号文生成部は、上記情報jを上記述語∨として、上記暗号化アルゴリズムEncを実行して暗号文ct←Encを生成することを特徴とする時限暗号システム。請求項1に記載の時限暗号システムにおいて、上記時的制限情報tをn個の時間区間bieii12...nとし、上記関係Rは、Tを上記暗号化時刻tが代入されうる述語変数として、上記時的制限情報tと述語変数Tとによる論理和∨∨∨∨で表される述語と上記暗号化時刻tとの関係R1と、述語変数である第2の上記情報iと述語である第2の上記情報jとの間の関係R2とからなる関係であり、上記秘密鍵生成部は、上記情報iを上記述語∨と第2の上記情報iとの結合として、上記鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成し、上記暗号文生成部は、上記情報jを上記暗号化時刻tと第2の上記情報jとの結合として、上記暗号化アルゴリズムEncを実行して暗号文ct←Encを生成することを特徴とする時限暗号システム。鍵発行装置と、送信者装置と、受信者装置とを含み、予め定められた時間以外において暗号文の復号が失敗する時限暗号システムにおける時限暗号方法であって、公開パラメータpkとマスター秘密鍵skが定められた暗号が、KeyGen→ski:鍵生成アルゴリズムマスター秘密鍵skと情報iを入力とし、当該情報iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズムと、Enc→cj:暗号化アルゴリズム公開パラメータpkと情報jと暗号化対象の情報以下、平文というxを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズムと、Dec→y:復号アルゴリズム公開パラメータpkと秘密鍵skiと暗号文cjを入力とし、情報yを出力する確率的多項式時間アルゴリズムとを含み、上記情報iと上記情報jが予め定められた関係Rを満たすときに上記情報yとして上記平文xが得られるように構成されており、上記鍵発行装置の秘密鍵生成部が、上記情報iを上記復号アルゴリズムの実行の時的制限に係る上記予め定められた時間に関する情報tを含む情報として、上記暗号の鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成する秘密鍵生成ステップと、上記送信者成装置の暗号文生成部が、上記情報jを暗号文に設定される時刻tを含む情報とし、上記暗号の暗号化アルゴリズムEncを実行して暗号文ct←Encを生成する暗号文生成ステップと、上記受信者装置の復号部が、上記秘密鍵skiを上記秘密鍵sktとし、上記暗号文cjを上記暗号文ctとして、上記暗号の復号アルゴリズムDecを実行する復号ステップとを有する時限暗号方法。請求項1から請求項7のいずれかに記載の時限暗号システムにおいて用いられる上記鍵発行装置。請求項1から請求項7のいずれかに記載の時限暗号システムにおいて用いられる上記送信者装置。請求項1から請求項7のいずれかに記載の時限暗号システムにおいて用いられる上記受信者装置。請求項9に記載の鍵発行装置、請求項10に記載の送信者装置、請求項11に記載の受信者装置のいずれかとしてコンピュータを機能させるプログラム。しかし、秘密鍵を管理するスキルの乏しいユーザは秘密鍵の更新を怠りがちである。そこで本発明は、暗号文に設定された時刻暗号化時刻が予め設定された時的制限情報復号アルゴリズムの実行の時的制限に係る予め定められた時間に関する情報を満たさない場合に暗号文の復号に失敗する時限暗号技術を提供することを目的とする。本発明の時限暗号技術は、次のとおりである。公開パラメータpkとマスター秘密鍵skが定められた暗号が、KeyGen→ski:鍵生成アルゴリズムマスター秘密鍵skと情報iを入力とし、当該情報iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズムと、Enc→cj:暗号化アルゴリズム公開パラメータpkと情報jと暗号化対象の情報以下、平文というxを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズムと、Dec→y:復号アルゴリズム公開パラメータpkと秘密鍵skiと暗号文cjを入力とし、情報yを出力する確率的多項式時間アルゴリズムとを含み、情報iと情報jが予め定められた関係Rを満たすときに情報yとして平文xが得られるように構成されている。時限暗号システムを構成する鍵発行装置では、情報iを復号アルゴリズムの実行の時的制限に係る予め定められた時間に関する情報t時的制限情報tを含む情報として、暗号の鍵生成アルゴリズムKeyGenを実行して秘密鍵skt←KeyGenを生成する秘密鍵生成処理。時限暗号システムを構成する送信者成装置では、情報jを暗号文に設定される時刻t暗号化時刻tを含む情報とし、暗号の暗号化アルゴリズムEncを実行して暗号文ct←Encを生成する暗号文生成処理。時限暗号システムを構成する受信者装置では、秘密鍵skiを秘密鍵sktとし、暗号文cjを暗号文ctとして、暗号の復号アルゴリズムDecを実行する復号処理。本発明に拠れば、暗号化時刻が時的制限情報を満たさない場合に暗号文の復号に失敗するので、秘密鍵を利用するユーザつまり、受信者装置のユーザに対して秘密鍵の更新を動機付けることになる。また、仮に秘密鍵が漏洩しても、時的制限情報を満たさない時刻が設定された暗号文は、時的制限情報を満たす時刻以外の時刻において復号されないので、当該暗号文の安全性が高まる。《原理》本発明の時限暗号は関数型暗号を利用して実現される。そこでまず関数型暗号について説明する。<関数型暗号>近年、関数型暗号と呼ばれるIDベース暗号の拡張暗号が開発されている。関数型暗号とIDベース暗号には構文の違いは全く無い。即ち、関数型暗号も下記の4つのアルゴリズムから構成される。プロトコルの概略は下記のとおりである。《プロトコルFE》========================================Setup→:セットアップアルゴリズムセキュリティパラメータ1λを入力とし、公開パラメータpkとマスター秘密鍵skを出力する確率的多項式時間アルゴリズムKeyGen→ski:鍵生成アルゴリズムマスター秘密鍵skと鍵識別子iを入力とし、当該鍵識別子iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズムEnc→cj:暗号化アルゴリズム公開パラメータpkと受信者識別子jと暗号化対象の情報平文xを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズムDec→y:復号アルゴリズム公開パラメータpkと秘密鍵skiと暗号文cjを入力とし、平文yを出力する確率的多項式時間アルゴリズム========================================関数型暗号では、IDベース暗号の正当性が拡張されており、暗号文の受信者は鍵識別子iを持つ秘密鍵と受信者識別子jを持つ暗号文から平文xに関する何らかの関数fijを評価することができるようになっている。即ち、或る関数fijが存在し∀i∈01poly,∀j∈01poly,∀x∈01polyに対して式1で表される確率Prがλに関して圧倒的1との差が無視しうるであるとき、その関数型暗号は正当であると云う。なお、polyはλで決まる多項式長を表している。特に、或る関係Rが存在し、式2で表されるタイプの関数fijを持つ関数型暗号は様々な暗号を包含している⊥は正常に復号できなかったことを表す記号である。例えばIDベース暗号は式3で表される関数fijを持つ関数型暗号と定義することができる。より高度な関係Rを持つ様々な関数型暗号が研究されている。このタイプの関数型暗号のうち最も汎用性の高いものは属性ベース暗号あるいは述語暗号等と呼ばれ、よく研究されている。2010年に岡本龍明らは多項式サイズの述語および述語変数の集合に対応し、標準的な暗号学的仮定の下で適応的識別子攻撃に対してCCA安全が証明できる比較的実用的なこのタイプの関数型暗号を提案した参考文献1参照。参考文献1TatsuakiOkamotoandKatsuyukiTakashimaFullySecureFunctionalEncryptionwithGeneralRelationsfromtheDecisionalLinearAssumptionInternationalCryptologyConferenceCRYPTOpp191208November2010鍵識別子iを述語、受信者識別子jを述語変数のインスタンスとして式4で表される関係Rを持つ関数型暗号は鍵ポリシー関数型暗号と呼ばれる。鍵識別子iを述語変数、受信者識別子jを述語のインスタンスとして式5で表される関係Rを持つ関数型暗号は暗号文ポリシー関数型暗号と呼ばれる。鍵識別子iaと受信者識別子jaを述語変数、鍵識別子ipと受信者識別子jpを述語のインスタンスとし、iia∥ip,jja∥jpとして、式6で表される関係Rを持つ関数型暗号は統合ポリシー関数型暗号と呼ばれる参考文献2参照。記号∥は、識別子同士の結合例えば、バイナリ表現された識別子同士のバイナリ結合を表す。参考文献2NuttapongAttrapadungandHidekiImaiDualPolicyAttributeBasedEncryptionACNS2009LNCS5536pp1681852009<関数型暗号を用いた時限暗号>IDベース暗号と関数型暗号の構文アルゴリズムの入出力インターフェイスは完全に一致している。従って、同じような安全性を持つならば時限暗号に関してIDベース暗号の代わりに関数型暗号を利用できる。xを平文、tを予め設定された時的制限情報復号アルゴリズムの実行の時的制限に係る予め定められた時間に関する情報である。以下、時的制限情報を特に断りのない限り復号可能限界時刻と呼ぶことにする、tを暗号文に設定された暗号化時刻通常、暗号化アルゴリズムを実行する時の時刻とされる。以下、暗号化時刻を特に断りのない限り暗号文生成時刻と呼ぶことにするとして、式7で表される関数fttを持つ関数型暗号を利用できるならば、暗号化時刻tが時的制限情報tを満たさない場合、暗号文の復号に失敗することになる。なお、時的制限情報tを決定するイニシアティブは、通常、鍵発行装置または受信者装置を利用する者にあり、暗号化時刻tを決定するイニシアティブは、通常、送信者装置を利用する者にある。時的制限情報tを決定するイニシアティブが受信者装置を利用する者にある場合、事前に、時的制限情報tを表す情報が受信者装置から鍵発行装置に伝達されているとする。時的制限情報tが時刻を表す場合を考える。式7で表される関数fttによると、復号可能限界時刻tが暗号文生成時刻tより小さい場合つまり、暗号文生成時刻tが復号可能限界時刻tより遅い時、復号時に⊥が出力され、復号可能限界時刻tが暗号文生成時刻t以上の場合つまり、暗号文生成時刻tが復号可能限界時刻tより遅くない時、復号時に平文xが出力される。t≧tあるいはその否定であるt<tは関係Rによって表現できるところ、このような関数型暗号を属性ベース暗号に基づいて構成する方法は3通り存在する。1鍵ポリシー関数型暗号を用いる方法:この場合、鍵発行装置は、tを復号可能限界時刻、tを述語変数として、t≧tなる述語鍵識別子iに関して秘密鍵sktを生成する。送信者装置は、暗号文生成時刻tを属性に持つ暗号文ctを生成し、当該暗号文ctを受信者装置に送信する。2暗号文ポリシー関数型暗号を用いる方法:この場合、鍵発行装置は、復号可能限界時刻tを属性に持つ秘密鍵sktを生成する。送信者装置は、tを述語変数、tを暗号文生成時刻として、t≧tなる述語に関して暗号文ctを生成し、当該暗号文ctを受信者装置に送信する。3統合ポリシー関数型暗号を用いる方法:この場合、鍵発行装置は、iaを受信者の属性受信者の属性として、受信者装置の属性や受信者装置を利用するユーザの属性などが挙げられ、特に限定は無い、tを復号可能限界時刻、tを述語変数として、t≧tなる述語ipと受信者の属性iaに関して秘密鍵skia∥を生成する。送信者装置は、jaを暗号文生成時刻t、jpを復号のための条件以下、必要条件というのうちの一つを表す述語として、述語jpと暗号文生成時刻tに関して暗号文ct∥jpを生成し、当該暗号文ct∥jpを受信者装置に送信する。このタイプの関数型暗号に拠ると、必要条件は述語ipと述語jpの二つであり、具体的には、受信者装置はt≧t受信者識別子ja暗号文生成時刻tが、述語ipt≧tを満たす且つ鍵識別子ia受信者の属性iaが、述語jpを満たす場合に暗号文ct∥jpを復号できる。必要条件を構成する述語jpは任意に定められる。いずれの場合であっても秘密鍵sktおよび暗号文ctを持つ受信者装置はt≧tなる時に暗号文ctを復号できる。例えば、述語変数復号可能限界時刻が代入されると暗号文生成時刻をビット表現された整数と見做せば、復号可能限界時刻と暗号文生成時刻との大小判定を、述語変数を用いた述語として表現できる。従って、述語の充足によって復号可能か否かが決まる関数型暗号があれば、ビット表現された整数の大小判定の結果によって復号可能か否かが決定される関数型暗号を構成することができる。例えば、図4と図5に示すように比較する定数のビットイメージに対応して論理積andや論理和orで述語変数を合成することによって述語を決定できる。図4では整数変数tと定数tとの間におけるt>tの関係を記述する述語を示してある。なお、t≦tの関係を記述する述語は、t>tの関係を記述する述語の否定¬によって表される。図5では整数変数tと定数tとの間におけるt≧tの関係を記述する述語を示してある。なお、t<tの関係を記述する述語は、t≧tの関係を記述する述語の否定¬によって表される。《実施形態》[時限暗号システム]実施形態の時限暗号システム1は、図1に示すように、鍵発行装置100と、送信者装置200と、受信者装置300とを少なくとも含んで構成される。これらの各装置は、例えばインターネットなどの通信網5を経由して、相互に通信可能とされている。本発明の時限暗号システムは、ユーザの数に応じて一つまたは複数の送信者装置200と一つまたは複数の受信者装置300を含みえるが、本発明の理解を容易にするため、後述の実施形態では、時限暗号システム1は、1個の鍵発行装置100と1個の送信者装置200と1個の受信者装置300を含むとする。時限暗号システム1における時限暗号処理を、図2を参照しながら叙述する。各装置の機能構成については、図3を参照されたい。実施例1復号可能限界時刻tを鍵識別子、暗号文生成時刻tを受信者識別子として、上記式7で表される関数fttを持つ関数型暗号を利用する。プロトコルの概略は下記のとおりである。なお、このような関数型暗号であれば何ら限定はないので、ここでは一般的な説明をするに留めるが、実用の局面ではSetupKeyGenEncDecの各アルゴリズムが具体的に決まっているから、当然、当該各アルゴリズムを実行することになる。《プロトコルTRCFE》========================================鍵発行装置は、《プロトコルFE》で説明したセットアップアルゴリズムSetupを実行して公開パラメータpkとマスター秘密鍵skを生成し、公開パラメータpkを公開する。鍵発行装置は、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵sktを生成する。ただし、tは予め設定された復号可能限界時刻である。送信者装置は、暗号文生成時刻をt、平文をxとして、《プロトコルFE》で説明した暗号化アルゴリズムEncを実行して暗号文ctを生成し、暗号文ctを受信者装置に送信する。受信者装置は、鍵発行装置から秘密鍵sktを取得して、《プロトコルFE》で説明した復号アルゴリズムDecを実行して、t≧tを満たす場合に平文xを得る。========================================まず、鍵発行装置100の初期設定部101が、《プロトコルFE》で説明したセットアップアルゴリズムSetupを実行して公開パラメータpkとマスター秘密鍵skを生成しステップS1、公開パラメータpkを公開するステップS1a。公開パラメータpkの公開は、例えば、送信者装置200や受信者装置300から鍵発行装置100にアクセスがあった場合に鍵発行装置100の送信部108が鍵発行装置100の記憶部図示せずに記憶されている公開パラメータpkを送信者装置200や受信者装置300に対して送信する手順や、送信者装置200や受信者装置300からのアクセスを問わず、鍵発行装置100の送信部108が鍵発行装置100の記憶部図示せずに記憶されている公開パラメータpkを送信者装置200や受信者装置300に対して送信する手順によって達成される。そして、鍵発行装置100の秘密鍵生成部102は、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵sktを生成するステップS2。ただし、tは予め設定された復号可能限界時刻である。鍵発行装置100の送信部108は、秘密鍵生成部102によって生成された秘密鍵sktを受信者装置300に送信し、受信者装置300の受信部309が秘密鍵sktを受信するステップS3。秘密鍵sktは受信者装置300の記憶部図示せずに記憶される。なお、ステップS3の処理は、ステップS2の処理の後であって後述するステップS6の処理の前であれば何時でも実行されてよい。送信者装置200の暗号文生成部201は、暗号文生成時刻をt、平文をxとして、送信者装置200の受信部209が受信した公開パラメータpkを用いて、《プロトコルFE》で説明した暗号化アルゴリズムEncを実行して暗号文ctを生成するステップS4。送信者装置200は事実上、暗号文生成時刻tを自由に設定しえる例えば、暗号文生成時刻tを送信者装置200の内部時計から取得した時刻とする場合、当該内部時計が正しく設定されていない状況が想定されうる。しかし、暗号文生成時刻tは復号可能限界時刻tとの関係で重要な情報であるから、暗号文生成部201は、送信者装置200の外部から供給される協定世界時UTCUniversalTimeCoordinatedや日本標準時JSTJapanStandardTimeなどに基づく現在時刻に従って暗号文生成時刻tを設定することが好ましい。具体的には、暗号文生成部201は、暗号化アルゴリズムを実行する時の協定世界時や日本標準時などに基づく現在時刻を暗号文生成時刻tとして設定するのである。協定世界時や日本標準時を利用する場合、送信者装置200は協定世界時や日本標準時を受信できる構成としておくことが望ましい。なお、このことは、他の実施例でも同様である。なお、送信者装置200の内部時計から取得した時刻を暗号文生成時刻tとする場合、少なくとも送信者装置200と復号可能限界時刻tの決定に関与する装置この場合、鍵発行装置100または受信者装置300との間で可能な限りつまり、例えば数秒程度の誤差を許容するとしても相互の時計を同期させておくことが望ましい。同期方法としては、例えば、復号可能限界時刻tの決定に関与する装置鍵発行装置100または受信者装置300が通信網5を経由して送信者装置200に、当該装置鍵発行装置100または受信者装置300の内部時計の時刻を常時提供するようにすればよい。厳密には、当該装置鍵発行装置100または受信者装置300の内部時計と復号可能限界時刻tとの間に直接の関連は無い。しかし、復号可能限界時刻tが当該装置鍵発行装置100または受信者装置300の内部時計を参考にして決定される場合があるから、当該装置鍵発行装置100または受信者装置300と送信者装置200との間で相互の時計を同期させておくことに意味が無いわけではない。送信者装置200の送信部208は、暗号文生成部201によって生成された暗号文ctを受信者装置300に対して送信し、受信者装置300の受信部309が暗号文ctを受信するステップS5。暗号文ctは受信者装置300の記憶部図示せずに記憶される。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵skt、公開パラメータpk、暗号文ctを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行するステップS6。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、関係Rここではt≧tであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係Rが真となる場合、つまりt≧tを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧tを満たさない場合に復号部301は平文xを得ることができない。実施例2実施例2は、実施例1における関数型暗号として鍵ポリシー関数型暗号による場合の実施例である。実施例1を鍵ポリシー関数型暗号として具体化した事項について説明を加え、実施例1と同じ事項は説明を省略する。実施例2では、実施例1のステップS2の処理にて、次のような処理を行う。鍵発行装置100の秘密鍵生成部102が、tを復号可能限界時刻、Tを述語変数として、t≧Tなる述語に関して、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵skt≧Tを生成する。実施例2では、実施例1のステップS3の処理にて、次のような処理を行う。鍵発行装置100の送信部108は、秘密鍵生成部102によって生成された秘密鍵skt≧Tを受信者装置300に送信し、受信者装置300の受信部309が秘密鍵skt≧Tを受信するステップS3。秘密鍵skt≧Tは受信者装置300の記憶部図示せずに記憶される。実施例2では、実施例1のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵skt≧T、公開パラメータpk、暗号文ctを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、式4で表される関係RここではRであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧tを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧tを満たさない場合に復号部301は平文xを得ることができない。実施例3実施例3は、実施例1における関数型暗号として暗号文ポリシー関数型暗号による場合の実施例である。実施例1を暗号文ポリシー関数型暗号として具体化した事項について説明を加え、実施例1と同じ事項は説明を省略する。実施例3では、実施例1のステップS4の処理にて、次のような処理を行う。送信者装置200の暗号文生成部201は、述語変数をT、暗号文生成時刻をt、平文をxとして、T≧tなる述語に関して、送信者装置200の受信部209が受信した公開パラメータpkを用いて、《プロトコルFE》で説明した暗号化アルゴリズムEncを実行して暗号文cT≧tを生成する。実施例3では、実施例1のステップS5の処理にて、次のような処理を行う。送信者装置200の送信部208は、暗号文生成部201によって生成された暗号文cT≧tを受信者装置300に対して送信し、受信者装置300の受信部309が暗号文cT≧tを受信するステップS5。暗号文cT≧tは受信者装置300の記憶部図示せずに記憶される。実施例3では、実施例1のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵skt、公開パラメータpk、暗号文cT≧tを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、式5で表される関係RここではRであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧tを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧tを満たさない場合に復号部301は平文xを得ることができない。実施例4実施例4は、実施例1における関数型暗号として統合ポリシー関数型暗号による場合の実施例である。実施例1を統合ポリシー関数型暗号として具体化した事項について説明を加え、実施例1と同じ事項は説明を省略する。実施例4では、実施例1のステップS2の処理にて、次のような処理を行う。鍵発行装置100の秘密鍵生成部102が、iaを受信者の属性例えば受信者装置300の属性、tを復号可能限界時刻、Tを述語変数として、t≧Tなる述語ipと受信者の属性iaとの結合に関して、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵skia∥を生成する。実施例4では、実施例1のステップS3の処理にて、次のような処理を行う。鍵発行装置100の送信部108は、秘密鍵生成部102によって生成された秘密鍵skia∥を受信者装置300に送信し、受信者装置300の受信部309が秘密鍵skia∥を受信するステップS3。秘密鍵skia∥は受信者装置300の記憶部図示せずに記憶される。実施例4では、実施例1のステップS4の処理にて、次のような処理を行う。送信者装置200の暗号文生成部201は、暗号文生成時刻をt、必要条件のうちの一つを表す述語をjp、平文をxとして、述語jpと暗号文生成時刻tとの結合に関して、送信者装置200の受信部209が受信した公開パラメータpkを用いて、《プロトコルFE》で説明した暗号化アルゴリズムEncを実行して暗号文ct∥jpを生成する。実施例4では、実施例1のステップS5の処理にて、次のような処理を行う。送信者装置200の送信部208は、暗号文生成部201によって生成された暗号文ct∥jpを受信者装置300に対して送信し、受信者装置300の受信部309が暗号文ct∥jpを受信するステップS5。暗号文ct∥jpは受信者装置300の記憶部図示せずに記憶される。実施例4では、実施例1のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵skia∥、公開パラメータpk、暗号文ct∥jpを用いて、《プロトコルFE》で説明した復号アルゴリズムDecct∥jpを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecct∥jpにて、式6で表される関係RここではR∧Rであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧t且つ受信者の属性iaが述語jpを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧t且つ受信者の属性iaが述語jpを満たすが成立しない場合に復号部301は平文xを得ることができない。実施例5実施例5は、実施例2の変形例である。実施例2では、鍵発行装置100の秘密鍵生成部102が、tを復号可能限界時刻、Tを述語変数として、t≧Tなる述語に関して鍵生成アルゴリズムKeyGenを実行して秘密鍵skt≧Tを生成していた。実施例5は、述語が拡張された例である。実施例5では、t≧Tなる述語ではなく、時的制限情報tとしての任意の有限個の時間区間bieii12...nと暗号化時刻tが代入されうる述語変数Tとで構成される論理和∨∨i∈12...n∨∨∨を述語とする。なお、n個の時間区間bieii12...nのうち少なくともいずれかにおいてbieiであってもよい。従って、実施例5では、実施例2のステップS2の処理にて、次のような処理を行う。鍵発行装置100の秘密鍵生成部102が、時的制限情報tを任意の有限個の時間区間bieii12...n、Tを暗号化時刻tが代入されうる述語変数として、∨i∈12...nなる述語に関して、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵sktTを生成する。そして、実施例5では、実施例2のステップS3の処理にて、次のような処理を行う。鍵発行装置100の送信部108は、秘密鍵生成部102によって生成された秘密鍵sktTを受信者装置300に送信し、受信者装置300の受信部309が秘密鍵sktTを受信するステップS3。秘密鍵sktTは受信者装置300の記憶部図示せずに記憶される。さらに、実施例5では、実施例2のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵sktT、公開パラメータpk、暗号文ctを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、式4で表される関係RここではR,Ttであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧tを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧tを満たさない場合に復号部301は平文xを得ることができない。実施例6実施例6は、実施例3の変形例である。実施例3では、送信者装置200の暗号文生成部201が、述語変数をT、暗号文生成時刻をt、平文をxとして、T≧tなる述語に関して暗号化アルゴリズムEncを実行して暗号文cT≧tを生成していた。実施例6は、述語が拡張された例である。実施例6では、T≧tなる述語ではなく、暗号化時刻tと任意の有限個の時間区間bieii12...nで表される時的制限情報tが代入されうる述語変数Tとで構成される論理和∨∨i∈12...n∨∨∨を述語とする。なお、n個の時間区間bieii12...nのうち少なくともいずれかにおいてbieiであってもよい。従って、実施例6では、実施例3のステップS4の処理にて、次のような処理を行う。送信者装置200の暗号文生成部201は、Tを任意の有限個の時間区間bieii12...nで表される時的制限情報tが代入されうる述語変数、tを暗号化時刻、平文をxとして、∨∨i∈12...n∨∨∨なる述語に関して、送信者装置200の受信部209が受信した公開パラメータpkを用いて、《プロトコルFE》で説明した暗号化アルゴリズムEncxを実行して暗号文cTtを生成する。実施例6では、実施例3のステップS5の処理にて、次のような処理を行う。送信者装置200の送信部208は、暗号文生成部201によって生成された暗号文cTtを受信者装置300に対して送信し、受信者装置300の受信部309が暗号文cTtを受信する。暗号文cTtは受信者装置300の記憶部図示せずに記憶される。実施例6では、実施例3のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵skt、公開パラメータpk、暗号文cTtを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、式5で表される関係RここではR,Ttであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧tを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧tを満たさない場合に復号部301は平文xを得ることができない。実施例7実施例7は、実施例4の変形例である。実施例4では、鍵発行装置100の秘密鍵生成部102が、iaを受信者の属性例えば受信者装置300の属性、tを復号可能限界時刻、Tを述語変数として、t≧Tなる述語ipと受信者の属性iaとの結合に関して、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵skia∥を生成していた。実施例7は、述語が拡張された例である。実施例7では、t≧Tなる述語ではなく、時的制限情報tとしての任意の有限個の時間区間bieii12...nと暗号化時刻tが代入されうる述語変数Tとで構成される論理和∨∨i∈12...n∨∨∨を述語とする。なお、n個の時間区間bieii12...nのうち少なくともいずれかにおいてbieiであってもよい。従って、実施例7では、実施例4のステップS2の処理にて、次のような処理を行う。鍵発行装置100の秘密鍵生成部102が、iaを受信者の属性例えば受信者装置300の属性、時的制限情報tを任意の有限個の時間区間bieii12...n、Tを暗号化時刻tが代入されうる述語変数として、∨i∈12...nなる述語に関して、《プロトコルFE》で説明した鍵生成アルゴリズムKeyGenを実行して秘密鍵sk1を生成する。そして、実施例7では、実施例4のステップS3の処理にて、次のような処理を行う。鍵発行装置100の送信部108は、秘密鍵生成部102によって生成された秘密鍵sk1を受信者装置300に送信し、受信者装置300の受信部309が秘密鍵sk1を受信する。秘密鍵sk1は受信者装置300の記憶部図示せずに記憶される。さらに、実施例7では、実施例4のステップS6の処理にて、次のような処理を行う。受信者装置300の復号部301は、受信者装置300の受信部309が受信した秘密鍵sk1、公開パラメータpk、暗号文ct∥jpを用いて、《プロトコルFE》で説明した復号アルゴリズムDecを実行する。上記式7で表されるタイプの関数fttを持つ関数型暗号によると、多くの場合、復号アルゴリズムDecにて、式6で表される関係RここではR,Tt∧Rであるの真偽を判定するための論理式やこれと等価な演算を通して当該関数fttの出力が決せられる暗号構造が組み込まれており、当該関係RがTrueとなる場合、つまりt≧t且つ受信者の属性iaが述語jpを満たす場合に復号部301は平文xを得ることができる。他方、当該関係Rが偽となる場合、つまりt≧t且つ受信者の属性iaが述語jpを満たすが成立しない場合に復号部301は平文xを得ることができない。実施例5,6,7は、例えば次のような事例において有用である。例えば、送信者装置200を扱うユーザの意図として、受信者装置300に時間区間b1e1またはb2e2ただし、b1≦e1<b2≦e2≦tとするのみで復号可能とさせたいという意図がある場合に、実施例2,3,4によると、受信者装置300は、時的制限情報tで特定される復号に関する時的制限内であれば、ユーザが意図しない時間区間e1b2に秘密鍵を用いて正しく復号するということができてしまう。しかしながら、実施例5,6,7によると、述語が時的制限情報tとして任意の有限個の時間区間bieii12...nを用いて記述されていることから、送信者装置200を扱うユーザが意図した時間帯のみで復号可能とすることができる。関数型暗号の実装については、例えば、下記特許文献が参考になる。特開2011232475号公報特開2011141472号公報特開2011128609号公報特開2010273317号公報特開2010054875号公報<補記>時限暗号システムに含まれるハードウェアエンティティ鍵発行装置、送信者装置、受信者装置は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置例えば通信ケーブルが接続可能な通信部、CPUCentralProcessingUnitキャッシュメモリやレジスタなどを備えていてもよい。、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置ドライブなどを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するRAMやレジスタなどの記憶装置を単に記憶部とした。ハードウェアエンティティでは、外部記憶装置あるいはROMなどに記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行処理される。その結果、CPUが所定の機能例えば、初期設定部、秘密鍵生成部、暗号文生成部、復号部などを実現する。各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略したこの点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネットURLhttpparimathubordeauxfr[平成23年12月12日検索]を参照のこと。KANT/KASHについては、例えばインターネットURLhttpwwwmathtuberlindealgebraやhttpwwwmathtuberlindekantkashhtml[平成23年12月12日検索]を参照のこと。。また、この点に関する文献として、参考文献Aを挙げることができる。参考文献AHCohenACourseinComputationalAlgebraicNumberTheoryGTM138SpringerVerlag1993本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVDDigitalVersatileDisc、DVD-RAMRandomAccessMemory、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritable等を、光磁気記録媒体として、MOMagnetoOpticaldisc等を、半導体メモリとしてEEP-ROMElectronicallyErasableandProgrammableReadOnlyMemory等を用いることができる。また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASPApplicationServiceProvider型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものコンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等を含むものとする。また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。"