一种通用可组合安全的非交互式承诺方案

2024-03-05 08:19蔡泗沐王立斌
计算机与现代化 2024年1期
关键词:双模式敌手模拟器

蔡泗沐,王立斌

(华南师范大学计算机学院,广东 广州 510631)

0 引 言

承诺方案(commitment schemes)是密码协议中最基本的组件之一,由承诺阶段和承诺打开阶段2 个阶段组成。在承诺阶段,承诺方发送包含承诺值x的密封信封给接收方。在承诺打开阶段,承诺方以接收方可以验证的方式从信封中打开承诺值x。承诺方案至少满足以下2 种属性[1]:1)绑定属性(biding property),表示承诺方不能更改包含在信封里的承诺值x;2)隐藏属性(hiding property),表示在承诺方打开信封之前,接收方无法获得关于承诺值x的任何信息[2]。

通用可组合(Universal Composability,UC)框架下安全的承诺方案由Canetti等人提出[1]。UC 承诺方案可以用来构建UC安全的零知识协议[3]和两方或多方计算[4-5]。根据组合定理[6],UC 安全协议具有与任意协议的安全可组合性,而不需要重新验证其安全性。为达到UC安全,UC承诺方案必须同时满足可提取 性(extractability)和 模 棱 两 可 性(equivocability)[7-8]。可提取性表示模拟器可以从承诺中提取出承诺值,模棱两可性表示模拟器可以生成能打开为任意值的承诺。此外,在平实模型(plain model)中无法构造UC 承诺方案,因此不能在没有额外设置假设的情况下构造它们[1]。一种常用的设置假设是公共参考串(Common Reference String,CRS)模型,它允许被信任的实体从正确的分布中生成CRS,而不公开它的陷门[1]。

目前有多种CRS 模型下的UC 承诺方案被提出[9-11]。Lindel[9]提出了第一种基于普通素数阶群的高效UC承诺方案。Blazy等人[10]纠正了Lindell方案中的一个漏洞,并提出了一种带有额外优化的新方案。Fujisaki[11]进一步优化了文献[10]的方案,得到了一种普通素数阶群中目前已知的最有效的UC承诺方案[12]。

现有的几种高效的UC 承诺方案[9-11]都是交互式的承诺方案,交互式的承诺方案不仅增加了通信的轮数,且可能会遭受拒绝服务攻击[13-14]。在交互阶段中,各方需要在通信回合之间保持状态。因此,敌手(恶意发送方/接收方或中间人)可以通过在通信回合期间发送不正确生成的消息来诱使各方浪费他们的资源,而在非交互式的情况下不会存在这种问题[15]。然而,已有的非交互式承诺方案相对于交互式承诺方案具有较高的协议计算量和复杂度,降低了协议的效率,如Fischlin 等人[13]的非交互式UC 承诺方案。为此,本文将文献[9-10]中交互式方案的承诺打开阶段改进为一轮通信,实现了协议的非交互性,得到一种高效的非交互式UC承诺方案。

实现UC安全的主要思想在于实现协议的可提取性和模棱两可性。在承诺阶段中,承诺方案[9-10]使用一种CCA2 安全的加密方案对承诺值进行承诺,利用加密方案的完美绑定(perfectly binding)属性,实现承诺方案的可提取性。而在承诺打开阶段,其进行一次由∑协议[16]转化得到的交互式零知识证明,实现了承诺方案的模棱两可性。

本文协议在承诺阶段沿用常规UC承诺方案的方法,使用一个CCA2 安全的加密方案对承诺值进行承诺。但在承诺打开阶段中,对∑协议进行一次Fiat-Shamir[17]转换,得到一种非交互式零知识证明,用于证明打开的承诺值,实现了协议的非交互性;且利用一种双模式承诺[18]来保持整个承诺方案的模棱两可性,得到了一种高效的UC 非交互式承诺方案。与最初的原有方案[9]相比,不仅减少了承诺打开阶段的通信轮数,且降低了协议计算量和通信量。与文献[13]中的非交互式承诺方案相比,大大减少了协议计算量和通信量,提高了协议的效率,且不需要用到双线性对[19]。本文重点关注高效、非交互式的UC承诺方案。

1 背景知识

