System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种实现大数加法的方法及装置制造方法及图纸_技高网

一种实现大数加法的方法及装置制造方法及图纸

技术编号:39952278 阅读:8 留言:0更新日期:2024-01-08 23:23
本申请公开了一种实现大数加法的方法及装置,应用于两个L比特数据的加法运算中,在所述加法运算中包括多次迭代运算,对于第一次迭代运算中的加法操作,每个加法操作采用ADD指令,每个ADD操作的进位值分别对应存储在各自的进位部件中;其中,ADD操作与进位部件一一对应;对于除所述第一次迭代运算的剩余迭代运算中的加法操作,每个加法操作采用ADC指令,每个ADC操作实现带各自对应的进位部件中的进位值的加法处理,并将每个ADC操作的进位值存储在对应的进位部件中;其中,ADC操作与ADD操作按照在各自的迭代运算中的执行顺序一一对应。

【技术实现步骤摘要】
【国外来华专利技术】

本申请涉及但不限于大数运算技术,尤指一种实现大数加法的方法及装置


技术介绍

1、零知识证明(zero—knowledge proof),是由s.goldwasser、s.micali及c.rackoff在20世纪80年代初提出的。零知识证明作为一种高度信息安全的加密技术,在未来的信息传输领域具有广阔的应用前景。零知识证明中涉及大量的有限域计算,即以一个非常大的质数为边界的加、减、乘法等计算。为了简化计算过程,消除计算最为复杂的除法和取余计算,相关技术中,通常会将数值从有限域变化到蒙哥马利(montgomery)域,并集中在montgomery域进行对应的加、减、乘、平方等计算,最后再将结果从montgomery域转回到对应的有限域。

2、在实际应用中,有限域对应的模即质数非常大(几百bit以上),对应的montgomery乘法在通用的32bit或64bit通用处理器上,会将乘数与被乘数截为若干32bit或64bit,而后进行分解计算。

3、相关技术montgomery乘法中,为了实现两个较大的数的相加,需要大量使用加法(add)和进位加法(adc)运算,这样,会大辐增加硬件资源,而且增加了总体计算指令总数,降低了计算效率。


技术实现思路

0、专利技术概述

1、本申请提供一种实现大数加法的方法及装置,能够解决上述任一技术问题。

2、本申请实施例提供一种实现大数加法的方法,应用于两个l比特数据的加法运算中,在所述加法运算中包括多次迭代运算;包括:

3、对于第一次迭代运算中的加法操作,每个加法操作采用add指令,每个add操作的进位值分别对应存储在各自的进位部件中;其中,add操作与进位部件一一对应;add指令实现两个l比特数据的不加进位位的相加;

4、对于除所述第一次迭代运算的剩余迭代运算中的加法操作,每个加法操作采用adc指令,每个adc操作实现带各自对应的进位部件中的进位值的加法处理,并将每个adc操作的进位值存储在对应的进位部件中;其中,adc操作与add操作按照在各自的迭代运算中的执行顺序一一对应;adc指令实现两个l比特数据的加进位位的相加。

5、在一种示例性实例中,所述大数加法包括montgomery域乘法运算中的加法运算;

6、所述将每个add操作的进位值分别对应存储在各自的进位部件中,包括:在montgomery域乘法运算的第一次迭代运算中,将每个add操作的进位值分别对应存储在各自的进位部件中;

7、所述实现带各自对应的进位部件中的进位值的加法处理,包括:在montgomery域乘法运算的除所述第一次迭代运算的剩余迭代运算中,采用adc操作实现带各自对应的进位部件中的进位值的加法处理,并将每个adc操作的进位值存储在对应的进位部件中。

8、在一种示例性实例中,所述add操作按照执行顺序包括add0操作、add1操作、add2操作和add3操作;所述adc操作按照执行顺序包括adc0操作、adc1操作、adc2操作和adc3操作;

9、所述第一次迭代运算中,所述add0操作的进位值对应存储在进位部件0中,所述add1操作的进位值对应存储在进位部件1;所述add2操作的进位值对应存储在进位部件2;所述add3操作的进位值对应存储在进位部件3;

10、所述除所述第一次迭代运算的剩余迭代运算中,所述adc0操作使用的进位值为存储所述进位部件0中的进位值,所述adc0操作产生的进位值对应存储在所述进位部件0中;所述adc1操作使用的进位值为存储所述进位部件1中的进位值,所述adc1操作产生的进位值对应存储在所述进位部件1中;所述adc2操作使用的进位值为存储所述进位部件2中的进位值,所述adc2操作产生的进位值对应存储在所述进位部件2中;所述adc3操作使用的进位值为存储所述进位部件3中的进位值,所述adc3操作产生的进位值对应存储在所述进位部件3中。

11、在一种示例性实例中,所述montgomery乘法包括:通过l比特处理器实现两个m比特数据的montgomery乘法;其中,m大于l;m根据算法所选用有限域数据的大小变化。

12、本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述实现大数加法的方法。

13、本申请实施例再提供一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的实现大数加法的方法的步骤。

