一种高效的零知识证明加速器及方法技术

技术编号:34464031 阅读:21 留言:0更新日期:2022-08-10 08:35
本发明专利技术涉及一种高效的零知识证明加速器,可以为零知识证明计算提供一个高算力高效能的硬件载体。本发明专利技术通过对多标量乘法采用一种细粒度的流水线架构,此架构在不增大芯片面积的情况下,能够将多个椭圆曲线点加架构集成到一个大数模乘硬件电路,即只需一个大数模乘硬件电路即可对椭圆曲线点加计算进行流水计算加速。同时,进一步将多个大数模乘硬件电路集成,可以实现对多个椭圆曲线点加计算进行并行加速。因此,本发明专利技术比现有技术更加灵活适用于不同规模的ASIC和FPGA。不同规模的ASIC和FPGA。不同规模的ASIC和FPGA。

【技术实现步骤摘要】
一种高效的零知识证明加速器及方法


[0001]本公开涉及电子信息技术,具体涉及一种高效的零知识证明加速器及方法。

技术介绍

[0002]零知识证明(Zero Knowledge Proofs,ZKP)是一种强大的密码学协议。简而言之,其中证明者(Prover)知道问题的答案,他需要向验证者(Verifiers)证明“他知道答案”这一事实,但是要求验证者不能获得答案的任何信息。目前,零知识证明由于其极高的隐私性及简洁性,对于提供隐私保全的验证特别有用。在区块链领域有许多应用,例如安全多方计算,分布式存储,可验证外包数据库,链下扩容,在线拍卖等等。然而,零知识证明在应用中一个重要的障碍在于证明者生成证明的过程非常耗时,因为生成证明包含大量大位宽数据在有限域上的多项式计算(包括快速数论变换及快速数论逆变换)和椭圆曲线多标量乘法。
[0003]采用通用中央处理器(CPU)或图形处理器(GPU)对零知识证明进行计算,不但功耗高,并且计算慢。基于现场可编程门阵列(FPGA)或专用集成电路(ASIC)实现的零知识证明加速器在计算速度及效能方面有较高的提升。
[0004]现有技术采用流水线架构的专用集成电路实现零知识证明加速器,其内部实现了对多项式计算和椭圆曲线多标量乘法的加速,但由于椭圆曲线多标量乘法采用Pippenger算法与粗粒度流水线架构实现,导致加速器内部需要数十个大数模乘硬件电路,直接导致其需要超大数量的DSP单元。因此,ASIC需要超大的芯片面积,而过大的芯片面积容易导致芯片量产的不良率升高。然而,如果用FPGA实现,也很难在一颗DSP资源有限的FPGA芯片上部署这样的流水线架构的专用集成电路。

技术实现思路

