Page 365 - 《软件学报》2025年第9期
P. 365
4276 软件学报 2025 年第 36 卷第 9 期
(2) 询问阶段 1. 此阶段, A 可适应性地选取关键词 w ∈ {0,1} , 并向 C 进行如下两种询问.
∗
C C 运行
1) 关键词密文询问 . A 发送关键词给 , PAEKS (sk S , pk R ,w, params) 算法生成关键词 w 的密文
O C w C w
并发送给 A.
∗
C
2) 关键词陷门询问 O T w . A 发送 w ∈ {0,1} 给 , 然后 C 运行 Trapdoor(sk R , pk s ,w, params) 算法生成关键词 w 的
陷门 T w 并发送给 A.
(3) 挑战阶段. A 可以决定何时结束上述询问阶段 1, 随后选取两个挑战关键词 w ,w ∈ {0,1} , 此处限制条件
∗
∗
∗
0 1
∗
∗
为 |w | = |w | 且挑战关键词没有在询问阶段 1 中被询问过. C 收到挑战关键词后, 随机选取 b ∈ {0,1}, 然后运行加密
0 1
∗ A.
算法 PAEKS (w , sk S , pk R , params) 生成挑战关键词密文 C w ∗ , 最后发送给
b b
(4) 询问阶段 2. 此阶段, A 可继续向 C 进行同询问阶段 1 的询问, 但是此处限制其询问的关键词 w ∈ {0,1} 不
∗
∗
∗
能为挑战关键词, 即 w < {w ,w }.
0 1
(5) 猜测. 最终, A 输出 b ∈ {0,1} 作为对 b 的猜测. 若 b = b, 则 A 赢得 CI-CKA 游戏, 否则失败.
′
′
定义上述游戏中, A 赢得游戏的优势为:
1
′
Adv CI-CKA (λ) = Pr[b = b]− (4)
A,PAEKS 2
定义 4. 若任意 PPT 敌手 A 赢得上述游戏的优势是可忽略的, 即 Adv CI-CKA (λ) ⩽ negl(λ), 则该 PAEKS 方案满
A,PAEKS
足关键词密文不可区分性.
TI-CKA 游戏: 即适应性选择关键词攻击下的关键词陷门不可区分性 (trapdoor indistinguishability under the
adaptive chosen keyword attack, TI-CKA), 满足此安全性可保证在 PAEKS 方案中, 即便是内部敌手 A (通常为诚实
但好奇的云端服务器) 获取合理关键词陷门后, 也无法获取其中包含的关键词信息, 具体游戏定义如下.
初始化阶段: 此阶段与 CKA-CI 游戏中的初始化阶段一致.
询问阶段 1: 此阶段与 CKA-CI 游戏中的询问阶段 1 一致.
挑战阶段: A 决定结束上述询问阶段 1 后, 随即选取挑战关键词 w ,w ∈ {0,1} , 此处 |w | = |w | 并且挑战关键
∗
∗
∗
∗
∗
1
0
1
0
词没有在询问阶段 1 中被询问过. C 收到挑战关键词后, 随机选取 b ∈ {0,1}, 然后运行陷门生成算法 Trapdoor
∗
A
(w b , sk R , pk S , params) 生成挑战关键词陷门 T w ∗ 并发送给 .
b
询问阶段 2: 与 CKA-CI 游戏中的询问阶段 2 一致, 但此处限制其询问的关键词 w ∈ {0,1} 不能为挑战关键词,
∗
w < {w ,w }.
∗
∗
即 0 1
′
猜测: 最终, A 输出 b ∈ {0,1} 作为对 b 的猜测. 若 b = b, 则 A 赢得此 TI-CKA 游戏, 否则失败.
′
定义上述游戏中, A 赢得游戏的优势为:
′
1
Adv TI-CKA (λ) = Pr[b = b]− (5)
A,PAEKS
2
定义 5. 若任意 PPT 敌手 A 赢得上述游戏的优势是可忽略的, 即 Adv TI-CKA (λ) ⩽ negl(λ), 则该 PAEKS 方案满
A,PAEKS
足关键词陷门不可区分性.
3 基于 SM9 的公钥认证可搜索加密方案
3.1 方案描述
基于 SM9 的公钥认证可搜索加密方案具体构造如下.
λ
(1) Setup(1 ). 本算法以安全参数 λ 为输入, 生成系统中的公开参数. 首先选取双线性对群 BP = (G 1 ,G 2 ,G T ,N,
e
e,P 1 ,P 2 ), 其中 G 1 ,G 2 ,G T 为素 N 阶循环群, 为双线性映射, P 1 ,P 2 分别为群 G 1 ,G 2 的生成元, 且存在从 G 2 到 G 1 的
∗ ∗ ∗ klen klen 为
同态映射 ψ 使得 ψ(P 2 ) = P 1 . 随后选取哈希函数 H 1 : {0,1} → Z , 密钥派生函数 H 2 : {0,1} → {0,1} , 其中
N
SM9 中使用对称加密的密钥长度. 然后确定消息认证码函数 MAC. 此外, 选取 8 比特表示的私钥生成函数标识符
hid. 最终, 该算法输出系统参数 params = (BP,hid, H 1 ,H 2 , MAC).
(2) KeyGen R (params). 本算法以 params 为输入, 生成接收方公私钥对. 首先随机选取 x ∈ Z , 然后计算 xP 1 . 设
∗
N

