CN1691580A - 一种模乘运算的方法及其装置和用途 - Google Patents

一种模乘运算的方法及其装置和用途 Download PDF

Info

Publication number
CN1691580A
CN1691580A CN 200410017846 CN200410017846A CN1691580A CN 1691580 A CN1691580 A CN 1691580A CN 200410017846 CN200410017846 CN 200410017846 CN 200410017846 A CN200410017846 A CN 200410017846A CN 1691580 A CN1691580 A CN 1691580A
Authority
CN
China
Prior art keywords
function
processing unit
output
modular multiplication
operand
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.)
Pending
Application number
CN 200410017846
Other languages
English (en)
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.)
SHANGHAI BWAVETECH Corp
Original Assignee
SHANGHAI BWAVETECH Corp
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 SHANGHAI BWAVETECH Corp filed Critical SHANGHAI BWAVETECH Corp
Priority to CN 200410017846 priority Critical patent/CN1691580A/zh
Publication of CN1691580A publication Critical patent/CN1691580A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明为一种模乘运算的方法及其装置和用途,本发明模乘运算方法是对模乘运算式进行分解,使其能够通过递归的方法来实现,这样可以通过反复地将固定的运算规则(或者函数)运用于上一次运算规则执行之后的结果,最后得到所要求的余数。本发明提出一种蒙哥马利模乘的较低运算复杂度的实现方法以及一个快速而较低功耗的蒙哥马利模乘运算的处理装置,它应用于RSA加密处理系统,以及第三代移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。

Description

一种模乘运算的方法及其装置和用途
一、技术领域:
本发明是一种模乘运算的方法及其装置和用途,应用于信息和通信技术领域中。
二、背景技术:
计算整数A乘以整数B,然后再除以整数C所得到的余数R,在信息与通信技术中的许多不同的领域发挥着重要的作用。这种运算通常被称为蒙哥马利模乘运算,数学表达式为R=(A×B)mod C,其中0<A<C,0<B<C。
蒙哥马利模乘运算在信息与通信技术领域有着广泛的利用,比如最流行的公开密钥算法RSA加密算法的加密解密的核心处理是模幂运算,而众所周知模幂运算通常是分解为多次模乘运算,所以蒙哥马利模乘是RSA加密算法的核心运算。这种运算非常复杂,高速而且低复杂度的蒙哥马利模乘运算的实现对于RSA加密算法的应用非常重要。
在第三代移动通信系统(3G)中采用的特博(Turbo)纠错码中的内部交织器中,需要利用模乘运算来生成交织模式,所需要的模乘运算的次数等于编解码块的比特数,而且对于不同的编解码块大小,这种交织模式也是不同。在第三代移动通信系统(3G)的第5版(Release 5)中,由于采用了自适应调制编码方式调节(Adaptive Modulation and Coding)机制,随着信道条件的变化,基站发送的数据包(Packet)的大小是相应发生变化的,移动终端必须动态地根据所接受的数据包的大小来计算不同的交织模式。因此,高速而且低复杂度的蒙哥马利模乘运算对于第三代移动通信系统(3G)中移动终端的低功耗实现至关重要。
关于C=2n(n是≥1的整数)的模乘运算可以简单地分解为一个乘法运算和一个模运算,而其中的模运算可以通过一个简单的移位寄存器和对乘法结果的二进制表示进行右移n位来实现。在右移过程中,移出移位寄存器的位序列就是余数R的二进制表示。但是在通常的应用领域,C都不能表示为以2为底的幂。比如,在以上所述两个应用领域中,C都通常是用素数。这种情况下的模乘运算是非常复杂的。
通常,蒙哥马利模乘运算的运算复杂度是随着整数A、B和C的取值范围和数值大小的增加而增加。运算复杂度在软件实现中体现为执行的指令数或者执行运算的处理运算的时间开销,在硬件实现则体现为执行运算的硬件电路的规模以及时间开销,并且都体现为执行运算所需要的功耗。
三、发明内容:
本发明的目的在于提出一种蒙哥马利模乘的较低运算复杂度的实现方法,以及一个快速而且较低功耗的蒙哥马利模乘运算处理装置。实现方法和处理装置既可以基于软件,也可以基于硬件。
正整数B可以用以下二进制记数法表示:
B=bN-1·2N-1+bN-2·2N-2+…+b1·21+b0      …………公式1
其中,基于以上B的二进制记数表示,本发明的蒙哥马利模乘运算的实现采用以下数学等式:
(A·B)mod C=(…(A·bN-1)·2+A·bN-2)·2+…A·b1)·2+A·b0)mod C
                                                          …………公式2
