CRYPTO 2019-论文阅读:Two-Party ECDSA from Hash Proof Systems and Efficient Instantiations(2)

Two-Party ECDSA from Hash Proof Systems and Efficient Instantiations

基于安全多方计算的两方椭圆曲线数字签名

此部分是上篇博文(博文链接)的后续,因文章全文直接翻译比较耗费时间,也不能算上理解(@o@)

所以我将会在本博文中将该文章后续部分概要内容提取和精炼出来分享给大家,同样地,理解有误的地方还请各位指摘。

2020/10/23 补充文章主要的三个贡献。不要问为什么精炼内容还没有,一是理解,二是数学公式推导太多了,输入太麻烦le

2020/11/01 拖更le~~~,先更新个第二部分,这两三天补完。

2020/11/03 还差第三部分后半部分的解读,持续更新~

2020/11/05 基本补完内容

 1.1 Our contribution

 2 Preliminaries

 3 Two-Party ECDSA from Hash Proof Systems

 5 Implementation and Efficiency Comparisons

 4 Instantiation in Class Groups of an Imaginary Quadratic Field(自行忽略,我啥也没讲,(*^_^*))

 6 Instantiation of our Generic Construction Using DCR(自行忽略,我啥也没讲,(*^_^*))


 1.1 Our contribution

这个部分给出了文章研究所作出的贡献,并对”是否有可能设计出一种实用的两方ECDSA签名协议(两者都就计算效率和带宽消耗而言)不需要交互性假设并允许一个严密的安全规约?“这一问题做出了肯定的回答。该文章做出的主要贡献如下:

  • 基于哈希证明系统(Hash Proof System, 简称HPS)提出了两方椭圆曲线数字签名的构造方案。文章提出新协议的安全证明是严谨的且在证明其是模拟安全时无需交互性假设。

       我们(作者)协议的正确性源自于基于HPS的同态特性。我们定义了同态可扩展的投影哈希函数族(homomorphically-extended projective hash families),以确保HPS的同态属性适用于任何从有效可识别集中采样的公共密钥,因此该公共密钥无需再次零知识证明。协议中允许建立一个明文空间是Z/qZq是任意大的素数)的线性同态PKE方案,这也意味着如果在一个ECDSA签名中使用几近相同的q,那么从我们的协议方案研究点出发就可以很自然地避免因Nq而导致的(算法)低效问题。

  • 无需对一方发给另一方的共享密钥的正确性进行高昂的范围证明。(相比Lindell的方案)

       我们(作者)的协议类比Lindell方案也是需要P{_{2}}持有\bg_white P{_{1}}的加密后的共享密钥Enc(x_{1})的,但是Lindell的方案中需要一个繁重的密钥注册阶段,其中要求\bg_white P{_{1}}证明自己正确产生了公钥。而我们的协议不需要像Lindell那样使用高昂的范围证明就可以实现这一目的,但实现仍有以下的困难:(1) 我们致力在未知阶群(groups of unknown order)上(2) 我们无法假定所有的密文都是合法的

       我们(作者)提出可以同时解决这两方面问题的新的证明案。Lindell的方案中使用了二进制挑战,也就是必须要重复证明t次才能得出它的可靠性误差,也就是2^{t}。我们相应这个应该可以能够被扩大挑战的空间,但实施这种想法的可行性我们会留到未来的工作中去。

  • 我们用C语言实现了我们的协议方案。

       我们(作者)的结果表明我们改善的安全性保证几乎没有增加任何额外的开销。事实上,我们的方案在128-bit安全等级下稍微慢一些,但我们的方案在较大参数下,也就是256-bit安全等级上,就密钥产生和签名时间上更优。这种原因的产生是我们的交互式的密钥生成需要的幂运算比Lindell协议的要少(160 vs 360),但在类群上的幂运算要比在\bg_white Z/nZ的幂运算更加昂贵些。这种L_{1/2}的空间复杂度和较少数量的幂运算的影响从192-bit安全等级开始显现。就带宽来说,我们的协议可将用于密钥生成的系数的安全等级从5(112-bit安全)提高到10(256-bit安全),将用于签名的从1.2提到2.1,从而改善通信成本。这也将会把用于密钥生成处理的轮换次数(这两方签名有相同的轮换次数)从175(Lindell的协议)减少到126次。详情见第5部分。(作者们也复现了Lindell的协议以确保能够做到公正的比较)
       最后,我们(作者)的HPS方法也可以基于Paillier的判定性复合假设(decisional composite residuosity assumption)进行具体实施案,在第6部分就112-bit安全和128-bit安全上我们与Lindell的方案做了分析比较。

