CN109284085A - 一种基于fpga的高速模乘和模幂运算方法及模型 - Google Patents

一种基于fpga的高速模乘和模幂运算方法及模型 Download PDF

Info

Publication number
CN109284085A
CN109284085A CN201811114279.0A CN201811114279A CN109284085A CN 109284085 A CN109284085 A CN 109284085A CN 201811114279 A CN201811114279 A CN 201811114279A CN 109284085 A CN109284085 A CN 109284085A
Authority
CN
China
Prior art keywords
modular multiplication
fpga
high speed
value
mod
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
CN201811114279.0A
Other languages
English (en)
Other versions
CN109284085B (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.)
State Grid Corp of China SGCC
Electric Power Research Institute of State Grid Hunan Electric Power Co Ltd
State Grid Hunan Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
Electric Power Research Institute of State Grid Hunan Electric Power Co Ltd
State Grid Hunan Electric Power 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 State Grid Corp of China SGCC, Electric Power Research Institute of State Grid Hunan Electric Power Co Ltd, State Grid Hunan Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201811114279.0A priority Critical patent/CN109284085B/zh
Publication of CN109284085A publication Critical patent/CN109284085A/zh
Application granted granted Critical
Publication of CN109284085B publication Critical patent/CN109284085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/723Modular exponentiation
    • 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

Abstract

本发明公开了一种基于FPGA的高速模乘和模幂运算方法及模型,高速模乘运算方法在经典蒙哥马利算法的基础上,结合FPGA并行运算特点,对其进行了如下改进:在乘数B输入时将其左移一位,得到B′,则B′[0]=0,通过增加一次循环消除移位的影响;B′[0]=0意味着Q[i]只与Pi[0]有关,从而减小了Q[i]的运算量;定义四位数据选择器,根据(A[i],Q[i])取值情况进行一次四选一的选择操作,取代在求解P的过程中两次乘法和一次加法,从而提高运算效率。在模幂运算中,通过控制乘数的输入时序以及脉动阵列中的PE的复位时序,在一次模乘运算未完成的情况下,可提前进行下一次模乘运算,从而减少时间消耗。

Description

