一篇CCS的关于自动化配对的论文分析

PPE Circuits: Formal Definition to Software Automation:PPE电路:软件自动化的形式化定义

前述

坐标2021.1.22
粗略地看一下吧。。。

关于paper

论文主要研究密码学中基于配对的方案——设计算法,对于一组可信的群元素,验证另一组不可信的群元素。
常见的做法:搜索签名方案的验证算法 或 用于相对于IBE/ABE公共参数验证IBE/ABE私钥的方法。
论文的方案基于ACM CCS 2019中提出的AutoPPE软件工具,它用于自动生成一组配对乘积方程(PPEs),用于验证一组配对群元素相对于一组可信群元素的正确性。
论文最终实现所提出算法,开源软件工具AutoCircuitPPE。
Keyword:Automated Proofs; Provable Security; Pairing-based Cryptography

定义和概念

  • 集合{1,…,n}记为[1,n];v表示向量,vi表示第i个元素,vU表示为元素vi的集合,i=1,…,n,其中i∈U⊆[1,n];v~U表示为元素vi的集合,i∉U
  • 配对组标识符集 I:{1,2,T}
  • x,y是(u1,…,un)的变元的多项式,则x≡y表示x和y是等价多项式。
  • 配对:设G1,G2和GT为素数阶p的群。映射e:G1×G2→GT是一个可接纳的配对,如果它满足以下三个性质:
    (1)双线性性:对于所有的g1∈G1,g2∈G2和a,b∈Zp,它认为e(ga,hb)=e(gb,ha)=e(g,h)ab。
    (2)非简并性:如果g1和g2分别是G1和G2的生成元,那么e(g1,g2)是GT的生成元。
    (3)有效性:存在一个有效的方法,给定任意的g1∈G1和g2∈G2,计算e(g1,g2)。
  • 三种配对类型:配对生成器PGen是一种算法,输入一个安全参数1λ,输出配对群(p,g1,g2,gT,G1,G2,GT,e)的参数,使得G1,G2和GT是素数阶p∈Θ(2λ)的群,其中g1生成G1,g2生成G2和e:G1×G2→GT是一个容许的配对。上述配对被称为 不对称或III型配对。G1到G2之间存在一个有效的同构ψ,或G2到G1之间存在一个有效的同构Φ,为II型配对。在对称或I型配对中,有效同构ψ和Φ都存在,因此我们可以把它看作G1=G2。【本文支持任何类型的配对】
  • 变量Z上的配对积方程:
    源于论文

正文

PPE电路

电路符号

  • 配对参数G=(p,g1,g2,gT,G1,G2,GT,e);正整数n,m;多元多项式f=(f1,…,fm)在Zp的n个变量表示为u=(u1,…,un);I={1,2,T}中配对群标识符的序列表示为α=(α1,…,αm);集合 Trusted⊆[1,m]。
  • 使用符号 InTrusted(∏)来表示出现在∏的可信多项式集合中的变量集,即,InTrusted(∏)=Ui∈Trusted{fi中使用的变量} ⊆ u。
  • ∏=(G,n,m,f,u,α,Trusted)为PPE问题实例
  • 设F=(F1,…,Fm)由配对群元素组成,其中每个Fi都在群Gαi中,F被称为PPE实例∏的一个挑战。分为三种:
    (1)YES挑战,如果存在对变量u=(u1,…,un)∈Zpn的分配,使得对于所有i,Fi=gαifi(u)。(2)NO挑战,如果它不是一个YES挑战,并且存在一个赋值u=(u1,…,un)∈Zpn,使得对于所有i∈Trusted,Fi=gαifi(u)。(3)INVALID挑战,两者皆不是的。
  • 将YES挑战视为可信和不可信元素都按其应该的方式分布;而在NO挑战中,可信元素的格式正确,而不可信元素的格式不正确。在INVALID挑战中,“可信”元素不是从适当的分布中提取的(例如,公共参数不正确),因此,忽略这种情况。
  • 设计目标:将PPE挑战作为输入,输出1对于所有YES挑战,输出0对于所有NO挑战。即,PPE电路以m个群元素作为输入,输出一个位。与常规电路一样,电路的每个门都可以是AND/OR/NOT门。此外,我们还允许电路具有PPE门

