【手続補正書】
【提出日】平成25年11月25日(2013.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ｄ個（ｄは１以上の整数）の鍵生成装置と、暗号化装置と、復号装置とを備え、ｔ＝１，．．．，ｄの少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理システムであり、
前記ｄ個の鍵生成装置の各鍵生成装置は、
ｔ＝１，．．．，ｄのうち鍵生成装置毎に予め定められた整数ｔについての属性情報ｘ→ｔ：＝（ｘｔ，ｉ）（ｉ＝１，．．．，ｎｔ，ｎｔは１以上の整数）を入力する第１情報入力部と、
前記整数ｔと、前記第１情報入力部が入力した属性情報ｘ→ｔと、所定の値δと、基底Ｂ＊ｔの基底ベクトルｂ＊ｔ，ｉ（ｉ＝１，．．．，２ｎｔ）とに基づき、数１に示すベクトルを含む鍵要素ｋ＊ｔを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素ｋ＊ｔと、前記属性情報ｘ→ｔとを含む復号鍵ｕｓｋを前記復号装置へ送信する復号鍵送信部と
を備え、
前記暗号化装置は、
ｉ＝１，．．．，Ｌ（Ｌは１以上の整数）の各整数ｉについての変数ρ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄのいずれかの整数）と、属性情報ｖ→ｉ：＝（ｖｉ，ｉ’）（ｉ’＝１，．．．，ｎｔ）との肯定形の組（ｔ，ｖ→ｉ）又は否定形の組¬（ｔ，ｖ→ｉ）のいずれかである変数ρ（ｉ）と、Ｌ行ｒ列（ｒは１以上の整数）の所定の行列Ｍとを入力する第２情報入力部と、
ｒ個の要素を有するベクトルｆ→と、前記第２情報入力部が入力した行列Ｍとに基づき列ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔ：＝Ｍ・ｆ→Ｔを生成するとともに、ｓ０：＝ｈ→・ｆ→Ｔとして、ｓ０＝ｈ→・（ｆ→’）Ｔであるｒ個の要素を有するベクトルｆ→’と、前記行列Ｍとに基づき列ベクトル（ｓ→’）Ｔ：＝（ｓ１’，．．．，ｓＬ’）Ｔ：＝Ｍ・（ｆ→’）Ｔを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルｓ→Ｔ及び列ベクトル（ｓ→’）Ｔと、ｉ＝１，．．．，Ｌの各整数ｉについての所定の値θｉ，θｉ’とに基づき、ｉ＝１，．．．，Ｌの各整数ｉについて、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底Ｂｔの基底ベクトルｂｔ，ｉ’（ｉ’＝１，．．．，２ｎｔ）を用いて、数２に示すベクトルを含む暗号要素ｃｉを生成し、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底ベクトルｂｔ，ｉ（ｉ＝１，．．．，２ｎｔ）を用いて、数３に示すベクトルを含む暗号要素ｃｉを生成する暗号要素ｃｉ生成部と、
前記暗号要素ｃｉ生成部が生成したｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、前記変数ρ（ｉ）と、前記行列Ｍとを含む暗号化データｃｔＳを前記復号装置へ送信する暗号化データ送信部と
を備え、
前記復号装置は、
前記ｄ個の鍵生成装置のうち、少なくとも１つ以上の鍵生成装置の前記復号鍵送信部が送信した復号鍵ｕｓｋを受信する復号鍵受信部と、
前記暗号化データ送信部が送信した暗号化データｃｔＳを受信するデータ受信部と、
前記復号鍵受信部が受信した復号鍵ｕｓｋに含まれる属性情報ｘ→ｔと、前記データ受信部が受信した暗号化データｃｔＳに含まれる変数ρ（ｉ）とに基づき、ｉ＝１，．．．，Ｌの各整数ｉのうち、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信部が受信しており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０となるｉと、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信部が受信しており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０とならないｉとの集合Ｉを特定
するとともに、特定した集合Ｉに含まれるｉについて、前記暗号化データｃｔＳに含まれる行列Ｍのｉ行目の要素であるＭｉに基づき、αｉＭｉを合計した場合に所定のベクトルｈ→となる補完係数αｉを計算する補完係数計算部と、
前記補完係数計算部が計算した集合Ｉと補完係数αｉとに基づき、前記暗号化データｃｔＳに含まれる暗号要素ｃｉと、前記復号鍵ｕｓｋに含まれる鍵要素ｋ＊ｔとについて、数４に示すペアリング演算を行い、所定の情報Ｋを計算するペアリング演算部と
を備えることを特徴とする暗号処理システム。
【数１】
2012203182.tif 000001
【数２】
2012203182.tif 000002
【数３】
2012203182.tif 000003
【数４】
2012203182.tif 000004
【請求項２】
前記暗号処理システムは、
ｔ＝１，．．．，ｄの少なくとも１つ以上の整数ｔについて、少なくとも基底ベクトルｂｔ，ｉ（ｉ＝１，．．．，２ｎｔ，．．．，２ｎｔ＋ｕｔ，．．．，２ｎｔ＋ｕｔ＋ｗｔ，．．．，２ｎｔ＋ｕｔ＋ｗｔ＋ｚｔ）（ｕｔ，ｗｔ，ｚｔは１以上の整数）を有する基底Ｂｔと、少なくとも基底ベクトルｂ＊ｔ，ｉ（ｉ＝１，．．．，２ｎｔ，．．．，２ｎｔ＋ｕｔ，．．．，２ｎｔ＋ｕｔ＋ｗｔ，．．．，２ｎｔ＋ｕｔ＋ｗｔ＋ｚｔ）を有する基底Ｂ＊ｔとを用いて暗号処理を実行し、
前記鍵生成装置では、
前記鍵要素生成部は、前記整数ｔについて、前記属性情報ｘ→ｔと、前記所定の値δと、ｉ＝１，．．．，ｗｔの各整数ｉについての乱数φｔ，ｉとに基づき、数５に示す鍵要素ｋ＊ｔを生成し、
前記暗号化装置では、
前記暗号要素ｃｉ生成部は、前記列ベクトルｓ→Ｔ及び前記列ベクトル（ｓ→’）Ｔと、ｉ＝１，．．．，Ｌの各整数ｉについての前記所定の値θｉ，θｉ’と、ｉ＝１，．．．，Ｌの各整数ｉとｉ’＝１，．．．，ｚｔの各整数ｉ’とについての乱数ηｉ，ｉ’とに基づき、ｉ＝１，．．．，Ｌの各整数ｉについて、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）である場合には、数６に示す暗号要素ｃｉを生成し、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）である場合には、数７に示す暗号要素ｃｉを生成する
ことを特徴とする請求項１に記載の暗号処理システム。
【数５】
2012203182.tif 000005
【数６】
2012203182.tif 000006
【数７】
2012203182.tif 000007
【請求項３】
前記暗号化装置は、さらに、
所定の整数ｉについて前記基底Ｂｔの基底ベクトルｂｔ，ｉと前記基底Ｂ＊ｔの基底ベクトルｂ＊ｔ，ｉとについてペアリング演算をして計算される値ｇＴと、前記ｓ０とに基づき、メッセージｍを暗号化した数８に示す暗号要素ｃｄ＋１を生成する暗号要素ｃｄ＋１生成部
を備え、
前記暗号化データ送信部は、前記暗号要素ｃｉと、前記暗号要素ｃｄ＋１生成部が生成した暗号要素ｃｄ＋１とを含む暗号化データｃｔを前記復号装置へ送信し、
前記復号装置は、さらに、
前記ペアリング演算部が計算した所定の情報Ｋで、前記暗号要素ｃｄ＋１を除して、前記メッセージｍを計算するメッセージ計算部
を備えることを特徴とする請求項１に記載の暗号処理システム。
【数８】
2012203182.tif 000008
【請求項４】
ｔ＝１，．．．，ｄ（ｄは１以上の整数）の少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵ｕｓｋを生成する鍵生成装置であり、
ｔ＝１，．．．，ｄのうち予め定められた整数ｔについての属性情報ｘ→ｔ：＝（ｘｔ，ｉ）（ｉ＝１，．．．，ｎｔ，ｎｔは１以上の整数）を入力する第１情報入力部と、
前記整数ｔと、前記第１情報入力部が入力した属性情報ｘ→ｔと、所定の値δと、基底Ｂ＊ｔの基底ベクトルｂ＊ｔ，ｉ（ｉ＝１，．．．，２ｎｔ）とに基づき、数９に示すベクトルを含む鍵要素ｋ＊ｔを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素ｋ＊ｔと、前記属性情報ｘ→ｔとを含む復号鍵ｕｓｋを復号装置へ送信する復号鍵送信部と
を備えることを特徴とする鍵生成装置。
【数９】
2012203182.tif 000009
【請求項５】
ｔ＝１，．．．，ｄ（ｄは１以上の整数）の少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データｃｔＳを生成する暗号化装置であり、
ｉ＝１，．．．，Ｌ（Ｌは１以上の整数）の各整数ｉについての変数ρ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄのいずれかの整数）と、属性情報ｖ→ｉ：＝（ｖｉ，ｉ’）（ｉ’＝１，．．．，ｎｔ，ｎｔは１以上の整数）との肯定形の組（ｔ，ｖ→ｉ）又は否定形の組¬（ｔ，ｖ→ｉ）のいずれかである変数ρ（ｉ）と、Ｌ行ｒ列（ｒは１以上の整数）の所定の行列Ｍとを入力する第２情報入力部と、
ｒ個の要素を有するベクトルｆ→と、前記第２情報入力部が入力した行列Ｍとに基づき列ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔ：＝Ｍ・ｆ→Ｔを生成するとともに、ｓ０：＝ｈ→・ｆ→Ｔとして、ｓ０＝ｈ→・（ｆ→’）Ｔであるｒ個の要素を有するベクトルｆ→’と、前記行列Ｍとに基づき列ベクトル（ｓ→’）Ｔ：＝（ｓ１’，．．．，ｓＬ’）Ｔ：＝Ｍ・（ｆ→’）Ｔを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルｓ→Ｔ及び列ベクトル（ｓ→’）Ｔと、ｉ＝１，．．．，Ｌの各整数ｉについての所定の値θｉ，θｉ’とに基づき、ｉ＝１，．．．，Ｌの各整数ｉについて、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底Ｂｔの基底ベクトルｂｔ，ｉ’（ｉ’＝１，．．．，２ｎｔ）を用いて、数１０に示すベクトルを含む暗号要素ｃｉを生成し、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底ベクトルｂｔ，ｉ（ｉ＝１，．．．，２ｎｔ）を用いて、数１１に示すベクトルを含む暗号要素ｃｉを生成する暗号要素ｃｉ生成部と、
前記暗号要素ｃｉ生成部が生成したｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、前記変数ρ（ｉ）と、前記行列Ｍとを含む暗号化データｃｔＳを復号装置へ送信する暗号化データ送信部と
を備えることを特徴とする暗号化装置。
【数１０】
2012203182.tif 000010
【数１１】
2012203182.tif 000011
【請求項６】
ｔ＝１，．．．，ｄ（ｄは１以上の整数）の少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データｃｔＳを復号鍵ｕｓｋで復号する復号装置であり、
ｔ＝１，．．．，ｄのうち少なくとも一部の整数ｔについて、属性情報ｘ→ｔ：＝（ｘｔ，ｉ）（ｉ＝１，．．．，ｎｔ，ｎｔは１以上の整数）と、数１２に示すベクトルを含むように生成された鍵要素ｋ＊ｔとを含む復号鍵ｕｓｋを受信する復号鍵受信部と、
ｉ＝１，．．．，Ｌ（Ｌは１以上の整数）の各整数ｉについての変数ρ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄのいずれかの整数）と、属性情報ｖ→ｉ：＝（ｖｉ，ｉ’）（ｉ’＝１，．．．，ｎｔ）との肯定形の組（ｔ，ｖ→ｉ）又は否定形の組¬（ｔ，ｖ→ｉ）のいずれかである変数ρ（ｉ）と、Ｌ行ｒ列（ｒは１以上の整数）の所定の行列Ｍと、ｉ＝１，．．．，Ｌの各整数ｉについて数１３に示すベクトルを含むように生成された暗号要素ｃｉとを含む暗号化データｃｔＳを受信するデータ受信部と、
前記復号鍵受信部が受信した復号鍵ｕｓｋに含まれる属性情報ｘ→ｔと、前記データ受信部が受信した暗号化データｃｔＳに含まれる変数ρ（ｉ）とに基づき、ｉ＝１，．．．，Ｌの各整数ｉのうち、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信部が受信しており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０となるｉと、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信部が受信しており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０とならないｉとの集合Ｉを特定するとともに、特定した集合Ｉに含まれるｉについて、前記暗号化データｃｔＳに含まれる行列Ｍのｉ行目の要素であるＭｉに基づき、αｉＭｉを合計した場合に所定のベクトルｈ→となる補完係数αｉを計算する補完係数計算部と、
前記補完係数計算部が計算した集合Ｉと補完係数αｉとに基づき、前記暗号化データｃｔＳに含まれる暗号要素ｃｉと、前記復号鍵ｕｓｋに含まれる鍵要素ｋ＊ｔとについて、数１４に示すペアリング演算を行い、所定の情報Ｋを計算するペアリング演算部と
を備えることを特徴とする復号装置。
【数１２】
2012203182.tif 000012
【数１３】
2012203182.tif 000013
【数１４】
2012203182.tif 000014
【請求項７】
ｔ＝１，．．．，ｄ（ｄは１以上の整数）の少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理方法であり、
複数の鍵生成装置のうち少なくとも１つ以上の鍵生成装置が、ｔ＝１，．．．，ｄのうち鍵生成装置毎に予め定められた整数ｔについての属性情報ｘ→ｔ：＝（ｘｔ，ｉ）（ｉ＝１，．．．，ｎｔ，ｎｔは１以上の整数）を入力する第１情報入力工程と、
前記１つ以上の鍵生成装置が、前記整数ｔと、前記第１情報入力工程で入力された属性情報ｘ→ｔと、所定の値δと、基底Ｂ＊ｔの基底ベクトルｂ＊ｔ，ｉ（ｉ＝１，．．．，２ｎｔ）とに基づき、数１５に示すベクトルを含む鍵要素ｋ＊ｔを生成する鍵要素生成工
程と、
前記１つ以上の鍵生成装置が、前記鍵要素生成工程で生成された鍵要素ｋ＊ｔと、前記属性情報ｘ→ｔとを含む復号鍵ｕｓｋを復号装置へ送信する復号鍵送信工程と、
暗号化装置が、ｉ＝１，．．．，Ｌ（Ｌは１以上の整数）の各整数ｉについての変数ρ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄのいずれかの整数）と、属性情報ｖ→ｉ：＝（ｖｉ，ｉ’）（ｉ’＝１，．．．，ｎｔ）との肯定形の組（ｔ，ｖ→ｉ）又は否定形の組¬（ｔ，ｖ→ｉ）のいずれかである変数ρ（ｉ）と、Ｌ行ｒ列（ｒは１以上の整数）の所定の行列Ｍとを入力する第２情報入力工程と、
前記暗号化装置が、ｒ個の要素を有するベクトルｆ→と、前記第２情報入力工程で入力された行列Ｍとに基づき列ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔ：＝Ｍ・ｆ→Ｔを生成するとともに、ｓ０：＝ｈ→・ｆ→Ｔとして、ｓ０＝ｈ→・（ｆ→’）Ｔであるｒ個の要素を有するベクトルｆ→’と、前記行列Ｍとに基づき列ベクトル（ｓ→’）Ｔ：＝（ｓ１’，．．．，ｓＬ’）Ｔ：＝Ｍ・（ｆ→’）Ｔを生成するベクトル生成工程と、
前記暗号化装置が、前記ベクトル生成工程で生成された列ベクトルｓ→Ｔ及び列ベクトル（ｓ→’）Ｔと、ｉ＝１，．．．，Ｌの各整数ｉについての所定の値θｉ，θｉ’とに基づき、ｉ＝１，．．．，Ｌの各整数ｉについて、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底Ｂｔの基底ベクトルｂｔ，ｉ’（ｉ’＝１，．．．，２ｎｔ）を用いて、数１６に示すベクトルを含む暗号要素ｃｉを生成し、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底ベクトルｂｔ，ｉ（ｉ＝１，．．．，２ｎｔ）を用いて、数１７に示すベクトルを含む暗号要素ｃｉを生成する暗号要素ｃｉ生成工程と、
前記暗号化装置が、前記暗号要素ｃｉ生成工程で生成されたｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、前記変数ρ（ｉ）と、前記行列Ｍとを含む暗号化データｃｔＳを前記復号装置へ送信する暗号化データ送信工程と、
前記復号装置が、前記複数の鍵生成装置のうち、前記少なくとも１つ以上の鍵生成装置の前記復号鍵送信工程で送信された復号鍵ｕｓｋを受信する復号鍵受信工程と、
前記暗号化データ送信工程で送信された暗号化データｃｔＳを受信するデータ受信工程と、
前記復号装置が、前記復号鍵受信工程で受信された復号鍵ｕｓｋに含まれる属性情報ｘ→ｔと、前記データ受信工程で受信された暗号化データｃｔＳに含まれる変数ρ（ｉ）とに基づき、ｉ＝１，．．．，Ｌの各整数ｉのうち、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信工程で受信されており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０となるｉと、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信工程で受信されており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０とならないｉとの集合Ｉを特定するとともに、特定した集合Ｉに含まれるｉについて、前記暗号化データｃｔＳに含まれる行列Ｍのｉ行目の要素であるＭｉに基づき、αｉＭｉを合計した場合に所定のベクトルｈ→となる補完係数αｉを計算する補完係数計算工程と、
前記復号装置が、前記補完係数計算工程で計算された集合Ｉと補完係数αｉとに基づき、前記暗号化データｃｔＳに含まれる暗号要素ｃｉと、前記復号鍵ｕｓｋに含まれる鍵要素ｋ＊ｔとについて、数１８に示すペアリング演算を行い、所定の情報Ｋを計算するペアリング演算工程と
を備えることを特徴とする暗号処理方法。
【数１５】
2012203182.tif 000015
【数１６】
2012203182.tif 000016
【数１７】
2012203182.tif 000017
【数１８】
2012203182.tif 000018
【請求項８】
ｄ個（ｄは１以上の整数）の鍵生成装置で動作させる鍵生成プログラムと、暗号化装置で動作させる暗号化プログラムと、復号装置で動作させる復号プログラムとを備え、ｔ＝１，．．．，ｄの少なくとも１つ以上の整数ｔについての基底Ｂｔと基底Ｂ＊ｔとを用いて暗号処理を実行する暗号処理プログラムであり、
前記鍵生成プログラムは、
ｔ＝１，．．．，ｄのうち鍵生成装置毎に予め定められた整数ｔについての属性情報ｘ→ｔ：＝（ｘｔ，ｉ）（ｉ＝１，．．．，ｎｔ，ｎｔは１以上の整数）を入力する第１情報入力処理と、
前記整数ｔと、前記第１情報入力処理で入力された属性情報ｘ→ｔと、所定の値δと、基底Ｂ＊ｔの基底ベクトルｂ＊ｔ，ｉ（ｉ＝１，．．．，２ｎｔ）とに基づき、数１９に示すベクトルを含む鍵要素ｋ＊ｔを生成する鍵要素生成処理と、
前記鍵要素生成処理で生成された鍵要素ｋ＊ｔと、前記属性情報ｘ→ｔとを含む復号鍵ｕｓｋを前記復号装置へ送信する復号鍵送信処理と
をコンピュータに実行させ、
前記暗号化プログラムは、
ｉ＝１，．．．，Ｌ（Ｌは１以上の整数）の各整数ｉについての変数ρ（ｉ）であって、識別情報ｔ（ｔ＝１，．．．，ｄのいずれかの整数）と、属性情報ｖ→ｉ：＝（ｖｉ，ｉ’）（ｉ’＝１，．．．，ｎｔ）との肯定形の組（ｔ，ｖ→ｉ）又は否定形の組¬（ｔ，ｖ→ｉ）のいずれかである変数ρ（ｉ）と、Ｌ行ｒ列（ｒは１以上の整数）の所定の行列Ｍとを入力する第２情報入力処理と、
ｒ個の要素を有するベクトルｆ→と、前記第２情報入力処理で入力された行列Ｍとに基づき列ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔ：＝Ｍ・ｆ→Ｔを生成するとともに、ｓ０：＝ｈ→・ｆ→Ｔとして、ｓ０＝ｈ→・（ｆ→’）Ｔであるｒ個の要素を有するベクトルｆ→’と、前記行列Ｍとに基づき列ベクトル（ｓ→’）Ｔ：＝（ｓ１’，．．．，ｓＬ’）Ｔ：＝Ｍ・（ｆ→’）Ｔを生成するベクトル生成処理と、
前記ベクトル生成処理で生成された列ベクトルｓ→Ｔ及び列ベクトル（ｓ→’）Ｔと、ｉ＝１，．．．，Ｌの各整数ｉについての所定の値θｉ，θｉ’とに基づき、ｉ＝１，．．．，Ｌの各整数ｉについて、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底Ｂｔの基底ベクトルｂｔ，ｉ’（ｉ’＝１，．．．，２ｎｔ）を用いて、数２０に示すベクトルを含む暗号要素ｃｉを生成し、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）である場合には、その組の識別情報ｔが示す基底ベクトルｂｔ，ｉ（ｉ＝１，．．．，２ｎｔ）を用いて、数２１に示すベクトルを含む暗号要素ｃｉを生成する暗号要素ｃｉ生成処理と、
前記暗号要素ｃｉ生成処理で生成されたｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、前記変数ρ（ｉ）と、前記行列Ｍとを含む暗号化データｃｔＳを前記復号装置へ送信する暗号化データ送信処理と
をコンピュータに実行させ、
前記復号プログラムは、
前記復号鍵送信処理で送信された復号鍵ｕｓｋを受信する復号鍵受信処理と、
前記暗号化データ送信処理で送信された暗号化データｃｔＳを受信するデータ受信処理と、
前記復号鍵受信処理で受信された復号鍵ｕｓｋに含まれる属性情報ｘ→ｔと、前記データ受信処理で受信された暗号化データｃｔＳに含まれる変数ρ（ｉ）とに基づき、ｉ＝１，．．．，Ｌの各整数ｉのうち、変数ρ（ｉ）が肯定形の組（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信処理で受信されており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０となるｉと、変数ρ（ｉ）が否定形の組¬（ｔ，ｖ→ｉ）であり、かつ、その組の識別情報ｔが示すｘ→ｔを含む復号鍵ｕｓｋを前記復号鍵受信処理で受信されており、かつ、その組のｖ→ｉと、その組の識別情報ｔが示す属性情報ｘ→ｔとの内積が０とならないｉとの集合Ｉを特定するとともに、特定した集合Ｉに含まれるｉについて、前記暗号化データｃｔＳに含まれる行列Ｍのｉ行目の要素であるＭｉに基づき、αｉＭｉを合計した場合に所定のベクトルｈ→となる補完係数αｉを計算する補完係数計算処理と、
前記補完係数計算処理で計算された集合Ｉと補完係数αｉとに基づき、前記暗号化データｃｔＳに含まれる暗号要素ｃｉと、前記復号鍵ｕｓｋに含まれる鍵要素ｋ＊ｔとについて、数２２に示すペアリング演算を行い、所定の情報Ｋを計算するペアリング演算処理と
をコンピュータに実行させることを特徴とする暗号処理プログラム。
【数１９】
2012203182.tif 000019
【数２０】
2012203182.tif 000020
【数２１】
2012203182.tif 000021
【数２２】
2012203182.tif 000022