一种基于FPGA的高速模乘和模幂运算方法及模型
技术领域
本发明涉及数据安全领域硬件加密中的高速模乘和模幂运算方法及模型。
背景技术
随着物联网技术的推广与普及,数据安全问题受到空前重视。在诸如充电桩等关键基础设施终端和家用智能终端部署硬件加密模块,是敏感数据保护和网络安全防护的重要手段。对于具有便携性和实时性需求的物联网智能终端,要求能够硬件实现高速的加解密运算。模幂指形如R=Xe mod M的计算,是RSA、ELGamal等公钥密码算法中的关键运算。目前在大多数应用中,基于安全性的考虑,要求参与运算的操作数大于或等于1024位,其中涉及到的大量大数乘除法运算严重影响了这些密码算法的计算效率。
因此,需要一种能够实现快速模幂运算的方法及模型。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提出了一种基于FPGA的高速模乘和模幂运算方法及模型,以实现高速模乘和模幂运算。
本发明的技术方案是:
一种基于FPGA的高速模乘运算方法,通过以下步骤实现P=A×B×2-n mod M的求解:
步骤1.1数据预处理;
首先,输入乘数A,乘数B和模数M,将A、B和M分别用以2为底的幂之和来表示,如式(1)所示:
其中,A[i]、B[i]和M[i]为将A,B和M用二进制数表示时,其第i位的值;A[i],B[i],M[i]∈{0,1};M是奇数,即M[0]=1;n为模乘运算的位数;
然后,在被乘数A中增加一项A[n],令A[n]=0;
将B左移一位,得到B′,则有B′[0]=0,B′[i+1]=B[i],i=0,1,...,n-1,其中B′[i+1]为二进制数B′第i+1位的值;再在B′中增加一项B′[n+1],令B′[n+1]=0;
在模数M中增加两项M[n],M[n+1],令M[n]=M[n+1]=0;
说明:A中A[n]项、B′中B′[n+1]项、M中M[n]和M[n+1]项的增加、以及A[n]=0、B′[n+1]=0、M[n]=M[n+1]=0是为了保证运算过程中P的中间结果完整性,从而保证最后模乘运算结果的正确性;且当该高速模乘运算方法用于模幂运算中的多次模乘运算时,能保证本次模乘运算的结果可以直接作为下次模乘运算的输入。
步骤1.2初始化,定义加法器S=B′+M;将S用以2为底的幂之和来表示:
其中S[j]为将S用二进制数表示时,其第j位的值;令P0[0]=0;
步骤1.3令i=0到n对循环1进行n+1次循环,得到序列{Pn[0],Pn[1],…,Pn[n]};
循环1计算Q[i]=Pi[0]mod 2,令j=0到n+1对循环2进行n+2次循环;
循环2针对(A[i],Q[i])的值进行四选一操作:如果(A[i],Q[i])为(1,1),则数据选择器mux[j]取值S[j];如果(A[i],Q[i])为(1,0),则mux[j]取值B′[j];如果(A[i],Q[i])为(0,1),则mux[j]取值M[j];如果(A[i],Q[i])为(0,0),则mux[j]取值0;随后通过脉动阵列计算Pi+1[j-1]+Ci[j]=Pi[j]+mux[j]+Ci[j-1],其中Ci[j]表示脉动阵列第i行第j列的PE(基本处理单元)中加法器的进位【通过脉动阵列计算Pi+1[j-1]+Ci[j]=Pi[j]+mux[j]+Ci[j-1]属于现有技术,通过脉动阵列计算得到序列{Pn[0],Pn[1],…,Pn[n]}】;
步骤1.4返回计算值
进一步地,为实现1024位模乘运算,即n取1024,在FPGA上构建相应的由1026个PE组成脉动阵列。每个PE由一个4位选择器和一个一位全加器构成,分别对应循环2中的四选一运算和求和运算。
进一步地,考虑到B′与M的最低有效位分别恒为0和1,不计算最低位,本发明将32个32位的加法器级联,即将输出的最高位作为进位输入到下一个加法器,实现一个1024位的加法器,用以计算P值。
经典蒙哥马利算法采用模加和右移的方法,避免了通常求模算法中费时的除法操作,可有效提高硬件大数模乘运算效率。蒙哥马利模乘运算实现A×B mod M的求解,参考文献[1]详细描述了其过程,简述如下:在第零个时钟周期,{B[0],B[1],…,B[n-1]}、{M[0],M[1],…,M[n-1]}输入到相应PE中,{A[0],A[1],…,A[n-1]}每隔一个时钟周期从PE0输入到运算单元中,第一位运算结果P0从PE1输出,随后每个时钟周期P1,P2,…,Pn依次从相应的PE输出,最终得到模乘运算结果序列{P0,P1,…,Pn},其中Pi(i=1,2,…,n)表示二进制数P的第i位,即再结合关系式P=A×B×2-n mod M,即可实现A×B mod M的求解。该算法通过引入Q[i]=((P[0]+A[i]B[0])×(r-M[0])-1)mod r,保证P是整除的结果。在Pi(i=1,2,…,n)的计算过程中,关键运算步骤是A[i]×B+Q[i]×M的求解,在该求解过程中需要进行两次乘法和一次加法,运算效率还可进一步提高。本发明提供的上述方法在经典蒙哥马利算法的基础上,结合FPGA并行运算特点,对其进行了如下改进:
1)在乘数B输入时将其左移一位,得到B′,则B′[0]=0,通过增加一次循环消除移位的影响。B′[0]=0意味着Q[i]只与Pi[0]有关,从而减小了Q[i]的运算量;
2)定义加法器提前计算B′+M的值,故只需判断A[i]与Q[i]的值即可算出A[i]×B′+Q[i]×M的结果。定义四位数据选择器,根据(A[i],Q[i])取值情况进行一次四选一的选择操作,取代在求解P的过程中两次乘法和一次加法,从而提高运算效率。
本发明还提供了一种基于FPGA的高速模幂运算方法。模幂运算由多次模乘运算构成,利用上述基于FPGA的高速模乘运算方法求解XE mod M,其中X<M,这是RSA算法中的一个条件,满足这一条件则不需要多做一次减法以保证模幂输出值小于M。包括以下步骤:
步骤2.1数据预处理:输入底X,幂E和模数M,将幂E用以2为底的幂之和来表示,如式(2)所示:
其中,ei为将E用二进制数表示时,其第i位的值;ei∈{0,1};
步骤2.2预运算:先计算Nr=22n mod M;再利用上述基于FPGA的高速模乘运算方法计算Y0=X×Nr×2-n mod M和Z0=1×Nr×2-n mod M;
步骤2.3后运算:令i=0到n-1对循环3进行n次循环;
循环3利用上述基于FPGA的高速模乘运算方法计算Yi+1=Yi×Yi×2-n mod M;如果ei为1,计算Zi+1=Zi×Yi×2-n mod M;否则Zi+1=2k×Zi×2-n mod M=Zi(n=k);
步骤2.4计算并返回Zn=1×Zn×2-n-1mod M,Zn即要求的XE mod M的值。
利用上述基于FPGA的高速模乘运算方法计算进行上述步骤中的模乘运算时,将模乘运算中的被乘数和乘数作为上述基于FPGA的高速模乘运算方法的输入A和B,最终模乘运算方法得到的结果即为该模乘运算的结果;以模乘运算Y0=X×Nr×2-n mod M为例,即将被乘数X作为A,乘数Nr作为B,输入算法,则输出的P即为Y0
进一步地,在利用上述基于FPGA的高速模乘运算方法进行模乘运算时通过控制B′的输入时序以及脉动阵列中的PE的复位时序,在一次模乘运算未完成的情况下,可提前进行下一次模乘运算,从而减少时间消耗。对于连续的两次模乘运算,本发明的优化设计方案可减少大约1/6的时间,并且这个比例随着连续模乘运算次数的增加而增加,这对于需要大量模乘的模幂运算是非常有利的。输出部分使用两级流水线的选择器实现。具体地,步骤1.2中B′与M的加法可在循环2中A参与运算几个周期(可取3到6个周期)之前开始进行;实现PE复位的时候以32个PE为一组,当前3组(一次完整的模乘运算需要三个时序单位)PE完成模乘结果输出后,对它们复位,并允许下一次模乘的数据输入。由于仍然处于运算中的PE的输出会反馈到前面已经完成复位的PE里,并向前传递,所以需要对PE进行逐组多次地复位,以保证新的数据进入时PE内寄存器处于正确的初始状态。
本发明还提供了一种基于FPGA的高速模幂运算模型,包括两个FIFO(先入先出队列)存储器、模乘运算模块和控制模块;
两个FIFO存储器,分别记为FIFO A和FIFO B,用于接收和存储模乘运算中的输入数据(被乘数A与乘数B)以及模乘运算模块的结果;考虑到模乘运算中A与B的输入速度不同,使用两个FIFO分别存储,同时这两个FIFO还承担着接收模乘结果的任务,可使算法结构尽可能紧凑以减少资源消耗并提高运行速度
所述模乘运算模块用于采用上述基于FPGA的高速模乘运算方进行模乘运算;
所述控制模块由一个7状态的状态机实现,负责在不同阶段决定输入两个FIFO的数据来自模乘运算模块或其他输入;所述7个状态分别为Idle(空态),Pre_PrepInputs(预运算输入态),Pre_CalX_PrepOne(预运算计算态),Body_CalZ_PrepY(Z运算态),Body_CalY_PrepZ(Y运算态),Post_PrepOneZn(后运算态),Post_Preoutput(后运算输出态);所述预运算输入态和预运算计算态用于完成数据到模乘运算模块的输入和预运算,所述Z运算态和Y运算态用于调用模乘运算模块实现Z值和Y值的计算,Z运算态和Y运算态也是模幂运算的主体,后运算态和后运算输出态负责后运算以及预输出,最终结果的输出在空态下完成。Y运算态是一种较为特殊的状态,此时FIFO中的数据根据ei的取值存在两种情况,即若ei=1,则FIFO A=Zi,FIFO B=Yi,在下一状态(Z运算态)中要进行的运算是Zi+1=Zi×Yi×2-n mod M;若ei=0,则FIFO A=2k,FIFO B=Zi,在下一状态中要进行的运算是Zi+1=2k×Zi×2-n mod M=Zi。因此,不论ei取何值都会进行同量的计算,这一特点对于密码算法而言,能够有效抵御时间分析攻击以及能量分析攻击。
参考文献:
[1]CD.W.Systolic Modular Multiplication[J].IEEE Transactions onComputers,1993,537(1):376-378.
有益效果:
与现有研究相比,本发明更注重模块间的协同运算,算法运行效率的提高以及在密码算法中应用的安全性。本发明通过在FPGA上设计一种高速模乘和模幂运算方法及模型,可以实现大于或等于1024位的操作数的高速模乘运算,所述模幂运算模型结构紧凑,在提高模幂运算计算速度的同时,能减少资源消耗,同时增强模幂算法抵御时间分析攻击与能量分析攻击的能力。
附图说明
图1是本发明实施例的高速模乘运算模型框架示意图;
图2是本发明实施例的高速模乘运算流程图;
图3是本发明实施例的高速模幂运算模型结构示意图;
图4是本发明实施例的高速模幂运算流程图;
图5是本发明实施例的仿真结果,图5(a)为加密运算结果示意图;图5(b)为解密运算结果示意图。
具体实施方式
以下结合附图和具体实施例对本发明进行进一步具体说明。
图1是本发明实施例的高速模乘运算模型框架示意图,其脉动阵列由1026个PE组成。每个PE由一个4位选择器和一个一位全加器构成,将32个32位的加法器相级联,实现一个1024位的加法器。输出部分使用两级流水线的数据选择器实现。
图2是本发明实施例的高速模乘运算流程图,通过将乘数B左移一位,得到B′,则有B′[0]=0,并通过增加一次循环消除移位的影响。B′[0]=0意味着Q[i]只与Pi[0]有关,减小了Q[i]的运算量。另外,通过提前计算B′+M的值,这样只需要判断A[i]与Q[i]的值即可以算出A[i]×B′+Q[i]×M的结果。因此在求P的过程中减少了两次乘法和一次加法,取而代之的是一次关于(A[i],Q[i])的四选一操作,从而提高运算速度。
图3是本发明实施例的高速模幂运算模型结构示意图,本发明使用两个FIFO分别存储模乘运算中的被乘数A与乘数B,同时这两个FIFO还承担着接收模乘结果的任务。这种结构有利于连续进行的模乘运算,即模块每次模乘运算的输出在相隔一次模乘运算之后必须成为模块的输入。利用模乘运算优化结构,提前进行下一次模乘运算能够大幅提高运算效率。模乘运算的输入M在整个计算过程中不变,只需在输入阶段输入并存储在寄存器中即可。
图4是图3中控制模块中状态机控制的模幂运算流程图。图中每个状态里分有3个区域,对应图3结构中的3个部分。其中左上角对应FIFO B,左下角对应FIFO A,而右边区域则对应图3中的模乘运算模块。区域里的字母表示在此状态下这些数据开始出现在这一模块中,但并不代表这些数据的位置在这个状态下一直不变。模乘模块中的字母表明该数据正在计算,而该次运算的输入来源于上一状态中FIFO的数据。
算法测试与仿真:
高速模幂运算方法在XILINX公司的ISE开发平台上使用VHDL编程实现,器件选用Spartan3E系列的FPGA芯片xc3s1200e-4,使用ISE自带的综合器进行综合。时钟频率可达170MHz,完成一次1024位的模幂运算需要(3×1024+2)×2051-(1024-96)×2050=4402374个时钟周期,由于提前进行模乘运算已节省下来的时间为(1024-96)×2050=1902400,约节省了1/3的时间。
为了验证本发明方法的正确性,本实施例将算法应用于1024位的RSA加解密运算中,使用PC端RSA算法工具RSATool生成计算所需的M以及私钥d,公钥e取16进制的10001,为了便于观看解密结果,取待加密数据X1低4位为16进制的1234,其余位为0。加密时完成运算X2=X1e mod M,结果如图5(a)所示。
图5(a)中,当out_valid为1后,每次p_out为高电平时输出一个32位的模幂结果,从低位到高位一共32次输出。input信号为高电平时代表正在输入图1中的A[i],从图5(a)中可以看出,当一次模乘尚未完成时,即p_out未完成32次输出时,新的A[i]已经可以进入。
解密时完成运算X1=X2d mod M,结果如图5(b)所示。
图5(b)中光标(竖直长线)对应的是out_valid为1后的第一个p_out,也是模幂结果的低32位,其值如图中方框所示,模幂结果其他位为0,这与原待加密数据一致,解密成功。
除此之外,还测试了另外几组数据,都能正确地完成加解密,由此验证了算法的正确性。

