一种椭圆曲线点加硬件加速方法及装置,该方法主机端通过OpenCL异构计算框架查找FPGA设备端,将比特流文件加载、烧录到FPGA设备端芯片上,进行加速器初始化,等待运行;在主机端设置待计算的输入数据,OpenCL异构计算框架将输入数据送入到FPGA设备端的存储缓冲区,当数据传输完毕后,主机端向FPGA设备端发出运行指令;将每列数据进行按位标量划分整理,根据存储结构中的数据点的个数动态调用若干次批量点加;批量点加过程,从流式存储结构FIFO读取数据,判断每次所取的两个数据点是否相等,若相等输入Double模块,若不相等输入ADD模块。本发明专利技术效率高;降低了计算开销,通用性强。通用性强。通用性强。
【技术实现步骤摘要】
一种椭圆曲线点加硬件加速方法及装置
[0001]本专利技术涉及零知识证明
,具体涉及一种椭圆曲线点加硬件加速方法及装置。
技术介绍
[0002]零知识证明(Zero
‑
knowledge proof,ZKP)是一类密码学协议,能够使得一方向另一方证明其陈述的正确性,而不泄露与该陈述相关的任何信息。由于其完备性(Completeness)、可靠性(Soundness)和零知识性(Zero
‑
knowledg),该技术在数字签名、匿名授权、支付安全等应用场景有着突出的优势。
[0003]零知识证明技术自从被提出至今,出现很多不同的证明方法。其中,简洁非交互式零知识证明(Zero
‑
knowledge succinct non
‑
interactive arguments of knowledge,zk
‑
SNARK),极大地推动了这项技术在数字签名、区块链以及分布式存储等领域的应用。
[0004]zk
‑
SNARK由于生成的证明数据量小、验证成本低的优势,逐渐取代了证明者与验证方交互式的生成证明、验证的方式。zk
‑
SNARK使得证明者根据多项式只需一次性生成一条唯一对应的证明,同时提供验证参数,任何验证者都可以自行验证该证明的正确性。
[0005]在零知识证明的过程中,椭圆曲线点加的计算主要在于多标量乘法,其时间占到70%。多标量乘法指若干个标量和若干个椭圆曲线的点一一相乘,再对这若干个结果求和的过程。其中每个标量是指一个256位的大数,而每个椭圆曲线上的点会根据不同的曲线对应到不同的数据结构,但其中每个坐标都是一个384位的大数(实数或复数)。在一次多标量乘法的过程中,会出现百万数量级的点乘,每次点乘又包含百万数量级的点加,如此带来的时间开销是巨大的。
[0006]综上所述,亟需一种新的用于zk
‑
SNARK中椭圆曲线点加的FPGA硬件加速方案。
技术实现思路
[0007]为此,本专利技术提供一种椭圆曲线点加硬件加速方法及装置,特别是一种用于zk
‑
SNARK中椭圆曲线点加的FPGA硬件加速方法及装置,以解决全部或部分解决
技术介绍
中提及的问题。
[0008]为了实现上述目的,本专利技术提供如下技术方案:一种椭圆曲线点加硬件加速方法,包括:
[0009]主机端通过OpenCL异构计算框架查找FPGA设备端,将比特流文件加载、烧录到FPGA设备端芯片上,进行加速器初始化,等待运行;
[0010]在主机端设置待计算的输入数据,OpenCL异构计算框架将输入数据送入到FPGA设备端的存储缓冲区,当数据传输完毕后,主机端向FPGA设备端发出运行指令;
[0011]将每列数据进行按位标量划分整理,根据存储结构中的数据点的个数动态调用若干次批量点加;
[0012]批量点加过程,从流式存储结构FIFO读取数据,判断每次所取的两个数据点是否
相等,若相等输入Double模块,若不相等输入ADD模块。
[0013]作为椭圆曲线点加硬件加速方法优选方案,待计算的输入数据为n个椭圆曲线点和对应n个标量,在主机端将待计算的输入数据送到DDR上,以供FPGA设备端调用。
[0014]作为椭圆曲线点加硬件加速方法优选方案,FPGA设备端将获取的输入数据中的256位标量按位划分,每列为一份,共256份;
[0015]对每一列逐一访问n组数据,每次访问时,若数据点对应的“一位标量”为1,则将数据点写入对应的流式存储结构FIFO;若数据点对应的“一位标量”不为1,数据点不写入对应的流式存储结构FIFO。
[0016]作为椭圆曲线点加硬件加速方法优选方案,对每列对应的流式存储结FIFO访问,取出所有数据点,通过批量点加计算得出一个点,作为此列所有数据点的和。
[0017]作为椭圆曲线点加硬件加速方法优选方案,FPGA设备端将每列数据计算结果传输至主机端,主机端将256个值根据位权重组合成最终的值,作为n组数据的多标量乘法结果。
[0018]作为椭圆曲线点加硬件加速方法优选方案,将点加运算过程中的模运算按照运算类型和数据依赖关系划分若干阶段,每个阶段内的多轮相同运算流水进行,各阶段之间设置Dataflow架构进行多次点加运算间的流水,将批量点加封装成独立的核函数。
[0019]本专利技术还提供一种椭圆曲线点加硬件加速装置,包括:
[0020]查找单元,用于主机端通过OpenCL异构计算框架查找FPGA设备端;
[0021]初始化单元,用于将比特流文件加载、烧录到FPGA设备端芯片上,进行加速器初始化,等待运行;
[0022]数据设置单元,用于在主机端设置待计算的输入数据;
[0023]数据缓冲单元,用于OpenCL异构计算框架将输入数据送入到FPGA设备端的存储缓冲区;
[0024]指令下发单元,用于当数据传输完毕后,主机端向FPGA设备端发出运行指令;
[0025]划分整理单元,用于将每列数据进行按位标量划分整理;
[0026]动态调用单元,用于根据存储结构中的数据点的个数动态调用若干次批量点加;
[0027]批量点加单元,用于批量点加过程,从流式存储结构FIFO读取数据,判断每次所取的两个数据点是否相等,若相等输入Double模块,若不相等输入ADD模块。
[0028]作为椭圆曲线点加硬件加速装置优选方案,所述数据设置单元中,待计算的输入数据为n个椭圆曲线点和对应n个标量;
[0029]还包括数据存储单元,用于在主机端将待计算的输入数据送到DDR上,以供FPGA设备端调用。
[0030]作为椭圆曲线点加硬件加速装置优选方案,所述划分整理单元中,FPGA设备端将获取的输入数据中的256位标量按位划分,每列为一份,共256份;
[0031]所述划分整理单元中,对每一列逐一访问n组数据,每次访问时,若数据点对应的“一位标量”为1,则将数据点写入对应的流式存储结构FIFO;若数据点对应的“一位标量”不为1,数据点不写入对应的流式存储结构FIFO;
[0032]所述划分整理单元中,对每列对应的流式存储结FIFO访问,取出所有数据点,通过批量点加计算得出一个点,作为此列所有数据点的和;
[0033]所述划分整理单元中,FPGA设备端将每列数据计算结果传输至主机端,主机端将
256个值根据位权重组合成最终的值,作为n组数据的多标量乘法结果。
[0034]作为椭圆曲线点加硬件加速装置优选方案,所述批量点加单元中,将点加运算过程中的模运算按照运算类型和数据依赖关系划分若干阶段,每个阶段内的多轮相同运算流水进行,各阶段之间设置Dataflow架构进行多次点加运算间的流水,将批量点加封装成独立的核函数。
[0035]本专利技术具有如下优点:主机端通过OpenCL异构计算框架查找本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种椭圆曲线点加硬件加速方法,其特征在于,包括:主机端通过OpenCL异构计算框架查找FPGA设备端,将比特流文件加载、烧录到FPGA设备端芯片上,进行加速器初始化,等待运行;在主机端设置待计算的输入数据,OpenCL异构计算框架将输入数据送入到FPGA设备端的存储缓冲区,当数据传输完毕后,主机端向FPGA设备端发出运行指令;将每列数据进行按位标量划分整理,根据存储结构中的数据点的个数动态调用若干次批量点加;批量点加过程,从流式存储结构FIFO读取数据,判断每次所取的两个数据点是否相等,若相等输入Double模块,若不相等输入ADD模块。2.根据权利要求1所述的一种椭圆曲线点加硬件加速方法,其特征在于,待计算的输入数据为n个椭圆曲线点和对应n个标量,在主机端将待计算的输入数据送到DDR上,以供FPGA设备端调用。3.根据权利要求2所述的一种椭圆曲线点加硬件加速方法,其特征在于,FPGA设备端将获取的输入数据中的256位标量按位划分,每列为一份,共256份;对每一列逐一访问n组数据,每次访问时,若数据点对应的“一位标量”为1,则将数据点写入对应的流式存储结构FIFO;若数据点对应的“一位标量”不为1,数据点不写入对应的流式存储结构FIFO。4.根据权利要求3所述的一种椭圆曲线点加硬件加速方法,其特征在于,对每列对应的流式存储结FIFO访问,取出所有数据点,通过批量点加计算得出一个点,作为此列所有数据点的和。5.根据权利要求4所述的一种椭圆曲线点加硬件加速方法,其特征在于,FPGA设备端将每列数据计算结果传输至主机端,主机端将256个值根据位权重组合成最终的值,作为n组数据的多标量乘法结果。6.根据权利要求1所述的一种椭圆曲线点加硬件加速方法,其特征在于,将点加运算过程中的模运算按照运算类型和数据依赖关系划分若干阶段,每个阶段内的多轮相同运算流水进行,各阶段之间设置Dataflow架构进行多次点加运算间的流水,将批量点加封装成独立的核函数。7.一种椭圆曲线点加硬件加速装置,其特征在于,包括:查找单元,用于主机端通过OpenCL异...
【专利技术属性】
技术研发人员:汪海洋,郏晖,白锦龙,赵海旭,花鹏程,王锋,丁冬,柴志雷,
申请(专利权)人:江南信安北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。