设S为一个集合,sS指从集合S抽取一个元素s。安全参数记为n,若对于每个多项式p存在整数N,使得每个n>N满足μ(n) <1/p(n),则称函数μ可忽略。记A为一个事件(都包含于某个样本空间内),Pr[A]代表事件A发生的概率,X和Y表示2 种概率分布。若对于非均匀多项式时间的区分器D,存在可忽略 函 数μ,使 得 所 有a∈{ 0,1}*和n∈N,满 足|Pr[D(X(n,a))]= 1| - |Pr[D(Y(n,a))]= 1| ≤μ(n),则称{X(n,a)}n∈N;a∈{0,1}*与{Y(n,a)}n∈N;a∈{0,1}*这2种分布计算上不可区分,表示为{X(n,a) }≡c{Y(n,a) }。{X(n,a) }≡{Y(n,a) }表示2种分布统计上不可区分。

1.1 ∑协议

∑协议[16]是一种三轮诚实验证方零知识协议。证明方P要证明的语句记为x,P和验证方V交互发送的消息记为(a,e,z)。如果验证方V基于值(x,a,e,z)通过验证,则称(a,e,z)为证明语句x的可接受元组。下面给出∑协议的形式化定义。

定义1如果协议是三轮公共抛币协议并且满足以下要求,则协议是二元关系R的∑协议:

完备性(completeness):如果P和V在输入x和w上遵循协议,P有私有输入w,其中(x,w) ∈R,则V始终接受。

特殊可靠性(special soundness):存在一个多项式时间算法A,给定输入x,以及一对可接受元组(a,e,z)、(a,e',z'),其中e≠e',输出w使得(x,w)∈R。

特殊诚实验证方零知识(special honest-verifier zero knowledge):存在一个概率多项式时间模拟器M,它在输入(x,e)上输出形式为(a,e,z)的三元组,其与诚实的P和V在公共输入x上发送的三元组具有相同的概率分布。形式化描述如下,对于每个满足(x,w) ∈R的x和w,以及e∈{ 0,1}t,其中t为大于零的整数,有:

上述公式中M(x,e)表示模拟器M在输入(x,e)上的输出,<P(x,w),V(x,e) >表示在P和V的一个证明执行过程中输出的三元组,其中P的输入为(x,w),V的输入为x,且其随机挑战问询为e。

1.2 Cramer-Shoup加密方案

Cramer-Shoup 加密方案[20]是一种CCA2 安全的加密方案。分为3 个阶段:密钥生成阶段、加密阶段和解密阶段。

1)密钥生成阶段。公钥为(G,q,g1,g2,c,d,h),私钥为(x1,x2,y1,y2,z)。其中G是一个q阶群,g1、g2是群G的2个不同的生成元。随机抽取计算

2)加密阶段。若要加密m(m∈G),则随机抽取计 算u1=gr1,u2=gr2,e=hr·m,ω=H(u1,u2,e),v=(cdω)r,其中H:{ 0,1}n→Zq是一个抗碰撞哈希函数族。密文为(u1,u2,e,v)。

3)解密阶段。计算ω=Hk(u1,u2,e),若

1.3 双模式承诺方案

双模式承诺方案(dual-mode commitments)在文献[21]中被提出,该方案是在CRS模型下的承诺方案,有2 种不可区分的方式选取CRS。在生成常规的CRS 密钥时方案具备完美绑定性,而在以不可区分的方式生成替代CRS密钥时,该方案具备模棱两可性。更多的细节可以参考文献[18]。

以下给出一种本文需要用到的双模式承诺方案构造,该方案在判定性Diffie-Hellman 假设(Decisional Diffie-Hellman problem,DDH)下提出,且在∑协议的基础上转换而来。∑协议双方交互发送的消息记为(a,e,z),利用∑协议的特殊可靠性,当(x,w) ∉R时,对于每个初始消息a,仅存在一对(e,z)使得(a,e,z)是能通过验证的可接受元组。当(x,w) ∈R时,对于任意的a和e,都能成功计算z使得(a,e,z)是一个可接受元组。故常规CRS 密钥设置(x,w) ∉R,替代CRS则设置(x,w) ∈R。构造如下:

构造1双模式承诺方案

