【技术实现步骤摘要】
一种面向zk
‑
SNARK运算的GPU并行加速方法
[0001]本专利技术属于加密
,具体涉及一种面向zk
‑
SNARK运算的GPU并行加速方法。
技术介绍
[0002]零知识证明(Zero
‑
Knowledge Proofs,ZKP)是密码学中常用的隐私保护手段之一,最早由S.Goldwasser、S.Micali及C.Rackoff提出,其核心是零知识体系的构建。该证明过程中主要涉及两方参与者,分别是证明者(Prover)P和验证者V(Verifier)。设P掌握一些信息X,并希望向V证明P确实掌握了X,如果某个协议能够向V证明P确实掌握了X,同时V不能得知任何关于X本身的信息,则称该协议为零知识证明协议。零知识证明必须满足以下条件:
[0003]1.正确性,如果P没有掌握X,P使V相信P掌握了X的概率很低;
[0004]2.完备性,如果P掌握了X,P能使V以绝对优势的概率相信P掌握了X;
[0005]3.零知识性,V无法获取任何额外的知识,尤其是不能得知X。
[0006]一般而言,零知识证明构建了一套基于概率方法的证明体系。理论上,P伪造X骗取V的信任的成功率依测度收敛至零;而在实践中,则是一个极小概率事件。
[0007]zk
‑
SNARK是zero
‑
knowledge Succinct Non
‑
interactive ARguments of Knowl ...
【技术保护点】
【技术特征摘要】
1.一种面向zk
‑
SNARK运算的GPU并行加速方法,其特征在于,包括:步骤(1):CPU执行输入输出任务,将待处理数据读入内存,CPU执行Prescan过程,根据给定进制划分指数,并将对应指数的底数分离;其中,输入输出任务指计算椭圆曲线有限域上的多重点加任务并给出结果M,P1…
P
N
为底数,a1…
a
N
分別为各项对应之指数;待处理数据即输入步骤(2):CPU为GPU分配内存空间和桶数组,将底数放入桶中;步骤(3):GPU根据桶数据执行BucketMul计算,为每个桶完成桶内数据乘积计算;步骤(4):GPU使用完成桶内乘积计算的值,执行WindowReduce操作,进行桶间组内,也即指数某一位的全部底数乘积的计算;步骤(5):GPU根据步骤(4)的计算结果,将每一位的值整合起来,执行FinalReduce过程,使对应位的指数完成自乘,并将自乘后的数值相乘得到最终的结果。2.根据权利要求1所述的一种面向zk
‑
SNARK运算的GPU并行加速方法,其特征在于,所述步骤(1)具体过程为:步骤(1.1),CPU执行输入输出任务,将待处理数据读入内存,CPU执行Prescan任务,计算出每个桶T
im
内的元素索引,并为GPU设计分配区域存放;步骤(1.2),采用一次性分配的方式,使用标记数组记录每个桶对应的索引缓存区的起始位置与终止位置,从而划分出每个桶的索引缓存区。3.根据权利要求2所述的一种面向zk
‑
SNARK运算的GPU并行加速方法,其特征在于,所述步骤(1.1)中,根据的计算内容,分析得出,T
im
中i相同,即属于同一R
i
的桶,并起来是全体输入P1,P2,
…
,P
N
;R
i
的个数即指数的2
C
进制位数因此共需分配个索引的空间,上述运算中,假设P1…
P
N
为底数,Multiexp运算有N项,每个指数为二进制的B位数,每C位划为一组。4.根据权利要求2或3所述的一种面向zk
‑
SNARK运算的GPU并行加速方法,其特征在于,所述步骤(1.2)中,根据指数的数值确定确定每个输入出现于桶的位置,对k=0~N,通过右移并取与,得出输入的指数a
k
在2
C
进制...
【专利技术属性】
技术研发人员:肖利民,沈润楠,肖希源,王良,郭为,
申请(专利权)人:北京天数微芯半导体科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。