[0005]有鉴于此,本申请的主要目的在于提供一种用于加速零知识证明算法的加速器,通过高效利用硬件资源方法,从而实现使用少数的数字信号处理(DSP)单元就可以实现对高复杂度的零知识证明算法的加速。
[0006]一方面,本专利技术提出了一种高效的零知识证明加速器,所述加速器包括数据合并模块、多个椭圆曲线点加模块、数据分发模块、有限域多项式计算模块;所述有限域多项式计算模块将椭圆曲线的点与标量数据进行快速数论变换与快速数论逆变换,以完成有限域多项式计算,输出第一计算结果;所述数据分发模块将第一计算结果中的椭圆曲线点乘计算分解成椭圆曲线点加计算,并将需要进行点加计算的一组点分发给一个椭圆曲线点加模块;所述多个椭圆曲线点加模块在空间上进行并行计算,并将点加结果输出给数据合并模块进行合并打包。
[0007]优选地,在所述加速器中,所述椭圆曲线点加模块包括数据流控制单元;所述数据流控制单元将椭圆曲线点加计算分解为多步计算公式,每一步计算公式只包含一次大数模乘或者大数模加或者大数模减计算。
[0008]优选地,在所述加速器中,所述数据流控制单元能够同时输入多个椭圆曲线点组
合,并对同时输入的多个椭圆曲线点组合进行流水线并行计算。
[0009]优选地,在所述加速器中,一个所述椭圆曲线点加模块用一个大数模乘电路实现。
[0010]另一方面,本专利技术提出了一种高效的零知识证明方法,所述方法包括下述步骤:
[0011]S100、获取需要计算的椭圆曲线的点与标量数据;
[0012]S200、将所述数据经过多次的快速数论变换与快速数论逆变换,完成有限域高次多项式计算;
[0013]S300、将有限域高次多项式计算的计算结果中的椭圆曲线点乘运算分解为多个并行进行的椭圆曲线点加运算,每个椭圆曲线点加运算依次对椭圆曲线上的点组合进行点加运算;
[0014]S400、将椭圆曲线点加运算的计算结果进行合并。
[0015]优选地,在所述方法中,所述S400还包括下述步骤:
[0016]S401、将每个点组合对应的点加运算分解为多步计算公式,每一步计算公式只包含一次大数模乘或者大数模加或者大数模减计算。
[0017]优选地,在所述方法中,所述S401之后还包括下述步骤:
[0018]S402、采用多级流水线方式将多个点组合按公式进行并行计算。
[0019]优选地,在所述方法中,所述每个椭圆曲线点加运算通过一个大数模乘电路实现。与现有技术相比:
[0020]本专利技术可以为零知识证明计算提供一个高算力高效能的硬件载体。本专利技术采用一种细粒度的流水线架构,即只需一个大数模乘硬件电路即可对椭圆曲线点加计算进行流水计算加速。同时,如果将多个大数模乘硬件电路集成,可以实现对多个椭圆曲线点加计算进行并行加速。因此,本专利技术比现有技术更加灵活适用于不同规模的ASIC和FPGA。
附图说明
[0021]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1本专利技术实施例中的零知识证明加速器框架示意图;
[0023]图2是本专利技术实施例中的椭圆曲线点加模块示意图;
[0024]图3是本专利技术实施例中的大数模乘流水线示意图示意图。
具体实施方式
[0025]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0026]本申请的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或设备的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或设备,而是可包括没有清楚地列出的或对于这些过程、方
法、产品或设备固有的其他步骤或设备。
[0027]为使本申请的目的、技术方案和优点更加清楚,下面以具体实施例对本专利技术的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0028]在一个实施例中,采用了一种高效的零知识证明加速器,所述加速器包括数据合并模块、多个椭圆曲线点加模块、数据分发模块、有限域多项式计算模块;所述有限域多项式计算模块将椭圆曲线的点与标量数据进行快速数论变换与快速数论逆变换,以完成有限域多项式计算,输出第一计算结果;所述数据分发模块将第一计算结果中的椭圆曲线点乘计算分解成椭圆曲线点加计算,并将需要进行点加计算的一组点分发给一个椭圆曲线点加模块;所述多个椭圆曲线点加模块在空间上进行并行计算,并将点加结果输出给数据合并模块进行合并打包。
[0029]在这个实施例中,如图1所示,可以是加速器通过所在系统上的CPU将需要计算的椭圆曲线的点与标量数据从存储设备中读取后,传输给加速器,也可以是将加速器单独集成为一个装置,在该装置中配置一个数据读取模块,从存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效的零知识证明加速器,其特征在于:所述加速器包括数据合并模块、多个椭圆曲线点加模块、数据分发模块、有限域多项式计算模块;所述有限域多项式计算模块将椭圆曲线的点与标量数据进行快速数论变换与快速数论逆变换,以完成有限域多项式计算,输出第一计算结果;所述数据分发模块将第一计算结果中的椭圆曲线点乘计算分解成椭圆曲线点加计算,并将需要进行点加计算的一组点分发给一个椭圆曲线点加模块;所述多个椭圆曲线点加模块在空间上进行并行计算,并将点加结果输出给数据合并模块进行合并打包。2.根据权利要求1所述的高效零知识证明加速器,其特征在于:所述椭圆曲线点加模块包括数据流控制单元;所述数据流控制单元将椭圆曲线点加计算分解为多步计算公式,每一步计算公式只包含一次大数模乘或者大数模加或者大数模减计算。3.根据权利要求2所述的高效零知识证明加速器,其特征在于:所述数据流控制单元能够同时输入多个椭圆曲线点组合,并对同时输入的多个椭圆曲线点组合进行流水线并行计算。4.根据权利要求1所述的高效零知识证明加速器,...

【专利技术属性】
技术研发人员:杨永魁鲁真妍喻之斌
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1