Claims (6)

1.一种基于FPGA的高速模乘运算方法,其特征在于,通过以下步骤实现P=A×B×2- nmod M的求解:
步骤1.1数据预处理;
首先,输入乘数A,乘数B和模数M,将A、B和M分别用以2为底的幂之和来表示,如式(1)所示:
其中,A[i]、B[i]和M[i]为将A,B和M用二进制数表示时,其第i位的值;A[i],B[i],M[i]∈{0,1};M是奇数,即M[0]=1;n为模乘运算的位数;
然后,在被乘数A中增加一项A[n],令A[n]=0;
将B左移一位,得到B′,则有B′[0]=0,B′[i+1]=B[i],i=0,1,...,n-1,其中B′[i+1]为二进制数B′第i+1位的值;再在B′中增加一项B′[n+1],令B′[n+1]=0;
在模数M中增加两项M[n],M[n+1],令M[n]=M[n+1]=0;
步骤1.2初始化,定义加法器S=B′+M;将S用以2为底的幂之和来表示,令P0[0]=0;
步骤1.3令i=0到n对循环1进行n+1次循环,得到序列{Pn[0],Pn[1],…,Pn[n]};
循环1计算Q[i]=Pi[0]mod 2,令j=0到n+1对循环2进行n+2次循环;
循环2针对(A[i],Q[i])的值进行四选一操作:如果(A[i],Q[i])为(1,1),则数据选择器mux[j]取值S[j];如果(A[i],Q[i])为(1,0),则mux[j]取值B′[j];如果(A[i],Q[i])为(0,1),则mux[j]取值M[j];如果(A[i],Q[i])为(0,0),则mux[j]取值0;随后通过脉动阵列计算Pi+1[j-1]+Ci[j]=Pi[j]+mux[j]+Ci[j-1],其中Ci[j]表示脉动阵列第i行第j列的PE中加法器的进位;
步骤1.4返回计算值
2.根据权利要求1所述的基于FPGA的高速模乘运算方法,其特征在于,为实现1024位模乘运算,即当n取1024时,在FPGA上构建相应的由1026个PE组成脉动阵列;每个PE由一个4位选择器和一个一位全加器构成,分别对应循环2中的四选一运算和求和运算。
3.根据权利要求1所述的基于FPGA的高速模乘运算方法,其特征在于,将32个32位的加法器级联,即将输出的最高位作为进位输入到下一个加法器,实现一个1024位的加法器,用以计算P值。
4.一种基于FPGA的高速模幂运算方法,其特征在于,通过以下步骤实现XEmod M,X<M的求解:
步骤2.1数据预处理:输入底X,幂E和模数M,将E用以2为底的幂之和来表示,如式(2)所示:
其中,ei为将E用二进制数表示时,其第i位的值;ei∈{0,1};
步骤2.2预运算:先计算Nr=22nmod M;再利用权利要求1~3中任一项所述的基于FPGA的高速模乘运算方法计算Y0=X×Nr×2-nmod M和Z0=1×Nr×2-nmod M;
步骤2.3后运算:令i=0到n-1对循环3进行n次循环;
循环3利用权利要求1~3中任一项所述的基于FPGA的高速模乘运算方法计算Yi+1=Yi×Yi×2-nmod M;如果ei为1,计算Zi+1=Zi×Yi×2-nmod M;否则Zi+1=Zi
步骤2.4计算并返回Zn=1×Zn×2-n-1mod M,Zn即要求的XEmod M的值。
5.根据权利要求2所述的基于FPGA的高速模乘运算方法,其特征在于,在利用基于FPGA的高速模乘运算方法进行模乘运算时,步骤1.2中B′与M的加法在循环2中A参与运算h个周期之前开始进行,h取3到6之间的整数;实现PE复位的时候以32个PE为一组,当前3组PE完成模乘结果输出后,对它们复位,并允许下一次模乘的数据输入。
6.一种基于FPGA的高速模幂运算模型,其特征在于,包括两个FIFO存储器、模乘运算模块和控制模块;
两个FIFO存储器,分别记为FIFO A和FIFO B,用于接收和存储模乘运算中的输入数据以及模乘运算模块的结果;
所述模乘运算模块用于采用上述基于FPGA的高速模乘运算方进行模乘运算;
所述控制模块由一个7状态的状态机实现,负责在不同阶段决定输入两个FIFO的数据来自模乘运算模块或其他输入;所述7个状态分别为空态、预运算输入态、预运算计算态、Z运算态、Y运算态、后运算态和后运算输出态;所述预运算输入态和预运算计算态用于完成数据到模乘运算模块的输入和预运算,所述Z运算态和Y运算态用于调用模乘运算模块实现Z值和Y值的计算,后运算态和后运算输出态负责后运算以及预输出,空态用于输出最终结果;
所述模型用于实现权利要求5所述的基于FPGA的高速模幂运算方法。
CN201811114279.0A 2018-09-25 2018-09-25 一种基于fpga的高速模乘和模幂运算方法及装置 Active CN109284085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811114279.0A CN109284085B (zh) 2018-09-25 2018-09-25 一种基于fpga的高速模乘和模幂运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811114279.0A CN109284085B (zh) 2018-09-25 2018-09-25 一种基于fpga的高速模乘和模幂运算方法及装置

