(57)【特許請求の範囲】
【請求項１】
２つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムであり、
いずれかに一意なユーザ秘密鍵ＩＤが設定され互いに対応する鍵情報ｕ，ｙの一方が設定されたユーザ秘密鍵と、互いに対応するユーザ属性情報ｘ，ｖの一方が設定された属性秘密鍵で復号可能な暗号文を前記鍵情報ｕ，ｙの他方が設定された再暗号文に変換する再暗号化鍵とを生成する鍵生成装置と、
前記ユーザ属性情報ｘ，ｖの他方が設定された暗号文を記憶する暗号文記憶装置と、
前記鍵生成装置が生成した前記再暗号化鍵で、前記暗号文記憶装置が記憶する前記暗号文を再暗号化して再暗号文を生成する再暗号化装置と、
前記鍵生成装置が生成した前記ユーザ秘密鍵で、前記再暗号化装置が再暗号化した前記再暗号文を復号するユーザ端末と
を備えることを特徴とする暗号システム。
【請求項２】
前記鍵生成装置は、前記ユーザ秘密鍵を失効させる場合、互いに対応する新しい鍵情報ｕ’，ｙ’の一方が設定された新しいユーザ秘密鍵と、前記属性秘密鍵で復号可能な暗号文を前記鍵情報ｕ’，ｙ’の他方が設定された再暗号文に変換する新しい再暗号化鍵とを生成し、
前記再暗号化装置は、前記新しい再暗号化鍵が生成された後は、前記新しい再暗号化鍵で、前記暗号文記憶装置が記憶する暗号文を再暗号化して再暗号文を生成する
ことを特徴とする請求項１に記載の暗号システム。
【請求項３】
前記鍵生成装置は、ユーザの属性が変更された場合、互いに対応する新しいユーザ属性情報ｘ’，ｖ’の一方が設定された新しい属性秘密鍵で復号可能な暗号文を前記鍵情報ｕ，ｙの他方が設定された再暗号文に変換する新しい再暗号化鍵を生成し、
前記再暗号化装置は、前記新しい再暗号化鍵が生成された後は、前記新しい再暗号化鍵で、前記暗号文記憶装置が記憶する暗号文を再暗号化して再暗号文を生成する
ことを特徴とする請求項１に記載の暗号システム。
【請求項４】
前記鍵生成装置は、ユーザ毎に、前記ユーザ秘密鍵と前記再暗号化鍵とを生成し、
前記再暗号化装置は、前記ユーザ端末からユーザの識別情報を受信すると、受信した識別情報が示すユーザに対応する再暗号化鍵で、前記暗号文記憶装置が記憶する暗号文を再暗号化する
ことを特徴とする請求項１に記載の暗号システム。
【請求項５】
２つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムにおける鍵生成装置であり、
いずれかに一意なユーザ秘密鍵ＩＤが設定され互いに対応する鍵情報ｕ，ｙの一方が設定されたユーザ秘密鍵と、互いに対応するユーザ属性情報ｘ，ｖの一方が設定された属性秘密鍵で復号可能な暗号文を前記鍵情報ｕ，ｙの他方が設定された再暗号文に変換する再暗号化鍵とを生成する鍵生成部と、
前記鍵生成部が生成したユーザ秘密鍵をユーザ端末へ送信するとともに、前記鍵生成部が生成した再暗号化鍵を再暗号化装置へ送信する通信部と
を備えることを特徴とする鍵生成装置。
【請求項６】
２つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムにおける再暗号化装置であり、
ユーザの識別情報毎に、互いに対応するユーザ属性情報ｘ，ｖの一方が設定された属性秘密鍵で復号可能な暗号文を、いずれかに一意なユーザ秘密鍵ＩＤが設定され互いに対応する鍵情報ｕ，ｙの一方が設定された再暗号文に変換する再暗号化鍵を記憶する再暗号化鍵記憶部と、
ユーザの識別情報と暗号文とを受信すると、受信したユーザの識別情報に対応して前記再暗号化鍵記憶部が記憶した再暗号化鍵で、受信した暗号文を再暗号化して再暗号文を生成する再暗号化部と
を備えることを特徴とする再暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、鍵の失効を実現する暗号システムに関する。
【背景技術】
【０００２】
クラウドサービスの普及により、個人や企業のデータを外部のクラウドサーバに保管する機会が増えている。個人情報や企業機密が漏洩することを避けるため、暗号化したデータをクラウドサーバに保管することが多い。【０００３】
データを暗号化する際に復号条件を指定でき、復号条件を満たすユーザのみが暗号文を復号できる関数型暗号がある。関数型暗号を用いると、データ作成者がアクセス権をコントロールすることができる。そのため、機密度や公開範囲の異なる様々なデータを扱う企業等がクラウドサービスを利用する際に都合がよい。【０００４】
企業等では、ユーザの異動や退職に伴ってアクセス権が変化するケースや、例えば社員証に格納された秘密鍵を紛失するケース等が考えられる。この際に、ユーザや鍵の失効処理、すなわち「それまで読めていたデータを読めなくする処理」が必要となる。
特にクラウドサーバを共有ファイルサーバのように使う場合、クラウドサーバには過去から現在に至るまでの全てのデータが保管される可能性がある。そのため、漏えいした秘密鍵から過去の全てのデータが漏れる危険性があり、何らかの対策が必須である。【０００５】
単純な失効処理の方式としては、企業等がクラウドサーバの全ての暗号文を復号し、失効した鍵では読めないようにデータを暗号化し直した後に、クラウドサーバに保管し直すものが考えられる。しかし、失効処理が発生するたびに大量データの送受信及び暗号処理を行う必要があり、効率が悪い。【０００６】
特許文献１には、クラウドサーバの暗号文を直接ユーザに渡すのではなく、暗号文を暗号化したままで宛先を変更できる「再暗号化鍵」を利用し、個別のユーザ用暗号文に変換（再暗号化）してユーザに渡すことについて記載されている。特許文献１に記載された技術を応用すれば、再暗号化鍵の管理により失効処理を実現できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１６９９７８号広報
【非特許文献】
【０００８】
【非特許文献１】川合豊、高島克幸著、「代理人再暗号化機能を持つ関数型暗号」、２０１３年暗号と情報セキュリティシンポジウム（ＳＣＩＳ２０１３）、２０１３年１月２２日発行
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１では、ＲＳＡ暗号やＩＤベース暗号等、公開鍵と秘密鍵とが１対１の関係にある公開鍵暗号における再暗号化の仕組みを利用している。
そのため、企業等で１ユーザが複数のグループに属している場合、１ユーザに対して複数個の再暗号化鍵を管理する必要がある。例えば、所属が「総務部」で、役職が「課長」で、入社年度が「２０００年」であるユーザの場合、「総務部宛ての暗号文をユーザＡ宛てに再暗号化するための再暗号化鍵」と、「課長宛ての暗号文をユーザＡ宛てに再暗号化するための再暗号化鍵」と、「２０００年入社の人宛ての暗号文をユーザＡ宛てに再暗号化するための再暗号化鍵」との３個の再暗号化鍵を管理する必要がある。
また、アクセス権をグループのＡＮＤ条件として設定したい場合、ＡＮＤ条件に相当するグループについても再暗号化鍵を管理する必要がある。例えば、「総務部の課長」だけが読めるように暗号化したい場合、「総務部の課長宛ての暗号文をユーザＡ宛てに再暗号化するための再暗号化鍵」を管理する必要がある。そのため、ＡＮＤ条件やＯＲ条件を組み合わせた柔軟なアクセス権を設定するには、多くの再暗号化鍵を管理する必要があり、実現することが難しい。【００１０】
非特許文献１には関数型暗号における再暗号化の仕組みが記載されている。しかし、ＲＳＡ暗号やＩＤベース暗号では公開鍵と秘密鍵とが１対１の関係にあるのに対し、関数型暗号の公開鍵と秘密鍵とは多対多の関係にある点が異なっているため、非特許文献１の方式を特許文献１の方式に単純に適用することはできない。【００１１】
この発明は、関数型暗号等の柔軟なアクセス制御が可能な暗号方式における、ユーザや鍵の失効処理を効率的に実行可能とすることを目的とする。
【課題を解決するための手段】
【００１２】
この発明に係る暗号システムは、
２つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムであり、
互いに対応する鍵情報ｕ，ｙの一方が設定されたユーザ秘密鍵と、互いに対応するユーザ属性情報ｘ，ｖの一方が設定された属性秘密鍵で復号可能な暗号文を前記鍵情報ｕ，ｙの他方が設定された再暗号文に変換する再暗号化鍵とを生成する鍵生成装置と、
前記ユーザ属性情報ｘ，ｖの他方が設定された暗号文を記憶する暗号文記憶装置と、
前記鍵生成装置が生成した前記再暗号化鍵で、前記暗号文記憶装置が記憶する前記暗号文を再暗号化して再暗号文を生成する再暗号化装置と、
前記鍵生成装置が生成した前記ユーザ秘密鍵で、前記再暗号化装置が再暗号化した前記再暗号文を復号するユーザ端末と
を備えることを特徴とする。
【発明の効果】
【００１３】
この発明に係る暗号システムでは、関数型暗号等の暗号方式の柔軟なアクセス制御を利用しつつ、再暗号化技術を取り入れることで、ユーザや鍵の失効処理を効率的に実行できる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る暗号システム１０の構成図。
【図２】実施の形態１に係る暗号文記憶装置２０１の構成図。
【図３】暗号文記憶部２１１が記憶する情報の一例を示す図。
【図４】実施の形態１に係る再暗号化装置３０１の構成図。
【図５】公開パラメータ記憶部３１１が記憶する情報の一例を示す図。
【図６】再暗号化鍵記憶部３１２が記憶する情報の一例を示す図。
【図７】実施の形態１に係る鍵生成装置４０１の構成図。
【図８】マスタ鍵情報記憶部４１１が記憶する情報の一例を示す図。
【図９】鍵情報記憶部４１２が記憶する情報の一例を示す図。
【図１０】認証情報記憶部４１３が記憶する情報の一例を示す図。
【図１１】実施の形態１に係る属性管理装置５０１の構成図。
【図１２】属性情報記憶部５１１が記憶する情報の一例を示す図。
【図１３】認証情報記憶部５１２が記憶する情報の一例を示す図。
【図１４】実施の形態１に係るユーザ端末６０１の構成図。
【図１５】公開パラメータ記憶部６１１が記憶する情報の一例を示す図。
【図１６】ユーザ秘密鍵記憶部６１２が記憶する情報の一例を示す図。
【図１７】システム全体の初期設定の流れを示すフローチャート。
【図１８】ユーザ登録処理の流れを示すフローチャート。
【図１９】データ登録処理の流れを示すフローチャート。
【図２０】データ取得処理の流れを示すフローチャート。
【図２１】ユーザ秘密鍵更新処理の流れを示すフローチャート。
【図２２】鍵情報記憶部４１２が記憶する情報の一例を示す図。
【図２３】ユーザ秘密鍵記憶部６１２が記憶する情報の一例を示す図。
【図２４】再暗号化鍵記憶部３１２が記憶する情報の一例を示す図。
【図２５】ユーザ属性更新処理の流れを示すフローチャート。
【図２６】属性情報記憶部５１１が記憶する情報の一例を示す図。
【図２７】鍵情報記憶部４１２が記憶する情報の一例を示す図。
【図２８】再暗号化鍵記憶部３１２が記憶する情報の一例を示す図。
【図２９】実施の形態１に示した暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１のハードウェア構成の例を示す図。
【発明を実施するための形態】
【００１５】
実施の形態１．
以下の説明では、暗号方式として、関数型暗号における再暗号化方式（非特許文献１参照）を用いる。関数型暗号における再暗号化方式は、関数型暗号で暗号化されたデータを、暗号化したままで宛先を変更できる方式である。
【００１６】
関数型暗号における再暗号化方式は、以下の（１）（２）の特徴を持つ。
（１）暗号化鍵と復号鍵とは、それぞれ情報ｘと情報ｖとが設定されている。そして、情報ｘと情報ｖとが対応する場合に限り、復号鍵ｄｋｖは暗号化鍵ｅｋｘで暗号化された暗号文を復号することができる。
（２）暗号化鍵と復号鍵とに情報ｘと情報ｖとがそれぞれ設定されていることに加え、再暗号化鍵は２つの情報（ｕ，ｖ）が設定されている。そして、情報ｘと情報ｖとが対応する場合に限り、再暗号化鍵ｒｋ（ｕ，ｖ）は、暗号化鍵ｅｋｘで暗号化された暗号文を、暗号化鍵ｅｋｕで暗号化された暗号文に変更することができる。
ここで、情報ｘと情報ｖとは、例えば、一方がポリシー（復号条件）で、他方がポリシーに対する入力値である。この場合、情報ｘと情報ｖとが対応するとは、入力値がポリシーを満たすということである。
【００１７】
関数型暗号における再暗号化方式には、暗号文にポリシーを設定した暗号文ポリシー型の方式と、復号鍵にポリシーを設定した鍵ポリシー型の方式とがある。
例えば、暗号文ポリシー型の方式の場合、暗号文に「総務部、または部長のみが復号可能」のようにユーザの属性に関する復号条件が設定され、復号鍵に「所属＝総務部、役職＝課長、入社年度＝２０００年」のようにユーザの属性情報が設定される。一方、鍵ポリシー型の方式の場合、暗号文に「所属＝総務部、役職＝課長、入社年度＝２０００年」のようにユーザの属性情報が設定され、復号鍵に「総務部、または部長のみが復号可能」のようにユーザの属性に関する復号条件が設定される。
ここでは、暗号文ポリシー型の方式を用いて説明を行う。しかし、単に暗号化鍵と復号鍵とに設定する情報を入れ替えることで、鍵ポリシー型の方式を用いた方式とすることができる。
【００１８】
なお、暗号文に設定された復号条件を復号鍵に設定された属性情報が満たす場合に、暗号文を復号鍵で復号可能な暗号化方式における再暗号化方式であれば、非特許文献１に記載された以外の再暗号化方式を用いてもよい。
【００１９】
図１は、実施の形態１に係る暗号システム１０の構成図である。
暗号システム１０は、ネットワーク１０１を介して、暗号文記憶装置２０１と、再暗号化装置３０１と、鍵生成装置４０１と、属性管理装置５０１と、複数のユーザ端末６０１とが接続されている。
【００２０】
図２は、実施の形態１に係る暗号文記憶装置２０１の構成図である。
暗号文記憶装置２０１は、暗号文を保持し、ユーザ端末６０１からの要求に応じて暗号文の送受信を行う。暗号文記憶装置２０１は、暗号文記憶部２１１、通信部２３１を備える。
【００２１】
暗号文記憶部２１１は、図３に示すように、暗号文を、対応するデータＩＤと関連付けて記憶する記憶装置である。暗号文の例としては、文書や画像等のファイルを暗号化したもの、氏名等の文字列を暗号化したもの、年齢等の数値を暗号化したもの等が挙げられる。暗号文記憶部２１１は、１つのデータＩＤに対して複数個・複数種類の暗号文を記憶してもよい。また、暗号文記憶部２１１は、暗号文を、検索用のキーワード等と関連付けて記憶してもよい。
【００２２】
通信部２３１は、ユーザ端末６０１等と通信を行う。
【００２３】
図４は、実施の形態１に係る再暗号化装置３０１の構成図である。
再暗号化装置３０１は、復号条件が設定された暗号文を受信し、受信した暗号文を特定のユーザ向けに再暗号化してユーザ端末６０１に送信する。再暗号化装置３０１は、公開パラメータ記憶部３１１、再暗号化鍵記憶部３１２、再暗号化部３２１、通信部３３１を備える。
【００２４】
公開パラメータ記憶部３１１は、図５に示すように、データの再暗号化に必要な、関数型暗号の公開パラメータを記憶する記憶装置である。
【００２５】
再暗号化鍵記憶部３１２は、図６に示すように、復号条件が設定された暗号文を、特定のユーザ向けに再暗号化するための再暗号化鍵を、対応するユーザＩＤと関連付けて記憶する記憶装置である。
【００２６】
再暗号化部３２１は、復号条件が設定された暗号文を、再暗号化鍵記憶部３１２が記憶した再暗号化鍵で再暗号化し、特定のユーザ向けの暗号文を出力する。再暗号化処理は、既存の暗号技術（ここでは、非特許文献１に記載された暗号技術）を用いて実現される。
【００２７】
通信部３３１は、属性管理装置５０１やユーザ端末６０１等と通信を行う。
【００２８】
図７は、実施の形態１に係る鍵生成装置４０１の構成図である。
鍵生成装置４０１は、データの暗号化・復号に必要な、関数型暗号の鍵（公開パラメータ及び秘密鍵）と、データの再暗号化に必要な、関数型暗号の再暗号化鍵とを生成する。鍵生成装置４０１は、マスタ鍵情報記憶部４１１、鍵情報記憶部４１２、認証情報記憶部４１３、鍵生成部４２１、認証部４２２、通信部４３１を備える。
【００２９】
マスタ鍵情報記憶部４１１は、図８に示すように、関数型暗号におけるマスタ秘密鍵と公開パラメータとを記憶する記憶装置である。
【００３０】
鍵情報記憶部４１２は、図９に示すように、各ユーザの属性に対応する秘密鍵（以降、属性秘密鍵と記す）と、各ユーザ向けの暗号文を復号するための秘密鍵（以降、ユーザ秘密鍵と記す）のＩＤ（ユーザ秘密鍵ＩＤ）とを、対応するユーザＩＤと関連付けて記憶する記憶装置である。
【００３１】
認証情報記憶部４１３は、図１０に示すように、属性管理装置５０１との認証処理に必要な情報（ここでは、属性管理装置５０１のＩＤ（属性管理装置ＩＤ）とパスワード）を記憶する記憶装置である。
【００３２】
鍵生成部４２１は、関数型暗号の鍵と、再暗号化鍵とを生成する。鍵の生成処理は、既存の暗号技術（ここでは、非特許文献１に記載された暗号技術）を用いて実現される。
【００３３】
認証部４２２は、属性管理装置５０１との間で認証処理を実行する。認証処理は、既存の認証技術を用いて実現される。
【００３４】
通信部４３１は、属性管理装置５０１等と通信を行う。
【００３５】
図１１は、実施の形態１に係る属性管理装置５０１の構成図である。
属性管理装置５０１は、各ユーザの属性を管理し、管理する属性に基づいてユーザ秘密鍵と再暗号化鍵との生成を鍵生成装置４０１に依頼する。属性管理装置５０１は、属性情報記憶部５１１、認証情報記憶部５１２、認証部５２１、登録部５２２、通信部５３１を備える。
【００３６】
属性情報記憶部５１１は、図１２に示すように、各ユーザの属性を、対応するユーザＩＤと関連付けて記憶する記憶装置である。
【００３７】
認証情報記憶部５１２は、図１３に示すように、鍵生成装置４０１との認証処理に必要な情報（ここでは、属性管理装置５０１のＩＤ（属性管理装置ＩＤ）とパスワード）を記憶する記憶装置である。
【００３８】
認証部５２１は、鍵生成装置４０１との間で認証処理を実行する。認証処理は、既存の認証技術を用いて実現される。
【００３９】
登録部５２２は、ユーザの属性情報の登録を行う。登録処理は、例えば、管理者が入力画面等を操作することにより行われる。
【００４０】
通信部５３１は、再暗号化装置３０１や鍵生成装置４０１やユーザ端末６０１と通信を行う。
【００４１】
図１４は、実施の形態１に係るユーザ端末６０１の構成図である。
ユーザ端末６０１は、暗号文を暗号文記憶装置２０１に記憶し、必要に応じて暗号文記憶装置２０１からの暗号文を取得して復号する。ユーザ端末６０１は、公開パラメータ記憶部６１１、ユーザ秘密鍵記憶部６１２、暗号化部６２１、復号部６２２、通信部６３１を備える。
【００４２】
公開パラメータ記憶部６１１は、図１５に示すように、データの暗号化や復号に必要な、関数型暗号の公開パラメータを記憶する記憶装置である。
【００４３】
ユーザ秘密鍵記憶部６１２は、図１６に示すように、データの復号に必要なユーザ秘密鍵を、ユーザＩＤと関連付けて記憶する記憶装置である。
【００４４】
暗号化部６２１は、復号条件を設定してデータを暗号化する。暗号化処理は、既存の暗号技術（ここでは、非特許文献１に記載された暗号技術）を用いて実現される。
【００４５】
復号部６２２は、再暗号化装置３０１から受信した再暗号文をユーザ秘密鍵で復号する。復号処理は、既存の暗号技術（ここでは、非特許文献１に記載された暗号技術）を用いて実現される。
【００４６】
通信部６３１は、暗号文記憶装置２０１や再暗号化装置３０１や属性管理装置５０１等と通信を行う。
【００４７】
暗号システム１０の動作について説明する。暗号システム１０の動作は、（１）システム全体の初期設定、（２）ユーザ登録処理、（３）データ登録処理、（４）データ取得処理、（５）ユーザ秘密鍵更新処理、（６）ユーザ属性更新処理、に大別される。
なお、以下の説明では、非特許文献１に記載された暗号技術を単に関数型暗号と記す。
【００４８】
（１）システム全体の初期設定
システム全体の初期設定は、暗号システム１０の運用で必要になる初期情報を準備する処理である。システム全体の初期設定は、暗号システム１０の運用開始前に実行される。
【００４９】
図１７は、システム全体の初期設定の流れを示すフローチャートである。
（Ｓ１０１）
鍵生成装置４０１の鍵生成部４２１は、関数型暗号の初期設定を行い、マスタ秘密鍵と公開パラメータとを生成し、マスタ鍵情報記憶部４１１に格納する。
これにより、マスタ鍵情報記憶部４１１は、図８に示す情報を記憶した状態になる。
【００５０】
（Ｓ１０２）
鍵生成装置４０１と属性管理装置５０１とは、認証に必要な情報を共有し、それぞれ認証情報記憶部４１３と認証情報記憶部５１２とに格納する。ここでは、属性管理装置ＩＤとパスワードの組を共有する。
これにより、認証情報記憶部４１３は、図１０に示す情報を記憶した状態になり、認証情報記憶部５１２は、図１３に示す情報を記憶した状態になる。
【００５１】
（Ｓ１０３）
属性管理装置５０１の通信部５３１は、鍵生成装置４０１から公開パラメータを取得し、再暗号化装置３０１に送信する。再暗号化装置３０１の通信部３３１は、公開パラメータを受信し、公開パラメータ記憶部３１１に格納する。
これにより、公開パラメータ記憶部３１１は、図５に示す情報を記憶した状態になる。
【００５２】
（２）ユーザ登録処理
ユーザ登録処理は、暗号システム１０を利用するユーザを登録する処理である。ユーザ登録処理は、（１）システム全体の初期設定の直後、及び、暗号システム１０を利用するユーザが増える度に実行される。ここでは、１ユーザを登録する処理について説明する。したがって、複数ユーザを登録する場合には、登録する人数分、以下に説明する処理を繰り返す必要がある。なお、以下の説明において、一部の例では、複数のユーザが登録された後の状態を示している。
【００５３】
図１８は、ユーザ登録処理の流れを示すフローチャートである。
（Ｓ２０１）
属性管理装置５０１の登録部５２２は、登録するユーザに対し、一意となるユーザＩＤを割り当てる。登録部５２２は、関数型暗号の秘密鍵生成に必要なユーザ属性を設定する。そして、登録部５２２は、ユーザＩＤとユーザ属性とを関連付けて属性情報記憶部５１１に格納する。
これにより、属性情報記憶部５１１は、図１２に示す情報を記憶した状態となる。図１２では、複数のユーザが登録された後の状態を示している。図１２では、例えば、総務部の課長である佐藤花子氏に対し、ユーザＩＤとしてｕｉｄ２が割り当てられ、ユーザ属性として「所属＝総務部、役職＝課長、氏名＝佐藤花子」が設定されている。
【００５４】
（Ｓ２０２）
属性管理装置５０１の認証部５２１と、鍵生成装置４０１の認証部４２２とが、認証情報記憶部５１２と認証情報記憶部４１３とに格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置ＩＤとパスワードによる認証処理が行われる。
【００５５】
（Ｓ２０３）
認証処理が成功すると、属性管理装置５０１の通信部５３１は、登録するユーザのユーザＩＤとユーザ属性とを鍵生成装置４０１に送信し、鍵の発行を依頼する。
先の例では、ユーザＩＤとしてｕｉｄ２が、ユーザ属性として「所属＝総務部、役職＝課長、氏名＝佐藤花子」が送信される。
【００５６】
（Ｓ２０４）
鍵生成装置４０１の鍵生成部４２１は、マスタ鍵情報記憶部４１１に格納されているマスタ秘密鍵及び公開パラメータと、受信したユーザ属性とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、ユーザ属性（ユーザ属性情報の一方）が設定された属性秘密鍵が生成される。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、ユーザ属性「所属＝総務部、役職＝課長、氏名＝佐藤花子」を入力として、属性秘密鍵ｓｋ２が生成される。
【００５７】
（Ｓ２０５）
鍵生成装置４０１の鍵生成部４２１は、鍵情報記憶部４１２の中で一意となるユーザ秘密鍵ＩＤ（鍵情報の一方）を生成する。ここでは、ｕｋｉｄｉが生成されたとする。鍵生成部４２１は、マスタ秘密鍵及び公開パラメータと、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄｉ」とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、ユーザ秘密鍵ＩＤが設定されたユーザ秘密鍵が生成される。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、ユーザ秘密鍵ＩＤとしてｕｋｉｄ２を生成した上で、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」を入力として、ユーザ秘密鍵ｕｋ２が生成される。
【００５８】
（Ｓ２０６）
鍵生成装置４０１の鍵生成部４２１は、公開パラメータと、属性秘密鍵と、復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄｉ」（鍵情報の他方）とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵が生成される。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、属性秘密鍵ｓｋ２と、復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」とを入力として、再暗号化鍵ｒｋ２が生成される。
なお、ここで生成される再暗号化鍵は、入力された属性秘密鍵で復号可能な暗号文を、入力されたユーザ秘密鍵ＩＤが設定されたユーザ秘密鍵で復号できる暗号文に再暗号化する鍵である。
【００５９】
（Ｓ２０７）
鍵生成装置４０１の鍵生成部４２１は、ユーザＩＤと、属性秘密鍵と、ユーザ秘密鍵ＩＤとを関連付けて、ステータスを「有効」に設定して鍵情報記憶部４１２に格納する。
これにより、鍵情報記憶部４１２は、図９に示す情報を記憶した状態となる。図９では、複数のユーザが登録された後の状態を示している。
【００６０】
（Ｓ２０８）
鍵生成装置４０１の通信部４３１は、公開パラメータと、ユーザ秘密鍵と、再暗号化鍵とを属性管理装置５０１に送信する。
先の例では、ユーザ秘密鍵としてｕｋ２が、再暗号化鍵としてｒｋ２が送信される。
【００６１】
（Ｓ２０９）
属性管理装置５０１の通信部５３１は、公開パラメータと、ユーザＩＤと、ユーザ秘密鍵とを、ユーザＩＤに対応するユーザ端末６０１に送信する。これらを受信したユーザ端末６０１の通信部６３１は、公開パラメータを公開パラメータ記憶部６１１に、ユーザＩＤとユーザ秘密鍵とをユーザ秘密鍵記憶部６１２に格納する。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に対応するユーザ端末６０１に情報が送信される。そして、佐藤花子氏に対応するユーザ端末６０１の公開パラメータ記憶部６１１は、図１５に示す情報を記憶した状態となり、ユーザ秘密鍵記憶部６１２は、図１６に示す情報を記憶した状態となる。
【００６２】
（Ｓ２１０）
属性管理装置５０１の通信部５３１は、ユーザＩＤと再暗号化鍵とを再暗号化装置３０１に送信する。これらを受信した再暗号化装置３０１の通信部３３１は、ユーザＩＤと再暗号化鍵とを関連付けて再暗号化鍵記憶部３１２に格納する。
先の例では、再暗号化鍵としてｒｋ２が送信され、再暗号化鍵記憶部３１２は、図６に示す情報を記憶した状態となる。図６では、複数のユーザが登録された後の状態を示している。
【００６３】
ここでのポイントは、関数型暗号の属性として、ユーザ端末６０１がデータ登録処理（手続き（３）で後述）の際に復号条件として利用しない、仮想的な属性「ユ―ザ秘密鍵ＩＤ」を導入し、同じ関数型暗号の枠組みの中で属性秘密鍵とユーザ秘密鍵とを使い分けるようにしたことである。これにより、単一の鍵生成装置４０１及び単一の公開パラメータで鍵発行や再暗号化が実現できるようになる。
【００６４】
なお、図９の例では鍵生成装置４０１の鍵情報記憶部４１２は、ユーザＩＤ、属性秘密鍵、ユーザ秘密鍵ＩＤ、ステータスを記憶している。しかし、鍵情報記憶部４１２は、手続きの途中で受信あるいは生成したユーザ属性、ユーザ秘密鍵、再暗号化鍵も記憶するようにしてもよい。また、鍵情報記憶部４１２は、属性秘密鍵を記憶せず、必要時にユーザ属性から再生成するようにしてもよい。
【００６５】
また、属性管理装置５０１は、安全上の観点からユーザ秘密鍵や再暗号化鍵を記憶しないが、公開パラメータだけは記憶するようにしてもよい。また、ユーザ秘密鍵や再暗号化鍵をユーザ端末６０１や再暗号化装置３０１に送信する際に、属性管理装置５０１を介さずに、鍵生成装置４０１から直接送信するようにしてもよい。
【００６６】
また、ユーザ端末６０１のユーザ秘密鍵記憶部６１２がユーザ属性を記憶するようにしてもよい。
【００６７】
（３）データ登録処理
データ登録処理は、データを暗号文記憶装置２０１に登録する処理である。データ登録処理は、ユーザ端末６０１がデータを登録する度に実行される。
データ登録処理では、ユーザ端末６０１がデータを暗号文記憶装置２０１に登録する場合、権限を持つユーザだけがデータを閲覧できるよう、関数型暗号で暗号化したデータを暗号文記憶装置２０１に送信する。これによって、権限を持たないユーザはもちろん、暗号文記憶装置２０１に対してもデータを秘匿することができる。
なお、以下の説明において、一部の例では、複数のデータが登録された後の状態を示している。
【００６８】
図１９は、データ登録処理の流れを示すフローチャートである。
（Ｓ３０１）
ユーザ端末６０１の暗号化部６２１は、登録するデータに対し、一意となるデータＩＤを割り当てる。
【００６９】
（Ｓ３０２）
ユーザ端末６０１の暗号化部６２１は、公開パラメータ記憶部６１１に格納されている公開パラメータと、登録するデータと、復号可能なユーザ属性を指定した復号条件（ユーザ属性情報の他方）とを入力として、関数型暗号の暗号化処理を行う。これにより、データが暗号化された暗号文が生成される。
復号条件の例としては、「所属＝総務部」（総務部のユーザのみが復号可能）、「所属＝総務部  ＡＮＤ  役職＝部長」（総務部の部長のみが復号可能）、「所属＝総務部  ＯＲ  役職＝部長」（総務部のユーザ、もしくは各部の部長のみが復号可能）等が挙げられる。また、利用する関数型暗号の方式によっては、ＡＮＤ条件とＯＲ条件だけでなく、「ＮＯＴ（所属＝総務部）  ＡＮＤ  役職＝部長」（総務部以外の部の部長のみが復号可能）のように、ＮＯＴ条件を用いることも可能である。
【００７０】
（Ｓ３０３）
ユーザ端末６０１の通信部６３１は、データＩＤと暗号文とを、暗号文記憶装置２０１に送信する。これらを受信した暗号文記憶装置２０１は、データＩＤと暗号文とを関連付けて暗号文記憶部２１１に格納する。
これにより、暗号文記憶部２１１は、図３に示す情報を記憶した状態となる。図３では、複数のデータが登録された後の状態を示している。
【００７１】
なお、データの暗号化の際、データを直接関数型暗号で暗号化するのではなく、他の暗号方式（例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の共通鍵暗号方式）でデータを暗号化し、暗号化に用いた鍵を関数型暗号で暗号化するようにしてもよい。この場合、復号の際にも関数型暗号と他の暗号方式を併用することになる。
【００７２】
また、図３の例では暗号文記憶装置２０１の暗号文記憶部２１１がデータＩＤ、暗号文を記憶しているが、暗号文記憶装置２０１はユーザ端末６０１から復号条件も受信し、これも暗号文記憶部２１１に記憶するようにしてもよい。復号条件は、ユーザ端末６０１が暗号文記憶装置２０１から必要な情報を検索するための補助情報として利用することができる。
【００７３】
（４）データ取得処理
データ取得処理は、ユーザ端末６０１が暗号文記憶装置２０１から暗号文を読み出す処理である。データ取得処理は、ユーザ端末６０１が暗号文記憶装置２０１から暗号文を読み出す度に実行される。
暗号システム１０では、ユーザや鍵の失効管理を実現するため、暗号文記憶装置２０１に保管されている暗号文が、ユーザ端末６０１単体では復号できないようになっている。暗号システム１０では、暗号文記憶装置２０１から取得した暗号文は、再暗号化装置３０１に送信され、再暗号化装置３０１で個別のユーザ向けに再暗号化される。
【００７４】
図２０は、データ取得処理の流れを示すフローチャートである。
（Ｓ４０１）
ユーザ端末６０１の通信部６３１は、取得したいデータのデータＩＤを暗号文記憶装置２０１に送信する。これを受信した暗号文記憶装置２０１は、暗号文記憶部２１１からデータＩＤに関連付けられた暗号文を取得し、ユーザ端末６０１に送信する。
【００７５】
ここで、暗号文には復号条件としてユーザ属性が指定されているため、暗号文を復号するには、その復号条件を満たすユーザ属性が設定された属性秘密鍵が必要である。ユーザ端末６０１のユーザ秘密鍵記憶部６１２に記憶されているのはユーザ秘密鍵であるため、ユーザ端末６０１は暗号文を復号することができない。
例えば、暗号文ｃ１が復号条件「所属＝総務部」で暗号化されているとする。そして、図１２に示すユーザＩＤがｕｉｄ２である佐藤花子氏が暗号文ｃ１を取得したとする。佐藤花子氏の所属は総務部であるので、本来暗号文ｃ１を復号できるはずである。しかし、佐藤花子氏が持つユーザ秘密鍵ｕｋ２は、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」を入力として生成おり、ユーザ秘密鍵ｕｋ２に設定された属性と復号条件とが対応しておらず、このままでは復号できない。
【００７６】
（Ｓ４０２）
ユーザ端末６０１の通信部６３１は、ユーザＩＤと暗号文とを再暗号化装置３０１に送信し、データの再暗号化を依頼する。これらを受信した再暗号化装置３０１は、再暗号化鍵記憶部３１２からユーザＩＤに関連付けられた再暗号化鍵を取得する。
先の例では、通信部６３１がユーザＩＤとしてｕｉｄ２を受信し、これに関連付けられた再暗号化鍵ｒｋ２を取得する。上述したように、ｒｋ２は、属性「所属＝総務部、役職＝課長、氏名＝佐藤花子」から生成された属性秘密鍵ｓｋ２で復号可能な暗号文を、復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」となるよう再暗号化するための再暗号化鍵である。
【００７７】
（Ｓ４０３）
再暗号化装置３０１の再暗号化部３２１は、公開パラメータ記憶部３１１に格納されている公開パラメータと、再暗号化鍵記憶部３１２から取得した再暗号化鍵と、受信した暗号文とを入力として、関数型暗号の再暗号化処理を行う。これにより、ユーザ秘密鍵で復号可能となる暗号文（再暗号文）が生成される。
先の例では、暗号文ｃ１が再暗号化鍵ｒｋ２で再暗号化され、復号条件が「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」である暗号文Ｃ１が生成される。
【００７８】
（Ｓ４０４）
再暗号化装置３０１の通信部３３１は、再暗号化によって生成された暗号文をユーザ端末６０１に送信する。但し、再暗号化処理が失敗した場合は、その旨をユーザ端末６０１に送信する。
【００７９】
（Ｓ４０５）
暗号文を受信したユーザ端末６０１の復号部６２２は、公開パラメータ記憶部６１１に格納されている公開パラメータと、ユーザ秘密鍵記憶部６１２に格納されているユーザ秘密鍵と、受信した暗号文とを入力として、関数型暗号の復号処理を行う。これにより、最初に指定したデータＩＤに対応するデータを得ることができる。
先の例では、ユーザ端末６０１が暗号文Ｃ１を受信し、これをユーザ秘密鍵ｕｋ２で復号する。すると、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」と復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」が適合するため、求めるデータｄ１を得ることができる。
【００８０】
以上のように、正当なユーザ端末６０１は暗号文記憶装置２０１上のデータを（自分の権限の範囲で）閲覧することができる。
【００８１】
（５）ユーザ秘密鍵更新処理
ユーザ秘密鍵更新処理は、あるユーザが持つユーザ秘密鍵を紛失もしくは漏洩した場合等に、当該ユーザに対してユーザ秘密鍵を再発行する処理である。ユーザ秘密鍵更新処理は、ユーザ秘密鍵を再発行する際に実行される。
ユーザ秘密鍵を再発行することにより、ユーザが暗号システム１０を引き続き利用できるようになる。しかし、さらに、紛失・漏えいしたユーザ秘密鍵から暗号文記憶装置２０１に記憶されたデータが漏れることを防止する必要がある。ユーザ秘密鍵更新処理では、再暗号化装置３０１が記憶する再暗号化鍵を更新することでこれを実現する。
【００８２】
図２１は、ユーザ秘密鍵更新処理の流れを示すフローチャートである。
（Ｓ５０１）
属性管理装置５０１の認証部５２１と、鍵生成装置４０１の認証部４２２とが、認証情報記憶部５１２と認証情報記憶部４１３とに格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置ＩＤとパスワードによる認証処理が行われる。
【００８３】
（Ｓ５０２）
認証処理が成功すると、属性管理装置５０１の通信部５３１は、ユーザ秘密鍵更新を行うユーザのユーザＩＤを鍵生成装置４０１に送信し、鍵の再発行を依頼する。
（２）ユーザ登録処理で例として挙げた、ユーザＩＤがｕｉｄ２である佐藤花子氏が持っていたユーザ秘密鍵ｕｋ２を更新する場合、ユーザＩＤとしてｕｉｄ２が送信される。
【００８４】
（Ｓ５０３）
鍵生成装置４０１の鍵生成部４２１は、鍵情報記憶部４１２からユーザＩＤに関連付けられた属性秘密鍵を取得する。
先の例で、鍵情報記憶部４１２が図９に示す情報を記憶している場合、属性秘密鍵ｓｋ２が取得される。
【００８５】
（Ｓ５０４）
鍵生成装置４０１の鍵生成部４２１は、鍵情報記憶部４１２の中で一意となるユーザ秘密鍵ＩＤを新たに生成する。ここでは、ｕｋｉｄｉが生成されたとする。鍵生成部４２１は、マスタ鍵情報記憶部４１１に格納されているマスタ秘密鍵及び公開パラメータと、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄｉ」とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、新たに生成されたユーザ秘密鍵ＩＤが設定されたユーザ秘密鍵が生成される。
先の例では、ユーザ秘密鍵ＩＤとして例えばｕｋｉｄ１０２を生成した上で、属性「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ１０２」を入力として、ユーザ秘密鍵ｕｋ１０２が生成される。
【００８６】
（Ｓ５０５）
鍵生成装置４０１の鍵生成部４２１は、公開パラメータと、属性秘密鍵と、Ｓ５０３で新たに生成したユーザ秘密鍵ＩＤを用いた復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄｉ」とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵を生成する。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、属性秘密鍵ｓｋ２と復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ１０２」とを入力として、再暗号化鍵ｒｋ１０２が生成される。
【００８７】
（Ｓ５０６）
鍵生成装置４０１の鍵生成部４２１は、鍵情報記憶部４１２からユーザＩＤに関連付けられたレコードを検索し、該当するレコードのステータスを「失効」に更新する。
【００８８】
（Ｓ５０７）
鍵生成装置４０１の鍵生成部４２１は、ユーザＩＤと、属性秘密鍵と、新たに生成したユーザ秘密鍵ＩＤとを関連付けて、ステータスを「有効」に設定して鍵情報記憶部４１２に格納する。
これにより、鍵情報記憶部４１２は、図９に示す情報を記憶した状態から、図２２に示す情報を記憶した状態に更新される。
【００８９】
（Ｓ５０８）
鍵生成装置４０１の通信部４３１は、新たに生成したユーザ秘密鍵と、新たに生成した再暗号化鍵とを属性管理装置５０１に送信する。
先の例では、ユーザ秘密鍵としてｕｋ１０２が、再暗号化鍵としてｒｋ１０２が送信される。
【００９０】
（Ｓ５０９）
属性管理装置５０１の通信部５３１は、ユーザ秘密鍵を、ユーザＩＤに対応するユーザ端末６０１に送信する。これを受信したユーザ端末６０１の通信部６３１は、ユーザ秘密鍵記憶部６１２に記憶されたユーザ秘密鍵を、受信したユーザ秘密鍵に更新する。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に対応するユーザ端末６０１のユーザ秘密鍵記憶部６１２は、図１６に示す情報を記憶した状態から、図２３に示す情報を記憶した状態に更新される。
【００９１】
（Ｓ５１０）
属性管理装置５０１の通信部５３１は、ユーザＩＤと、新たに生成された再暗号化鍵とを再暗号化装置３０１に送信する。これらを受信した再暗号化装置３０１の通信部３３１は、再暗号化鍵記憶部３１２からユーザＩＤに関連付けられたレコードを検索し、該当するレコードの再暗号化鍵を、受信した再暗号化鍵に更新する。
先の例では、再暗号化鍵記憶部３１２は、図６に示す情報を記憶した状態から、図２４に示す情報を記憶した状態に更新される。
【００９２】
以上のように、ユーザ秘密鍵を更新する場合、ユーザ秘密鍵に合わせて再暗号化鍵も更新される。そのため、更新された再暗号化鍵によって再暗号化された暗号文は、更新されたユーザ秘密鍵で復号できる。したがって、ユーザ秘密鍵の再発行を受けたユーザ端末６０１が、ユーザ秘密鍵更新処理の前に閲覧できていたデータを引き続き閲覧できる。
また、更新された再暗号化鍵によって再暗号化された暗号文は、更新前の古いユーザ秘密鍵で復号できない。そのため、古いユーザ秘密鍵では、暗号文記憶装置２０１に記憶されたデータを一切閲覧できない。
つまり、本手続きを実施することで、ユーザ秘密鍵の紛失・漏えいに伴う失効処理が実現される。
【００９３】
なお、ここではユーザ秘密鍵を失効させ、再発行する更新処理について説明しているが、ユーザの退職時等に、ユーザ秘密鍵の失効だけを行い、再発行を行わないことも可能である。この場合、再暗号化装置３０１が記憶した再暗号化鍵の削除だけを行えばよい。
【００９４】
（６）ユーザ属性更新処理
ユーザ属性更新処理は、企業内の異動等に伴い、あるユーザの属性（例えば、所属や役職）に変更が生じた場合に、当該ユーザが新しい属性に応じてデータを閲覧できるようにする処理である。
例えば、（２）ユーザ登録処理で例として挙げた、ユーザＩＤがｕｉｄ２である佐藤花子氏が、総務部から経理部へと異動した場合、経理部宛てのデータを閲覧できるようにしなければならない。同時に、異動後は、総務部宛てのデータを一切閲覧できないようにしたいケースがある（但し、総務部宛てのデータを引き続き閲覧できるようにしたい場合も考えられる）。ユーザ属性更新処理では、再暗号化装置３０１が記憶する再暗号化鍵を更新することでこれを実現する。
【００９５】
図２５は、ユーザ属性更新処理の流れを示すフローチャートである。
（Ｓ６０１）
属性管理装置５０１の登録部５２２は、ユーザ属性の更新を行うユーザについて、属性情報記憶部５１１が記憶したユーザ属性を更新する。
先の例では、属性情報記憶部５１１は、図１２に示す情報を記憶した状態から、図２６に示す情報を記憶した状態に更新する。
【００９６】
（Ｓ６０２）
属性管理装置５０１の認証部５２１と、鍵生成装置４０１の認証部４２２とが、認証情報記憶部５１２および認証情報記憶部４１３に格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置ＩＤとパスワードによる認証処理が行われる。
【００９７】
（Ｓ６０３）
属性管理装置５０１の通信部５３１は、ユーザ属性更新を行うユーザのユーザＩＤと新しいユーザ属性とを鍵生成装置４０１に送信し、鍵の再発行を依頼する。
先の例では、ユーザＩＤとしてｕｉｄ２が、新しいユーザ属性として「所属＝経理部、役職＝課長、氏名＝佐藤花子」が送信される。
【００９８】
（Ｓ６０４）
鍵生成装置４０１の鍵生成部４２１は、マスタ鍵情報記憶部４１１に格納されているマスタ秘密鍵及び公開パラメータと、受信した新しいユーザ属性とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、新しいユーザ属性が設定された属性秘密鍵が生成される。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、新しいユーザ属性「所属＝経理部、役職＝課長、氏名＝佐藤花子」を入力として、新しい属性秘密鍵ｓｋ２０２が生成される。
【００９９】
（Ｓ６０５）
鍵生成装置４０１の鍵生成部４２１は、鍵情報記憶部４１２からユーザＩＤに関連付けられたユーザ秘密鍵ＩＤを取得する。但し、ユーザＩＤに関連付けられたレコードが複数ある場合、鍵生成部４２１は、ステータスが「有効」であるレコードから取得する。ここでは、ｕｋｉｄｉが取得されたとする。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、図９に示す情報から、ユーザ秘密鍵ＩＤとしてｕｋｉｄ２が取得される。
【０１００】
（Ｓ６０６）
鍵生成装置４０１の鍵生成部４２１は、公開パラメータと、新しい属性秘密鍵と、Ｓ６０５で取得したユーザ秘密鍵ＩＤを用いた復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄｉ」とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵を生成する。
先の例では、ユーザＩＤがｕｉｄ２である佐藤花子氏に関して、新しい属性秘密鍵ｓｋ２０２と復号条件「ユーザ秘密鍵ＩＤ＝ｕｋｉｄ２」とを入力として、再暗号化鍵ｒｋ２０２が生成される。
【０１０１】
（Ｓ６０７）
鍵生成装置４０１の通信部４３１は、鍵情報記憶部４１２が記憶したユーザ秘密鍵ＩＤがｕｋｉｄｉであるレコードについて、属性秘密鍵を、新しい属性秘密鍵に更新する。
これにより、鍵情報記憶部４１２は、図９に示す情報を記憶した状態から、図２７に示す情報を記憶した状態に更新される。
【０１０２】
（Ｓ６０８）
鍵生成装置４０１の通信部４３１は、新たに生成した再暗号化鍵を属性管理装置５０１に送信する。
先の例では、再暗号化鍵としてｒｋ２０２が送信される。
【０１０３】
（Ｓ６０９）
属性管理装置５０１の通信部５３１は、ユーザＩＤと、新たに生成された再暗号化鍵とを再暗号化装置３０１に送信する。これらを受信した再暗号化装置３０１の通信部３３１は、再暗号化鍵記憶部３１２からユーザＩＤに関連付けられたレコードを検索し、該当するレコードの再暗号化鍵を、受信した再暗号化鍵に更新する。
先の例では、再暗号化鍵記憶部３１２は、図６に示す情報を記憶した状態から、図２８に示す情報を記憶した状態に更新される。
【０１０４】
以上のように、ユーザ属性の変更があると、属性秘密鍵が更新されるとともに、属性秘密鍵に合わせて再暗号化鍵も更新される。そのため、更新された再暗号化鍵によって再暗号化できる暗号文は、更新されたユーザ属性で閲覧可能な暗号文である。したがって、ユーザ属性の変更があったユーザのユーザ端末６０１が、新しい属性に応じたデータを閲覧できる。
また、更新された再暗号化鍵では、古い属性のみで閲覧可能であった（更新されたユーザ属性で閲覧できない）暗号文は、再暗号化できない。そのため、古い属性のみで閲覧可能であったデータを閲覧できない。
つまり、本手続きを実施することで、ユーザ属性の変更に伴う失効処理が実現される。
【０１０５】
以上のように、実施の形態１に係る暗号システム１０は、（１）〜（６）の処理によって、暗号文記憶装置２０１が記憶した暗号文を、ユーザ端末６０１が必要に応じて取得し、権限のあるユーザのみがデータを復号・閲覧できるシステムを実現する。
また、実施の形態１に係る暗号システム１０は、（５）〜（６）の処理で説明した通り、ユーザ秘密鍵の紛失・漏えいや、ユーザ属性変更に伴う失効処理を、暗号文記憶装置２０１が記憶した暗号文を更新することなく、再暗号化装置３０１が記憶した再暗号化鍵を更新することで実現できる。そのため、大規模な企業等、失効処理が頻繁に必要となる環境でも効率的に動作させることが可能である。
【０１０６】
また、実施の形態１に係る暗号システム１０は、再暗号化装置３０１が持つ再暗号化鍵が１ユーザあたり１個で済む。したがって、失効処理における再暗号化鍵更新の負荷が小さい。また、実施の形態１に係る暗号システム１０は、関数型暗号の柔軟なアクセス制御を利用することもできる。
【０１０７】
また、実施の形態１に係る暗号システム１０は、暗号文記憶装置２０１と再暗号化装置３０１とを分ける構成をとっている。そのため、失効したユーザ（もしくは、失効したユーザ秘密鍵を入手した攻撃者）と暗号文記憶装置２０１とが結託した場合においても、暗号文記憶装置２０１が記憶した暗号文を復号することはできない。
【０１０８】
なお、上記説明では、属性管理装置５０１やユーザ端末６０１を持つ単一の企業が暗号システム１０を利用する例を示した。しかし、暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１の一部または全部を共用し、複数の企業が暗号システム１０を利用できるようにしてもよい。この場合、暗号システム１０の各装置は、企業を一意に識別するための企業ＩＤを別途管理することになる。
【０１０９】
また、上記説明では、各装置の認証や、通信路の暗号化については（一部を除き）記述していないが、必要に応じてこれらを実行するようにしてもよい。これには、パスワードやＰＫＩ（公開鍵基盤）を用いた既存の認証技術や、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）通信等の既存の暗号技術が利用できる。
【０１１０】
また、上記説明では、（４）データ取得処理で、暗号文記憶装置２０１が暗号文をユーザ端末６０１に送信する際に、データＩＤに関連付けられた暗号文を無条件に送信した。
しかし、暗号文記憶部２１１が各暗号文の復号条件を記憶しておき、ユーザ端末６０１がデータＩＤとともにユーザ属性を送信するようにしてもよい。そして、暗号文記憶装置２０１が、復号条件とユーザ属性とに基づき、暗号文の復号可否を判定し、復号可能な暗号文のみをユーザ端末６０１に送信するようにしてもよい。但しこの場合、暗号文記憶装置２０１に対して、復号条件やユーザ属性といった余分な情報が開示されることになるため、注意する必要がある。
【０１１１】
また、上記説明では、（４）データ取得処理で、再暗号化装置３０１が再暗号化を行う際に、ユーザ端末６０１を介して暗号文を再暗号化装置３０１に送信した。
しかし、ユーザ端末６０１を介さずに、暗号文記憶装置２０１から再暗号化装置３０１へ暗号文を直接送信するようにしてもよい。さらにこの場合、効率性を高めるために、暗号文記憶装置２０１と再暗号化装置３０１とを１つの装置にまとめることも可能である。但し、これらをまとめることによって、失効したユーザと暗号文記憶装置２０１（及び再暗号化装置３０１）の結託で、暗号文記憶装置２０１が記憶した暗号文を不正に復号できるようになるため、注意する必要がある。
【０１１２】
また、属性管理装置５０１と再暗号化装置３０１とを１つの装置にまとめることで効率化を図ってもよい。また、属性管理装置５０１と鍵生成装置４０１とを１つの装置にまとめることで効率化を図ってもよい。
【０１１３】
また、上記説明では、運用容易性の観点から、関数型暗号から、（公開パラメータも含め）同一の関数型暗号への再暗号化を行った。
しかし、関数型暗号から、異なる関数型暗号、もしくは関数型暗号以外への再暗号化を行うこともできる。例えば、関数型暗号から、ＩＤベース暗号への再暗号化を行ってもよい。この場合、鍵生成装置４０１は、２種類の暗号の鍵生成機能を持つ（もしくは、鍵生成装置４０１を２個用意する）ことになる。
【０１１４】
また、上記説明では、ユーザ端末６０１がデータ登録とデータ取得との両方の機能を持っていた。
しかし、データ登録のみ行うユーザ装置と、データ取得のみ行うユーザ装置とに分けてもよい。データ登録のみ行うユーザ装置には、ユーザ秘密鍵記憶部６１２は不要である。
【０１１５】
また、上記説明では、ユーザ端末６０１のユーザ秘密鍵記憶部６１２がユーザ秘密鍵を記憶していた。しかし、ユーザ秘密鍵を外部装置（例えばＩＣカード）に記憶し、必要に応じてユーザ端末６０１が外部装置からユーザ秘密鍵を取得するようにしてもよい。また、外部装置が暗号化部や復号部を備え、外部装置側でユーザ秘密鍵を用いた暗号化処理や復号処理を行うようにしてもよい。
【０１１６】
また、上記説明では、関数型暗号として「暗号文ポリシー型の関数型暗号」を利用する場合について説明した。しかし、上述した通り、「鍵ポリシー型の関数型暗号」を利用することも可能である。
例えば、鍵ポリシー型の関数型暗号では、暗号文に属性「所属＝総務部、作成年度＝２０１２年」を設定し、これを復号するための秘密鍵にポリシー（復号条件）「（所属＝総務部  ＡＮＤ  作成年度＝２０１２年）ＯＲ（所属＝経理部  ＡＮＤ  作成年度＝２０１３年）」を設定することができる。この例では、この秘密鍵を用いて「２０１２年に総務部で作成されたデータ」、及び、「２０１３年に経理部で作成されたデータ」を復号することができる。そのため、ユーザが在籍した時期に対応した文書のみ閲覧可能とする等、ユーザ所属の変更に伴う、より柔軟なアクセス制御が可能となる。
暗号文ポリシー型属性ベース暗号、鍵ポリシー型属性ベース暗号のどちらを利用するのが適しているかは、データ管理システムの用途や、利用する企業の組織構成等に依存する。
【０１１７】
また、「暗号文ポリシー型の関数型暗号」と「鍵ポリシー型の関数型暗号」とを組み合わせたＵｎｉｆｉｅｄポリシー型の関数型暗号を利用することも可能である。Ｕｎｉｆｉｅｄポリシー型の関数型暗号では、暗号文に属性１とポリシー２とが設定され、復号鍵に属性１に対応するポリシー１とポリシー２に対応する属性２とが設定される。これにより、「暗号文ポリシー型の関数型暗号」と「鍵ポリシー型の関数型暗号」との両方の利点を享受することができる。
【０１１８】
図２９は、実施の形態１に示した暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１のハードウェア構成の例を示す図である。
暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１は、コンピュータである。暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１の各要素をプログラムで実現することができる。
暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１１９】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置等である。主記憶装置９０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。通信装置９０４は、例えば通信ボード等である。入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１２０】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、通信部２３１、再暗号化部３２１、通信部３３１、鍵生成部４２１、認証部４２２、通信部４３１、認証部５２１、登録部５２２、通信部５３１、暗号化部６２１、復号部６２２、通信部６３１として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、上記プログラムを実行する。
また、実施の形態１の説明において、暗号文記憶部２１１、公開パラメータ記憶部３１１、再暗号化鍵記憶部３１２、マスタ鍵情報記憶部４１１、鍵情報記憶部４１２、認証情報記憶部４１３、属性情報記憶部５１１、認証情報記憶部５１２、公開パラメータ記憶部６１１、ユーザ秘密鍵記憶部６１２が記憶すると説明した情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【０１２１】
なお、図２９の構成は、あくまでも暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１のハードウェア構成の一例を示すものであり、暗号文記憶装置２０１、再暗号化装置３０１、鍵生成装置４０１、属性管理装置５０１、ユーザ端末６０１のハードウェア構成は図２９に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【０１２２】
１０  暗号システム、１０１  ネットワーク、２０１  暗号文記憶装置、２１１  暗号文記憶部、２３１  通信部、３０１  再暗号化装置、３１１  公開パラメータ記憶部、３１２  再暗号化鍵記憶部、３２１  再暗号化部、３３１  通信部、４０１  鍵生成装置、４１１  マスタ鍵情報記憶部、４１２  鍵情報記憶部、４１３  認証情報記憶部、４２１  鍵生成部、４２２  認証部、４３１  通信部、５０１  属性管理装置、５１１  属性情報記憶部、５１２  認証情報記憶部、５２１  認証部、５２２  登録部、５３１  通信部、６０１  ユーザ端末、６１１  公開パラメータ記憶部、６１２  ユーザ秘密鍵記憶部、６２１  暗号化部、６２２  復号部、６３１  通信部。
【図１】
0006049914.tif 000002
【図２】
0006049914.tif 000003
【図３】
0006049914.tif 000004
【図４】
0006049914.tif 000005
【図５】
0006049914.tif 000006
【図６】
0006049914.tif 000007
【図７】
0006049914.tif 000008
【図８】
0006049914.tif 000009
【図９】
0006049914.tif 000010
【図１０】
0006049914.tif 000011
【図１１】
0006049914.tif 000012
【図１２】
0006049914.tif 000013
【図１３】
0006049914.tif 000014
【図１４】
0006049914.tif 000015
【図１５】
0006049914.tif 000016
【図１６】
0006049914.tif 000017
【図１７】
0006049914.tif 000018
【図１８】
0006049914.tif 000019
【図１９】
0006049914.tif 000020
【図２０】
0006049914.tif 000021
【図２１】
0006049914.tif 000022
【図２２】
0006049914.tif 000023
【図２３】
0006049914.tif 000024
【図２４】
0006049914.tif 000025
【図２５】
0006049914.tif 000026
【図２６】
0006049914.tif 000027
【図２７】
0006049914.tif 000028
【図２８】
0006049914.tif 000029
【図２９】
0006049914.tif 000030