2 Preliminaries

这一部分介绍的是一些前置工作和基础知识,包括ECDSA算法的介绍,两方ECDSA算法、交互式的零知识证明、基于模拟的安全和理想功能模块。前面三个就不具体介绍了,关于最后的基于模拟的安全和理想功能模块,我借助文章简单的提一下。

我们(作者)为了证明协议是安全的,必须要定义什么意味着是安全的。基本上,理想/真实的范式是在一个理想环境中假象这个属性是有的,然后如果现实环境中(已构筑的)协议有相似的属性能被证实是安全的。我们在理想环境中可以考虑在协议开始进行前选择哪一参与方是不诚实的之类的风险。详细的模拟范式请参照Lindell的A tutorial on the simulation proof technique.

我们(作者)在承诺、零知识证明和在两方间对非交互式零知识证明的承诺中使用理想功能模块。然后一长串公示定义之后,就给出了一个用零知识证明案例的理想功能模块的设计方式。主要是关于公示定义的四张图,这边贴出来给大家观摩一下。

首先第一张图,虽然只有简单的一句话说明,公示符号的定义是非常严谨有逻辑的(这可能就是顶会的英文写作水平吧),原文是这么说的:

我们(作者)认定一个示证者P_{i}i\in \left \{ 1,2 \right \}想要证明有关元素x的证据w的知识,以确保\left ( x,w \right )满足关系R,即\left (x,w \right )\in R。在理想环境中我们能够假想一个诚实且可信的第三方可以与P_{i}P_{3-i}进行交互。在理想的场景下,P_{i}能够将\left ( x,w \right )给到这个可信的第三方,后者在拿到之后将会检证是否\left (x,w \right )\in R成立并告知P_{3-i}是true还是false。在现实环境中我们并没有这样可信的第三方,必须在P_{1}P_{2}间用密码学协议进行区分。大致来说,理想/现实的范式要求是无论敌手能在现实环境下恢复出什么信息,它同样也能在理想环境中恢复出来。可信的第三方可以被视作理想功能函数,我们表示它为F(如果谁知道图中的那个类似F的符号怎么表示请告知我一下)。如果某些协议满足此功能函数,我们称它是安全的。

我们(作者)给定F\langle x_{1},x_{2}\rangle\rightarrow \left \langle y_{1},y_{2} \right \rangle,通过功能函数F一并执行,用各自的输入x_{i}产生最终各自的私密输出y_{i}。每个被传输的消息都用会话标识符sid进行标记,用来标识功能函数的一次迭代。理想的零知识证明的功能函数表示为F_{zk},定义为F_{zk}\left \langle \left ( x,w \right ); 0\mkern-9mu/ \right \rangle\rightarrow \left \langle 0\mkern-9mu/; R\left ( x,w \right )\right \rangle,其中0\mkern-9mu/指空输入,表示第一个参与方未收到任何输出。即图1内容。

类似的,图二是理想承诺函数的表示内容。而图三是用理想功能函数F_{com-zk}^{R}对基于关系R的承诺的非交互式零知识证明。图四则是两方ECDSA的理想功能函数,用两种函数组成,一种是密钥生成函数,另一种是签名函数。

3 Two-Party ECDSA from Hash Proof Systems

原文这一部分篇幅最长也最为关键。作者们在这一部分着重说明了基于哈希证明系统的两方椭圆曲线签名,证实其在基于模拟的模型下是安全的。第三部分主要分了6个小结:

3.1 简单回顾了下HPS架构,背景知识,相较于文章其余知识内容应该不是很难,这边贴出来:

3.2 作者构造方案的基本属性。尤其为了保证协议正确性方面,HPS必须是同态的,且为了抵制恶意攻击我们也要求求解HPS的子群问题困难,而HPS也必须有平滑性。

3.3 描述了线性同态加密方案的HPS

