CN114706557A - 一种asic芯片及蒙哥马利模乘的实现方法和装置 - Google Patents

一种asic芯片及蒙哥马利模乘的实现方法和装置 Download PDF

Info

Publication number
CN114706557A
CN114706557A CN202210337620.9A CN202210337620A CN114706557A CN 114706557 A CN114706557 A CN 114706557A CN 202210337620 A CN202210337620 A CN 202210337620A CN 114706557 A CN114706557 A CN 114706557A
Authority
CN
China
Prior art keywords
input variable
modulus
modular multiplication
montgomery modular
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210337620.9A
Other languages
English (en)
Other versions
CN114706557B (zh
Inventor
刘文心
李艺
王雪强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202210337620.9A priority Critical patent/CN114706557B/zh
Publication of CN114706557A publication Critical patent/CN114706557A/zh
Application granted granted Critical
Publication of CN114706557B publication Critical patent/CN114706557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了一种ASIC芯片及蒙哥马利模乘的实现方法和装置,包括:变量接收模块11,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,均使用n位二进制数表示,模数P为奇数;变量计算模块12,用于基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块;迭代计算模块13,用于基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照蒙哥马利模乘的预设迭代算法,进行t+1次迭代;静态随机存取存储器14,用于存储第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S。采用本方案,减少了存储输入输出所占用的硬件电路的面积,减少了迭代次数,提高了计算效率。

Description

一种ASIC芯片及蒙哥马利模乘的实现方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种ASIC(Application SpecificIntegrated Circuit,专用集成电路)芯片及蒙哥马利模乘的实现方法和装置。
背景技术
蒙哥马利算法是一种计算大整数模乘和模幂的优化算法,该算法规避了大开销除法和取模操作,使得大整数模乘和模幂仅用加法、乘法和移位操作实现,大幅提高了计算效率。而大整数模乘和模幂在RSA、Paillier等密码算法中的频繁应用奠定了蒙哥马利算法的重要地位。
蒙哥马利算法的核心算法是蒙哥马利模乘算法:
mont_mul(X,Y)=X·Y·R-1(modP)
计算大整数模幂的算法可以通过多次蒙哥马利模乘解决,因此近年来在硬件上实现和优化蒙哥马利模乘在计算机技术中占据重要地位,并且,蒙哥马利模乘算法也广泛应用于多方安全计算技术领域中。
目前,在已知的一种蒙哥马利模乘算法(算法1)中,将输入变量表示为在基底r下的分块,例如,将使用一定位数n(例如2048)的二进制数表示的输入变量,拆分为若干个t(例如16个)预设位数k(例如128位)的数据分块,并设计相应预设位数(128位)的加法/乘法器单元。使用设计的加法/乘法器单元,通过执行t次蒙哥马利模乘的迭代算法,得到最后一次迭代结果,并将该迭代结果与模数P进行比较,如果大于等于模数P,则计算该迭代结果减去模数P,结果作为蒙哥马利模乘的结果。
在上述算法1中,最后需要执行比较和减法操作,在硬件视线中占据较大面积,而且效率较低,因此,现有技术中对算法1进行了优化,提出算法2。
在算法2中,输入变量均小于2倍的模数P,使用t+2个数据分块表示输入变量和模数,且输入变量的最后一个数据分块,以及模数的最后两个数据分块均为0,通过执行t+2次蒙哥马利模乘的迭代算法,得到最后一次迭代结果,作为蒙哥马利模乘的结果。
采用算法2可以避免比较和减法操作,且理论上可以证明,若模数P选取n位,输入变量小于2倍的模数P时,蒙哥马利模乘的输出小于2倍的模数P。即算法2的输入和输出的位数可以固定为n+1位。
然而在硬件设计上,一般无法直接增加1位,例如n=2048位时,硬件使用16块128位来表示n位大整数,而n+1位的大整数则实际需要17块128位来表示,这增大了存储输入输出所占用的硬件电路面积和计算开销。
发明内容
本申请实施例提供一种ASIC芯片及蒙哥马利模乘的实现方法和装置,用以解决现有技术中存在的进行蒙哥马利模乘的计算效率较低,以及使用硬件电路实现蒙哥马利模乘时硬件电路占用面积较大问题。
本申请实施例提供一种专用集成电路ASIC芯片,包括:
变量接收模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
变量计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
迭代计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S;
静态随机存取存储器,用于存储所述第一输入变量X、所述第二输入变量Y和所述蒙哥马利模乘的结果S。
进一步的,所述迭代计算模块,具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure BDA0003577205040000031
Figure BDA0003577205040000032
Si+1=Si+1/r;
S=St+1
Figure BDA0003577205040000033
Figure BDA0003577205040000034
Figure BDA0003577205040000035
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
本申请实施例还提供一种蒙哥马利模乘的实现方法,应用于专用集成电路ASIC芯片,包括:
获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n -k
基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
进一步的,所述基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照S=X·Y·2-(n+k)modP的计算公式,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S,包括:
采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure BDA0003577205040000041
Figure BDA0003577205040000042
Si+1=Si+1/r;
S=St+1
Figure BDA0003577205040000043
Figure BDA0003577205040000044
Figure BDA0003577205040000045
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
本申请实施例还提供一种蒙哥马利模乘的实现装置,包括:
数据获取模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
数据分块计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
模乘结果计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
进一步的,所述模乘结果计算模块,具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure BDA0003577205040000051
Figure BDA0003577205040000052
Si+1=Si+1/r;
S=St+1
Figure BDA0003577205040000053
Figure BDA0003577205040000054
Figure BDA0003577205040000055
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种专用集成电路,用于实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种专用集成电路ASIC芯片,包括:上述专用集成电路。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一蒙哥马利模乘的实现方法。
本申请有益效果包括:
本申请实施例提供的方案中,针对使用n位二进制数表示的第一输入变量X和第二输入变量Y,以及模数P,在进行蒙哥马利模乘计算的过程中,首先基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,且n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0,且2n-1<P<2n-2n-k,然后,基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。采用该方案,不需要执行比较和减法操作,并且,第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S,均使用n位的二进制数表示,相比现有技术中需要使用n+1位表示的算法,减少了存储输入输出所占用的硬件电路的面积,并且,只需要进行t+1次迭代,相比现有技术中需要使用t+2次迭代的算法,减少了迭代次数,提高了计算效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的ASIC芯片的结构示意图;
图2为本申请实施例提供的蒙哥马利模乘的实现方法的流程图;
图3为本申请另一实施例提供的蒙哥马利模乘的实现方法的流程图;
图4为本申请实施例提供的蒙哥马利模乘的实现装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出提高进行蒙哥马利模乘的计算效率,以及减少使用硬件电路实现蒙哥马利模乘时硬件电路占用的面积的实现方案,本申请实施例提供了一种ASIC芯片及蒙哥马利模乘的实现方法和装置,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种ASIC芯片,如图1所示,包括:
变量接收模块11,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,第一输入变量X、第二输入变量Y、模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,模数P为奇数,且第一输入变量X和第二输入变量Y均小于模数P,且2n-1<P<2n-2n-k
变量计算模块12,用于基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0;
迭代计算模块13,用于基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S;
静态随机存取存储器14,用于存储第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S。
采用本申请实施例提供的上述ASIC芯片,针对使用n位二进制数表示的第一输入变量X和第二输入变量Y,以及模数P,在进行蒙哥马利模乘计算的过程中,首先基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,且n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0,且2n-1<P<2n-2n-k,然后,基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。采用该方案,不需要执行比较和减法操作,并且,第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S,均使用n位的二进制数表示,相比现有技术中需要使用n+1位表示的算法,减少了存储输入输出所占用的硬件电路的面积,并且,只需要进行t+1次迭代,相比现有技术中需要使用t+2次迭代的算法,减少了迭代次数,提高了计算效率。
本申请实施例中,上述ASIC芯片包括的各模块,可以为硬件电路结构。
进一步的,在本申请的一个实施例中,迭代计算模块13,可以具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure BDA0003577205040000081
Figure BDA0003577205040000082
Si+1=Si+1/r;
S=St+1
Figure BDA0003577205040000083
Figure BDA0003577205040000084
Figure BDA0003577205040000085
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
相应的,本申请实施例还提供了一种应用于ASIC芯片的蒙哥马利模乘的实现方法,下面在方法中对本申请中提出的实现蒙哥马利模乘的算法进行详细描述。
本申请实施例提供一种蒙哥马利模乘的实现方法,应用于专用集成电路ASIC芯片,如图2所示,包括:
步骤21、获取第一输入变量X和第二输入变量Y,以及模数P,其中,第一输入变量X、第二输入变量Y、模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,模数P为奇数,且第一输入变量X和第二输入变量Y均小于模数P,且2n-1<P<2n-2n-k
步骤22、基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0;
步骤23、基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
采用本申请实施例提供的上述方法,针对使用n位二进制数表示的第一输入变量X和第二输入变量Y,以及模数P,在进行蒙哥马利模乘计算的过程中,首先基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,且n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0,且2n-1<P<2n-2n -k,然后,基于第一输入变量X、第二输入变量Y和模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。采用该方案,不需要执行比较和减法操作,并且,第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S,均使用n位的二进制数表示,相比现有技术中需要使用n+1位表示的算法,减少了存储输入输出所占用的硬件电路的面积,并且,只需要进行t+1次迭代,相比现有技术中需要使用t+2次迭代的算法,减少了迭代次数,提高了计算效率。
在本申请的一个实施例中,本申请实施例还提供了一种蒙哥马利模乘的实现方法,应用于ASIC芯片,如图3所示,包括:
步骤31、获取第一输入变量X和第二输入变量Y,以及模数P。
其中,第一输入变量X、第二输入变量Y、模数P,均使用n位二进制数表示,模数P为奇数,且第一输入变量X和第二输入变量Y均小于模数P,且2n-1<P<2n-2n-k
步骤32、基于蒙哥马利模乘的基底r的位数k,分别计算第一输入变量X、第二输入变量Y和模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,第一输入变量X、第二输入变量Y和模数P的第t个分块均为0。
本步骤中,将第一输入变量X、第二输入变量Y和模数P,分别拆分成t个分块,即第0至t-1个分块,并分别再生成一个全部是0的第t个分块,这样,针对第一输入变量X、第二输入变量Y和模数P,即分别使用第0至t个分块(共计t+1个分块)进行表示,具体如下:
Figure BDA0003577205040000101
Figure BDA0003577205040000102
Figure BDA0003577205040000103
其中,r=2k,t=n/k,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
在得到第一输入变量X、第二输入变量Y和模数P的第0至t个分块后,即可以按照公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S,具体详见如下步骤:
步骤33、获取i的当前值,首次执行本步骤时i的取值为0,之后每次取值为上一次加1。
步骤34、采用如下公式计算中间结果qi
Figure BDA0003577205040000104
S0=0。
步骤35、按照j分别依次取值为0-t,采用如下公式计算:
Figure BDA0003577205040000111
本步骤中,在按照j分别依次取值为0-t,采用上述公式计算后,即可以得到Si+1,并进入后续步骤36。
步骤36、采用如下公式计算:
Si+1=Si+1/r。
步骤37、确定i的当前值是否为t,如果不是,返回上述步骤33,如果是,执行步骤38。
步骤38、将St+1确定为蒙哥马利模乘的结果S,即S=St+1
采用上述图3所示方法,不需要执行比较和减法操作,并且,第一输入变量X、第二输入变量Y和蒙哥马利模乘的结果S,均使用n位的二进制数表示,相比现有技术中需要使用n+1位表示的算法,减少了存储输入输出所占用的硬件电路的面积。相比现有技术中的算法2,节省了一个块的存储空间。例如,以n=2048-bit,k=128-bit为例,t=16,如果SRAM(Static Random-Access Memory,静态随机存取存储器)的总线位宽为128-bit,则实现SRAM面积节约5.9%(1/(t+1))。
并且,只需要进行t+1次迭代,相比现有技术中的算法2需要使用t+2次迭代的算法,减少了迭代次数,提高了计算效率和系统的吞吐率。例如,以n=2048-bit,k=128-bit为例,t=16,因此相比算法2,将系统性能提升5.6%(1/(t+2))。
针对本申请实施例提供的上述蒙哥马利模乘的实现方法,说明如下:
注意上述蒙哥马利模乘的实现方法中的每一个Si均满足:
rSi+1=Si+X·yi+qi·P (i=0,1,…,t)
因此输出S=St+1满足
Figure BDA0003577205040000112
Figure BDA0003577205040000121
因此,rt+1S=X·Y+P·Q,其中rt+1=2n+k,
Figure BDA0003577205040000122
根据2n-1<P<2n-2n-k,且P为奇数,X,Y<P<2n
Figure BDA0003577205040000123
说明:实际使用的模数,如果按随机选取n位2n-1<P<2n,则满足2n-2n-k≤P<2n的概率为
Figure BDA0003577205040000124
因此实际应用中k=64或128,这都是一个可忽略的概率,并且软件可以提前判断2n-2n-k≤P<2n进行处理。
本申请实施例提供的蒙哥马利模乘的实现方法,以及ASIC芯片,也可以应用于大整数模幂的计算中,即可以通过多次蒙哥马利模乘计算,在此不再举例进行详细描述。
并且,本申请实施例提供的蒙哥马利模乘的实现方法,以及ASIC芯片,也可以应用于多方安全计算技术中。
基于同一发明构思,根据本申请上述实施例提供的蒙哥马利模乘的实现方法,相应地,本申请另一实施例还提供了一种蒙哥马利模乘的实现装置,其结构示意图如图4所示,具体包括:
数据获取模块41,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
数据分块计算模块42,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
模乘结果计算模块43,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)modP,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
进一步的,模乘结果计算模块43,具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure BDA0003577205040000131
Figure BDA0003577205040000132
Si+1=Si+1/r;
S=St+1
Figure BDA0003577205040000133
Figure BDA0003577205040000134
Figure BDA0003577205040000135
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
上述各模块的功能可对应于图2或图3所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的上述蒙哥马利模乘的实现装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要上述蒙哥马利模乘的实现装置具有上述功能,都应该在本申请的保护范围之内。
基于同一发明构思,根据本申请上述实施例提供的蒙哥马利模乘的实现方法,相应地,本申请另一实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括:处理器51和机器可读存储介质52,所述机器可读存储介质52存储有能够被所述处理器51执行的机器可执行指令,所述处理器51被所述机器可执行指令促使:实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一蒙哥马利模乘的实现方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种专用集成电路,用于实现上述任一蒙哥马利模乘的实现方法。
本申请实施例还提供一种ASIC芯片,包括:上述专用集成电路。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种专用集成电路ASIC芯片,其特征在于,包括:
变量接收模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
变量计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
迭代计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)mod P,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S;
静态随机存取存储器,用于存储所述第一输入变量X、所述第二输入变量Y和所述蒙哥马利模乘的结果S。
2.如权利要求1所述的ASIC芯片,其特征在于,所述迭代计算模块,具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure FDA0003577205030000011
S0=0;
Figure FDA0003577205030000012
Si+1=Si+1/r;
S=St+1
Figure FDA0003577205030000013
Figure FDA0003577205030000014
Figure FDA0003577205030000015
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
3.一种蒙哥马利模乘的实现方法,其特征在于,应用于专用集成电路ASIC芯片,包括:
获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)mod P,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
4.如权利要求3所述的方法,其特征在于,所述基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照S=X·Y·2-(n+k)mod P的计算公式,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S,包括:
采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure FDA0003577205030000021
S0=0;
Figure FDA0003577205030000022
Si+1=Si+1/r;
S=St+1
Figure FDA0003577205030000023
Figure FDA0003577205030000024
Figure FDA0003577205030000031
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
5.一种蒙哥马利模乘的实现装置,其特征在于,包括:
数据获取模块,用于获取第一输入变量X和第二输入变量Y,以及模数P,其中,所述第一输入变量X、所述第二输入变量Y、所述模数P以及蒙哥马利模乘的结果,均使用n位二进制数表示,所述模数P为奇数,且所述第一输入变量X和所述第二输入变量Y均小于所述模数P,且2n-1<P<2n-2n-k
数据分块计算模块,用于基于蒙哥马利模乘的基底r的位数k,分别计算所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,其中,基底r为2的k次方,n能够被k整除,n除以k的商值为t,所述第一输入变量X、所述第二输入变量Y和所述模数P的第t个分块均为0;
模乘结果计算模块,用于基于所述第一输入变量X、所述第二输入变量Y和所述模数P的第0至t个分块,按照计算公式S=X·Y·2-(n+k)mod P,以及蒙哥马利模乘的预设迭代算法,进行t+1次迭代,得到蒙哥马利模乘的结果S。
6.如权利要求5所述的装置,其特征在于,所述模乘结果计算模块,具体用于采用如下公式,按照i和j分别依次取值为0-t进行迭代,计算蒙哥马利模乘的结果S:
Figure FDA0003577205030000032
S0=0;
Figure FDA0003577205030000033
Si+1=Si+1/r;
S=St+1
Figure FDA0003577205030000034
Figure FDA0003577205030000035
Figure FDA0003577205030000036
其中,xj为第一输入变量X的第j个分块,yj为第二输入变量Y的第j个分块,pj为模数P的第j个分块,rj表示r的j次方。
7.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求3-4任一所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求3-4任一所述的方法。
9.一种专用集成电路,其特征在于,用于实现权利要求3-4任一所述方法。
10.一种专用集成电路ASIC芯片,其特征在于,包括:如权利要求9所述的专用集成电路。
CN202210337620.9A 2022-04-01 2022-04-01 一种asic芯片及蒙哥马利模乘的实现方法和装置 Active CN114706557B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210337620.9A CN114706557B (zh) 2022-04-01 2022-04-01 一种asic芯片及蒙哥马利模乘的实现方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210337620.9A CN114706557B (zh) 2022-04-01 2022-04-01 一种asic芯片及蒙哥马利模乘的实现方法和装置

