(57)【要約】【課題】属性ベース暗号の安全性を向上させること。【解決手段】暗号システムは、鍵発行機関と、１以上の属性を含む第１属性を有する第１ユーザ端末及び第２ユーザ端末を含むユーザシステムと、を備え、鍵発行機関は、第１公開鍵を生成するとともに、第１公開鍵を公開し、第２ユーザ端末は、第２公開鍵を生成するとともに、第２公開鍵を公開し、鍵発行機関は、第１ユーザ端末からの要求に応じて、第１属性に応じた第１秘密鍵を生成して第１秘密鍵を第１ユーザ端末に配布し、第２ユーザ端末は、第１ユーザ端末からの要求に応じて、第１属性に応じた第２秘密鍵を生成して第２秘密鍵を第１ユーザ端末に配布し、第１ユーザ端末は、第１公開鍵及び第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成し、第１秘密鍵及び第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成する。【選択図】図１
2019086744.tif 000002
【特許請求の範囲】
【請求項１】
属性ベース暗号を用いた暗号システムであって、
鍵発行機関と、
１以上の属性を含む第１属性を有する第１ユーザ端末及び第２ユーザ端末を含むユーザシステムと、
を備え、
前記鍵発行機関は、第１公開鍵を生成するとともに、前記第１公開鍵を公開し、
前記第２ユーザ端末は、第２公開鍵を生成するとともに、前記第２公開鍵を公開し、
前記第１ユーザ端末は、前記第１属性に応じた第１秘密鍵を前記鍵発行機関に要求するとともに、前記第１属性に応じた第２秘密鍵を前記第２ユーザ端末に要求し、
前記鍵発行機関は、前記第１ユーザ端末からの要求に応じて、前記第１秘密鍵を生成して前記第１秘密鍵を前記第１ユーザ端末に配布し、
前記第２ユーザ端末は、前記第１ユーザ端末からの要求に応じて、前記第２秘密鍵を生成して前記第２秘密鍵を前記第１ユーザ端末に配布し、
前記第１ユーザ端末は、前記第１公開鍵及び前記第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成し、前記第１秘密鍵及び前記第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成する、暗号システム。
【請求項２】
前記第２ユーザ端末は、１以上の属性を含む第２属性を有し、
前記第２ユーザ端末は、前記第２属性に応じた第３秘密鍵を前記鍵発行機関に要求するとともに、前記第２属性に応じた第４秘密鍵を生成し、
前記鍵発行機関は、前記第２ユーザ端末からの要求に応じて、前記第３秘密鍵を生成して前記第３秘密鍵を前記第２ユーザ端末に配布し、
前記第２ユーザ端末は、前記第１公開鍵及び前記第２公開鍵を用いて前記暗号化鍵を生成し、前記第３秘密鍵及び前記第４秘密鍵を用いて属性ベース暗号の復号用の第２復号鍵を生成する、請求項１に記載の暗号システム。
【請求項３】
別の鍵発行機関をさらに備え、
前記第２ユーザ端末は、前記ユーザシステムで用いられる複数の属性のうちの１以上の属性を委譲属性の集合として前記別の鍵発行機関に委譲し、
前記第１ユーザ端末は、前記第１属性が前記委譲属性の集合に含まれる場合には、前記第２秘密鍵を前記別の鍵発行機関に要求し、
前記別の鍵発行機関は、前記第１ユーザ端末からの要求に応じて、前記第２秘密鍵を生成して前記第２秘密鍵を前記第１ユーザ端末に配布する、請求項１又は請求項２に記載の暗号システム。
【請求項４】
１以上の属性を含む第１属性を有する第１ユーザ端末と第２ユーザ端末とを含み、属性ベース暗号を利用するユーザシステムであって、
前記第１ユーザ端末は、外部の鍵発行機関によって生成された第１公開鍵と前記第２ユーザ端末によって生成された第２公開鍵とを取得して、前記第１公開鍵及び前記第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成し、
前記第１ユーザ端末は、前記第１属性に応じた第１秘密鍵を前記鍵発行機関に要求するとともに、前記第１属性に応じた第２秘密鍵を前記第２ユーザ端末に要求し、
前記第１ユーザ端末は、前記第１秘密鍵を前記鍵発行機関から取得し、前記第２秘密鍵を前記第２ユーザ端末から取得し、前記第１秘密鍵及び前記第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成する、ユーザシステム。
【請求項５】
前記第２ユーザ端末は、１以上の属性を含む第２属性を有し、
前記第２ユーザ端末は、前記第２属性に応じた第３秘密鍵を前記鍵発行機関に要求するとともに、前記第２属性に応じた第４秘密鍵を生成し、
前記第２ユーザ端末は、前記第１公開鍵及び前記第２公開鍵を用いて前記暗号化鍵を生成し、
前記第２ユーザ端末は、前記第３秘密鍵を前記鍵発行機関から取得して、前記第３秘密鍵及び前記第４秘密鍵を用いて属性ベース暗号の復号用の第２復号鍵を生成する、請求項４に記載のユーザシステム。
【請求項６】
前記第２ユーザ端末は、前記ユーザシステムで用いられる複数の属性のうちの１以上の属性を委譲属性の集合として別の鍵発行機関に委譲し、
前記第１ユーザ端末は、前記第１属性が前記委譲属性の集合に含まれる場合には、前記第２秘密鍵を前記別の鍵発行機関に要求する、請求項４又は請求項５に記載のユーザシステム。
【請求項７】
１以上の属性を含む第１属性を有する第１ユーザ端末と第２ユーザ端末とを含み、属性ベース暗号を利用するユーザシステムにおいて、前記第１ユーザ端末が行う暗号方法であって、
外部の鍵発行機関によって生成された第１公開鍵と前記第２ユーザ端末によって生成された第２公開鍵とを取得するステップと、
前記第１公開鍵及び前記第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成するステップと、
前記第１属性に応じた第１秘密鍵を前記鍵発行機関に要求するとともに、前記第１属性に応じた第２秘密鍵を前記第２ユーザ端末に要求するステップと、
前記第１秘密鍵を前記鍵発行機関から取得し、前記第２秘密鍵を前記第２ユーザ端末から取得するステップと、
前記第１秘密鍵及び前記第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成するステップと、
を備える暗号方法。
【請求項８】
コンピュータに、
外部の鍵発行機関によって生成された第１公開鍵と、前記コンピュータとともにユーザシステムに属するユーザ端末によって生成された第２公開鍵と、を取得するステップと、
前記第１公開鍵及び前記第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成するステップと、
前記コンピュータの１以上の属性を含む第１属性に応じた第１秘密鍵を前記鍵発行機関に要求するとともに、前記第１属性に応じた第２秘密鍵を前記ユーザ端末に要求するステップと、
前記第１秘密鍵を前記鍵発行機関から取得し、前記第２秘密鍵を前記ユーザ端末から取得するステップと、
前記第１秘密鍵及び前記第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成するステップと、
を実行させるための暗号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号システム、ユーザシステム、暗号方法、及び暗号プログラムに関する。
【背景技術】
【０００２】
近年、電子ファイルの数及びサイズの増加に伴い、クラウドストレージサービスが普及している。クラウドストレージを利用するにあたり、個人情報及び機密情報を保護するために、電子ファイルに暗号化が施される。暗号方式として、属性ベース暗号が知られている（例えば、特許文献１、特許文献２、及び非特許文献１参照）。属性ベース暗号は、ユーザごとに複数の属性を付与し、ユーザの属性に基づいて設定された復号条件（ポリシー）を満たすユーザのみが暗号文を復号可能な暗号技術である。
【０００３】
属性ベース暗号では、全ての暗号文を復号可能なマスタ秘密鍵を管理する必要がある。多くのシステムでは、鍵発行機関がマスタ秘密鍵を管理している。このため、クラウド上のサーバ等を用いてシステムを構築する場合、サーバでマスタ秘密鍵を管理する必要があり、本来は秘密とすべき情報がサーバの管理者等には、公開されてしまうこととなる。このような問題に対応するために、マスタ秘密鍵の管理者権限を複数の鍵発行機関に分散して配置する方法が提案されている。例えば、非特許文献１には、複数の鍵発行機関が発行する秘密鍵を組み合わせることで、暗号化鍵及び復号鍵を生成することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５３１８５０号公報
【特許文献２】特開２０１７−１２６８５１号公報
【非特許文献】
【０００５】
【非特許文献１】Huang  Lin，Zhenfu  Cao，Xiaohui  Liang，Jun  Shao，“Secure  Threshold  Multi  Authority  Attribute  Based  Encryption  without  a  Central  Authority”，Progress  in  Cryptology  -  INDOCRYPT  2008，pp  426−436
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に記載のシステムにおいて、複数の鍵発行機関が結託した場合には、全ての暗号文を復号できることとなる。このため、本技術分野では、さらなる安全性の向上が望まれている。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る暗号システムは、属性ベース暗号を用いたシステムである。この暗号システムは、鍵発行機関と、１以上の属性を含む第１属性を有する第１ユーザ端末及び第２ユーザ端末を含むユーザシステムと、を備える。鍵発行機関は、第１公開鍵を生成するとともに、第１公開鍵を公開する。第２ユーザ端末は、第２公開鍵を生成するとともに、第２公開鍵を公開する。第１ユーザ端末は、第１属性に応じた第１秘密鍵を鍵発行機関に要求するとともに、第１属性に応じた第２秘密鍵を第２ユーザ端末に要求する。鍵発行機関は、第１ユーザ端末からの要求に応じて、第１秘密鍵を生成して第１秘密鍵を第１ユーザ端末に配布する。第２ユーザ端末は、第１ユーザ端末からの要求に応じて、第２秘密鍵を生成して第２秘密鍵を第１ユーザ端末に配布する。第１ユーザ端末は、第１公開鍵及び第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成し、第１秘密鍵及び第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成する。
【０００８】
この暗号システムでは、第１ユーザ端末は、鍵発行機関によって生成された第１公開鍵とユーザシステム内の第２ユーザ端末によって生成された第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。第１ユーザ端末は、鍵発行機関によって生成された第１秘密鍵とユーザシステム内の第２ユーザ端末によって生成された第２秘密鍵とを用いて属性ベース暗号の復号用の第１復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内の第２ユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【０００９】
第２ユーザ端末は、１以上の属性を含む第２属性を有してもよい。第２ユーザ端末は、第２属性に応じた第３秘密鍵を鍵発行機関に要求するとともに、第２属性に応じた第４秘密鍵を生成してもよい。鍵発行機関は、第２ユーザ端末からの要求に応じて、第３秘密鍵を生成して第３秘密鍵を第２ユーザ端末に配布してもよい。第２ユーザ端末は、第１公開鍵及び第２公開鍵を用いて暗号化鍵を生成してもよく、第３秘密鍵及び第４秘密鍵を用いて属性ベース暗号の復号用の第２復号鍵を生成してもよい。この場合、第２ユーザ端末は、鍵発行機関によって生成された第１公開鍵と第２ユーザ端末自身が生成した第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。第２ユーザ端末は、鍵発行機関によって生成された第３秘密鍵と第２ユーザ端末自身が生成した第４秘密鍵とを用いて属性ベース暗号の復号用の第２復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内の第２ユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【００１０】
暗号システムは、別の鍵発行機関をさらに備えてもよい。第２ユーザ端末は、ユーザシステムで用いられる複数の属性のうちの１以上の属性を委譲属性の集合として別の鍵発行機関に委譲してもよい。第１ユーザ端末は、第１属性が委譲属性の集合に含まれる場合には、第２秘密鍵を別の鍵発行機関に要求してもよい。別の鍵発行機関は、第１ユーザ端末からの要求に応じて、第２秘密鍵を生成して第２秘密鍵を第１ユーザ端末に配布してもよい。この場合、第２ユーザ端末は、委譲属性に関する秘密鍵の生成及び配布を行う必要がなくなるので、第２ユーザ端末のユーザの負担を軽減することができる。
【００１１】
本発明の別の側面に係るユーザシステムは、１以上の属性を含む第１属性を有する第１ユーザ端末と第２ユーザ端末とを含み、属性ベース暗号を利用するシステムである。第１ユーザ端末は、外部の鍵発行機関によって生成された第１公開鍵と第２ユーザ端末によって生成された第２公開鍵とを取得して、第１公開鍵及び第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。第１ユーザ端末は、第１属性に応じた第１秘密鍵を鍵発行機関に要求するとともに、第１属性に応じた第２秘密鍵を第２ユーザ端末に要求する。第１ユーザ端末は、第１秘密鍵を鍵発行機関から取得し、第２秘密鍵を第２ユーザ端末から取得し、第１秘密鍵及び第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成する。
【００１２】
このユーザシステムでは、第１ユーザ端末は、外部の鍵発行機関によって生成された第１公開鍵とユーザシステム内の第２ユーザ端末によって生成された第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。第１ユーザ端末は、外部の鍵発行機関から取得した第１秘密鍵とユーザシステム内の第２ユーザ端末から取得した第２秘密鍵とを用いて属性ベース暗号の復号用の第１復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内の第２ユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【００１３】
第２ユーザ端末は、１以上の属性を含む第２属性を有してもよい。第２ユーザ端末は、第２属性に応じた第３秘密鍵を鍵発行機関に要求するとともに、第２属性に応じた第４秘密鍵を生成してもよい。第２ユーザ端末は、第１公開鍵及び第２公開鍵を用いて暗号化鍵を生成してもよい。第２ユーザ端末は、第３秘密鍵を鍵発行機関から取得して、第３秘密鍵及び第４秘密鍵を用いて属性ベース暗号の復号用の第２復号鍵を生成してもよい。この場合、第２ユーザ端末は、外部の鍵発行機関によって生成された第１公開鍵と第２ユーザ端末自身によって生成された第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。また、第２ユーザ端末は、外部の鍵発行機関から取得した第３秘密鍵と第２ユーザ端末自身が生成した第４秘密鍵とを用いて属性ベース暗号の復号用の第２復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内の第２ユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【００１４】
第２ユーザ端末は、ユーザシステムで用いられる複数の属性のうちの１以上の属性を委譲属性の集合として別の鍵発行機関に委譲してもよい。第１ユーザ端末は、第１属性が委譲属性の集合に含まれる場合には、第２秘密鍵を別の鍵発行機関に要求してもよい。この場合、第２ユーザ端末は、委譲属性に関する秘密鍵の生成及び配布を行う必要がなくなるので、第２ユーザ端末のユーザの負担を軽減することができる。
【００１５】
本発明のさらに別の側面に係る暗号方法は、１以上の属性を含む第１属性を有する第１ユーザ端末と第２ユーザ端末とを含み、属性ベース暗号を利用するユーザシステムにおいて、第１ユーザ端末が行う暗号方法である。この暗号方法は、外部の鍵発行機関によって生成された第１公開鍵と第２ユーザ端末によって生成された第２公開鍵とを取得するステップと、第１公開鍵及び第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成するステップと、第１属性に応じた第１秘密鍵を鍵発行機関に要求するとともに、第１属性に応じた第２秘密鍵を第２ユーザ端末に要求するステップと、第１秘密鍵を鍵発行機関から取得し、第２秘密鍵を第２ユーザ端末から取得するステップと、第１秘密鍵及び第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成するステップと、を備える。
【００１６】
この暗号方法では、第１ユーザ端末は、外部の鍵発行機関によって生成された第１公開鍵とユーザシステム内の第２ユーザ端末によって生成された第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。第１ユーザ端末は、外部の鍵発行機関から取得した第１秘密鍵とユーザシステム内の第２ユーザ端末から取得した第２秘密鍵とを用いて属性ベース暗号の復号用の第１復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内の第２ユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【００１７】
本発明のさらに別の側面に係る暗号プログラムは、コンピュータに、外部の鍵発行機関によって生成された第１公開鍵と、コンピュータとともにユーザシステムに属するユーザ端末によって生成された第２公開鍵と、を取得するステップと、第１公開鍵及び第２公開鍵を用いて属性ベース暗号の暗号化用の暗号化鍵を生成するステップと、コンピュータの１以上の属性を含む第１属性に応じた第１秘密鍵を鍵発行機関に要求するとともに、第１属性に応じた第２秘密鍵をユーザ端末に要求するステップと、第１秘密鍵を鍵発行機関から取得し、第２秘密鍵をユーザ端末から取得するステップと、第１秘密鍵及び第２秘密鍵を用いて属性ベース暗号の復号用の第１復号鍵を生成するステップと、を実行させるための暗号プログラムである。
【００１８】
この暗号プログラムでは、コンピュータは、外部の鍵発行機関によって生成された第１公開鍵とユーザシステム内のユーザ端末によって生成された第２公開鍵とを用いて属性ベース暗号の暗号化用の暗号化鍵を生成する。コンピュータは、外部の鍵発行機関から取得した第１秘密鍵とユーザシステム内のユーザ端末から取得した第２秘密鍵とを用いて属性ベース暗号の復号用の第１復号鍵を生成する。このように、鍵発行機関としての役割をユーザシステム内のユーザ端末が担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【発明の効果】
【００１９】
本発明によれば、属性ベース暗号の安全性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、一実施形態に係る暗号システムの構成を示す図である。
【図２】図２は、属性ベース暗号で用いられるアクセス構造の一例を示す図である。
【図３】図３は、図１に示される暗号システムにおける初期設定処理を示すシーケンス図である。
【図４】図４は、図１に示される暗号システムにおける暗号化鍵生成処理を示すシーケンス図である。
【図５】図５は、図１に示される暗号システムにおける復号鍵生成処理を示すシーケンス図である。
【図６】図６は、図１に示される暗号システムにおける暗号化処理を示すシーケンス図である。
【図７】図７は、図１に示される暗号システムにおける復号処理を示すシーケンス図である。
【図８】図８は、図１に示される暗号システムにおける委譲処理を示すシーケンス図である。
【図９】図９は、図１に示される暗号システムにおける秘密鍵生成処理を示すシーケンス図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しながら本発明の実施形態が詳細に説明される。なお、図面の説明において同一要素には同一符号が付され、重複する説明は省略される。
【００２２】
図１は、一実施形態に係る暗号システムの構成を示す図である。図１に示されるように、暗号システム１は、属性ベース暗号を用いた暗号化及び復号を行うシステムである。属性ベース暗号は、ユーザの属性に基づいて設定された復号条件（ポリシー）を満たすユーザのみが暗号文を復号可能な暗号技術である。暗号システム１は、ユーザシステム１０と、複数の鍵発行機関（本実施形態では、鍵発行機関２０Ａ〜２０Ｃ）と、公開サーバ３０と、クラウドストレージ４０と、を備えている。ユーザシステム１０と、鍵発行機関２０Ａ〜２０Ｃと、公開サーバ３０と、クラウドストレージ４０とは、ネットワークＮＷによって互いに通信可能に接続されている。ネットワークＮＷは、有線及び無線のいずれで構成されてもよい。ネットワークＮＷの例としては、移動体通信網、インターネット、及びＷＡＮ（Wide  Area  Network）等が挙げられる。
【００２３】
ユーザシステム１０は、属性ベース暗号を利用するユーザ側のシステムである。ユーザシステム１０は、複数のユーザ端末（本実施形態では、ユーザ端末１１Ａ〜１１Ｃ）を含む。ユーザ端末は、ユーザにより用いられる端末装置である。ユーザ端末の例としては、デスクトップＰＣ（Personal  Computer）、ノートＰＣ、スマートフォン、及びタブレット端末等が挙げられる。ここでは、ユーザ端末１１Ａ〜１１Ｃは、同一の組織に属する。ユーザ端末１１Ａ〜１１Ｃは、ＬＡＮ等によって互いに通信可能に接続され、不図示のゲートウェイ装置を介してネットワークＮＷに接続されている。なお、ユーザ端末１１Ａ〜１１Ｃは、同一組織に属していなくてもよい。
【００２４】
ユーザ端末１１Ａ〜１１Ｃは、物理的には、１又は複数のプロセッサ、ＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory)等の主記憶装置、ハードディスク装置等の補助記憶装置、キーボード等の入力装置、ディスプレイ等の出力装置、並びに、データ送受信デバイスである通信モジュール等のハードウェアを備えるコンピュータとして構成され得る。ユーザ端末１１Ａ〜１１Ｃの各機能は、主記憶装置等のハードウェアに１又は複数の所定のコンピュータプログラム（暗号プログラム）を読み込ませることにより、１又は複数のプロセッサの制御のもとで各ハードウェアを動作させるとともに、主記憶装置及び補助記憶装置におけるデータの読み出し及び書き込みを行うことで実現される。
【００２５】
ユーザＵＡ〜ＵＣのそれぞれは、１以上の属性（以下、「属性の組み合わせ」という。）を有する。ユーザＵＡはユーザ端末１１Ａ（第１ユーザ端末）を使用し、ユーザＵＢはユーザ端末１１Ｂ（第２ユーザ端末）を使用し、ユーザＵＣはユーザ端末１１Ｃを使用している。ユーザＵＡ〜ＵＣは、例えば、ユーザ端末１１Ａ〜１１Ｃにおいて、属性ベース暗号のためのアプリケーションを用いて、属性ベース暗号でデータを暗号化し、暗号化されたデータ（以下、「暗号文」という。）をクラウドストレージ４０に格納する。また、ユーザＵＡ〜ＵＣは、ユーザ端末１１Ａ〜１１Ｃを用いて、クラウドストレージ４０から暗号文を取得し、暗号文を復号する。ユーザ端末１１Ａ〜１１Ｃの少なくとも１台は、鍵発行機関としての役割を担う。本実施形態では、ユーザ端末１１Ｂが鍵発行機関としての役割を担っている。
【００２６】
鍵発行機関２０Ａ〜２０Ｃは、属性ベース暗号の公開鍵及び秘密鍵を生成する。公開鍵は、全てのユーザ（ユーザ端末１１Ａ〜１１Ｃ）に共通の鍵である。秘密鍵は、各ユーザ（ユーザ端末１１Ａ〜１１Ｃ）に固有の鍵であって、ユーザの属性の組み合わせに応じて生成される。公開鍵及び秘密鍵の生成に関する詳細な説明は、後述する。鍵発行機関２０Ａ〜２０Ｃは、ユーザシステム１０の外部に設けられる。鍵発行機関２０Ａ〜２０Ｃは、公開鍵を含む公開情報を公開サーバ３０に送信する。なお、ユーザ端末１１Ｂも、鍵発行機関２０Ａ〜２０Ｃと同様の機能を有する。
【００２７】
公開サーバ３０は、公開情報を公開するためのサーバ装置である。公開サーバ３０は、鍵発行機関２０Ａ〜２０Ｃのそれぞれから公開情報を受信し、公開情報を不図示の記憶装置に格納する。公開サーバ３０は、暗号システム１に含まれる各機関からの要求に応じて、公開情報を各機関に送信する。
【００２８】
クラウドストレージ４０は、オンラインストレージとも呼ばれ、ネットワークＮＷ上でデータを共有するサービスである。クラウドストレージ４０は、例えば、単一又は複数のファイルサーバを含む。クラウドストレージ４０は、ユーザ端末１１Ａ〜１１Ｃからデータを受信して、受信したデータを格納する。クラウドストレージ４０は、ユーザ端末１１Ａ〜１１Ｃからの要求に応じて、格納しているデータをユーザ端末１１Ａ〜１１Ｃに送信する。クラウドストレージ４０に代えて、ユーザシステム１０内に設けられた記憶装置（ローカルストレージ）が用いられてもよい。
【００２９】
次に、図２を参照して、属性ベース暗号を説明する。図２は、属性ベース暗号で用いられるアクセス構造の一例を示す図である。図２に示されるアクセス構造は、ツリー形式で示されている。アクセス構造は、復号を許可する復号条件（ポリシー）を表す。ポリシーは、属性の論理和及び論理積で表される。図２では、｛属性ＡＴ１∧（属性ＡＴ２∧属性ＡＴ３）｝∨属性ＡＴ４の条件を満たすユーザが、暗号文を復号することができる。なお、「∨」は論理和を示し、「∧」は論理積を示す。各ユーザは、属性ベース暗号のためのアプリケーションを用いてデータを暗号化する際に、アクセス構造を指定する。
【００３０】
例えば、ユーザ端末１１ＡのユーザＵＡが、開発部に所属し、海外支社を経験しており、プロジェクトＰを担当しているとする。この場合、ユーザＵＡの属性は、「開発部」、「海外支社経験者」、及び「プロジェクトＰ担当者」である。ユーザ端末１１ＢのユーザＵＢが、情報グループに所属し、ＩｏＴ（Internet  of  Things）を担当しているとする。この場合、ユーザＵＢの属性は、「情報Ｇ」、及び「ＩｏＴ」である。ユーザ端末１１ＣのユーザＵＣが、総務課に所属しているとする。この場合、ユーザＵＣの属性は、「総務課」である。
【００３１】
図２のアクセス構造において、属性ＡＴ１が「開発部」であり、属性ＡＴ２が「海外支社経験者」であり、属性ＡＴ３が「プロジェクトＰ担当者」であり、属性ＡＴ４が「総務部」であると仮定する。この場合、ユーザＵＡ及びユーザＵＣの属性の組み合わせはポリシーを満たすので、ユーザＵＡ及びユーザＵＣは暗号文を復号することができる。一方、ユーザＵＢの属性の組み合わせはポリシーを満たさないので、ユーザＵＢは暗号文を復号することができない。
【００３２】
次に、図３〜図７を参照して、暗号システム１の動作例を説明する。図３は、図１に示される暗号システムにおける初期設定処理を示すシーケンス図である。図４は、図１に示される暗号システムにおける暗号化鍵生成処理を示すシーケンス図である。図５は、図１に示される暗号システムにおける復号鍵生成処理を示すシーケンス図である。図６は、図１に示される暗号システムにおける暗号化処理を示すシーケンス図である。図７は、図１に示される暗号システムにおける復号処理を示すシーケンス図である。
【００３３】
なお、説明の便宜上、ユーザについては、ユーザＵＡ，ＵＢのみを図示し、鍵発行機関については、鍵発行機関２０Ａ，２０Ｂのみを図示する。また、ユーザ端末１１Ｂが鍵発行機関としての役割を担っている。いずれのユーザ端末及び鍵発行機関が、暗号システム１における秘密鍵及び公開鍵の鍵発行機関となるかは、予め設定されている。又は、鍵発行機関２０Ａが、鍵発行機関となる機関を指定してもよい。
【００３４】
図３に示されるように、暗号システム１では、まず初期設定処理が行われる。具体的には、各ユーザは、利用属性の申請を行う。ここではユーザＵＡ，ＵＢのみを説明するが、他のユーザについても同様である。ユーザＵＡは、ユーザ端末１１Ａを用いて鍵発行機関２０Ａに利用属性の申請を行う（ステップＳ１１）。同様に、ユーザＵＢは、ユーザ端末１１Ｂを用いて鍵発行機関２０Ａに利用属性の申請を行う（ステップＳ１１）。利用属性の申請には、ユーザの属性又はユーザが利用したい属性（属性の組み合わせ）と、ユーザを特定するための識別情報（ユーザ識別情報）と、が含まれる。ユーザ識別情報としては、ウェブページ等において予め登録されたログインＩＤ及びパスワードの組み合わせが用いられ得る。ユーザが使用するユーザ端末のＩＰ（Internet  Protocol）アドレスがユーザ識別情報として用いられてもよい。
【００３５】
続いて、鍵発行機関２０Ａは、各ユーザから利用属性の申請を受信すると、初期設定を行う（ステップＳ１２）。ステップＳ１２において、鍵発行機関２０Ａは、素数ｐ１を位数とする生成元ｇ１からなる巡回群Ｇ１と、素数ｐ２を位数とする生成元ｇ２からなる巡回群Ｇ２と、式（１）で表される双線形写像ｅを有する巡回群ＧＴと、を決定する。巡回群Ｇ１は、素数ｐ１を位数とする巡回群であり、乗算が定義された巡回群である。巡回群Ｇ２は、素数ｐ２を位数とする巡回群であり、乗算が定義された巡回群である。巡回群ＧＴは、加算及び乗算が定義された巡回群である。そして、鍵発行機関２０Ａは、式（１）を満たす双線形写像ｅを決定する。双線形写像ｅは、２つの引数を有し、ｅ（・，・）で表される写像である。
【数１】
2019086744.tif 000003
【００３６】
続いて、鍵発行機関２０Ａは、乱数ｂ（ｂ∈Ｚｐ１）をランダムに決定し、元ｇ１ｂを計算する。
【００３７】
また、鍵発行機関２０Ａは、各ユーザから申請されたＮ個の属性に対して、巡回群Ｇ１から乱数ｈ１，ｈ２，・・・，ｈＮ（ｈ１，ｈ２，・・・，ｈＮ∈Ｇ１）をランダムに選択する。
【００３８】
そして、鍵発行機関２０Ａは、生成元ｇ１、生成元ｇ２、元ｇ１ｂ、双線形写像ｅ、乱数ｈ１，ｈ２，・・・，ｈＮ、及び鍵発行機関（ここでは、鍵発行機関２０Ａ，２０Ｂ及びユーザ端末１１Ｂ）を特定するための識別情報（発行機関識別情報）を公開情報として公開するために、公開情報を公開サーバ３０に送信する（ステップＳ１３）。発行機関識別情報としては、例えば、鍵発行機関のＩＰアドレスが用いられる。そして、公開サーバ３０は、不図示の記憶装置に公開情報を格納する（ステップＳ１４）。
【００３９】
なお、鍵発行機関２０Ａは、全てのユーザから利用属性の申請を受け取った後にステップＳ１２を実施しているが、ステップＳ１２の実施タイミングはこれに限られない。例えば、鍵発行機関２０Ａは、ユーザから利用属性の申請を受け取る前に生成元ｇ１及び生成元ｇ２の選択、元ｇ１ｂの計算、並びに双線形写像ｅの決定を行ってもよく、ユーザから利用属性の申請を受け取る前に生成元ｇ１、生成元ｇ２、元ｇ１ｂ、双線形写像ｅ、及び発行機関識別情報を公開サーバ３０に送信してもよい。鍵発行機関２０Ａは、ユーザから新たな属性の申請を受け取ると、その属性に対応する乱数ｈｎ（ｎは１〜Ｎの整数）を選択し、選択した乱数ｈｎを公開サーバ３０に送信してもよい。また、各ユーザとユーザの属性の組み合わせとが対応付けられて、各ユーザとユーザの属性の組み合わせとの対応関係が鍵発行機関２０Ａにおいて管理されてもよい。鍵発行機関２０Ａは、各ユーザとユーザの属性の組み合わせとの対応関係を他の鍵発行機関に送信してもよい。
【００４０】
続いて、各ユーザ（ユーザ端末１１Ａ及びユーザ端末１１Ｂ）と、複数の鍵発行機関のうち鍵発行機関２０Ａ以外の鍵発行機関（ここでは、鍵発行機関２０Ｂ）とは、公開サーバ３０から公開情報を取得する（ステップＳ１５）。なお、暗号システム１内の各機関は、公開サーバ３０のＩＰアドレスを予め取得している。
【００４１】
続いて、図４に示されるように、暗号システム１では、暗号化鍵生成処理が行われる。暗号化鍵生成処理では、まず、各鍵発行機関（ここでは、鍵発行機関２０Ａ，２０Ｂ及びユーザ端末１１Ｂ）が公開鍵ＰＫｊを生成する（ステップＳ２１）。なお、各鍵発行機関には番号ｊ（ｊは１〜Ｎｃの整数）が割り当てられている。総数Ｎｃは、公開鍵ＰＫｊ及び秘密鍵ＳＫｕｊを生成する鍵発行機関の総数である。ステップＳ２１では、ｊ番目の鍵発行機関は、乱数ａｊを生成し、式（２）に示される計算を行って公開鍵ＰＫｊを生成する。
【数２】
2019086744.tif 000004
【００４２】
そして、各鍵発行機関は、公開鍵ＰＫｊを公開するために公開鍵ＰＫｊを公開サーバ３０に送信する（ステップＳ２２）。そして、公開サーバ３０は、不図示の記憶装置に公開鍵ＰＫｊを公開情報として格納する（ステップＳ２３）。
【００４３】
続いて、暗号システム１内の各機関（ここでは、ユーザ端末１１Ａ，１１Ｂ、及び鍵発行機関２０Ａ，２０Ｂ）は、公開サーバ３０からＮｃ個の公開鍵ＰＫｊを取得する（ステップＳ２４）。そして、各機関は、Ｎｃ個の公開鍵ＰＫｊを用いて属性ベース暗号の暗号化用の暗号化鍵ＰＫを生成する（ステップＳ２５）。具体的には、各機関は、式（３）に示されるように、各公開鍵ＰＫｊを加算し、その加算結果ｅ（ｇ１，ｇ２）ａを計算する。
【数３】
2019086744.tif 000005
【００４４】
そして、各機関は、式（４）に示されるように、公開情報と加算結果ｅ（ｇ１，ｇ２）ａとを属性ベース暗号の暗号化用の暗号化鍵ＰＫとする。
【数４】
2019086744.tif 000006
【００４５】
このように、暗号化鍵生成処理では、鍵発行機関２０Ａ，２０Ｂは、公開鍵ＰＫｊ（第１公開鍵）を生成するとともに、公開鍵ＰＫｊを公開する。同様に、ユーザ端末１１Ｂは、公開鍵ＰＫｊ（第２公開鍵）を生成するとともに、公開鍵ＰＫｊを公開する。ユーザ端末１１Ａは、鍵発行機関２０Ａ，２０Ｂによって生成された公開鍵ＰＫｊとユーザ端末１１Ｂによって生成された公開鍵ＰＫｊとを取得して、これらの公開鍵ＰＫｊを用いて属性ベース暗号の暗号化用の暗号化鍵ＰＫを生成する。
【００４６】
続いて、図５に示されるように、暗号システム１では、復号鍵生成処理が行われる。ここでは、ユーザ端末１１Ａが復号鍵を生成する場合を説明する。復号鍵生成処理では、まず、ユーザ端末１１Ａが各鍵発行機関（ここでは、鍵発行機関２０Ａ，２０Ｂ及びユーザ端末１１Ｂ）に秘密鍵を要求する（ステップＳ３１）。このとき、ユーザ端末１１Ａは、ユーザＵＡの属性の組み合わせ（第１属性）を指定して、ユーザＵＡの属性の組み合わせに対応した秘密鍵を要求する。
【００４７】
そして、各鍵発行機関（ここでは、鍵発行機関２０Ａ，２０Ｂ及びユーザ端末１１Ｂ）は、ユーザ端末１１Ａから秘密鍵の要求を受け取ると、ユーザＵＡの属性の組み合わせに応じた秘密鍵を生成する（ステップＳ３２）。このとき、各鍵発行機関は、指定されたユーザＵＡの属性の組み合わせにユーザＵＡに無関係な属性が含まれている場合には、指定されたユーザＵＡの属性の組み合わせを否決してもよい。
【００４８】
ステップＳ３２では、まず、各鍵発行機関は、ユーザ端末１１Ａ（ユーザＵＡ）に対して乱数ｓｕｊをランダムに決定して、式（５）に示される計算を行う。なお、乱数ｓｕｊはユーザごとに決定される値である。ユーザＵＡの属性（ユーザＵＡの属性の組み合わせに含まれる属性）の総数Ｘは、ユーザシステム１０で用いられる属性の総数Ｎ以下である。なお、乱数ｈｕｘは、ユーザＵＡのＸ個の属性のうちのｘ番目の属性に対応する乱数ｈｎである。
【数５】
2019086744.tif 000007
【００４９】
続いて、各鍵発行機関は、式（６）に示される秘密鍵ＳＫｕｊをユーザ端末１１Ａに送信（配布）する（ステップＳ３３）。
【数６】
2019086744.tif 000008
【００５０】
そして、ユーザ端末１１Ａは、Ｎｃ個の秘密鍵ＳＫｕｊを用いて属性ベース暗号の復号用の復号鍵ＳＫｕを生成する（ステップＳ３４）。具体的には、ユーザ端末１１Ａは、式（７）及び式（８）に示されるように、Ｎｃ個の秘密鍵ＳＫｕｊを要素ごとに加算し、その加算結果を復号鍵ＳＫｕとする。なお、復号鍵ＳＫｕには、Ｘ個の属性鍵（属性鍵Ｋｕ１〜ＫｕＸ）が含まれる。
【数７】
2019086744.tif 000009
【数８】
2019086744.tif 000010
【００５１】
このように、復号鍵生成処理では、ユーザ端末１１Ａは、鍵発行機関２０Ａ，２０ＢにユーザＵＡの属性の組み合わせに応じた秘密鍵ＳＫｕｊ（第１秘密鍵）を要求するとともに、ユーザ端末１１ＢにユーザＵＡの属性の組み合わせに応じた秘密鍵ＳＫｕｊ（第２秘密鍵）を要求する。鍵発行機関２０Ａ，２０Ｂは、ユーザ端末１１Ａからの要求に応じて、秘密鍵ＳＫｕｊを生成して秘密鍵ＳＫｕｊをユーザ端末１１Ａに配布する。同様に、ユーザ端末１１Ｂは、ユーザ端末１１Ａからの要求に応じて、秘密鍵ＳＫｕｊを生成して秘密鍵ＳＫｕｊをユーザ端末１１Ａに配布する。ユーザ端末１１Ａは、鍵発行機関２０Ａ，２０Ｂから秘密鍵ＳＫｕｊを取得するとともに、ユーザ端末１１Ｂから秘密鍵ＳＫｕｊを取得する。そして、ユーザ端末１１Ａは、これらの秘密鍵ＳＫｕｊを用いて属性ベース暗号の復号用の復号鍵ＳＫｕ（第１復号鍵）を生成する。
【００５２】
続いて、ユーザが属性ベース暗号を用いて暗号化を行う暗号化処理を説明する。ここでは、ユーザ端末１１Ａが暗号化を行う場合を説明する。図６に示されるように、暗号化処理では、まずユーザＵＡがユーザ端末１１Ａを用いて所望のデータＭｓｇを暗号化する（ステップＳ４１）。ユーザ端末１１Ａには、例えば、属性ベース暗号のための暗号アプリケーションが予めインストールされている。ユーザＵＡは、暗号アプリケーションにおいて、当該データを復号可能な属性の組み合わせ（アクセス構造）を指定する。図２の例では、「開発部」かつ「海外支社経験者」かつ「プロジェクトＰ担当者」の属性の組み合わせを有するユーザ、又は「総務課」の属性の組み合わせを有するユーザが復号できるように、アクセス構造の指定が行われる。なお、各ユーザは、任意のアクセス構造を指定でき、例えば、当該ユーザが復号できないアクセス構造を指定することもできる。
【００５３】
そして、ユーザ端末１１Ａは、線形秘密分散法を用いて、指定されたアクセス構造をｌ行ｍ列の行列Ｍの形で表現する。なお、行の総数ｌは、アクセス構造に含まれる属性であって、重複している属性でも別個に計数した場合の属性の数と等しい。例えば、図２の例では、ポリシーを満たす行列の一例として、式（９）で示される行列Ｍが生成される。
【数９】
2019086744.tif 000011
【００５４】
そして、ユーザ端末１１Ａは、行列Ｍに対応して、ｍ個の要素を含むベクトルｖをランダムに生成する。式（１０）に示されるように、ベクトルｖは、秘密情報ｓと、乱数ｚ２〜ｚｍと、を含む。
【数１０】
2019086744.tif 000012
【００５５】
そして、ユーザ端末１１Ａは、式（１１）に示されるように、ベクトルｖと、行列Ｍのｉ（ｉは１〜ｌの整数）行目の行Ｍｉと、を用いて値λｉを計算する。
【数１１】
2019086744.tif 000013
【００５６】
続いて、ユーザ端末１１Ａは、ｌ個の乱数ｒｉをランダムに決定する。そして、ユーザ端末１１Ａは、式（１２）に示されるように、値λｉと乱数ｒｉと暗号化鍵ＰＫとを用いて暗号化対象のデータＭｓｇを暗号化し、暗号文を生成する。なお、乱数ｈρ（ｉ）は、ｉ行目の属性に対応する乱数ｈｎである。
【数１２】
2019086744.tif 000014
【００５７】
そして、ユーザ端末１１Ａは、クラウドストレージ４０に暗号文を送信する（ステップＳ４２）。クラウドストレージ４０は、ユーザ端末１１Ａから暗号文を受信すると、暗号文を不図示の記憶装置に格納する（ステップＳ４３）。
【００５８】
続いて、ユーザが属性ベース暗号を用いて暗号文を復号する復号処理を説明する。ここでは、ユーザ端末１１Ａが復号を行う場合を説明する。図７に示されるように、復号処理では、まずユーザＵＡがユーザ端末１１Ａを用いて、クラウドストレージ４０に暗号文の取得を要求する（ステップＳ５１）。そして、クラウドストレージ４０は、ユーザ端末１１Ａから暗号文の取得要求を受信すると、要求されている暗号文を不図示の記憶装置から読み出し、当該暗号文をユーザ端末１１Ａに送信する（ステップＳ５２）。
【００５９】
続いて、ユーザ端末１１Ａは、クラウドストレージ４０から暗号文を受信すると、ユーザＵＡの復号鍵ＳＫｕを用いて復号を行う（ステップＳ５３）。このとき、ユーザ端末１１Ａは、ユーザＵＡの属性の組み合わせが暗号文に設定されたポリシーを満たす場合には、式（１３）を満たす値ｗｉを計算することができる。
【数１３】
2019086744.tif 000015
【００６０】
そして、ユーザ端末１１Ａは、式（１４）に示されるように、値ｗｉとユーザＵＡの復号鍵ＳＫｕとを用いて暗号文を復号し、元のデータＭｓｇを得る。なお、属性鍵Ｋρ（ｉ）は、行列Ｍ（アクセス構造）に含まれるｌ個の属性のうちのｉ行目の属性に対応する属性鍵Ｋｕｘである。
【数１４】
2019086744.tif 000016
【００６１】
このように、各ユーザは、自身の属性の組み合わせが暗号文に設定されたポリシーを満たす場合にのみ、ユーザの復号鍵を用いて当該暗号文の復号が可能となる。属性ベース暗号の安全性は、離散対数問題の困難性に起因している。例えば、一例を挙げると、生成元ｇ１と元ｇ１ａ１とから、乱数ａ１を計算することが困難であるという性質である。この性質により、上記の属性ベース暗号は安全であるといえる。
【００６２】
次に、図８及び図９を参照して、暗号システム１の別の動作例を説明する。図８は、図１に示される暗号システムにおける委譲処理を示すシーケンス図である。図９は、図１に示される暗号システムにおける秘密鍵生成処理を示すシーケンス図である。委譲とは、鍵発行機関がＮ個の属性のうちの一部についての権限を他の機関に受け渡すことを意味する。なお、説明の便宜上、ユーザについては、ユーザＵＡ，ＵＢのみを図示し、鍵発行機関については、鍵発行機関２０Ａ，２０Ｂ，２０Ｃのみを図示する。また、ユーザ端末１１Ｂが鍵発行機関としての役割を担っている。
【００６３】
初期設定処理において、ユーザ端末１１Ｂ（ユーザＵＢ）は、複数の鍵発行機関のうち、委譲先の鍵決定機関となることを承諾している鍵発行機関の中から委譲先の鍵発行機関を任意に選択する。そして、ユーザ端末１１Ｂは、例えば、ステップＳ１１において、利用属性の申請に加えて、委譲対象の属性である委譲属性と委譲先の鍵発行機関（鍵発行機関２０Ｃ；別の鍵発行機関）の発行機関識別情報とを鍵発行機関２０Ａに通知する。鍵発行機関２０Ａは、ステップＳ１３において、公開情報に委譲属性と委譲先の鍵発行機関の発行機関識別情報とを含めて公開サーバ３０に送信する。これにより、委譲属性と委譲先の鍵発行機関とが暗号システム１内の各機関に事前に周知される。なお、ユーザ端末１１Ｂは、複数の鍵発行機関に異なる委譲属性を委譲してもよい。委譲先の鍵発行機関は、秘密鍵ＳＫｕｊ及び公開鍵ＰＫｊを生成している鍵発行機関と重複してもよい。
【００６４】
ここでは、ユーザ端末１１ＢがＮ個の属性の一部を鍵発行機関２０Ｃに委譲する場合について説明する。まず、ユーザ端末１１Ｂが委譲鍵を生成する（ステップＳ６１）。ステップＳ６１では、まず、ユーザ端末１１Ｂは、乱数ｓｄｊをランダムに決定して、式（１５）に示される計算を行う。委譲属性の総数Ｙは、ユーザシステム１０で用いられる属性の総数Ｎ以下である。乱数ｈｄｙは、Ｙ個の委譲属性のうちのｙ番目の属性に対応する乱数ｈｎである。
【数１５】
2019086744.tif 000017
【００６５】
そして、ユーザ端末１１Ｂは、式（１６）に示される委譲鍵ＤＫｊを鍵発行機関２０Ｃに送信（配布）する（ステップＳ６２）。委譲鍵ＤＫｊには、Ｙ個の属性鍵（属性鍵Ｋｄ１ｊ〜ＫｄＹｊ）が含まれる。なお、委譲鍵ＤＫｊからは、元の秘密鍵ＳＫｕｊを判別することはできない。
【数１６】
2019086744.tif 000018
【００６６】
また、鍵発行機関２０Ｃは、公開サーバ３０から公開情報を取得する（ステップＳ６３）。
【００６７】
続いて、図９に示されるように、暗号システム１では、復号鍵生成処理が行われる。ここでは、ユーザ端末１１Ａが復号を行う場合を説明する。復号鍵生成処理では、まず、ユーザ端末１１Ａが、ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれるか否かを判定する（ステップＳ７１）。ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれないと判断された場合（ステップＳ７１：ＮＯ）、図５に示される復号鍵生成処理が行われる。
【００６８】
一方、ユーザ端末１１Ａは、ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれると判断した場合（ステップＳ７１：ＹＥＳ）、各鍵発行機関に秘密鍵を要求する（ステップＳ７２）。図５のステップＳ３１と比較して、ユーザ端末１１Ｂに代えて鍵発行機関２０Ｃに秘密鍵を要求する点が異なる。そして、各鍵発行機関（ここでは、鍵発行機関２０Ａ〜２０Ｃ）は、ユーザ端末１１Ａから秘密鍵の要求を受け取ると、ユーザＵＡの属性の組み合わせに応じた秘密鍵を生成する（ステップＳ７３）。
【００６９】
ステップＳ７３では、鍵発行機関２０Ｃは、ユーザ端末１１Ａ（ユーザＵＡ）に対して乱数ｓｕｊをランダムに決定して、式（１７）に示される計算を行う。属性鍵Ｋｄｕｘｊは、ユーザＵＡのＸ個の属性のうちのｘ番目の属性に対応する属性鍵Ｋｄｙｊである。なお、鍵発行機関２０Ａ，２０Ｂの秘密鍵生成処理は、ステップＳ３２と同様であるので、説明を省略する。
【数１７】
2019086744.tif 000019
【００７０】
続いて、各鍵発行機関は、式（６）に示される秘密鍵ＳＫｕｊをユーザ端末１１Ａに送信（配布）する（ステップＳ７４）。そして、ユーザ端末１１Ａは、ステップＳ３４と同様に、Ｎｃ個の秘密鍵ＳＫｕｊを用いて属性ベース暗号の復号用の復号鍵ＳＫｕを生成する（ステップＳ７５）。
【００７１】
以上説明したように、暗号システム１、ユーザシステム１０、ユーザ端末１１Ａが行う暗号方法、及びユーザ端末１１Ａに暗号方法を実行させる暗号プログラムでは、ユーザ端末１１Ａは、鍵発行機関２０Ａ，２０Ｂによって生成された公開鍵ＰＫｊと、ユーザシステム１０内のユーザ端末１１Ｂによって生成された公開鍵ＰＫｊとを用いて属性ベース暗号の暗号化用の暗号化鍵ＰＫを生成する。ユーザ端末１１Ａは、鍵発行機関２０Ａ，２０Ｂによって生成された秘密鍵ＳＫｕｊとユーザシステム１０内のユーザ端末１１Ｂによって生成された秘密鍵ＳＫｕｊとを用いて属性ベース暗号の復号用の復号鍵ＳＫｕを生成する。
【００７２】
ユーザ端末１１Ｂが暗号化及び復号を行う場合も同様である。つまり、ユーザ端末１１Ｂは、ユーザＵＢの属性の組み合わせ（第２属性）に応じた秘密鍵ＳＫｕｊ（第３秘密鍵）を鍵発行機関２０Ａ，２０Ｂに要求するとともに、ユーザＵＢの属性の組み合わせに応じた秘密鍵ＳＫｕｊ（第４秘密鍵）を生成する。鍵発行機関２０Ａ，２０Ｂは、ユーザ端末１１Ｂからの要求に応じて、秘密鍵ＳＫｕｊを生成して秘密鍵ＳＫｕｊをユーザ端末１１Ｂに配布する。ユーザ端末１１Ｂは、公開鍵ＰＫｊを用いて暗号化鍵ＰＫを生成し、鍵発行機関２０Ａ，２０Ｂから秘密鍵ＳＫｕｊを取得して、鍵発行機関２０Ａ，２０Ｂによって生成された秘密鍵ＳＫｕｊとユーザ端末１１Ｂ自身が生成した秘密鍵ＳＫｕｊとを用いて属性ベース暗号の復号用の復号鍵ＳＫｕ（第２復号鍵）を生成する。
【００７３】
このように、鍵発行機関としての役割をユーザシステム１０内のユーザ端末１１Ｂが担うことにより、鍵発行機関が結託することによって暗号文が復号される可能性を低減することができる。つまり、ユーザＵＢが鍵の管理権限の一部を有しているので、ユーザシステム１０以外の全ての鍵発行機関が結託した場合でも、暗号文を復号することはできない。その結果、属性ベース暗号の安全性を向上させることが可能となる。
【００７４】
ユーザ端末１１Ｂは、ユーザシステム１０で用いられる複数（Ｎ個）の属性のうちの１以上（Ｙ個）の属性を委譲属性の集合として鍵発行機関２０Ｃに委譲する。そして、ユーザ端末１１Ａは、ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれる場合には、ユーザ端末１１Ｂに代えて委譲先の鍵発行機関２０Ｃに秘密鍵ＳＫｕｊを要求する。鍵発行機関２０Ｃは、ユーザ端末１１Ａからの要求に応じて、秘密鍵ＳＫｕｊを生成して秘密鍵ＳＫｕｊをユーザ端末１１Ａに配布する。このように、ユーザシステム１０において機密性を保ちたい属性に対しては、ユーザ端末１１Ｂ（ユーザＵＢ）自身が鍵発行機関の役割を果たし、ユーザシステム１０のユーザ（ユーザＵＡ等）に対して鍵の生成及び配布を行う。また、ユーザ端末１１ＢのユーザＵＢの負担を軽減するために、ユーザシステム１０において機密性に拘らない属性、及び関係の無い属性等に対しては、ユーザ端末１１Ｂは委譲鍵ＤＫｊを作成し、鍵発行機関２０Ｃに委譲属性に関する鍵の生成及び配布を委譲する。これにより、ユーザ端末１１Ｂは、委譲属性に関する秘密鍵の生成及び配布を行う必要がなくなるので、ユーザ端末１１ＢのユーザＵＢの負担を軽減することができる。一方、委譲属性以外の属性については、ユーザＵＢが鍵の管理権限の一部を有しているので、ユーザシステム１０以外の全ての鍵発行機関が結託した場合でも、暗号文を復号することはできない。その結果、ユーザＵＢの負担を軽減しつつ、属性ベース暗号の安全性を向上させることが可能となる。
【００７５】
なお、本発明に係る暗号システム、ユーザシステム、暗号方法、及び暗号プログラムは上記実施形態に限定されない。
【００７６】
上記実施形態では、各ユーザが鍵発行機関２０Ａに利用属性の申請を行っているが、他の鍵発行機関に利用属性の申請を行ってもよい。例えば、ある組織のユーザが利用属性の申請を行う鍵発行機関と、別の組織のユーザが利用属性の申請を行う鍵発行機関とが異なる場合のように、２以上の鍵発行機関に利用属性の申請が行われることがある。このような場合、１つの鍵発行機関（例えば、鍵発行機関２０Ａ）がそれ以外の鍵発行機関に申請された属性を取りまとめてもよい。他の鍵発行機関は、自身に申請された利用属性について、鍵発行機関２０Ａに利用属性の申請を行う。鍵発行機関２０Ａは、上記実施形態と同様に初期設定を行う。
【００７７】
暗号システム１は、公開サーバ３０を備えていなくてもよい。この場合、公開情報は、暗号システム１内の各機関に電子メール等によって直接配布される。
【００７８】
ユーザの属性は、所定の規則によって決定されてもよい。例えば、ユーザが会社員である場合には、所属部署、及び入社年度等の属性が管理されている。この場合、これらの属性を一括して、企業の管理部門において利用属性の申請が行われてもよく、各ユーザは利用属性の申請を行わなくてもよい。
【００７９】
ユーザシステム１０は、１つの組織に属するユーザ端末だけでなく、異なる組織に属するユーザ端末を含んでもよい。この場合、同じ名称の属性が２以上の組織で利用される可能性がある。このため、各組織の属性が一意に識別可能なように属性名等が設定される。例えば、ユーザＵＡがＥ社に属しており、ユーザＵＢがＦ社に属しており、ユーザＵＡ及びユーザＵＢが「総務課」の属性について利用属性の申請を行う場合、属性名を「総務課Ｅ社」、及び「総務課Ｆ社」として２つの属性が区別されるか、会社名の属性と「総務課」の属性とが論理積される。
【００８０】
また、ユーザ端末１１Ｂが鍵発行機関２０Ｃに委譲属性を委譲した場合、ユーザ端末１１Ａは、図５と同様、各鍵発行機関（図５の例では、鍵発行機関２０Ａ，２０Ｂ及びユーザ端末１１Ｂ）に秘密鍵を要求してもよい。そして、ユーザ端末１１ＢがステップＳ７１の処理を行い、ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれないと判断された場合（ステップＳ７１：ＮＯ）、図５に示される復号鍵生成処理が行われる。一方、ユーザ端末１１Ｂは、ユーザＵＡの属性の組み合わせが委譲属性の集合に含まれると判断した場合（ステップＳ７１：ＹＥＳ）、ユーザ端末１１Ａに委譲先の鍵発行機関２０Ｃを通知し、ユーザ端末１１Ａは鍵発行機関２０Ｃに秘密鍵を要求してもよい。
【符号の説明】
【００８１】
１…暗号システム、１０…ユーザシステム、１１Ａ…ユーザ端末（第１ユーザ端末）、１１Ｂ…ユーザ端末（第２ユーザ端末）、１１Ｃ…ユーザ端末、２０Ａ…鍵発行機関、２０Ｂ…鍵発行機関、２０Ｃ…鍵発行機関（別の鍵発行機関）、３０…公開サーバ、４０…クラウドストレージ、ＮＷ…ネットワーク、ＵＡ…ユーザ、ＵＢ…ユーザ、ＵＣ…ユーザ。
【図１】
2019086744.tif 000020
【図２】
2019086744.tif 000021
【図３】
2019086744.tif 000022
【図４】
2019086744.tif 000023
【図５】
2019086744.tif 000024
【図６】
2019086744.tif 000025
【図７】
2019086744.tif 000026
【図８】
2019086744.tif 000027
【図９】
2019086744.tif 000028