Publications (2)

Publication Number Publication Date
CN109284085A true CN109284085A (zh) 2019-01-29
CN109284085B CN109284085B (zh) 2023-03-31

Family

ID=65181818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811114279.0A Active CN109284085B (zh) 2018-09-25 2018-09-25 一种基于fpga的高速模乘和模幂运算方法及装置

Country Status (1)

Country Link
CN (1) CN109284085B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832050A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的基于FPGA芯片实现的Paillier加密方案
CN114757034A (zh) * 2022-04-20 2022-07-15 麦田云网(杭州)信息技术有限公司 一种基于FPGA的poseidon哈希算法的优化系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065696A1 (en) * 2001-09-28 2003-04-03 Ruehle Michael D. Method and apparatus for performing modular exponentiation
CN1561479A (zh) * 2001-09-28 2005-01-05 英特尔公司 蒙哥马利乘法器处理元件中的部件精简
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器
US20070203961A1 (en) * 2005-09-30 2007-08-30 Mathew Sanu K Multiplicand shifting in a linear systolic array modular multiplier
CN101986261A (zh) * 2010-11-27 2011-03-16 无锡高枕科技有限公司 基为16的高速Montgomery模乘法器VLSI
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103164187A (zh) * 2011-12-09 2013-06-19 深圳市证通电子股份有限公司 Rsa模幂电路及rsa安全加密芯片
CN103780381A (zh) * 2012-12-17 2014-05-07 深圳市证通电子股份有限公司 基于高基脉动阵列的蒙哥马利算法的实现装置及方法
CN105068784A (zh) * 2015-07-16 2015-11-18 清华大学 基于蒙哥马利模乘的Tate对算法及其硬件结构

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065696A1 (en) * 2001-09-28 2003-04-03 Ruehle Michael D. Method and apparatus for performing modular exponentiation
CN1561479A (zh) * 2001-09-28 2005-01-05 英特尔公司 蒙哥马利乘法器处理元件中的部件精简
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
US20070203961A1 (en) * 2005-09-30 2007-08-30 Mathew Sanu K Multiplicand shifting in a linear systolic array modular multiplier
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器
CN101986261A (zh) * 2010-11-27 2011-03-16 无锡高枕科技有限公司 基为16的高速Montgomery模乘法器VLSI
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103164187A (zh) * 2011-12-09 2013-06-19 深圳市证通电子股份有限公司 Rsa模幂电路及rsa安全加密芯片
CN103780381A (zh) * 2012-12-17 2014-05-07 深圳市证通电子股份有限公司 基于高基脉动阵列的蒙哥马利算法的实现装置及方法
CN105068784A (zh) * 2015-07-16 2015-11-18 清华大学 基于蒙哥马利模乘的Tate对算法及其硬件结构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832050A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的基于FPGA芯片实现的Paillier加密方案
CN114757034A (zh) * 2022-04-20 2022-07-15 麦田云网(杭州)信息技术有限公司 一种基于FPGA的poseidon哈希算法的优化系统

