【手続補正書】
【提出日】平成25年11月14日(2013.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
基底Ｂ０及び基底Ｂ０＊と、ｔ＝１，．．．，ｄＫＰ（ｄＫＰは１以上の整数）の各整数ｔについての基底ＢｔＫＰ及び基底Ｂ＊ｔＫＰと、ｔ＝１，．．．，ｄＣＰ（ｄＣＰは１以上の整数）の各整数ｔについての基底ＢｔＣＰ及び基底Ｂ＊ｔＣＰとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データｃｔ（ΓＫＰ，ＳＣＰ）を復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）で復号する復号装置であり、
ｔ＝１，．．．，ｄＫＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＫＰ：＝（ｘｔ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ，ｎｔＫＰは１以上の整数）とを有する属性集合ΓＫＰと、
ｉ＝１，．．．，ＬＣＰ（ＬＣＰは１以上の整数）の各整数ｉについての変数ρＣＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＣＰのいずれかの整数）と、属性ベクトルｖ→ｉＣＰ：＝（ｖｉ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ，ｎｔＣＰは１以上の整数）との肯定形の組（ｔ，ｖ→ｉＣＰ）又は否定形の組¬（ｔ，ｖ→ｉＣＰ）のいずれかである変数ρＣＰ（ｉ）と、
ＬＣＰ行ｒＣＰ列（ｒＣＰは１以上の整数）の所定の行列ＭＣＰと、
基底Ｂ０の基底ベクトルｂ０，ｐの係数として乱数ωＫＰが設定され、基底ベクトルｂ０，ｐ’の係数として値−ｓ０ＣＰ（ｓ０ＣＰ：＝ｈ→ＣＰ・（ｆ→ＣＰ）Ｔ，ｈ→ＣＰ及びｆ→ＣＰはｒＣＰ個の要素を有するベクトル）が設定され、基底ベクトルｂ０，ｑの係数として乱数ζが設定された要素ｃ０と、
前記属性集合ΓＫＰに含まれる各識別情報ｔについて、基底ＢｔＫＰの基底ベクトルｂｔ，ｉ’ＫＰ（ｉ’＝１，．．．，ｎｔ）の係数として前記乱数ωＫＰ倍したｘｔ，ｉ’ＫＰが設定された要素ｃｔＫＰと、
前記ｆ→ＣＰと、前記行列ＭＣＰとに基づき生成される列ベクトル（ｓ→ＣＰ）Ｔ：＝（ｓ１ＣＰ，．．．，ｓｉＣＰ）Ｔ：＝ＭＣＰ・（ｆ→ＣＰ）Ｔ（ｉ＝ＬＣＰ）と、乱数θｉＣＰ（ｉ＝１，．．．，ＬＣＰ）とに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉについて生成された要素ｃｉＣＰであって、ｉ＝１，．．．，ＬＣＰの各整数ｉについて、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔが示す基底ＢｔＣＰの基底ベクトルｂｔ，１ＣＰの係数としてｓｉＣＰ＋θｉＣＰｖｉ，１ＣＰが設定されるとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてθｉＣＰｖｉ，ｉ’ＣＰが設定され、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてｓｉＣＰｖｉ，ｉ’ＣＰが設定された要素ｃｉＣＰと
を含む暗号化データｃｔ（ΓＫＰ，ＳＣＰ）を取得するデータ取得部と、
ｉ＝１，．．．，ＬＫＰ（ＬＫＰは１以上の整数）の各整数ｉについての変数ρＫＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＫＰのいずれかの整数）と、属性ベクトルｖ→ｉＫＰ：＝（ｖｉ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ）との肯定形の組（ｔ，ｖ→ｉＫＰ）又は否定形の組¬（ｔ，ｖ→ｉＫＰ）のいずれかである変数ρＫＰ（ｉ）と、
ＬＫＰ行ｒＫＰ列（ｒＫＰは１以上の整数）の所定の行列ＭＫＰと、
ｔ＝１，．．．，ｄＣＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＣＰ：＝（ｘｔ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ）とを有する属性集合ΓＣＰと
基底Ｂ＊０の基底ベクトルｂ＊０，ｐ（ｐは所定の値）の係数として値−ｓ０ＫＰ（ｓ０ＫＰ：＝ｈ→ＫＰ・（ｆ→ＫＰ）Ｔ，ｈ→ＫＰ及びｆ→ＫＰはｒＫＰ個の要素を有するベクトル）が設定され、基底ベクトルｂ＊０，ｐ’（ｐ’は前記ｐとは異なる所定の値）の係数として乱数δＣＰが設定され、基底ベクトルｂ＊０，ｑ（ｑは前記ｐ及び前記ｐ’とは異なる所定の値）の係数として所定の値κが設定された要素ｋ＊０と、
前記ｆ→ＫＰと、行列ＭＫＰに基づき生成される列ベクトル（ｓ→ＫＰ）Ｔ：＝（ｓ１ＫＰ，．．．，ｓｉＫＰ）Ｔ：＝ＭＫＰ・（ｆ→ＫＰ）Ｔ（ｉ＝ＬＫＰ）と、乱数θｉＫＰ（ｉ＝１，．．．，ＬＫＰ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉについて生成された要素ｋ＊ｉＫＰであって、ｉ＝１，．．．，ＬＫＰの各整数ｉについて、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔが示す基底Ｂ＊ｔＫＰの基底ベクトルｂ＊ｔ，１ＫＰの係数としてｓｉＫＰ＋θｉＫＰｖｉ，１ＫＰが設定されるとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてθｉＫＰｖｉ，ｉ’ＫＰが設定され、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてｓｉＫＰｖｉ，ｉ’ＫＰが設定された要素ｋ＊ｉＫＰと、
前記属性集合ΓＣＰに含まれる各識別情報ｔについて、基底Ｂ＊ｔＣＰの基底ベクトルｂ＊ｔ，ｉ’ＣＰ（ｉ’＝１，．．．，ｎｔＣＰ）の係数として前記乱数δＣＰ倍したｘｔ，ｉ’ＣＰが設定された要素ｋ＊ｔＣＰと
を含む復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）を取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる属性集合ΓＫＰと、前記復号鍵取得部が取得した復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる変数ρＫＰ（ｉ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉのうち、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０となるｉと、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０とならないｉとの集合ＩＫＰを特定するとともに、特定した集合ＩＫＰに含まれるｉについて、αｉＫＰＭｉＫＰを合計した場合に前記ｈ→ＫＰとなる補完係数αｉＫＰを計算するＫＰ補完係数計算部と、
前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれるｉ＝１，．．．，ＬＣＰの各整数ｉについての変数ρＣＰ（ｉ）と、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる属性集合ΓＣＰとに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉのうち、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０となるｉと、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０とならないｉとの集合ＩＣＰを特定するとともに、特定した集合ＩＣＰに含まれるｉについて、αｉＣＰＭｉＣＰを合計した場合に前記ｈ→ＣＰとなる補完係数αｉＣＰを計算するＣＰ補完係数計算部と、
前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる要素ｃ０と要素ｃｔＫＰと要素ｃｉＣＰと、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる要素ｋ＊０と要素ｋ＊ｉＫＰと要素ｋ＊ｔＣＰとについて、前記ＫＰ補完係数計算部が特定した集合ＩＫＰと、前記ＫＰ補完係数計算部が計算した補完係数αｉＫＰと、前記ＣＰ補完係数計算部が特定した集合ＩＣＰと、前記ＣＰ補完係数計算部が計算した補完係数αｉＣＰとに基づき、数１０に示すペアリング演算を行い値Ｋを計算するペアリング演算部と
を備えることを特徴とする復号装置。
【数１０】
2012133214.tif 000001
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
基底Ｂ０及び基底Ｂ０＊と、ｔ＝１，．．．，ｄＫＰ（ｄＫＰは１以上の整数）の各整数ｔについての基底ＢｔＫＰ及び基底Ｂ＊ｔＫＰと、ｔ＝１，．．．，ｄＣＰ（ｄＣＰは１以上の整数）の各整数ｔについての基底ＢｔＣＰ及び基底Ｂ＊ｔＣＰとを用いた暗号処理方法であり、
鍵生成装置が、ｉ＝１，．．．，ＬＫＰ（ＬＫＰは１以上の整数）の各整数ｉについての変数ρＫＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＫＰのいずれかの整数）と、属性ベクトルｖ→ｉＫＰ：＝（ｖｉ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ，ｎｔＫＰは１以上の整数）との肯定形の組（ｔ，ｖ→ｉＫＰ）又は否定形の組¬（ｔ，ｖ→ｉＫＰ）のいずれかである変数ρＫＰ（ｉ）と、ＬＫＰ行ｒＫＰ列（ｒＫＰは１以上の整数）の所定の行列ＭＫＰとを入力する第１ＫＰ情報入力工程と、
前記鍵生成装置が、ｔ＝１，．．．，ｄＣＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＣＰ：＝（ｘｔ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ，ｎｔＣＰは１以上の整数）とを有する属性集合ΓＣＰを入力する第１ＣＰ情報入力工程と、
前記鍵生成装置が、基底Ｂ＊０の基底ベクトルｂ＊０，ｐ（ｐは所定の値）の係数として値−ｓ０ＫＰ（ｓ０ＫＰ：＝ｈ→ＫＰ・（ｆ→ＫＰ）Ｔ，ｈ→ＫＰ及びｆ→ＫＰはｒＫＰ個の要素を有するベクトル）を設定し、基底ベクトルｂ＊０，ｐ’（ｐ’は前記ｐとは異なる所定の値）の係数として乱数δＣＰを設定し、基底ベクトルｂ＊０，ｑ（ｑは前記ｐ及び前記ｐ’とは異なる所定の値）の係数として所定の値κを設定して要素ｋ＊０を生成する主復号鍵生成工程と、
前記鍵生成装置が、前記ｆ→ＫＰと、前記第１ＫＰ情報入力工程で入力した行列ＭＫＰに基づき生成される列ベクトル（ｓ→ＫＰ）Ｔ：＝（ｓ１ＫＰ，．．．，ｓｉＫＰ）Ｔ：＝ＭＫＰ・（ｆ→ＫＰ）Ｔ（ｉ＝ＬＫＰ）と、乱数θｉＫＰ（ｉ＝１，．．．，ＬＫＰ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉについての要素ｋ＊ｉＫＰを生成するＫＰ復号鍵生成工程であって、ｉ＝１，．．．，ＬＫＰの各整数ｉについて、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔが示す基底Ｂ＊ｔＫＰの基底ベクトルｂ＊ｔ，１ＫＰの係数としてｓｉＫＰ＋θｉＫＰｖｉ，１ＫＰを設定するとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてθｉＫＰｖｉ，ｉ’ＫＰを設定して要素ｋ＊ｉＫＰを生成し、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてｓｉＫＰｖｉ，ｉ’ＫＰを設定して要素ｋ＊ｉＫＰを生成するＫＰ復号鍵生成工程と、
前記鍵生成装置が、前記第１ＣＰ情報入力工程で入力した属性集合ΓＣＰに含まれる各識別情報ｔについての要素ｋ＊ｔＣＰを生成するＣＰ復号鍵生成工程であって、基底Ｂ＊ｔＣＰの基底ベクトルｂ＊ｔ，ｉ’ＣＰ（ｉ’＝１，．．．，ｎｔＣＰ）の係数として前記乱数δＣＰ倍したｘｔ，ｉ’ＣＰを設定して要素ｋ＊ｔＣＰを生成するＣＰ復号鍵生成工程と、
暗号化装置が、ｔ＝１，．．．，ｄＫＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＫＰ：＝（ｘｔ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ）とを有する属性集合ΓＫＰを入力する第２ＫＰ情報入力工程と、
前記暗号化装置が、ｉ＝１，．．．，ＬＣＰ（ＬＣＰは１以上の整数）の各整数ｉについての変数ρＣＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＣＰのいずれかの整数）と、属性ベクトルｖ→ｉＣＰ：＝（ｖｉ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ）との肯定形の組（ｔ，ｖ→ｉＣＰ）又は否定形の組¬（ｔ，ｖ→ｉＣＰ）のいずれかである変数ρＣＰ（ｉ）と、ＬＣＰ行ｒＣＰ列（ｒＣＰは１以上の整数）の所定の行列ＭＣＰとを入力する第２ＣＰ情報入力工程と、
前記暗号化装置が、基底Ｂ０の基底ベクトルｂ０，ｐの係数として乱数ωＫＰを設定し、基底ベクトルｂ０，ｐ’の係数として値−ｓ０ＣＰ（ｓ０ＣＰ：＝ｈ→ＣＰ・（ｆ→ＣＰ）Ｔ，ｈ→ＣＰ及びｆ→ＣＰはｒＣＰ個の要素を有するベクトル）を設定し、基底ベクトルｂ０，ｑの係数として乱数ζを設定して要素ｃ０を生成する主暗号化データ生成工程と、
前記暗号化装置が、前記第２ＫＰ情報入力工程で入力した属性集合ΓＫＰに含まれる各識別情報ｔについての要素ｃｔＫＰを生成するＫＰ暗号化データ生成工程であって、基底ＢｔＫＰの基底ベクトルｂｔ，ｉ’ＫＰ（ｉ’＝１，．．．，ｎｔ）の係数として前記乱数ωＫＰ倍したｘｔ，ｉ’ＫＰを設定して要素ｃｔＫＰを生成するＫＰ暗号化データ生成工程と、
前記暗号化装置が、前記ｆ→ＣＰと、前記第２ＣＰ情報入力工程で入力した行列ＭＣＰとに基づき生成される列ベクトル（ｓ→ＣＰ）Ｔ：＝（ｓ１ＣＰ，．．．，ｓｉＣＰ）Ｔ：＝ＭＣＰ・（ｆ→ＣＰ）Ｔ（ｉ＝ＬＣＰ）と、乱数θｉＣＰ（ｉ＝１，．．．，ＬＣＰ）とに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉについての要素ｃｉＣＰを生成するＣＰ暗号化データ生成工程であって、ｉ＝１，．．．，ＬＣＰの各整数ｉについて、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔが示す基底ＢｔＣＰの基底ベクトルｂｔ，１ＣＰの係数としてｓｉＣＰ＋θｉＣＰｖｉ，１ＣＰを設定するとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてθｉＣＰｖｉ，ｉ’ＣＰを設定して要素ｃｉＣＰを生成し、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてｓｉＣＰｖｉ，ｉ’ＣＰを設定して要素ｃｉＣＰを生成するＣＰ暗号化データ生成工程と、
復号装置が、前記主暗号化データ生成工程で生成した要素ｃ０と、前記ＫＰ暗号化データ生成工程で生成した要素ｃｔＫＰと、前記ＣＰ暗号化データ生成工程で生成した要素ｃｉＣＰと、前記属性集合ΓＫＰと、前記変数ρＣＰ（ｉ）とを含む暗号化データｃｔ（ΓＫＰ，ＳＣＰ）を取得するデータ取得工程と、
前記復号装置が、前記主復号鍵生成工程で生成した要素ｋ＊０と、前記ＫＰ復号鍵生成工程で生成した要素ｋ＊ｉＫＰと、前記ＣＰ復号鍵生成工程で生成した要素ｋ＊ｔＣＰと、前記変数ρＫＰ（ｉ）と、前記属性集合ΓＣＰとを含む復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）を取得する復号鍵取得工程と、
前記復号装置が、前記データ取得工程で取得した暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる属性集合ΓＫＰと、前記復号鍵取得工程で取得した復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる変数ρＫＰ（ｉ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉのうち、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０となるｉと、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０とならないｉとの集合ＩＫＰを特定するとともに、特定した集合ＩＫＰに含まれるｉについて、αｉＫＰＭｉＫＰを合計した場合に前記ｈ→ＫＰとなる補完係数αｉＫＰを計算するＫＰ補完係数計算工程と、
前記復号装置が、前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれるｉ＝１，．．．，ＬＣＰの各整数ｉについての変数ρＣＰ（ｉ）と、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる属性集合ΓＣＰとに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉのうち、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０となるｉと、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０とならないｉとの集合ＩＣＰを特定するとともに、特定した集合ＩＣＰに含まれるｉについて、αｉＣＰＭｉＣＰを合計した場合に前記ｈ→ＣＰとなる補完係数αｉＣＰを計算するＣＰ補完係数計算工程と、
前記復号装置が、前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる要素ｃ０と要素ｃｔＫＰと要素ｃｉＣＰと、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる要素ｋ＊０と要素ｋ＊ｉＫＰと要素ｋ＊ｔＣＰとについて、前記ＫＰ補完係数計算工程で特定した集合ＩＫＰと、前記ＫＰ補完係数計算工程で計算した補完係数αｉＫＰと、前記ＣＰ補完係数計算工程で特定した集合ＩＣＰと、前記ＣＰ補完係数計算工程で計算した補完係数αｉＣＰとに基づき、数１１に示すペアリング演算を行い値Ｋを計算するペアリング演算工程と
を備えることを特徴とする暗号処理方法。
【数１１】
2012133214.tif 000002
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
鍵生成プログラムと暗号化プログラムと復号プログラムとを備え、基底Ｂ０及び基底Ｂ０＊と、ｔ＝１，．．．，ｄＫＰ（ｄＫＰは１以上の整数）の各整数ｔについての基底ＢｔＫＰ及び基底Ｂ＊ｔＫＰと、ｔ＝１，．．．，ｄＣＰ（ｄＣＰは１以上の整数）の各整数ｔについての基底ＢｔＣＰ及び基底Ｂ＊ｔＣＰとを用いて暗号処理を実行する暗号処理プログラムであり、
前記鍵生成プログラムは、
ｉ＝１，．．．，ＬＫＰ（ＬＫＰは１以上の整数）の各整数ｉについての変数ρＫＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＫＰのいずれかの整数）と、属性ベクトルｖ→ｉＫＰ：＝（ｖｉ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ，ｎｔＫＰは１以上の整数）との肯定形の組（ｔ，ｖ→ｉＫＰ）又は否定形の組¬（ｔ，ｖ→ｉＫＰ）のいずれかである変数ρＫＰ（ｉ）と、ＬＫＰ行ｒＫＰ列（ｒＫＰは１以上の整数）の所定の行列ＭＫＰとを入力する第１ＫＰ情報入力処理と、
ｔ＝１，．．．，ｄＣＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＣＰ：＝（ｘｔ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ，ｎｔＣＰは１以上の整数）とを有する属性集合ΓＣＰを入力する第１ＣＰ情報入力処理と、
基底Ｂ＊０の基底ベクトルｂ＊０，ｐ（ｐは所定の値）の係数として値−ｓ０ＫＰ（ｓ０ＫＰ：＝ｈ→ＫＰ・（ｆ→ＫＰ）Ｔ，ｈ→ＫＰ及びｆ→ＫＰはｒＫＰ個の要素を有するベクトル）を設定し、基底ベクトルｂ＊０，ｐ’（ｐ’は前記ｐとは異なる所定の値）の係数として乱数δＣＰを設定し、基底ベクトルｂ＊０，ｑ（ｑは前記ｐ及び前記ｐ’とは異なる所定の値）の係数として所定の値κを設定して要素ｋ＊０を生成する主復号鍵生成処理と、
前記ｆ→ＫＰと、前記第１ＫＰ情報入力処理で入力した行列ＭＫＰに基づき生成される列ベクトル（ｓ→ＫＰ）Ｔ：＝（ｓ１ＫＰ，．．．，ｓｉＫＰ）Ｔ：＝ＭＫＰ・（ｆ→ＫＰ）Ｔ（ｉ＝ＬＫＰ）と、乱数θｉＫＰ（ｉ＝１，．．．，ＬＫＰ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉについての要素ｋ＊ｉＫＰを生成するＫＰ復号鍵生成処理であって、ｉ＝１，．．．，ＬＫＰの各整数ｉについて、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔが示す基底Ｂ＊ｔＫＰの基底ベクトルｂ＊ｔ，１ＫＰの係数としてｓｉＫＰ＋θｉＫＰｖｉ，１ＫＰを設定するとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてθｉＫＰｖｉ，ｉ’ＫＰを設定して要素ｋ＊ｉＫＰを生成し、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＫＰの各整数ｉ’とが示す基底ベクトルｂ＊ｔ，ｉ’ＫＰの係数としてｓｉＫＰｖｉ，ｉ’ＫＰを設定して要素ｋ＊ｉＫＰを生成するＫＰ復号鍵生成処理と、
前記第１ＣＰ情報入力処理で入力した属性集合ΓＣＰに含まれる各識別情報ｔについての要素ｋ＊ｔＣＰを生成するＣＰ復号鍵生成処理であって、基底Ｂ＊ｔＣＰの基底ベクトルｂ＊ｔ，ｉ’ＣＰ（ｉ’＝１，．．．，ｎｔＣＰ）の係数として前記乱数δＣＰ倍したｘｔ，ｉ’ＣＰを設定して要素ｋ＊ｔＣＰを生成するＣＰ復号鍵生成処理と
をコンピュータに実行させ、
前記暗号化プログラムは、
ｔ＝１，．．．，ｄＫＰの少なくとも１つ以上の整数ｔについて、識別情報ｔと、属性ベクトルｘ→ｔＫＰ：＝（ｘｔ，ｉ’ＫＰ）（ｉ’＝１，．．．，ｎｔＫＰ）とを有する属性集合ΓＫＰを入力する第２ＫＰ情報入力処理と、
ｉ＝１，．．．，ＬＣＰ（ＬＣＰは１以上の整数）の各整数ｉについての変数ρＣＰ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄＣＰのいずれかの整数）と、属性ベクトルｖ→ｉＣＰ：＝（ｖｉ，ｉ’ＣＰ）（ｉ’＝１，．．．，ｎｔＣＰ）との肯定形の組（ｔ，ｖ→ｉＣＰ）又は否定形の組¬（ｔ，ｖ→ｉＣＰ）のいずれかである変数ρＣＰ（ｉ）と、ＬＣＰ行ｒＣＰ列（ｒＣＰは１以上の整数）の所定の行列ＭＣＰとを入力する第２ＣＰ情報入力処理と、
基底Ｂ０の基底ベクトルｂ０，ｐの係数として乱数ωＫＰを設定し、基底ベクトルｂ０，ｐ’の係数として値−ｓ０ＣＰ（ｓ０ＣＰ：＝ｈ→ＣＰ・（ｆ→ＣＰ）Ｔ，ｈ→ＣＰ及びｆ→ＣＰはｒＣＰ個の要素を有するベクトル）を設定し、基底ベクトルｂ０，ｑの係数として乱数ζを設定して要素ｃ０を生成する主暗号化データ生成処理と、
前記第２ＫＰ情報入力処理で入力した属性集合ΓＫＰに含まれる各識別情報ｔについての要素ｃｔＫＰを生成するＫＰ暗号化データ生成処理であって、基底ＢｔＫＰの基底ベクトルｂｔ，ｉ’ＫＰ（ｉ’＝１，．．．，ｎｔ）の係数として前記乱数ωＫＰ倍したｘｔ，ｉ’ＫＰを設定して要素ｃｔＫＰを生成するＫＰ暗号化データ生成処理と、
前記ｆ→ＣＰと、前記第２ＣＰ情報入力処理で入力した行列ＭＣＰとに基づき生成される列ベクトル（ｓ→ＣＰ）Ｔ：＝（ｓ１ＣＰ，．．．，ｓｉＣＰ）Ｔ：＝ＭＣＰ・（ｆ→ＣＰ）Ｔ（ｉ＝ＬＣＰ）と、乱数θｉＣＰ（ｉ＝１，．．．，ＬＣＰ）とに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉについての要素ｃｉＣＰを生成するＣＰ暗号化データ生成処理であって、ｉ＝１，．．．，ＬＣＰの各整数ｉについて、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔが示す基底ＢｔＣＰの基底ベクトルｂｔ，１ＣＰの係数としてｓｉＣＰ＋θｉＣＰｖｉ，１ＣＰを設定するとともに、前記識別情報ｔとｉ’＝２，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてθｉＣＰｖｉ，ｉ’ＣＰを設定して要素ｃｉＣＰを生成し、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）である場合には、その組の識別情報ｔとｉ’＝１，．．．，ｎｔＣＰの各整数ｉ’とが示す基底ベクトルｂｔ，ｉ’ＣＰの係数としてｓｉＣＰｖｉ，ｉ’ＣＰを設定して要素ｃｉＣＰを生成するＣＰ暗号化データ生成処理と
をコンピュータに実行させ、
前記復号プログラムは、
前記主暗号化データ生成処理で生成した要素ｃ０と、前記ＫＰ暗号化データ生成処理で生成した要素ｃｔＫＰと、前記ＣＰ暗号化データ生成処理で生成した要素ｃｉＣＰと、前記属性集合ΓＫＰと、前記変数ρＣＰ（ｉ）とを含む暗号化データｃｔ（ΓＫＰ，ＳＣＰ）を取得するデータ取得処理と、
前記主復号鍵生成処理で生成した要素ｋ＊０と、前記ＫＰ復号鍵生成処理で生成した要素ｋ＊ｉＫＰと、前記ＣＰ復号鍵生成処理で生成した要素ｋ＊ｔＣＰと、前記変数ρＫＰ（ｉ）と、前記属性集合ΓＣＰとを含む復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）を取得する復号鍵取得処理と、
前記データ取得処理で取得した暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる属性集合ΓＫＰと、前記復号鍵取得処理で取得した復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる変数ρＫＰ（ｉ）とに基づき、ｉ＝１，．．．，ＬＫＰの各整数ｉのうち、変数ρＫＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０となるｉと、変数ρＫＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＫＰ）であり、かつ、その組のｖ→ｉＫＰと、その組の識別情報ｔが示すΓＫＰに含まれるｘ→ｔＫＰとの内積が０とならないｉとの集合ＩＫＰを特定するとともに、特定した集合ＩＫＰに含まれるｉについて、αｉＫＰＭｉＫＰを合計した場合に前記ｈ→ＫＰとなる補完係数αｉＫＰを計算するＫＰ補完係数計算処理と、
前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれるｉ＝１，．．．，ＬＣＰの各整数ｉについての変数ρＣＰ（ｉ）と、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる属性集合ΓＣＰとに基づき、ｉ＝１，．．．，ＬＣＰの各整数ｉのうち、変数ρＣＰ（ｉ）が肯定形の組（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０となるｉと、変数ρＣＰ（ｉ）が否定形の組¬（ｔ，ｖ→ｉＣＰ）であり、かつ、その組のｖ→ｉＣＰと、その組の識別情報ｔが示すΓＣＰに含まれるｘ→ｔＣＰとの内積が０とならないｉとの集合ＩＣＰを特定するとともに、特定した集合ＩＣＰに含まれるｉについて、αｉＣＰＭｉＣＰを合計した場合に前記ｈ→ＣＰとなる補完係数αｉＣＰを計算するＣＰ補完係数計算処理と、
前記暗号化データｃｔ（ΓＫＰ，ＳＣＰ）に含まれる要素ｃ０と要素ｃｔＫＰと要素ｃｉＣＰと、前記復号鍵ｓｋ（ＳＫＰ，ΓＣＰ）に含まれる要素ｋ＊０と要素ｋ＊ｉＫＰと要素ｋ＊ｔＣＰとについて、前記ＫＰ補完係数計算処理で特定した集合ＩＫＰと、前記ＫＰ補完係数計算処理で計算した補完係数αｉＫＰと、前記ＣＰ補完係数計算処理で特定した集合ＩＣＰと、前記ＣＰ補完係数計算処理で計算した補完係数αｉＣＰとに基づき、数１２に示すペアリング演算を行い値Ｋを計算するペアリング演算処理と
をコンピュータに実行させることを特徴とする暗号処理プログラム。
【数１２】
2012133214.tif 000003