3.4 总结了构建模拟安全的基于哈希证明系统的两方椭圆曲线签名的所有必要属性。

      这其中包括了两个新的定义:

    (1) 可分解性,对HPS的架构提出了一些要求。它支持各种哈希证明系统(像基于DDH问题的哈希证明系统,基于类群的哈希证明系统(第四部分会提及))

    (2) 双重编码假设,在从中心化的ECDSA公共参数集中抓取缺失信息是必不可少的

3.5  关于提出方案的零知识性的描述,判断它是否满足F_{com}/F_{com-zk}的混合模型

3.6  展示了基于哈希证明系统的两方椭圆曲线签名协议并证明了它的安全

3.2 Basic Properties

  • 定义1 \delta _{s}-平滑性。标准的投影哈希族PHF(projective hash family)要求对于任意的x\notin \pounds,用哈希密钥hk处理的关于x的哈希值hash_{hk}(x)在已知公共投影密钥hp的情况下均匀分布。在本(作者)研究工作中,消息将在由f生成的q阶集合\mathit{\Pi}的子群F上被编码。确切来说是为了与ECDSA集成,它必须要求消息编码所在的群组具有q阶,因为消息空间是由椭圆曲线群\mathrm{G}的阶数决定。
  • 定义2 \delta _{\pounds }-子群问题困难。即在多项式时间内没有算法能够区分某一随机元素是属于x/L还是L,即“统计不可区分”。
  • 定义3 线性同态的PHF为了使p_{2}执行的同构运算能够在两方ECDSA协议中实行,我们(作者)要求投影哈希族也必须是同态的(包括具备密钥同态性)。

3.3 Resulting Encryption Scheme

这一部分说明了法案在选择明文攻击下是语义安全的且假定了HPS的平滑性和子群问题困难。

作者的加密方案从这三个方面简单介绍:

  • 同态特性:给定有关m_{1},m_{2}的加解密对\left (u_{1},e_{1} \right ),\left (u_{2},e_{2} \right )以及一个整数a,存在EvalSumEvalScal的函数方法使得Dec\left ( hk,EvalSum(hp,\left (u_{1},e_{1} \right ),\left (u_{2},e_{2} \right )) \right )=m_{1}+m_{2}并能满足Dec\left ( hk,EvalScal(hp,\left (u_{1},e_{1} \right ),a)) \right )=a\cdot m_{1},以证实投影哈希族是具备同态特性的。

  • 无效密文:如果密文能够形为\left ( u, e \right ):=\left ( u, hash_{hk}(u)f^{m} \right ),其中u\in \chi\setminus \pounds,那么该密文无效。注意可以计算这样的密文用哈希密钥hk,但是无法用公共投影密钥hp来计算,从而对应用了加解密对\left (u,e \right )的解密算法可以直接使用hk而不借助hp来恢复出明文m

  • 关于无效密文的同态性判别:这一点很容易验证,因为作者PHF应用的同态特性是基于整个群\chi的,而不仅仅在属于\chi的NP语言\pounds 上

3.4 ECDSA friendly Projective Hash Families

我们(作者)定义了PHF的新的特性,有助于帮助读者理解我们的安全证明。

\left ( \gamma , F \right )-可分解性。我们(作者)介绍了一个可分解的PHF的概念,此属性表明了\chi是语言\pounds\chi的一些循环子群的直积。因为投影密钥是可获得的,所以可以公开计算关于在\pounds里元素的哈希值,可分解性则允许我们在给出可预测的hash值部分(原象在\pounds中的)和随机出现的部分(原象不在\pounds中的)有一个清晰的区分。尽管我们提出的定义是新的,但许多已知的源自群组的PHF都满足这个特性。(如基于DDH和DCR的PHFs)

故有如下定义:

定义4:SM := ( \chi, \pounds, \omega, R)是一个子群问题,且认定其有相关联的投影哈希族PHF, 族下哈希的到达域\mathit{\Pi}是存在包含循环子群F的有限阿贝尔群。如果存在\gamma \in \chi,满足:

-\chi\pounds\left \langle \gamma \right \rangle直积;

-\forall hk\in K_{hk}, hash_{hk} \left ( \gamma \right ) \in F.

那么我们可以称这个PHF是有\left ( \gamma , F \right )-可分解性的。

在这个定义里F\mathit{\Pi}的一个循环子群,由f产生且素数阶为q,且我们认定的PHFs是同态和密钥同态的。

