Processing math: 3%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于用户重购行为的产品推荐方法

耿杰, 刘春丽, 魏雪梅, 程明月, 袁昆, 李洋, 刘业政

耿杰, 刘春丽, 魏雪梅, 程明月, 袁昆, 李洋, 刘业政. 基于用户重购行为的产品推荐方法[J]. 计算机研究与发展, 2023, 60(8): 1795-1807. DOI: 10.7544/issn1000-1239.202330263
引用本文: 耿杰, 刘春丽, 魏雪梅, 程明月, 袁昆, 李洋, 刘业政. 基于用户重购行为的产品推荐方法[J]. 计算机研究与发展, 2023, 60(8): 1795-1807. DOI: 10.7544/issn1000-1239.202330263
Geng Jie, Liu Chunli, Wei Xuemei, Cheng Mingyue, Yuan Kun, Li Yang, Liu Yezheng. Product Recommendation Method Based on User Repurchase Behavior[J]. Journal of Computer Research and Development, 2023, 60(8): 1795-1807. DOI: 10.7544/issn1000-1239.202330263
Citation: Geng Jie, Liu Chunli, Wei Xuemei, Cheng Mingyue, Yuan Kun, Li Yang, Liu Yezheng. Product Recommendation Method Based on User Repurchase Behavior[J]. Journal of Computer Research and Development, 2023, 60(8): 1795-1807. DOI: 10.7544/issn1000-1239.202330263
耿杰, 刘春丽, 魏雪梅, 程明月, 袁昆, 李洋, 刘业政. 基于用户重购行为的产品推荐方法[J]. 计算机研究与发展, 2023, 60(8): 1795-1807. CSTR: 32373.14.issn1000-1239.202330263
引用本文: 耿杰, 刘春丽, 魏雪梅, 程明月, 袁昆, 李洋, 刘业政. 基于用户重购行为的产品推荐方法[J]. 计算机研究与发展, 2023, 60(8): 1795-1807. CSTR: 32373.14.issn1000-1239.202330263
Geng Jie, Liu Chunli, Wei Xuemei, Cheng Mingyue, Yuan Kun, Li Yang, Liu Yezheng. Product Recommendation Method Based on User Repurchase Behavior[J]. Journal of Computer Research and Development, 2023, 60(8): 1795-1807. CSTR: 32373.14.issn1000-1239.202330263
Citation: Geng Jie, Liu Chunli, Wei Xuemei, Cheng Mingyue, Yuan Kun, Li Yang, Liu Yezheng. Product Recommendation Method Based on User Repurchase Behavior[J]. Journal of Computer Research and Development, 2023, 60(8): 1795-1807. CSTR: 32373.14.issn1000-1239.202330263

基于用户重购行为的产品推荐方法