PPE电路的定义

PPE电路C是一个元组(G,m,α,N,Gates,out,GateType,A,B),其中
•G=(p,g1,g2,gT,G1,G2,GT,e)建立代数设置
•整数m指定电路输入中的群元素数。我们将这些称为Inputs={1。,m}
•向量α=(α1,…,αm)是输入元素I={1,2,T}中的配对组标识符序列
•整数N是PPE电路中的门数
•Gates={m+1,…,m+N}。我们将参考Wires=Inputs ∪ Gates
•out是门中的整数,表示输出门。除非另有说明,out=m+N.
•GateType:Gates→{(PPE,β),AND,OR,NOT}是标识门功能的函数。在PPE门的情况下,描述包括具有m个输入线的电路β,它的逻辑形成了变量F1,…,Fm上的PPE,其中每个Fi∈Gαi由α指定,并且PPE的单个输出线携带表示输入是否满足PPE的位。
•A:Gates→Wires和B:Gates→Wires是功能。对于任何与/或/非门g,A(g)表示g的第一根进线。对于任何和/或门g,B(g)表示g的第二根进线。我们要求g>B(g)>A(g),在未定义时忽略B(g)。回想一下,所有PPE门的输入线都是Inputs。

本文描述了一种以m群元素作为输入,并在输出线上输出单个输出的电路。

电路的评估

将PPE电路C=(G,m,α,N,Gates,out,GateType,A,B)与m元素PPE挑战(x1,…,xm),它必须与(G,α)一致(即xi∈Gαi),作为输入。
输出一个{0,1}位。

寻找PPE测试电路

输入是PPE问题∏,有两种可能的输出类型。它要么输出∏是PPE电路可测试的,为了确认这一点,它将产生一个测试电路Q,要么输出特殊的未知响应。
每一步都试图通过向受信任集添加多项式fi来“降低”其输入的复杂性。如果能得到Trusted=[1,m],那么我们就找到了一个测试电路。如果在任何一点,Trusted≠[1,m],但没有任何移动规则可以应用,则算法终止并输出未知。
(1)完备列表:CL(f)是一个攻击者可以通过配对和同构运算计算出的所有多项式的列表,当他可以访问群Gi中的元素时,对应于ti,i∈I中的多项式。
(2)将多项式移动到可信集合的规则:
规则1:简单地将包含所有受信任变量的多项式移动到受信任集
规则2:简单地将一个只有一个非信任变量的多项式移动到信任集
规则3:更一般的移动一个有所有受信任变量的多项式到可信集
规则4:含有多个不可信变量的多项式向可信集的一般移动
(3)应用算法为QSearch,设C=QSearch(∏)。如果C≠unknown,则C是定义3.5中∏的PPE测试电路,因此∏是可测试电路。
递归搜索算法,它在每一步都尝试将不受信任的元素移动到受信任的集合中,并(可能)向验证算法(PPE电路)添加一些逻辑和/或PPE。在每一步,它都会检查我们的四条逻辑规则是否适用。如果在任何时候,没有适用的规则,那么工具输出未知。一旦所有元素都被信任,它就会输出PPE电路。

实现

AutoCircuitPPE的源代码包含大约4K行Ocaml代码。该工具的输入文件由配对类型、一组可信和不可信多项式组成。对于表1中的方案,这些信息可以用3-6行代码表示。根据我们的经验,大多数基于配对的方案可以在几分钟内编码成这种输入格式。将给定的基于配对的方案转换为AutoCircuitPPE的输入格式非常容易,这使得该工具非常实用。AutoCircuitPPE的代码可公开获取:https://github.com/JHUISI/auto-tools.
做了参考文献中未完成的工作:Dodis VRF的详细示例
评估了各种基于配对方案的自动电路。
提出了一些开放性问题:有理多项式的处理、更有效的编码方案等

心得

no心得,这篇看的确实潦草,晚上要汇报来不及细细看了
特此声明,该博文所写均为本人自己理解,如有争议以论文原作者为准,(鞠躬

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值