14、本申请实施例又提供一种实现大数加法的装置,包括:第一多路选择器、n个进位部件、第二多路选择器,add/adc运算单元;n为大于1的整数;其中,

15、add/adc运算单元,用于两个l比特数据的加法运算;在第一次迭代运算中,执行add操作时,根据指令编码带来自第一多路选择器的数值0进位值的加法处理,将add操作的进位值输出给第二多路选择器;在除第一次迭代运算的剩余迭代运算中,执行adc操作时,根据指令编码带来自第一多路选择器的进位值的加法处理,并将产生的进位值输出给第二多路选择器;不同的add/adc操作按照先后执行顺序标识对应不同的指令编码;

16、第二多路选择器,设置有一输入端、n个输出端和第二控制端,用于从输入端接收来自add/adc运算单元的进位值,根据指令编码并通过第二控制端的控制,选择对应的路径的输出端将进位值输出给对应的进位寄存器,

17、第一多路选择器,设置有n+1个输入端、1个输出端和第一控制端,用于根据指令编码并通过第一控制端的控制,选择将与对应的路径的输入端连接的进位寄存器中的进位值或数值0从输出端输出给add/adc运算单元;

18、每个进位部件,用于存储与指令编码对应的add/adc操作的进位值。

19、在一种示例性实例中,所述大数加法包括montgomery域乘法运算中的加法运算。

20、在一种示例性实例中,进位部件为1bit寄存器。

21、本申请实施例还提供一种实现大数加法的装置,用于实现两个l比特数据的加法运算中,在所述加法运算中包括多次迭代运算,所述装置包括:多个add运算单元、与每个add运算单元分别对应设置的进位部件,多个与add运算单元对应的adc运算单元;其中,

22、add运算单元,用于在第一次迭代运算中,执行add操作,并将add操作的进位值存储在与该add运算单元对应的进位部件中;

23、adc运算单元,用于在除第一次迭代运算的剩余迭代运算中,实现带对应该adc运算单元的进位部件中的进位值的加法处理,并将产生的进位值存储在对应的进位部件中。

24、在一种示例性实例中,大数加法包括montgomery域乘法运算中的加法运算;所述add运算单元包括4个、所述adc运算单元包括4个;其中,

25、所述add运算单元,用于在mont本文档来自技高网...

【技术保护点】

1.一种实现大数加法的方法,包括多次迭代运算;包括:

2.根据权利要求1所述的方法,其中,所述大数加法包括Montgomery域乘法运算中的加法运算;

3.根据权利要求2所述的方法,其中,所述ADD操作按照执行顺序包括ADD0操作、ADD1操作、ADD2操作和ADD3操作;所述ADC操作按照执行顺序包括ADC0操作、ADC1操作、ADC2操作和ADC3操作;

4.根据权利要求3所述的方法,其中,所述Montgomery乘法包括:通过L比特处理器实现两个M比特数据的Montgomery乘法;其中,M大于L;M根据算法所选用有限域数据的大小变化。

5.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~4任一项所述实现大数加法的方法。

6.一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行权利要求1~4任一项所述的实现大数加法的方法的步骤。

7.一种实现大数加法的装置,包括:第一多路选择器、n个进位部件、第二多路选择器,ADD/ADC运算单元;n为大于1的整数;其中,

8.根据权利要求7所述的装置,其中,所述大数加法包括Montgomery域乘法运算中的加法运算。

9.根据权利要求7或8所述的装置,其中,进位部件为1bit寄存器。

10.一种实现大数加法的装置,用于实现多次迭代运算中包括的两个L比特数据的加法运算,所述装置包括:多个ADD运算单元、与每个ADD运算单元分别对应设置的进位部件,多个与ADD运算单元对应的ADC运算单元;其中,

11.根据权利要求10所述的装置,其中,大数加法包括Montgomery域乘法运算中的加法运算;所述ADD运算单元包括4个、所述ADC运算单元包括4个;其中,

12.根据权利要求10或11所述的装置,其中,所述进位部件为1bit寄存器。

13.根据权利要求11所述的装置,其中,

...

【技术特征摘要】
【国外来华专利技术】

1.一种实现大数加法的方法,包括多次迭代运算;包括:

2.根据权利要求1所述的方法,其中,所述大数加法包括montgomery域乘法运算中的加法运算;

3.根据权利要求2所述的方法,其中,所述add操作按照执行顺序包括add0操作、add1操作、add2操作和add3操作;所述adc操作按照执行顺序包括adc0操作、adc1操作、adc2操作和adc3操作;

4.根据权利要求3所述的方法,其中,所述montgomery乘法包括:通过l比特处理器实现两个m比特数据的montgomery乘法;其中,m大于l;m根据算法所选用有限域数据的大小变化。

5.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~4任一项所述实现大数加法的方法。

6.一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行权利要求1~4任一项所述的实现大数加法的方法的步...

【专利技术属性】
技术研发人员:闫超刘明王沛然
申请(专利权)人:声龙新加坡私人有限公司
类型:发明
国别省市:

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

1