以上数学等式所表示的数学运算可以以递归计算的方式实现,为了实现这一目标,如下所示定义函数:
               G(X)=X mod C      ………公式3
函数G是对自变量正整数X以C为模的求余运算。
根据本发明,结合附图1中所所显示的流程图来说明用于计算蒙哥马利模乘运算R=(A×B)mod C的递归方法。
如附图1所示,“初始化处理”是指对执行模乘运算处理的处理装置或者处理程序的一般性初始化步骤,比如说,操作数A、B和C的输入处理等,这里不予详细说明。
第一步是将递归循环指标I设置为0,并且将函数值W0初始化为0。然后处理流程进入递归循环处理部分。每完成一个处理循环,将递归循环指标I加1,直到第N个循环(I=N)的处理完成后,退出递归循环。
由WI表示的函数值是第I个循环中表示递归运算规则的函数G的返回值,按如下表达式计算:
              WI=G(2·WI-1+A·bN-I)      ………公式4
由于bN-I是0或者1,又已知A<C,而且WI-1是上一次循环中函数G的返回值,因此也必然满足WI-1<C,因此公式4中函数G的操作数必然满足以下关系:
              2·WI-1+A·bN-I<3·C      ………公式5
因此公式4的计算可以通过如附图2所示程序段所表示的处理来实现:
如果2×WI-1+A×bN-I小于C,则函数返回值为2×WI-1+A×bN-I,否则如果2×WI-1+A×bN-I大于或等于C而且小于C的2倍,则函数返回值为2×WI-1+A×bN-I-C;否则如果2×WI-1+A×bN-I大于或等于C的2倍,则函数返回值为2×WI-1+A×bN-I-2×C。
进一步因为bN-I是0或者1,如果bN-I=0的话,则公式4中的函数G的变量简化为2×WI-1,则附图2所示程序段可以如附图3所示进行改进。
当bN-I等于0时,函数G的变量简化为2×WI-1;公式的计算以如下方式实现:(1)当bN-I等于0时,如果2×WI-1小于C,则函数返回值为2×WI-1;否则如果2×WI-1大于或等于C,则函数返回值为2×WI-1-C;(2)当bN-I等于1时,如果2×WI-1+AI小于C,则函数返回值为2×WI-1+A;否则如果2×WI-1+A大于或等于C而且小于C的2倍,则函数返回值为2×WI-1+A-C;否则如果2×WI-1+A大于或等于C的2倍,则函数返回值为2×WI-1+A-2×C。
经过N次递归循环处理之后,最后一次循环处理中函数G的返回值WN即为所要求的余数R。
如上所述,根据本发明的模乘运算的实现简化为N次递归循环的运算,而每一次递归循环处理包括一个比较处理以及最多一次减法运算。
本发明的模乘运算方法可以用纯软件的形式实现,但是这样实现速度比较慢,在大多数实际应用的场合不能满足时间的要求。在时间要求比较严格的应用场合,可以用硬件电路来实现以上蒙哥马利模乘运算方法。
本发明的基本思想是对蒙哥马利模乘运算式进行分解,使其能够通过递归的方法来实现,这样通过反复地将固定的运算规则(或者函数)运用于上一次运算规则执行之后的结果,最后得到所要求的余数R。通过将模乘运算分解为相同运算规则的重复进行,可以导致整个模乘运算的复杂度降低。同时,模乘运算的实现转化为更简单的运算规则以及相应的控制规则的实现,因而大大简化了设计复杂度。
四、附图说明:
附图1是本发明模乘运算方法流程方框图;
附图2是本发明方法计算W1值程序段实现处理流程;
附图3是附图2的程序段的改进程序;
附图4是本发明模乘运算处理装置;
附图5是本发明数据处理单元的一种方框图。
五、具体实施方式:
根据附图4,本发明的模乘运算处理装置,该运算处理装置以硬件数字电路的形式实现,它在由外部设定运算参数A、B和C,以及它们的采用二进制记数时的字长N后,能够自动地在N个周期内完成模乘运算,并输出余数R。
该模乘运算处理装置包括一个移位寄存器SR、一个2选1选择器MUX1、一个加法器ADD、一个乘法器MULT、一个时间延迟单元D和一个数据处理单元GE。另外,该数据处理装置还包括4个数据寄存器,用以存储操作数A、B、C以及这些操作数的字长N,以及一个时钟信号CLK。
本处理装置参照附图1所说明的算法。操作数A、B、C以及操作数的字长N在该处理装置启动动作之前由外部CPU或者其它形式设定到数据寄存器中。时钟信号CLK可以由外部输入,也可以在处理装置内部生成。不管是哪一种情况,时钟信号应该在前述操作数A、B和C被设定到数据寄存器之后开始有效。时钟信号CLK变得有效后,本处理装置开始处理动作,每一个时钟周期完成附图1所说明的递归循环算法中的一个循环。由预先设定的参数N决定动作的时间,N个时钟周期后,本处理装置输出模乘运算的余数结果R,然后停止动作。
在第一个有效时钟信号CLK到来时,存储在数据存储器中的操作数B被加载到移位寄存器SR中,之后每一个时钟周期,移位寄存器SR向左作一位的移位操作。同时移位寄存器SR总是将当前最高位(最左边的一个比特)的数据输出给选择器MUX1作为选择信号。
选择器MUX1从两个输入数据中选择一个作为输出信号。当来自移位寄存器SR的输出端的选择信号为“0”时,选择“0”作为输出,否则选择存储在数据寄存器中的操作数A作为输出。
乘法器MULT将输入数据乘以2以后输出,在数字电路的实现中,乘以2的操作等价于将操作数向左移一位的动作。
加法器ADD对输入的两个操作数IN1和IN2执行加法运算后输出。
数据处理单元GE执行前述函数G的运算处理。数据处理单元GE的输出结果经过时间延迟单元D延迟一个时钟周期后反馈回到加法器ADD的输入端。但是第一个时钟周期的时候,GE的输出端必须初始化为“0”。在N个时钟周期的动作结束后,数据处理单元的输出结果不再反馈给加法器ADD,而是直接作为模乘运算的结果R输出。
附图5所示为数据处理单元GE的一种实现框图。该实现框图中包括两个减法器SUB1和SUB2,一个比较器COMP和一个选择器MUX2。减法器SUB1执行输入操作数IN3减去输入操作数IN4的减法运算,减法器SUB2执行输入操作数IN5减去输入操作数IN6的减法运算。
比较器COMP比较输入操作数IN与求模运算的基数C以及求模运算的基数C的2倍之间的比较,其输出信号SEL与三个比较操作数之间的逻辑关系如下所示:
           IF         IN<C
           THEN       SEL=0;
           ELSE IF    IN<2*C
           THEN       SEL=1;
           ELSE
                      SEL=2;
           END
