CN111190571B - 一种基于二元扩域的模乘电路及其控制方法 - Google Patents
一种基于二元扩域的模乘电路及其控制方法 Download PDFInfo
- Publication number
- CN111190571B CN111190571B CN201911396364.5A CN201911396364A CN111190571B CN 111190571 B CN111190571 B CN 111190571B CN 201911396364 A CN201911396364 A CN 201911396364A CN 111190571 B CN111190571 B CN 111190571B
- Authority
- CN
- China
- Prior art keywords
- input
- exclusive
- intermediate result
- gate combination
- receiving
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular multiplication
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
Description
技术领域
本发明涉及电路与系统技术领域,尤其是一种基于二元扩域的模乘电路及其控制方法。
背景技术
在应用椭圆曲线密码算法等场合,需要进行模乘运算,尤其是F2m域上的模乘运算。由于模乘运算的计算量大,因此一般选择使用硬件电路来实现。现有的模乘电路普遍存在电路设计不合理、算法实施步骤过多过长、需要耗费较多时钟周期来工作等缺点,这些缺点将导致计算任务的时间花费过长、模乘电路的耗电量和发热量过大、应用于移动终端时续航能力变差等缺点。
发明内容
针对上述至少一个技术问题,本发明的目的在于提供一种基于二元扩域的模乘电路及其控制方法。
一方面,本发明实施例包括一种基于二元扩域的模乘电路,包括:
有限状态机;
第一输入单元,用于在所述有限状态机的控制下,接收m+2位的二进制第一乘数A;
第二输入单元,用于在所述有限状态机的控制下,接收m+2位的二进制第二乘数B;
第一组合逻辑单元,具有多个数据选择器和多个异或门,用于在所述有限状态机的控制下,接收所述第一乘数A的低m位{A3,A2,A1,A0}以及所述第二乘数B的低m位{B3,B2,B1,B0},通过各所述数据选择器从所述{A3,A2,A1,A0}和所述{B3,B2,B1,B0}中选择出数值输入到相应的异或门进行运算,从而输出两个位的输出结果;所述A3、A2、A1、A0、B3、B2,B1和B0的位数均为位;
位乘法器,用于在所述有限状态机的控制下,接收所述第一组合逻辑单元的输出结果并执行乘法计算,从而分别计算出第一中间结果S1=A0B0,第二中间结果S2=(A1+A0)(B1+B0),第三中间结果S3=A1B1,第四中间结果S4=(A2+A0)(B2+B0),第五中间结果S5=(A3+A2+A1+A0)(B3+B2+B1+B0),第六中间结果S6=(A3+A1)(B2+B0),第七中间结果S7=A2B2,第八中间结果S8=(A3+A2)(B3+B2),以及第九中间结果S9=A3B3;
寄存器组,其具有多个存储空间,用于在所述有限状态机的控制下,存储并供读取所述第一中间结果、第二中间结果、第三中间结果、第四中间结果、第五中间结果、第六中间结果、第七中间结果、第八中间结果和第九中间结果;
第二组合逻辑单元,具有多个异或门,用于在所述有限状态机的控制下,获取所述寄存器组中所存储的各中间结果并执行多轮异或运算,从而输出乘积结果
约减单元,用于在所述有限状态机的控制下,对所述乘积结果C执行约减运算;
输出单元,用于在所述有限状态机的控制下,输出所述约减单元的输出结果。
另一方面,本发明实施例还包括一种用于所述模乘电路的控制方法,包括以下步骤:
向所述有限状态机发送时钟信号;
在所述时钟信号触发的启动状态下,所述有限状态机控制所述第一输入单元和第二输入单元接收第一乘数A和第二乘数B;
在所述时钟信号触发的第十状态下,所述有限状态机控制所述第二组合逻辑单元从寄存器组中读取出第一中间结果、第二中间结果、第三中间结果、第四中间结果、第五中间结果、第六中间结果、第七中间结果、第八中间结果和第九中间结果,并根据它们获取乘积结果C;
在所述时钟信号触发的第十一状态下,所述有限状态机控制所述约减单元对乘积结果C进行约减运算;
在所述时钟信号触发的第十二状态下,所述有限状态机控制所述输出单元输出所述约减单元的输出结果。
附图说明
图1为实施例中所述模乘电路的结构示意图;
图2为实施例中所述第一组合逻辑单元的结构示意图;
图3为实施例中所述64位乘法器的结构示意图;
图4为实施例中所述64位乘法器与其各下级乘法器之间的关系示意图;
图5为实施例中所述8位乘法器的结构示意图;
图6为实施例中所述4位乘法器的结构示意图;
图7为实施例中所述第二组合逻辑单元的结构示意图;
图8为实施例中所述约减单元的结构示意图;
图9为实施例中对所述约减单元进行仿真的效果图;
图10为实施例中对所述模乘电路进行仿真的效果图。
具体实施方式
本实施例中,将所述模乘电路用于二元扩域F2257内的计算,此时乘数的有效位为257位,所述模乘电路所接收的第一乘数A和第二乘数B均为258位,因此本实施例中m=256。
参照图1,所述模乘电路包括有限状态机、第一输入单元、第二输入单元、第一组合逻辑单元、64位乘法器、寄存器组、第二组合逻辑单元、约减单元和输出单元。
其中,所述有限状态机是整个模乘电路的控制核心,其与第一输入单元、第二输入单元、寄存器组和输出单元等连接,从而控制这些模块的工作。
参照图1,所述有限状态机上设有使能端en,用于接收使能信号,当en=1时有限状态机处于使能状态。所述有限状态机上还设有时钟端clk,用于接收时钟信号,使得有限状态机在时钟信号的触发下进入到不同状态,在不同状态下,有限状态机分别控制模乘电路中的不同模块执行相应的运算,最终完成模乘过程。
本实施例中,所述第一输入单元、第二输入单元和输出单元均为可存储258位数据的寄存器。
通过数据输入输出接口输入的第一乘数A和第二乘数B分别由第一输入单元和第二输入单元进行缓存。在有限状态机的控制下,第一组合逻辑单元从第一输入单元和第二输入单元读出第一乘数A和第二乘数B。
参照图2,所述第一组合逻辑单元由第一异或门组合XORS1、第二异或门组合XORS2、第三异或门组合XORS3、第四异或门组合XORS4、第五异或门组合XORS5、第六异或门组合XORS6、第一数据选择器MUX1、第二数据选择器MUX2和第三数据选择器MUX3组成。
本实施例中,所述第一组合逻辑单元将第一乘数A的低256位看成是由四组64位数据{A3,A2,A1,A0}组成,也就是A3、A2、A1、A0的位数均为64位。同理,所述第一组合逻辑单元将第二乘数B的低256位看成是由四组64位数据{B3,B2,B1,B0}组成,也就是B3、B2、B1、B0的位数均为64位。
本实施例中,第一异或门组合XORS1、第二异或门组合XORS2、第三异或门组合XORS3、第四异或门组合XORS4、第五异或门组合XORS5和第六异或门组合XORS6分别由64个双输入异或门。所谓双输入异或门,是指这样的异或门具有两个输入端和一个输出端,通过这两个输入端接收两个输入值,然后对这两个输入值进行异或运算,从输出端输出异或运算的结果。
每个异或门组合的“一组输入端”,是从这个异或门组合中的每个异或门分别取出一个输入端组成。由于每个异或门组合分别由64个异或门组成,因此每个异或门组合的一组输入端可以接收64位数据。
图2中的“控制信号”来自有限状态机。所述控制信号的具体数值由有限状态机根据所处的状态来决定,它可以控制各数据选择器从其接收到的多组64位数据中选择其中的一组或多组进行输出。按照图2所示的连接方式,所述第一数据选择器从接收到的A2和A1中择一输出,所述第二数据选择器从接收到的B2和B1中择一输出,所述第三数据选择器,从接收到的六组数据中选择两组进行输出,每组分别作为一个64位的高位输出结果和一个64位的低位输出结果。
所述第一组合逻辑单元用于与64位乘法器配合,向64位乘法器提供运算所需的数据。例如,第一组合逻辑单元通过各数据选择器的配合,通过执行异或运算,可以执行加法运算,分别得到A1+A0和B1+B0进行输出。64位乘法器获取到的A1+A0和B1+B0计算结果之后,执行乘法运算,输出的(A1+A0)(B1+B0)计算结果。
本实施例中,基于Karatsuba-Ofman算法的思想去设计乘法器。对于图1所示的64位乘法器,参照图3,其包括:
第二十六异或门组合XORS26,包括32个双输入异或门,其一组输入端用于接收第一64位乘数(图3中的A)中的高32位,另一组输入端用于接收相应的低32位;
第二十七异或门组合XORS27,包括32个双输入异或门,其一组输入端用于接收第二64位乘数(图3中的B)中的高32位,另一组输入端用于接收相应的低32位;
第一32位乘法器MUL1,其一组输入端用于接收第一64位乘数中的高32位,另一组输入端用于接收第二64位乘数中的高32位;
第二32位乘法器MUL2,其一组输入端与所述第二十六异或门组合的输出端连接,另一组输入端与所述第二十七异或门组合的输出端连接;
第三32位乘法器MUL3,其一组输入端用于接收第一64位乘数中的低32位,另一组输入端用于接收第二64位乘数中的低32位;
第二十八异或门组合XORS28,包括64个双输入异或门,其一组输入端与所述第一64位乘法器的输出端连接,另一组输入端与所述第二32位乘法器的输出端连接;
第二十九异或门组合XORS29,包括64个双输入异或门,其一组输入端与所述第二十八异或门组合的输出端连接,另一组输入端与所述第三32位乘法器的输出端连接;
第三十异或门组合XORS30,包括64个双输入异或门,其一组输入端与所述第二十九异或门组合的输出端连接,另一组输入端分别与所述第一32位乘法器和第三32位乘法器的输出端连接。
图3中的C就是64位乘法器所输出的结果。
由上述64位乘法器的结构可知,其调用了3个下一级的乘法器,也就是所述64位乘法器包括第一32位乘法器、第二32位乘法器和第三32位乘法器。对于每个32位乘法器,也分别调用3个下一级的乘法器,也就是每个32位乘法器中都包括3个16位乘法器,并且每个32位乘法器的电路拓扑结构与64位乘法器是相同的。按照相同的思路,如图4所示,每个16位乘法器也分别包括3个8位乘法器,每个8位乘法器也分别包括3个4位乘法器。
每个8位乘法器的拓扑结构与64位乘法器相同,不同的是其所包含的3个下一级乘法器是4位乘法器,以及所使用的异或门组合中的异或门组合不同。参照图5,每个8位乘法器包括:
第二十六异或门组合XORS26,包括4个双输入异或门,其一组输入端用于接收第一8位乘数(图5中的A)中的高4位,另一组输入端用于接收相应的低4位;
第二十七异或门组合XORS27,包括4个双输入异或门,其一组输入端用于接收第二8位乘数(图5中的B)中的高4位,另一组输入端用于接收相应的低4位;
第一4位乘法器MUL1,其一组输入端用于接收第一8位乘数中的高4位,另一组输入端用于接收第二8位乘数中的高4位;
第二4位乘法器MUL2,其一组输入端与所述第二十六异或门组合的输出端连接,另一组输入端与所述第二十七异或门组合的输出端连接;
第三4位乘法器MUL3,其一组输入端用于接收第一8位乘数中的低4位,另一组输入端用于接收第二8位乘数中的低4位;
第二十八异或门组合XORS28,包括8个双输入异或门,其一组输入端与所述第一8位乘法器的输出端连接,另一组输入端与所述第二4位乘法器的输出端连接;
第二十九异或门组合XORS29,包括8个双输入异或门,其一组输入端与所述第二十八异或门组合的输出端连接,另一组输入端与所述第三4位乘法器的输出端连接;
第三十异或门组合XORS30,包括8个双输入异或门,其一组输入端与所述第二十九异或门组合的输出端连接,另一组输入端分别与所述第一4位乘法器和第三4位乘法器的输出端连接。
图5中的C就是8位乘法器所输出的结果。
当使用硬件描述语言实现时,图6所示的4位乘法器具有如表1所示的性能。
表1
当使用硬件描述语言实现时,图3所示的64位乘法器具有如表2所示的性能。
表2
作为图3和图5所示电路的基础,4位乘法器的结构如图6所示。
本实施例中,对有限状态机设置9种状态,每种状态下,有限状态机控制第一组合逻辑单元和64位乘法器配合,分别计算以下结果:
第一中间结果S1=A0B0;
第二中间结果S2=(A1+A0)(B1+B0);
第三中间结果S3=A1B1;
第四中间结果S4=(A2+A0)(B2+B0);
第五中间结果S5=(A3+A2+A1+A0)(B3+B2+B1+B0);
第六中间结果S6=(A3+A1)(B2+B0);
第七中间结果S7=A2B2;
第八中间结果S8=(A3+A2)(B3+B2);
第九中间结果S9=A3B3。
上述第一中间结果S1、第二中间结果S2、第三中间结果S3、第四中间结果S4、第五中间结果S5、第六中间结果S6、第七中间结果S7、第八中间结果S8和第九中间结果S9在计算出来之后被暂存到寄存器组中。
本实施例中,所述第二组合逻辑单元由第七异或门组合、第八异或门组合、第九异或门组合、第十异或门组合、第十一异或门组合、第十二异或门组合、第十三异或门组合、第十四异或门组合、第十五异或门组合、第十六异或门组合、第十七异或门组合、第十八异或门组合、第十九异或门组合、第二十异或门组合、第二十一异或门组合、第二十二异或门组合、第二十三异或门组合、第二十四异或门组合和第二十五异或门组合等组成。它们之间的连接关系如图7所示。
图7中,出于简洁化的考虑,只标记出了第七异或门组合XORS7、第十二异或门组合XORS12、第十三异或门组合XORS13、第十六异或门组合XORS16、第十七异或门组合XORS17、第十八异或门组合XORS18、第十九异或门组合XORS19、第二十异或门组合XORS20和第二十五异或门组合XORS25。可以根据从左至右编号的规则从图3中确定其他异或门所在的位置。例如,图3中第十三异或门组合XORS13右侧的方框就是表示第十四异或门组合。
本实施例中,第七异或门组合、第八异或门组合、第九异或门组合、第十异或门组合、第十一异或门组合、第十二异或门组合、第十三异或门组合、第十四异或门组合、第十五异或门组合、第十六异或门组合、第十七异或门组合、第十八异或门组合和第十九异或门组合,其分别由128个双输入异或门组成;第二十异或门组合、第二十一异或门组合、第二十二异或门组合、第二十三异或门组合、第二十四异或门组合和第二十五异或门组合,其分别由64个双输入异或门组成。
图7所示的第二组合逻辑单元可以在所述有限状态机的控制下,获取所述寄存器组中所存储的各中间结果并执行多轮异或运算,从而输出乘积结果
参照图1,本实施例中,还在所述模乘电路中设置了515位的乘积寄存器,以暂存第二组合逻辑单元输出的乘积结果C。
由上述可知,通过64位乘法器和第二组合逻辑单元的组合,可以实现2级的Karatsuba-Ofman算法。
在所述有限状态机的控制下,由约减单元将乘积结果C从乘积寄存器中读取出来,并对乘积结果C执行约减运算。
所述约减单元的结构如图8所示,其包括第三十一异或门组合XORS31、第三十二异或门组合XORS32、第三十三异或门组合XORS33和第三十四异或门组合XORS34。
第三十一异或门组合包括245个双输入异或门,其一组输入端用于接收乘积结果C的第271-515位,另一组输入端用于接收乘积结果C的第26-270位;
第三十二异或门组合包括245个双输入异或门,其一组输入端用于接收第三十一异或门组合输出结果中的第26-258位,以及接收乘积结果C的第14-25位,另一组输入端用于接收乘积结果C的第271-515位;
第三十三异或门组合包括14个双输入异或门,其一组输入端用于接收第三十二异或门组合输出结果中的第257-270位,另一组输入端用于接收第三十二异或门组合输出结果中的第14-25位,以及接收乘积结果C的第12-13位;
第三十四异或门组合包括14个双输入异或门,其一组输入端用于接收第三十二异或门组合输出结果中的第257-270位,另一组输入端用于接收第三十三异或门组合输出结果中的第12-13位,以及接收乘积结果C的第0-11位。
图8中,各个异或门组合的输出结果组合成R的第0-256位。使用一位1’b0来补足R的第257位,从而使得最终输出的R有258位。
通过使用图8的约减单元,可以实现以下快速约减算法:
输入:516位的C[515:0];
输出:258位的R[257:0],其中R=Cmodf(x);
第一步:约减C[515:271],即:
第二步:约减C[270:257],即:
第三步:C[25:12]←0;
第四步:R=C[257:0],输出结果。
参照图1,约减单元输出的结果R暂存到输出单元中。在有限状态机的控制下,输出单元通过数据输入输出接口对外输出R,作为对最初输入的第一乘数A和第二乘数B的模乘结果。
参照图1,所述模乘电路还设有复位信号端rst_n,其与第一输入单元、第二输入单元、寄存器组和输出单元连接。当复位信号端rst_n接收到复位信号时,将触发第一输入单元、第二输入单元、寄存器组和输出单元中的至少一个进行复位,从而清除被复位的模块中所存储的数据。所述模乘电路还设有DONE信号寄存器,其与有限状态机连接,在输出单元获取到所述约减单元的输出结果R之后,所述DONE信号寄存器被置为高电平,从而触发所述有限状态机进入空闲状态。
本实施例中,可以通过向有限状态机发送时钟信号,从而触发有限状态机进入不同的工作状态。在不同的工作状态下,有限状态机分别控制相应的模块工作,从而执行相应的运算。
综上,当使用硬件描述语言实现时,图1所示的模乘单路具有如表3所示的性能。
表3
本实施例中,使用格雷码对有限状态机的状态进行编码。时钟信号与有限状态机的工作状态之间的对应关系如表4所示:
表4
本实施例中,表4的状态转换可以通过以下步骤来表示:
S1.向所述有限状态机发送时钟信号;
S2.在所述时钟信号触发的启动状态下,所述有限状态机控制所述第一输入单元和第二输入单元接收第一乘数A和第二乘数B;
S3.在所述时钟信号触发的第一状态ST1下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第一中间结果,并将它存储到寄存器组;
S4.在所述时钟信号触发的第二状态ST2下,所述有限状态机控制所述第一组合逻辑单元64位乘法器获取第二中间结果,并将它存储到寄存器组;
S5.在所述时钟信号触发的第三状态ST3下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第三中间结果,并将它存储到寄存器组;
S6.在所述时钟信号触发的第四状态ST4下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第四中间结果,并将它存储到寄存器组;
S7.在所述时钟信号触发的第五状态ST5下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第五中间结果,并将它存储到寄存器组;
S8.在所述时钟信号触发的第六状态ST6下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第六中间结果,并将它存储到寄存器组;
S9.在所述时钟信号触发的第七状态ST7下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第七中间结果,并将它存储到寄存器组;
S10.在所述时钟信号触发的第八状态ST8下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第八中间结果,并将它存储到寄存器组;
S11.在所述时钟信号触发的第九状态ST9下,所述有限状态机控制所述第一组合逻辑单元和64位乘法器获取第九中间结果,并将它存储到寄存器组;
S12.在所述时钟信号触发的第十状态ST10下,所述有限状态机控制所述第二组合逻辑单元从寄存器组中读取出第一中间结果、第二中间结果、第三中间结果、第四中间结果、第五中间结果、第六中间结果、第七中间结果、第八中间结果和第九中间结果,并根据它们获取乘积结果C;
S13.在所述时钟信号触发的第十一状态ST11下,所述有限状态机控制所述约减单元对乘积结果C进行约减运算;
S14.在所述时钟信号触发的第十二状态ST12下,所述有限状态机控制所述输出单元输出所述约减单元的输出结果。
对图8所示的约减单元进行RTL仿真,结果如图9所示。由图9可以看到,仿真图里并没有时钟信号,这是因为约减单元是组合逻辑电路,所以在RTL仿真里,输入改变了,输出立刻改变,只需验证算法是否正确即可。仿真测试用了3组数据,测试所用到的数据如表5所示。因为=57+2+1,在表5中的3组输入里,低256位都一样,高260位里只有1位为高电平,因此相应的输出只有低16位发生变化(标粗部分)。
表5
对本实施例中的模乘电路进行RTL仿真,结果如图10所示。图10中,箭头1表示模乘开始,即en信号由低电平跳变为高电平,并维持高电平一个时钟,此时初始化输入数据;位于上方的方框代表9轮64位乘法的过程,状态机经历ST1到ST9的过程,每个状态占用1个CLK时钟;ST10是计算256位乘积,ST11计算最终乘积,这两部分都占用了1个CLK时钟;位于下方的方框代表约减过程,即状态机为ST12状态,此时将buffAB数据送到约减模块。箭头2表示模乘结束,此时将约减后的数据送到输出寄存器Cout,并置done信号由低电平跳变为高电平,状态机跳回IDLE状态,模乘过程结束。从开始到结束,整个过程用了13个CLK时钟,符合算法过程的推测。模乘的测试数据如表6所示。
表6
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (10)
1.一种基于二元扩域的模乘电路,其特征在于,包括:
有限状态机;
第一输入单元,用于在所述有限状态机的控制下,接收m+2位的二进制第一乘数A;
第二输入单元,用于在所述有限状态机的控制下,接收m+2位的二进制第二乘数B;
第一组合逻辑单元,具有多个数据选择器和多个异或门,用于在所述有限状态机的控制下,接收所述第一乘数A的低m位{A3,A2,A1,A0}以及所述第二乘数B的低m位{B3,B2,B1,B0},通过各所述数据选择器从所述{A3,A2,A1,A0}和所述{B3,B2,B1,B0}中选择出数值输入到相应的异或门进行运算,从而输出两个位的输出结果;所述A3、A2、A1、A0、B3、B2,B1和B0的位数均为位;
位乘法器,用于在所述有限状态机的控制下,接收所述第一组合逻辑单元的输出结果并执行乘法计算,从而分别计算出第一中间结果S1=A0B0,第二中间结果S2=(A1+A0)(B1+B0),第三中间结果S3=A1B1,第四中间结果S4=(A2+A0)(B2+B0),第五中间结果S5=(A3+A2+A1+A0)(B3+B2+B1+B0),第六中间结果S6=(A3+A1)(B2+B0),第七中间结果S7=A2B2,第八中间结果S8=(A3+A2)(B3+B2),以及第九中间结果S9=A3B3;
寄存器组,其具有多个存储空间,用于在所述有限状态机的控制下,存储并供读取所述第一中间结果、第二中间结果、第三中间结果、第四中间结果、第五中间结果、第六中间结果、第七中间结果、第八中间结果和第九中间结果;
第二组合逻辑单元,具有多个异或门,用于在所述有限状态机的控制下,获取所述寄存器组中所存储的各中间结果并执行多轮异或运算,从而输出乘积结果
约减单元,用于在所述有限状态机的控制下,对所述乘积结果C执行约减运算;
输出单元,用于在所述有限状态机的控制下,输出所述约减单元的输出结果。
2.根据权利要求1所述的模乘电路,其特征在于,所述第一组合逻辑单元包括:
第一数据选择器,其一组输入端用于接收A2,另一组输入端用于接收A1;
第二数据选择器,其一组输入端用于接收B2,另一组输入端用于接收B1;
3.根据权利要求1所述的模乘电路,其特征在于,所述第二组合逻辑单元包括:
6.根据权利要求1-5任一项所述的模乘电路,其特征在于,所述m=256。
7.根据权利要求1所述的模乘电路,其特征在于,所述有限状态机上设有:
使能端,用于接收使能信号;
时钟端,用于接收时钟信号。
8.根据权利要求7所述的模乘电路,其特征在于,所述有限状态机的状态编码方式为格雷码。
9.根据权利要求1所述的模乘电路,其特征在于,还包括:
复位信号端,与所述第一输入单元、第二输入单元、寄存器组和输出单元连接,用于将接收到的复位信号发送到第一输入单元、第二输入单元、寄存器组和输出单元中的任一者,从而触发它们进行复位;
DONE信号寄存器,用于在所述输出单元获取到所述约减单元的输出结果之后置于高电平,从而触发所述有限状态机进入空闲状态。
10.权利要求1、2、3、4、5、7、8或9所述的模乘电路的控制方法,其特征在于,包括以下步骤:
向所述有限状态机发送时钟信号;
在所述时钟信号触发的启动状态下,所述有限状态机控制所述第一输入单元和第二输入单元接收第一乘数A和第二乘数B;
在所述时钟信号触发的第十状态下,所述有限状态机控制所述第二组合逻辑单元从寄存器组中读取出第一中间结果、第二中间结果、第三中间结果、第四中间结果、第五中间结果、第六中间结果、第七中间结果、第八中间结果和第九中间结果,并根据它们获取乘积结果C;
在所述时钟信号触发的第十一状态下,所述有限状态机控制所述约减单元对乘积结果C进行约减运算;
在所述时钟信号触发的第十二状态下,所述有限状态机控制所述输出单元输出所述约减单元的输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396364.5A CN111190571B (zh) | 2019-12-30 | 2019-12-30 | 一种基于二元扩域的模乘电路及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396364.5A CN111190571B (zh) | 2019-12-30 | 2019-12-30 | 一种基于二元扩域的模乘电路及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190571A CN111190571A (zh) | 2020-05-22 |
CN111190571B true CN111190571B (zh) | 2022-03-22 |
Family
ID=70705910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911396364.5A Active CN111190571B (zh) | 2019-12-30 | 2019-12-30 | 一种基于二元扩域的模乘电路及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190571B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527241B (zh) * | 2020-12-10 | 2023-08-08 | 深圳市紫光同创电子有限公司 | 并行有限域乘法装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7240204B1 (en) * | 2000-03-31 | 2007-07-03 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Scalable and unified multiplication methods and apparatus |
CN104239279A (zh) * | 2014-09-10 | 2014-12-24 | 哈尔滨工业大学深圳研究生院 | 一种乘法器 |
CN106484366A (zh) * | 2016-10-17 | 2017-03-08 | 东南大学 | 一种二元域位宽可变模乘运算器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100435090C (zh) * | 2005-08-18 | 2008-11-19 | 上海微科集成电路有限公司 | 可扩展高基蒙哥马利模乘算法及其电路结构 |
-
2019
- 2019-12-30 CN CN201911396364.5A patent/CN111190571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7240204B1 (en) * | 2000-03-31 | 2007-07-03 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Scalable and unified multiplication methods and apparatus |
CN104239279A (zh) * | 2014-09-10 | 2014-12-24 | 哈尔滨工业大学深圳研究生院 | 一种乘法器 |
CN106484366A (zh) * | 2016-10-17 | 2017-03-08 | 东南大学 | 一种二元域位宽可变模乘运算器 |
Non-Patent Citations (1)
Title |
---|
可重构双基双域模乘器设计与实现;倪乐等;《电子技术应用》;20121006(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111190571A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162723B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN112114776B (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
JP4732688B2 (ja) | ガロア拡大体・積算/積算加算・積和演算 | |
CN111008003B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN104461449A (zh) | 基于向量指令的大整数乘法实现方法及装置 | |
CN110362293B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN112650471A (zh) | 用于处理掩蔽数据的处理器和方法 | |
CN111190571B (zh) | 一种基于二元扩域的模乘电路及其控制方法 | |
CN110554854B (zh) | 数据处理器、方法、芯片及电子设备 | |
US7136892B2 (en) | Method for multiplying two factors from the Galois field and multiplier for performing the method | |
US8909510B2 (en) | LFSR emulation | |
CN109144472B (zh) | 一种二元扩域椭圆曲线的标量乘法及其实现电路 | |
EP2851786A1 (en) | Instruction class for digital signal processors | |
CN112214200B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
CN110647307B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN102135871B (zh) | 利用混沌原理产生随机数的装置及其动态口令牌 | |
CN209879493U (zh) | 乘法器 | |
CN111198672B (zh) | 一种基于二元扩域的点加和倍点电路及其控制方法 | |
CN110688087B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN210109789U (zh) | 数据处理器 | |
CN115809707A (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN115809042B (zh) | 量子模数加法运算方法、装置、电子装置及模数算术组件 | |
CN115879554B (zh) | 量子模数平方运算方法、装置、电子装置及模数算术组件 | |
CN115879553B (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 |