1、华南师范大学学报(自然科学版)Journal of South China Normal University(Natural Science Edition)2022,54(6):119127doi:106054/jjscnun2022093收稿日期:20211124华南师范大学学报(自然科学版)网址:http:journalnscnueducn基金项目:国家自然科学基金项目(62072207)*通信作者:王立斌,Email:lbwang scnueducn完整内部安全的混合签密方案设计与分析廖钰城,王立斌*,黄杰彬(华南师范大学计算机学院,广州 510631)摘要:设计达到完整内部安全的混
2、合签密方案(HSC)是目前亟待解决的重要问题,而如何实现高效安全的签密密钥封装机制(SCKEM)则是解决该问题的关键。为此,先设计一种带标签的签密密钥封装机制(SCtagKEM)的通用构造方案(SCtKstd),该方案通过签名绑定标签与密钥封装报文,将得到的签名和临时密钥使用消息认证码进行绑定。在标准模型下进行的安全性分析表明 SCtKstd方案可达到 DMINDiCCA 安全和 DMSUFiCMA 安全,进而为达成完整内部安全奠定基础。然后,将 SCtKstd方案与被动安全对称加密机制结合,构造了一种可达完整内部安全的混合签密的通用构造方案(HSCstd)。在标准模型下进行的安全性分析表明H
3、SCstd方案同时具备 INDCCA2安全与 SUFCMA 安全,进而达到完整内部安全。关键词:混合签密方案;完整内部安全;可证明安全中图分类号:TP309文献标志码:A文章编号:10005463(2022)06011909Design and Analysis of Hybrid Signcryption Scheme with Full Insider SecurityLIAO Yucheng,WANG Libin*,HUANG Jiebin(School of Computer,South China Normal University,Guangzhou 510631,China)Ab
4、stract:Currently,it is of significant importance to design a hybrid signcryption scheme(HSC)with full insidersecurity,and one of the crucial methods is to implement an efficient and secure signcryption key encapsulationmechanism(SCKEM)To this goal,a new generic construction scheme(HSCstd)of secure s
5、igncryption tag keyencapsulation mechanism(SCtagKEM)is proposed,which signing a tag together with the encapsulation of key,and using message authentication code binding of the signature and the ephemeral key to achieve DMINDiCCAsecurity and DMSUFiCMA security under the standard model,thus the founda
6、tion for full insider security is es-tablished Furthermore,combined with the passivesecure symmetric encryption scheme,a new generic construc-tion(HSCstd)of hybrid signcryption scheme achieving the full insider security is presented It is analysed to achieveDMCCA2 security and SUFCMA security under
7、the standard model,thus achieving the full insider securityKeywords:hybrid signcryption scheme;full insider security;provable security签密方案(Signcryption Scheme,SC)1 是一个逻辑步骤内同时实现数字签名和公钥加密功能的非对称密码协议,其在有效提高签名和加密效率的同时,还能够提供保密性、认证性和完整性等安全性保障,是公钥密码体制下确保网络环境中多方通信安全的重要密码技术。混合 签 密 方 案(Hybrid Signcryption Sche
8、me,HSC)是在传统签密方案的基础上,通过引入对称加密体制的协议构件来进一步提升了协议的计算效率,从而解决了传统签密方案在长明文通信时效率不佳的问题2。得益于此优势,近年所提出的签密方案38 实质均为混合签密方案。为了方便实例化混合签密方案,BJSTAD和 DENT9 提出了带标签的签密密钥封装机制(Signcrytion tag Key Encapsula-tion Mechanism,SCtagKEM),可通过“带标签的签密密钥封装机制+被动安全对称加密机制”(SCtagKEM+DEM)的构造来实例化混合签密方案。混合签密方案的完整内部安全10 是指在多方内部安全模型下,混合签密方案同时
9、达到适应性选择密文不可区分性(INDCCA2)安全和选择报文攻击强存在性不可伪造(SUFCMA)安全。当前,许多研究致力于实现完整内部安全的混合签密方案34,11。2013 年,LI 等11 基于签名后加密提出了一种签密方案,并声称其达到了完整内部安全,但实质上由于其未完整重用随机数,可通过解密后选取新鲜随机数重新加密的方式攻击其 SUFCMA 安全,因此该方案并不具备完整内部安全。2014 年,LU 等12 基于文献 11 实现了混合签密方案,但认证性上仅达到了存在性不可伪造(EUFCMA)安全,未达到完整内部安全。2018 年,GAD 和MECKX8 提出了基于格密码的后量子安全混合签密方
10、案(SETLA),但在加密算法设计上,误差分布的定义参数及误差参数均远超出既定限制范围,因此该协议不具备正确性。为解决上述正确性问题,刘镇等13 放弃了随机数重用方式,提出了一种签名后加密的签密方案,但该方案仅能达到 EUFCMA 安全,同样不具备完整内部安全。2019 年,YANG等14 提出了标准模型下的高效混合签密方案,但该方案的安全性仅达到了多方内部的 INDCCA2 和EUFCMA 安全,无法达到完整内部安全。为解决上述问题,本文主要基于 SCtagKEM 的通用构造,展开对完整内部安全的混合签密方案的相关研究。首先,提出了一种带标签的签密密钥封装机制(SCtagKEM)的通用构造方
11、案(SCtKstd),该方案通过数字签名构件绑定标签与密钥封装报文,进一步将得到的签名和临时密钥通过消息认证码进行外部信息绑定,从而在标准模型下可证明达到完整内部安全。然后,将 SCtKstd方案应用在“SCtagKEM+DEM”的通用构造中,提出了可达完整内部安全的混合签密的通用构造方案(HSCstd),并对其进行了安全性分析。1预备知识下面对本文的符号进行说明,并列举方案构造以及分析中使用到的密码学原语。11符号说明对于函数 negl(n),如果对于任意的正多项式p(),皆存在正整数 N,使得对于任意的N,皆有negl(n)1/p(),则称 negl(n)是可忽略函数。对任意概率性多项式时
12、间算法A,aA(b)表示概率性多项式时间算法A以元素 b 为输入,输出元素 a。若A为确定性多项式时间算法,则记为 a=A(b)。对任意的集合S,sS表示元素 s 随机抽取自集合S的均匀分布;若 D 是在集合S上的概率性分布,sD则表示根据分布 D,从集合S中抽样一个元素 s。12密钥封装机制密钥封装机制(Key Encapsulation Mechanism,KEM)由以下 4 个算法构成:(1)KEMSetup(1)prm:该算法以安全参数为输入,输出公共参数 prm。(2)KEMKeyGen(prm)(pk,sk):该算法以公共参数 prm 为输入,输出用户的公私密钥(pk,sk)。(3
13、)KEMEncap(prm,pk)(K,C):该算法输入公共参数 prm 和用户公钥 pk,输出临时随机密钥 K和对应该密钥的密钥封装报文 C。(4)KEMDecap(prm,sk,C)K or:该算法输入公共参数 prm、用户私钥 sk 和密钥封装报文 C,输出密钥 K 或错误信息。称密钥封装机制KEM 有正确性,当且仅当对prmKEMSetup(1)和任意 pk,sk()KEMKeyGen(prm)、K,C()KEMEncap(prm,pk),K=KEMDecap(prm,sk,C)以(1negl()的概率成立。KEM 的 INDCCA2 安全则考虑由挑战者C与攻击者A按以下步骤进行安全游
14、戏:(1)设置阶段:挑战者C生成 prmKEMSetup(1),(pk,sk)KEMKeyGen(pk,sk),(K0,C*)KEMEn-cap(prm,pk),并且令K1KKEM,其中KKEM为临时密钥空间。随后,挑战者C随机抛币 b 0,1,并返回(prm,pk,Kb,C*)给攻击者A,保留私钥 sk。(2)查询阶段:攻击者A向挑战者C发起适应性选择密文查询 CC*;挑战者 C接收到查询密文CC*后,调用 KEMDecap prm,sk,C()K or,并将结果返回给攻击者A。(3)猜测阶段:攻击者A输出b 0,1。若b=b,则称攻击者A获得游戏胜利。定义 115(KEM 的 INDCCA
15、2 安全)称密钥封装机制 KEM 具备 INDCCA2 安全,当且仅当对任意的概率性多项式时间攻击者A,在 KEM 的协议环境下执行 KEM 的 INDCCA2 安全游戏,获得游戏胜利的优势概率为:AdvINDCCA2KEM,A=Pr b=b 1/2 negl(),且该优势概率关于安全参数可忽略。021华 南 师 范 大 学 学 报(自 然 科 学 版)第 54 卷13数字签名数字签名方案(SignatureScheme,SIG)由以下 4个算法构成:(1)SIGSetup(1)prm:该算法以安全参数为输入,输出公共参数 prm。(2)SIGKeyGen prm()pk,sk():该算法以公
16、共参数 prm 为输入,输出用户的公私密钥 pk,sk()。(3)SIGSign prm,sk,m():该算法输入公共参数 prm、用户私钥 sk 和明文信息 m,输出对应的数字签名信息。(4)SIGVer prm,pk,m,()or:该算法输入公共参数 prm、用户公钥 pk、明文 m 和数字签名信息,输出接受信息或错误信息。称数字签名方案 SIG 具有正确性,当且仅当对prmSIGSetup(1)和任意的(pk,sk)SIGKeyGen(prm)及明文 m,SIGVer(prm,pk,m,SIGSign(prm,sk,m)=成立的概率为(1negl()。SIG 的 SUFCMA 安全游戏则
17、考虑挑战者 C 与攻击者A按以下步骤进行安全游戏:(1)设置阶段:挑战者C 生成 prmSIGSetup(1),(pk,sk)SIGKeyGen(prm)。挑战者C 生成列表LSIG,记录游戏中生成的签名和对应明文信息。随后,挑战者C将(prm,pk)发送给攻击者A,并保留私钥 sk。(2)查询阶段:攻击者A向挑战者C发起适应性信息查询 m。挑战者C接收到查询明文 m 后,首先检查列表LSIG中是否存在 m 的签名信息。若有,则返回 给攻击者A;否则,调用 SIGSign(prm,sk,m),并将(m,)记录到列表LSIG,将 返回给攻击者A。(3)输出阶段:攻击者 A输出(m*,*),若SI
18、GVer(prm,pk,m*,*),并且(m*,*)L,则称攻击者A获得游戏胜利。定义 216(SIG 的 SUFCMA 安全):称数字签名方案 SIG 具备 SUFCMA 安全,当且仅当对任意的概率性多项式时间攻击者A,在 SIG 的协议环境下执行数字签名的 SUFCMA 安全游戏,获得游戏胜利的优势概率为:AdvSUFCMASIG,A=Pr SIGVer(prm,pk,m,)(m,)L negl(),且该优势概率关于安全参数可忽略。14消息认证码对称加密的消息认证码(Message AuthenticationCode,MAC)主要包含 MACSign 算法和 MACVer 算法。使用KM
19、表示消息认证码的对称密钥空间,该空间通常取决于安全参数。对任意的对称密钥 mkKM,明文消息0,1*,有 MACVer(mk,=MACSign(mk,),)=以(1negl()的概率成立,称 为明文消息关于对称密钥 mk 的消息认证码。消息认证码的一次选择信息攻击安全:称攻击者A对消息认证码 MAC 成功发起一次选择信息攻击,当且仅当其适应性选取消息并获得关于对称密钥 mk 的消息认证码=MACSign(mk,)后,成功构造出(*,*),满足 MACVer(mk,*,*)=。若任意多项式时间攻击者A对消息认证码 MAC成功发起一次选择信息攻击的优势概率关于安全参数可忽略,则称 MAC 是一次选
20、择信息攻击安全。消息认证码的 OnetoOne 属性:称消息认证码 MAC 是 OnetoOne 的,当且仅当对任意的 mk KM,任意的明文消息 0,1*,有且仅有唯一的消息认证码=MACSign mk,(),满足 MACVer(mk,)=。15对称加密算法使用KD表示对称加密算法的密钥空间。对称加密算法(Symmetric Mechanism,SYM)由以下 2 个算法构成:(1)SYMENC(dk,m)C:算法以对称密钥dkKD和明文 m 为输入,输出密文 C。(2)SYMDEC(dk,C)m:该算法以对称密钥dkKD和密文 C 为输入,输出明文 m。称对称加密方案 SYM 具有正确性,
21、当且仅当对任意的密钥 dkKD、明文 m,m=SYMDEC(dk,SY-MENC(dk,m)以(1negl()的概率成立。对称加密算法的 INDPA 安全游戏如下:挑战者C向攻击者A发送安全参数,并随机生成对称密钥 dkKD;攻击者A接收到安全参数后,选取明文m0和m1返回给挑战者C;挑战者C接收到(m0,m1)后,随机抛币 b 0,1,并返回 C*=SYMENC(dk,mb)给攻击者A;攻击者A接收到C*后,输出b 0,1。若满足b=b,则称攻击者A获得游戏胜利。定义 317(对称加密算法的 IND PA 安全)称对称加密方案 SYM 具备 IND PA 安全,当且仅当对任意的概率性多项式时
22、间攻击者A,在 SYM 的协议环境下执行 SYM 的 INDPA 安全游戏,获得游戏胜利的优势概率为:AdvINDPASYM,A=Pr b=b 1/2 negl(),且该优势概率关于安全参数可忽略。16密钥推导函数使用KK表示密钥封装机制的密钥空间。密钥121第 6 期廖钰城等:完整内部安全的混合签密方案设计与分析推导函数KDF2:KKKDKM是确定性函数,其将输入的密钥 KKK映射到密钥空间KDKM作为输出,并且满足输出分布与KDKM的均匀分布统计不可区分。称密钥推导函数KDF2安全,当且仅当其对任意多项式时间攻击者A,均有:D0=(dk,mk)|(dk,mk)KDKM,D1=(dk,mk)
23、KKK,(dk,mk)KDF2(K),|Pr b 0,1,(dk,mk)Db,bA(KDF2,(dk,mk),b 1/2|negl()成立。2SCtKstd方案本节将提出一种带标签的签密密钥封装机制的通用构造方案(SCtKstd),并进行安全性分析。21带标签的签密密钥封装机制带标签的签密密钥封装机制的协议概念4 和安全模型17 的具体表述如下。定义 44 带标签的签密密钥封装机制(SCtK)由以下 6 个算法构成:(1)SCtKSetup(1)prm:该算法以安全参数为输入,输出公共参数 prm。(2)SCtKKeyGenSprm()pkS,skS():该算法以公共参数 prm 为输入,输出
24、用户的发送方公私密钥pkS,skS()。(3)SCtKKeyGenprm()pk,sk():该算法以公共参数 prm 为输入,输出用户的接收方公私密钥pk,sk()。(4)SCtKSym prm,skS,pk()K,():该算法输入公共参数 prm、发送方私钥skS和接收方公钥pk,输出临时随机密钥 K 和中间状态信息。(5)SCtKEncap prm,skS,pk,()C:算法输入公共参数 prm、发送方私钥skS、接收方公钥pk、中间状态信息 和标签信息,输出带标签的签密密钥封装报文 C。(6)SCtKDecap prm,sk,pkS,C,()K or:该算法输入公共参数 prm、接收方私
25、钥sk、发送方公钥pkS、签密密钥封装报文C 和标签信息,输出密钥 K 或错误信息。称带标签的签密密钥封装机制 SCtK 具有正确性,当且仅当对任意的 prmSCtKSetup(1)、(pkS,skS)SCtKKeyGenS(prm)、(pk,sk)SCtKKey-Gen(prm)、(K,)SCtKSym(prm,skS,pk)及 CSCtKEncap(prm,skS,pk,),SCtKDecap(prm,sk,pkS,C,)=K 以(1negl()的概率成立。定义 517(带标签的签密密钥封装机制的DMINDiCCA 安全游戏)挑战者C与攻击者A按以下步骤进行安全游戏:(1)设置阶段:挑战者
26、C调用 SCtKSetup(1)prm,SCtKKeyGen(prm)(pk,sk),将(prm,pk)发送给攻击者A,并保留私钥sk。阶段 1:攻击者A任意调用 SCtKKeyGenS(prm)(pkS,skS)和任意发起适应性选择密文查询(pkS,C,);挑战者C接收到(pkS,C,)后,调用 SCtKDecap(prm,sk,pkS,C,)K or,并将结果返回给攻击者A。(2)挑战阶段:攻击者A适应性选取合法的发送方公私密钥(pk*S,sk*S),将其发送给挑战者C。挑战者C接收到(pk*S,sk*S)后,调用 SCtKSym(prm,sk*S,pk)(K0,*),并且令K1KSCta
27、gKEM,其中KSCtagKEM为临时密钥空间。挑战者C随后进行抛币b0,1,将Kb返回给攻击者A。攻击者A接收到Kb后,将适应性选取标签信息*发送给挑战者C。挑战者C接收到标签信息*后,进一步调用 SCt-KEncap prm,sk*S,pk,*,*()C*,返回C*给攻击者A。阶段2:攻击者A与阶段1 一致,可向挑战者C发起任意的适应性选择密文查询 pkS,C,(),要求pkS,C,()(pk*S,C*,*)。(3)猜测阶段:攻击者A输出b 0,1。若b=b,则称攻击者A获得游戏胜利。定义 617(带标签的签密密钥封装机制的DMINDiCCA 安全)称签密密钥封装机制 SCtK 具备 DM
28、INDiCCA 安全,当且仅当对任意概率性多项式时间攻击者A,在 SCtK 的协议环境下执行 SCtagKEM 的 DMINDiCCA 安全游戏,获得游戏胜利的优势概率为:AdvDMINDiCCASCtK,A=Pr b=b 1/2 negl(),且该优势概率关于安全参数可忽略。定义 717(带标签的签密密钥封装机制的DMSUFiCMA 安全游戏)挑战者C与攻击者A按以下步骤进行安全游戏:设置阶段:挑战者C调用 SCtKSetup(1)prm,SCtKKeyGenSprm()(pkS,skS),保留私钥skS,将prm,pkS()发送给攻击者A。挑战者C生成列表L,以记录游戏中生成的签密密文和对
29、应的封装密钥及中间状态信息。221华 南 师 范 大 学 学 报(自 然 科 学 版)第 54 卷查询阶段:攻击者A可以任意调用 SCtKKey-Genprm()pk,sk(),并适应性选取pk发送给挑战者C;挑战者C接收到pk后,调用 SCtKSym(prm,skS,pk)K,(),将 K 发送给攻击者A,并等待其进一步返回适应性选取的标签信息;挑战者C首先检查列表L中是否有 pk,K,()的匹配项(pk,K,C):若有,则返回C;否则,调用 SCtKEncap(prm,skS,pk,)C,并将 C 返回给攻击者A且记录(pk,K,C)到列表L当中。输出阶段:攻击者A输出(pk*,sk*,C
30、*,*),满足(pk*,sk*)为合法的接收方公私密钥。若 SCTK-Decap(prm,sk*,pkS,C*,*)=K*,并且(pk*,K*,*,C*)L,则称攻击者A获得游戏胜利。定义 817(带标签的签密密钥封装机制的DMSUFiCMA 安全)称带标签的签密密钥封装机制 SCtK 具备 DMSUFiCMA 安全,当且仅当对任意的概率性多项式时间攻击者A,在 SCtK 的协议环境下执行 DMSUFiCMA 安全游戏,获得游戏胜利的优势概率为:AdvDMSUFiCMASCtK,A=Pr SCtKDecap(prm,sk*,pkS,C*,*)=K*(pk*,K*,*,C*)L negl(),且
31、该优势概率关于安全参数可忽略。22方案构造定义密钥封装机制 KEM=(KEMSetup,KEMKey-Gen,KEMEncap,KEMDecap),数字签名方案 SIG=(SIGSetup,SIGSign,SIGVer),信 息 认 证 码 MAC=(MACSign,MACVer),密钥推导函数KDF2:KKKDKM,其中,KK、KD、KM分别为 KEM、DEM、MAC 密钥空间。标准模型下,带标签的签密密钥封装机制的通用构造方案(SCtKstd)如图 1 所示。图 1带标签的签密密钥封装机制的通用构造方案(SCtKstd)Figure1The generic construction sch
32、eme(SCtKstd)of signcryption tag key encapsulation mechanism23安全性证明定理 1密钥封装机制 KEM 具备 INDCCA2 安全,数字签名方案 SIG 具备 SUFCMA 安全,密钥推导函数KDF2安全,信息认证码 MAC 满足一次选择信息攻击安全并具备 OnetoOne 属性,则 SCtKstd方案在标准模型下达到完整内部安全。证明完整内部安全包含 DMINDiCCA 安全和 DMSUFiCMA安全,以下从这 2 个方面给出SCtKstd方案的具体安全性证明,其中省略了协议内部的公共环境参数 prm。(1)SCtKstd方案的 DM
33、INDiCCA 安全证明。假设存在攻击者A以不可忽略的优势概率成功攻击SCtKstd方案的 DMINDiCCA 安全,考虑以下的一系列安全游戏:Game 0:该游戏为原始游戏,挑战者C按 SCtKstd方案本身与攻击者A诚实地进行 SCtagKEM 的DMINDiCCA 安全游戏,从而有:AdvDMINDiCCASCtKstd,A=AdvGame0A。Game 1:在本次游戏中,挑战者C在游戏最开始阶段选取 KKK。进入挑战阶段后,挑战者C生成(*,C*)KEMEncap pk(),(dk0,mk)=KDF2(K),dk1KD,随后抛币 b 0,1,返回Kb给攻击者A,等待其返回标签信息*;在
34、攻击者A返回标签信息*后,挑战者C执行*1SIGSign(skS,(C*pk),并进一步依据 mk 计算*2=MACSign(mk,(*1,pkS),返回(C*,*1,*2),*)给攻击者A。对攻击者A发起适应性查询(pkS,(C,1,2),),若C=C*,则挑战者C将使用 K 为其执行解密预言机。除 K 的选取方式不同外,Game 0 和 Game 1 完全321第 6 期廖钰城等:完整内部安全的混合签密方案设计与分析一致。此时若存在攻击者A,其在 Game 0 和 Game 1中进行 SCtagKEM 的 DMINDiCCA 安全游戏的获胜优势分别为 0和 1,且获胜优势的差距是不可忽略的
35、:|01|negl(A),则以攻击者A为子算法,可构造区分器D用于攻击 KEM 的 INDCCA2 安全。区分器D的构造过程:令攻击者A为获得游戏胜利的优势概率不可忽略的多项式时间攻击者,并在 SCtKstd协议环境下进行 DMINDiCCA 安全游戏。以攻击者A为子算法,按如下步骤可构造多项式时间攻击者AKEM,以攻击 KEM 的 IND CCA2安全:攻击者AKEM在 KEM 的协议环境下进行 INDCCA2 安全游戏,在游戏的设置阶段接收到挑战者CKEM发送的挑战报文 pk,Kb,C*()。攻击者AKEM开始模拟 DMINDiCCA 安全游戏,将接收到的公钥 pk 作为设置阶段的pk发送
36、给攻击者A。进入 DMINDiCCA 安全游戏的阶段 1。此时,攻击者A将发起适应性查询(pkS,(C,1,2),),要求返回 SCtKDecap sk,pkS,C,1,2(),()。攻 击 者 AKEM将 首 先 调 用 SIGVer(pkS,(Cpk),1)来验证签名的合法性,若输出为,则返回。否则,继续验证 C=C*是否成立:若成立,则输出 abort 事件,结束本次游戏;否则,向挑战者CKEM发起适应性查询 C。若返回结果为 K 而不为空,则攻击者AKEM将计算(dk,mk)=KDF2(K),并验证 MACVer(mk,(1pkS):若输出为,则返回dk;否则,返回。此处 abort
37、事件的发生意味着攻击者在正式获得挑战密文前已访问到挑战密文,该事件发生的概率是可忽略的。进入 DMINDiCCA 安全游戏的挑战阶段。此时,攻击者A发送(pk*S,sk*S)给攻击者AKEM。攻击者AKEM根据其本身的挑战报文(pk,Kb,C*),计算(dk0,mk*)=KDF2(Kb),dk1KD,并随机抛币 c 0,1,将dkc返回给攻击者A。在攻击者A返回标签信息*后,攻击者AKEM调用 SCtKEncap(sk*S,pk,(mk*,C*),*)(C*,*1,*2),*),返回(C*,*1,*2),*)给攻击者A。进入DMINDiCCA 安全游戏的阶段2。对攻击者A发起的适应性查询(pk
38、S,(C,1,2),)(pk*S,(C*,*1,*2),*),攻击者AKEM首先验证签名1的合法性,若验证失败则返回。对CC*,攻击者AKEM向挑战者CKEM发起适应性查询C,若返回结果为K而不为空,则计算(dk,mk)=KDF2(K),并验证 MACVer(mk,(1,pks)=2是否成立。若成立,则返回dk,否则返回。而在C=C*的情况下,攻击者AKEM令(dk,mk)=KDF2(Kb),若验证MACVer(mk,(1,pks)=2通过,则返回dk,否则返回。进入 DMINDiCCA 安全游戏的猜测阶段。攻击者A输出c 0,1。若 c=c,则攻击者AKEM输出 b=0;否则,输出 b=1。
39、分析上述区分器D。在 abort 事件不发生的情况下:当攻击者AKEM获取到的Kb为对应C*的真实密钥K0时,攻击者A的实际游戏环境实质为 Game 0;反之,当Kb为随机密钥K1时,攻击者A的游戏环境实质为 Game 1。因此,Game 0 和 Game 1 之间,在攻击者A获得游戏胜利的优势概率差距不可忽略的情况下,若攻击者A猜测正确,则可认为攻击者AKEM当前获取到的Kb是真实密钥K0,否则可认为是随机密钥K1。从而,攻击者AKEM可通过不可忽略的优势概率成功攻击 KEM 的 INDCCA2 安全。此外,上述区分器D的 abort 事件取决于密文C*的取值空间MC以及攻击者A在 DMIN
40、DiCCA 安全游戏阶段 1 的可查询次数q1,从而AdvGame 1AAdvGame 0A2INDCCA2KEM+q1MC。Game 2:该游戏与 Game 1 基本一致,除挑战者C在游戏最开始阶段不随机选取 KKK,而是选取dk0mkKDKM。进入挑战阶段,挑战者C生成*,C*()KEMEncap pk(),dk1K,随机抛币 b 0,1 后,返回dkb给攻击者A。等待攻击者A返回适应性选取的标签信息*后,挑战者C根据攻击者A适应性选取的发送方公私密钥 pk*S,sk*S(),生成*1SIGSign(skS,(C*pk)和*2=MACSign(*1,pk*S),返回C*,*1,*2(),*
41、()给攻击者A。对攻击者A发起的适应性查询(pkS,(C,1,2),),若C=C*,则挑战者C根据dk0mk 为其执行解密预言机。因此,若密钥推导函数安全,则攻击者视角的Game 1 和 Game 2 完全一致;否则,可构造区分器来区分该密钥推导函数的输出分布,从而得到:AdvGame 2AAdvGame 1A2KDF。Game 3:该游戏与 Game 2 基本一致,除攻击者A在阶段2 向挑战者C发起适应性查询(pkS,(C,1,2),)时,若 C=C*,则挑战者C直接返回。此时421华 南 师 范 大 学 学 报(自 然 科 学 版)第 54 卷在 Game 3 中,攻击者无法再获取任何有关
42、挑战报文中C*的有利信息,即使其构造了有关挑战报文C*的新鲜签密报文,均只能获得信息,从而AdvGame 3A=12。接下来,对 Game 2 和 Game 3 之间攻击者A的优势概率进行绑定。注意到在 Game 2 中,密钥 dkmkKDKM已达到真随机。假设 Game 2 和 Game 3之间的优势概率丢失不可忽略,则攻击者A必然对根据挑战报文(C*,*1,*2),*)构造的新鲜的签密报文(C*,*1,*2),*)成功发起了预言机查询,对该过程进行分析:Game 2 中的攻击者A本身具备签名私钥,因此必然可构造出对应 C*,*()的签名*1。然而,对于消息认证码*2,对应的 MAC 密钥
43、mk 是随机选取的 并 且 与 C*完 全 独 立,攻 击 者 A 无 法 从C*,*1()中获取任意构造*2的有利信息。此时,攻击者A在仅有消息*=*1pkS()和*2=MAC-Sign(mk,(*1pk*S)的情况下构造了新消息*=(*1pkS)以及关于 mk 的合法 MAC 标签*2,等于成功发起了对 MAC 的一次选择信息攻击。从而,将攻击者A在 Game 2 和 Game 3 之间的概率优势丢失绑定到 MAC 的一次选择信息攻击安全上,即:AdvGame 3AAdvGame 2AMAC。最终可得到:AdvDMINDiCCASCtKstd,A=AdvGame 0A12+MAC+2KDF
44、+2INDCCA2KEM+q1MC。(2)SCtKstd方案的 DMSUFiCMA 安全证明。SCtKstd方案本质仍为加密后签名的结构,对于接收方内部敌手A获取到的任意的签密报文(C,1,2),),可通过对 C 解签密来获取对应2的 MAC密钥 mk。但在MAC 的OnetoOne 属性情况下,若其成功构造出新鲜的合法签密报文来攻击 DMSUFiCMA安全,则必然生成了新鲜的合法签名 1,以此可攻击数字签名方案 SIG 的 SUFCMA 安全。从而以攻击者A为子算法,可构造对签名方案 SIG 的多项式时间攻击者ASIG。构造过程:以攻击者A为子算法,构造概率性多项式时间攻击者ASIG,对签名
45、方案 SIG 的 SUFCMA安全发起攻击:(1)攻击者ASIG在 SIG 的协议环境下进行 SUFCMA 安全游戏,在该游戏的设置阶段接收到挑战者CSIG发送的公钥 pk。(2)攻击者ASIG开始模拟 DMSUFiCMA 安全游戏且与攻击者A进行交互,并将公钥 pk 作为该游戏设置阶段的pkS发送给攻击者A。(3)进入 DMSUFiCMA 安全游戏的查询阶段。对攻击者A适应性选取的接收方公钥pk,攻击者ASIG调用 KMEncap pk()K,C(),生成(dk,mk)=KDF2K(),设置中间状态信息=mk,C(),返回 dk给攻击者A,并等待其后续查询。在接收到攻击者A适应性选择的标签信
46、息后,攻击者ASIG根据标签信息、中间信息=mk,C()和接收方公钥pk,向挑战者CSIG查询 Cpk()的签名信息1,并生成信息2=MACSign mk,1,pkS()(),返回 C,1,2()给攻击者A。(4)进入 DMSUFiCMA 安全游戏的输出阶段。此时,攻击者A输出针对 SCtKstd方案的 DMSUFiC-MA 安全的伪装报文(pk*,sk*,(C*,*1,*2),*),攻击者ASIG直接令 m=(C*pk*),将(m*,*1)返回给挑战者CSIG。对上述构造过程进行分析可以看到,攻击者ASIG完美模拟了 SCtKstd方案的 DMSUFiCMA 安全游戏并与攻击者A进行交互。假
47、设攻击者A成功攻击了 SCtKstd方案的 DMSUFiCMA 安全,则对其最终返回的伪造报文(pk*,sk*,C*,*1,*2(),*)进行分析:若此前未向挑战者CSIG查询过信息 m=(C*pk*)的签名信息,则攻击者ASIG可成功攻击 SIG 的 SUFCMA 安全;若此前向挑战者CSIG查询过信息 m 的签名信息,则根据密钥封装机制的正确性、密钥推导函数的确定性和 MAC 的 OnetoOne属性,攻击者A必然构造了信息 m=(C*pk*)的新鲜签名,则攻击者ASIG同样可成功攻击 SIG 的SUFCMA 安全。因此,在数字签名方案 SIG 本身具备 SUFCMA安全的情况下,SCtK
48、std方案是具备 DMSUFiCMA安全的。综上,SCtKstd方案在标准模型下可证明满足DMINDiCCA安全和 DMSUFiCMA 安全,进而达到完整内部安全。证毕。3HSCstd方案本节将 SCtKstd方案应用在“SC tag KEM+521第 6 期廖钰城等:完整内部安全的混合签密方案设计与分析DEM”的通用构造当中,提出了一种可达完整内部安全的混合签密的通用构造方案(HSCstd),并进行安全性分析。定义 99(签密方案,SC)完整的 SC 方案由以下 5 个算法构成:(1)SCSetup(1)prm:该算法以安全参数为输入,输出公共参数 prm。(2)SCKeyGenSprm()
49、pkS,skS():该算法以公共参数 prm 为输入,输出用户的发送方公私密钥pkS,skS()。(3)SCKeyGenprm()pk,sk():该算法以公共参数 prm 为输入,输出用户的接收方公私密钥pk,sk()。(4)SCSC prm,skS,pk,m()C:该算法实现签密功能,输入公共参数 prm、发送方私钥skS、接收方公钥pk和明文 m,输出签密密文 C。(5)SCUSC prm,sk,pkS,C()m or:该算法实现解签密功能,输入公共参数 prm、接收方私钥sk、发送方公钥pkS和签密密文 C,输出明文 m 或错误信息。称签密方案 SC 具有正确性,当且仅当对 prmSCS
50、etup(1)和任意的(pkS,skS)SCKeyGenS(prm),(pk,sk)SCKeyGen(prm),明文 m 和签密密文CSCSC(prm,skS,pk,m),SCUSC(sk,pkS,prm,C)=m 以(1negl()的概率成立。31通用构造方案定义密钥封装机制 KEM=(KEMSetup,KEMKey-Gen,KEMEncap,KEMDecap),数字签名方案 SIG=(SIGSetup,SIGKeyGen,SIGSign,SIGVer),信息认证码MAC=(MACSign,MACVer),对称加密算法SYM=(SYMENC,SYMDEC),密钥推导函数KDF2:KKKDKM