【手続補正書】
【提出日】令和3年8月2日(2021.8.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
【図１】実施の形態１に係る暗号システム１の構成図。
【図２】実施の形態１に係るセットアップ装置１０の構成図。
【図３】実施の形態１に係る暗号化装置２０の構成図。
【図４】実施の形態１に係る鍵生成装置３０の構成図。
【図５】実施の形態１に係る復号装置４０の構成図。
【図６】実施の形態１に係るセットアップ装置１０の動作を示すフローチャート。
【図７】実施の形態１に係る暗号化装置２０の動作を示すフローチャート。
【図８】実施の形態１に係る鍵生成装置３０の動作を示すフローチャート。
【図９】実施の形態１に係るＰＧＢ計算処理を示すフローチャート。
【図１０】実施の形態１に係る復号装置４０の動作を示すフローチャート。
【図１１】実施の形態１に係る復号処理を示すフローチャート。
【図１２】変形例３に係るセットアップ装置１０の構成図。
【図１３】変形例３に係る暗号化装置２０の構成図。
【図１４】変形例３に係る鍵生成装置３０の構成図。
【図１５】変形例３に係る復号装置４０の構成図。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
図２を参照して、実施の形態１に係るセットアップ装置１０の構成を説明する。
セットアップ装置１０は、ＰＨＰＥ．Ｓｅｔｕｐアルゴリズムを実行するコンピュータである。
セットアップ装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
（ステップＳ３３２：関数ρ生成処理）
ＰＧＢ計算部３１３は、ｊ’∈［ｍ］の各整数ｊ’について、行列表現Ｌのｊ’行に変数ｘι’が含まれるなら、ρ（ｊ’）＝ι’と設定することにより、関数ρ：［ｍ］→［ｎ’］を生成する。ＰＧＢ計算部３１３は、関数ρをメモリ３２に書き込む。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
（ステップＳ３３３：定数計算処理）
ＰＧＢ計算部３１３は、数１４９に示すように、ベクトルｒ→を選択する。
【数１４９】
2020056960.tif 000001
ＰＧＢ計算部３１３は、ステップＳ３３１で生成された行列表現Ｌと、ベクトルｒ→とを用いて、数１５０に示すように、定数の集合（｛σｊ｝ｊ∈［ｎ］，｛αｊ’，γｊ’｝ｊ’∈［ｍ］）∈Ｆｑｎ×（Ｆｑ２）ｍを計算する。
【数１５０】
2020056960.tif 000002
これにより、定数の集合（｛σｊ｝ｊ∈［ｎ］，｛αｊ’，γｊ’｝ｊ’∈［ｍ］）が生成される。ＰＧＢ計算部３１３は、定数の集合（｛σｊ｝ｊ∈［ｎ］，｛αｊ’，γｊ’｝ｊ’∈［ｍ］）をメモリ３２に書き込む。この定数の集合（｛σｊ｝ｊ∈［ｎ］，｛α
ｊ’，γｊ’｝ｊ’∈［ｍ］）をＡＢＰの述語ベクトルと呼ぶ。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１３８
【補正方法】変更
【補正の内容】
【０１３８】
１  暗号システム、１０  セットアップ装置、１１  プロセッサ、１２  メモリ、１３
ストレージ、１４  通信インタフェース、１５  電子回路、１１１  受付部、１１２  マスター鍵生成部、１１３  送信部、２０  暗号化装置、２１  プロセッサ、２２  メモ
リ、２３  ストレージ、２４  通信インタフェース、２５  電子回路、２１１  マスター鍵取得部、２１２  ベクトル取得部、２１３  暗号化部、２１４  送信部、３０  鍵生成装置、３１  プロセッサ、３２  メモリ、３３  ストレージ、３４  通信インタフェース、３５  電子回路、３１１  マスター鍵取得部、３１２  関数取得部、３１３  ＰＧＢ計算部、３１４  鍵生成部、３１５  送信部、４０  復号装置、４１  プロセッサ、４２  メモリ、４３  ストレージ、４４  通信インタフェース、４５  電子回路、４１１  マスター鍵取得部、４１２  暗号文取得部、４１３  復号鍵取得部、４１４  復号部、４１５  余因子計算部、４１６  ペアリング演算部、４１７  出力値計算部。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
双対ベクトル空間における双対基底である基底Ｂ及び基底Ｂ＊のうちの基底Ｂに、属性ベクトルと、ＡＢＰ（Ａｒｉｔｈｍｅｔｉｃ  Ｂｒａｎｃｈｉｎｇ  Ｐｒｏｇｒａｍｓ）の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得部と、
前記基底Ｂ＊に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得部と、
前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号部と
を備える復号装置。
【請求項２】
前記述語ベクトルの要素は、関数ｆを計算するＡＢＰを表す行列表現Ｌと、最後の行の要素が１である行列との積によって得られた要素である
請求項１に記載の復号装置。
【請求項３】
前記復号部は、
前記行列表現Ｌの最後の列の要素の余因子を計算する余因子計算部と、
前記暗号文と前記復号鍵とについてペアリング演算を行うことにより演算値を計算するペアリング演算部と、
前記余因子計算部によって計算された前記余因子と、前記ペアリング演算部によって計算された前記演算値とから、前記暗号文を復号して得られる出力値を計算する出力値計算部と
を備える請求項２に記載の復号装置。
【請求項４】
前記出力値計算部は、内積と前記余因子とから、前記関数ｆに前記属性ベクトルを入力した値を計算して、計算された値により前記出力値を計算する
請求項３に記載の復号装置。
【請求項５】
前記暗号文取得部は、数１に示す暗号文ＣＴを取得し、
前記復号鍵取得部は、数２に示す復号鍵ＳＫ（ｆ）を取得し、
前記ペアリング演算部は、数３に示すようにペアリング演算を行うことにより、前記演算値Λ’ｊ，Λｊを計算し、
前記出力値計算部は、数４に示すように値Λを計算して、前記値Λの値に応じて出力値を計算する
請求項４に記載の復号装置。
【数１】
2020056960.tif 000003
【数２】
2020056960.tif 000004
【数３】
2020056960.tif 000005
【数４】
2020056960.tif 000006
【請求項６】
前記暗号文取得部は、数５に示す暗号文ＣＴを取得し、
前記復号鍵取得部は、数６に示す復号鍵ＳＫ（ｆ）を取得し、
前記ペアリング演算部は、数７に示すようにペアリング演算を行うことにより、前記演算値Λ’０，Λ’ｊ，Λｊを計算し、
前記出力値計算部は、数８に示すように値Λを計算して、前記値ΛΛ’０を前記出力値として計算する
請求項４に記載の復号装置。
【数５】
2020056960.tif 000007
【数６】
2020056960.tif 000008
【数７】
2020056960.tif 000009
【数８】
2020056960.tif 000010
【請求項７】
双対ベクトル空間における双対基底である基底Ｂ及び基底Ｂ＊のうちの基底Ｂに、属性ベクトルと、ＡＢＰ（Ａｒｉｔｈｍｅｔｉｃ  Ｂｒａｎｃｈｉｎｇ  Ｐｒｏｇｒａｍｓ）の述語ベクトルとの一方を設定して暗号文を生成する暗号化装置と、
前記基底Ｂ＊に、前記属性ベクトルと前記述語ベクトルとの他方を設定して復号鍵を生成する鍵生成装置と、
前記暗号化装置によって生成された前記暗号文と、前記鍵生成装置によって生成された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号装置と
を備える暗号システム。
【請求項８】
暗号文取得部が、双対ベクトル空間における双対基底である基底Ｂ及び基底Ｂ＊のうちの基底Ｂに、属性ベクトルと、ＡＢＰ（Ａｒｉｔｈｍｅｔｉｃ  Ｂｒａｎｃｈｉｎｇ  Ｐｒｏｇｒａｍｓ）の述語ベクトルとの一方が設定された暗号文を取得し、
復号鍵取得部が、前記基底Ｂ＊に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得し、
復号部が、前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号方法。
【請求項９】
暗号文取得部が、双対ベクトル空間における双対基底である基底Ｂ及び基底Ｂ＊のうちの基底Ｂに、属性ベクトルと、ＡＢＰ（Ａｒｉｔｈｍｅｔｉｃ  Ｂｒａｎｃｈｉｎｇ  Ｐｒｏｇｒａｍｓ）の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得処理と、
復号鍵取得部が、前記基底Ｂ＊に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得処理と、
復号部が、前記暗号文取得処理によって取得された前記暗号文と、前記復号鍵取得処理によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号処理と
を行う復号装置としてコンピュータを機能させる復号プログラム。