Also Published As

Publication number Publication date
CN109284085B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
CN100470464C (zh) 基于改进的蒙哥马利算法的模乘器
Kuang et al. Energy-efficient high-throughput Montgomery modular multipliers for RSA cryptosystems
Kuang et al. Low-cost high-performance VLSI architecture for Montgomery modular multiplication
CN104375802B (zh) 一种乘除法器及运算方法
US20030140077A1 (en) Logic circuits for performing modular multiplication and exponentiation
Bo et al. An RSA encryption hardware algorithm using a single DSP block and a single block RAM on the FPGA
Hong et al. Cellular-array modular multiplier for fast RSA public-key cryptosystem based on modified Booth's algorithm
CN101834723A (zh) 一种rsa算法及其ip核
CN101847137B (zh) 一种实现基2fft计算的fft处理器
CN102184161A (zh) 基于余数系统的矩阵求逆装置及方法
CN109284085A (zh) 一种基于fpga的高速模乘和模幂运算方法及模型
Ker et al. Hardware implementation of CMAC neural network with reduced storage requirement
Ibrahim et al. Systolic array architectures for Sunar–Koç optimal normal basis type II multiplier
CN101295237A (zh) 求商和余数的高速除法器
Zeghid et al. Speed/area-efficient ECC processor implementation over GF (2 m) on FPGA via novel algorithm-architecture co-design
Li et al. Research in fast modular exponentiation algorithm based on FPGA
CN106385311B (zh) 一种基于fpga的复混沌简化系统的混沌信号发生器
CN100435091C (zh) 大数模幂系统的硬件高基实现方法
CN103761213A (zh) 基于循环流水计算的片上阵列系统
CN116561819A (zh) 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器
Angizi et al. Processing-in-memory acceleration of mac-based applications using residue number system: A comparative study
CN104951279A (zh) 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN1696894B (zh) 大数模乘计算乘法器
Zimmermann et al. High-performance integer factoring with reconfigurable devices
CN204143432U (zh) 一种乘除法器

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