【技术实现步骤摘要】
本专利技术总地涉及密码系统,更具体地涉及用于此类密码系统的蒙哥马利模乘法器(Montgomery modular multiplier)。
技术介绍
在通过计算机网络的方式交换各类数据的信息通信环境中,有线和/或移动(无线)通信领域、加密系统(密码系统)日益作为确保数据安全性的必要工具。特别是,对于电子会计或识别系统来说通过提供加密和/或解密技术而确保数据的安全性是必须的。加密技术可以笼统地分为密钥(对称密钥,私人密钥,或通用密钥)和公钥(非对称密钥)的形式。由美国商务部所拟订的数据加密系统(DES)的加密算法是一种典型的密码系统密钥加密类型。其它的典型加密系统包括出自前苏联的政府标准(GOST),以及瑞士的内部数据加码算法(IDEA)。对于一个密钥加密系统来说,由于各个交换信息需要共享相同的密钥,因此具有为了安全性而具有一个附加的信道的优点。因而这样的密钥类型的加密系统为了让用户能与其他用户交流信息通常需要由一个用户保有并管理多个密钥。公钥类型的加密系统使用彼此不同的加密和解密密钥,这就使得即便通过知道两个密钥之一的人也很难检测到相应的密钥。在公共密钥系统中,信息通过一个密钥和/或一个公钥加扰或解扰(即,信息可以通过使用一个私人密钥来加扰并且使用一个公共密钥来解扰,反之亦然)。虽然公共密钥系统由于无需为共享密钥具备一个附加的信道,并与密钥系统相比可以提供改善的数据安全性,因此在密钥管理方面很方便,但公共密钥系统因为要产生两个不同的密钥并需要复杂的数学运算来使用两个不同密钥恢复信息,因此仅具有有限的容量来处理高速数据。改进的加密系统使用了蒙哥马利算法, ...
【技术保护点】
一种乘法器,包括:一模乘积产生器,用来选择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的运算单元,其中当强制模乘积控制信号具有该第二值时,模乘积选择器选择前一行的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。