比较器COMP的输出信号SEL用作选择器MUX2的选择信号,当SEL为“0”时,选择器MUX2选择对应输入端IN7的输入数据作为输出,当SEL为“1”时,选择器MUX2选择对应输入端IN8的输入数据作为输出,当SEL为“2”时,选择器MUX2选择对应输入端IN9的输入数据作为输出。
基于以上所述电路构成,本数据处理装置在设定了操作数A、B和C以及操作数的字长N,并通过生成有效的时钟信号CLK以启动动作后,经过N个时钟周期的动作后,自动停止动作并输出模乘运算结果R。
根据本发明设计的模乘运算处理装置,比如说,可以应用于RSA加密解密处理系统,以及第三带移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。

Claims (6)

1.应用于信息与通信技术领域的一种模乘运算的方法,模乘运算通常称为蒙哥马利模乘运算,数学表达式为R=(A×B)mod C,其中0<A<C,0<B<C,其意义为计算整数A乘以整数B,然后除以整数C所得到的余数R,其特征在于:对蒙哥马利模乘运算式进行分解,使其能够通过递归的方法来实现,这样通过反复地将固定的运算规则(或者函数)运用于上一次运算规则执行之后的结果,最后得到所要求的余数R,正整数B可以用以下二进制记数法表示:
        B=bN-1·2N-1+bN-2·2N-2+…+b1·21+b0
其中,基于以上B的二进制记数表示,蒙哥马利模乘运算的实现采用以下数学等式:
(A·B)mod C=(…(A·bN-1)·2+A·bN-2)·2+…A·b1)·2+A·b0)mod C
以上数学等式所表示的数学运算可以以递归计算的方式实现,为了实现这一目标,如下所示定义函数:
                        G(X)=X mod C
