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
   359   360   361   362   363   364   365   366   367   368   369