常规CRS 生成(regular CRS):CRS 为(G,q,g,h,u,v),G是q阶群,且有2 个生成元g、h。随机抽取p1,

替代CRS 生成(alternative CRS):随机抽取pZq,计算u=gp,v=hp,其余同上。

承诺阶段:对一个值m∈{ 0,1}n进行承诺,随机抽取zZq,计算a=gz/um,b=hz/vm,设置承诺c=(a,b)。

承诺打开阶段:承诺方提供(m,z),接收方验证gz=aum,hz=bvm,验证通过则输出m,否则输出0。

上述构造在常规CRS 的情况下(g,h,u,v)不是Diffie-Hellman 元组,因此根据∑协议的特殊可靠性,对于每一个初始消息(a,b)仅存在一对(e,z)使得gz=aue,hz=bve。故在常规CRS 下上述承诺方案具备完美绑定性。

在替代CRS 的情况下(g,h,u,v)是一个Diffie-Hellman 元组,且模拟器拥有证据p。故模拟器可在承诺阶段发送c=(a,b)=(gr,hr)。而在承诺诺打开阶段,模拟器可以将c打开为任意的值m,只需计算对应的z=r+mp。由于gz=gr+mp=gr(gp)m=aum,hz=hr(hp)m=bvm,故模拟器可成功将c打开为任意值m。因此在替代CRS下上述承诺方案具备模棱两可性。

1.4 非交互式零知识证明

非交互式零知识证明(Non-Interactive Zero-Knowledge,NIZK)涉及证明方P和验证方V,拥有证据w的P向V证明某个语句x,且NIZK 满足完备性(completeness)、可靠性(soundness)和零知识(zero knowledge)属性,有关NIZK 的详细定义可参考文献[22]。本节给出本文协议用到的一种非交互式零知识证明的构造,该构造在文献[18]中被提出。对一种∑协议做一次Fiat-Shamir 转换,且证明方需计算一个对协议中初始消息的双模式承诺,得到了一种NIZK,证明了该构造的可靠性和零知识属性。

构造2非交互式零知识证明

输入:公共语句x,证明方P有证据w使得(x,w)∈R。

CRS:双模式承诺方案的常规CRS pk,以及哈希函数族H的密钥k。

证明方算法P(x,w,pk):

1.计算a=P1(x,w)。

2.计 算c=(a,r),d=(a,r)。 其 中(a,r)表示使用随机数r和公钥pk 对a计算的双模式承诺,d表示对承诺c的打开。

3.计算e=Hk(x,c)。

4.计算z=P2(x,w,a,e)。

5.计算证明π=(x,c,d,z)。

验证方算法V(x,pk,c,d,z):

1.若d=(a,r)正确打开了c,则继续以下步骤,否则直接输出0。

2.计算e=Hk(x,c)。

3.输出V∑(x,a,e,z)。

引理1若∑=(P1,P2,V∑)是一种关系为R的协议,且Comdual是一种双模式承诺方案。H:{ 0,1}*→{ 0,1}n是一种不可编程的随机预言机(non-programmable random oracle),则上述 NIZK 具备自适应可靠性(adaptive soundness),即对于没有证据w的不诚实的证明方P,P成功证明语句x的概率是一个可忽略量。

1.5 安全模型

UC 框架定义了一个概率多项式时间(Probabilistic Polynomial-Time,PPT)环境机器Z,它监督理想世界和真实世界中协议的执行[23]。2 个世界中都有PPT敌手和诚实方,其中一些诚实方被敌手控制变为沦陷(corrupted)方。在现实世界中,真实协议在各方之间运行,并由现实世界敌手提供一些潜在的攻击。在理想世界中,还有一个可信第三方,即理想功能F。理想世界中的各方将它们的输入发送到理想功能F,F再以可信的方式执行协议的计算并将输出发送回各方[24-25]。理想世界中是绝对安全的,即理想世界中的敌手是无法进行任何攻击的。如果存在理想世界敌手(模拟器)S,使得没有环境Z可以区分它自身与真实敌手A一起运行的真实世界以及它自身与理想世界敌手S一起运行的理想世界,则说明A在真实协议中获得的信息不比S多。由于F的存在,理想世界完全安全,S无法进行任何攻击,故真实协议的A也无法进行攻击,称协议UC 实现理想功能F[26]。功能F定义如下:

定义2功能FMCOM。具有会话标识sid 的FMCOM与各方P1,…,Pn以及敌手S一起运行,其中ssid 表示每次承诺的序号,commit 标记为承诺报文,receipt 标记为已收到承诺报文:

1)承诺阶段:当从Pi收到(commit,sid,ssid,Pi,Pj,x),记录(ssid,Pi,Pj,x),并发送(receipt,sid,ssid,Pi,Pj)给Pj和S。忽略从Pi到Pj具有相同ssid 的任何未来的承诺消息。

2)承诺打开阶段:从Pi收到(reveal,sid,ssid),如果元组(ssid,Pi,Pj,x)先前有记录过,则发送(reveal,sid,ssid,Pi,Pj,x)给Pj和S,否则就忽略。

如果存在概率多项式时间模拟器S,使得对于每个非均匀的概率多项式时间环境Z和每个概率多项式时间敌手A,有:

则称协议ΠUC实现理想功能F。

2 协议构造

本章描述本文UC承诺方案的设计思想,并在此基础上构造出一种高效的UC非交互式承诺方案。

2.1 设计思想

本协议基于CRS 模型,使用CCA2 安全公钥加密方案和非交互式零知识证明协议构造出一种UC安全的非交互式承诺方案。其关键设计思想体现在:为达到UC 安全,所设计协议必须同时实现可提取性和模棱两可性,并且模拟器不能回卷(rewind)敌手[27-28]。

首先,要实现承诺方案的可提取性,意味着在安全证明时模拟器可以提取出沦陷参与方承诺的值。为此,使用一种CCA2 安全的加密方案Ecca,其公钥包含在CRS 中。承诺方在承诺阶段发送一个对承诺值的Ecca加密密文作为承诺。由于CRS 由模拟器产生,故其可获得Ecca相应的私钥。模拟器可直接使用私钥进行解密,获得承诺方的承诺值,即可成功实现可提取性。

其次,要实现模棱两可性,意味着在安全证明时模拟器可以将承诺打开为任意值。为此,承诺方在承诺打开阶段发送承诺值并进行一次零知识证明,该零知识证明用来证明承诺方拥有加密承诺值使用的随机数,即证明承诺阶段的承诺确实为发送值的加密。承诺打开阶段以∑协议为基础,且承诺方需计算一个对∑协议初始消息的双模式承诺。利用双模式承诺的模棱两可性,模拟器在证明中可对任意的承诺值生成一次合法的证明,即可将承诺打开为任意值,实现整个方案的模棱两可性。

另外,使用Fiat-Shamir 转换将∑协议转化为非交互式零知识证明,实现了协议的非交互性。由于使用了双模式承诺,故协议仍保持模棱两可性。在安全证明中实现模棱两可性的具体做法如下。

记∑协议中证明方和验证方交互发送的消息为(a,e,z),此处模拟器S作为证明方,记x为S要打开的值。S先计算a的双模式承诺c,再根据Hk(x,c)获得挑战问询e。模拟器S在选取一个替代CRS 密钥后,双模式承诺方案具备模棱两可性。S在获得挑战问询e后,可利用双模式承诺方案的模棱两可性,将c打开为任意的a值。故模拟器S可选取随机的z,根据z和挑战问询e计算出初始消息a,然后将c打开为计算的a值,即可实现整个方案的模棱两可性。接下来给出本文协议构造的详细描述。

2.2 协议具体构造

以下给出本文UC 承诺方案的具体构造,将其表示为协议Π,协议Π执行如图1所示。其中,Pi为承诺方,Pj为接收方。协议构造主要分为3 个部分:系统建立阶段、承诺阶段和承诺打开阶段。系统建立阶段生成CRS;承诺阶段进行一次CCA2 安全的加密;承诺打开阶段进行一次非交互式零知识证明,证明发送的值确实为承诺阶段的承诺值。承诺打开阶段的非交互式零知识证明,是将1.4节NIZK通用构造中的∑协议和双模式承诺方案实例化后得到的。过程如下:

1)系统建立。CRS 包含(G,q,g1,g2,c,d,h,u,v,k)。其中G是具有生成元g1,g2的q阶群。随机选择,(G,q,g1,g2,c,d,h)是一个Cramer-Shoup 公钥。随机抽取g2,u,v)是双模式承诺方案的常规公钥。k是一个抗碰撞哈希函数族H:{ 0,1}n→Zq的密钥。G:{ 0,1}n→G是从m'∈{ 0,1}n映射到群G的可逆函数。

2)承诺阶段。在输入(commit,sid,ssid,Pi,Pj,x)下,其中承诺方计算一个Cramer-Shoup 密文作为承诺。过程如下:

①Pi计算m=G(x,sid,ssid,Pi,Pj)。

②Pi计算一个对m的Cramer-Shoup 密文:抽取随 机 数rZq,计 算Hk(u1,u2,e)、v1=(cdω)r。其中(u1,u2,e,v1)为加密密文。

③Pi设承诺c1=(u1,u2,e,v1),发送(sid,ssid,c1)给Pj。

④Pj存储(sid,ssid,Pi,Pj,c1)并输出(receipt,sid,ssid,Pi,Pj),Pj忽略以后发送的具有相同(sid,ssid)的承诺消息。

3)承诺打开阶段。收到(receipt,sid,ssid,Pi,Pj)后,Pi将承诺值x和一次非交互式零知识证明π发送给Pj。π证明同指数(使用证据r)。π是利用一种双模式承诺方案对协议进行Fiat-Shamir类型转换得到的。

Pi计算π的过程如下:

①计算一个∑协议的初始消息C:随机抽取sZq,计算一个∑协议初始消息C=(α,β,γ,δ) =计算I=Hk(m,C,sid,ssid,Pi,Pj)。

②计算对初始消息C的双模式承诺c2,以及对承诺的打开d:随机抽取z0Zq,计算a=/uI,b=

③计算∑协议的挑战问询ε以及应答z:ε=Hk(x,c2),z=εr+s。

④设π=(c2,d,z),并发送(sid,ssid,x)和π给Pj。

Pj首先验证d是否正确打开c2,若不正确打开则直接输出0。否则,接着验证∑协议的三轮消息(C,ε,z)是否为一个可接受元组,若是则接受承诺值x,否则不接受。过程如下:

①计算m=G(x,sid,ssid,Pi,Pj),I=Hk(m,C,sid,ssid,Pi,Pj)。验证,若验证通过继续下列步骤,否则直接输出0。

②计算ε=Hk(x,c2)。

3 安全证明

本章证明分为2 个阶段:模拟器模拟阶段和证明不可区分性阶段。模拟阶段是对理想视图进行模拟,给出模拟器S对2 种沦陷情况的模拟步骤。证明不可区分性阶段和证明理想视图和真实视图的不可区分,定义一系列中间游戏G1、G2和G3,并通过这一系列游戏证明S模拟的视图(即理想世界的视图)与真实协议运行的视图对于环境Z不可区分。接下来给出模拟器S的描述和安全证明。

定理1若DDH 假设在群G下成立,且H是一个抗碰撞哈希函数族,则2.2节协议Π在静态敌手,以及FCRS混合模型下UC安全地实现了理想函数FMCOM。

证明:以下证明分为2 大阶段:模拟器模拟阶段和证明不可区分性阶段。

1)模拟器模拟阶段。

给出模拟器的初始化步骤以及分别对以下2 种沦陷情况的模拟步骤。

初始化步骤:模拟器S为Cramer-Shoup 密码系统选择一个公钥/私钥对;设(G,q,g1,g2,c,d,h)为公钥。另外,S选择双模式承诺方案的替代CRS,随机选取pZq,计算u=gp1和v=gp2。选取哈希函数族H的密钥k。S将CRS设置为(G,q,g1,g2,c,d,h,u,v,k)。

情形1:Pi为诚实方,Pj为沦陷方:

①承诺阶段:当S从FMCOM接收到(receipt,sid,ssid,Pi,Pj)时,S计算一个对0 的Cramer-Shoup 加密密文c1,并发送(sid,ssid,c1)给A,模拟A从Pi获得承诺的过程。