基金项目: 国家自然科学基金项目(72271084,72071069)
详细信息
    作者简介:

    耿杰: 1993年生. 博士. 主要研究方向为推荐系统、电子商务和数据挖掘

    刘春丽: 1989年生. 博士,讲师,硕士生导师. 主要研究方向为推荐系统、金融科技和数据挖掘

    魏雪梅: 1995年生. 博士. 主要研究方向为推荐系统、社交网络和数据挖掘

    程明月: 1993年生. 博士. 主要研究方向为推荐系统、表示学习和数据挖掘

    袁昆: 1991年生,博士,讲师,硕士生导师. 主要研究方向为推荐系统、商务智能和社交网络分析

    李洋: 1986年生. 博士,助理教授. 主要研究方向为数据挖掘、电子商务新兴技术和社交媒体分析

    刘业政: 1965年生. 博士,教授,博士生导师. 主要研究方向为推荐系统、商务智能和网络空间管理

    通讯作者:

    刘春丽(liuchunli@hfut.edu.cn

  • 中图分类号: TP391

Product Recommendation Method Based on User Repurchase Behavior

Funds: This work was supported by the National Natural Science Foundation of China (72271084, 72071069).
More Information
    Author Bio:

    Geng Jie: born in 1993. PhD. Her main research interests include recommendation system, e-commerce, and data mining

    Liu Chunli: born in 1989. PhD, lecturer, master supervisor. Her main research interests include recommendation system, financial technology, and data mining

    Wei Xuemei: born in 1995. PhD. Her main research interests include recommendation system, social network, and data mining

    Cheng Mingyue: born in 1993. PhD. His main research interests include recommendation system, representation learning, and data mining

    Yuan Kun: born in 1991. PhD, lecturer, master supervisor. His main research interests include recommendation system, business intelligence, and social network analysis

    Li Yang: born in 1986. PhD, assistant professor. His main research interests include data mining, emerging technologies in e-commerce, and social media analysis

    Liu Yezheng: born in 1965. PhD, professor, PhD supervisor. His main research interests include recommendation system, business intelligence, and cyberspace management

  • 摘要:

    重复购买是消费者日常消费决策中的常见现象,考虑用户重购行为对于提升产品个性化推荐准确性至关重要. 然而针对用户重购行为建模和预测的研究工作相对较少,还有很多问题有待解决. 已有推荐技术主要通过深度挖掘产品、用户或时间某一层面信息来进行重购产品推荐,忽略了对多层次信息融合建模方法的研究,同时也忽略了重购推荐结果的可解释性需求. 因此,融合多层次用户偏好信息,构建了具有双层注意力机制的可解释用户重复消费推荐方法. 该方法融合注意力机制和指针生成网络,多层次提取并学习用户重购偏好,同时基于信息处理理论构建S型用户重购动态偏好函数,融合产品流行度信息进行重购产品和新颖产品的混合推荐,提高了模型可解释性和准确性. 真实数据集上的实验结果表明,所提方法在多个性能指标上都优于对比方法, 且学习出的参数具备较好的可解释性. 此外,通过回归分析验证了S型重购动态偏好函数的可信性,进一步增强了理论的可解释性.

    Abstract:

    Repeat purchase is a common phenomenon in daily consumption decisions, and is crucial for improving the accuracy of personalized product recommendations. However, there is limited research on modeling and predicting user repurchase behaviors. Many issues need to be studied. It is notable that most of existing methods only optimize product, basket or time series level information for repurchase recommendation. They not only ignore the modeling of multi-level information fusion, but also ignore the interpretability requirement for repurchase recommendation results. To address the above issues, we propose a novel interpretable repurchase recommendation method based on dual attention mechanism. Our method combines attention mechanism and pointer generation network to extract multi-level user repurchase preference. We also propose an S-type user repurchase dynamic preference function based on information processing theory and integrate product popularity information for mixed recommendation of repurchase and new products, which improves the interpretability and recommendation accuracy of our method. The experimental results on two real world datasets show that our proposed method outperforms baselines in multiple performance indicators and the learned parameters have good interpretability. In addition, regression studies demonstrate the reliability of our S-type repurchase dynamic preference function, which further enhances the interpretability of our method from a theoretical perspective.

  • 云计算的快速发展带动了云存储的普及,越来越多的用户和企业选择将数据存储在云服务器中[1]. 云服务器通常由不可信第三方维护和管理,存在诸多安全隐患. 如果将数据直接存储在云端,可能会使数据被未授权实体访问,从而导致隐私泄露. 一种保护数据隐私和实现安全数据共享的方式是采用公钥加密算法将数据加密后再存储到云服务器[2],但这种方式极大地阻碍了数据的可用性. 当用户对存储在云服务器的加密数据进行搜索时,最直接的方法是将所有加密数据下载到本地后执行解密再对明文信息进行搜索,显然这种方法极其繁琐且低效.

    为了解决数据机密性和可搜索性之间的矛盾,Boneh等人[3]提出了支持关键词检索的公钥加密的概念. 在PKEKS系统中,发送者利用接收者的公钥和关键词生成关键词密文,并附在对应的文件密文后上传到云服务器. 接收者可以利用自己的私钥和关键词生成陷门上传至云服务器,随后云服务器利用陷门对关键词密文执行检索以判断关键词密文是否包含陷门中嵌入的关键词. 由于在检测过程中云服务器无法获取密文对应的关键词信息以及接收者私钥. 大量的PKEKS方案被提出以进一步提升公钥可搜索加密的安全性[4-5]、效率[6-7]和功能[8]. 尽管PKEKS支持对于密文的搜索功能,但其存在功能上的限制:无法对不同公钥加密的2条信息进行检索. 同时还存在着严重的安全隐患:关键词空间远小于密钥空间,攻击者可以借此实施关键词猜测攻击.

    为了解决上述问题,Yang等人[9]在2010年提出了支持等式测试的公钥加密(public-key encryption with equality test, PKEET)方案. PKEET允许任何用户对不同公钥加密生成的密文进行对比以判断其中是否包含相同的明文. 由于对比的密文空间远大于密钥空间,关键词猜测攻击无法对PKEET系统生效. 受Yang等人[9]的启发,国内外学者围绕PKEET的授权测试[10-11]、通用构造[12]和应用场景(无证书[13]、签密[14]、异构[15])等展开大量研究,一系列具有等式测试功能的加密方案被陆续提出. 在传统支持等式测试的公钥加密方案中,公钥是一个不可读的字符串,需要公钥基础设施[16](public key infrastructure, PKI)系统来签发公钥证书以绑定用户的身份与公钥. 公钥证书包括用户的身份信息、权威机构的签名和各种参数,以结构化数据的形式存储. 这种复杂且昂贵的证书管理方式在实际应用场景中带来了棘手的证书管理问题. 基于此,Ma[17]受标识密码体制思想启发[18],构造了支持等式测试的标识加密(identity-based encryption with equality test,IBEET)体制. 在IBEET中,用户的公钥根据其身份信息生成,而用户的私钥由私钥生成中心(private key generator,PKG)构建.

    目前已有的IBEET方案虽然避免了证书管理的问题,却存在着严重的安全隐患:大部分IBEET方案都难以抵抗渗透攻击. 斯诺登事件表明[19],攻击者可以在正常使用条件下秘密设置后门以泄露用户隐私. 受此启发,Bellare 等人[20]提出的算法篡改攻击 (algorithm-substitution attacks,ASA)表明攻击者可以非法占据用户的个人设备来篡改加密算法,从被篡改的密文中获取明文信息. 具体来说,Bellare 等人[20]构建了颠覆加密(subverting encryption)框架,对ASA的受害者实施IV篡改攻击(IV-replacement attacks)和偏密文攻击(the biased-ciphertext attack). 攻击者利用颠覆密钥篡改随机化输入IV,继而跟踪篡改密文以获取明文. 目前大量的无状态随机化密码算法被证明几乎无法抵抗这类ASA. 因此,一旦用户遭遇ASA,云服务器上的所有加密数据都有被泄露的风险. 考虑到ASA的危害性,密码逆向防火墙(cryptographic reverse firewalls,CRF)的概念由Mironov等人[21]在斯诺登事件之后提出. CRF可以被认为是部署在用户与外部世界的一个实体,通过重随机化用户发送和接收的信息将其映射到与原始输出相同的空间中,达到抵抗隐私泄露的作用. CRF具有3个性质:维持功能性、保留安全性和抵抗渗透性. 到目前为止,CRF已被成功应用于密钥协商协议[22]、基于属性的加密体制[23]和基于签名的不经意电子信封[24]. 将CRF部署在云服务器与用户之间,分别负责用户密文与陷门的重随机化. 由于用户输出的是重随机化结果,即便算法遭到篡改,用户隐私也不会泄露. 基于此,有必要为IBEET构建CRF.

    另外,目前IBEET都是基于国外密码算法设计且存在计算与通信开销大的问题,还没有出现支持国产商用密码算法的高效等式测试方案. SM9作为一种具有效率优势的双线性对标识密码算法(identity-based cryptographic algorithm),可以良好地拓展至IBEET领域中. 2016年我国国家密码管理局正式发布SM9密码算法,其相关标准为“GM/T 0044—2016 SM9标识密码算法”. SM9标识密码算法主要包括4个部分:数字签名算法、密钥交换协议、密钥封装机制和标识加密算法. 其中SM9标识加密算法于2021年正式成为国标(ISO/IEC 18033-5:2015/AMD 1:2021). 虽然SM9在密码技术和网络安全领域占据越来越重要的地位,但关于SM9在云环境安全下的研究却寥寥无几. 因此,为了实现我国密码算法国产自主,提高其在信息安全领域的核心竞争力,亟需推进国密算法在云计算场景中的研究应用. 基于此,本文提出了一种支持等式测试并具有密码逆向防火墙的SM9标识加密方案(SM9 identity-based encryption scheme with equality test and cryptographic reverse firewalls,SM9-IBEET-CRF). 本文的贡献有3点:

    1) 本文将SM9标识加密算法应用于等式测试这一密码学原语,提出了支持等式测试的SM9标识密码方案(SM9 identity-based encryption scheme with equality test,SM9-IBEET). 利用SM9是标识密码算法这一性质,避免了传统等式测试算法中证书管理的问题. 与传统IBEET方案相比,具有更强的安全性和计算开销的优势. 同时,丰富国产商用密码算法在云计算领域的研究.

    2) 解决传统IBEET体制难以抵抗渗透攻击的问题. 本文将CRF部署在用户与云服务器之间的上行信道,分别实现用户密文、陷门的重随机化. 攻击者即使非法占据用户设备,由于其输出结果要经过CRF的处理,无法造成明文信息泄露.

    3) 本文实现了形式化的安全性证明. 严谨的安全性分析证明其满足选择密文攻击下的不可区分性(IND-CCA)和选择密文攻击下的单向性(OW-CCA). CRF的设置使其具备抵抗算法篡改攻击的能力. 经过大量的实验仿真证明,SM9-IBEET-CRF在计算与通信开销上具有一定的优势,适用于云计算场景. 相关工作有:

    1) 支持等式测试的公钥加密体制. 支持等式测试的公钥加密方案首先由Yang等人[9]在2010年提出. 该方案允许任何用户对不同公钥加密的密文进行比较,解决了关键词检索公钥加密方案的局限性. 接下来,Tang[25]为PKEET提出了具有细粒度的授权机制,以确保只有被授权的用户才有能力执行等式测试. 此外,Tang[10]提出了混合粒度授权的支持等式测试的公钥加密方案(all-or-nothing PKE-ET,AoN-PKE-ET)来实现粗细粒度授权. 然而,在实际中云服务器与用户需要交互来授权,导致了方案的不可拓展性. 为应对这一挑战,Tang[26]和Ma[11]分别提出了带有灵活授权机制的等式测试方案,其基本思想是用户单独对云服务器进行授权. 为了解决PKEET中的密钥管理问题,Ma[17]将标识加密体制集成到PKEET中,提出一种IBEET方案. Qu等人[13]提出的无证书等式测试加密方案(certificateless-based encryption with equality test,CLEET),旨在同时避免密钥托管和证书管理的问题.Wang等人[14]将签密的概念引入等式测试中,有效降低了计算和通信开销. Xiong等人[15]提出的异构签密等式测试方案(heterogeneous signcryption scheme with equality test,HSC-ET),则实现了IBE与PKE的异构等式测试系统. 目前已有的PKEET体制难以抵抗渗透攻击.

    2) 密码逆向防火墙. 斯诺登事件爆发后,为了保护用户隐私和维持密码方案安全性,Mironov等人[21]提出CRF的概念. CRF位于用户计算机与外部世界之间,通过修改用户设备输入和输出,为受到篡改算法攻击的用户提供安全保护. 2016年,Dodis等人[22]设计了一种具有逆向防火墙的消息传输协议,缩短公钥交换轮数至4轮. 同年,Chen等人[24]基于可延展的平滑映射哈希函数(smooth projective Hash function,SPHF)为多个密码协议设计了CRF框架. 2018年,Ma等人[23]将逆向防火墙的概念引入属性基加密体制,提出了一种基于密文在线/离线属性的加密算法. 2019年,Zhou等人[27]提出具有逆向防火墙的标识加密体制(identity-based encryption with cryptographic reverse firewalls,IBE-CRF),为IBE设计了2种CRF方案. 目前还不存在具有逆向防火墙的PKEET方案.

    给定3个循环群G1,G2,GT,它们的阶均为素数NP1G1的生成元,P2G2的生成元,存在非对称双线性对e:G1×G2GT,满足3个条件:

    1) 双线性. 对任意PG1,QG2,a,bZN,有e([a]P,[b]Q)=e(P,Q)ab.

    2) 非退化性. e(P1,P2)1.

    3) 可计算性. 对任意PG1,QG2,存在有效的算法计算e(P,Q).

    BDH假设首先由Boneh等人[28]在对称双线性配对中提出,然后被拓展到非对称双线性对中. 本文使用Boyen等人[29]在非对称双线性对中推广的BDH假设.

    1)BDH问题. 给定(P1,P2,[a]P1,[a]P2,[b]Pi,[c]Pj),其中a,b,cZNi,j{1,2},计算e(P1,P2)abc是困难的.

    2)BDH假设. 给定一个BDH问题实例,不存在一个PPT攻击者A具有不可忽略的优势计算出e(P1,P2)abc. 其中A的优势被定义为

    Pr[A(P1,P2,[a]P1,[a]P2,[b]Pi,[c]Pj)=e(P1,P2)abc].

    CRF位于用户计算机与外部实体之间,只能修改用户的输入输出消息. 对于用户而言,他们并不知道CRF的存在.

    CRF是一种具有状态的算法W,它以当前状态和消息作为输入,输出更新后的状态和消息. 对于初始状态为σ的参与方P=(receive,next,output)和逆向防火墙W,它们的组成被定义为

    WP=(receiveWP(σ,m))= receiveP(σ,W(m))=nextWP=W(nextP(σ))=outputWP(σ)= outputP(σ).

    当组成方WP参与协议时,W的状态被初始化为系统公开参数params,如果W是与参与方P共同组成的,则我们称W为参与方P的逆向防火墙.

    显然,参与方P希望获得管理并部署多台防火墙的权力. 这种多个防火墙的组合(WWWP)只会增强系统的安全性,而不会破坏其初始协议的功能.

    定义1. CRF具有维持功能性. 对任意逆向防火墙W与参与方P,令W1P = WP,当任意多项式边界k时,令 {\mathcal{W}^k}^\circ P{\text{ = }}\mathcal{W}^\circ ({\mathcal{W}^{k - 1}}^\circ P{\text{)}} . 在 k \geqslant 1 的协议 \mathcal{P} 中,如果 {\mathcal{W}^k}^\circ P 维持了参与方 {P_i} 的功能 \mathcal{F} ,也就是说当 \left( {{\mathcal{W}^k}^\circ {P_i}{\text{ = }}\mathcal{W}^\circ {P_i}} \right) \cap \left( {{\mathcal{F}_{\mathcal{W}^\circ {P_i}}} = {\mathcal{F}_{{P_i}}}} \right) = 1 时,CRF具有维持功能性.

    定义2. CRF具有保留安全性. 对满足安全性 \mathcal{S} ,功能 \mathcal{F} 的协议 \mathcal{P} 与逆向防火墙 \mathcal{W}

    1) 对于任意改变协议功能 \mathcal{F} 的PPT攻击者 P_\mathcal{A}^* ,如果协议 {\mathcal{P}_{P \Rightarrow \mathcal{W}^\circ P_{\mathcal{A}}^*}} 仍满足安全性 \mathcal{S} ,则称CRF对于协议参与方P具有强保留安全性.

    2) 对于任意不改变协议功能 \mathcal{F} 的PPT攻击者 \hat P ,如果协议 {\mathcal{P}_{P \Rightarrow \mathcal{W}^\circ \hat P}} 仍满足安全性 \mathcal{S} ,则称CRF对于协议参与方P具有弱保留安全性.

    当PPT攻击者 P_\mathcal{A}^* 破坏协议功能 \mathcal{F} 时,由于协议参与方P 可以很快感知到这种破坏,在云计算场景中攻击效果较差,是一种罕见的攻击方式. 因此,本文主要证明CRF对于不破坏协议功能的ASA安全性.

    定义3. CRF具有抵抗渗透性.CRF具有阻止参与方P对消息篡改泄露的能力. 使用Mironov等人[21]定义的泄露游戏 LEAK(\mathcal{P},P,J,\mathcal{W},\lambda ) ,如图1所示: \mathcal{P} 代表密码协议,P为协议正常参与方,J代表被敌手控制的协议参与方, \mathcal{W} 为逆向防火墙, \lambda 表示系统参数. P_\mathcal{A}^*,P_\mathcal{B}^* 代表被敌手控制的协议参与方, {\sigma _{P_\mathcal{B}^*}} 为协议运行后 P_\mathcal{B}^* 的状态,敌手在游戏LEAK中的优势被定义为

    图  1  LEAK示意图
    Figure  1.  Illustration of LEAK

    1) 对于任意改变协议功能 \mathcal{F} 的PPT攻击者 P_\mathcal{A}^* ,其优势 Adv_{\mathcal{A}. \mathcal{W}}^{LEAK}(\lambda ) 是可以忽略不计的,则称CRF对于协议参与方P具有强抵抗渗透性.

    2) 对于任意不改变协议功能 \mathcal{F} 的PPT攻击者 {\hat P_\mathcal{A}} ,其优势 Adv_{\mathcal{A}. \mathcal{W}}^{LEAK}(\lambda ) 是可以忽略不计的,则称CRF对于协议参与方P具有弱抵抗渗透性.

    与定义2相同,本文主要讨论CRF对于不破坏协议功能的ASA安全性.

    本节我们给出了本文方案的系统模型SMP-IBEET-CRF、形式化定义,并且通过考虑3种不同的敌手来定义安全模型.

    系统模型如图2所示,在SM9-IBEET-CRF中,存在5种实体.

    图  2  SM9-IBEET-CRF示意图
    Figure  2.  Illustration of SM9-IBEET-CRF

    1) 数据上传者. 生成密文并将其上传到云服务器的实体.

    2) 数据接收者. 可以从云服务器下载密文并解密,或者可以委托云服务器执行等式测试的实体.

    3) 云服务器. 存储密文,在收到用户请求后可以执行等式测试但无法解密的实体.

    4) 密钥生成中心(KGC). 为用户秘密地生成并且分配密钥的实体.

    5) 密码逆向防火墙(CRF). 部署在用户(数据上传者和数据接收者)与云服务器的上行信道中,重随机化用户密文与陷门,再发送给云服务器的实体.

    KGC初始化系统,根据用户的身份来生成其私钥,并秘密传输给用户. 数据上传者计算接收者的公钥来生成密文,然后上传到云服务器. 密文在上传过程中会受到CRF的重随机化处理,而数据上传者并不知道有这个过程. 在任何时候,数据接收者都可以从云服务器下载密文,并使用KGC生成的私钥来解密数据. 当接收者想要测试其存储在云服务器的密文时,可以利用自己的私钥计算出陷门并将其发送给云服务器进行测试,但是并没有给云服务器提供解密的能力. 陷门在上传过程中会受到CRF的重随机化处理,而数据接收者不会知道有这个过程.

    SM9-IBEET-CRF方案由8个算法组成.

    1) 系统建立 Setup. 输入安全参数k,KGC 运行该算法并生成系统公开参数params和系统主密钥,包括消息空间.

    2) 私钥提取 KeyExtract. 输入系统公开参数params、用户ID以及主私钥s,KGC 运行该算法生成用户身份所对应的私钥d.

    3) 陷门生成 Trapdoor. 输入用户ID以及用户私钥d,输出对应的陷门 td .

    4) 加密 Encrypt. 输入明文M和用户ID,输出密文C.

    5) 重随机化密文 ReEncrypt. 输入密文C,CRF运行该算法输出对应的重随机化密文 C' .

    6) 密文解密 Decrypt. 输入密文C、用户ID和用户私钥 d ,解密输出明文M.

    7) 重随机化陷门 ReTrapdoor. 输入陷门td,CRF运行该算法输出对应的重随机化陷门 td' .

    8) 等式测试 Test. 分别输入 I{D_A} 对应的密文 {C_A} 和陷门 t{d_A} I{D_B} 对应的密文 {C_B} 和陷门 t{d_B} ,云服务器执行等式测试,若 {C_A} {C_B} 的内容为相同的明文,则输出1,否则输出0.

    根据IBEET的安全模型,SM9-IBEET需要考虑3种类型的敌手.

    1) Ⅰ型敌手. 这类敌手没有目标用户的陷门,不能执行等式测试,其目的是在2个挑战密文中做区分. 我们针对这种类型的敌手定义了IBE-IND-CCA安全游戏Game 1.

    安全游戏Game 1中让 {\mathcal{A}_1} 表示Ⅰ型敌手,挑战者 \mathcal{C} {\mathcal{A}_1} 按如下顺序进行游戏:

    ①系统建立 Setup.挑战者 \mathcal{C} 执行系统建立Setup算法生成系统参数params和主私钥对. \mathcal{C} 保存主私钥对并将params发送给 {\mathcal{A}_1} .

    ② 阶段1. {\mathcal{A}_1} 可以自适应地执行查询:

    i)公钥查询. 当接收到身份为IDi的公钥询问时, \mathcal{C} 通过运用主私钥对计算,生成公钥 {Q_i} 并发送给 {\mathcal{A}_1} .

    ii)私钥查询. 当接收到身份为IDi的公钥询问时, \mathcal{C} 通过执行私钥提取算法KeyExtract生成私钥 {d_i} 并发送给 {\mathcal{A}_1} .

    iii)解密查询. 当接收到身份为IDi以及密文 C 的密钥解密询问时, \mathcal{C} 执行密文解密算法Decrypt生成明文M并返回给 {\mathcal{A}_1} .

    ③挑战. 敌手 {\mathcal{A}_1} 将身份ID*以及消息 M_0^*,M_1^* (二者长度相同)发送给 \mathcal{C} ,且在阶段1,ID*对应的私钥没有被询问到,则 \mathcal{C} 随机选取 \rho \in \{ 0,1\} ,并且计算 {C^*} = Encrypt({M_\rho },{d^*},I{D^*}) 并发送给 {\mathcal{A}_1} .

    ④阶段2. {\mathcal{A}_1} 像在阶段1一样发出询问,但是ID*对应的私钥以及密文 {C^*} 不可以被询问到.

    ⑤ 猜测. {\mathcal{A}_1} 输出 \rho ' \in \{ 0,1\} .

    定义4. 如果对于任意多项式时间攻击者 {\mathcal{A}_1} ,在IND-CCA游戏中的优势 Ad{v}_{\text{SM9-IBEET,Type-І}}^{\text{IBE-IND-CCA}}({\mathcal{A}}_{1})=\left|2Pr\left[\rho = {\rho }^{\prime }\right] -1\right| 都是可忽略的,则SM9-IBEET方案是满足IBE-IND-CCA安全的.

    2)Ⅱ型敌手. 这类敌手拥有目标用户密文的陷门,因此可以执行挑战密文的等式测试,其目的是为了揭示挑战密文对应的消息. 我们针对这种类型的敌手定义了IBE-OW-CCA安全游戏Game 2.

    安全游戏Game 2中让 {\mathcal{A}_2} 表示Ⅱ型敌手,挑战者 \mathcal{C} {\mathcal{A}_2} 按如下顺序进行游戏:

    ①系统建立 Setup. 挑战者 \mathcal{C} 执行系统建立Setup算法生成系统参数params和主私钥对. \mathcal{C} 保存主私钥对并将params发送给 {\mathcal{A}_2} .

    ②阶段1. {\mathcal{A}_2} 可以自适应地执行查询:

    i)公钥查询. 当接收到身份为IDi的公钥询问时, \mathcal{C} 通过运用主私钥对计算,生成公钥 {Q_i} 并发送给 {\mathcal{A}_2} .

    ii)私钥查询. 当接收到身份为IDi的公钥询问时, \mathcal{C} 通过执行私钥提取算法KeyExtract生成私钥 {d_i} 并发送给 {\mathcal{A}_2} .

    iii)陷门查询. 当接收到身份为IDi的陷门询问时, \mathcal{C} 通过执行陷门生成算法Trapdoor生成陷门 t{d_i} 并发送给 {\mathcal{A}_2} .

    iv)解密查询. 当接收受到身份为IDi以及密文 C 的密钥解密询问时, \mathcal{C} 执行密文解密算法Decrypt生成明文M并返回给 {\mathcal{A}_2} .

    ③挑战. 敌手 {\mathcal{A}_2} 将身份ID*发送给 \mathcal{C} ,且在阶段1,ID*对应的私钥没有被询问到. 则 \mathcal{C} 随机选取消息 M_{}^* ,计算 {C^*} = Encrypt({M^*},{d^*},I{D^*}) 并发送给 {\mathcal{A}_2} .

    ④阶段2. {\mathcal{A}_2} 像在阶段1一样发出询问,但是ID*对应的私钥、陷门以及密文 {C^*} 不可以被询问到.

    ⑤猜测. {\mathcal{A}_2} 输出 M' .

    定义5. 如果对于任意多项式时间攻击者 {\mathcal{A}_2} ,在IBE-OW-CCA游戏中的优势 Ad{v}_{\text{SM9-IBEET,Type-П}}^{\text{IBE-OW-CCA}}({\mathcal{A}}_{2})= \Big|Pr\Big[{M}^{*}= {M}^{\prime }\Big]\Big| 都是可忽略的,则SM9-IBEET方案是满足IBE-OW-CCA安全的.

    为证明CRF的部署带来的ASA安全性,SM9-IBEET-CRF还需考虑Ⅲ型敌手.

    3) Ⅲ型敌手. 其具备ASA能力,在保持算法功能不变的前提下,可以替换除了CRF重随机化以外的算法,然后对系统发起攻击. 针对这种类型的敌手,我们可以证明CRF的部署没有改变原SM9-IBEET的功能与安全性,同时增强了ASA安全性. 基于此,我们定义了ASA安全游戏Game 3.

    安全游戏Game 3中让 {\mathcal{A}_3} 表示Ⅲ型敌手,挑战者 \mathcal{C} {\mathcal{A}_3} 按如下顺序进行游戏.

    ① 篡改阶段. {\mathcal{A}_3} 选择一些篡改的算法Setup*KeyExtract*Encrypt*Decrypt*Trapdoor*Test*发送给 \mathcal{C} \mathcal{C} 收到后用篡改算法来替换自己的原始算法.

    ②系统建立 Setup.挑战者 \mathcal{C} 执行系统建立Setup*算法生成系统参数params和主私钥对. \mathcal{C} 保存主私钥对并将params发送给 {\mathcal{A}_3} .

    ③阶段1. {\mathcal{A}_3} 可以自适应地执行查询:

    i) 公钥查询. 当接受到身份为IDi的公钥询问时, \mathcal{C} 通过运用主私钥对计算,生成公钥 {Q_i} 并发送给 {\mathcal{A}_3} .

    ii)私钥查询. 当接受到身份为IDi的公钥询问时, \mathcal{C} 执行私钥提取算法KeyExtract*生成私钥di并发送给 {\mathcal{A}_3} .

    iii) 陷门查询. 当接受到身份为IDi的陷门询问时, \mathcal{C} 执行陷门生成算法Trapdoor*生成陷门tdi,然后运行陷门重随机化算法ReTrapdoor生成陷门 t{d_i} 的重随机化陷门 t{d'_i} 并发送给 {\mathcal{A}_3} .

    iv) 解密查询. 当接受到身份为IDi以及密文 C 的密钥解密询问时, \mathcal{C} 执行密文解密算法Decrypt*生成明文并返回给 {\mathcal{A}_3} .

    ④挑战. 敌手 {\mathcal{A}_3} 将身份ID*以及消息 M_0^*,M_1^* (二者长度相同)发送给 \mathcal{C} ,且在阶段1,ID*对应的私钥没有被询问到,则 \mathcal{C} 随机选取 \rho \in \{ 0,1\} ,并且计算 {C^*} = Encrypt^*({M_\rho },{d^*},I{D^*}) ,然后再计算 C^{*'} = ReEncrypt({C^*}) 并发送给 {\mathcal{A}_3} .

    ⑤阶段2. {\mathcal{A}_3} 像在阶段1一样发出询问,但是ID*对应的私钥以及密文 {C^*},C^{*'} 不可以被询问到.

    ⑥猜测. {\mathcal{A}_3} 输出 \rho ' \in \{ 0,1\} .

    定义6. 如果对于任意多项式时间攻击者 {\mathcal{A}_3} ,在ASA游戏中的优势 Ad{v}_{\text{SM9ET-CRF}}^{\text{ASA,Type-Ш}}({\mathcal{A}}_{3})=\left|2Pr\left[\rho ={\rho }^{\prime }\right]-1\right| 都是可忽略的,则SM9-IBEET-CRF方案是满足ASA安全的.

    本文方案由8个算法组成,具体构造过程介绍如下.

    1) 系统建立 Setup.

    ① 初始化系统,输出系统参数 params =\Big\langle {{G_1}}, \Big. \Big. {{G_2},{G_T},e,{P_1},{P_2},{P_{{\text{pub}}1}},{P_{{\text{pub}}2}},KDF,MAC,EUC} \Big\rangle . 其中 e 为双线性对映射 e:{G_1} \times {G_2} \to {G_T} G_{1} G_ { 2} 的阶均为 N P_1 G_{1} 的生成元, P_2 G_{ 2 } 的生成元. 消息空间 \mathcal{M} \in {\{ 0,1\} ^*} ,用户的身份 id \in {\{ 0,1\} ^*} 均为比特串.

    ② KGC随机选取 s,s' \in [1,N - 1] 作为主私钥对 (s,s') ,并计算主公钥 {P_{{\text{pub1}}}} = [s]{P_1} {P_{{\text{pub2}}}} = [s']{P_1} .

    ③ 获取KGC公布的5个哈希函数: {H_1}:{\{ 0,1\} ^*} \to \mathbb{Z}_N^* {H_2}:{G_T} \to {G_{\text{2}}} {H_3}:{G_{\text{1}}} \to {\{ 0,1\} ^*} {H_4}:{\{ 0,1\} ^*} \to {G_2} {H_5}:{G_T} \to {\{ 0,1\} ^*} .

    ④ 使用SM9规定的密钥派生函数 KDF(Z,klen) ,输入比特串 Z 、非负整数 klen ,输出长度为 klen 的密钥数据比特串 K .

    ⑤消息认证码函数 MAC({K_2},Z) . 输入为比特长度 {K_2}\_len 的密钥 {K_2} ,比特串消息 Z . 其作用是防止消息数据 Z被非法篡改.

    ⑥ 拓展欧几里得函数 EUC(r) . 输入 r \in [1,N - 1] ,运行拓展欧几里得算法计算输出r的逆元.

    2) 私钥提取 KeyExtract. 输入系统公开参数params、用户身份 I{D_A} 和主私钥对s,KGC 按①~③方式生成 I{D_A} 的私钥 {d_A}

    ① 在有限域 {F_N} 上计算 {t_1} = {H_1}(I{D_A}) + s ,若 {t_1} = 0 则需要重新产生主私钥;

    ② 否则,计算 {t_2} = st_1^{ - 1} {t'_2} = s't_1^{ - 1}

    ③ 然后计算 {d_A} = ({d_{A1}},{d_{A2}}) ,此处的 (s,s') 是主私钥对,即

    {d_{A1}} = [{t_2}]{P_2} = [s{({H_1}(I{D_A}) + s)^{ - 1}}]{P_2} \text{,}
    {d_{A2}} = [{t'_2}]{P_2} = [s'{({H_1}(I{D_A}) + s)^{ - 1}}]{P_2} .

    3) 陷门生成 Trapdoor. 输入用户身份 I{D_A} ,私钥 {d_A} . 输出陷门 t{d_A} = [{t'_2}]{P_2} .

    4) 加密 Encrypt. 输入系统公开参数params、用户身份 I{D_A} ,运算生成用户公钥 {Q_A} . 对于消息长度为mlen比特的比特串 M \in {\{ 0,1\} ^*} mlen为密钥 {K_1} 的比特长度, {K_2}\_len MAC({K_2},Z) 中密钥 {K_2} 的比特长度,过程运算有:

    {Q_A} = [{H_1}(I{D_A})]{P_1} + {P_{{\text{pub1}}}}

    ② 随机选取 {r_1},{r_2} \in [1,N - 1]

    {C_1} = [{r_1}]{Q_A}

    g = e({P_{{\text{pub1}}}},{P_2})

    w = {g^{{r_1}}}

    ⑥ 计算 {K_1} , {K_2}

    i) klen = mlen + {K_2}\_len

    ii) {K_1}||{K_2} = KDF({H_3}({C_1})||{H_5}(w)||I{D_A},klen)

    {C_2} = M \oplus {K_1}

    {C_3} = MAC({K_2},{C_2})

    {C_4} = [{r_2}]{H_4}(M){H_2}(e{({P_{{\text{pub2}}}},[{r_1}]{P_2})^{{r_2}}})

    {C_5} = [{r_2}]{P_1}

    {C_6} = [{r_1}{r_2}]{Q_A}

    ⑫ 输出 C = ({C_1},{C_2},{C_3},{C_4},{C_5},{C_6}) 作为密文.

    5) 重随机化密文 ReEncrypt. CRF收到密文 C = ({C_1},{C_2},{C_3},{C_4},{C_5},{C_6}) 后,随机选取 {r_3} \in [1,N - 1] ,然后计算 C 的重随机化密文 C' = ({C_1},{C_2},{C_3},{C_4}, {C_5},[{r_3}]{C_6}) ,并发送给云服务器.

    6) 解密 Decrypt. 输入 C' = ({C_1},{C_2},{C_3},{C_4},{C_5},{C'_6}) ,私钥 {d_A} = ({d_{A1}},{d_{A2}}) 和用户身份 I{D_A} .

    ① 验证 {C_1} \in {G_1} ,若不成立则无法解密;

    w' = e({C_1},{d_{A1}})

    klen = mlen + {K_2}\_len

    {K'_1}||{K'_2} = KDF({H_3}({C_1})||{H_5}(w')||I{D_A},klen )

    M' = {C_2} \oplus {K'_1}

    ⑥ 若 {C_3} \ne MAC({K'_2},{C_2}) ,则解密失败,密文完整性有误;

    ⑦ 输出 M' 作为消息的明文.

    7) 重随机化陷门 ReTrapdoor. 输入陷门 td ,CRF运行 EUC({r_3}) 生成 {r_3} 的逆元 {r_4} \in [1,N - 1] ,计算 td 的重随机化陷门 td' = [{r_4}]td = [{r_4}{t'_2}]{P_2} .

    8)等式测试 Test. 输入2个用户的密文 {C'_\alpha } = ({C_{1,\alpha }}, {C_{2,\alpha }},{C_{3,\alpha }},{C_{4,\alpha }},{C_{5,\alpha }},{C'_{6,\alpha }}) {C'_\beta } = ({C_{1,\;\beta }},{C_{2,\;\beta }},{C_{3,\;\beta }},{C_{4,\;\beta }},{C_{5,\;\beta }}, {C'_{6,\;\beta }}) 和2个陷门 t{d'_\alpha } , t{d'_\beta } ,然后按3个步骤进行测试.

    {X_\alpha } = \dfrac{{{C_{4,\alpha }}}}{{{H_2}\left( {e\left( {{{C'}_{6,\alpha }},t{{d'}_\alpha }} \right)} \right)}}

    {X_\beta } = \dfrac{{{C_{4,\;\beta }}}}{{{H_2}\left( {e\left( {{{C'}_{6,\;\beta }},t{{d'}_\beta }} \right)} \right)}}

    ③ 若 e({C_{\alpha ,5}},{X_\beta }) = e({C_{\beta ,5}},{X_\alpha }) ,则 {M_\alpha } = {M_\beta } .

    本节首先对SM9-IBEET进行正确性分析.

    1) 验证密文解密过程的正确性

    采用用户私钥d以及密文消息 C = ({C_1},{C_2}, {C_3}, {C_4},{C_5},{C_6}) 来验证:

    \begin{split} {{M'}_\alpha } =& {C_{2,\alpha }} \oplus KDF({H_3}({C_{1,\alpha }})||{H_5}(e({C_{1,\alpha }},{d_{1,\;\beta }}))||I{D_\beta },klen) =\\ & {C_{2,\alpha }} \oplus KDF({H_3}({C_{1,\alpha }})||{H_5}({w_{1,\alpha }})||I{D_\beta },klen) =\\ & {C_{2,\alpha }} \oplus {{K'}_{1,\;\beta }}, \\ \end{split}

    其中 {K'_{1,\;\beta }} KDF函数结果左边的mlen比特.

    2) 计算消息认证码函数

    u = MAC({K'_{2,\;\beta }},{C_{2,\alpha }}) {K'_{2,\;\beta }} KDF 函数结果右边的 {K_2}\_len 比特).

    u = {C_{3,\alpha }} ,则消息认证完整性的结果通过,解密结果正确,输出明文 {M'_\alpha } .

    3) 验证等式测试计算结果的正确性

    第1层计算的安全性如下所示,采用用户的陷门以及部分密文验证:

    \begin{split}{X}_{\alpha }=&\frac{{C}_{4,\alpha }}{{H}_{2}\left(e\left({C}_{6,\alpha },t{d}_{\alpha }\right)\right)} =\\&\frac{\left[{r}_{2,\alpha }\right]{H}_{4}(M){H}_{2}\left(e{\left({P}_{\text{pub2}},\left[{r}_{1,\alpha }\right]{P}_{2}\right)}^{{r}_{2,\alpha }}\right)}{{H}_{2}\left(e\left(\left[{r}_{1,\alpha }\right]\left[{r}_{2,\alpha }\right]\left[{t}_{1,\alpha }\right]{P}_{1},\left[{{t}^{\prime }}_{2,\alpha }^{}\right]{P}_{2}\right)\right)}=\\&[{r}_{2,\alpha }]{H}_{4}({M}_{\alpha }),\end{split}
    \begin{split} {X_\beta } =& \frac{{{C_{4,\;\beta }}}}{{{H_2}\left( {e\left( {{C_{6,\;\beta }},t{d_\beta }} \right)} \right)}} =\\& \frac{{\left[ {{r_{2,\;\beta }}} \right]{H_4}(M){H_2}\left( {e{{\left( {{P_{{\mathrm{pub}}2}},\left[ {{r_{1,\;\beta }}} \right]{P_2}} \right)}^{{r_{2,\;\beta }}}}} \right)}}{{{H_2}\left( {e\left( {\left[ {{r_{1,\;\beta }}} \right]\left[ {{r_{2,\;\beta }}} \right]\left[ {{t_{1,\;\beta }}} \right]{P_1},\left[ {t_{2,\;\beta }^\prime } \right]{P_2}} \right)} \right)}} = \\&[{r_{2,\;\beta }}]{H_4}({M_\beta }). \\ \end{split}

    第2层计算的正确性分析如下所示,带入第1层中计算的中间结果:

    \begin{split} e({C_{5,\alpha }},{X_\beta }) =& e([{r_{2,\alpha }}]{P_2},[{r_{2,\;\beta }}]{H_4}({M_\beta })) =\\& e{({P_2},{H_4}({M_\beta }))^{{r_{2,\alpha }},{r_{2,\;\beta }}}}, \\ e({C_{5,\;\beta }},{X_\alpha }) =& e([{r_{2,\;\beta }}]{P_2},[{r_{2,\alpha }}]{H_4}({M_\alpha })) = \\&e{({P_2},{H_4}({M_\alpha }))^{{r_{2,\alpha }},{r_{2,\;\beta }}}}. \\ \end{split}

    {M_\alpha } = {M_\beta } ,则等式测试的结果成立.

    定理1. 假定嵌入的BDH困难问题是不可破解的猜想成立,则表示本文提出的支持等式测试的SM9算法是IBE-IND-CCA安全的.

    证明. 假设存在无法获取目标用户陷门且不能任意执行等式测试的Ⅰ型敌手 {\mathcal{A}_1} ,其攻击目的是破坏所提方案的语义安全,也即在安全游戏中对挑战密文进行区分. 如果敌手 {\mathcal{A}_1} 可以成功破坏本文方案,则存在挑战者 \mathcal{C} 能够以不可忽略的优势解决BDH困难问题. 给定 ({P_1},{P_2},[a]{P_1},[a]{P_2},[b]{P_1},[c]{P_1}) ,其中 a,b,c \in \mathbb{Z}_N^* \mathcal{C} 的目标是计算出 e{({P_1},{P_2})^{abc}} . \mathcal{C} {\mathcal{A}_1} 的挑战过程有7个.

    1) 初始化.

    \mathcal{C} 随机选取 \kappa \in \left\{ {1,2, … ,{q_{{H_1}}}} \right\} {N_\kappa } \in \mathbb{Z}_N^* 以及 {\tau _1}, {\tau _2}, … , {\tau _{\kappa - 1}},{\tau _{\kappa + 1}}, … ,{\tau _N} \in \mathbb{Z}_N^* {q_{{H_1}}} 代表的是查询随机预言机 {\mathcal{H}_1} 的次数,对 i = 1,2, … ,\kappa - 1,\kappa + 1, … ,N ,计算 {N_i} = {N_\kappa } - {\tau _i} 并保存. {P_1},{P_2} 分别为群 {G_1},{G_2} 的生成元,通过使用文献[30]的方法, \mathcal{C} 随机选取 \gamma \in [1,N - 1] ,对 i \in \{ 1,2, … ,N\} \backslash \{ \kappa \} \mathcal{C} 可以获得 N - 1 个数值对 \left( {{\tau _i},\left( {1/\gamma - {\tau _i}} \right)} \right) ,计算 {P_{{\text{pub1}}}} = \left( {\gamma - {N_\kappa }} \right){P_1} ,令 {P_{{\text{pub2}}}} = a{P_1} . 得到公共参数 params = \left\langle {{G_1},{G_2},{G_T},e,} \right. \left. {{P_1},{P_2},{P_{{\text{pub1}}}},{P_{{\text{pub2}}}}, MAC} \right\rangle ,并将其发送给 {\mathcal{A}_1} .

    \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_1}}},{\mathcal{L}_{{\mathcal{H}_2}}}{\mathcal{L}_{{\mathcal{H}_3}}},{\mathcal{L}_{{\mathcal{H}_4}}},{\mathcal{L}_{{\mathcal{H}_5}}},{\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} ,初始化内容为空,用来模拟随机预言机 \left\langle {{\mathcal{H}_1},{\mathcal{H}_2},{\mathcal{H}_3},{\mathcal{H}_4},{\mathcal{H}_5}, }\right. \left.{ \mathcal{K}\mathcal{D}\mathcal{F}} \right\rangle . 设置空列表 {\mathcal{L}_K} 来保存公钥查询的结果.

    2) 敌手 {\mathcal{A}_1} \mathcal{C} 提出6个询问.

    {\mathcal{H}_1} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 {\mathcal{H}_1} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_1}}} 用来存取元组 \left\langle {I{D_i},{N_i}} \right\rangle ,当接收到身份为 I{D_i} {\mathcal{H}_1} 查询时, \mathcal{C} 查找 I{D_i} 对应的数值 {N_i} ,用 {H_1}\left( {I{D_i}} \right) = {N_i} 返回给 {\mathcal{A}_1} ,并将 \left\langle {I{D_i},{N_i}} \right\rangle 添加到 {\mathcal{L}_{{\mathcal{H}_1}}} 中.

    {\mathcal{H}_2} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 {\mathcal{H}_2} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_2}}} 用来存取元组 \left\langle {\sigma ,\phi } \right\rangle \mathcal{C} 按2个步骤回应:

    i) 如果询问的 I{D_i} 已经出现在 {\mathcal{L}_{{\mathcal{H}_2}}} 的元组 \left\langle {\sigma ,\phi } \right\rangle 中, \mathcal{C} \phi 来回复.

    ii) 否则, \mathcal{C} 随机选取 \sigma \in {G_T},\phi \in {G_1} ,并将元组 \left\langle {\sigma ,\phi } \right\rangle 插入 {\mathcal{L}_{{\mathcal{H}_2}}} 中,然后用 \phi 来回复 {\mathcal{A}_1} .

    {\mathcal{H}_3} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 {\mathcal{H}_3} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_3}}} 用来存取元组 \left\langle {{C_1},{h_3}} \right\rangle ,如果询问的 {C_1} 存在 {\mathcal{L}_{{\mathcal{H}_3}}} 中,返回 {h_3} {\mathcal{A}_1} ;否则, \mathcal{C} 随机选取 {h_3} \in {\{ 0,1\} ^*} 并添加表项 \left\langle {{C_1},{h_3}} \right\rangle {\mathcal{L}_{{\mathcal{H}_3}}} 中,并返回 {h_3} {\mathcal{A}_1} .

    {\mathcal{H}_4} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 {\mathcal{H}_4} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_4}}} 用来存取元组 \left\langle {M,{h_4}} \right\rangle ,如果询问的 M 存在 {\mathcal{L}_{{\mathcal{H}_4}}} 中,返回 {h_4} {\mathcal{A}_1} ;否则, \mathcal{C} 随机选取 {h_4} \in {G_1} 并添加表项 \left\langle {M,{h_4}} \right\rangle {\mathcal{L}_{{\mathcal{H}_4}}} 中,返回 {h_4} {\mathcal{A}_1} .

    {\mathcal{H}_5} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 {\mathcal{H}_5} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_5}}} 用来存取元组 \left\langle {w,{h_5}} \right\rangle ,如果询问的 w 存在 {\mathcal{L}_{{\mathcal{H}_5}}} 中,返回 {h_5} {\mathcal{A}_1} ;否则, \mathcal{C} 随机选取 {h_5} \in {\{ 0,1\} ^*} 并添加表项 \left\langle {w,{h_5}} \right\rangle {\mathcal{L}_{{\mathcal{H}_5}}} 中,返回 {h_5} {\mathcal{A}_1} .

    \mathcal{K}\mathcal{D}\mathcal{F} {\text{-}} query . 在任何时刻 {\mathcal{A}_1} 可以询问随机预言机 \mathcal{K}\mathcal{D}\mathcal{F} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 用来存取元组 \left\langle {Z,K} \right\rangle ,如果询问的 Z 存在于 {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中,返回 K {\mathcal{A}_1} ;否则, \mathcal{C} 随机选取 K \in {\{ 0,1\} ^*} 并添加表项 \left\langle {Z,K} \right\rangle {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中,返回 K {\mathcal{A}_1} .

    3) 公钥查询. 当接受到身份为 I{D_i} 的公钥询问时, \mathcal{C} 按照如下方式回应:检查列表 {\mathcal{L}_{{\mathcal{H}_1}}} ,如果 i = \kappa \mathcal{C} 放弃,否则得到 {H_1}\left( {I{D_i}} \right) = {N_i} ;计算用户公钥 {Q_i} = [{H_1}(I{D_i})]{P_1} +{P_{{\text{pub1}}}} = {N_i}{P_1} + (\gamma - {N_\kappa }){P_1} = (\gamma - {\tau _i}){P_1} ,并将Q_i 发送给 {\mathcal{A}_1} .

    4) 私钥查询. 当接受到身份为 I{D_i} 的私钥询问时, \mathcal{C} 按照如下方式回应:检查列表 {\mathcal{L}_{{\mathcal{H}_1}}} ,如果 i = \kappa \mathcal{C} 放弃;否则得到 {H_1}\left( {I{D_i}} \right) = {N_i} ,计算用户私钥为

    \begin{split} d_{i,1}= & [s(H_1(ID_i)+s)^{-1}]P_2=[(\gamma-N_{\kappa})/(\gamma-\tau_i)]P_2= \\ & [1-(N_k-\tau_i)/(\gamma-\tau_i)]P_2, \\ d_{i,2}= & [s'(H_1(ID_i)+s)^{-1}]P_2=[a/(\gamma-\tau_i)]P_2. \end{split}

    并将d_{i,1} d_{i,2} 发送给 {\mathcal{A}_1} .

    5) 解密查询. 当接受到身份为 I{D_i} 以及密文 C = ({C_1},{C_2},{C_3},{C_4},{C_5},{C_6}) 的解密询问时,如果 i \ne \kappa \mathcal{C} 计算 {d_{i,1}} = [(\gamma - {N_\kappa })/(\gamma - {\tau _i})]{P_2} ;如果 i = \kappa ,计算 {d_{\kappa ,1}} = [1 - {N_\kappa }/\gamma ]{P_2} . 计算 w' = e({C_1},{d_{i,1}}) ,查找 {C_1} {\mathcal{L}_{{\mathcal{H}_3}}} 对应的表项 \left\langle {{C_1},{h_3}} \right\rangle w' {\mathcal{L}_{{\mathcal{H}_5}}} 对应的表项 \left\langle {w',{h_5}} \right\rangle ,得到Z = {h_3}||{h_5}||I{D_i} ,查找Z {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中对应的表项 \left\langle {Z,K} \right\rangle ,拆分 K = {K'_1}||{K'_2} . 计算 M' = {C_2} \oplus {K'_1} ,验证 {C_3} =MAC({K'_2}, {C_2}) 是否成立,如果成立,则返回明文;如果不成立,则 \mathcal{C} 输出 \bot .

    6) 挑战. 敌手 {\mathcal{A}_1} 将身份 I{D^*} 以及消息 M_0^*,M_1^* (二者长度相同)发送给 \mathcal{C} ,如果 I{D^*} \ne I{D_\kappa } \mathcal{C} 放弃游戏;如果 I{D^*} = I{D_\kappa } \mathcal{C} 随机选取 \rho \in \{ 0,1\} C_2^* \in {\{ 0,1\} ^*} C_3^* \in {\{ 0,1\} ^*} C_4^* \in {G_1} C_6^* \in {G_1} ,并计算 C_1^* = (\gamma - {\tau _i})b{P_1} C_5^* = c{P_1} 后将 {C^*} = (C_1^*,C_2^*,C_3^*,C_4^*,C_5^*,C_6^*) 发送给 {\mathcal{A}_1} 作为挑战密文.

    7) 猜测. {\mathcal{A}_1} 输出 \rho ' \in \{ 0,1\} . \mathcal{C} {\mathcal{L}_{{\mathcal{H}_2}}} 随机选取一个元组 \left\langle {{\sigma ^*},{\phi ^*}} \right\rangle ,并输出 {\sigma ^*} = e{({P_1},{P_2})^{abc}} 作为BDH实例的解. 证毕.

    定理2. 假定嵌入的BDH困难问题是不可破解的猜想成立,则表示我们提出的支持等式测试的国密SM9算法方案是IBE-OW-CCA安全的.

    证明. 假定存在可以获取目标用户陷门且可以执行等式测试的Ⅱ型敌手 {\mathcal{A}_2} ,其攻击目的是为了破坏所提方案的机密性,也即揭示挑战密文对应的消息. 如果敌手 {\mathcal{A}_2} 可以成功破坏所提方案,则存在挑战者 \mathcal{C} 能够以不可忽略的优势解决BDH困难问题. 给定 ({P_1},{P_2},[a]{P_1},[a]{P_2},[b]{P_1},[c]{P_1}) ,其中 a,b,c \in \mathbb{Z}_N^* \mathcal{C} 的目标是计算出 e{({P_1},{P_2})^{abc}} . \mathcal{C} {\mathcal{A}_2} 的挑战过程有8个.

    1) 初始化. \mathcal{C} 随机选取 \kappa \in \left\{ {1,2, … ,{q_{{H_1}}}} \right\} {N_\kappa } \in \mathbb{Z}_N^* 以及 {\tau _1},{\tau _2}, … ,{\tau _{\kappa - 1}},{\tau _{\kappa + 1}}, … ,{\tau _N} \in \mathbb{Z}_N^* {q_{{H_1}}} 代表的是查询随机预言机 {\mathcal{H}_1} 的次数,对 i = 1,2, … ,\kappa - 1,\kappa + 1, … ,N ,计算 {N_i} = {N_\kappa } - {\tau _i} 并保存. {P_1},{P_2} 分别为群 {G_1},{G_2} 的生成元,通过使用文献[30]的方法, \mathcal{C} 随机选取 \gamma \in [1,N - 1] ,对 i \in \{ 1,2, … ,N\} \backslash \{ \kappa \} \mathcal{C} 可以获得 N - 1 个数值对 \left( {{\tau _i},\left( {1/\gamma - {\tau _i}} \right)} \right) ,计算 {P_{{\text{pub1}}}} = \left( {\gamma - {N_\kappa }} \right){P_1} ,令 {P_{{\text{pub2}}}} = a{P_1} . 得到公共参数 params = \left\langle {{G_1},{G_2},{G_T},e,} \right. \left. {{P_1},{P_2},{P_{{\text{pub1}}}}, {P_{{\text{pub2}}}},}\right. \left.{ MAC} \right\rangle ,并将其发送给 {\mathcal{A}_2} .

    \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_1}}},{\mathcal{L}_{{\mathcal{H}_2}}}{\mathcal{L}_{{\mathcal{H}_3}}},{\mathcal{L}_{{\mathcal{H}_4}}},{\mathcal{L}_{{\mathcal{H}_5}}},{\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} ,初始化内容为空,用来模拟随机预言机 \left\langle {{\mathcal{H}_1},{\mathcal{H}_2},{\mathcal{H}_3},{\mathcal{H}_4},{\mathcal{H}_5},}\right. \left.{\mathcal{K}\mathcal{D}\mathcal{F}} \right\rangle . 设置空列表 {\mathcal{L}_K} 来保存公钥查询的结果.

    2) 敌手 {\mathcal{A}_2} \mathcal{C} 提出6点询问.

    {\mathcal{H}_1} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 {\mathcal{H}_1} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_1}}} 用来存取元组 \left\langle {I{D_i},{N_i}} \right\rangle ,当接收到身份为 I{D_i} {\mathcal{H}_1} 查询时, \mathcal{C} 查找 I{D_i} 对应的数值 {N_i} ,用 {H_1}\left( {I{D_i}} \right) = {N_i} 返回给 {\mathcal{A}_2} ,并将\left\langle {I{D_i},{N_i}} \right\rangle 添加到 {\mathcal{L}_{{\mathcal{H}_1}}} 中.

    {\mathcal{H}_2} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 {\mathcal{H}_2} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_2}}} 用来存取元组 \left\langle {\sigma ,\phi } \right\rangle \mathcal{C} 按2个步骤回应:

    i) 如果询问的 I{D_i} 已经出现在 {\mathcal{L}_{{\mathcal{H}_2}}} 的元组 \left\langle {\sigma ,\phi } \right\rangle 中, \mathcal{C} \phi 来回复.

    ii) 否则, \mathcal{C} 随机选取 \sigma \in {G_T},\phi \in {G_1} ,并将元组 \left\langle {\sigma ,\phi } \right\rangle 插入 {\mathcal{L}_{{\mathcal{H}_2}}} 中,然后用 \phi 来回复 {\mathcal{A}_2} .

    {\mathcal{H}_3} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 {\mathcal{H}_3} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_3}}} 用来存取元组 \left\langle {{C_1},{h_3}} \right\rangle ,如果询问的 {C_1} 存在 {\mathcal{L}_{{\mathcal{H}_3}}} 中,返回 {h_3} {\mathcal{A}_2} ;否则, \mathcal{C} 随机选取 {h_3} \in {\{ 0,1\} ^*} 并添加表项 \left\langle {{C_1},{h_3}} \right\rangle {\mathcal{L}_{{\mathcal{H}_3}}} 中,并返回 {h_3} {\mathcal{A}_2} .

    {\mathcal{H}_4} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 {\mathcal{H}_4} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_4}}} 用来存取元组 \left\langle {M,{h_4}} \right\rangle ,如果询问的 M 存在 {\mathcal{L}_{{\mathcal{H}_4}}} 中,返回 {h_4} {\mathcal{A}_2} ;否则, \mathcal{C} 随机选取 {h_4} \in {G_1} 并添加表项 \left\langle {M,{h_4}} \right\rangle {\mathcal{L}_{{\mathcal{H}_4}}} 中,返回 {h_4} {\mathcal{A}_2} .

    {\mathcal{H}_5} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 {\mathcal{H}_5} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{{\mathcal{H}_5}}} 用来存取元组 \left\langle {w,{h_5}} \right\rangle ,如果询问的 w 存在 {\mathcal{L}_{{\mathcal{H}_5}}} 中,返回 {h_5} {\mathcal{A}_2} ;否则, \mathcal{C} 随机选取 {h_5} \in {\{ 0,1\} ^*} 并添加表项 \left\langle {w,{h_5}} \right\rangle {\mathcal{L}_{{\mathcal{H}_5}}} 中,返回 {h_5} {\mathcal{A}_2} .

    \mathcal{K}\mathcal{D}\mathcal{F} {\text{-}} query . 在任何时刻 {\mathcal{A}_2} 可以询问随机预言机 \mathcal{K}\mathcal{D}\mathcal{F} ,为了回答这些询问, \mathcal{C} 保存表格 {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 用来存取元组 \left\langle {Z,K} \right\rangle ,如果询问的 Z 存在于 {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中,返回 K {\mathcal{A}_2} ;否则, \mathcal{C} 随机选取 K \in {\{ 0,1\} ^*} 并添加表项 \left\langle {Z,K} \right\rangle {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中,返回 K {\mathcal{A}_2} .

    3) 公钥查询. 当接受到身份为 I{D_i} 的公钥询问时,C按照如下方式回应:检查列表 {\mathcal{L}_{{\mathcal{H}_1}}} ,如果 i = \kappa \mathcal{C} 放弃;否则得到 {H_1}\left( {I{D_i}} \right) = {N_i} ,计算用户公钥

    {Q_i} = [{H_1}(I{D_i})]{P_1} + {P_{{\text{pub1}}}} = {N_i}{P_1} + (\gamma - {N_\kappa }){P_1} = (\gamma - {\tau _i}){P_1},

    并将Q_i 发送给 {\mathcal{A}_2} .

    4) 私钥查询. 当接受到身份为 I{D_i} 的私钥询问时, \mathcal{C} 按照如下方式回应:检查列表 {\mathcal{L}_{{\mathcal{H}_1}}} ,如果 i = \kappa \mathcal{C} 放弃;否则得到 {H_1}\left( {I{D_i}} \right) = {N_i} ,计算用户私钥

    \begin{split} {d_{i,1}} = &[s{({H_1}(I{D_i}) + s)^{ - 1}}]{P_2} = [(\gamma - {N_\kappa })/(\gamma - {\tau _i})]{P_2} = \\&[1 - ({N_k} - {\tau _i})/(\gamma - {\tau _i})]{P_2}, \\ {d_{i,2}} = &[s'{({H_1}(I{D_i}) + s)^{ - 1}}]{P_2} = [a/(\gamma - {\tau _i})]{P_2}, \end{split}

    并将d_{i,1} d_{i,2} 发送给 {\mathcal{A}_2} .

    5) 陷门查询. 当接受到身份为 I{D_i} 的陷门询问时,如果 i = \kappa \mathcal{C} 放弃;否则计算

    {d_{i,2}} = [s'{({H_1}(I{D_i}) + s)^{ - 1}}]{P_2} = [a/(\gamma - {\tau _i})]{P_2},

    并将d_{i,1} d_{i,2} 发送给 {\mathcal{A}_2} .

    6) 解密查询. 当接受到身份为 I{D_i} 以及密文 C = ({C_1},{C_2},{C_3},{C_4},{C_5},{C_6}) 的解密询问时,C按照如下方式回应:如果 i \ne \kappa \mathcal{C} 计算 {d_{i,1}} = [(\gamma - {N_\kappa })/(\gamma - {\tau _i})]{P_2} ;如果 i = \kappa ,计算 {d_{\kappa ,1}} = [1 - {N_\kappa }/\gamma ]{P_2} 、计算 w' = e({C_1},{d_{i,1}}) ,查找 {C_1} {\mathcal{L}_{{\mathcal{H}_3}}} 对应的表项 \left\langle {{C_1},{h_3}} \right\rangle w' {\mathcal{L}_{{\mathcal{H}_5}}} 对应的表项 \left\langle {w',{h_5}} \right\rangle ,得到 Z = {h_3}||{h_5}||I{D_i} ,查找Z {\mathcal{L}_{\mathcal{K}\mathcal{D}\mathcal{F}}} 中对应的表项 \left\langle {Z,K} \right\rangle ,拆分 K = {K'_1}||{K'_2} . 计算 M' = {C_2} \oplus {K'_1} ,验证 {C_3} = MAC({K'_2},{C_2}) 是否成立,如果成立,则返回明文;如果不成立,则 \mathcal{C} 输出 \bot .

    7) 挑战. 敌手 {\mathcal{A}_2} 将身份 I{D^*} 以及消息 {M^*} \in {\{ 0,1\} ^*} 发送给 \mathcal{C} ,如果 I{D^*} \ne I{D_\kappa } \mathcal{C} 放弃游戏;如果 I{D^*} = I{D_\kappa } \mathcal{C} 随机选取 C_2^* \in {\{ 0,1\} ^*} C_3^* \in {\{ 0,1\} ^*} C_4^* \in {G_1} C_6^* \in {G_1} ,并计算 C_1^* = (\gamma - {\tau _i})b{P_1} C_5^* = c{P_1} 后将 {C^*} = (C_1^*,C_2^*,C_3^*,C_4^*, C_5^*,C_6^*) 发送给 {\mathcal{A}_2} 作为挑战密文.

    8) 猜测. {\mathcal{A}_2} 输出 M' \in {M^*} . \mathcal{C} {\mathcal{L}_{{\mathcal{H}_2}}} 随机选取一个元组 \left\langle {{\sigma ^*},{\phi ^*}} \right\rangle ,并输出 {\sigma ^*} = e{({P_1},{P_2})^{abc}} 作为BDH实例的解. 证毕.

    ASA安全性要求SM9-IBEET-CRF可以抵抗Ⅲ型敌手 {\mathcal{A}_3} 的攻击. 其中敌手 {\mathcal{A}_3} 具备ASA能力,在保持算法功能不变的前提下,可以替换除了CRF重随机化以外的算法,然后对系统发起攻击.

    定理3. SM9-IBEET-CRF中的CRF具有维持功能性.

    证明. 维持功能性要求CRF不影响原协议的功能与安全性,当数据上传者将密文与陷门经由CRF上传至云服务器后,可以得到与原协议相同的功能与安全强度.

    数据上传者运行加密算法Encrypt生成密文 C = ({C_1},{C_2},{C_3},{C_4},{C_5},{C_6}) 并发送给CRF.CRF重随机化密文后得到 C' = ({C_1},{C_2},{C_3},{C_4},{C_5},[{r_3}]{C_6}) ,并将其上传至云服务器.

    当数据接收者需要解密时,从云服务器上下载密文,此时不需要经过CRF. 解密过程的正确性通过用户私钥 d 以及密文消息 {C'_\alpha } = ({C_1}, {C_2},{C_3},{C_4},{C_5}, [{r_3}]{C_6}) 来验证:

    \begin{split} {{M'}_\alpha } = &{C_{2,\alpha }} \oplus KDF({H_3}({C_{1,\alpha }})||{H_5}(e({C_{1,\alpha }},{d_{1,\;\beta }}))||I{D_\beta },klen) =\\& {C_{2,\alpha }} \oplus KDF({H_3}({C_{1,\alpha }})||{H_5}({w_{1,\alpha }})||I{D_\beta },klen) = \\&{C_{2,\alpha }} \oplus {{K'}_{1,\;\beta }}, \\ \end{split}

    其中 {K'_{1,\;\beta }} KDF函数结果左边的mlen比特. 接下来计算消息认证码函数:

    u = MAC({K'_{2,\;\beta }},{C_{2,\alpha }}) {K'_{2,\;\beta }} KDF 函数结果右边的 {K_2}\_len 比特).

    u = {C_{3,\alpha }} ,则消息认证完整性的结果通过,解密结果正确,输出明文 {M'_\alpha } ,解密过程不受影响.

    当数据接收者需要执行等式测试时,运行Trapdoor算法生成陷门td并发送给CRF. CRF重随机化陷门后得到 td' = [{r_4}]td = [{r_4}{t'_2}]{P_2} ,并将td' 上传至云服务器. 接下来验证等式测试计算结果的正确性.

    1) 第1层计算的安全性采用用户的陷门以及部分密文验证:

    \begin{split} {X_\alpha } =& \frac{{{C_{4,\alpha }}}}{{{H_2}\left( {e\left( {{{C'}_{6,\alpha }},t{{d'}_\alpha }} \right)} \right)}} =\\& \frac{{\left[ {{r_{2,\alpha }}} \right]{H_4}(M){H_2}\left( {e{{\left( {{P_{{\text{pub2}}}},\left[ {{r_{1,\alpha }}} \right]{P_2}} \right)}^{{r_{2,\alpha }}}}} \right)}}{{{H_2}\left( {e\left( {\left[ {{r_{1,\alpha }}} \right]\left[ {{r_{2,\alpha }}} \right]\left[ {{r_{3,\alpha }}} \right]\left[ {{t_{1,\alpha }}} \right]{P_1},\left[ {{r_{4,\alpha }}} \right]\left[ {t_{2,\alpha }^\prime } \right]{P_2}} \right)} \right)}} =\\& [{r_{2,\alpha }}]{H_4}({M_\alpha }). \\ {X_\beta } =& \frac{{{C_{4,\;\beta }}}}{{{H_2}\left( {e\left( {{{C'}_{6,\;\beta }},t{{d'}_\beta }} \right)} \right)}} =\\& \frac{{\left[ {{r_{2,\;\beta }}} \right]{H_4}(M){H_2}\left( {e{{\left( {{P_{{\text{pub2}}}},\left[ {{r_{1,\;\beta }}} \right]{P_2}} \right)}^{{r_{2,\;\beta }}}}} \right)}}{{{H_2}\left( {e\left( {\left[ {{r_{1,\;\beta }}} \right]\left[ {{r_{2,\;\beta }}} \right]\left[ {{r_{3,\;\beta }}} \right]\left[ {{t_{1,\;\beta }}} \right]{P_1},\left[ {{r_{4,\;\beta }}} \right]\left[ {t_{2,\;\beta }^\prime } \right]{P_2}} \right)} \right)}} =\\& [{r_{2,\;\beta }}]{H_4}({M_\beta }). \end{split}

    2) 第2层计算的正确性分析带入第1层中计算的中间结果:

    \begin{split} e({C_{5,\;\alpha }},{X_\beta }) =& e([{r_{2,\alpha }}]{P_2},[{r_{2,\;\beta }}]{H_4}({M_\beta })) = e{({P_2},{H_4}({M_\beta }))^{{r_{2,\alpha }},{r_{2,\;\beta }}}}, \\ e({C_{5,\;\beta }},{X_\alpha }) =& e([{r_{2,\;\beta }}]{P_2},[{r_{2,\alpha }}]{H_4}({M_\alpha })) = e{({P_2},{H_4}({M_\alpha }))^{{r_{2,\alpha }},{r_{2,\;\beta }}}}. \end{split}

    {M_\alpha } = {M_\beta } ,则等式测试的结果成立. 证毕.

    定理4. SM9-IBEET-CRF中的CRF具有弱保留安全性和预防泄露性.

    证明. 假定存在可以替换除CRF重随机化以外算法的Ⅲ型敌手 {\mathcal{A}_3} ,其攻击目的是破坏所提方案的机密性,也即通过篡改原始算法来泄露隐私信息. 如果 {\mathcal{A}_3} 可以成功破坏所提方案,使用篡改算法Setup*KeyExtract*Encrypt*Decrypt*Trapdoor*Test*来替换原始算法. 我们则将通过SM9-IBEET-CRF的安全性游戏和原SM9-IBEET安全性游戏的不可区分性,来证明CRF满足弱保留安全性和预防泄露性. 本文考虑3种安全游戏:

    1) 安全游戏Game 1. 与第2节中定义的Game 3相同.

    2) 安全游戏Game 2. 与Game 1的其他部分都相同,除了在陷门查询阶段, \mathcal{C} 用于生成陷门的算法为Trapdoor,而不是先执行Trapdoor*算法再执行ReTrapdoor算法.

    3) 安全游戏Game 3. 与Game 2的其他部分都相同,除了挑战阶段, \mathcal{C} 用于生成密文的算法为Encrypt,而不是先执行Encrypt*算法再执行ReEncrypt算法. 事实上,Game 3就是原基础方案SM9-IBEET的安全性游戏.

    现在我们证明,Game 1和Game 2,Game 2和Game 3分别具有不可区分性.

    Game 1和Game 2之间,对于任何篡改算法Trapdoor*,其生成的陷门 td' 在经由CRF的重随机化算法ReTrapdoor后,由于数据的可延展性, td' 会重新分布,被映射到与原始Trapdoor相同的输出空间中. 也就是说,即使敌手篡改了Trapdoor算法的实现,它也难以区分 td' 是由Trapdoor算法产生,还是由先执行Trapdoor*算法再执行ReTrapdoor产生. 因此,Game 1和Game 2之间具有不可区分性.

    Game 2和Game 3之间,对于任何篡改算法Encrypt*,其生成的密文 C' 在经由CRF的重随机化算法ReEncrypt后,由于数据的可延展性, C' 会重新分布,被映射到与原始密文相同的输出空间中. 也就是说,即使敌手篡改了Encrypt算法的实现,它也难以区分 C' Encrypt算法产生,还是是由先执行Encrypt*算法再执行ReEncrypt产生. 因此,Game 2和Game 3之间具有不可区分性.

    综上所述,Game 1与Game 3具有不可区分性,SM9-IBEET-CRF满足与原方案相同的IBE-IND-CCA安全性与IBE-OW-CCA安全性. 这种选择密文攻击下的不可区分性表明云服务器与用户之间的CRF具有弱保留安全性,Game 1,Game 2,Game 3之间的不可区分性证明CRF有弱抵抗渗透性. 证毕.

    在本节中主要从计算开销、通信开销、安全性等方面对本文方案(SM9-IBEET-CRF)与其他等式测试的公钥加密方案和支持关键词检索的公钥加密文献[4, 6, 11, 13, 15, 17]进行比较. 其中,文献[4]为具有前向安全性的公钥可搜索加密方案(FS-PKSE);文献[6]为带有关键字搜索的公钥认证加密方案(PAEKS);文献[11]为具有灵活授权机制的公钥加密等式测试方案(PKEET-FA);文献[13]为支持等式测试的无证书公钥加密方案(CLE-PKEET);文献[15]为支持等式测试的异构签密方案(HSC-ET);文献[17]为支持等式测试标识加密方案(IBEET).

    为评估方案性能,将本文方案与其他方案在相同的环境下逐一对比,该环境配置的处理器为Intel® Core™ i7-8750H,内存为16 GB(RAM),在VMware软件的虚拟机上运行,在PBC(pairing-based cryptography library)库中实现双线性对的接口,实现了双线性对公钥密码体制的有效仿真,达到了1024 b RSA安全.

    使用SM9定义256 b的BN曲线,椭圆曲线方程为 {y^2} = {x^3} + b 来生成映射 e:{G_1} \times {G_2} \to {G_T} ,嵌入次数为12,根据SM9的参数配置PBC库中对应的算法,进行多次模拟后取平均值,与之前的文献进行了对比,其中涉及的符号定义和密码算法的执行时间定义分别如表1表2所示.

    表  1  符号定义
    Table  1.  Symbols Definition
    符号 含义
    |{G_1}| {G_1} 中元素的大小
    |{G_2}| {G_2} 中元素的大小
    |{G_T}| {G_T} 中元素的大小
    |G| 对称配对 G 中元素的大小
    |{G_T}'| 对称配对 {G_T}' 中元素的大小
    |{\mathbb{Z}_p}| {\mathbb{Z}_p} 中元素的大小
    |PK| 公钥长度
    |CL| 密文长度
    |TD| 陷门长度
    {T_p} 1次双线性配对运算
    {T_{x1}} 1次 {G_1} {G_2} 上的幂运算
    {T_{x2}} 1次 {G_T} 上的幂运算
    下载: 导出CSV 
    | 显示表格
    表  2  密码操作的执行时间
    Table  2.  Execution Time of Cryptographic Operation
    具体操作 计算时间/ms
    {T_P} 7.5954
    {T_{x1}} 3.8915
    {T_{x2}} 1.2357
    下载: 导出CSV 
    | 显示表格

    为评估方案的通信开销,考虑部署2类无线传感器节点平台MICAz[31]和Tmote Sky[32]. 其中MICAz配置的微控制器为ATmega128L,内存为4 KB(RAM). Tmote Sky配置的微控制器为MSP430,内存为10 KB(RAM). 采用CC2420, 2.4 GHz IEEE 802.15.4作为射频收发器标准,在 TinyOS系统运行. 使用文献[33]的方法,在2类传感器节点架构体系上实现对公钥密码通信系统的有效仿真.

    我们首先比较了不同方案,包括Enc加密操作、Dec解密操作和Test等式测试操作的计算开销. 具体结果如表3所示.

    表  3  不同方案的计算开销对比
    Table  3.  Computation Cost Comparison of Different Schemes
    方案 加密 解密 等式测试/搜索
    FS-PKSE[4] 6{T_{x1}} 5{T_p} + 3{T_{x2}}
    PAEKS[6] {T_p} + 4{T_{x1}} 4{T_p} + {T_{x2}}
    PKEET-FA[11] 6{T_{x1}} 5{T_{x1}} 2{T_p} + 6{T_{x1}}
    CLE-PKEET[13] 4{T_p} + 5{T_{x1}} 2{T_P} + 2{T_{x1}} 4{T_p}
    HSC-ET[15] 5{T_{x1}} + 2{T_{x2}} 3{T_p} + {T_{x2}} 4{T_p} + 4{T_{x2}}
    IBEET[17] 2{T_p} + 6{T_{x1}} 2{T_p} + 2{T_{x1}} 4{T_p}
    本文方案 2{T_p} + 5{T_{x1}} + 2{T_{x2}} {T_p} 4{T_p}
    下载: 导出CSV 
    | 显示表格

    图3(a)表示在模拟环境下,不同方案的加密时间随消息数量的变化,虽然当消息数量增加到100时,本文方案的时间开销比文献[4, 6, 11, 15]大1.58倍左右,但很明显,与其他标识加密的等式测试的文献[13, 17]相比,本文方案的时间开销要小得多. 作为一种IBE-ET体制,本方案在加密时间上的开销是可以接受的. 与本文方案相比,文献[11]并没有实现IBE体制,在实际场景中,存在着密钥管理的问题;文献[15]异构等式测试,只能实现PKI端到IBE端的测试环境,具有一定的限制;文献[4, 6]实现的可搜索加密,不能对密文解密,只支持关键词搜索,无法搜索整段密文,搜索性有所降低. 本文方案的等式测试功能,可以实现双向密文的任意测试;用户与测试者均采用标识加密的方法,避免了密钥管理的问题;与其他标识加密的方案相比,降低了加密开销.

    图  3  不同方案的计算开销对比
    Figure  3.  Computation overhead comparison for different schemes

    图3(b)可以得出,本文方案在解密过程的计算时间远小于其他对比方案,具有解密开销上的优势.

    图3(c)中得出,本文方案与文献[13, 17]在测试计算过程耗费的计算时间是相近的,文献[4, 11, 15]在测试场景下耗费的时间要大于其他方案. 文献[4, 6]实现的传统可搜索加密并不能支持整段密文的测试,可以看出,本文方案在等式测试过程中耗费的时间是合理且具有一定优势的.

    表4表示的是不同方案在通信开销与实际功能上的对比,可以看出本文方案与其他方案相比,具有更强的安全性与功能性. 在实际应用场景中,本文方案实现的标识加密体制避免了证书管理的问题,大大降低在通信过程中的开销. 同时,支持等式测试的功能相比于其他可搜索加密文献[4, 6]具有更强的搜索性. CRF的设置使得本文方案具备抵抗渗透攻击的能力,这意味着在面对算法篡改攻击这类威胁时本文方案提供了更高的安全性. 值得注意的是,本文方案还是唯一一个支持国密SM9算法的方案.

    表  4  不同方案的通信开销与功能对比
    Table  4.  Comparison of Communication Overhead and Function of Different Schemes
    方案 |PK| |CL| |TD| 等式测试 标识加密 抗渗透攻击 支持国密算法
    FS-PKSE[4] 4|G| 5|G| + |{\mathbb{Z}_p}| 5|G| + |{\mathbb{Z}_p}| × × × ×
    PAEKS[6] |G| 2|G| |G| × × × ×
    PKEET-FA[11] 3|G| 5|G| + |{\mathbb{Z}_p}| |{\mathbb{Z}_p}| × × ×
    CLE-PKEET[13] 2|G| 3|G| + |{\mathbb{Z}_p}| |G| × × ×
    HSC-ET[15] |G| 3|G| + 2|{\mathbb{Z}_p}| |G| × ×
    IBEET[17] 2|G| 4|G| + |{\mathbb{Z}_p}| |G| × ×
    本文方案 |{G_1}| 3|{G_1}| + |{G_2}| + 2|{\mathbb{Z}_p}| |{G_2}|
    注:“√”表示存在,“×”表示不存在.
    下载: 导出CSV 
    | 显示表格

    图4表示在模拟环境下,不同方案随着用户数量增加下各种通信开销的对比. 从图4(a)(b)可以看出,本文方案享有最低的公钥通信开销与密文通信开销. 并且在图4(c)中,本文方案的陷门开销小于除了文献[11]以外的所有方案的开销. 这是由于本文方案不仅实现了标识加密体制,在实际场景中避免了公钥证书的通信开销. 同时还是所有文献中唯一建立在非对称双线性配对基础上的方案,这大大降低了在实际通信场景中的存储开销. 由此可见本文方案具有通信开销上的优势,更适用于实际应用场景.

    图  4  不同方案通信开销对比
    Figure  4.  Comparison of communication overhead of different schemes

    总的来说,通过严格的实验仿真与性能对比证明,本文方案在计算开销与通信开销上都具有一定的优势. 等式测试功能的引入,使本文方案具有比可搜索加密方案更强的搜索性;标识加密体制的拓展,解决了密钥协商和证书管理的问题;逆向防火墙的部署,进一步提升了本文方案抵抗渗透攻击与篡改攻击的能力. 本文方案不仅解决了SM9密文难以搜索的问题,还解决了目前支持等式测试的标识加密体制下计算与通信开销大、安全性弱的问题. 同时,本文方案是国密SM9密码算法在云计算场景下的一次良好应用,对于推动我国密码领域的安全研究也具有一定意义.

    针对已有IBEET算法难抵抗渗透攻击的问题,本文提出了一种支持等式测试并具有逆向防火墙的SM9标识密码方案SM9-IBEET-CRF,该方案可以运用于云服务器中加密数据的外包计算方案. 本文方案在用户与云服务器之间的上行信道分别部署了密码逆向防火墙;形式化了本文方案的系统模型和定义,并考虑3种不同的对手来定义安全模型;然后在BDH假设下的随机预言机模型中证明了它的安全性;最后通过严格的实验仿真和分析结果表明,本文方案比已有方法在解密与通信开销方面具有一定的效率优势.

    作者贡献声明:熊虎提出了算法思路和实验方案;林烨负责完成实验并撰写论文;姚婷协助完成实验并修改论文.

  • 图  1   用户重购偏好随重购数量变化的趋势

    Figure  1.   Trend of user’s repurchase preference varies with the number of repurchase

    图  2   基于多层信息融合的重购推荐方法

    Figure  2.   Repurchase recommendation method based on multi-level information fusion

    图  3   重购数量随时间变化图

    Figure  3.   The change of repurchase quantity over time

    图  4   本文方法与其它基准方法的对比

    Figure  4.   Comparison of our proposed method and other baseline methods

    图  5   参数性能变化图

    Figure  5.   Parameter performance variation diagram

    图  6   注意力权重热力图

    Figure  6.   Attention weight heat map

    表  1   数据统计

    Table  1   Data statistics

    产品顾客数产品数量购买天数周数平均购买天数
    面包243016526757410227.81
    牛奶246115598588410234.90
    下载: 导出CSV

    表  2   用户重购偏好趋势的回归分析

    Table  2   Regression Analysis of User Repurchase Preference Trend

    变量 面包回购牛奶回购
    Time0.575***(11.338)0.401***(9.526)
    Time2−1.021***(−9.641)−0.608***(−6.967)
    Time30.519***(7.602)0.291***(5.395)
    Price−0.388***(−23.413)−0.322***(−33.555)
    Discount0.228***(10.242)−0.851***(−51.602)
    UserFixedEffect控制控制
    样本量5839981558
    注:括号内为z统计量,***表示在1%的显著性水平下显著.
    下载: 导出CSV

    表  3   面包数据集的实验结果

    Table  3   Experimental Results on Bread Dataset

    模型RecallPrecisionNDCG
    Pop0.00840.00240.0032
    SHARE0.02950.00860.0266
    DREAM0.34750.10140.1299
    RecaNet0.38090.11100.1403
    CLEA0.21600.10240.0821
    本文0.45920.13390.1714
    下载: 导出CSV

    表  4   牛奶数据集的实验结果

    Table  4   Experimental Results on Milk Dataset

    模型RecallPrecisionNDCG
    Pop0.10700.03330.0252
    SHARE0.01740.00540.0036
    DREAM0.48480.14990.2054
    RecaNet0.51360.15970.2039
    CLEA0.46650.20590.1791
    本文0.57520.17890.2342
    下载: 导出CSV
  • [1]

    Liu Huafeng, Jing Liping, Qian Yuhua, et al. Adaptive local low-rank matrix approximation for recommendation[J]. ACM Transactions on Information Systems, 2019, 37(4): 1−34

    [2]

    Inman J J, Zeelenberg M. Regret in repeat purchase versus switching decisions: The attenuating role of decision justifiability[J]. Journal of Consumer Research, 2002, 29(1): 116−128 doi: 10.1086/339925

    [3]

    Bhagat R, Muralidharan S, Lobzhanidze A, et al. Buy it again: Modeling repeat purchase recommendations [C] //Proc of the 24th ACM SIGKDD Int Conf on Knowledge Discovery & Data Mining. New York: ACM, 2018: 62−70

    [4]

    Wang Chenyang, Zhang Min, Ma Weizhi, et al. Modeling item-specific temporal dynamics of repeat consumption for recommender systems [C] //Proc of the 28th Int Conf on World Wide Web. New York: ACM, 2019: 1977−1987

    [5]

    Kapoor K, Subbian K, Srivastava J, et al. Just in time recommendations: Modeling the dynamics of boredom in activity streams [C] //Proc of the 8th ACM Int conf on Web Search and Data Mining. New York: ACM, 2015: 233−242

    [6]

    See A, Liu P J, Manning C D. Get to the point: Summarization with pointer-generator networks [J]. arXiv preprint, arXiv: 1704.04368, 2017

    [7]

    Jacoby J, Speller D E, Kohn C A. Brand choice behavior as a function of information load[J]. Journal of Marketing Research, 1974, 11(1): 63−69 doi: 10.1177/002224377401100106

    [8]

    Degeratu A M, Rangaswamy A, Wu Jianan. Consumer choice behavior in online and traditional supermarkets: The effects of brand name, price, and other search attributes[J]. International Journal of Research in Marketing, 2000, 17(1): 55−78 doi: 10.1016/S0167-8116(00)00005-7

    [9]

    Hoch S J, Deighton J. Managing what consumers learn from experience[J]. Journal of Marketing, 1989, 53(2): 1−20 doi: 10.1177/002224298905300201

    [10]

    Hoyer W D. An examination of consumer decision making for a common repeat purchase product[J]. Journal of Consumer Research, 1984, 11(3): 822−829 doi: 10.1086/209017

    [11]

    Jacoby J, Jaccard J J, Currim I, et al. Tracing the impact of item-by-item information accessing on uncertainty reduction[J]. Journal of Consumer Research, 1994, 21(2): 291−303 doi: 10.1086/209398

    [12]

    Pierson P. Increasing returns, path dependence, and the study of politics[J]. American Political Science Review, 2000, 94(2): 251−267 doi: 10.2307/2586011

    [13]

    Luo Xueming, Andrews M, Song Yiping, et al. Group-buying deal popularity[J]. Journal of Marketing, 2014, 78(2): 20−33 doi: 10.1509/jm.12.0422

    [14]

    Atchariyachanvanich K, Sonehara N, Okada H. What are the benefits of continued purchasing through the Internet? A study of South Korean consumers [J]. Journal of Service Science and Management, 2008, 1(01): 101

    [15]

    Hellier P K, Geursen G M, Carr R A, et al. Customer repurchase intention: A general structural equation model[J]. European Journal of Marketing, 2003, 37(11/12): 1762−1800 doi: 10.1108/03090560310495456

    [16]

    Lee J, Lee J, Lee H, et al. An exploratory study of factors influencing repurchase behaviors toward game items: A field study[J]. Computers in Human Behavior, 2015, 53: 13−23 doi: 10.1016/j.chb.2015.06.017

    [17]

    Anderson A, Kumar R, Tomkins A, et al. The dynamics of repeat consumption [C] //Proc of the 23rd Int Conf on World Wide Web. New York: ACM, 2014: 419−430

    [18]

    Abdul-Muhmin A G. Repeat purchase intentions in online shopping: The role of satisfaction, attitude, and online retailers’ performance[J]. Journal of International Consumer Marketing, 2010, 23(1): 5−20 doi: 10.1080/08961530.2011.524571

    [19]

    Li Xiaolin, Zhuang Yuan, Lu Benjiang, et al. A multi-stage hidden Markov model of customer repurchase motivation in online shopping[J]. Decision Support Systems, 2019, 120: 72−80 doi: 10.1016/j.dss.2019.03.012

    [20]

    Pokryshevskaya E B, Antipov E A. The strategic analysis of online customers’ repeat purchase intentions[J]. Journal of Targeting, Measurement and Analysis for Marketing, 2012, 20: 203−211 doi: 10.1057/jt.2012.16

    [21]

    Graciola A P, De Toni D, De Lima V Z, et al. Does price sensitivity and price level influence store price image and repurchase intention in retail markets?[J]. Journal of Retailing and Consumer Services, 2018, 44: 201−213 doi: 10.1016/j.jretconser.2018.06.014

    [22]

    Ghezelbash S, Khodadadi H. Evaluating the impact of promotion price, product quality, service quality, customer satisfaction and repeating purchase incentives (Case study: Amiran chain stores) [J]. The Journal of Internet Banking and Commerce, 2017(22): 1−17

    [23]

    Suhaily L, Soelasih Y. What effects repurchase intention of online shopping[J]. International Business Research, 2017, 10(12): 113−122 doi: 10.5539/ibr.v10n12p113

    [24]

    He Ruining, McAuley J. Fusing similarity models with Markov chains for sparse sequential recommendation [C] //Proc of 16th IEEE Int Conf on Data Mining. Piscataway, NJ: IEEE, 2016: 191−200

    [25]

    He Ruining, Kang Wang Cheng, McAuley J. Translation-based recommendation [C] //Proc of the 11th ACM Conf on Recommender Systems. New York: ACM, 2017: 161−169

    [26]

    Yuan Fajie, Karatzoglou A, Arapakis I, et al. A simple convolutional generative network for next item recommendation [C] //Proc of the 12th ACM Int Conf on Web Search and Data Mining. New York: ACM, 2019: 582−590

    [27]

    Yu Feng, Liu Qiang, Wu Shu, et al. A dynamic recurrent model for next basket recommendation [C] //Proc of the 39th Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2016: 729−732

    [28] 钱忠胜,杨家秀,李端明,等. 结合用户长短期兴趣与事件影响力的事件推荐策略[J]. 计算机研究与发展,2022,59(12):2803−2815

    Qian Zhongsheng, Jiaxiu Jiaxiu, Li Duanming, et al. An event recommendation strategy combining users’ long-term and short-term interests and event influence[J]. Journal of Computer Research and Development, 2022, 59(12): 2803−2815 (in Chinese)

    [29]

    Wang Jianling, Ding Kaize, Zhu Ziwei, et al. Session-based recommendation with hypergraph attention networks [C] //Proc of the 21st SIAM Int Conf on Data Mining. Philadelphia, PA: SIAM, 2021: 82−90

    [30] 曾义夫,牟其林,周乐,等. 基于图表示学习的会话感知推荐模型[J]. 计算机研究与发展,2020,57(3):590−603

    Zeng Yifu, Mou Qilin, Zhou Le, et al. Session-aware recommendation model based on graph representation learning[J]. Journal of Computer Research and Development, 2020, 57(3): 590−603 (in Chinese)

    [31]

    Kurashima T, Althoff T, Leskovec J. Modeling interdependent and periodic real-world action sequences [C] //Proc of the 27th Int Conf on World Wide Web. New York: ACM, 2018: 803−812

    [32]

    Chen Jun, Wang Chaokun, Wang Jianmin, et al. Recommendation for repeat consumption from user implicit feedback[J]. IEEE transactions on Knowledge and Data Engineering, 2016, 28(11): 3083−3097 doi: 10.1109/TKDE.2016.2593720

    [33]

    Bai Ting, Zou Lixin, Zhao Xin, et al. CTrec: A long-short demands evolution model for continuous-time recommendation [C] //Proc of the 42nd Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2019: 675−684

    [34]

    Ren Pengjie, Chen Zhumin, Li Jing, et al. Repeatnet: A repeat aware neural recommendation machine for session-based recommendation [C] //Proc of the 33rd AAAI Conf on Artificial Intelligence. Menlo Park, CA: AAAI, 2019: 4806−4813

    [35]

    Yu Yonghong, Wang Can, Wang Hao, et al. Attributes coupling based matrix factorization for item recommendation[J]. Applied Intelligence, 2017, 46: 521−533 doi: 10.1007/s10489-016-0841-8

    [36]

    Wang Shoujin, Wang Yan, Hu Liang, et al. Modeling user demand evolution for next-basket prediction [J]. IEEE transactions on Knowledge and Data Engineering, 2022(99): 1−14

    [37]

    Katz O, Barkan O, Koenigstein N, et al. Learning to ride a buy-cycle: A hyper-convolutional model for next basket repurchase recommendation [C] //Proc of the 16th ACM Conf on Recommender Systems. New York: ACM, 2022: 316−326

    [38]

    Hu Haoji, He Xiangnan, Gao Jinyang, et al. Modeling personalized item frequency information for next-basket recommendation [C] // Proc of the 43rd Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2020: 1071−1080

    [39]

    Ariannezhad M, Jullien S, Li Ming, et al. ReCANet: A repeat consumption-aware neural network for next basket recommendation in grocery shopping [C] //Proc of the 45th Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2022: 1240−1250

    [40]

    Qin Yuqi, Wang Pengfei, Li Chenliang. The world is binary: Contrastive learning for denoising next basket recommendation [C] // Proc of the 44th Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2021: 859−868

  • 期刊类型引用(1)

    1. LUO Haoran,HU Shuisong,WANG Wenyong,TANG Yuke,ZHOU Junwei. Research on Multi-Core Processor Analysis for WCET Estimation. ZTE Communications. 2024(01): 87-94 . 必应学术

    其他类型引用(4)

图(6)  /  表(4)
计量
  • 文章访问数:  212
  • HTML全文浏览量:  18
  • PDF下载量:  125
  • 被引次数: 5
出版历程
  • 收稿日期:  2023-03-30
  • 修回日期:  2023-06-11
  • 网络出版日期:  2023-06-25
  • 刊出日期:  2023-07-31

目录

/

返回文章
返回