函数G是对自变量正整数X以C为模的求余运算;
计算蒙哥马利模乘运算R=(A×B)mod C的递归方法的流程包括:(1)对执行模乘运算处理的处理程序的一般性初始化步骤,比如说,操作数A、B和C的输入处理;(2)先将递归循环指标I设置为0,并且将函数值W0初始化为0,然后处理流程进入递归循环处理部分,每完成一个处理循环,将递归循环指标I加1,直到第N个循环(I=N)的处理完成后,退出递归循环,经过N次递归循环处理后,最后一个循环处理中函数G的返回值WN即为所要求的余数R。
2.根据权利要求1所述的一种模乘运算的方法,其特征在于:函数G(X)的函数值WI是第I个循环中表示递归运算规则函数的返回值,计算公式
                    WI=G(2·WI-1+A·bN-I)
由于bN-I是0或者1,又已知A<C,而且WI-1是上一次循环中函数G的返回值,因此也必然满足WI-1<C,因此公式中函数G的操作数必然满足以下关系:
                    2·WI-1+A·bN-I<3·C
公式的计算以如下方式实现:如果2×WI-1+A×bN-I小于C,则函数返回值为2×WI-1+A×bN-I,否则如果2×WI-1+A×bN-I大于或等于C而且小于C的2倍,则函数返回值为2×WI-1+A×bN-I-C;否则如果2×WI-1+A×bN-I大于或等于C的2倍,则函数返回值为2×WI-1+A×bN-I-2×C。
3.根据权利要求1或2所述的一种模乘运算的方法,其特征在于:bN-I是0或者1;当bN-I等于0时,函数G的变量简化为2×WI-1;公式的计算以如下方式实现:(1)当bN-I等于0时,如果2×WI-1小于C,则函数返回值为2×WI-1;否则如果2×WI-1大于或等于C,则函数返回值为2×WI-1-C;(2)当bN-I等于1时,如果2×WI-1+AI小于C,则函数返回值为2×WI-1+A;否则如果2×WI-1+A大于或等于C而且小于C的2倍,则函数返回值为2×WI-1+A-C;否则如果2×WI-1+A大于或等于C的2倍,则函数返回值为2×WI-1+A-2×C。
4.由权利要求1所述的一种模乘运算处理装置,其特征在于:模乘运算处理装置包括一个移位寄存器SR、一个2选1选择器MUX1、一个加法器ADD、一个乘法器MULT、一个时间延迟单元D和一个数据处理单元GE,另外,该数据处理装置还包括4个数据寄存器,用以存储操作数A、B、C以及这些操作数的字长N,以及一个时钟信号CLK;操作数A、B、C以及操作数的字长N在该处理装置启动动作之前由外部CPU或者其它形式设定到数据寄存器中,时钟信号CLK可以由外部输入,也可以在处理装置内部生成,不管是哪一种情况,时钟信号在前述操作数A、B和C被设定到数据寄存器之后开始有效;时钟信号CLK变得有效后,本处理装置开始处理动作,每一个时钟周期完成递归循环算法中的一个循环;由预先设定的参数N决定动作的时间,N个时钟周期后,处理装置输出模乘运算的余数结果R,然后停止动作;在第一个有效时钟信号CLK到来时,存储在数据存储器中的操作数B被加载到移位寄存器SR中,之后每一个时钟周期,移位寄存器SR向左作一位的移位操作;同时移位寄存器SR总是将当前最高位(最左边的一个比特)的数据输出给选择器MUX1作为选择信号;选择器MUX1从两个输入数据中选择一个作为输出信号;当来自移位寄存器SR的输出端的选择信号为“0”时,选择“0”作为输出,否则选择存储在数据寄存器中的操作数A作为输出;乘法器MULT将输入数据乘以2以后输出,在数字电路的实现中,乘以2的操作等价于将操作数向左移一位的动作;加法器ADD对输入的两个操作数IN1和IN2执行加法运算后输出;数据处理单元GE执行前述函数G的运算处理,数据处理单元GE的输出结果经过时间延迟单元D延迟一个时钟周期后反馈回到加法器ADD的输入端;第一个时钟周期的时候,GE的输出端必须初始化为“0”,在N个时钟周期的动作结束后,数据处理单元的输出结果不再反馈给加法器ADD,而是直接作为模乘运算的结果R输出。
5.根据权利要求4所述的模乘运算处理装置,其特征在于:所述的数据处理单元GE包括两个减法器SUB1和SUB2,一个比较器COMP和一个选择器MUX2;减法器SUB1执行输入操作数IN3减去输入操作数IN4的减法运算,减法器SUB2执行输入操作数IN5减去输入操作数IN6的减法运算;比较器COMP比较输入操作数IN与求模运算的基数C以及求模运算的基数C的2倍之间的比较,其输出信号SEL与三个比较操作数之间的逻辑关系如下所示:
            IF         IN<C
            THEN       SEL=0;
            ELSE IF    IN<2*C
            THEN       SEL=1;
            ELSE
                       SEL=2;
            END