双重编码问题。为了确保我们(作者)协议的安全,我们需要给出一个概念来处理交互式签名协议成功结束或中止情况下的缺失信息。实施上,对于整个协议,P_{1}将它的秘密共享值x的加密内容c_{1},连同椭圆曲线点Q_{1}:=x_{1}P发送给P_{2}。然后P_{2}发送另外一个密文c_{2}P_{1}。如果协议止于此,那么HPS的平滑性讲可以满足协议的安全性要求,因为加密值已经被完美的隐藏起来。然而,P_{1}要使用从c_{2}中解密出来的值来计算总和签名。协议成功结束或中止的情况都可能会向恶意P_{2}多多少少泄露一些信息。因此,我们必须确保被攻陷参与方P_{2}不能设计出恶意密文,使其能够区分现实和理想的执行态,即在一种情况下可以使之执行成功结束,而在另一种情况下则会中止。为此,我们要求--给定一个在x\in Z/qZ(在我们的协议中,这是椭圆曲线点Q:=xP)中可评测的单向函数(OWF),使之多项式时间内没有敌手可以产生x的两个无效的加密内容。

定义5(双重编码假设):给定一个安全参数\lambda \in N和一个\lambda -bit的素数q。再给定一个单向函数的集合,取样通过一个有效的算法Gen_{OW},能够有h\leftarrow Gen_{ow}(1^{\lambda }, q)h有一个输入空间Z/qZ和一个任意的输出空间。令Gen_{sm}是一个子群问题生成器,可以使得投影哈希簇PHF是有\left ( \gamma , F \right )-可分解性的,其中F有素数阶q。那么对于(Gen_{OW}Gen_{sm})来说,如果给定\left ( \chi, \pounds, \omega, R \right )\leftarrow Gen_{sm}(1^{\lambda}, q)h\leftarrow Gen_{OW}(1^{\lambda}, q)以及y:=h(x),对于随机采样的x\in Z/qZ,在以\lambda为基准的多项式时间不存在算法A具备大于\delta_{ DE}\left ( \lambda \right )的概率,使得其能输出x的两个无效的加密内容,就可认定该双重编码(DE)问题是\delta_{ DE}\left ( \lambda \right )-困难的。更精确地说,表述公式如下:

双重编码问题的困难性。如果HPS和OWF产生于独立的结构,似乎不太可能在不破坏h的单向性的情况下解决DE问题并随之计算出x的两个无效编码。即使它们结构是一样的,也不会很清晰如何能做到这一点。当然如果OWF是xf^{x}的映射,那么DE问题就很容易解决了。然而在我们的应用中,我们特别要求从f^{x}计算x是容易的,因此这个映射不是单向的。结合实例证明这个理论正确性的请参照原论文的第四部分和第六部分。关于子群问题的定义这边简要根据原文说明一下:

定义6 认定一个有限阿贝尔群G,有子群G_{1}G_{2},使得GG_{1}G_{2}的直积。如果给定输入x\leftarrow G,算法A输出y \in G_{1}z \in G_{2},使得x= yz,则说明算法A可以解决在\left ( G, G_{1}, G_{2} \right )中的子群分解(SD)问题。