②承诺打开阶段:从FMCOM接收到(reveal,sid,ssid,Pi,Pj,x)后,模拟器S需要模棱两可地打开承诺值,即把承诺阶段中对0 的承诺c1打开为诚实方Pi打开的值x,过程如下:

步骤1随机生成一个双模式承诺c2:随机抽取

步骤2计算ε=Hk(x,c2)。

步骤3由ε和z计算出初始消息C:随机抽取

步骤4利用双模式承诺的模棱两可性,将c2打开为初始消息C:计算I1=Hk(m,C,sid,ssid,Pi,Pj),取z1=r+I1p,设d=(C,z1),并将打开值x与证明π=(c2,(C,z1),z)发送给Pj。

情形2:Pi为沦陷方,Pj为诚实方:

①承诺阶段:当从敌手A收到(sid,ssid,c1)时,模拟器利用自己的Cramer-Shoup私钥解密c1。假设解密结果为m=G(x,sid',ssid',i',j'),若(sid',ssid',i',j')≠(sid,ssid,i,j)或解密返回不合法的值,则S发送对0的承诺(commit,sid,ssid,Pi,Pj,0)给FMCOM。否则模拟器S发送(commit,sid,ssid,Pi,Pj,x)给FMCOM。

②承诺打开阶段:S模拟Pj的运行,若Pj输出(reveal,sid,ssid,Pi,Pj,x),则S发 送(reveal,sid,ssid,Pi,Pj)给FMCOM。否则,S什么都不做。

至此,模拟器S模拟的理想视图已描述完毕。协议Π 是在FCRS模型下运行的真实协议。接下来需要证明对于每个敌手A和每个环境Z,有:如1.5 节所述,其中表示环境Z在与理想敌手(模拟器)S和功能F的理想执行后的输出。表示环境Z在CRS 模型下的现实世界中执行真实协议Π 后的输出。

2)证明不可区分性阶段。

从理想世界出发,在一系列游戏G1、G2和G3中以不可区分的方式修正模拟过程,逐步达到现实世界。

GameG1。在这个游戏中,模拟器S1对S的行为进行微调。在模拟Pi为诚实方,Pj为沦陷方的承诺阶段时,S1完全模拟诚实参与方Pi在真实协议的计算过程,将承诺c计算为m=G(x,sid,ssid,Pi,Pj)的加密。即S1模拟的G1游戏和S模拟的理想世界仅有一处不同,S1在Pj沦陷的承诺阶段发送的是对m的加密密文,而S发送的是对0 的加密密文。为了证明环境Z计算上无法区分2 幅视图,需要规约到加密方案的安全性上。然而,S和S1在Pi沦陷时需在承诺阶段的模拟过程中解密,而能解密的原因在于S和S1拥有Cramer-Shoup私钥。这使得规约无法进行,因为攻击加密方案的敌手Acs没有私钥,无法模拟S和S1的视图。如2.1 节所述,由于Cramer-Shoup 加密方案CCA2 安全,故Acs可以利用解密预言机进行解密,并根据挑战密文模拟S和S1这2幅视图。若环境Z可以区分上述2 幅视图,则存在敌手Acs可以打破Cramer-Shoup 加密方案的CCA2 安全性。即这2 幅视图的不可区分性可规约到Cramer-Shoup 加密方案的CCA2安全性上,故:

GameG2。在这个游戏中,模拟器S2对S1行为的微调体现在:在模拟Pi为诚实方,Pj为沦陷方的承诺打开阶段时,S2完全模拟诚实参与方Pi在真实协议中的计算过程,即真实地计算(α,β,γ,δ),ε和z。S2能按此方式模拟的原因在于承诺阶段发送的承诺c是对m=G(x,sid,ssid,Pi,Pj)的加密,因此S2能扮演诚实证明方。由于双模式承诺方案的模棱两可性,模拟器S1在G1中总能生成可通过验证的合法三元组(a,ε,z)。因此,游戏G1和G2在承诺打开阶段均模拟了一次合法的非交互式零知识证明,证明元组是一个Diffie-Hellman 元组,容易得出环境Z无法区分G1与G2,故:

GameG3。在这个游戏中,模拟器S3继续微调S2的行为,将双模式承诺方案的替代CRS 替换为常规CRS,即CRS 中的此 时Pi对∑协 议 初 始 消 息(α,β,γ,δ)的双模式承诺c2具备完美绑定性,即Pi对于c2只能打开为确定的初始消息(α,β,γ,δ)。由于双模式承诺方案中常规密钥和替代密钥的不可区分性,有:

至此,对理想视图的调整结束。接下来需要证明游戏G3与真实协议Π 这2 幅视图计算上不可区分。注意到在承诺方Pi诚实的情况下,游戏G3与一个在FCRS混合模型下执行的真实协议行为相同。因此,环境Z在2 幅视图下的输出的唯一区别取决于Pi沦陷的情况下在承诺打开后诚实方Pj的输出x。这是因为在G3中,诚实方Pj输出的值x由模拟器S3在承诺阶段使用Cramer-Shoup 私钥解密后得到。而在FCRS混合模型下的真实协议中,Pj的输出值x是敌手A在承诺打开阶段发送且能成功通过验证的值。

当且仅当敌手A能够在承诺打开阶段向Pj成功证明发送的值x,且A在承诺阶段的承诺c不是对m=G(x,sid,ssid,Pi,Pj)的加密,上述情况Pj的输出才会不同。故这2 幅视图的不可区分性可规约到承诺打开阶段非交互式零知识证明的可靠性。因此环境Z计算上不可区分G3与真实协议这2幅视图,即:

综上所述,得出环境Z在FCRS混合模型下和A执行的真实协议后的输出与在理想模型FMCOM下和SA执行的协议后的输出计算上不可区分,因此2.2 节中承诺方案Π在静态敌手模型下UC安全,定理1得证。

4 协议性能分析

本章给出图1 协议Π 的效率分析,与相关协议在通信复杂度、计算量、通信轮数以及协议安全性作对比。对比时使用椭圆曲线群来对G进行实例化。结论如表1所示。

表1 协议效率对比

表1 符号解释:n表示安全参数。若q是椭圆曲线群G的阶,则log(q)=O(n)。| |G表示G中元素的个数,取决于具体实例化,但通常略大于log(q)。Texp(G)表示G上一个群指数计算的开销。

协议Π 效率分析。协议在承诺阶段的计算量为5 个群指数运算。在承诺打开阶段,承诺方Pi有8 个群指数运算,接收方Pj有13 个群指数运算。总计算量为26 个群指数运算。协议在承诺阶段的通信量为4个群元素,承诺打开阶段的通信量为6个群元素与2个参数,总通信量为10个群元素和2个参数。

由表1 对比可知,协议Π 在原有方案上减少了承诺打开阶段的通信轮数,将UC 承诺方案改进为非交互式,且与最初的原有方案[9]相比,减少了计算量和通信复杂度,提高了协议的效率。与文献[11]中方案相比,本文协议在牺牲较少通信量与计算量的情况下,实现了协议的非交互性,将三轮协议改进为一轮,协议各项效率达到了更好的平衡;与现有的非交互式UC 承诺文献[13]相比,协议的计算量仅为该方案的63%。文献[13]的计算量为41Texp(G),且用到了双线性对。需要说明的是本文协议仅在静态敌手模型下证明了安全性,文献[13]中协议Π 在自适应敌手(adaptive adversaries)模型下安全。

5 结束语

本文在DDH 假设成立的条件下,在公共参考串模型下提出了一种高效的非交互式UC 承诺方案,并在静态敌手模型下给出了安全性证明。协议在原有方案基础上,将承诺打开阶段的交互式证明改进为非交互式证明,减少了协议的通信轮数,且与已有的非交互式UC 承诺方案相比,降低了协议计算量和通信计算量,提高了协议的效率。笔者接下来需要研究的是如何在自适应敌手模型下提出更高效的UC安全非交互式承诺方案。

猜你喜欢
双模式敌手模拟器
小直径双模式盾构机在复合地层中的施工应用与实践
了不起的安检模拟器
盲盒模拟器
划船模拟器
不带着怒气做任何事
基于域分解的双模式PE
动态飞行模拟器及其发展概述
双模式盾构下穿岩溶地区河流施工技术
Z源逆变器并网独立双模式控制策略研究
不带着怒气作战