(57)【特許請求の範囲】
【請求項１】
属性を表す属性値を用いて属性ベース暗号方式で生成される利用者秘密鍵に乱数要素を含めたランダム化秘密鍵を用いて、前記属性値を含んだ属性条件式を用いて暗号化された共通鍵である暗号化共通鍵を復号処理することにより、前記乱数要素を含んだランダム化マスク共通鍵を生成する共通鍵部分復号部と、
前記共通鍵部分復号部によって生成された前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を取得するマスク共通鍵取得部と、
前記マスク共通鍵取得部によって取得された前記マスク共通鍵を用いて共通鍵を生成するマスク除去部と、
前記マスク除去部によって生成された前記共通鍵を用いて、前記共通鍵を用いて暗号化されている対象データを復号するデータ復号部と
を備えることを特徴とするデータ復号装置。
【請求項２】
前記マスク共通鍵取得部は、前記マスク共通鍵を生成する乱数要素除去装置に前記ランダム化マスク共通鍵を送信し、前記乱数要素除去装置から前記マスク共通鍵を受信する
ことを特徴とする請求項１記載のデータ復号装置。
【請求項３】
前記乱数要素除去装置は、前記利用者秘密鍵に前記乱数要素を含めるために用いられた乱数を用いて生成されるマスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成する
ことを特徴とする請求項２記載のデータ復号装置。
【請求項４】
前記乱数要素除去装置は、乱数を生成し、生成した前記乱数を用いて前記利用者秘密鍵に前記乱数要素を含めることによって前記ランダム化秘密鍵を生成する
ことを特徴とする請求項２記載のデータ復号装置。
【請求項５】
前記マスク除去部は、前記マスク共通鍵を用いて入力値を生成し、生成した前記入力値を用いて鍵導出関数を演算することによって前記共通鍵を生成する
ことを特徴とする請求項１記載のデータ復号装置。
【請求項６】
前記マスク共通鍵取得部は、前記利用者秘密鍵に前記乱数要素を含めるために用いられた乱数を用いて生成されるマスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成する
ことを特徴とする請求項１記載のデータ復号装置。
【請求項７】
請求項１記載のデータ復号装置と、ランダム化秘密鍵生成装置と、乱数要素除去装置とを備える属性ベース暗号システムであって、
前記ランダム化秘密鍵生成装置は、
前記利用者秘密鍵と乱数とを用いて前記ランダム化秘密鍵を生成し、前記ランダム化マスク共通鍵から前記乱数要素を除去するためのマスク値を前記乱数を用いて生成するランダム化秘密鍵生成部を備え、
前記乱数要素除去装置は、
前記ランダム化マスク共通鍵を受信する共通鍵受信部と、
前記共通鍵受信部によって受信された前記ランダム化マスク共通鍵と、前記ランダム化秘密鍵生成部によって生成された前記マスク値とを用いて、前記マスク共通鍵を生成する乱数要素除去部と、
前記乱数要素除去部によって生成された前記マスク共通鍵を送信する共通鍵送信部とを備える
ことを特徴とする属性ベース暗号システム。
【請求項８】
請求項１記載のデータ復号装置と、乱数要素除去装置とを備える属性ベース暗号システムであって、
前記乱数要素除去装置は、
前記利用者秘密鍵と乱数とを用いて前記ランダム化秘密鍵を生成するランダム化秘密鍵生成部と、
前記ランダム化マスク共通鍵を受信する共通鍵受信部と、
前記共通鍵受信部によって受信された前記ランダム化マスク共通鍵と、前記乱数を用いて生成されるマスク値とを用いて、前記マスク共通鍵を生成する乱数要素除去部と、
前記乱数要素除去部によって生成された前記マスク共通鍵を送信する共通鍵送信部とを備える
ことを特徴とする属性ベース暗号システム。
【請求項９】
請求項１記載のデータ復号装置と、ランダム化秘密鍵生成装置とを備える属性ベース暗号システムであって、
前記ランダム化秘密鍵生成装置は、
前記利用者秘密鍵と乱数とを用いて前記ランダム化秘密鍵を生成し、前記ランダム化マスク共通鍵から前記乱数要素を除去するためのマスク値を前記乱数を用いて生成するランダム化秘密鍵生成部を備え、
前記マスク共通鍵取得部は、前記ランダム化秘密鍵生成部によって生成された前記マスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成する
ことを特徴とする属性ベース暗号システム。
【請求項１０】
乱数要素を含んだ共通鍵であるランダム化マスク共通鍵を受信する共通鍵受信部と、
乱数を用いて生成されたマスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を生成する乱数要素除去部と、
前記乱数要素除去部によって生成された前記マスク共通鍵を送信する共通鍵送信部とを備え、
前記乱数要素除去部は、前記ランダム化マスク共通鍵が所定の位数を持つ値であるか否かを判定し、前記ランダム化マスク共通鍵が前記位数を持つ値である場合に前記マスク共通鍵を生成する
ことを特徴とする乱数要素除去装置。
【請求項１１】
乱数要素を含んだ共通鍵であるランダム化マスク共通鍵を受信する共通鍵受信部と、
乱数を用いて生成されたマスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を生成する乱数要素除去部と、
前記乱数要素除去部によって生成された前記マスク共通鍵を送信する共通鍵送信部とを備え、
前記乱数要素除去部は、前記マスク値と、位数ｑと整数２と素数ｈとに因数分解される有限体の乗法群とを属性ベース暗号方式のペアリング写像を行うためのパラメータとして用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成する
ことを特徴とする乱数要素除去装置。
【請求項１２】
乱数要素を含んだ共通鍵であるランダム化マスク共通鍵を受信する共通鍵受信部と、
乱数を用いて生成されたマスク値を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を生成する乱数要素除去部と、
前記乱数要素除去部によって生成された前記マスク共通鍵を送信する共通鍵送信部とを備え、
前記乱数要素除去部は、前記マスク値と、位数ｑと整数２と合成数ｈとに因数分解される有限体の乗法群とを属性ベース暗号方式のペアリング写像を行うためのパラメータとして用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成し、
前記合成数ｈを素因数分解して得られる複数の素因数のうち素因数閾値より小さい素因数の積が前記位数ｑより小さい
ことを特徴とする乱数要素除去装置。
【請求項１３】
共通鍵部分復号部が、属性を表す属性値を用いて属性ベース暗号方式で生成される利用者秘密鍵に乱数要素を含めたランダム化秘密鍵を用いて、前記属性値を含んだ属性条件式を用いて暗号化された共通鍵である暗号化共通鍵を復号処理することにより、前記乱数要素を含んだランダム化マスク共通鍵を生成し、
マスク共通鍵取得部が、前記共通鍵部分復号部によって生成された前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を取得し、
マスク除去部が、前記マスク共通鍵取得部によって取得された前記マスク共通鍵を用いて共通鍵を生成し、
データ復号部が、前記マスク除去部によって生成された前記共通鍵を用いて、前記共通鍵を用いて暗号化されている対象データを復号する
ことを特徴とするデータ復号方法。
【請求項１４】
属性を表す属性値を用いて属性ベース暗号方式で生成される利用者秘密鍵に乱数要素を含めたランダム化秘密鍵を用いて、前記属性値を含んだ属性条件式を用いて暗号化された共通鍵である暗号化共通鍵を復号処理することにより、前記乱数要素を含んだランダム化マスク共通鍵を生成する共通鍵部分復号部と、
前記共通鍵部分復号部によって生成された前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を取得するマスク共通鍵取得部と、
前記マスク共通鍵取得部によって取得された前記マスク共通鍵を用いて共通鍵を生成するマスク除去部と、
前記マスク除去部によって生成された前記共通鍵を用いて、前記共通鍵を用いて暗号化されている対象データを復号するデータ復号部
としてコンピュータを機能させるためのデータ復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、属性ベース暗号方式を用いたデータ復号装置、属性ベース暗号システム、乱数要素除去装置、ランダム化秘密鍵生成装置、データ復号方法およびデータ復号プログラムに関するものである。
【背景技術】
【０００２】
近年、属性ベース暗号または関数型暗号といったアクセス制御機能と暗号機能とが融合した新しい暗号が提案されている（例えば、非特許文献１や非特許文献２）。
これは、復号可能な利用者の属性を指定してデータを暗号化することにより、指定した属性を持った利用者のみが暗号化されたデータを復号できるようにするものである。【０００３】
この属性ベース暗号方式には、鍵生成サーバ、およびデータを暗号化または復号する利用者が存在する。
鍵生成サーバは、利用者の属性を管理し、さらに利用者の要望に応じて利用者の属性を埋め込んだ秘密鍵を生成し、生成した秘密鍵を利用者に送付する。
例えば、鍵生成サーバは、Ａ部のＢ課に所属する田中さんに対して、３つの属性「Ａ部、Ｂ課、田中」を埋め込んだ秘密鍵を生成する。【０００４】
データを暗号化する利用者は、復号可能な利用者が有するべき属性の条件を、ＡＮＤまたはＯＲなどの論理演算子を用いた論理式で指定する。
例えば、Ａ部に所属する人が復号可能な利用者である場合、データを暗号化する利用者は、条件式「Ａ部」を指定する。また、Ａ部もしくはＢ部に所属する人が復号可能な利用者である場合、データを暗号化する利用者は、条件式「Ａ部  ＯＲ  Ｂ部」を指定する。
この場合、Ａ部に所属する田中さんは、どちらの条件式を用いて暗号化されたデータであっても、復号することが可能である。田中さんの属性「Ａ部」は、条件式「Ａ部」と条件式「Ａ部  ＯＲ  Ｂ部」とのどちらとも合致するためである。
一方、Ｂ部に所属する佐藤さんは、条件式「Ａ部  ＯＲ  Ｂ部」を用いて暗号化されたデータを復号することはできるが、条件式「Ａ部」を用いて暗号化されたデータを復号することはできない。佐藤さんの属性「Ｂ部」は、条件式「Ａ部  ＯＲ  Ｂ部」には合致するが、条件式「Ａ部」には合致しないためである。
また、Ｃ部に所属する鈴木さんは、どちらの条件式を用いて暗号化されたデータであっても、復号することはできない。鈴木さんの属性「Ｃ部」は、条件式「Ａ部」と条件式「Ａ部  ＯＲ  Ｂ部」とのどちらとも合致しないためである。【０００５】
しかし、このような属性ベース暗号は、高機能であるため、復号処理に時間がかかるというデメリットがある。
これは、復号処理の際に、条件式を改ざんされないための秘密分散をデコードするデコード処理と、複雑な演算であるペアリング演算と、を実行するためである。
そのため、組み込み機器またはＩＣカードなど、処理速度が遅くて記憶容量が少ない端末機器を使って復号処理を行うことは困難である。【０００６】
そこで、復号処理を他の装置に委譲する復号委譲方式が提案されている。
例えば、非特許文献３は、属性ベース暗号のアルゴリズム（非特許文献２参照）に対して復号委譲の仕組みを追加することによって、秘密分散のデコードまたはペアリング演算をプロキシで実行し、復号処理の最後に行う乱数除去のみを組み込み機器またはＩＣカードなどの端末機器で実行することを提案している。これにより、計算能力が低い端末機器を使用して暗号化データを復号する場合であっても、復号処理を短時間で実行することができる。【０００７】
しかし、非特許文献３が提案する方式は、攻撃者に制約を設けた状況（Ｓｅｌｅｃｔｉｖｅ−ｓｅｃｕｒｅ）でしか安全性が確保されず、攻撃者に制約を設けない状況（Ａｄａｐｔｉｖｅ−ｓｅｃｕｒｅ）では安全性が確保できない、という課題がある。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｔ．Ｏｋａｍｏｔｏ、Ｋ．Ｔａｋａｓｈｉｍａ、“Ｆｕｌｌｙ  ｓｅｃｕｒｅ  ｆｕｎｃｔｉｏｎａｌ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｇｅｎｅｒａｌ  ｒｅｌａｔｉｏｎｓ  ｆｒｏｍ  ｔｈｅ  ｄｅｃｉｓｉｏｎａｌ  ｌｉｎｅａｒ  ａｓｓｕｍｐｔｉｏｎ”、ＣＲＹＰＴＯ、２０１０
【非特許文献２】Ｂ．Ｗａｔｅｒｓ、“Ｃｉｐｈｅｒｔｅｘｔ−ｐｏｌｉｃｙ  ａｔｔｉｂｕｔｅ−ｂａｓｅｄ  ｅｎｃｒｙｐｔｉｏｎ：  ａｎ  ｅｘｐｒｅｓｓｉｖｅ，ｅｆｆｉｃｉｅｎｔ，ａｎｄ  ｐｒｏｖａｂｌｙ  ｓｅｃｕｒｅ  ｒｅａｌｉｚａｔｉｏｎ”、ＰＫＣ、２０１１
【非特許文献３】Ｍ．Ｇｒｅｅｎ、Ｓ．Ｈｏｈｅｎｂｅｒｇｅｒ、Ｂ．Ｗａｔｅｒｓ、“Ｏｕｔｓｏｕｒｃｉｎｇ  ｔｈｅ  Ｄｅｃｒｙｐｔｉｏｎ  ｏｆ  ＡＢＥ  Ｃｉｐｈｅｒｔｅｘｔｓ”、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０ｔｈ  ＵＳＥＮＩＸ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｅｃｕｒｉｔｙ、２０１１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、例えば、属性ベース暗号方式の復号処理を複数の段階に分けて実行することによって、暗号化データの安全性を高めることができるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のデータ復号装置は、
属性を表す属性値を用いて属性ベース暗号方式で生成される利用者秘密鍵に乱数要素を含めたランダム化秘密鍵を用いて、前記属性値を含んだ属性条件式を用いて暗号化された共通鍵である暗号化共通鍵を復号処理することにより、前記乱数要素を含んだランダム化マスク共通鍵を生成する共通鍵部分復号部と、
前記共通鍵部分復号部によって生成された前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵を取得するマスク共通鍵取得部と、
前記マスク共通鍵取得部によって取得された前記マスク共通鍵を用いて共通鍵を生成するマスク除去部と、
前記マスク除去部によって生成された前記共通鍵を用いて、前記共通鍵を用いて暗号化されている対象データを復号するデータ復号部とを備える。
【発明の効果】
【００１１】
本発明によれば、例えば、属性ベース暗号方式の復号処理を複数の段階に分けて実行することによって、暗号化データの安全性を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１における属性ベース暗号システム１００の構成図である。
【図２】実施の形態１における鍵生成サーバ２００の機能構成図である。
【図３】実施の形態１におけるアクセス端末３００の機能構成図である。
【図４】実施の形態１におけるＩＣカード４００の機能構成図である。
【図５】実施の形態１における属性ベース暗号システム１００の処理概要を示すフローチャートである。
【図６】実施の形態１における初期設定処理（Ｓ１００）を示すフローチャートである。
【図７】実施の形態１における利用者属性テーブル２９１の一例を示す図である。
【図８】実施の形態１におけるｒ−利用者秘密鍵発行処理（Ｓ２００）を示すフローチャートである。
【図９】実施の形態１におけるｒ−利用者秘密鍵生成処理（Ｓ２２０）を示すフローチャートである。
【図１０】施の形態１におけるデータ暗号化処理（Ｓ３００）を示すフローチャートである。
【図１１】実施の形態１におけるＫＥＭ鍵暗号化処理（Ｓ３４０）を示すフローチャートである。
【図１２】実施の形態１におけるデータ復号処理（Ｓ４００）を示すフローチャートである。
【図１３】実施の形態１における乱数要素除去処理（Ｓ４５０）を示すフローチャートである。
【図１４】実施の形態１におけるアクセス端末３００のハードウェア資源の一例を示す図である。
【図１５】実施の形態２における鍵生成サーバ２００の機能構成図である。
【図１６】実施の形態２におけるＩＣカード４００の機能構成図である。
【図１７】実施の形態２における属性ベース暗号システム１００の処理概要を示すフローチャートである。
【図１８】実施の形態２における利用者秘密鍵発行処理（Ｓ２００Ｂ）を示すフローチャートである。
【図１９】実施の形態２における利用者秘密鍵生成処理（Ｓ２２０Ｂ）を示すフローチャートである。
【図２０】実施の形態２におけるデータ復号処理（Ｓ４００Ｂ）を示すフローチャートである。
【図２１】実施の形態２におけるｒ−利用者秘密鍵取得処理（Ｓ４２０Ｂ）を示すフローチャートである。
【図２２】実施の形態３における鍵生成サーバ２００の機能構成図である。
【図２３】実施の形態３におけるアクセス端末３００の機能構成図である。
【図２４】実施の形態３における属性ベース暗号システム１００の処理概要を示すフローチャートである。
【図２５】実施の形態３におけるｒ−利用者秘密鍵生成処理（Ｓ２００Ｃ）を示すフローチャートである。
【図２６】実施の形態３におけるデータ復号処理（Ｓ４００Ｃ）を示すフローチャートである。
【発明を実施するための形態】
【００１３】
実施の形態１．
属性ベース暗号システムの復号処理の一部をＩＣカードに委譲する形態について説明する。
【００１４】
図１は、実施の形態１における属性ベース暗号システム１００の構成図である。
実施の形態１における属性ベース暗号システム１００の構成について、図１に基づいて説明する。
【００１５】
属性ベース暗号システム１００は、属性ベース暗号方式（非特許文献１参照）でデータを暗号化または復号するシステムである。
属性ベース暗号方式とは、データにアクセスするためのアクセス権限が与えられる利用者が有する属性に関する条件式を用いてデータを暗号化することによって、条件式を満たす属性を有する利用者だけがデータを復号できる暗号方式である。属性ベース暗号方式は「関数型暗号方式」とも呼ばれる。
【００１６】
属性ベース暗号システム１００は、１つの鍵生成サーバ２００（ランダム化秘密鍵生成装置の一例）と、１つ以上のアクセス端末３００（データ復号装置の一例）と、利用者毎のＩＣカード４００（乱数要素除去装置の一例）と、１つのファイルサーバ１９０とを備える。ＩＣはＩｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
但し、属性ベース暗号システム１００はその他の構成を備えても構わないし、各構成の数は１つまたは複数であっても構わない。
【００１７】
鍵生成サーバ２００とアクセス端末３００とファイルサーバ１９０とは、社内のローカルエリアネットワーク（以下、社内ＬＡＮ１０１という）に接続されている。社内ＬＡＮ１０１はルータまたは専用線などを経由する複雑な通信路であっても構わない。
但し、これらの構成が社内ＬＡＮ１０１以外のネットワーク（例えば、インターネット）に接続されていても構わない。
【００１８】
鍵生成サーバ２００は、データを暗復号するために用いる公開パラメータと、乱数を用いてランダム化した利用者秘密鍵と、利用者秘密鍵をランダム化するために用いる乱数に関する値（以下、マスク値という）とを生成する装置である。装置はコンピュータともいう。
アクセス端末３００は、鍵生成サーバ２００によって生成された公開パラメータ２１２を用いてデータを暗号化する装置（例えば、パーソナルコンピュータ）である。また、アクセス端末３００は、暗号化されたデータをＩＣカード４００と共に復号する装置である。
ＩＣカード４００は、鍵生成サーバ２００によって生成された利用者秘密鍵とマスク値とを記憶する装置である。また、ＩＣカード４００は、暗号化されたデータをアクセス端末３００と共に復号する装置である。
ファイルサーバ１９０は、暗号化されたデータを記憶する装置である。例えば、ファイルサーバ１９０は、Ｗｉｎｄｏｗｓ  ＯＳ（Ｗｉｎｄｏｗｓは登録商標）が搭載された市販のファイルサーバである。
【００１９】
図２は、実施の形態１における鍵生成サーバ２００の機能構成図である。
実施の形態１における鍵生成サーバ２００の機能構成について、図２に基づいて説明する。
【００２０】
鍵生成サーバ２００は、マスター秘密鍵生成部２１０と、ｒ−利用者秘密鍵生成部２２０と、ｒ−利用者秘密鍵書込み部２３０と、サーバ通信部２８０と、サーバ記憶部２９０とを備える。
【００２１】
マスター秘密鍵生成部２１０は、公開パラメータ２１２に設定する鍵長２０１と、利用者が有する属性の種類の数（以下、属性数２０２という）とを用いて、マスター秘密鍵２１１と公開パラメータ２１２とを生成する。
ｒ−利用者秘密鍵生成部２２０は、マスター秘密鍵２１１と公開パラメータ２１２と利用者が有する属性を表す属性値を含んだ情報（以下、利用者属性情報２９２という）とを用いて、ｒ−利用者秘密鍵２２１とマスク値２２２とを生成する。ｒ−利用者秘密鍵２２１は乱数を用いてランダム化された利用者秘密鍵であり、マスク値２２２は利用者秘密鍵をランダム化するために用いられる乱数に関する値である。
ｒ−利用者秘密鍵書込み部２３０は、ｒ−利用者秘密鍵２２１とマスク値２２２とをＩＣカード４００に書き込む。
【００２２】
サーバ通信部２８０は、鍵生成サーバ２００で使用するデータを通信する。
例えば、サーバ通信部２８０は、公開パラメータ２１２をアクセス端末３００に送信する。
【００２３】
サーバ記憶部２９０は、鍵生成サーバ２００で使用するデータを記憶する。
例えば、サーバ記憶部２９０は、マスター秘密鍵２１１と、公開パラメータ２１２と利用者属性テーブル２９１とを記憶する。
利用者属性テーブル２９１は、利用者別に利用者属性情報２９２を含むテーブルである。
【００２４】
図３は、実施の形態１におけるアクセス端末３００の機能構成図である。
実施の形態１におけるアクセス端末３００の機能構成について、図３に基づいて説明する。
【００２５】
アクセス端末３００（データ復号装置の一例）は、データ暗号化部３１０と、ＫＥＭ鍵部分復号部３２０（共通鍵部分復号部の一例）と、乱数要素除去依頼部３３０（マスク共通鍵取得部の一例）と、マスク除去部３４０と、データ復号部３５０と、端末通信部３８０と、端末記憶部３９０とを備える。
【００２６】
データ暗号化部３１０は、データにアクセスするためのアクセス権限が与えられる利用者が有する属性に関する条件式（以下、属性条件式３０２という）と公開パラメータ２１２とを用いて、暗号化する対象である対象データ３０１を暗号化し、暗号化データ３１１を生成する。暗号化データ３１１は、暗号化した対象データ３０１である暗号化データ本体３１２と、対象データ３０１を暗号化するために用いる共通鍵（以下、ＫＥＭ鍵３４１という）を暗号化した暗号化ＫＥＭ鍵３１３とを含む。ＫＥＭはＫｅｙ  Ｅｎｃａｐｓｕｌａｔｉｏｎ  Ｍｅｃｈａｎｉｓｍの略である。
ＫＥＭ鍵部分復号部３２０は、公開パラメータ２１２とｒ−利用者秘密鍵２２１とを用いて、暗号化ＫＥＭ鍵３１３を部分的に復号する。以下、部分的に復号された暗号化ＫＥＭ鍵３１３を「ｒ−ＫＥＭ鍵マスク値３２１」という。
乱数要素除去依頼部３３０は、ｒ−ＫＥＭ鍵マスク値３２１に含まれる乱数要素の除去をＩＣカード４００に対して依頼し、乱数要素が除去されたｒ−ＫＥＭ鍵マスク値３２１（以下、ＫＥＭ鍵マスク値４１１という）をＩＣカード４００から取得する。
マスク除去部３４０は、ＫＥＭ鍵マスク値４１１を用いてＫＥＭ鍵３４１を算出する。
データ復号部３５０は、ＫＥＭ鍵３４１を用いて暗号化データ本体３１２を対象データ３０１に復号する。
【００２７】
端末通信部３８０は、アクセス端末３００で使用するデータを通信する。
例えば、端末通信部３８０は、鍵生成サーバ２００から公開パラメータ２１２を受信し、ファイルサーバ１９０に暗号化データ３１１を送信する。また、端末通信部３８０は、ファイルサーバ１９０から暗号化データ３１１を受信する。
【００２８】
端末記憶部３９０は、アクセス端末３００で使用するデータを記憶する。
例えば、端末記憶部３９０は、暗号化データ３１１と、公開パラメータ２１２とを記憶する。
【００２９】
図４は、実施の形態１におけるＩＣカード４００の機能構成図である。
実施の形態１におけるＩＣカード４００の機能構成について、図４に基づいて説明する。
【００３０】
ＩＣカード４００は、乱数要素除去部４１０と、カード通信部４８０と、カード記憶部４９０とを備える。
【００３１】
乱数要素除去部４１０は、マスク値２２２を用いてｒ−ＫＥＭ鍵マスク値３２１から乱数要素を除去することによって、ＫＥＭ鍵マスク値４１１を算出する。
【００３２】
カード通信部４８０は、ＩＣカード４００で使用するデータを通信する。
例えば、カード通信部４８０は、鍵生成サーバ２００からｒ−利用者秘密鍵２２１とマスク値２２２とを受信する。また、カード通信部４８０は、アクセス端末３００からｒ−ＫＥＭ鍵マスク値３２１を受信し、ＫＥＭ鍵マスク値４１１とｒ−利用者秘密鍵２２１とをアクセス端末３００に送信する。
【００３３】
カード記憶部４９０は、ＩＣカード４００で使用するデータを記憶する。
例えば、カード記憶部４９０は、ｒ−利用者秘密鍵２２１と、マスク値２２２とを記憶する。
【００３４】
図５は、実施の形態１における属性ベース暗号システム１００の処理概要を示すフローチャートである。
実施の形態１における属性ベース暗号システム１００の処理概要について、図５に基づいて説明する。
【００３５】
Ｓ１００において、鍵生成サーバ２００は公開パラメータ２１２を生成する。
初期設定処理（Ｓ１００）の詳細について別途説明する。
Ｓ１００の後、処理はＳ２００に進む。
【００３６】
Ｓ２００において、鍵生成サーバ２００は、ｒ−利用者秘密鍵２２１とマスク値２２２とをＩＣカード４００に書き込む。
利用者秘密鍵発行処理（Ｓ２００）の詳細について別途説明する。
Ｓ２００の後、処理はＳ３００に進む。
【００３７】
Ｓ３００において、アクセス端末３００は、公開パラメータ２１２を用いて対象データ３０１を暗号化する。
データ暗号化処理（Ｓ３００）の詳細について別途説明する。
Ｓ３００の後、処理はＳ４００に進む。
【００３８】
Ｓ４００において、アクセス端末３００およびＩＣカード４００は暗号化データ３１１を復号する。
データ復号処理（Ｓ４００）の詳細について別途説明する。
Ｓ４００の後、属性ベース暗号システム１００の処理は終了する。
【００３９】
次に、属性ベース暗号システム１００の各処理（図５のＳ１００からＳ４００）の詳細について説明する。
【００４０】
図６は、実施の形態１における初期設定処理（Ｓ１００）を示すフローチャートである。
実施の形態１における初期設定処理（Ｓ１００）について、図６に基づいて説明する。
【００４１】
Ｓ１１０において、管理者は、暗号の強度に関するパラメータである鍵長２０１と、利用者が有する属性の種類の数を示す属性数２０２とを鍵生成サーバ２００に入力する。
例えば、管理者は、１２８ビットまたは２５６ビットなどのビット数を鍵長２０１として入力する。
例えば、管理者は、利用者属性テーブル２９１（図７参照）に含まれる属性の種類の数「５」を属性数２０２として入力する。
【００４２】
そして、マスター秘密鍵生成部２１０は、鍵生成サーバ２００に入力された鍵長２０１と属性数２０２とを取得する。
Ｓ１１０の後、処理はＳ１２０に進む。
【００４３】
図７は、実施の形態１における利用者属性テーブル２９１の一例を示す図である。
実施の形態１における利用者属性テーブル２９１について、図７に基づいて説明する。
【００４４】
利用者属性テーブル２９１は、利用者別に利用者が有する属性を表す属性値を含んだデータである。
【００４５】
例えば、利用者属性テーブル２９１は、利用者ＩＤ、店名、部名、課名、役職および氏名を対応付ける。
利用者ＩＤは、利用者を識別する識別子を示す。
店名は、利用者が勤務する店の名称を示す。
部名は、利用者が所属する部の名称を示す。
課名は、利用者が所属する課の名称を示す。
役職は、利用者の役職の名称を示す。
氏名は、利用者の氏名を示す。
【００４６】
これらの項目「店名、部名、課名、役職、氏名」は利用者が有する属性の種類の一例であり、これらの項目に設定されている値は属性値の一例である。
例えば、利用者ＩＤ「Ｕｓｅｒ０００１」で識別される利用者の属性値は「本社、Ａ部、Ｂ課、課長、田中」である。
【００４７】
管理者は、図７に示すような利用者属性テーブル２９１を生成し、生成した利用者属性テーブル２９１を鍵生成サーバ２００に予め記憶しておくものとする。
但し、利用者属性テーブル２９１は初期設定処理（Ｓ１００）の前後または処理中に生成および記憶されても構わない。
また、利用者属性テーブル２９１に設定される属性値は、利用者の現在の属性値と、利用者の過去の属性値と、その両方の属性値とのいずれであっても構わない。
図６に戻り、初期設定処理（Ｓ１００）の説明を続ける。
【００４８】
Ｓ１２０において、マスター秘密鍵生成部２１０は、鍵長２０１と属性数２０２とを用いて属性ベース暗号方式のマスター秘密鍵生成アルゴリズム（セットアップアルゴリズムともいう）を実行することにより、公開パラメータ２１２とマスター秘密鍵２１１とを生成する。
また、マスター秘密鍵生成部２１０は、公開パラメータ２１２とマスター秘密鍵２１１とをサーバ記憶部２９０に記憶する。
【００４９】
以下に、公開パラメータｐｋおよびマスター秘密鍵ｓｋを生成するための式（１−１）から式（１−８）を示す。
公開パラメータｐｋは式（１−７）で表すことができ、マスター秘密鍵ｓｋは式（１−８）で表すことができる。
以下の式で用いている符号の意味は次の通りである。但し、「＾」は上付きを意味し、「＿」は下付きを意味する（以下同様）。例えば、「１＾λ」は「１λ」を意味し、「ｎ＿１」は「ｎ１」を意味する。
「ｐｋ」は公開パラメータ２１２である。
「ｓｋ」はマスター秘密鍵２１１である。
「１＾λ」は鍵長２０１である。
「ｄ」は属性数２０２である。
「ｐａｒａｍ」は楕円曲線のパラメータである。
「ｇ＿ｏｂ」はＢ＿ｔとＢ＿ｔ＾＊とのペアの集合を計算するアルゴリズムである。
「Ｒ←」（矢印の上に文字Ｒを付した符号）はランダムに値を取得することを意味する。
その他の符号の意味については非特許文献１の７．１章を参照のこと。
【００５０】
【数１】
0005959667.tif 000002
【００５１】
なお、上記の式（１−１）から式（１−８）は、非特許文献１の７．１章に示されている式と同様の式である。
Ｓ１２０の後、処理はＳ１３０に進む。
【００５２】
Ｓ１３０において、サーバ通信部２８０は、公開パラメータ２１２を各アクセス端末３００に送信する。
そして、各アクセス端末３００は、公開パラメータ２１２を受信し、受信した公開パラメータ２１２を端末記憶部３９０に記憶する。
但し、各アクセス端末３００は、サーバ通信部２８０から公開パラメータ２１２を受信する方法以外の方法で公開パラメータ２１２を取得しても構わない。
また、各アクセス端末３００は、Ｓ１３０以外のタイミングで公開パラメータ２１２を取得しても構わない。
Ｓ１３０の後、初期設定処理（Ｓ１００）は終了する。
【００５３】
上記の式（１−１）から（１−８）におけるｎ＿１からｎ＿ｄまでのそれぞれの値が「２」である場合を例にして以降の説明を行う。
【００５４】
図８は、実施の形態１におけるｒ−利用者秘密鍵発行処理（Ｓ２００）を示すフローチャートである。
実施の形態１におけるｒ−利用者秘密鍵発行処理（Ｓ２００）について、図８に基づいて説明する。
【００５５】
Ｓ２１０において、管理者は、利用者を識別する利用者ＩＤを鍵生成サーバ２００に入力する。例えば、管理者は利用者ＩＤ「Ｕｓｅｒ０００１」を入力する。
ｒ−利用者秘密鍵生成部２２０は、鍵生成サーバ２００に入力された利用者ＩＤを取得する。例えば、ｒ−利用者秘密鍵生成部２２０は利用者ＩＤ「Ｕｓｅｒ０００１」を取得する。
ｒ−利用者秘密鍵生成部２２０は、取得した利用者ＩＤに対応付けられた属性値を利用者属性テーブル２９１（図７参照）から取得する。例えば、ｒ−利用者秘密鍵生成部２２０は、利用者ＩＤ「Ｕｓｅｒ０００１」に対応付けられた属性値「本社」「Ａ部」「Ｂ課」「課長」「田中」を取得する。
ここで、利用者属性テーブル２９１から取得した属性値を示す情報を利用者属性情報２９２という。
Ｓ２１０の後、処理はＳ２２０に進む。
【００５６】
Ｓ２２０において、ｒ−利用者秘密鍵生成部２２０は、利用者属性情報２９２を用いてｒ−利用者秘密鍵２２１とマスク値２２２とを生成する。
ｒ−利用者秘密鍵生成処理（Ｓ２２０）について別途説明する。
Ｓ２２０の後、処理はＳ２３０に進む。
【００５７】
Ｓ２３０において、管理者は、アクセス端末３００にカードリーダライタ（以下、カードＲ／Ｗと記す）を接続し、Ｓ２１０で入力した利用者ＩＤで識別される利用者用のＩＣカード４００をカードＲ／Ｗに接続する。
ｒ−利用者秘密鍵書込み部２３０は、カードＲ／Ｗを介して、ＩＣカード４００にｒ−利用者秘密鍵２２１とマスク値２２２とを書き込む。
管理者は、Ｓ２１０で入力した利用者ＩＤで識別される利用者にＩＣカード４００を配布する。
Ｓ２３０の後、利用者秘密鍵発行処理（Ｓ２００）は終了する。
【００５８】
なお、利用者秘密鍵発行処理（Ｓ２００）は、利用者にＩＣカード４００を発行するとき、または、利用者の属性が変わったときに実行する。
【００５９】
図９は、実施の形態１におけるｒ−利用者秘密鍵生成処理（Ｓ２２０）を示すフローチャートである。
実施の形態１におけるｒ−利用者秘密鍵生成処理（Ｓ２２０）について、図９に基づいて説明する。
【００６０】
Ｓ２２１において、ｒ−利用者秘密鍵生成部２２０は、利用者属性情報２９２を用いて属性集合Γを生成する。
【００６１】
属性集合Γを表す式（２）を以下に示す。
【００６２】
【数２】
0005959667.tif 000003
【００６３】
例えば、利用者属性情報２９２に５つの属性値「本社、Ａ部、Ｂ課、課長、田中」が含まれる場合、属性集合Γ＿田中は以下の式（３）で表すことができる。
【００６４】
【数３】
0005959667.tif 000004
【００６５】
Ｓ２２１の後、処理はＳ２２２に進む。
【００６６】
Ｓ２２２において、ｒ−利用者秘密鍵生成部２２０は、属性集合Γを用いて利用者秘密鍵ｓｋ＿Γを生成する。
【００６７】
以下に、利用者秘密鍵ｓｋ＿Γを生成するための式（４−１）から式（４−５）を示す。利用者秘密鍵ｓｋ＿Γは式（４−５）で表すことができる。
以下の式で用いている符号の意味は次の通りである。
「Ｆ＿ｑ」は０からｑ−１までの整数の集合を表す有限体である。
「ｑ」は前記の式（１−１）における「ｐａｒａｍ」に含まれる群位数である。
「Ｕ←」（矢印の上に文字Ｕを付した符号）はランダムに値を取得することを意味する。但し、各値が取得される確率は同じである。
その他の符号の意味については非特許文献１の７．１章を参照のこと。
【００６８】
【数４】
0005959667.tif 000005
【００６９】
なお、上記の式（４−１）から式（４−５）は、非特許文献１の７．１章に示されている式と同様の式である。
【００７０】
例えば、前記の式（３）で示した属性集合Γ＿田中を用いた場合、利用者秘密鍵ｓｋ＿田中は以下の式（５−１）から式（５−５）を計算することによって生成することができる。
【００７１】
【数５】
0005959667.tif 000006
【００７２】
Ｓ２２２の後、処理はＳ２２３に進む。
【００７３】
Ｓ２２３において、ｒ−利用者秘密鍵生成部２２０は乱数ｒを生成する。
Ｓ２２３の後、処理はＳ２２４に進む。
【００７４】
Ｓ２２４において、ｒ−利用者秘密鍵生成部２２０は、乱数ｒを用いてマスク値ｍａｓｋを生成する。マスク値ｍａｓｋは乱数ｒの逆元である。
Ｓ２２４の後、処理はＳ２２５に進む。
【００７５】
以下に、乱数ｒを生成するための式（６−１）と、マスク値ｍａｓｋを生成するための式（６−２）を示す。
【００７６】
【数６】
0005959667.tif 000007
【００７７】
Ｓ２２５において、ｒ−利用者秘密鍵生成部２２０は、乱数ｒを用いて利用者秘密鍵ｓｋ＿Γをランダム化することにより、ｒ−利用者秘密鍵ｓｋ＿Γ−を生成する。
「ｓｋ＿Γ−」の末尾の「−」は「ｓｋ」に付ける上線を意味する。また、上線は乱数ｒを用いたランダム化（乱数ｒの乗算）を意味する。
【００７８】
以下に、ｒ−利用者秘密鍵ｓｋ＿Γ−を生成するための式（７−１）から式（７−３）を示す。ｒ−利用者秘密鍵ｓｋ＿Γ−は式（７−３）で表すことができる。
【００７９】
【数７】
0005959667.tif 000008
【００８０】
例えば、前記の式（３）で示した利用者秘密鍵ｓｋ＿田中をランダム化した場合、ランダム化したｒ−利用者秘密鍵ｓｋ＿田中−は以下の式（８−１）から式（８−３）を計算することによって生成することができる。「ｓｋ＿田中−」の末尾の「−」は「ｓｋ」に付ける上線を意味する。
【００８１】
【数８】
0005959667.tif 000009
【００８２】
Ｓ２２５の後、ｒ−利用者秘密鍵生成処理（Ｓ２２０）は終了する。
【００８３】
図１０は、実施の形態１におけるデータ暗号化処理（Ｓ３００）を示すフローチャートである。
実施の形態１におけるデータ暗号化処理（Ｓ３００）について、図１０に基づいて説明する。
【００８４】
Ｓ３１０において、対象データ３０１を提供する提供者は、提供する対象データ３０１と、属性値を含んだ属性条件式３０２とをアクセス端末３００に入力する。例えば、Ａ部またはＢ部に所属する利用者に対して対象データ３０１を提供する場合、提供者は、属性条件式３０２として論理式「Ａ部  ＯＲ  Ｂ部」を入力する。
そして、データ暗号化部３１０は、アクセス端末３００に入力された対象データ３０１とアクセス端末３００とを取得する。
Ｓ３１０の後、処理はＳ３２０に進む。
【００８５】
Ｓ３２０において、データ暗号化部３１０は、公開パラメータ２１２に含まれる鍵長２０１に基づいてＫＥＭ鍵３４１を生成する。例えば、鍵長２０１が２５６ビットである場合、データ暗号化部３１０は２５６ビットのランダムなビット列をＫＥＭ鍵３４１として生成する。
【００８６】
以下に、ＫＥＭ鍵Ｋ＿ＫＥＭを生成するための式（９−１）から式（９−３）を示す。ＫＥＭ鍵Ｋ＿ＫＥＭは式（９−３）で表すことができる。符号の意味は次の通りである。
「ｇ＿Ｔ」は、公開パラメータｐｋ（前記の式（１−１）参照）に含まれる楕円曲線パラメータｐａｒａｍの基底である。
「ｋｅｙ＿Ｌ」は、鍵長２０１の値（例えば、２５６ビット）である。
「ＫＤＦ（ｍ，ｋｅｙ＿Ｌ）」は、入力値ｍ（乱数種）を用いてビット長ｋｅｙ＿Ｌの鍵（乱数）を算出する鍵導出関数（例えば、ＩＳＯ−１８０３３で定義されたＫＤＦ１）である。
【００８７】
【数９】
0005959667.tif 000010
【００８８】
Ｓ３２０の後、処理はＳ３３０に進む。
【００８９】
Ｓ３３０において、データ暗号化部３１０は、ＫＥＭ鍵３４１を共通鍵として用いて共通鍵暗号方式（例えば、ＡＥＳ）で対象データ３０１を暗号化することにより、暗号化データ本体３１２を生成する。
Ｓ３３０の後、処理はＳ３４０に進む。
【００９０】
Ｓ３４０において、データ暗号化部３１０は、属性条件式３０２を用いてＫＥＭ鍵３４１を暗号化することにより、暗号化ＫＥＭ鍵３１３を生成する。
【００９１】
図１１は、実施の形態１におけるＫＥＭ鍵暗号化処理（Ｓ３４０）を示すフローチャートである。
実施の形態１におけるＫＥＭ鍵暗号化処理（Ｓ３４０）について、図１１に基づいて説明する。
【００９２】
Ｓ３４１において、データ暗号化部３１０は、属性条件式３０２を用いてアクセス構造Ｓを生成する。
【００９３】
以下に、アクセス構造Ｓを生成するための式（１０−１）から式（１０−２）を示す。アクセス構造Ｓは式（１０−２）で表すことができる。符号の意味は次の通りである。
「Ｓ」は属性条件式３０２を表すアクセス構造である。
「Ｍ」は、例えば、一般的に知られたＳｐａｎ  Ｐｒｏｇｒａｍで算出される値である。
「ρ」は、写像によって得られる値である。
【００９４】
【数１０】
0005959667.tif 000011
【００９５】
例えば、属性条件式３０２が「Ａ部  ＯＲ  Ｂ部」である場合、アクセス構造Ｓ＝（Ｍ，ρ）の「Ｍ」は式（１１−１）で表し、「ρ」は式（１１−２）で表すことができる。
【００９６】
【数１１】
0005959667.tif 000012
【００９７】
Ｓ３４１の後、処理はＳ３４２に進む。
【００９８】
Ｓ３４２において、データ暗号化部３１０は、アクセス構造Ｓを用いてＫＥＭ鍵３４１を暗号化することにより、暗号化ＫＥＭ鍵３１３を生成する。
【００９９】
以下に、暗号化ＫＥＭ鍵ｃｔ＿Ｓを生成するための式（１２−１）から式（１２−８）を示す。暗号化ＫＥＭ鍵ｃｔ＿Ｓは式（１２−８）で表すことができる。
【０１００】
【数１２】
0005959667.tif 000013
【０１０１】
なお、上記の式（１２−１）から式（１２−８）は、非特許文献１の７．１章に示されている式と同様の式である。
【０１０２】
図１０に戻り、データ暗号化処理（Ｓ３００）の説明を続ける。
Ｓ３４０の後、処理はＳ３５０に進む。
【０１０３】
Ｓ３５０において、データ暗号化部３１０は、暗号化データ本体３１２と暗号化ＫＥＭ鍵３１３とを含んだ暗号化データ３１１を生成する。
そして、端末通信部３８０は暗号化データ３１１をファイルサーバ１９０に送信し、ファイルサーバ１９０は暗号化データ３１１を記憶する。
Ｓ３５０の後、データ暗号化処理（Ｓ３００）は終了する。
【０１０４】
図１２は、実施の形態１におけるデータ復号処理（Ｓ４００）を示すフローチャートである。
実施の形態１におけるデータ復号処理（Ｓ４００）について、図１２に基づいて説明する。
【０１０５】
Ｓ４１０において、利用者は、暗号化データ３１１のファイル名をアクセス端末３００に入力する。
そして、端末通信部３８０は、アクセス端末３００に入力されたファイル名の暗号化データ３１１をファイルサーバ１９０から取得する。
Ｓ４１０の後、処理はＳ４２０に進む。
【０１０６】
Ｓ４２０において、利用者は、アクセス端末３００にカードＲ／Ｗを接続し、ＩＣカード４００をカードＲ／Ｗに接続する。
ＫＥＭ鍵部分復号部３２０は、カードＲ／Ｗを介してＩＣカード４００からｒ−利用者秘密鍵２２１を取得する。
Ｓ４２０の後、処理はＳ４３０に進む。
【０１０７】
Ｓ４３０において、ＫＥＭ鍵部分復号部３２０は、暗号化データ３１１から暗号化ＫＥＭ鍵３１３を取得し、ｒ−利用者秘密鍵２２１を用いて暗号化ＫＥＭ鍵３１３を復号処理する。ｒ−利用者秘密鍵２２１を用いて復号した暗号化ＫＥＭ鍵３１３がｒ−ＫＥＭ鍵マスク値３２１である。
但し、利用者の属性が属性条件式３０２を満たさない場合、ＫＥＭ鍵部分復号部３２０は、暗号化ＫＥＭ鍵３１３を復号しない。
なお、ＫＥＭ鍵部分復号部３２０は、ｒ−利用者秘密鍵２２１に含まれる属性集合Γと暗号化ＫＥＭ鍵３１３に含まれるアクセス構造Ｓとを比較し、比較結果に基づいて利用者の属性が属性条件式３０２を満たすか否かを判定する。利用者の属性が属性条件式３０２を満たすか否かを判定する判定方法は、従来の属性ベース暗号方式（例えば、非特許文献１が開示する方式）と同様である。
【０１０８】
以下に、暗号化ＫＥＭ鍵ｃｔ＿Ｓ（前記の式（１２−８）参照）をｒ−利用者秘密鍵ｓｋ＿Γ−（前記の式（７−３）参照）を用いて復号処理するための式（１３−１）から式（１３−３）を示す。
復号によって得られるｒ−ＫＥＭ鍵マスク値Ｋ−は式（１３−３）で表すことができる。「Ｋ−」はＫに上線を付した符号である。
なお、符号の意味は次の通りである。
「Ｍ＿ｉ」は、アクセス構造Ｓに含まれるＭのｉ番目の行である。
「ｅ」は、ペアリング写像を意味する。
【０１０９】
【数１３】
0005959667.tif 000014
【０１１０】
なお、上記の式（１３−１）から式（１３−３）は、非特許文献１の７．１章に示されている式の一部を変更した式である。
Ｓ４３０の後、処理はＳ４４０に進む。
【０１１１】
Ｓ４４０において、乱数要素除去依頼部３３０は、ｒ−ＫＥＭ鍵マスク値３２１をカードＲ／Ｗを介してＩＣカード４００に送信することにより、ｒ−ＫＥＭ鍵マスク値３２１に含まれる乱数要素の除去を依頼する。乱数要素を除去したｒ−ＫＥＭ鍵マスク値３２１がＫＥＭ鍵マスク値４１１である。
Ｓ４４０の後、処理はＳ４５０に進む。
【０１１２】
Ｓ４５０において、ＩＣカード４００は、ｒ−ＫＥＭ鍵マスク値３２１をアクセス端末３００から受信し、ｒ−ＫＥＭ鍵マスク値３２１から乱数要素を除去し、ＫＥＭ鍵マスク値４１１をアクセス端末３００に送信する。
【０１１３】
図１３は、実施の形態１における乱数要素除去処理（Ｓ４５０）を示すフローチャートである。
実施の形態１における乱数要素除去処理（Ｓ４５０）について、図１３に基づいて説明する。
【０１１４】
Ｓ４５１において、カード通信部４８０は、カードＲ／Ｗを介してアクセス端末３００からｒ−ＫＥＭ鍵マスク値３２１を受信する。
Ｓ４５１の後、処理はＳ４５２に進む。
【０１１５】
Ｓ４５２において、乱数要素除去部４１０は、カード記憶部４９０からマスク値２２２（乱数要素の逆元）を取得し、マスク値２２２を用いてｒ−ＫＥＭ鍵マスク値３２１から乱数ｒに関する乱数要素を除去する。これにより、ＫＥＭ鍵マスク値４１１が生成される。
【０１１６】
ＫＥＭ鍵マスク値Ｋは以下の式（１４）で表すことができる。符号の意味は次の通りである。
「Ｋ−＾ｍａｓｋ」は、マスク値ｍａｓｋを用いてｒ−ＫＥＭ鍵マスク値Ｋ−から乱数要素を除去することを意味する。
【０１１７】
【数１４】
0005959667.tif 000015
【０１１８】
Ｓ４５２の後、処理はＳ４５３に進む。
【０１１９】
Ｓ４５３において、カード通信部４８０は、カードＲ／Ｗを介してアクセス端末３００にＫＥＭ鍵マスク値４１１を送信する。
Ｓ４５３の後、乱数要素除去処理（Ｓ４５０）は終了する。
【０１２０】
図１２に戻り、データ復号処理（Ｓ４００）の説明を続ける。
乱数要素除去処理（Ｓ４５０）の後、処理はＳ４６０に進む。
【０１２１】
Ｓ４６０において、乱数要素除去依頼部３３０は、ＫＥＭ鍵マスク値４１１をカードＲ／Ｗを介してＩＣカード４００から受信する。
Ｓ４６０の後、処理はＳ４７０に進む。
【０１２２】
Ｓ４７０において、マスク除去部３４０は、ＫＥＭ鍵マスク値４１１と暗号化ＫＥＭ鍵３１３とを用いて、ＫＥＭ鍵３４１を生成する。
【０１２３】
以下に、ＫＥＭ鍵Ｋ＿ＫＥＭを生成するための式（１５−１）から式（１５−２）を示す。ＫＥＭ鍵Ｋ＿ＫＥＭは式（１５−２）で表すことができる。
なお、ｃ＿｛ｄ＋１｝は暗号化ＫＥＭ鍵ｃｔ＿Ｓ（上記の式（１２−８）参照）に含まれる要素である。
【０１２４】
【数１５】
0005959667.tif 000016
【０１２５】
Ｓ４７０の後、処理はＳ４８０に進む。
【０１２６】
Ｓ４８０において、データ復号部３５０は、暗号化データ３１１から暗号化データ本体３１２を取得し、ＫＥＭ鍵３４１を共通鍵として用いて共通鍵暗号方式で暗号化データ本体３１２を対象データ３０１に復号する。
そして、データ復号部３５０は対象データ３０１を出力する。例えば、データ復号部３５０は対象データ３０１をディスプレイに表示する。
Ｓ４８０により、データ復号処理（Ｓ４００）は終了する。
【０１２７】
図１４は、実施の形態１におけるアクセス端末３００のハードウェア資源の一例を示す図である。
図１４において、アクセス端末３００（コンピュータの一例）は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ９０１は、バス９０２を介してＲＯＭ９０３、ＲＡＭ９０４、通信ボード９０５（通信装置）、ディスプレイ９１１（表示装置）、キーボード９１２、マウス９１３、ドライブ９１４、磁気ディスク装置９２０などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ９１４は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
ＲＯＭ９０３、ＲＡＭ９０４、磁気ディスク装置９２０およびドライブ９１４は記憶装置の一例である。キーボード９１２、マウス９１３および通信ボード９０５は入力装置の一例である。ディスプレイ９１１および通信ボード９０５は出力装置の一例である。
【０１２８】
通信ボード９０５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【０１２９】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２２、ファイル群９２３が記憶されている。
【０１３０】
プログラム群９２２には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム（例えば、データ復号プログラム）は、ＣＰＵ９０１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１３１】
ファイル群９２３には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１３２】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はＣＰＵ９０１、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
【０１３３】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１３４】
なお、鍵生成サーバ２００はアクセス端末３００と同様にハードウェアを備え、ＩＣカード４００はＣＰＵ９０１、記憶装置および通信装置に相当するハードウェアであるＩＣチップを備える。
【０１３５】
実施の形態１において、特に、図９のＳ２２５で説明したｒ−利用者秘密鍵ｓｋ＿Γ−に関する式（７−１）から式（７−３）が特徴である。
また、図１２のＳ４３０で説明したｒ−ＫＥＭ鍵マスク値Ｋ−に関する式（１３−１）から式（１３−３）と、図１３のＳ４５２で説明したＫＥＭ鍵マスク値Ｋに関する式（１４）と、図１２のＳ４７０で説明したＫＥＭ鍵Ｋ＿ＫＥＭに関する式（１５−１）（１５−２）とが特徴である。
【０１３６】
実施の形態１において、利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化しても構わない。利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化する方法については実施の形態２で説明する。
【０１３７】
実施の形態１は、以下のように応用しても構わない。
（１）属性ベース暗号システム１００において、ランダム化利用者秘密鍵およびマスク値を格納したＩＣカードを利用者に配布しなくても構わない。
例えば、ランダム化利用者秘密鍵およびマスク値を格納したＳＤカード（登録商標、以下同様）（ＳＤ：Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）またはその他のメモリカードを利用者に配布しても良い。また、ランダム化利用者秘密鍵およびマスク値はネットワーク経由でアクセス端末に配布し、アクセス端末のハードディスクに保管するようにしても良い。
【０１３８】
（２）また、ランダム化利用者秘密鍵とマスク値とを別々に配布するようにしても良い。
例えば、マスク値はＩＣカードに保管して配布し、ランダム化利用者秘密鍵はネットワーク経由でアクセス端末に配布しても良い。
他に、ランダム化利用者秘密鍵をネットワーク経由で配布して暗号化ＫＥＭ鍵の部分復号を行った後に、マスク値を同じくネットワーク経由でアクセス端末に配布するようにしても良い。この場合、ランダム化利用者秘密鍵とマスク値とが同時にアクセス端末に存在しないため、安全性を担保することができる。
【０１３９】
（３）また、ランダム化利用者秘密鍵とマスク値とＩＣカード内で生成するようにしても良い。
この場合、鍵生成サーバは利用者秘密鍵をＩＣカードに書き込み、ＩＣカードがマスク値を生成し、利用者秘密鍵のランダム化を行う（実施の形態２を参照）。
【０１４０】
（４）Ｓ３４２で生成したｇ＿Ｔ＾ζをＫＥＭ鍵の種ｍとして用いてＫＥＭ鍵を生成するようにしても良い。この場合、種ｍ＝ｇ＿Ｔ＾ζを生成した後に、ＫＥＭ鍵を生成することとなる。また、復号処理時の式（１５−１）は「ｍ＝Ｋ」になる。
【０１４１】
（５）複数の部または課に所属する利用者に対して複数の利用者秘密鍵を割り当てるようにしても良い。
【０１４２】
（６）利用者属性情報は、鍵生成サーバとは別個の装置で管理するようにしても良い。
例えば、鍵生成サーバは、Ｗｉｎｄｏｗｓ（登録商標）のＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙなどで管理している人事情報を利用者属性情報として利用しても良い。
【０１４３】
（７）公開パラメータはＩＣカードに格納するようにしても良い。また、アクセス端末は、公開パラメータを利用する度に、ネットワーク経由で鍵生成サーバから公開パラメータを取得するようにしても良い。
【０１４４】
（８）データを属性ベース暗号方式で直接に暗号化することが可能であれば、データは共通鍵暗号方式で暗号化しなくても良い。
【０１４５】
（９）本実施の形態ではＩＣカードの演算を最小限に留めることを意図した構成とした。しかし、攻撃者が、ｒ−ＫＥＭ鍵マスク値Ｋ−の代わりにでたらめな数値を選択して乱数要素除去処理（Ｓ４５０）を実行し、ＩＣカードに秘密に保持されているマスク値を推測する攻撃を行う可能性がある。
この攻撃からマスク値を保護するため、ＩＣカードを以下のような構成にしてもよい。
【０１４６】
（９−１）ＩＣカード（の乱数要素除去部４１０）は、ｒ−ＫＥＭ鍵マスク値Ｋ−から乱数要素を除去してＫＥＭ鍵マスク値Ｋを算出する際に、与えられたｒ−ＫＥＭ鍵マスク値Ｋ−が所定の位数ｑを持つ値である否か、すなわち、ｒ−ＫＥＭ鍵マスク値Ｋ−が正しい値であるか否かを確認するようにしても良い。位数ｑは式（４−１）などで使用している値である（以下同様）。
ＩＣカードは、ｒ−ＫＥＭ鍵マスク値Ｋ−が正しい値である場合にＫＥＭ鍵マスク値を算出し、ｒ−ＫＥＭ鍵マスク値Ｋ−が正しい値でない場合にはＫＥＭ鍵マスク値を算出しない。
これは、ｒ−ＫＥＭ鍵マスク値Ｋ−をｑ乗して、その結果が単位元１になるかどうかを確認することで実現できる。
ｒ−ＫＥＭ鍵マスク値Ｋ−をｑ乗した値が単位元１であればｒ−ＫＥＭ鍵マスク値Ｋ−は正しい値であり、ｒ−ＫＥＭ鍵マスク値Ｋ−をｑ乗した値が単位元１でなければｒ−ＫＥＭ鍵マスク値Ｋ−は正しい値でない。
【０１４７】
（９−２）限定的な確認で良いのであれば、事前にＩＣカード内に拒否する値が設定された拒否リストを記憶しておき、拒否リストに設定されている値とｒ−ＫＥＭ鍵マスク値Ｋ−とを比較するようにしても良い。
拒否リストに設定されている値と異なるｒ−ＫＥＭ鍵マスク値Ｋ−は正しい値であり、拒否リストに設定されている値と同じｒ−ＫＥＭ鍵マスク値Ｋ−は正しい値でない。
【０１４８】
（９−３）また、前述の（９−１）または（９−２）の確認を行うと処理時間がかかるため、簡便にはＩＣカードがｒ−ＫＥＭ鍵マスク値Ｋ−から乱数要素を除去するために利用するパラメータを、前記攻撃を受けにくいパラメータに限定すれば良い。
例えば、一般的には、有限体Ｆ＿｛ｐ＾ｋ｝の乗法群が、属性ベース暗号方式のペアリング写像を行うためのパラメータとして使われる。有限体Ｆ＿｛ｐ＾ｋ｝は楕円曲線Ｆ＿ｐの値をペアリング写像した値の集合であり、有限体Ｆ＿｛ｐ＾ｋ｝の乗法群は０から位数｛ｐ＾ｋ｝−１までの整数の集合である。「ｋ」は埋め込み次数と呼ばれる。
この有限体Ｆ＿｛ｐ＾ｋ｝の乗法群の位数ｐ＾ｋ−１がｑ×２×ｈに因数分解されたとする。ｈは素数の場合もあれば、合成数の場合もある。この時、合成数ｈを素因数分解して得られる複数の素因数ｐ＿ｈのうち離散対数問題が容易に解けるような小さい素因数（所定の素因数閾値より小さい素因数）の積が位数ｑより小さくなるパラメータをＩＣカードのパラメータとして使用すると良い。合成数ｈの小さい素因数ｐ＿ｈの積が位数ｑより大きくなるパラメータを使用すると、離散対数問題が解かれてしまうからである。
例えば、合成数ｈがｈ＝３×５×７×Ｐに素因数分解されるものとする。３、５および７は素因数閾値より小さい素因数であり、Ｐは素因数閾値より大きい素因数である。小さい素因数の積「１０５（＝３×５×７）」が位数ｑより小さい場合、位数ｐ＾ｋ−１がｑ×２×ｈに分解される有限体Ｆ＿｛ｐ＾ｋ｝の乗法群はＩＣカードのパラメータとして適している。
但し、理想的には、数ｈ自身が素数であれば良い。
【０１４９】
実施の形態１により、例えば、以下のような効果を奏することができる。
（１）非特許文献１に記載の岡本−高島暗号方式のアルゴリズムを元にして、攻撃者に制約を設けない状況（Ａｄａｐｔｉｖｅ−ｓｅｃｕｒｅ）で、復号委譲が可能な属性ベース暗号システムを実現することができる。但し、実施の形態１は、岡本、高島らが提案する他の暗号方式に適用してもよい。
【０１５０】
（２）属性ベース暗号システム１００は、ランダムに生成したマスク値で利用者秘密鍵をランダム化してランダム化利用者秘密鍵（ｒ−利用者秘密鍵）に変換する。また、属性ベース暗号システム１００は、ランダム化利用者秘密鍵を用いた部分復号演算をアクセス端末側で実施する。そして、属性ベース暗号システム１００は、マスク値を使ったランダム化の除去演算のみをＩＣカードで実施する。
ランダム化利用者秘密鍵を使った演算は、属性ベース暗号方式の復号処理で行うペアリング演算などを含んでおり、復号処理の大部分を占める演算である。一方、ＩＣカード内で実施するマスク値の除去演算は、べき乗演算が１回だけで処理量が少ない演算である。
そのため、メモリ量の少ないＩＣカードに格納するプログラムをコンパクト化すると共に、計算リソースが限られるＩＣカードで行う演算の量を低減することができる。
【０１５１】
（３）属性ベース暗号システム１００は、利用者秘密鍵をランダム化したランダム化利用者秘密鍵をアクセス端末に開示する。
しかし、ランダム化利用者秘密鍵があっても、ＩＣカードに別途保管されたマスク値がなければ、暗号化データを復号することができない。
そのため、ランダム化利用者秘密鍵をアクセス端末に開示しても、データが漏洩してしまう危険性がない。また、ランダム化利用者秘密鍵から利用者秘密鍵が漏洩する心配もない。
【０１５２】
（４）属性ベース暗号システム１００は、マスク値を使って利用者秘密鍵をランダム化利用者秘密鍵に変換する。
しかし、真に守らなければならないのはマスク値だけである。そのため、メモリ量が数十キロバイト程度しかないような非力なＩＣカードを用いる場合であっても、属性ベース暗号方式の利用者秘密鍵を安全に守ることができる。
【０１５３】
（５）属性ベース暗号システム１００は、鍵生成サーバでマスク値を生成し、利用者秘密鍵をランダム化利用者秘密鍵に変換する。
そのため、復号処理のうち中心となる処理をメモリやＣＰＵリソースが少ないＩＣカードで実施する必要がなく、非力なＩＣカードを用いる場合であっても、属性ベース暗号方式の利用者秘密鍵を安全に守ることができる。
【０１５４】
実施の形態において、例えば、以下のようなデータ復号装置（１００）について説明した。括弧内に実施の形態１で説明した構成の符号を記す。
前記データ復号装置は、共通鍵部分復号部（３２０）と、マスク共通鍵取得部（３３０）と、マスク除去部（３４０）と、データ復号部（３５０）とを備える。
前記共通鍵部分復号部は、属性を表す属性値を用いて属性ベース暗号方式で生成される利用者秘密鍵に乱数要素を含めたランダム化秘密鍵（２２１）を用いて、前記属性値を含んだ属性条件式を用いて暗号化された共通鍵（３４１）である暗号化共通鍵（３１３）を復号処理することにより、前記乱数要素を含んだランダム化マスク共通鍵（３２１）を生成する。
前記マスク共通鍵取得部は、前記共通鍵部分復号部によって生成された前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵（４１１）を取得する。
前記マスク除去部は、前記マスク共通鍵取得部によって取得された前記マスク共通鍵を用いて前記共通鍵を生成する。
前記データ復号部は、前記マスク除去部によって生成された前記共通鍵を用いて、前記共通鍵を用いて暗号化されている対象データ（３０１）を復号する。
【０１５５】
前記マスク共通鍵取得部は、前記マスク共通鍵を生成する乱数要素除去装置（４００）に前記ランダム化マスク共通鍵を送信し、前記乱数要素除去装置から前記マスク共通鍵を受信する。
【０１５６】
前記乱数要素除去装置は、前記利用者秘密鍵に前記乱数要素を含めるために用いられた乱数を用いて生成されるマスク値（２２２）を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去することにより、前記マスク共通鍵を生成する。
【０１５７】
前記マスク除去部は、前記マスク共通鍵を用いて入力値（ｍ）を生成し、生成した入力値を用いて鍵導出関数（ＫＤＦ）を演算することによって前記共通鍵を生成する。
【０１５８】
実施の形態において、例えば、以下のような乱数要素除去装置（４００）について説明した。
前記乱数要素除去装置は、共通鍵受信部（４８０）と、乱数要素除去部（４１０）と、共通鍵送信部（４８０）とを備える。
前記共通鍵受信部は、乱数要素を含んだ共通鍵（３４１）であるランダム化マスク共通鍵（３２１）を受信する。
前記乱数要素除去部は、乱数を用いて生成されたマスク値（２２２）を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵（４１１）を生成する。
前記共通鍵送信部は、前記乱数要素除去部によって生成された前記マスク共通鍵を送信する。
【０１５９】
実施の形態において、例えば、以下のようなランダム化秘密鍵生成装置（２００）について説明した。前記ランダム化秘密鍵生成装置はランダム化秘密鍵生成部（２２０）を備える。
前記ランダム化秘密鍵生成部は、属性を表す属性値を用いて属性ベース暗号方式で利用者秘密鍵を生成し、生成した前記利用者秘密鍵に乱数を用いて乱数要素を含めたランダム化秘密鍵（２２１）を生成し、前記ランダム化秘密鍵から前記乱数要素を除去するためのマスク値（２２２）を前記乱数を用いて生成する。
【０１６０】
実施の形態２．
鍵生成サーバ２００がｒ−利用者秘密鍵２２１の代わりに利用者秘密鍵をＩＣカード４００に書き込み、ＩＣカード４００が利用者秘密鍵をランダム化してｒ−利用者秘密鍵２２１を生成する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【０１６１】
図１５は、実施の形態２における鍵生成サーバ２００の機能構成図である。
実施の形態２における鍵生成サーバ２００の機能構成について、図１５に基づいて説明する。
【０１６２】
鍵生成サーバ２００は、実施の形態１（図２参照）で説明したｒ−利用者秘密鍵生成部２２０とｒ−利用者秘密鍵書込み部２３０との代わりに、利用者秘密鍵生成部２２０Ｂと利用者秘密鍵書込み部２３０Ｂとを備える。
利用者秘密鍵生成部２２０Ｂは、マスター秘密鍵２１１と公開パラメータ２１２と利用者属性情報２９２とを用いて、利用者秘密鍵２２３を生成する。
利用者秘密鍵書込み部２３０Ｂは、利用者秘密鍵２２３をＩＣカード４００に書き込む。
【０１６３】
図１６は、実施の形態２におけるＩＣカード４００の機能構成図である。
実施の形態２におけるＩＣカード４００の機能構成について、図１６に基づいて説明する。
【０１６４】
ＩＣカード４００は、実施の形態１（図４参照）で説明した構成に加えて、ｒ−利用者秘密鍵生成部４２０を備える。
ｒ−利用者秘密鍵生成部４２０は、マスク値２２２を生成し、生成したマスク値２２２を用いて利用者秘密鍵２２３をランダム化することによってｒ−利用者秘密鍵２２１を生成する。
【０１６５】
アクセス端末３００の機能構成は実施の形態１（図３参照）と同様である。
【０１６６】
次に、属性ベース暗号システム１００の処理について説明する。
【０１６７】
図１７は、実施の形態２における属性ベース暗号システム１００の処理概要を示すフローチャートである。
実施の形態２における属性ベース暗号システム１００の処理概要について、図１７に基づいて説明する。
【０１６８】
属性ベース暗号システム１００は、実施の形態１（図５参照）で説明したＳ２００およびＳ４００の代わりに、Ｓ２００ＢおよびＳ４００Ｂを実行する。
【０１６９】
Ｓ１００において、鍵生成サーバ２００は公開パラメータ２１２を生成する（実施の形態１と同様）。
Ｓ２００Ｂにおいて、鍵生成サーバ２００は、ｒ−利用者秘密鍵２２１とマスク値２２２との代わりに、利用者秘密鍵２２３をＩＣカード４００に書き込む。
Ｓ３００において、アクセス端末３００は公開パラメータ２１２を用いて対象データ３０１を暗号化する（実施の形態１と同様）。
Ｓ４００Ｂにおいて、アクセス端末３００およびＩＣカード４００は暗号化データ３１１を復号する。
以下に、属性ベース暗号システム１００の各処理の詳細について説明する。
【０１７０】
初期設定処理（Ｓ１００）は実施の形態１（図６参照）と同様である。
【０１７１】
図１８は、実施の形態２における利用者秘密鍵発行処理（Ｓ２００Ｂ）を示すフローチャートである。
実施の形態２における利用者秘密鍵発行処理（Ｓ２００Ｂ）について、図１８に基づいて説明する。
【０１７２】
Ｓ２１０Ｂにおいて、利用者秘密鍵生成部２２０Ｂは、利用者属性テーブル２９１から属性値を含んだ利用者属性情報２９２を取得する。
Ｓ２１０Ｂは、実施の形態１（図８参照）で説明したＳ２１０と同様である。
Ｓ２１０Ｂの後、処理はＳ２２０Ｂに進む。
【０１７３】
Ｓ２２０Ｂにおいて、利用者秘密鍵生成部２２０Ｂは、利用者属性情報２９２を用いて、ｒ−利用者秘密鍵２２１とマスク値２２２との代わりに利用者秘密鍵２２３を生成する。
利用者秘密鍵生成処理（Ｓ２２０Ｂ）について別途説明する。
Ｓ２２０Ｂの後、処理はＳ２３０Ｂに進む。
【０１７４】
Ｓ２３０Ｂにおいて、利用者秘密鍵書込み部２３０Ｂは、ｒ−利用者秘密鍵２２１とマスク値２２２との代わりに、利用者秘密鍵２２３をＩＣカード４００に書き込む。ＩＣカード４００にデータ（２２３）を書き込む方法は実施の形態１（図８参照）のＳ２３０と同様である。
Ｓ２３０Ｂの後、利用者秘密鍵発行処理（Ｓ２００Ｂ）は終了する。
【０１７５】
図１９は、実施の形態２における利用者秘密鍵生成処理（Ｓ２２０Ｂ）を示すフローチャートである。
実施の形態２における利用者秘密鍵生成処理（Ｓ２２０Ｂ）について、図１９に基づいて説明する。
【０１７６】
Ｓ２２１Ｂにおいて、利用者秘密鍵生成部２２０Ｂは、利用者属性情報２９２を用いて属性集合Γを生成する。
Ｓ２２１Ｂは、実施の形態１（図９参照）で説明したＳ２２１と同様である。
Ｓ２２１Ｂの後、処理はＳ２２２Ｂに進む。
【０１７７】
Ｓ２２２Ｂにおいて、利用者秘密鍵生成部２２０Ｂは、属性集合Γを用いて利用者秘密鍵ｓｋ＿Γを生成する。
Ｓ２２２Ｂは、実施の形態１（図９参照）で説明したＳ２２２と同様である。
Ｓ２２２Ｂの後、利用者秘密鍵生成処理（Ｓ２２０Ｂ）は終了する。
【０１７８】
データ暗号化処理（Ｓ３００）は、実施の形態１（図１０参照）と同様である。
【０１７９】
図２０は、実施の形態２におけるデータ復号処理（Ｓ４００Ｂ）を示すフローチャートである。
実施の形態２におけるデータ復号処理（Ｓ４００Ｂ）について、図２０に基づいて説明する。
【０１８０】
データ復号処理（Ｓ４００Ｂ）は、実施の形態１（図１２参照）で説明したＳ４２０の代わりにＳ４２０Ｂを備える。
Ｓ４２０Ｂにおいて、ＩＣカード４００は、利用者秘密鍵２２３をランダム化してｒ−利用者秘密鍵２２１を生成する。
そして、ＫＥＭ鍵部分復号部３２０は、ＩＣカード４００からｒ−利用者秘密鍵２２１を取得する。
【０１８１】
図２１は、実施の形態２におけるｒ−利用者秘密鍵取得処理（Ｓ４２０Ｂ）を示すフローチャートである。
実施の形態２におけるｒ−利用者秘密鍵取得処理（Ｓ４２０Ｂ）について、図２１に基づいて説明する。
【０１８２】
Ｓ４２１Ｂにおいて、ＫＥＭ鍵部分復号部３２０は、ｒ−利用者秘密鍵ｓｋ＿ΓをＩＣカード４００に要求する。
Ｓ４２１Ｂの後、処理はＳ４２２Ｂに進む。
【０１８３】
Ｓ４２２Ｂにおいて、ＩＣカード４００のｒ−利用者秘密鍵生成部４２０は、乱数ｒを生成する。乱数ｒの生成方法は実施の形態１と同様である（図９のＳ２２３参照）。
Ｓ４２２Ｂの後、処理はＳ４２３Ｂに進む。
【０１８４】
Ｓ４２３Ｂにおいて、ｒ−利用者秘密鍵生成部４２０は、乱数ｒを用いてマスク値ｍａｓｋを生成し、生成したマスク値ｍａｓｋをカード記憶部４９０に記憶する。マスク値ｍａｓｋの生成方法は実施の形態１と同様である（図９のＳ２２４参照）。
Ｓ４２３Ｂの後、処理はＳ４２４Ｂに進む。
【０１８５】
Ｓ４２４Ｂにおいて、ｒ−利用者秘密鍵生成部４２０は、カード記憶部４９０から利用者秘密鍵ｓｋ＿Γを取得し、乱数ｒを用いて利用者秘密鍵ｓｋ＿Γをランダム化することによってｒ−利用者秘密鍵ｓｋ＿Γ−を生成する。ｒ−利用者秘密鍵ｓｋ＿Γ−の生成方法は実施の形態１と同様である（図９のＳ２２５参照）。
但し、ｒ−利用者秘密鍵生成部４２０は、利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化してｒ−利用者秘密鍵ｓｋ＿Γ−を生成しても構わない。利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化する方法について別途説明する。
Ｓ４２４Ｂの後、処理はＳ４２５Ｂに進む。
【０１８６】
Ｓ４２５Ｂにおいて、カード通信部４８０はｒ−利用者秘密鍵ｓｋ＿Γ−をアクセス端末３００に送信する。
Ｓ４２５Ｂの後、処理はＳ４２６Ｂに進む。
【０１８７】
Ｓ４２６Ｂにおいて、アクセス端末３００のＫＥＭ鍵部分復号部３２０は、ＩＣカード４００からｒ−利用者秘密鍵ｓｋ＿Γ−を受信する。
Ｓ４２６Ｂの後、ｒ−利用者秘密鍵取得処理（Ｓ４２０Ｂ）は終了する。
【０１８８】
次に、Ｓ４２４Ｂ（図２１参照）において、利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化する方法について説明する。
【０１８９】
実施の形態１で説明したように、利用者秘密鍵ｓｋ＿Γは式（１６）で表すことができる。
【０１９０】
【数１６】
0005959667.tif 000017
【０１９１】
以下に、利用者秘密鍵ｓｋ＿Γに含まれる３番目の要素ｋ＿ｔ＾＊をランダム化せずに、２番目の要素ｋ＿０＾＊をランダム化するための式（１７−１）から式（１７−４）を示す。２番目の要素ｋ＿０＾＊は復号処理で必ず使用される要素である。
【０１９２】
【数１７】
0005959667.tif 000018
【０１９３】
但し、２番目の要素ｋ＿０＾＊をランダム化せずに、その他の要素（３番目の要素ｋ＿ｔ＾＊）をランダム化しても構わない。
【０１９４】
次に、利用者秘密鍵ｓｋ＿Γの一部の要素だけをランダム化した場合のデータ復号処理（図２０のＳ４３０からＳ４８０）について説明する。
【０１９５】
Ｓ４３０において、ＫＥＭ鍵部分復号部３２０は、ｒ−利用者秘密鍵２２１を用いて暗号化ＫＥＭ鍵３１３を復号処理することによって、ｒ−ＫＥＭ鍵マスク値３２１を生成する。
以下に、ｒ−ＫＥＭ鍵マスク値３２１を生成するための式（１８−１）から式（１８−４）を示す。式（１８−３）に示す「Ｋ＿１−」および式（１８−４）に示す「Ｋ＿２」がｒ−ＫＥＭ鍵マスク値３２１である。
【０１９６】
【数１８】
0005959667.tif 000019
【０１９７】
Ｓ４４０において、乱数要素除去依頼部３３０は、ｒ−ＫＥＭ鍵マスク値３２１をＩＣカード４００に送信する。
【０１９８】
Ｓ４５０において、ＩＣカード４００の乱数要素除去部４１０は、マスク値２２２を用いてｒ−ＫＥＭ鍵マスク値Ｋ＿１−から乱数要素を除去することにより、ＫＥＭ鍵マスク値Ｋ＿１を生成する。
ＫＥＭ鍵マスク値Ｋ＿１は以下の式（１９）で表すことができる。
【０１９９】
【数１９】
0005959667.tif 000020
【０２００】
Ｓ４６０において、乱数要素除去依頼部３３０はＫＥＭ鍵マスク値４１１をＩＣカード４００から受信する。
【０２０１】
Ｓ４７０において、マスク除去部３４０は、ＫＥＭ鍵マスク値「Ｋ＿１」「Ｋ＿２」を用いてＫＥＭ鍵３４１を生成する。
以下に、ＫＥＭ鍵Ｋ＿ＫＥＭを生成するための式（２０−１）から式（２０−３）を示す。ＫＥＭ鍵Ｋ＿ＫＥＭは式（２０−３）で表すことができる。
【０２０２】
【数２０】
0005959667.tif 000021
【０２０３】
Ｓ４８０において、データ復号部３５０は、ＫＥＭ鍵３４１を用いて共通鍵暗号方式で暗号化データ本体３１２を対象データ３０１に復号する。
以上の処理により、暗号化データ本体３１２を対象データ３０１に復号することができる。
【０２０４】
実施の形態２により、例えば、以下のような効果を奏することができる。
鍵生成サーバはＩＣカードに属性ベース暗号方式の通常の利用者秘密鍵を書き込み、ＩＣカードが利用者秘密鍵をランダム化する。これにより、属性ベース暗号システム１００は、属性ベース暗号用に開発された通常の鍵生成サーバを利用する事ができる。つまり、導入コストを安価にすることができる。
【０２０５】
ＩＣカードは利用者秘密鍵の全体をランダム化するのではなく、復号処理で必ず利用される部分だけをランダム化する。これにより、利用者秘密鍵のランダム化の手間を大きく削減することができる。
【０２０６】
また、実施の形態１で説明した効果（１）（２）（３）と同様の効果を奏することができる。
【０２０７】
実施の形態２は、以下のように応用しても構わない。
属性ベース暗号システム１００において、利用者秘密鍵を格納したＩＣカードを利用者に配布しなくても構わない。
例えば、利用者秘密鍵を格納したＳＤカードまたはその他のメモリカードを利用者に配布しても良い。また、利用者秘密鍵はネットワーク経由でアクセス端末に配布し、アクセス端末のハードディスクに保管するようにしても良い。
【０２０８】
アクセス端末がランダム化利用者秘密鍵を使って暗号化ＫＥＭ鍵の部分復号を行った後に、ＩＣカードがマスク値をアクセス端末に送付し、アクセス端末が乱数要素を除去しても良い。
この場合、ランダム化利用者秘密鍵とマスク値とが同時にアクセス端末に存在しないため、安全性を担保することができる。
【０２０９】
鍵生成サーバがランダム化利用者秘密鍵とマスク値とを生成するようにしても良い（実施の形態１を参照）。
【０２１０】
Ｓ３４２で生成したｇ＿Ｔ＾ζをＫＥＭ鍵の種ｍとして用いてＫＥＭ鍵を生成するようにしても良い（実施の形態１の応用（４）と同様）。
複数の部または課に所属する利用者に対して複数の利用者秘密鍵を割り当てるようにしても良い（実施の形態１の応用（５）と同様）。
利用者属性情報は、鍵生成サーバとは別個の装置で管理するようにしても良い（実施の形態１の応用（６）と同様）。
公開パラメータはＩＣカードに格納するようにしても良い。また、アクセス端末は、公開パラメータを利用する度に、ネットワーク経由で鍵生成サーバから公開パラメータを取得するようにしても良い（実施の形態１の応用（７）と同様）。
データを属性ベース暗号方式で直接に暗号化することが可能であれば、データは共通鍵暗号方式で暗号化しなくても良い（実施の形態１の応用（８）と同様）。
【０２１１】
ＩＣカードがＫＥＭ鍵マスク値Ｋ＿１を計算する際、不正な攻撃を受けていないことを確認するようにしても良い（実施の形態１の応用（９）と同様）。
【０２１２】
実施の形態２において、例えば、以下のような乱数要素除去装置（４００）について説明した。括弧内に実施の形態で説明した符号を記す。
前記乱数要素除去装置は、ランダム化秘密鍵生成部（４２０）と、共通鍵受信部（４８０）と、乱数要素除去部（４１０）と、共通鍵送信部（４８０）とを備える。
前記ランダム化秘密鍵生成部は、属性を表す属性値を用いて属性ベース暗号方式で生成された利用者秘密鍵（２２３）に乱数を用いて乱数要素を含めたランダム化秘密鍵（２２１）を生成する。
前記共通鍵受信部は、前記乱数要素を含んだ共通鍵であるランダム化マスク共通鍵（３２１）を受信する。
前記乱数要素除去部は、前記乱数を用いて生成されたマスク値（２２２）を用いて、前記ランダム化マスク共通鍵から前記乱数要素を除去したマスク共通鍵（４１１）を生成する。
前記共通鍵送信部は、前記乱数要素除去部によって生成された前記マスク共通鍵を送信する。
【０２１３】
実施の形態３．
ＩＣカード４００を用いない属性ベース暗号システム１００の形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【０２１４】
図２２は、実施の形態３における鍵生成サーバ２００の機能構成図である。
実施の形態３における鍵生成サーバ２００の機能構成について、図２２に基づいて説明する。
【０２１５】
鍵生成サーバ２００は、実施の形態１（図２参照）で説明したｒ−利用者秘密鍵書込み部２３０を備えなくてもよい。
サーバ記憶部２９０は、ｒ−利用者秘密鍵生成部２２０によって生成されるｒ−利用者秘密鍵２２１とマスク値２２２とを記憶する。
サーバ通信部２８０は、公開パラメータ２１２の他に、ｒ−利用者秘密鍵２２１とマスク値２２２とをアクセス端末３００に送信する。
【０２１６】
図２３は、実施の形態３におけるアクセス端末３００の機能構成図である。
実施の形態３におけるアクセス端末３００の機能構成について、図２３に基づいて説明する。
【０２１７】
アクセス端末３００は、実施の形態１（図３参照）で説明した乱数要素除去依頼部３３０の代わりに、乱数要素除去部３６０を備える。
乱数要素除去部３６０は、マスク値２２２を用いてｒ−ＫＥＭ鍵マスク値３２１から乱数要素を除去することによって、ＫＥＭ鍵マスク値４１１を生成する。
【０２１８】
図２４は、実施の形態３における属性ベース暗号システム１００の処理概要を示すフローチャートである。
実施の形態３における属性ベース暗号システム１００の処理概要について、図２４に基づいて説明する。
【０２１９】
属性ベース暗号システム１００は、実施の形態１（図５参照）で説明したＳ２００およびＳ４００の代わりに、Ｓ２００ＣおよびＳ４００Ｃを実行する。
【０２２０】
Ｓ１００において、鍵生成サーバ２００は公開パラメータ２１２を生成する（実施の形態１と同様）。
Ｓ２００Ｃにおいて、鍵生成サーバ２００は、ｒ−利用者秘密鍵２２１とマスク値２２２とを生成する。但し、鍵生成サーバ２００は、ｒ−利用者秘密鍵２２１とマスク値２２２とをＩＣカード４００に書き込まなくてよい。
Ｓ３００において、アクセス端末３００は公開パラメータ２１２を用いて対象データ３０１を暗号化する（実施の形態１と同様）。
Ｓ４００Ｃにおいて、アクセス端末３００はｒ−利用者秘密鍵２２１とマスク値２２２とを用いて暗号化データ３１１を復号する。
【０２２１】
以下に、属性ベース暗号システム１００の各処理の詳細について説明する。
【０２２２】
初期設定処理（Ｓ１００）は実施の形態１（図６参照）と同様である。
【０２２３】
図２５は、実施の形態３におけるｒ−利用者秘密鍵生成処理（Ｓ２００Ｃ）を示すフローチャートである。
実施の形態３におけるｒ−利用者秘密鍵生成処理（Ｓ２００Ｃ）について、図２５に基づいて説明する。
【０２２４】
ｒ−利用者秘密鍵生成処理（Ｓ２００Ｃ）は、実施の形態１（図８参照）で説明したＳ２３０の代わりに、Ｓ２３０Ｃを備える。
Ｓ２３０Ｃにおいて、ｒ−利用者秘密鍵生成部２２０は、ｒ−利用者秘密鍵２２１とマスク値２２２とをＩＣカード４００に書き込む代わりに、ｒ−利用者秘密鍵２２１とマスク値２２２とをサーバ記憶部２９０に保管する。
【０２２５】
データ暗号化処理（Ｓ３００）は実施の形態１（図１０参照）と同様である。
【０２２６】
図２６は、実施の形態３におけるデータ復号処理（Ｓ４００Ｃ）を示すフローチャートである。
実施の形態３におけるデータ復号処理（Ｓ４００Ｃ）について、図２６に基づいて説明する。
【０２２７】
データ復号処理（Ｓ４００Ｃ）は、実施の形態１（図１２参照）で説明したＳ４２０からＳ４６０の代わりに、Ｓ４２０ＣからＳ４５０Ｃを備える。
【０２２８】
Ｓ４１０において、端末通信部３８０はファイルサーバ１９０から暗号化データ３１１を取得する（実施の形態１と同様）。
【０２２９】
Ｓ４２０Ｃにおいて、ＫＥＭ鍵部分復号部３２０は、端末通信部３８０を介して鍵生成サーバ２００にｒ−利用者秘密鍵２２１を要求し、ｒ−利用者秘密鍵２２１を取得する。
【０２３０】
Ｓ４３０Ｃにおいて、ＫＥＭ鍵部分復号部３２０は、ｒ−利用者秘密鍵２２１を用いて暗号化データ３１１に含まれる暗号化ＫＥＭ鍵３１３を復号処理することによって、ｒ−ＫＥＭ鍵マスク値３２１を生成する。ｒ−ＫＥＭ鍵マスク値３２１を生成する方法は実施の形態１のＳ４３０と同様である。
ＫＥＭ鍵部分復号部３２０は、ｒ−ＫＥＭ鍵マスク値３２１を生成した後、ｒ−利用者秘密鍵２２１をアクセス端末３００から消去する。
【０２３１】
Ｓ４４０Ｃにおいて、乱数要素除去部３６０は、端末通信部３８０を介して鍵生成サーバ２００にマスク値２２２を要求し、マスク値２２２を取得する。
【０２３２】
Ｓ４５０Ｃにおいて、乱数要素除去部３６０は、マスク値２２２を用いてｒ−ＫＥＭ鍵マスク値３２１から乱数要素を除去することによって、ＫＥＭ鍵マスク値４１１を生成する。ＫＥＭ鍵マスク値４１１を生成する方法は、実施の形態１で説明したＩＣカード４００の乱数要素除去部４１０と同様である。
乱数要素除去部３６０は、ＫＥＭ鍵マスク値４１１を生成した後、マスク値２２２をアクセス端末３００から消去する。
【０２３３】
Ｓ４７０において、マスク除去部３４０は、ＫＥＭ鍵マスク値４１１と暗号化ＫＥＭ鍵３１３とを用いてＫＥＭ鍵３４１を生成する（実施の形態１と同様）。
【０２３４】
Ｓ４８０において、データ復号部３５０は、ＫＥＭ鍵３４１を共通鍵として用いて共通鍵暗号方式で暗号化データ本体３１２を対象データ３０１に復号する（実施の形態１と同様）。
以上の処理により、暗号化データ本体３１２を対象データ３０１に復号することができる。
【０２３５】
実施の形態３において、ＩＣカード４００を用いない属性ベース暗号システム１００の形態について説明した。但し、ＩＣカード４００を用いても構わない。
例えば、鍵生成サーバ２００がｒ−利用者秘密鍵２２１をＩＣカード４００に書き込み、アクセス端末３００がＩＣカード４００からｒ−利用者秘密鍵２２１を取得しても構わない。
また、鍵生成サーバ２００がマスク値２２２をＩＣカード４００に書き込み、アクセス端末３００がＩＣカード４００からマスク値２２２を取得しても構わない。
【０２３６】
実施の形態３により、例えば、以下のような効果を奏することができる。
属性ベース暗号システム１００は、ランダム化利用者秘密鍵を用いた部分復号演算を最初にアクセス端末側で実施し、その後にマスク値を使ったランダム化の除去演算をアクセス端末側で実施する。このため、利用者秘密鍵の全てが同時にアクセス端末上に現れることはない。
これにより、アクセス端末の主記憶のスナップショットを取るようなマルウェアが存在したとしても、利用者秘密鍵の一部は取得されても、利用者秘密鍵の全体を取得されることはなく、利用者秘密鍵の漏洩のリスクを低減することが出来る。
【０２３７】
実施の形態３は、以下のように応用しても構わない。
鍵生成サーバは、ＩＣカードまたはＳＤカードなどのメモリカードに書き込んであるランダム化利用者秘密鍵およびマスク値を読み込むようにしても良い。また、ランダム化利用者秘密鍵およびマスク値はネットワーク経由でアクセス端末に配布し、アクセス端末のハードディスクに暗号化して保管し、利用するたびに復号して読みこむようにしても良い。
【０２３８】
ランダム化利用者秘密鍵とマスク値とを別々に配布するようにしても良い。例えば、マスク値を格納したＩＣカードを配布しつつ、ランダム化利用者秘密鍵をネットワーク経由でアクセス端末に配布しても良い。
【０２３９】
Ｓ３４２で生成したｇ＿Ｔ＾ζをＫＥＭ鍵の種ｍとして用いてＫＥＭ鍵を生成するようにしても良い（実施の形態１の応用（４）と同様）。
複数の部または課に所属する利用者に対して複数の利用者秘密鍵を割り当てるようにしても良い（実施の形態１の応用（５）と同様）。
利用者属性情報は、鍵生成サーバとは別個の装置で管理するようにしても良い（実施の形態１の応用（６）と同様）。
公開パラメータはＩＣカードに格納するようにしても良い。また、アクセス端末は、公開パラメータを利用する度に、ネットワーク経由で鍵生成サーバから公開パラメータを取得するようにしても良い（実施の形態１の応用（７）と同様）。
データを属性ベース暗号方式で直接に暗号化することが可能であれば、データは共通鍵暗号方式で暗号化しなくても良い（実施の形態１の応用（８）と同様）。
実施の形態３は非特許文献１に記載の岡本−高島暗号方式以外の暗号方式に適用してもよい。
【０２４０】
各実施の形態は、矛盾が生じない範囲で一部または全体を組み合わせた形態にしても構わない。
【符号の説明】
【０２４１】
１００  属性ベース暗号システム、１０１  社内ＬＡＮ、１９０  ファイルサーバ、２００  鍵生成サーバ、２０１  鍵長、２０２  属性数、２１０  マスター秘密鍵生成部、２１１  マスター秘密鍵、２１２  公開パラメータ、２２０  ｒ−利用者秘密鍵生成部、２２０Ｂ  利用者秘密鍵生成部、２２１  ｒ−利用者秘密鍵、２２２  マスク値、２２３  利用者秘密鍵、２３０  ｒ−利用者秘密鍵書込み部、２３０Ｂ  利用者秘密鍵書込み部、２８０  サーバ通信部、２９０  サーバ記憶部、２９１  利用者属性テーブル、２９２  利用者属性情報、３００  アクセス端末、３０１  対象データ、３０２  属性条件式、３１０  データ暗号化部、３１１  暗号化データ、３１２  暗号化データ本体、３１３  暗号化ＫＥＭ鍵、３２０  ＫＥＭ鍵部分復号部、３２１  ｒ−ＫＥＭ鍵マスク値、３３０  乱数要素除去依頼部、３４０  マスク除去部、３４１  ＫＥＭ鍵、３５０  データ復号部、３６０  乱数要素除去部、３８０  端末通信部、３９０  端末記憶部、４００  ＩＣカード、４１０  乱数要素除去部、４１１  ＫＥＭ鍵マスク値、４２０  ｒ−利用者秘密鍵生成部、４８０  カード通信部、４９０  カード記憶部、９０１  ＣＰＵ、９０２  バス、９０３  ＲＯＭ、９０４  ＲＡＭ、９０５  通信ボード、９１１  ディスプレイ、９１２  キーボード、９１３  マウス、９１４  ドライブ、９１５  カードＲ／Ｗ、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  プログラム群、９２３  ファイル群。
【図１】
0005959667.tif 000022
【図２】
0005959667.tif 000023
【図３】
0005959667.tif 000024
【図４】
0005959667.tif 000025
【図５】
0005959667.tif 000026
【図６】
0005959667.tif 000027
【図７】
0005959667.tif 000028
【図８】
0005959667.tif 000029
【図９】
0005959667.tif 000030
【図１０】
0005959667.tif 000031
【図１１】
0005959667.tif 000032
【図１２】
0005959667.tif 000033
【図１３】
0005959667.tif 000034
【図１４】
0005959667.tif 000035
【図１５】
0005959667.tif 000036
【図１６】
0005959667.tif 000037
【図１７】
0005959667.tif 000038
【図１８】
0005959667.tif 000039
【図１９】
0005959667.tif 000040
【図２０】
0005959667.tif 000041
【図２１】
0005959667.tif 000042
【図２２】
0005959667.tif 000043
【図２３】
0005959667.tif 000044
【図２４】
0005959667.tif 000045
【図２５】
0005959667.tif 000046
【図２６】
0005959667.tif 000047