注意对于基于HSM的PHF,f的阶是一个素数q;而对于基于DCR的PHF,f的阶是一个RSA型整数N。这意味但我们构建适配DCR的ECDSA时,单向函数的输入空间的阶数qf的阶数N是不同的,其中N\gg q。因此我们(作者)需要对子群假设做一些轻微的修改,使得算法A必须输出\left (hp, (u_1, hash_{hk}(u_1)f^{x} \right ),\left (hp, (u_2, hash_{hk}(u_2)f^{x} \right ),其中x \in Z, 0\leq x \leq q-1。(这一点足以体现在我们3.6节的通用架构上)

以下引理中,我们证明了对于这两种PHFs,可以将反演OWF的问题简化为在\left ( \chi, \pounds, F \right )中求解SD问题困难以及求解DE问题困难。

引理1 进一步考虑单向函数h,假设存在一个PPT算法B_1可以以不可忽略的概率解决DE问题;一个PPT算法B_2可以以不可忽略的概率解决SD问题;那么可以建立一个PPT算法以不可忽略的概率打破h的单向性。

引理的证明贴张原图吧:

方法就是将定义5中的算法A处理过的(h, Sm, y)(h,SM,y)传递给B_1,通过B_1重新输出(hp,(u_1,u_1^{hk}f^x),(u_2,u_2^{hk}f^x))(通过算法中转)。然后再由算法A调用B_2四次,产生新的加解密输入对u_1,u_2,e_1,e_2以便得到新的参数解有效处理HSM案例和DCR案例。即推出存在一个唯一的(x \ mod \ q)解,A可以有效地计算出这个解,从而打破h的单向性。

需要注意的是,对于基于DCR的PHF来说,存在可以简化SD问题的陷门使得在生成子群问题实例时可以被有效计算。因此,如果HPS基于DCR,那么DE问题至少和反演单向函数一样困难。

对于我们在4.2节的HSM假设(依照类群密码学)的HPS来说,已知解决SD问题的最佳算法是亚指数级的,而对于计算椭圆曲线中的离散对数(这就是我们在构建中要考虑的OWF问题),目前只存在指数算法。因此对于解决这种问题的应用,DE问题必须具有指数复杂度。

ECDSA-friendly HPS 我们给定了ECDSA-friendly HPS的定义, 本质上说它是一个满足上述所有特性的HPS,并且足以保证3.6节协议中基于仿真的安全性。(这个定义对理解第3.6小结安全性证明有很大帮助,不过遗憾的是目前的知识水平有限,还尚未道破里面全部证明逻辑和推导过程

定义7 ((\gamma , F, \delta_s, \delta_\pounds, \delta_{DE})-ECDSA-friendly HPS)\chi ,\mathit{\Pi }以及F为群,且F是由f生成的\mathit{\Pi }q阶循环子群,使得存在一种从二元计算+关系的\left ( Z/qZ, + \right )到二元计算\cdot关系的\left ( F, \cdot \right )的有效同构,能够将m \in Z/qZ映射为f^m且其反演的log_f也是可以计算的。令exp_G是处理映射椭圆曲线点xP的函数,其中x \in Z/qZ。一个(\gamma , F, \delta_s, \delta_\pounds, \delta_{DE})-ECDSA-friendly HPS是一个可以将一个\delta_\pounds-hard的子群问题关联到一个同态可扩展的投影哈希族PHF:=(\left \{ hash_{hk} \right \}_{hk \in K_{hk}}, K_{hk}, \chi, \pounds, \mathit{\Pi}, K_{hp}, K_{hp}^{'}, projkg )的哈希证明系统,该哈希族是(\gamma ,F)-可分解的,在F上是关于\chi 的\delta_s-光滑的且这样的DE问题对于(PHF,exp_G)也是\delta_{DE}-hard的。

3.5 Zero-Knowledge Proofs

 零知识证明。理想的ZK函数用于以下关系处理,使椭圆曲线上的参数(G, P, q)是隐式的公共输入(作者这么说应该是加了一层加密处理再输出);

1. R_{DL}:={(Q,w)|Q=wP},用来证明基于椭圆曲线上点的离散对数知识。

2. R_{HPS-DL}:=(h\left \p,\left ( c_1,c_2 \right ),Q_1);(x_1,w)|(c_1,c_2)=Enc((u,w);(hp,x_1))\wedge (c_1,w)\in R\wedge Q_1=x_1P{ \right \},用来证明对加密所用的随机性的知识,以及对加密后密文(c_1,c_2)x_1和椭圆曲线点Q_1的离散对数知识。

 为了我们(作者)方案的实例化,我们将介绍具体而有效的证明。注意x \in Z/qZ是不需要介绍的因为我们(作者)加密方案的明文空间和基于椭圆曲线群G的阶都为q

3.6 Two-Party ECDSA Signing Protocol with Simulation-Based Security

文章理论部分最关键的内容了,40页的文章有整整11页的笔墨都在叙述这个方案。

我们(作者)的基于模拟安全的两方椭圆曲线签名方案整体架构见下两张图。一个密钥生成阶段,还有一个是签名阶段。在阐述图中内容前,还是描述一下作者们提出的一个定理吧。

定理1 假设HPS是一个(\gamma , F, \delta_s, \delta_\pounds, \delta_{DE})-ECDSA-friendly HPS;并且没有任何多项式时间算法能够以大于\delta_{ DE}\left ( \lambda \right )的概率计算G中的离散对数;也就是图5(下两张图)的协议可在恶意静态敌手的存在情况下(根据理想/真实定义下),基于(F_{zk},F_{com-zk})-混合模型上安全地计算F_{ECDSA}实际上可以存在一个对此方案的模拟,使得没有敌手可以在多项式时间内容--即没有被攻陷的参与方P_1P_2--能够在模拟情形下以大于2\delta_\pounds + \delta_{DE} + 2\delta_{DL}+1/q+\delta_s的概率区分协议执行情况。

\delta模拟P_2-攻陷P_1为例:

密钥生成一共有七个步骤,分别如下:

(1) 给定输入KeyGen(G,P,q),模拟器\delta发送KeyGen(G,P,q)给理想功能函数F_{ECDSA}并接受回一个公钥Q ;

(2) \delta在输入IKeyGen(G,P,q)上调用算法A_1,并会收到用于x_1知识证明的承诺,使得Q_1=x_1P,标记为\left (com-prove,1,Q_1,x_1 \right )。算法A_1经过处理后会发送F_{com-zk}^{R_{DL}},以便于\delta可以从中提取x_1Q_1

(3) \delta将使用提取的值x_1去验证Q_1=x_1P是否成立。如果成立,那么它将会计算Q_2 \leftarrow x_1^{-1}Q(使用的是从F_{ECDSA}中接受到的Q);如果不成立,\delta将会从G中随机采样一个Q_2;

(4) \delta发送\left (proof,2,Q_2 \right )给到A_1算法处理后给到参与方,类似于F_{zk}^{R_{DL}}的发送。从而\delta可以模拟对x_2知识的证明,即Q_2=x_2P

(5) \delta将会收到\left (decom-proof,1 \right ), 然后经过算法A_1处理将会发送出F_{com-zk}^{R_{DL}}并模拟P_2Q_1 \neq x_1P情况下中止后续处理过程。\delta也将会收到\left (proof,3,(hp,c_{key},Q_1), (x_1,w) \right )然后经过算法A_1处理成F_{zk}^{R_{HPS-DL}};

(6) \deltaw中计算出u,使得(u,w) \in R, 并用额外提取出的x_1验证c_{key} = Enc\left ( (u,w);(hp,x_1) \right )是否成立,如果不成立,P_2将会中止后续处理;

(7) \delta将会继续发送F_{ECDSA}P_2去接受输出,并存储(x_1,Q,c_{key}).

当视F_{zk}F_{com-zk}为理想函数时,真实环境下通过诚实的P_2运行协议与理想的模拟环境下通过模拟器\delta运行协议的唯一区别是前者在Q_2\leftarrow x_2P映射中,满足x_2\overset{\$}{\leftarrow}Z/qZ;而后者为Q_2\leftarrow x_1^{-1}Q,Q_2\leftarrow x_1^{-1}Q是通过理想功能函数F_{ECDSA}处理后返回的公钥。然而因为F_{ECDSA}是从G中均匀随机取样出Q的,所以两种情形下Q_2的分布是相同的。

签名阶段一共是四个步骤,分别如下:

(1) 关于输入Sign(sid,m), 模拟器\delta会发送Sign(sid,m)F_{ECDSA}b并接受回一个签名对(r,s);

(2) \delta计算椭圆曲线点R = (r, r_y)用于ECDSA验证算法;

(3) \delta在输入ISign(sid,m)上调用A_1,并模拟前三次交互,使A_1计算出R,其策略与计算Q的策略类似,简而言之,其过程如下。

     a. \deltaA_1接受(com-prove,sid||1,R_1,k_1)

     b. 如果R_1=k_1P那么\delta设置R_2=k_1^{-1}R;否则它将随机选择R_2\delta发送(proof,sid||2,R_2)A_1

     c. \deltaA_1接受(decom-proof,sid||1)。如果R_1\neq k_1P那么\delta将模拟P_2中止后续处理的情形,并通知诚实的参与方计算F_{ECDSA}中止

(4) \delta计算c_3\leftarrow Enc_pk(k_1\cdot s \ mod\ q),其中s将从F_{ECDSA}中收到,并发送c_3A_1进行处理。

与密钥生成阶段Q_2的计算一样,由于R是经过F_{ECDSA}随机生成的,所以R_2在真实环境和理想环境中分布是相同的。零知识证明和验证在F_{zk},F_{com-zk}-混合模型中也是有相同分布的。因此,在真实环境和模拟环境中唯一不同的是c_3计算的方式。在模拟中,它是通过加密计算k_1\cdot s= k_1 \cdot k^{-1}(m^{'}+r \cdot x) = k_2^{-1}(m^{'}+r \cdot x)而来;在真实环境中c_3是利用加密方案的同态特性,由c_{key}计算而来。不过请注意,只要存在(u,w)使得c_{key}=Enc\left ( (u,w);(hp,x_1) \right ),其中Q=x_1P-这一点可以由理想功能函数F_{zk}^{R_{HPS-DL}}保证,而且只要同态特性成立-这一点可以由3.2节提到的有效验证集合K_{hp}^{'}保证,那么在真实场景下c_3也是可以通过s^{'}= k_2^{-1}(m^{'}+r \cdot x)得到,因此c_3这在两种案例情形下也是同分布的。

这意味着在协议的真实和理想环境下(在F_{zk},F_{com-zk}-混合模型中),被攻陷的参与方P_2的视角是相同的,即模拟器完美地模拟了真实环境的处理,这就完成了本模拟案例的证明工作。

\delta模拟P_1-攻陷P_2过程相类似,不过在签名阶段多了用对数反解c_3的过程,详请请参照原文)

PS:

当然自是不可能将这个部分逐字逐句翻译出来的,另外本人确实有相关定理的证明、安全论证并没有全部看懂,也不能主观臆断做出解释。

其实原文还有game理论推演部分本博文未给出,待我理解明白后再做分享。

5 Implementation and Efficiency Comparisons

这个部分作者将自己第四部分提到的协议实施内容与LIndell的方案(论文地址见PS(10))进行了比较。与[Lin17](见PS(10))一样,我们在标准的NIST曲线P-256、P-384和P-521上运行我们的实现,这些曲线分别对应128、192和256的安全级别。对于加密方案,我们和[Lin17]中一样从112-bit安全开始实施,不过也研究了其安全级别与椭圆曲线的安全性相匹配的情况。

与Lindell的不同的是,我们(作者)限定了零知识证明中的轮换次数以实现统计性的可靠性误差在2^{-40}。对于密钥分配我们也设定参数去实现统计性误差在2^{-40}。对于R_{DL}的零知识证明使用Schnorr协议实现的。

比较得出的图如下,表列分别对应ECDSA使用的椭圆曲线,加密方案的安全参数(比特),对应模数的比特大小,Paillier指数运算、密钥生成和签名阶段的时间开销,以及两个阶段的总通信量(比特)。模数位大小是根据NIST的推荐标准设置的。需要注意的是,对于表内第一行内容,我们和[Lin17]一样使用2048比特的模数得到了类似的实验结果:

针对原文5.3的比较描述简单分享一下,在112-bit和128-bit安全等级下Lindell的密钥生成和签名方面都很快。但是高安全等级下,从192-bit安全等级开始,我们的协议方案在密钥生成和签名方面要更快。

在总通信量方面,我们的方案在所有安全等级下的密钥生成方面比Lindell的有个5到10倍的落差。对于签名,我们在256-bit安全等级下增获了15%的安全系数,比Lindell的有个近2倍的落差。就轮换次数而言,我们的协议在密钥生成上是126次而Lindell的175次,所以我们增获了28%的优势。两个协议(Lindell的和我们的)都在签名上使用了7次轮换。

解释原因:首先作者们在密钥生成的方面使用了不到一半的指数数量,因为无需范围证明:我们的明文消息空间是Z/qZ,因为CL(HSM-CL,见PS(11))加密方案是模同态的。(这一点我也没分析出来具体为啥,因为PS(11)论文里的内容尚未看完,实操就尚未完成,后会有机会再作解释)第二,对于二次域的类群而言,我们可以使用比Z/qZ还低的参数量。然而,在类群中群法则是更复杂的,从表中的指数计算时间一列中可以看出我们在类群中的指数计算开销低是从192-bit安全等级开始的。对于签名,由于CL加密方案的Elgamal结构,我们增加了一个指数计算的成本。然而,我们可以注意到,我们可以通过在线下阶段计算\left (g_{q}^{\tau } , h^{\tau } \right )c_{1}\leftarrow \left (g_{q}^{\tau } , h^{\tau }f^{k_{2}^{-1}m^{'}} \right )来对这种加密方案进行预处理,这就导致在线阶段只有一次乘法计算(这个请参照原文中的附录5,这边就不贴出来了)。因此,我们在在线签名的解密过程中将只有一个指数计算。同样的情况也适用于Lindell与Paillier的协议。使用了该协议,那么这两个协议在192-bit安全等级上的签名时间是一样的。

4 Instantiation in Class Groups of an Imaginary Quadratic Field

6 Instantiation of our Generic Construction Using DCR

因为第四部分和第六部分都是作者将其在第三部分提出的理论架构进行的实例应用,给出了相应形式化证明和算法推导,感兴趣的可以仔细研读,有能力的也可以根据作者们的理论方案进行复现。(我是绝对不会承认是我懒的原因而没有表述~o(* ̄︶ ̄*)o~)

Ps:

(1) 哈希证明系统是零知识证明知识系统中的一个重要组成部分,简单来说,因为需要证明的内容是哈希值,就直接冠以哈希证明系统了,哈希证明系统的详解建议参照这篇文章浅谈哈希证明系统以及这篇论文哈希证明系统及应用研究

(2) 范围证明,同样是零知识证明里的重要概念,简单来说是可以验证一个知识在某个范围内,比如证明交易金额大于0。说这玩意儿高昂的原因之一就是其比特分解和承诺的生成花费的开销忒大了,想进一步了解的可以搜搜子弹证明(Bulletproof)方面的内容(>w<)

(3) 未知阶群,一种代数结构。顾名思义,就是一组阶不太能被计算出来的群组,该群组阶是一个秘密信息,即使对于群组创建者也无法知道它的阶。(理解这个并纠明原理有些困难,可以参照这篇英文论文具备无可信未知阶群的椭圆曲线

(4) 可靠性误差,可能会有人不太理解这个意思,补充说明一下,这个过程是个概率证明的过程,不是数学意义上的证明,是存在小概率误差的,但存在技术可以让这个误差忽略不计。

(5) 判定性复合假设, 简称DCRA,也叫决策复合残差假设,即基于复合剩余类的困难问题。这个假设算是paillier密码体系里比较重要的东东了。给定一个合数n和整数z,很难确定z是否为模n^{2}n次余数。即是否存在y使得:

z\equiv y^{n}mod \, n^{2} 

(6) 理想函数本质上是一个不可攻陷的可信角色,用来完成协议所需的理想运行和功能

     张俊伟, 马建峰, and 杨超. "安全定位协议的 UC 模型." 通信学报 34.2 (2013): 117-122.

(7) DDH: Decision Diffie Hellman的简称,本质是一个离散对数问题,用于解决不可区分性

(8) 直积:direct product,千万千万千万不要理解为直接产物,太low了。依旧是个数学概念,这边应该指的是群直积。截取一段维基百科简单介绍一下

(9)到达域, 又称陪域,一个函数的到达域指的是至少包含所有此函数的输出值的一个集合,简而言之是代表的一种映射关系。

(10)Lindell博士的论文 Y. Lindell. Fast secure two-party ECDSA signing. In CRYPTO 2017, Part II, LNCS 10402, pages 613–644. Springer, Heidelberg, August 2017.

(11)作者们的困难子群加密方案实施有参照这篇文献去实现,想实操复现的务必研读一下。

          G. Castagnos, F. Laguillaumie, and I. Tucker. Practical fully secure unrestricted inner product functional encryption modulo p. In ASIACRYPT 2018, Part II, LNCS 11273, pages 733–764. Springer, Heidelberg, December 2018.

(12)DCR的PHF方案见这篇文章实施:

   R. Cramer and V. Shoup. Universal hash proofs and a paradigm for adaptive chosen ciphertext secure public-key encryption. In EUROCRYPT 2002, LNCS 2332, pages 45– 64. Springer, Heidelberg, April / May 2002.

(13)PPT算法:PPT algorithm。不要认为是PowerPoint哈,这个在密码学里面的术语叫随机算法,当然这种随机指的是产生结果的随机。

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值