Publications (2)

Publication Number Publication Date
CN114706557A true CN114706557A (zh) 2022-07-05
CN114706557B CN114706557B (zh) 2023-03-10

Family

ID=82173259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210337620.9A Active CN114706557B (zh) 2022-04-01 2022-04-01 一种asic芯片及蒙哥马利模乘的实现方法和装置

Country Status (1)

Country Link
CN (1) CN114706557B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2507064Y (zh) * 2001-10-18 2002-08-21 深圳市中兴集成电路设计有限责任公司 一种蒙哥马利模乘器
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN106681690A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
CN106681691A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置
US20180181391A1 (en) * 2016-12-22 2018-06-28 Intel Corporation Montgomery multiplication processors, methods, systems, and instructions
CN113031920A (zh) * 2021-05-20 2021-06-25 华控清交信息科技(北京)有限公司 一种芯片和用于芯片的批量模运算方法
WO2021217034A1 (en) * 2020-04-23 2021-10-28 University Of Southern California Design of high-performance and scalable montgomery modular multiplier circuits

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2507064Y (zh) * 2001-10-18 2002-08-21 深圳市中兴集成电路设计有限责任公司 一种蒙哥马利模乘器
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN106681690A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
CN106681691A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置
US20180181391A1 (en) * 2016-12-22 2018-06-28 Intel Corporation Montgomery multiplication processors, methods, systems, and instructions
WO2021217034A1 (en) * 2020-04-23 2021-10-28 University Of Southern California Design of high-performance and scalable montgomery modular multiplier circuits
CN113031920A (zh) * 2021-05-20 2021-06-25 华控清交信息科技(北京)有限公司 一种芯片和用于芯片的批量模运算方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
曹军等: "一种快速模乘运算器的设计", 《电子器件》 *
蒋晓娜等: "运算精简的蒙哥马利算法模乘器设计", 《计算机仿真》 *
赵宗国等: "高速可伸缩Montgomery模除器设计技术研究", 《微电子学与计算机》 *
车文洁等: "Montgomery模乘法器的实现与优化", 《计算机应用与软件》 *