比较器COMP的输出信号SEL用作选择器MUX2的选择信号,当SEL为“0”时,选择器MUX2选择对应输入端IN7的输入数据作为输出,当SEL为“1”时,选择器MUX2选择对应输入端IN8的输入数据作为输出,当SEL为“2”时,选择器MUX2选择对应输入端IN9的输入数据作为输出。
6.根据权利要求4或5所述的模乘运算处理装置,可以应用于RSA加密解密处理系统,以及第三代移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。
CN 200410017846 2004-04-23 2004-04-23 一种模乘运算的方法及其装置和用途 Pending CN1691580A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410017846 CN1691580A (zh) 2004-04-23 2004-04-23 一种模乘运算的方法及其装置和用途

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410017846 CN1691580A (zh) 2004-04-23 2004-04-23 一种模乘运算的方法及其装置和用途

Publications (1)

Publication Number Publication Date
CN1691580A true CN1691580A (zh) 2005-11-02

Family

ID=35346742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410017846 Pending CN1691580A (zh) 2004-04-23 2004-04-23 一种模乘运算的方法及其装置和用途

Country Status (1)

Country Link
CN (1) CN1691580A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN113031920A (zh) * 2021-05-20 2021-06-25 华控清交信息科技(北京)有限公司 一种芯片和用于芯片的批量模运算方法
WO2023141933A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-01-28 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
US12003633B2 (en) 2022-01-28 2024-06-04 Nvidia Corporation Techniques, devices, and instruction set architecture for balanced and secure ladder computations

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN104793919B (zh) * 2015-04-15 2017-11-07 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN113031920A (zh) * 2021-05-20 2021-06-25 华控清交信息科技(北京)有限公司 一种芯片和用于芯片的批量模运算方法
CN113031920B (zh) * 2021-05-20 2021-08-31 华控清交信息科技(北京)有限公司 一种芯片和用于芯片的批量模运算方法
WO2023141933A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11954487B2 (en) 2022-01-28 2024-04-09 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-01-28 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
US12003633B2 (en) 2022-01-28 2024-06-04 Nvidia Corporation Techniques, devices, and instruction set architecture for balanced and secure ladder computations

Similar Documents

Publication Publication Date Title
CN111522528B (zh) 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN1120696A (zh) 多位移位装置,利用多位移位装置的数据处理器及其方法
CN101097511A (zh) 使用折叠的模归约
Hasan Look-up table-based large finite field multiplication in memory constrained cryptosystems
Chen et al. Optimizing bike for the intel haswell and arm cortex-m4
Song et al. Hardware/software codesign of finite field datapath for low-energy Reed-Solomon codecs
JP2008500590A (ja) Md5ダイジェスティングを実行する装置および方法
US20100077187A1 (en) System and Method to Execute a Linear Feedback-Shift Instruction
CN115801244A (zh) 用于资源受限处理器的后量子密码算法实现方法及系统
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
CN1691580A (zh) 一种模乘运算的方法及其装置和用途
CN112819168B (zh) 一种格密码加解密中的环多项式乘法器电路
KR20040028493A (ko) 인터리브된 어드레스를 발생시키는 방법 및 장치
CN1503939A (zh) 多项式算术运算
CN117155572A (zh) 一种基于gpu并行实现密码技术中大整数乘法的方法
CN1761938A (zh) 超高基数除法
CN114594925A (zh) 适用于sm2加密运算的高效模乘电路及其运算方法
WO2002073395A2 (en) A method and apparatus for multiplication and/or modular reduction processing
WO2007083377A1 (ja) パリティ生成回路、計数回路および計数方法
CN110262772B (zh) 一种两位、三位的近似加法器和一种近似加法器
CN1258883C (zh) 将一个数的二进制表示变换成一个带符号的二进制表示的方法
Verbauwhede et al. Wireless digital signal processors
Brist Rns-based ntt polynomial multiplier for lattice-based cryptography
KR101255749B1 (ko) 분할된 병렬 인코딩 동작들을 가지는 컨볼루션 인코딩

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20051102