Page 366 - 《软件学报》2025年第9期
P. 366
蒲浪 等: 基于国密 SM9 的公钥认证可搜索加密方案 4277
接收方私钥为 sk R = x, 公钥为 pk R = (xP 1 ,g), 其中 g = e(pk R ,P 2 ). 最终, 算法将公钥公开, 秘密存储私钥.
(3) KeyGen S (params). 本算法以 params 为输入, 生成发送方公私钥对. 首先随机选取 y ∈ Z , 然后计算 yP 1 . 设
∗
N
接收方私钥为 sk S = y, 公钥为 pk S = yP 1 . 最终, 该算法公开公钥, 秘密存储私钥.
(4) PAEKS (w, pk R , sk S ,m). 本算法以关键词 w ∈ {0,1} 、接收方公钥 pk R 、发送方私钥 sk S 、随机比特 m ∈ {0,1} ∗
∗
params 为输入, 生成关键词密文. 具体计算过程如下.
和系统参数
1) 计算 Q w = [H 1 (w||hid||V,N)]P 1 + pk R , 其中 V = [y]pk R .
∗
2) 选取随机数 r ∈ Z , 然后计算 C 1 = [r]Q w .
N
r k 1 为分组加密中密钥的长度, k 2 为消息认证码中密钥长度.
3) 计算 u = g ,klen = k 1 +k 2 , 其中
4) 计算 K = H 2 (C 1 ||u,klen), 令 K 1 为 K 的前 k 1 位, K 2 为剩下的 k 2 位. 若 K 1 全为 0, 则重新选取随机数 r; 否则计
C 2 = Enc(K 1 ,m).
算
5) 计算 C 3 = MAC(K 2 ,C 2 ), 输出关键词密文 C w = C 1 ||C 3 ||C 2 . 最后将 C w 和随机比特 m 发送至云端服务器.
(5) Trapdoor(w , pk S , sk R , params). 本算法以关键词 w ∈ {0,1} 、发送方公钥 pk S 、接收方私钥 sk R 和系统参数
∗
′
′
params 为输入, 生成关键词陷门. 具体计算过程如下.
′ ′ ′ KeyGen R 算法生成公私钥对, 并
1) 首先, 计算 t 1 = H 1 (w ||hid||V ,N)+ x, 其中 V = [x]pk S . 若 t 1 = 0, 则重新执行
更新所有关键词陷门; 否则下一步.
−1
2) 计算 t 2 = x·t , 最终计算并输出关键词陷门 T w ′ = t 2 P 2 .
1
(6) Test(C w ,T w ′, params). 本算法以关键词密文 C w 、关键词陷门 T w ′ 和系统参数 params 为输入, 对二者所含关
键词是否一致进行匹配测试. 具体算法如下.
′
1) 若 C 1 < G 1 , 则终止算法并返回 b = 0 表示匹配测试不通过, 否则计算 u = e(T w ′,C 1 ).
′ k 2 为消息认证码中密钥长度. 令
2) 计算 K = H 2 (C 1 ||u ,klen), klen = k 1 +k 2 , 其中 k 1 为分组加密中密钥的长度,
′
′ k 1 位, ′ K 全为 b = 0; 否则, 下一步.
K 表示 K 的前 K 为剩下的 k 2 位, 若 1 0, 则终止算法并返回
1
2
′ ′ ′ b = 0.
3) 计算 m = Dec(K ,C 2 ), 若 m , m , 则终止算法返回
1
′ ′ ′ ′
4) 计算 C = MAC(K ,C 2 ), 若 C = C 3 , 则返回 b = 1, 表示 w = w , 否则返回 b = 0.
3 2 3
正确性分析: 若接收方可生成合法关键词陷门, 并且关键词密文是有效的且二者所含关键词相同, 那么一定可
C w = C 1 ||C 3 ||C 2 , 关
通过匹配测试算法. 假设接收方、发送方的公私钥分别为 (pk R , sk R ) 和 (pk S , sk S ), 关键词密文为
键词陷门为 T w ′ , 方案的正确性验证如下:
′
u = e(C 1 ,T w ′)
= e(rQ w ,t 2 P 2 )
−1
= e([r ·(H 1 (w||hid,N)+ x)]P 1 ,[x·t ]P 2 ) (6)
1
−1 ′ −1 ′ ′ rx r K = H 2 (C 1 ||u ,
′
分析可知, 因 t = (H 1 (w ||hid,N)+ x) , 当且仅当 w = w 时, 有 u = e(P 1 ,P 2 ) = g = u 成立, 由于
1
′
′
′ k 1 位, ′ ′ ′ C = MAC(K ,C 2 ). 当且仅当
klen),klen = k 1 +k 2 , 令 K 表示 K 的前 K 为剩下的 k 2 位, 有 m = Dec(K ,C 2 ) 及
1 2 1 3 2
w = w 时, m = m, C = C 3 , 则匹配算法 Test 输出 1. 综上, 本方案满足 PAEKS 方案的正确性要求.
′
′
′
3
3.2 安全性分析
本节对 SM9-PAEKS 进行安全性分析与证明, 通过证明如下定理 1, 证得方案具备关键词密文不可区分性和
关键词陷门不可区分性.
定理 1. 若 q-BDHI 和 Gap-q-BCAA1 安全假设成立, 则 SM9-PAEKS 方案具备密文不可分性和陷门隐私性.
上述定理 1 可通过如下两条引理证得, 其中引理 1 证明方案的关键词密文不可区分性, 引理 2 证明方案的关
键词陷门不可区分性.
引理 1. 若 q-BDHI 安全假设成立, 那么 SM9-PAEKS 是 CKA-CI 安全的.
次谕言机后能以不可忽略的优势攻破 SM9-PAEKS 方案的 CKA-CI 安
证明: 假设存在 PPT 敌手 A 询问 q H 1
全性. 则挑战者 C 可通过与 A 交互, 以不可忽略的优势解决 q -BDHI 问题. C 输入 q -BDHI 困难问题实例 (P,Q,aQ,...,