Also Published As

Publication number Publication date
CN114706557B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN101194457B (zh) 随机模数化多项式约简方法及其硬件
JP5116770B2 (ja) フォールディングを用いるモジュール削減
US8862651B2 (en) Method and apparatus for modulus reduction
EP2856303B1 (en) Vector and scalar based modular exponentiation
CN101371285B (zh) 加密处理装置、加密处理方法
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
US7412474B2 (en) Montgomery modular multiplier using a compressor and multiplication method
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
CN117692126A (zh) 一种基于低复杂度模乘算法的Paillier同态加密方法及系统
CN114706557B (zh) 一种asic芯片及蒙哥马利模乘的实现方法和装置
KR20110095328A (ko) 스칼라 배산기 및 스칼라 배산프로그램
Thomé Fast computation of linear generators for matrix sequences and application to the block Wiedemann algorithm
US8407270B2 (en) Methods of calculating negative inverse of modulus
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
Ma et al. Fast implementation for modular inversion and scalar multiplication in the elliptic curve cryptography
CN114510217A (zh) 处理数据的方法、装置和设备
KR20160017319A (ko) 연산 장치, 그것의 몽고메리 파라미터 계산 방법 및 모듈러 곱셈 방법
JP4223819B2 (ja) べき乗剰余演算装置及びそのプログラム
US20050175174A1 (en) Calculating the modular inverses of a value
CN116070282B (zh) 一种隐私计算中的数据处理方法、装置及电子设备
KR100194769B1 (ko) 메모리를 사용하여 유한체상에서 역원을 구하는 방법
CN117134917B (zh) 一种用于椭圆曲线加密的快速模运算方法和装置
KR100564764B1 (ko) 유한체 다항식 곱셈 장치 및 그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant