蒙哥马利模乘法器制造技术

技术编号:2857527 阅读:222 留言:0更新日期:2012-04-11 18:40
在蒙哥马利乘法器中,模乘积产生器可以从多个n位模数M中选择一个模乘积,同时在该n位模数中从当前输入拓展块中形成一个给定的模数M。部分乘积产生器从多个可选择的n位被乘数A中选择一个被乘数作为部分乘积,同时在n位被乘数中从当前位输入拓展块中形成一个给定的被乘数A。累加器可以将选择的模乘积和部分乘积累加以产生一个乘积结果。蒙哥马利乘法器可以是包括了一个存储器和主机的运算单元的一部分,也可以用于基于输入其中的控制信号的逻辑状态执行蒙哥马利乘法运算和通常的乘法运算。

【技术实现步骤摘要】

本专利技术总地涉及密码系统,更具体地涉及用于此类密码系统的蒙哥马利模乘法器(Montgomery modular multiplier)。
技术介绍
在通过计算机网络的方式交换各类数据的信息通信环境中,有线和/或移动(无线)通信领域、加密系统(密码系统)日益作为确保数据安全性的必要工具。特别是,对于电子会计或识别系统来说通过提供加密和/或解密技术而确保数据的安全性是必须的。加密技术可以笼统地分为密钥(对称密钥,私人密钥,或通用密钥)和公钥(非对称密钥)的形式。由美国商务部所拟订的数据加密系统(DES)的加密算法是一种典型的密码系统密钥加密类型。其它的典型加密系统包括出自前苏联的政府标准(GOST),以及瑞士的内部数据加码算法(IDEA)。对于一个密钥加密系统来说,由于各个交换信息需要共享相同的密钥,因此具有为了安全性而具有一个附加的信道的优点。因而这样的密钥类型的加密系统为了让用户能与其他用户交流信息通常需要由一个用户保有并管理多个密钥。公钥类型的加密系统使用彼此不同的加密和解密密钥,这就使得即便通过知道两个密钥之一的人也很难检测到相应的密钥。在公共密钥系统中,信息通过一个密钥和/或一个公钥加扰或解扰(即,信息可以通过使用一个私人密钥来加扰并且使用一个公共密钥来解扰,反之亦然)。虽然公共密钥系统由于无需为共享密钥具备一个附加的信道,并与密钥系统相比可以提供改善的数据安全性,因此在密钥管理方面很方便,但公共密钥系统因为要产生两个不同的密钥并需要复杂的数学运算来使用两个不同密钥恢复信息,因此仅具有有限的容量来处理高速数据。改进的加密系统使用了蒙哥马利算法,其为在硬件和软件系统实施例中执行公钥加密算法提供了更大的益处。使用了蒙哥马利算法的加密系统能够将很难用硬件实现的对一个数字的模运算变换为简单的乘法和加法的移位运算。蒙哥马利算法在单个的乘法运算步骤之前和之后使用了一个运算数变换处理。因此,虽然由于在应用中重复运行了乘法运算,基于蒙哥马利算法的加密系统比在单独乘法域中其他的模乘法系统要慢,但是基于蒙哥马利算法的系统由于无需在每个处理周期执行运算数的转换步骤,因而能比基于通常的公钥算法的加密系统在执行加密运算时更快。一种用于提高乘法处理速度的方法拓展了基数。如果基数值增加,那么在给定的乘法处理中的重复累加数减少一个相应的数。然而,基数的增加可以导致由附加的处理步骤所产生的更复杂的累加周期,因此加长了处理流程的时间。例如,虽然由硬件实现时基数2的操作算法相对简单,但是,累加周期的重复数为基数4的操作算法的二倍。相反地,基数4的操作运算相对于基数2的操作算法所需的硬件,需要为每个重复周期提供更长的处理时间以及更复杂的硬件结构。
技术实现思路
本专利技术的一个示例性实施例是一个蒙哥马利乘法器。该乘法器可以包括一模乘积产生器,用来选择n位模数-M,0,M,2M和前一行结果SI其中之一作为模乘积;一部分乘积产生器,用来选择-2A,-A,0,+A和+2A被乘数其中之一作为部分乘积;和一累加器,用来堆栈该所选择的模乘积和部分乘积。在实施例中,一个蒙哥马利运算单元可以包括一个存储器、一用来将被乘数A、乘数B和模数M存储在存储器中的主机、以及一个上述的蒙哥马利乘法器。该蒙哥马利乘法器可以在主机的控制下用所存储的被乘数、乘数和模数执行一个蒙哥马利乘法运算,并可以将来自蒙哥马利乘法运算中的运算结果存储在所述存储器中。本专利技术的另一个示例性实施例是一个累加器。该累加器可以包括多个用来以进位保存加法模式运算的压缩器,该多个压缩器的每个接收模乘积,部分乘积、第一值和第二值,并产生一个相应的下一个和、一个相应的下一个进位和一个相应的下一个较低值;一和寄存器,用来从多个压缩器的每个接收相应的下一个和以输出一个相应的更新的当前和;一进位寄存器,用来从多个压缩器的每个接收相应的下一个进位来输出一个相应的更新的当前进位;和一较低值寄存器,用来从多个压缩器的每个接收相应的下一个较低值以输出一个相应的更新的当前低值。本专利技术的另一个示例性实施例是一个运算单元。该运算单元可以包括一乘法器,用来顺序地执行用于一个包括n/c位块的n位被乘数、包括n/c位、块的一个n位乘数、包括n/c块的n位模数、拓展的乘数块和拓展的模数块的单元乘法运算(n/c)*(n/c)次。对该运算单元来说,n>c并且n和c是正整数。本专利技术的另一个示例性实施例是一个蒙哥马利乘法单元。该乘法单元包括一个具有n/c行数的运算矩阵,n和c是正整数,其中每行与重复执行n/c次的单元乘法运算和进位传递加法运算关联。该乘法单元可以包括一个具有进位保存加法结构的累加器,用来执行该重复单元乘法运算;和一个加法进位传递加法器,用来执行该进位传递加法运算。本专利技术的另一个示例性实施例是一个蒙哥马利乘法器。该蒙哥马利乘法器可以包括一个模乘积选择产生器,用来从多个可选择的n位模数M选择一个模乘积,该给定的模数M是在该n位模数中从当前输入拓展块中形成的。该乘法器还可以包括一个部分乘积产生器,用来从多个可选择的n位被乘数A中选择一个被乘数作为部分乘积,给定的被乘数A是在n位被乘数中从当前位输入拓展块中形成的。该乘法器的累加器可以将选择的模乘积和部分乘积累加以产生一个乘积结果。在一个实例中,上述蒙哥马利乘法器可以是包括了一个存储器和主机的运算单元的一部分。本专利技术的另一个示例性实施例是一个蒙哥马利乘法器。该蒙哥马利乘法器也可以用于执行一个基于输入其中的控制信号的逻辑状态的蒙哥马利乘法运算和通常的乘法运算。附图说明本专利技术通过参考附图所详细描述的示例性实施例将变得更加的清楚,其中,相同的元件用相同的标号表示,并且该描述仅仅是示例性的因此不能来限制本专利技术的示例性实施例。图1示出了用于执行四倍精度运算的运算矩阵的结构示意图。图2示出了根据图1所示的四倍精度的单元乘法运算的顺序。图3是根据本专利技术的一个示例性实施例的加密系统的示意图。图4是根据本专利技术的一个示例性实施例的蒙哥马利乘法器数据路径的框图。图5示出了图3所示的蒙哥马利乘法器的存储器接口12的框图。图6示出了根据控制信号FROCE_RI[2:0]在存储器接口12中由多路复用器121选择的信号的真值表。图7示出了根据控制信号SEL_RDO[1:0]在存储器接口12中由多路复用器123选择的信号的真值表。图8A到8C示出了根据本专利技术的一个示例性实施例的蒙哥马利乘法器10的功能结构框图。图9示出了根据本专利技术的一个示例性实施例的用于存储被乘数值A的示例性寄存器105的详细电路结构。图10示出了根据本专利技术的一个示例性实施例的用于产生模乘积值MMI的模乘积产生器120的结构。图11示出了根据本专利技术的一个示例性实施例的由蒙哥马利记录器110所配置的编码的真值表。图12示出了根据本专利技术的一个示例性实施例的用于存储乘数值B的寄存器。图13示出了根据本专利技术的一个示例性实施例的部分乘积产生器130的示例性电路。图14示出了根据本专利技术的一个示例性实施例的由亭记录器140所管理的编码的真值表。图15示出了根据本专利技术的一个示例性实施例的累加器150。图16示出了在一个示例性的累加器中当移位信号SHIFT_ACC为逻辑“1”时,输入到压缩器中的信号的配置。图17示出了在一个示例性的累加器中当移位信号S本文档来自技高网
...

【技术保护点】
一种乘法器,包括:一模乘积产生器,用来选择n位模数-M,0,M,2M和前一行结果SI其中之一作为模乘积;一部分乘积产生器,用来选择-2A,-A,0,+A和+2A被乘数其中之一作为部分乘积;和一累加器,用来堆栈该所选择 的模乘积和部分乘积。

【技术特征摘要】
KR 2004-3-2 13855/041.一种乘法器,包括一模乘积产生器,用来选择n位模数-M,0,M,2M和前一行结果SI其中之一作为模乘积;一部分乘积产生器,用来选择-2A,-A,0,+A和+2A被乘数其中之一作为部分乘积;和一累加器,用来堆栈该所选择的模乘积和部分乘积。2.根据权利要求1的乘法器,其中M从在n位模数中的当前输入拓展位块中形成;A从在n位被乘数中的当前输入拓展位块中形成。3.根据权利要求2的乘法器,其中前一行结果从在累加器的前一行的乘法结果中相应当前被乘数和模数的输入拓展块的位数而形成。4.根据权利要求2的乘法器,其中模乘积产生器选择前一行结果作为在累加器的初始值校正周期中的模乘积。5.根据权利要求4的乘法器,其中部分乘积产生器在累加器的初始值校正周期中设定部分乘积为‘0’。6.根据权利要求4的乘法器,其中初始值校正周期表示使用n位被乘数和n位模数的当前输入拓展块位的单元乘法运算的一个第一周期。7.根据权利要求5的乘法器,其中初始值校正周期表示使用了n位被乘数和n位模数的当前输入拓展块位的单元乘法运算的一个第一周期。8.根据权利要求1的乘法器,其中-M模数通过对模数M反向而取得。9.根据权利要求1的乘法器,其中2M模数通过对模数M移位而取得。10.根据权利要求2的乘法器,进一步包括一个模寄存器用来存储n位模数(M)的当前输入位;一个被乘数寄存器用来存储n位被乘数(A)的当前输入位;和一个乘数寄存器用来存储n位乘数(B)的当前输入位。11.根据权利要求10的乘法器,其中模寄存器和被乘数寄存器每一个都作为c’+1位寄存器配置,和c’为一个正数,表示n位被乘数和n位模数至少之一的拓展块位长,c’小于或等于n。12.根据权利要求10的乘法器,其中模寄存器进一步包括多个每个大小为半个字的子寄存器,和一个1位符号寄存器。13.根据权利要求12的乘法器,进一步包括用于存储字长数据的存储器接口模块,其中模寄存器的多个子存储器包括偶数的子寄存器和奇数的子寄存器,偶数的子寄存器,配置为用来存储由存储器接口模块所提供的字长数据的低有效位半字,和奇数的子寄存器,配置为用来存储由存储器接口模块所提供的字长数据的高有效位半字。14.根据权利要求10的乘法器,其中被乘数寄存器进一步包括多个每个大小为半个字的子寄存器,和一个1位符号寄存器。15.根据权利要求14的乘法器,进一步包括用于存储字长数据的存储器接口模块,其中被乘数寄存器的多个子存储器包括偶数的子寄存器和奇数的子寄存器,偶数的子寄存器,配置为用来存储由存储器接口模块所提供的字长数据的低有效位半字,和奇数的子寄存器,配置为用来存储由存储器接口模块所提供的字长数据的高有效位半字。16.根据权利要求10的乘法器,进一步包括一个移位寄存器用来存储n位乘数的输入位作为字长(w),该字长等于或小于块长(c),w≤c≤n,并将数据移位两位。17.根据权利要求16的乘法器,其中部分乘积选择器从n位乘数的当前输入位的三个位(B0,B1,BR)中产生一个部分乘积选择信号,并选择n位被乘数的输入位A、2A、-A、和-2A其中之一作为部分乘积。18.根据权利要求17的乘法器,其中2A被乘数通过对A被乘数移位而得到。19.根据权利要求17的乘法器,其中-A被乘数通过对A被乘数反向而得到。20.根据权利要求17的乘法器,其中-2A被乘数通过对A被乘数反向并移位而得到。21.一种运算单元,包括一存储器;一主机,用来将被乘数A、乘数B和模数M存储在存储器中;和权利要求1的乘法器,用来根据所存储的被乘数、乘数和模数在主机的控制下执行蒙哥马利乘法运算,并将蒙哥马利乘法运算的运算结果存储在存储器中。22.根据权利要求21的运算单元,其中M从在n位模数中的当前输入拓展位块中形成;A从在n位被乘数中的当前输入拓展位块中形成;和前一行结果从在累加器的前一行乘法结果中相应被乘数和模数的当前输入拓展块的位中形成。23.根据权利要求21的运算单元,其中模乘积选择器读取前一行结果SI和来自存储器的n位模数的一部分,以选择SI,-M,0,M和2M其中之一作为模乘积,和部分乘积选择器读取n位被乘数的一部分以选择-2A、-A、0、+A和+2A其中之一作为部分乘积,该选择的模和部分乘积由累加器堆栈。24.根据权利要求21的运算单元,其中乘法器重复执行蒙哥马利乘法运算直到被乘数、乘数和模都从存储器中读取出。25.根据权利要求21的运算单元,其中被乘数、乘数和模数的每个均为n位,和乘法器通过单元乘法运算每个周期的c’位处理读出的被乘数、乘数和模数,其中c’表示被乘数、乘数和模数的位的拓展块的位长。26.根据权利要求25的运算单元,其中乘法器从存储器读取乘数作为w位块存储在大小为w位长度的寄存器中,其中w表示一个字长,依序按d位处理存储在w位寄存器中的乘数,其中d表示基数的数字长,和在处理完w位寄存器存储的w位后从存储器读取乘数的下一个w位。27.根据权利要求26的运算单元,其中乘法器还进一步包括一个控制器,用来产生一个强制部分乘积控制信号。28.根据权利要求27的运算单元,其中当强制部分乘积控制信号具有第一值时,部分乘积选择器从乘法器的当前输入位的三个位(B0、B1、BR)中产生部分乘积选择信号和部分乘积使能信号,并基于被乘数(A)的输入位选择A、2A、-A、-2A和0其中之一作为部分乘积。29.根据权利要求27的运算单元,其中当强制部分乘积控制信号具有第二值时,部分乘积选择器选择被乘数(A)作为部分乘积。30.根据权利要求27的运算单元,其中当强制部分乘积控制信号具有第三值时,部分乘积选择器根据被乘数(A)选择-A作为部分乘积。31.根据权利要求27的运算单元,其中强制部分乘积控制信号在累加器的初始值校正周期中具有一个第四值,并且当强制部分乘积控制信号具有该第四值时,部分乘积选择器选择0作为部分乘积。32.根据权利要求29的运算单元,其中当强制部分乘积控制信号具有一个第三值时,部分乘积选择器根据被乘数(A)选择-A作为部分乘积。33.根据权利要求32的运算单元,其中强制部分乘积控制信号在累加器的初始值校正周期中具有一个第四值。34.根据权利要求32的运算单元,其中当强制部分乘积控制信号具有该第四值时,部分乘积选择器选择0作为部分乘积。35.根据权利要求27的运算单元,其中乘法器响应于存储在累加器中的进位值、和值和低值、部分乘积、和用于累加器的反馈输入的移位控制信号产生重复部分乘积数据SPPI。36.根据权利要求35的运算单元,其中该控制器进一步产生一个强制模乘积控制信号。37.根据权利要求36的运算单元,其中当强制模乘积控制信号具有一个第一值时,模乘积选择器产生一个模乘积选择信号,以选择来自重复数据SPPI的-M,0,M和2M以及模(M)的第二较低位中的一个。38.根据权利要求36的运算单元,其中强制模乘积控制信号在累加器的初始值校正周期中具有一个第二值。39.根据权利要求38的运算单元,其中当强制模乘积控制信号具有该第二值时,模乘积选择器选择前一行的...

【专利技术属性】
技术研发人员:孙熙宽
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:KR[韩国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利