(57)【特許請求の範囲】
【請求項１】
特定のデータに対するアクセス制御をオフラインで実行するアクセス制御装置であって、
ユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する属性鍵生成手段と、
該生成した属性鍵を予め前記ユーザに送信する送信手段と、
アクセス制御における条件式を指定した条件インデックスを生成する条件インデックス生成手段と、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化するデータ暗号化手段と、
予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する情報暗号化手段と、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する受信手段と、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う判定手段と、
該判定手段により、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記情報暗号化手段により暗号化された情報を復号して、復号化鍵を出力する復号化鍵出力手段と、
を備えたことを特徴とするアクセス制御装置。
【請求項２】
各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、
前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、
複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、
前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、
複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項４】
各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、
前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、
複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項５】
特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするアクセス制御方法。
【請求項６】
特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするアクセス制御方法。
【請求項７】
特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするアクセス制御方法。
【請求項８】
コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするプログラム。
【請求項９】
コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするプログラム。
【請求項１０】
コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、
１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、
該生成した属性鍵を予め前記ユーザに送信する第２のステップと、
複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成する第３のステップと、
前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、
該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、
特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、
前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、
該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、
を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定のデータに対するアクセス制御をオフラインで実行するアクセス制御装置、アクセス制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータやネットワーク技術の発達、あるいはそれらを利用した情報サービスの発展に伴い、様々な情報セキュリティー技術が実現されている。この情報セキュリティーを実現する技術の１つとして、アクセス制御がある。アクセス制御とは、各ユーザに対して、オブジェクトへのアクセスの許可あるいは不許可を規定する機能をいい、一般に、ユーザ認証などにより識別された主体から要求されたコンピュータ資源へのアクセスを、予め設定されたアクセス制御リストを用いて許可するか禁止するかの制御を行う技術などがある。こうしたアクセス制御技術を利用することにより、特定個人／特定端末の関係において特定資源の利用だけを許可するという情報セキュリティーが実現され、悪意を持った様々な不正アクセスからコンピュータ資源を保護することができる。
【０００３】
また、アクセス制御には、オンラインでアクセス制御を実行するオンラインアクセス制御と、オフラインでアクセス制御を実行するオフラインアクセス制御とがある。ここで、オフラインアクセス制御を実現する１つの方法として、オブジェクトを暗号化し、アクセスが許可されたユーザに対してのみ鍵を配付する方法がある。例えば、Ｒｏｌｅ−Ｂａｓｅｄ
Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ （ＲＢＡＣ）を暗号化により実現する場合は、それぞれの役割（ｒｏｌｅ）に対して、１つの鍵を割り当てる必要がある。
【０００４】
さらに、検索可能な暗号化データベースを実現する技術として非特許文献１に記載された技術が知られている。この技術では、条件式Ｐ∈Φに対応するトークンを持つ利用者が、Ｐ（Ｉ）＝１なる対象インデックスＩを付加した暗号化メッセージＭを検索し、復号できる。この方式は，Ｈｉｄｄｅｎ
Ｖｅｃｔｏｒ Ｅｎｃｒｙｐｔｉｏｎ（ＨＶＥ）と呼ばれ、ペアリングを用いて実現されている。
【０００５】
ＨＶＥ を用いた暗号化処理、トークンの発行処理および復号処理は、下記の通り行なう。つまり、メッセージ作成者は、対象インデックスＩ２Ｚｌｍを付加したメッセージＭを公開鍵で暗号化し、暗号文Ｃを得る。また、検索インデックスＩσ２Ｚｌσ鍵で処理し、トークンＴＫＩσを発行する。トークンＴＫＩσを持つ利用者は、ＰＨＶＥ3/4（Ｉ） ＝ １なる対象インデックスＩが付加されたメッセージＭを復号できる。
【０００６】
以下に、ＨＶＥで用いられるプリミティブを示す。
（１）  Ｓｅｔｕｐ（λ）
入力セキュリティパラメータに対し、公開鍵ＰＫおよび秘密鍵ＳＫの鍵ペアを返す関数。
（２）  Ｅｎｃｒｙｐｔ（ＰＫ、Ｉ、Ｍ）
公開鍵ＰＫを用いて、入力された対象インデックスおよびデータのペア（Ｉ、Ｍ）に対し、暗号文Ｃを出力する関数。
（３）  ＧｅｎＴｏｋｅｎ（ＳＫ、 [Ｉ＊]）
秘密鍵ＳＫを用いて、入力された検索インデックスＩ＊に対し，トークンＴＫＩ＊を出力する関数。
（４）  Ｑｕｅｒｙ（ＴＫ、Ｃ）
入力された暗号文Ｃ、トークンＴＫＩ＊に対し、Ｉ＊がＩにマッチ（ＰＨＶＥ3/4（Ｉ） ＝ １）すれば、データＭを復号、Ｐ（Ｉ）＝０であれば、復号失敗を意味する⊥を出力する。
【非特許文献１】Ｄ. Ｂｏｎｅｈ ａｎｄ ｂ. Ｗａｔｅｒｓ、 ”Ｃｏｎｊｕｎｃｔｉｖｅ、 Ｓｕｂｓｅｔ、ａｎｄ Ｒａｎｇｅ  Ｑｕｅｒｉｅｓ ｏｎ Ｅｎｃｒｙｐｔｅｄ Ｄａｔａ、“ Ｐｒｏｃ. ｏｆ ＴＣＣ ２００７、ＬＮＣＳ ４３９２、 ｐｐ.５３５−５５４、 ２００７。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のオブジェクトを暗号化し、アクセスが許可されたユーザに対してのみ鍵を配付する方法では、複数の役割を付与された利用者は、複数の鍵を保持することが必要になり、鍵の管理が煩雑になるという問題がある。また、非特許文献１に記載の技術は、オフラインアクセス制御では、条件式に基づき、特定のサブジェクトに特定の鍵を復号させることが必要であり、対象インデックスに特定の値を指定するＨＶＥ
をそのまま用いることはできないという問題がある。
【０００８】
そこで、本発明は、上述の課題に鑑みてなされたものであり、各利用者が保持するトークン（属性鍵）を１個とし、柔軟なアクセス制御を可能とするアクセス制御装置、アクセス制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【００１０】
（１）本発明は、特定のデータに対するアクセス制御をオフラインで実行するアクセス制御装置であって、ユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する属性鍵生成手段と、該生成した属性鍵を予め前記ユーザに送信する送信手段と、アクセス制御における条件式を指定した条件インデックスを生成する条件インデックス生成手段と、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報とで暗号化するデータ暗号化手段と、予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する情報暗号化手段と、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する受信手段と、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う判定手段と、該判定手段により、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記情報暗号化手段により暗号化された情報を復号して、復号化鍵を出力する復号化鍵出力手段と、を備えたことを特徴とするアクセス制御装置を提案している。
【００１１】
この発明によれば、属性鍵生成手段は、ユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する。送信手段は、生成した属性鍵を予めユーザに送信する。条件インデックス生成手段は、アクセス制御における条件式を指定した条件インデックスを生成する。データ暗号化手段は、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報とで暗号化する。情報暗号化手段は、予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。受信手段は、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信する。判定手段は、条件インデックスと受信した属性鍵とのマッチング判定を行う。復号化鍵出力手段は、判定手段により、条件インデックスと属性鍵とのマッチングが認められたときに、情報暗号化手段により暗号化された情報を復号して、復号化鍵を出力する。したがって、利用者の属性が複数ある場合でも、各利用者が保持する属性鍵を１個とし、特定のデータに対するアクセス制御をオフラインで実行することができる。
【００１２】
（２）本発明は、（１）のアクセス制御装置について、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成することを特徴とするアクセス制御装置を提案している。
【００１３】
この発明によれば、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、ユーザの属性情報が、各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、条件インデックス生成手段が、複数の属性のビット列を結合し、アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する。したがって、所属や職位といった複数の属性を有するユーザについて、１の属性がアクセス条件に合致する場合に、他の属性にかかわらず、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００１４】
（３）本発明は、（１）のアクセス制御装置について、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成することを特徴とするアクセス制御装置を提案している。
【００１５】
この発明によれば、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、ユーザの属性情報が、各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、条件インデックス生成手段が、複数の属性のビット列を結合し、アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００１６】
（４）本発明は、（１）のアクセス制御装置について、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、前記ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、前記ユーザの属性情報が、前記各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記条件インデックス生成手段が、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成することを特徴とするアクセス制御装置を提案している。
【００１７】
この発明によれば、各属性が、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされ、ユーザの属性情報が、各属性のビット列を結合した情報であり、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、条件インデックス生成手段が、複数の属性のビット列を結合し、ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００１８】
（５）本発明は、特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするアクセス制御方法を提案している。
【００１９】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化する。また、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと該受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、１の属性がアクセス条件に合致する場合に、他の属性にかかわらず、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００２０】
（６）本発明は、特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするアクセス制御方法を提案している。
【００２１】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化するとともに、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００２２】
（７）本発明は、特定のデータに対するアクセス制御をオフラインで実行するアクセス制御方法であって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするアクセス制御方法を提案している。
【００２３】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化するとともに、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００２４】
（８）本発明は、コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするプログラムを提案している。
【００２５】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化する。また、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと該受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、１の属性がアクセス条件に合致する場合に、他の属性にかかわらず、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００２６】
（９）本発明は、コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするプログラムを提案している。
【００２７】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化するとともに、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００２８】
（１０）本発明は、コンピュータを用いて、特定のデータに対するアクセス制御をオフラインで実行するためのプログラムであって、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、該ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する第１のステップと、該生成した属性鍵を予め前記ユーザに送信する第２のステップと、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成する第３のステップと、前記特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報で暗号化する第４のステップと、該特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する第５のステップと、特定のデータに対するアクセスに際し、ユーザから前記属性鍵を受信する第６のステップと、前記条件インデックスと該受信した属性鍵とのマッチング判定を行う第７のステップと、該第７のステップにより、前記条件インデックスと属性鍵とのマッチングが認められたときに、前記第５のステップにより暗号化された情報を復号して、復号化鍵を出力する第８のステップと、を実行することを特徴とするプログラムを提案している。
【００２９】
この発明によれば、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し、生成した属性鍵を予めユーザに送信する。次に、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成し、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化するとともに、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し、条件インデックスと受信した属性鍵とのマッチング判定を行って、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する。したがって、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【発明の効果】
【００３０】
本発明によれば、各利用者が保持する属性鍵を１個とし、柔軟なアクセス制御を実行できるという効果がある。また、本発明の技術をコンテンツ配信サービスに適用すれば、例えば、プレミアム会員のみに特典コンテンツを配布する、もしくは、１２月生まれの利用者のみにアーティストからのメッセージを配布する等のサービスを安全に行なうことができるという効果がある。
【発明を実施するための最良の形態】
【００３１】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３２】
本実施形態に係るアクセス制御装置について、図１から図４を用いて説明する。
【００３３】
＜アクセス制御装置の構成＞
本実施形態に係るアクセス制御装置は、図１に示すように、属性鍵生成部１０と、送信部２０と、条件インデックス生成部３０と、データ暗号化部４０と、情報暗号化部５０と、受信部６０と、判定部７０と、復号化鍵出力部８０とから構成されている。
【００３４】
属性鍵生成部１０は、ユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成する。送信部２０は、属性鍵生成部１０が生成した属性鍵を予めユーザに送信する。条件インデックス生成部３０は、アクセス制御における条件式を指定した条件インデックスを生成する。
【００３５】
データ暗号化部４０は、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報とで暗号化する。情報暗号化部５０は、予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する。受信部６０は、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信する。判定部７０は、条件インデックスと受信した属性鍵とのマッチング判定を行う。復号化鍵出力部８０は、判定部７０により、条件インデックスと属性鍵とのマッチングが認められたときに、情報暗号化部５０により暗号化された情報を復号して、復号化鍵を出力する。
【００３６】
＜アクセス制御装置の処理＞
図２を用いて、アクセス制御装置の処理について説明する。
まず、ユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し（ステップＳ１０１）、生成した属性鍵を予めユーザに送信する（ステップＳ１０２）。次に、アクセス制御における条件式を指定した条件インデックスを生成し（ステップＳ１０３）、特定のデータを予め用意した鍵と該生成した条件インデックスとを結合した情報とで暗号化する（ステップＳ１０４）とともに、予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する（ステップＳ１０５）。
【００３７】
そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し（ステップＳ１０６）、条件インデックスと受信した属性鍵とのマッチング判定を行う（ステップＳ１０７）とともに、条件インデックスと属性鍵とのマッチングが認められたときに、ステップＳ１０４により暗号化された情報を復号して、復号化鍵を出力する（ステップＳ１０８）。
【００３８】
＜属性鍵の構成＞
次に、図３および図４を用いて、属性鍵の構成について説明する。
なお、ここでは、説明を簡単にするため属性を例えば、所属と職位の２種類とし、属性 １（例えば、所属）は １以上ｍ以下の整数値をとり、属性２（例えば、職位）は、１以上ｎ以下の整数値をとるものとして説明を行なう。この場合、条件インデックスおよび属性は、長さｍ＋ｎのビット列となり、先頭のｍビットが属性１に対応し、残りのｎビットが属性２に対応する。また、各属性については、図３に示すようなデータテーブルが設けられている。
【００３９】
今、属性 １（例えば、所属）がｘ（例えば、図３の技術部）で、属性２（例えば、職位）がｙ（例えば、図３の部長）であるユーザの場合には、この属性Ａを秘密鍵で処理して図４に示すような属性鍵が付与される。ここで、図４中＊は任意の文字列を表す記号であり、属性鍵の際には、ＨＶＥにおけるプリミティブを用いＧｅｔＴｏｋｅｎ（ＳＫ,[Ａ]）とする。
【００４０】
したがって、本実施形態によれば、利用者の属性が複数ある場合でも、各利用者が保持する属性鍵を１個とし、特定のデータに対するアクセス制御をオフラインで実行することができる。
【００４１】
以下、図面を用いて、具体的な実施例について説明する。
【００４２】
＜実施例１＞
実施例１について、図５および図６を用いて、説明する。
本実施例は、属性１の値がアクセス条件を規定する集合Ｘに含まれている利用者に対して、属性２の値にかかわらず、復号化鍵Ｋを入手させる場合が相当する。この場合、属性鍵は、集合Ｘに含まれる値および属性２に対応するビットが１であり、他のビットが０である条件インデックスＣが付加され、公開鍵ＰＫにより暗号化される。暗号化の際には、ＨＶＥのプリミティブを用いＥＨＶＥ（ＰＫ、Ｃ、Ｋ）とする。ただし、条件インデックス中で、制御に使用しない属性に対応するビットは、すべて１とする．例として、Ｘ＝ｆ１；３；：：：；ｍｇの場合のときの条件インデックスＣを図６に示す。
【００４３】
次に、図５を用いて、本実施例の処理について説明する。
まず、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し（ステップＳ２０１）、生成した属性鍵を予めユーザに送信する（ステップＳ２０２）。
【００４４】
次に、複数の属性を有するユーザに対して、アクセス条件に合致する単一の属性によりアクセス制御を行う場合に、前記複数の属性のビット列を結合し、前記アクセス条件に合致するビットおよびアクセス制御に用いない属性のビット列を１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し（ステップＳ２０３）、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化する（ステップＳ２０４）。
【００４５】
また、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する（ステップＳ２０５）。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し（ステップＳ２０６）、条件インデックスと該受信した属性鍵とのマッチング判定を行って（ステップＳ２０７）、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する（ステップＳ２０８）。
【００４６】
したがって、本実施例によれば、所属や職位といった複数の属性を有するユーザについて、１の属性がアクセス条件に合致する場合に、他の属性にかかわらず、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００４７】
＜実施例２＞
実施例２について、図７および図８を用いて、説明する。
本実施例は、属性１の値が集合 Ｘ に含まれており、かつ属性２の値が集合Ｙに含まれている利用者に対してのみ、鍵Ｋを入手させる場合に相当する。この場合、鍵は、集合Ｘ
およびＹに含まれる値に対応するビットが１であり，他のビットが０である条件インデックスＣが付加され、公開鍵ＰＫを用いて暗号化される。暗号化の際には、ＨＶＥのプリミティブを用いＥＨＶＥ（ＰＫ、Ｃ、Ｋ）とする。例として、Ｘ＝ｆ１；３；：：：；ｍｇ、Ｙ＝ｆ２；：：：；ｎｉｌｇのときの条件インデックスをＣを図８に示す。
【００４８】
次に、図７を用いて、本実施例の処理について説明する。
まず、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し（ステップＳ３０１）、生成した属性鍵を予めユーザに送信する（ステップＳ３０２）。
【００４９】
次に、複数の属性を有するユーザに対して、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、アクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わして、条件インデックスを生成し（ステップＳ３０３）、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化する（ステップＳ３０４）。
【００５０】
また、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する（ステップＳ３０５）。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し（ステップＳ３０６）、条件インデックスと該受信した属性鍵とのマッチング判定を行って（ステップＳ３０７）、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する（ステップＳ３０８）。
【００５１】
したがって、本実施例によれば、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＡＮＤ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００５２】
＜実施例３＞
実施例３について、図９を用いて、説明する。
本実施例は、実施例１および実施例２において定義した複数の条件のうち、いずれか１つを満たす利用者に対し、鍵を入手させる場合に相当する。この場合は、それぞれの条件式に対応する条件インデックスを個別に作成する必要がある。例えば、条件式Ｐ
ＯＲ Ｑに対しては、Ｐに対応する条件インデックスＩＰを付加した鍵、およびＱに対応する条件インデックスＩｑを付加した鍵を個別に用意する必要がある。すなわち、ＯＲ式で連結された条件の個数と同数の暗号文が生成される。また、本実施例においては、暗号文のサイズが、インデックスの長さおよびＯＲ文で連接される条件数の積に比例する。さらに、利用者が鍵を復号する計算量は、属性の数に比例する。
【００５３】
次に、図９を用いて、本実施例の処理について説明する。
まず、１以上ｍ以下の整数値をｍビットで表現するビット列からなり、ｍビットのうち、ユーザの属性に対応するビットが１、対応しないビットが任意の文字列を表す記号で表わされた各属性のビット列を結合したユーザの属性情報を秘密鍵で処理して、１つの属性鍵を生成し（ステップＳ４０１）、生成した属性鍵を予めユーザに送信する（ステップＳ４０２）。
【００５４】
次に、複数の属性を有するユーザに対して、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、複数の属性のビット列を結合し、前記ＯＲ演算子で結合されたそれぞれの属性に対して、１の属性についてアクセス条件に合致するビットを１で表わし、それ以外のビットを０で表わす複数の条件インデックスを生成し（ステップＳ４０３）、特定のデータを予め用意した鍵と生成した条件インデックスとを結合した情報で暗号化する（ステップＳ４０４）。
【００５５】
また、特定のデータを予め用意した鍵とアクセス制御における条件式を指定した条件インデックスとを結合した情報を公開鍵で暗号化する（ステップＳ４０５）。そして、特定のデータに対するアクセスに際し、ユーザから属性鍵を受信し（ステップＳ４０６）、条件インデックスと該受信した属性鍵とのマッチング判定を行って（ステップＳ４０７）、条件インデックスと属性鍵とのマッチングが認められたときに、暗号化された情報を復号して、復号化鍵を出力する（ステップＳ４０８）。
【００５６】
したがって、本実施例によれば、所属や職位といった複数の属性を有するユーザについて、アクセス条件に合致するＯＲ演算子で結合された複数の属性によりアクセス制御を行う場合に、アクセス条件に合致するユーザのみに、復号鍵を与えるアクセス制御をオフラインで実行できる。
【００５７】
なお、アクセス制御装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをアクセス制御装置に読み込ませ、実行することによって本発明のアクセス制御装置、アクセス制御方法を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００５８】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５９】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。更に、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６０】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００６１】
【図１】本発明に係るアクセス制御装置の構成を示す図である。
【図２】本発明に係るアクセス制御装置の処理フローである。
【図３】属性テーブルを例示した図である。
【図４】属性鍵の構成を示す図である。
【図５】実施例１に係る処理フローである。
【図６】実施例１に係る条件インデックスを例示した図である。
【図７】実施例２に係る処理フローである。
【図８】実施例２に係る条件インデックスを例示した図である。
【図９】実施例２に係る処理フローである。
【符号の説明】
【００６２】
１０・・・属性鍵生成部
２０・・・送信部
３０・・・条件インデックス生成部
４０・・・データ暗号化部
５０・・・情報暗号化部
６０・・・受信部
７０・・・判定部
８０・・・復号化鍵出力部
【図１】
0004891933.tif 000002
【図２】
0004891933.tif 000003
【図３】
0004891933.tif 000004
【図４】
0004891933.tif 000005
【図５】
0004891933.tif 000006
【図６】
0004891933.tif 000007
【図７】
0004891933.tif 000008
【図８】
0004891933.tif 000009
【図９】
0004891933.tif 000010