Page 364 - 《软件学报》2025年第9期
P. 364
蒲浪 等: 基于国密 SM9 的公钥认证可搜索加密方案 4275
云服务器
⑤
②
③ ④
①
① ①
数据拥有者 公私钥 可信中心 公私钥 数据使用者
系统参数 数据密文 关键词密文 关键词陷门
图 1 系统模型
系统运行流程如下: ① 可信中心为所有实体分发系统参数. ② DO 首先加密明文数据, 并将其中包含的关键
词提取出来. ③ DO 使用关键词密文算法, 用自己的私钥和 DU 的公钥加密关键词, 随后将关键词密文数据与数据
密文共同上传至云服务器存储. ④ DU 需要检索包含某一关键词数据时, 使用关键词陷门生成算法, 用自己的私钥
和 DO 的公钥生成关键词陷门, 随后将关键词陷门上传至云服务器. ⑤ 云服务器收到关键词陷门后, 使用匹配测
试算法, 若通过匹配测试, 则表明该关键词密文对应的数据为使用者欲检索的内容. 最终, 云服务器将所有通过匹
配测试的数据密文返回给 DU.
PAEKS 方案包括如下 6 个多项式时间算法, 具体每个算法定义如下.
λ
(1) 系统初始化 params ← Setup(1 ). 此算法以系统安全参数 λ 为输入, 生成系统公开参数 params.
(2) 接收方密钥生成 (sk R , pk R ) ← KeyGen R (params). 此算法以 params 为输入, 生成接收方密钥对 (sk R , pk R ).
(3) 发送方密钥生成 (sk S , pk S ) ← KeyGen S (params). 此算法以 params 为输入, 生成发送方密钥对 (sk S , pk S ).
∗ sk S 、接收方公钥
(4) 关键词加密 C w ← PAEKS (w, sk S , pk R , params). 此算法以关键词 w ∈ {0,1} 、发送方私钥
pk R 和参数 params 为输入, 生成关键词密文 C w .
′ ′ ∗ sk R 、发送
(5) 关键词陷门生成 T w ′ ← Trapdoor(w , sk R , pk R , params). 此算法以关键词 w ∈ {0,1} 、接收方私钥
方公钥 pk S 和系统参数 params 为输入, 输出关键词陷门 T w ′ .
(6) 匹配测试 {0/1} ← Test(C w ,T w ′, params). 此算法以关键词密文 C w 、关键词陷门 T w ′ 和系统参数 params 为输
入, 若 C w 和 T w ′ 包含的关键词一致, 则输出 1, 否则输出 0.
2.4 安全模型
本节介绍后文方案安全性证明中使用的安全模型. 设 PAEKS 方案为 PAEKS =(Setup,KeyGen R ,KeyGen S ,PAEKS,
Trapdoor,Test), 由敌手 A 与挑战者 C 之间进行的两个游戏刻画 PAEKS 方案的语义安全, 其中 CI-CKA 游戏定义
了关键词密文不可区分性, TI-CKA 游戏定义了关键词陷门隐私性.
CI-CKA 游戏: 即适应性选择关键词攻击下的关键词密文不可区分性 (ciphertext indistinguishability under the
adaptive chosen keyword attack, CI-CKA), 保证敌手获取合理关键词密文后, 无法获取其中包含的关键词信息, 具体
的游戏定义如下.
λ
(1) 初始化阶段. C 首先运行 Setup(1 ) 算法, 生成系统中的公开参数 params, 然后运行密钥生成算法 KeyGen R
(params) 和 KeyGen S (params), 分别生成接收方公私钥对 (sk R , pk R ) 和发送方公私钥对 (sk S , pk S ), 最终将生成的
(params, pk R , pk S ) 发送给 .
A

