随机化模数约简方法以及用于该方法的硬件技术

技术编号:3507972 阅读:150 留言:0更新日期:2012-04-11 18:40
一种密码安全的计算机硬件实现的模数约简方法系统性地低估(q)并随机化用于余数(R′)计算的近似商(q′)。将随机化误差(E)注入近似商限于少数几位,例如少于半个字。计算的余数(R′)与剩余数(R)的较小随机倍数同余,其中剩余数(R)可通过减去最后一组模数(M)而获取。除了计算单元(10)和操作序列发生器(16)之外,计算硬件还包括用于产生随机误差的随机或伪随机数发生器(20)。于是,模数约简方法就能抵抗诸如定时和幂分析攻击的硬件密码分析攻击。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及算法处理和计算,特别是用于密码术应用。本专利技术尤其涉及包括模数约简的剩余算术,特别是从巴雷特约简方法(Barrent reduction method)导出的计算。
技术介绍
许多加密算法使用大整数乘法(或取幂)以及将乘积约简成与密钥相关的特定模数同余的余数值。此种计算易受幂分析和定时的攻击。因此重要的是需要保护这一计算的安全以防止关于密钥的信息被获取。同时,使这些计算快速和精确也是重要的。通常,大整数乘法和约简是加密算法中计算量最大的部分。业已开发了几个不同的计算技术用于进行有效的模数约简,包括周知的Quisquater方法、Barrett方法和Montgomery方法,以及包括预先计算和表格查询的修改。在现有技术中对这些周知的技术进行描述和比较。例如可以参见(1)A.Bosselaers等人,″Comparison of three modular reduction functions″,Advances in Cryptology/Crypto′93,LNCS 773,Springer-Verlag,1994,第175-186页。(2)Jean Francis Dhem,″Design of anefficient public-key cryptographic library for RISC-based smart cards″,博士论文,Université catholique de Louvain,Louvain-la-Neuve,Belgium,1998年5月。(3)C.H.Lim等人,″Fast Modular Reduction With Precomputation″,1999年预印(从CiteSeerScientific Literature Digital Library,citeseer.nj.nec.com/109504.html处可得)。(4)Hollmann等人,″Method and Device for Executing a Decrypting Mechanism throughCalculating a Standardized Modular Exponentiation for Thwarting Timing Attacks″,2002年4月2号的美国专利No.6,366,673B1(基于1998年9月15日提交的申请)。本专利技术的一个目标在于提供一种改进的巴雷特模数约简方法以及用于该方法的计算装置,它们能够更为安全地抵抗密码分析攻击并同时提供快速精确的结果。本专利技术的另一个目标在于提供加速商估计的前述改进方法和装置。
技术实现思路
这些目标可通过计算机执行的模数约简方法实现,在所述方法中用于计算的商被系统地用一个少数几位(例如少于半个字)的随机误差低估。所得的余数总是与相应于特定模数的中间乘积同余,但是要大于剩余值并与用于每次执行的随机方式不同。因为商仅需是近似的,所以对它的估计更快。因为有意随机化所述估计误差,所以本方法能够更为安全地抵抗密码分析。而且中间结果在数学上是等价的(与真实结果同余),并且最终结果(在最后的一组减去模数后)完全相同,因而达到了加密操作的可逆性所需的精确性。用于执行本专利技术所述方法步骤的硬件包括将随机误差注入商估计的随机数发生器。带有存储器访问及携带注入(carry injection)的计算单元执行固件的在操作序列发生器的控制下操作以完成大整数乘法和模数约简的一字宽的乘-累加步骤。附图说明图1是根据本专利技术并用于执行本专利技术的模数约简方法的计算硬件(包括随机数发生器单元)的示意性平面图。图2是示出了本专利技术模数约简方法的一般步骤的流程图。具体实施例方式参考图1,计算硬件包括计算单元10,该单元能够在从存储器随机(RAM)12中检索出的操作数上执行一字宽度的乘法和乘-累加步骤并携带来自寄存器14的项。操作序列发生器16包括根据用于操作设置的固件或软件指令来控制计算单元10的逻辑电路以执行大整数乘法(或取幂)和模数约简。存储在寄存器18并可由操作序列发生器16访问的操作参数包括使操作序列发生器能定位RAM 12内一操作数的指针,以及关于操作数长度(字数)的信息、携带注入控制信息和中间结果的目的地地址。至此,该装置大致类似于适于大整数算术操作的其他可用硬件。除了如下将详述的约简步骤的细节,固件或软件指令也类似于在一字宽度的字段内执行有效大整数乘法或取幂的现有程序。不同于现有的该类硬件,图1中的硬件还包括随机数发生器20,例如可以是已知的伪随机数发生器电路。该随机数发生器执行一计算并输出在本专利技术的方法中使用的随机数。在此,操作序列发生器16根据实行本专利技术方法的程序指令来控制计算单元10以使其访问随机数发生器20,从而如下所述将随机误差量注入商估计。参见图2,本专利技术的方法是提供更快商估计和对密码分析攻击有更高抵抗能力的改进的巴雷特模数约简技术。本方法可由图1中的硬件执行。模数约简通常求解 其中R是找到的剩余值,它是X对模数M的同余,并且符号 表示地板函数(≤a的最大整数),所以 对应于一整数除法。要被约简的数字X通常是两个大整数(通常为素数)的乘积,即X=A.B,其中整数A和B的一个或两者是多字字长(例如A和B都可以是1024位,即32个32位的字长)。在任何情况下,在任何模数约简方法中的基本问题都是以有效的方法估计关于大(多字)数X和M的商 在本专利技术中,额外的问题是需要以在加密应用中安全防止来自幂分析攻击的方式来执行约简。巴雷特方法包括预计算并存储模数倒数的按比例的估计U,并且使用乘法和字移位(除以b)来代替长除法用以估计该商。通过对参数的适当选择,商估计中的误差最多为2。本专利技术对巴雷特方法的改进仅是通过用精度较低但更快的估计来近似商,以及通过在计算余数之前有意将随机误差注入商而实现的。所得的余数将略微大于剩余值,但与其同余。假设w表示字长(例如,用于32位处理器w=32),b=2w表示基数,n是模数M的字的数,其中M=Σi=0n-1mibi,]]>0<mn-1<b,0≤mi<b,其中i=0至n-2,bn-1≤M≤bn,并且X是字数为2n+1的将要约简的数,其中X=Σi=02nxibi,]]>0≤xX<b,其中i=0至2n,0≤X<b2n+1(或者在某些情况下M≤X<b2n+1)我们从预计算和存储(图2中的步骤30)表示按比例的模数M倒数的常数U开始 随后在对该特定模数M的所有约简操作中使用这一存储值。U对于每个不是b的幂的模数M来说,其字数总为n+1。为了对X执行模数约简,则使用存储值U估计商q(步骤32) 对于该计算这仅要求乘法和字长移位。虽然可能发生商估计完全正确的情况,但地板函数旨在确保商q始终被低估(从未被高估)。如果要求低估,则还可包括额外减一。常数U和商估计两者与Barrett方法的不同之处在于对每一个字额外的移位(Barrett方法使用 和 被估计的商q≥0将是n+1字长的最大值。在此阶段,最好将随机误差E注入算出的商(步骤36)以获取随机化的商,q′=q-E。在此情况下,我们必须使得M·2w/2≤X≤b2n+1以避免带有负数。可以通过任何已知的随本文档来自技高网
...

【技术保护点】
一种密码安全的计算机硬件实现的模数约简方法,包括:预计算表示模数M按比例位数的倒数的常数U并将其存储在存储器中;为要按模数M约简的数X估计一个近似的商q,其中所述估计是通过在计算单元内乘以所述常数U并通过X的移位以及通过所述乘积的移位来对X执行的;在随机数发生器内生成随机误差值E,并将所述误差值应用于所述近似的商以获取随机化的商q′=q-E;以及在所述计算单元内计算余数R′=X-q′M,所述余数大于所述模数M但对X模M同余。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:V杜帕丘斯M道古特
申请(专利权)人:爱特梅尔卢梭公司
类型:发明
国别省市:FR[法国]

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

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