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

文档序号:7590035阅读:138来源:国知局
专利名称:一种模乘运算的方法及其装置和用途的制作方法
技术领域
本发明是一种模乘运算的方法及其装置和用途,应用于信息和通信技术领域中。
背景技术
计算整数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<CTHEN SEL=0;ELSE IFIN<2*CTHEN SEL=1;ELSESEL=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加密解密处理系统,以及第三带移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。
权利要求
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<CTHEN SEL=0;ELSE IFIN<2*CTHEN SEL=1;ELSESEL=2;END比较器COMP的输出信号SEL用作选择器MUX2的选择信号,当SEL为“0”时,选择器MUX2选择对应输入端IN7的输入数据作为输出,当SEL为“1”时,选择器MUX2选择对应输入端IN8的输入数据作为输出,当SEL为“2”时,选择器MUX2选择对应输入端IN9的输入数据作为输出。
6.根据权利要求4或5所述的模乘运算处理装置,可以应用于RSA加密解密处理系统,以及第三代移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。
全文摘要
本发明为一种模乘运算的方法及其装置和用途,本发明模乘运算方法是对模乘运算式进行分解,使其能够通过递归的方法来实现,这样可以通过反复地将固定的运算规则(或者函数)运用于上一次运算规则执行之后的结果,最后得到所要求的余数。本发明提出一种蒙哥马利模乘的较低运算复杂度的实现方法以及一个快速而较低功耗的蒙哥马利模乘运算的处理装置,它应用于RSA加密处理系统,以及第三代移动通信系统中特博码编译码器中的内部交织器的交织模式的生成当中。
文档编号H04L9/28GK1691580SQ20041001784
公开日2005年11月2日 申请日期2004年4月23日 优先权日2004年4月23日
发明者陈小元 申请人:上海明波通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1