模数增值方法及装置.pdf

上传人:32 文档编号:644277 上传时间:2018-03-01 格式:PDF 页数:27 大小:1,014.31KB
返回 下载 相关 举报
摘要
申请专利号:

CN02806396.1

申请日:

2002.01.24

公开号:

CN1539103A

公开日:

2004.10.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F7/72

主分类号:

G06F7/72

申请人:

因芬尼昂技术股份公司;

发明人:

A·埃尔贝; H·塞德拉克; N·詹斯森; J·-P·塞弗特

地址:

德国慕尼黑

优先权:

2001.03.13 DE 10111987.9

专利代理机构:

中国专利代理(香港)有限公司

代理人:

程天正;王忠忠

PDF下载: PDF下载
内容摘要

于一模数增值方法中,使用计算一乘法位移值之一增值预测处理以及计算一缩减位移值之一缩减预测处理,一模数首先被转换(10)为大于该模数之一转换模数。该转换被执行使得该转换模数之一预定分数具有被一包含一第二预定值之至少一低阶位数所跟随而包含一第一预定值之一高阶位数。于使用增值预测处理及缩减预测处理之叠代消除(12)期间,转换模数被使用以便在叠代终了时获得该模数增值之一转换乘积。最后,该转换乘积使用该原始模数藉由模数缩减而被再次转换(14)。藉由依据本发明之转换,模数增值之叠代消除被简化,所以模数增值可被较快的执行。

权利要求书

1.一种被一乘数(M)乘之被乘数(C)之模数增值方法,其中一模数
(N)被使用,使用一增值预测(multiplication look-ahead)处理以及
一缩减预测(reduction look-ahead)处理,该方法包括步骤:
以一转换模数之一预定分数(2/3)(fraction)转换(10)该模数(N)
为大于该模数(N)之该转换模数(NT),该预定分数具有包含一第一预
定值之较高阶位数以及跟随其后之至少一包含一第二预定值之较低
阶位数;
模数增值的叠代(iterative)消除(12),使用该增值预测处理以
及该缩减预测处理并使用该转换模数(NT),以便在该叠代的终了获得
该模数增值之一转换的乘积;
使用模数(N)藉该转换乘积之模数缩减重新转换(14)该转换的乘
积。
2.如申请专利范围第1项之方法,
其中该叠代消除步骤(12)包括复数叠代步骤,具有于该等叠代步
骤中之一步骤决定之一乘法中间乘积以及一缩减位移值(SN),具有使
用含该被转换模数(NT)之第一预定值之该较高阶位数与含该第一预
定值之中间乘积(Z)之该最高阶位数之间之位数的数目(Si)的决定而
被计算之该缩减位移值(SN)。
3.如申请专利范围第1项之方法,
其中于该增值预测处理中决定一乘法位移值(Sz),且其中该缩减
预测处理之缩减位移值(SN)系藉由从该乘法位移值(Sz)减去该位数
之预定数目(Si)而被计算。
4.如前述申请专利范围之任一项之方法,其中该叠代消除步骤包
括以下步骤:
于一第一叠代步骤:
(a)执行一增值预测处理以获得一乘法位移值(Sz);
(b)以一目前中间乘积(Z)乘上被提高至该乘法位移值之幂次
(power)之基数(base)以获得一位移中间乘积(Z’);
(c)执行一缩减预测处理以便藉由决定一辅助位移值(Si)等于
含该被转换模数(NT)之该预定分数之第一预定值之该较高阶位
数与含该第一预定值之中间乘积之该最高级位数间的位数数目
而获得一缩减位移值(SN),并藉由使用该辅助位移值及该乘法位
移值(Sz)计算该缩减位移值;
(d)以被提高至该缩减位移值之幂次的基数乘上该转换模数(NT)
以获得一位移转换模数(NT);以及
(e)加总该中间乘积(Z’)与该被乘数(C)并减去该位移的转换模
数(NT)以获得一更新的中间乘积(Z)。
5.如前述申请专利范围之任一项之方法,其中该模数之预定分数
为2/3。
6.如申请专利范围第5项之方法,其中该被乘数(C),该乘数(M)
及该模数(N)为二进制数,具有基数2,且其中该转换模数(NT)之该预
定分数之较高阶位数具有一第一预定值1以及至少一具有一第二预定
值0之低阶位数。
7.如申请专利范围第6项之方法,
其中该转换模数之最大有效位系一符号位,而该模数之该预定分
数之一较高阶区段内含如下:
      01000 xx...xx
其中被标示为xx的位具有任意值。
8.如申请专利范围第7项之方法,
其中该转换模数(NT)之较高阶区段内含如下:
      01100...00。
9.如申请专利范围第1至8项之任一项,其中该转换模数之步骤
(10)包括模数之随机化,因此该转换模数是随机的。
10.一种处理器,用于以一乘数(M)乘以一被乘数(C)之模数增
值,其中一模数(N)被使用,使用一增值预测(multiplication
look-ahead)处理以及一缩减预测(reduction look-ahead)处理,包
括:
一装置,用来转换(10)该模数(N)为大于该模数(N)之该转换模数
(NT),该模数之预定分数具有包含一第一预定值之较高阶位数以及跟
随其后之至少一包含一第二预定值之较低阶位数;;
一装置,用以模数增值的叠代(iterative)消除(12),使用该增
值预测处理以及该缩减预测处理并使用该转换模数(NT),以便在该叠
代的终了获得该模数增值之一转换的乘积;
一装置,用以使用模数(N)藉该转换乘积之模数缩减重新转换(14)
该转换的乘积。
11.如申请专利范围第10项之处理器,
包括一主控CPU以及一协处理器,该转换(10)该模数用之装置被
设置于该主控CPU,而该用于模数增值之叠代消除的装置系被设置于
该协处理器中。
12.如申请专利范围第11项之处理器,
其中该主控CPU系一位数数目小于或等于64之短数算术逻辑单
元,而其中该协处理器系一位数数目大于或等于512之长数算术逻辑
单元。
13.如申请专利范围第10至12项之任一项之处理器,
其中该用于模数增值之叠代消除的装置包括用以转换该模数之
一缓存器以及该模数增值之中间乘积用之一缓存器。

说明书

模数增值方法及装置

本发明系关于密码算法及实施此种密码算法之装置,尤指一种使
用增值预测(multiplication look-ahead)处理及缩减预测
(reduction look-ahead)处理之模数(modular)增值之方法及装置。

密码翻译术系模数计算的必要应用。RSA系一种已知之密码翻译
术之必要的算法。RSA算法系基于一模数乘方(exponentiation),其
可被表示如下:

                 C=Md mod(N),

其中C代表一加密讯息,M系未加密讯息,d为秘密钥匙而N为模数。
模数N通常由二主要数字p及q之增值所产生。模数乘方藉由已知的
平方及乘数(square-and-multiply)算法而被展开为乘法运算。因
此,指数d被展开为2的幂次,因此模数乘方可被展开为数个模数乘
法运算。为了能有效率地在计算方面实施模数乘方,模数乘方因此被
展开为模数乘法运算,模数乘法运算之后可被展开为模数加法运算。

DE 3631992 C2号文件揭露一种密码处理,其中的模数乘法可使
用增值预测(look-ahead)处理及缩减预测处理之模数(modular)乘法
而被加速。DE 3631992 C2所描述之处理也关于一种ZDN方法,并藉
由图九做更详细的描述。在算法的启始步骤900之后,整体变量M,C
及N被重置。目的在于计算以下的模数乘法:

                 Z=M*C mod N.

M是乘数,其中C是被乘数。Z是此模数乘法之乘积,其中N是模数。

然后,有许多暂时不需要被处理的被重置的区域变量(local
variables)。之后使用二预测处理。在增值预测处理GEN_MULT_LA
中,一乘法位移(shift)值Sz以及增值预测参数a使用不同的预测规
则而被计算(910)。接着,Z缓存器目前的内容接受Sz次的左位移运
算(920)。

实际上与之平行处理的是执行一缩减预测处理GEN_Mod_LA(930)
用以计算一缩减位移值SN以及一缩减参数b。于步骤940,模数缓存
器目前的内容,亦即N,分别被向左或向右位移SN次,以便产生一已
位移的模数值N’。ZDN方法之中央三操作数(operand)操作发生于步
骤950。于此步骤中,步骤920之后的中间乘积Z’被加到已被乘上增
值预测参数a的被乘数C以及已被乘上缩减预测参数b之已位移的模
数N’。依据目前的情况而定,预测参数a及b的值可能为+1,0,或
-1。

一种典型的情况是增值预测参数a是+1,而缩减预测参数b是-
1,因此被乘数C被加到已位移的中间乘积Z’,而已位移之模数N’则
被减去。如果增值预测处理允许大于一预设数目之个别左移,亦即,
如果Sz大于Sz的最大可接受值,其也被称为k,则a的值将是0。
在a的值为0的情况下,而Z’,由于已位移模数之前的缩减,将依然
十分地小,尤其是小于已位移的模数N’,b为0的时候不产生缩减。

步骤910至950被执行直到所有被乘数的数字已被消除或处理,
亦即,直到m为0且直到一参数n等于0为止;此参数指示位移的模
数N’是否依然大于原始的模数N,或是是否尽管所有被乘数的数字已
被消除,仍然有许多从Z减去之模数减法的进一步缩减步骤需要被执
行。

最后,决定Z是否小于0。如果是,则需要达成模数N被加到Z
的最终缩减,所以在此获得模数乘法的正确乘积Z。在步骤960,藉
由ZDN方法之模数乘法于此终止。

乘法位移值Sz以及在步骤910藉由增值预测算法所计算的乘法
参数a系从乘法器拓朴(topology)以及DE3631992 C2所描述之预测
规则所产生。

缩减位移值Sn以及在DE3631992 C2所描述之缩减参数b系由比
较Z缓存器目前的内容与2/3乘以N的值所决定。此比较给予ZDN
方法的名称(ZDN=Zwei Drittel N(=3分之2N))。

如图九所示之ZDN方法转变模数乘法为三个操作数加法(图九的
方块950),其中增值预测处理以及同时发生的缩减预测处理被用以增
加计算时间效率。因此,与蒙哥马利缩减(Montgomery reduction)
相较之下可达成计算时间方面的益处。

在下文,于方块930中所执行的缩减预测处理将藉由图十而被详
细描述。首先,在方块1000,为区域变量,亦即缩减预测参数b及缩
减位移值SN,执行一个保留。在方块1010,缩减位移值SN被重置为
0。然后,数值ZDN在方块1020中被计算,其等于模数N的2/3。在
方块1020中所决定的这个值被储存于密码协处理器(crypto
coprocessor)中其本身之缓存器,称为ZDN缓存器。

之后在方块1030中决定变量n是否为1或是位移值SN是否为-
k。k是定义硬件所预设之最大位移值。于第一次运作中,方块1030
被回答”否”,因此在方块1040,参数n被减少且于方块1060中,缩
减位移值被减少1。在方块1080中,变量ZDN随后被重新配置,即其
值的一半,其可轻易地藉由包含于ZDN缓存器中的一个右位移缓存器
而达成。随后在方块1100中决定目前的中间乘积的绝对值是否大于
ZDN缓存器中所包含的值。

方块1100中的比较运算是缩减预测处理的中央运算。如果此问
题的答案为”是”,此叠代(iteration)停止,且缩减预测处理参数b
将被配置如方块1120所示。如果,与之相反,在方块1100将被回答
的问题的答案为”否”,此叠代往回跳以便检查方块1030中的目前述
值n及SN。如果在叠代的任何时间中方块被回答”是”,流程跳回缩减
参数被设定为0的方块1140。在方块950所示之三操作数运算,这具
有无模数被加或减的效用,其表示中间乘积Z很小以致于不需要模数
缩减。在方块1160,变量n随后被重新配置,且最后于方块1180此
缩减位移值SN被计算,其于图九的方块940中是需要的以便执行模
数的左位移而获得一位移的模数。

在方块1200,1220及1240,n及k的目前的值最后为了检查N缓
存器目前的配置而相对于下一步的变量MAX及cur_k被检查,为确定
没有发生超出缓存器的情况。此结束的细节与本发明无关,但于
DE3631992 C2中有详细描述。

图九及十所示之算法可以图七所示之硬件实施。对于方块950中
所执行的三个操作数的运算,需要一个算术单元700,图七中标示为
AU。之后被耦合至被乘数的缓存器C710,模数用的缓存器N720以
及模数乘法之目前中间乘积用之缓存器Z730。此外,图七揭露,三
操作数的运算,经由回馈箭头740,系被馈入Z缓存器730。此外,
图七表示这些缓存器的相互连接关系。在图十的方块1020中所计算
的ZDN的值必须被储存于其本身的ZDN缓存器750。此外,ZDN比较,
即图十所示之叠代循环(loop),藉由其本身之ZDN比较用之一控制逻
辑760而于其进度中被控制。

计算Z:=M×C mod N之ZDN算法的主要工作因此包含以下
二运算:

1.计算缓存器Z及N之位移值Sz及Si以便满足以下的程序:

2/3N×2-Si<|z|≤4/3N×2-Si以及

2.计算三操作数的总合:

Z:=2SZZ+Ac+b×2SZ-SiN

此增值预测参数a及缩减预测参数b可如已知般被假设为数值-
1,0及+1。

必须指出的是中间乘积Z,被乘数C以及模数N是长的数字,亦
即其位数或位的计数实际上可能大于512,且其也可能达到大于2048
位数。

然而,在方块1100中所执行的目前中间乘积Z与数值ZDN的比
较为了计算时间的缘故,并不会对Z的所有位进行,而只对Z的最大
有效位(most significant bits)进行;在此情况下,32位的数目被
移除以便足以获得比较结果的高度精确度。

对于此必较所需之2/3N之32个最大有效位,需要其本身的缓
存器,其于图七中以参考标号750指示并被指定为一ZDN缓存器。

此外,其本身也需要一个计算Z缓存器中之目前数值以及ZDN缓
存器中之目前数值的正确Si值以便满足以下方程式的硬件比较器:

2/3N×2-SiN<|z|≤4/3×2-SiN

因此,此方法的缺点在于一方面二个额外的ZDN缓存器及硬件比
较器都需要额外的芯片区域。另一方面,2/3N的计算及图十所示之
由叠代循环所执行的ZDN算法中的辅助的位移值Si的计算对整体算
法而言是时间的关键,并且可能实际上对算法整体的运算时间有决定
性。

本发明之一目的在于提供一种模数增值的概念,其一方面可以用
节省空间的方式被实施,且另一方面需要较少的计算时间。

此目的藉由申请专利范围第1项之模数增值方法或申请专利范围
第14项之模数增值装置而达成。

本发明系基于更新的中间乘积与ZDN数值,即2/3乘以模数N,
的比较的发现,该比较包括计算时间中的高消耗时间可于模数N首次
被转换(transform)为转换的模数NT的时候被利用,且整个模数增值
以转换的模数NT取代特定的模数而被执行。依据本发明,此模数被
转换,因此被转换模数之预定的分数(fraction),亦即,于一较佳实
施例中为2/3乘以转换的模数,变成一特定的数,此数被选择为使得
2/3NT与中间成积Z的比较变为微不足道的。依据本发明,此转换被
执行因此预定的转换模数的一部份具有第一预定值之较高阶数的位
数,其后接续具有一第二预定值之至少一低阶数的位数。在数字的表
示及二的补码规定中,最大有效位代表符号,模数至被转换模数的转
换被执行因此2/3NT的第二最大有效位系一二进制值,然而第三最
大有效位及次一小的有效位是0。

于此种情况下,此比较是微不足道的,因此其仅需计算转换模数
之预定部份的最大有效位数与模数代表之更新的中间乘积Z以便获得
位移值Si,随后从该值可轻易地藉由从平行发生的增值预测处理之乘
法位移值减去从ZDN比较所得之所谓的辅助值Si而决定缩减位移值
SN。

全部的ZDN运算如同习知情况般被消除。然而,取代模数N,转
换的模数NT被使用,因此最后达成模数增值之”转换的结果”,其系
于转换模数NT之余项集(reminder class)中。最终的重新转换,因
此模数增值以模数的方式被降低,使用原始的模数N,将随后产生使
用模数N以被乘数C乘以乘数M之模数乘法的适合乘积。

本发明之较佳实施例将于以下参照所附图式而被详细解释,其
中:

第一图系依据本发明之模数增值之概念的流程图;

第二图系分离模数N为第一部份位NT及第二部份位NR

第三图系分离模数N为具有长度L(NT)及剩余位之第一部份位NT

第四图系2/3乘以转换模数NT之位表示;

第五图系随机化转换模数之位表示;

第六图系依据本发明执行模数增值之算术逻辑单元图式;

第七图系已知ZDN方法之算术逻辑单元图式;

第8a-8c图系增值位移值Sz与辅助位移值Si及缩减位移值SN
之关系的表示;

第九图系已知ZDN方法之流程图;

第十图系已知缩减预测处理之流程图。

第一图表示依据本发明使用模数N以乘数M乘以被乘数C之模数
增值之方法的流程图。首先,模数N在步骤10依据以下方程序被转
换为转换模数NT

                     NT=T×N

在步骤12,模数乘法随后使用转换模数N以及在较佳实施例中预
定为2/3的转换模数的部份而被消除。相对于模数乘方,这表示以下
形式的RSA方程式被计算:

                  CT:=Md mod NT

因此,模数乘方C的积不在由模数N所定义的余项集中被计算,
而是在转换模数NT所定义的余项集中被计算,因此,CT,而非C,位
于上述方程式的左方。依据本发明概念之区别在于,由于转换模数NT
的使用,对应已之缩减预测处理之图十的叠代循环的辅助缩减位移值
Si被高度简化。

在最后的步骤14,NT至N的再转换再次被执行,藉由执行对应
以下方程序的运算:

                  C:=CT mod N

在此情况中,位于转换模数NT之余项集中的转换乘积CT藉由简
单的位移/减法缩减而回到模数N的余项集,因此C为模数乘方的乘

使用步骤10的转换子T转换模数N为转换的模数NT的转换被执
行,因此转换模数的预定部份,亦即于较佳实施例中为2/3乘以转换
模数,具有含较一第一预定值之较高阶位数,其后跟随至少一含一第
二预定值之低阶位数。具有2/3乘转换模数之中间乘积Z的比较可因
此被高度简化,亦即,Z的最高位,其具有预定值,寻找,且具有转
换模数之预定部份之第一预定值之较高阶位数与具有第一预定值之
中间乘积Z之最高位数的差异等于差异Si。

综言之,这可如以下所示。N在32位CPU而非在密码协处理中被
转换为转换模数NT,因此适用以下:

                    NT=T×N

其中T为自然数。

以下由NT所产生,如果所有的使用的数字为二进制数:

                NT=1100...0 XX...XX

对2/3乘以转换模数而言,则产生以下的结果:

                2/3=100...0 X’X’...X’X’

可以从NT及2/3NT看出二者皆具有例如16位的第一部份以及
分别为位X及X’的L(N)部份。对于所谓的ZDN比较而言,只有2/3
乘以转换模数NT的最高16个位被使用,因为其已产生优于大约2-10
的误差可能性。因此,对ZDN比较不需要使用2/3乘以转换模数的所
有512,1024或2048位,但其已足以执行与转换模数之最高16位的
比较。当然,也可能使用2/3乘以转换模数的较少位来做比较,但误
差可能性逐渐增加。然而,因为此误差是不重要的并且只产生在缩减
预测处理的次最优行为中,此方法实际上很容易执行。

2/3乘以转换模数NT因此具有含数值1的较高阶位数,其后跟随
具有一数值0的至少一低阶位数及因此一第二预定值。于之前所述之
实施例中低阶位数的数目为15。此处也有可能使用较高或较少的数,
依据中间乘积Z与2/3乘以转换模数NT之间所期望或处理的维度
(dimensional)差异。对于模数乘积之中间乘积Z,亦即图九方块950
中的三操作数的相加,产生以下的形式:

                |Z|=00...01YY...Y

辅助位移值Si依据以下方程序被计算:

    2/3 NT×2-Si<|z|≤4/3NT×2-Si

在2/3乘以转换模数NT的拓朴下,数值Si永远是具有1的2/3
乘以转换模数NT最大有效位与中间乘积之值的最大有效1之间的距
离。

依据本发明,位数或数值Si之间的差异可以在一般的方式中决
定。因此不再需要叠代。

除了以上,储存2/3乘以转换模数NT的ZDN缓存器也不再被需
要,因为,就定义而言,2/3乘以转换模数NT的至少较高的,例如
16位,总是具有相同的形式。也不再需要位比较器。具有一个”1”的
2/3乘以转换模数NT的最高阶位数与具有一个”1”的Z的最高阶位数
之间的有效差异可轻易地被建立,例如藉由转换模数用的XOR运算缓
存器以及中间乘积Z的缓存器。Si随后等于位数的有效差异,其中
XOR运算输出一第一”1”且其中XOR运算输出一第二个”1”。

由于不需要ZDN缓存器及ZDN比较器的事实,整体的算术逻辑单
元可被容纳于较少的芯片区域。

除了以上,密码控制部,即ZDN比较的控制逻辑(图七的760)较
不复杂,因为不需要执行图十的复杂叠代。最后,此比较是较快的,
因此辅助位移值Si的计算不再导致整个算法的时间问题。

在下文,依据本发明的转换将藉由图二至五被详细描述。

如同已被指出之部份,ZDN算法的实质部份包括满足以下的方程
式:

2/32-SiN<|z|≤4/3 2-SiN

Si系关于辅助位移值且为位移Z,在位数方面,至与N相同的位
置所需之位移值。在习知技术中,Si的计算需要|Z|与2/3N的比
较运算。

依据本发明,在任何以N的模数运算被执行之前以大于N的转换
模数NT,与2/3N的比较简单地藉由转换模数N至转换模数NT。所
有的计算模数NT于其后被执行。然而,因为计算的结果必须在余项
集N之中,依据本发明执行以N的最终缩减。

如图二所示,N被表示为长度为N位的整数。由于模数N总是为
正整数的事实,亦即在二的补码表示中MSB=0,符号位等于0且模
数N的最大有效位(MSB-1)总是为1。ZDN比较并不需要比较模数的所
有位与中间乘积,相反地,ZDN的比较使用m位的数字即已足够。模
数N的最大m位定义模数的第一部份NT,其中模数的剩余N-m位定义
模数的第二部份NR。在较佳实施例中,m等于16。较高或较低的m
值,当然也是可能的。

如于图三所示,此转换被执行以便转换模数NT比图二的原始模
数长16位。

ZDN比较使用NT的前16位是足够的,以本发明较佳实施例仅使
用12位以为比较之用,而4个最小有效位构成可能承载的缓冲,其
可来自更少的有效位。

在此情况下,产生错误结果的比较可能性小于2-12。如果此比较
产生错误的结果,其仅产生一次最佳位移值SN,然而,所产生的模数
N依然正确。

如果此模数如图二以二的补码表示,模数N可被展开如下:

                N=2n-m NT+NR

现在N使用转换子T被转换为NT,为全等(congruence)的理由,
T为适合的被选择整数。NT应具有图三所示之形式,亦即,NT的最
大有效位(MSB)必须为0,因为NT应为一正整数。如下文所解释,NT
的第二最大有效位及第三最大有效位必须为1,因此,转换模数NT
高部份的有效位的其它部份,此部份为图三的参考标号33,的数值应
该为”0”。仅于此例中,2/3乘以NT的乘积,2/3乘以NT的最高部份,
如图四所示,仅有一位为”1”,因此于此最高部份44的所有位皆
为”0”,因此已经描述之决定Si之一般的比较可被执行。

然而,使用转换子T的转换模数NT的计算将首先参照图三而讨
论。假设以下的定义:

             NT=TN

               =T(2n-m NT+NR)

以下维持转换子T:

T = | 2 p - 2 + 2 p - 3 N T | ]]>

使用程序17,以下产生转换模数NT

N T = | 2 p - 2 + 2 p - 3 N T | ( 2 n - m NT + NR ) ]]>

N T = ( 2 n + p - m - 2 + 2 n + p - m - 3 ) NT NT + ( 2 p - 2 + 2 p - 3 ) NR NT ]]>

如果,以p及m的典型值为例,亦即当p等于32位而m等于16
位时,NT有如下的结果:

N T = 2 n + 14 + 2 n + 13 + | 2 p - 2 + 2 p - 3 N T | ]]>

将指出的是NT的计算最好在主控CPU中执行而不是在密码协处
理器中执行。此主控CPU包含一短数演算逻辑单元,其已足以计算
NT。由于T必须为整数的事实且此计算必须于密码协处理器模数NT
而不是模数N中进行,以NT大于N,只有NT的第一个p-m等于16
位与一般的ZDN比较相关,以便计算辅助位移值Si。NT其它的n位
可以是任何数字,它们与辅助位移值Si的计算无关,亦即,对于与Z
的比较。然而,转换模数NT的所有位,当然,对于三操作数的加法
是需要的,其现在,取代位移模数的使用,使用位移转换模数而被执
行。

如图十七所示,转换子T系为m与p所选择之数值中之一16位整
数。计算T及计算NT的除法,因此必须分别仅对最大有效32位执行,
且因此可以快速轻易地在主控CPU上被程序化。

图四表示2/3乘以转换模数NT。当NT的MSB-1及MSB-2为”1”
时,如图三所示,且因为以下适用

      (11)2=(3)10以及(2/3×3)2=(2)10=(10)2

2/3乘以转换模数NT之一简单位形式,具有2/3乘以转换模数NT
长度为n-m+p。

由于2/3NT的特定形式,与|Z|的比较现在变得比较简单。
已知2/3NT的最高阶1为一模数运算初始的位置n+p-m-2。在较佳实
施例中之缓存器Z的指针(pointer)随后在Z的MSM开始,并寻找Z
的第一个”1”。如果Z的MSB为1,Z将是一个负数,且相反地,将寻
找Z的第一个0。

缓存器N及缓存器Z中的第一个1的位位置的差异将决定辅助位
移值Si。

由于模数运算的结果必须在余项集N之中,最后缩减模数N依据
本发明而被执行,其表示再次的转换必须被执行(图一的步骤14)。

N至NT的转换与已知的ZDN相较之下有以下的优点:

取代密码协处理器中的2/3N的计算,简单的N至NT的转换可于
主控CPU中被执行。

在芯片上不需要ZDN缓存器也不需要比较器逻辑,因此芯片尺寸
被降低且协处理器的复杂度被降低。

最后,N至NT的转换可与模数N的随机化结合,如图五所示。

当R为一长度s为位的随机数(random number)时,随机的转换
模数NT具有图五所示的形式。由于随机数N,此被随机化的转换模数,
当与未执行随机化的情况(图三)相较之下,较其长s位,亦即,藉由
R的数字的数目。

于一方程式的形式中,这可被表示如下:

NT=TN

  =T(2n-m NT+NR)

随后,此随机化的T如下:

T = | 2 p - 2 - 2 p - 3 + R N T | ]]>

因此,产生以下的随机转换模数:

N T = | 2 p - 2 - 2 p - 3 + R N T | ( 2 n - m NT + NR ) ]]>

N T = ( 2 n + p - m - 2 + 2 n + p - m - 3 + R 2 n - m ) NT NT + ( 2 p - 2 + 2 p - 3 + R ) NR NT ]]>

当选择p具有144位,m具有16位且s具有112位,包含随机化
的转换模数NT之数值结果如下:

N T = 2 n + 126 + 2 n + 125 + R 2 n - 16 + NR 2 144 + 2 143 + R N T ]]>

NT的位长度为:

L(N)=n+p-m=n+m+s=n+16+112=n+128位

图六表示依据本发明之一算术逻辑单元,其与图七相较之下,不
再需要一ZDN缓存器,而仅为一算术单元700,一C缓存器710,一N
缓存器720以及一Z缓存器730,以N缓存器720不再储存模数或一
位移的模数,而是转换的模数或一位移转换模数,或一随机转换模数
或一位移随机转换模数。

在下文,图8a至8c将被描述以说明使用辅助缩减位移值Si计
算缩减位移值Sz的计算。图8a表示中间乘积Z以及模数N。仅由范
例,此中间乘积具有4位,而模数具有9位。现在假设图二的方块214
计算一位移的中间乘积Z’,其可藉由乘上Sz而达成。假设乘数具有8
个0,其乘法位移值Sz为8。为获得模数缩减,模数N必须被位移到
位移的中间乘积多项式Z’的最高位等于位移的模数N的最高位的程
度。如由图8b可见,在此情况中需要一个为3的缩减位移值SN。

如从图8b所示,SN的决定实际上可仅于Sz已被计算后被执行,
亦即,图二之方块210与方块212的平行实施,如本发明之较佳实施,
是不可能的。为此理由辅助位移参数Si被导入。Si的益处在于此数
值可被计算而不需要已知之目前步骤的Sz。

从图8b中可见,在所有时间Sz等于Si与SN的总合。因此SN
总是与Si相关,因此适用下方程式:

                   SN=Sz-Si

因此,决定SN用之消耗时间的叠代处理可被展开为决定Si用之
一耗时的叠代步骤(循环416)以及一快速差额运算(图四的循环
422)。因此,二预测处理的平行实施是可能的,以单一串行组件,存
在于,在计算方块422(图四)之前Sz的实际数值已经被增值预测算法
所计算及传递(图二的箭号230)。

综上所述,与已知的ZDN相比较之下,本发明简化2/3N与Z值
之间的比较。对照目前所知的方法,其中2/3N的最高32位在密马协
处理器中被计算并被放置于一分离的32位缓存器,此ZDN缓存器,
经由构成密码协处理器之控制部之组成部份的比较器,以2/3N与具
有已经依据习知ZDN方法在硬件中被执行的Z值的比较,此方法的进
行如下。此模数N被主控CPU转换为大于N的转换NT,具有NT的第
一位为一常数,此常数被选择以便让2/3NT与Z值的比较是微小的。
为改进信息渗漏侵害方面的安全性,如SPA,DPA,时间侵害,...,N
至NT的转换可与模数的随机化结合,如前所述。

因此在密码协处理器中的2/3N的计算可以被免除。ZDN缓存器及
比较逻辑也可被省略,因此提供较小的芯片区域并藉由省略比较器逻
辑而降低密码协处理器中之控制部的复杂度。

参考标号表

10    模数转换

12    模数增值之叠代消除

14    转换乘积之再转换

33    转换模数之上区段

44    2/3乘以转换模数之上区段

700   算术单元

710   C缓存器

720   N缓存器

730   Z缓存器

740   叠代循环

750   ZDN缓存器

760   ZDN比较的控制逻辑

900   ZDN方法的开始

910   ZDN算法的增值预测处理

920   Z的向左或向右位移

930   ZDN算法的缩减预测处理

940   模数的向左位移

950   ZDN算法的三个操作数运算

960   ZDN算法的终止

1000  整体变量

1010  缩减位移值的重置

1020  ZDN的计算

1030  n及SN的检查

1040  n的缩减

1060  缩减位移值的缩减

1080  ZDN/2的计算

1100  中间乘积与ZDN的比较

1120  决定缩减预测参数

1140  决定缩减预测参数

1160  n的计算

1180  缩减预测参数的计算

1200  n的检查

1220  cur_k的计算

1240  cur_k的计算

模数增值方法及装置.pdf_第1页
第1页 / 共27页
模数增值方法及装置.pdf_第2页
第2页 / 共27页
模数增值方法及装置.pdf_第3页
第3页 / 共27页
点击查看更多>>
资源描述

《模数增值方法及装置.pdf》由会员分享,可在线阅读,更多相关《模数增值方法及装置.pdf(27页珍藏版)》请在专利查询网上搜索。

于一模数增值方法中,使用计算一乘法位移值之一增值预测处理以及计算一缩减位移值之一缩减预测处理,一模数首先被转换(10)为大于该模数之一转换模数。该转换被执行使得该转换模数之一预定分数具有被一包含一第二预定值之至少一低阶位数所跟随而包含一第一预定值之一高阶位数。于使用增值预测处理及缩减预测处理之叠代消除(12)期间,转换模数被使用以便在叠代终了时获得该模数增值之一转换乘积。最后,该转换乘积使用该原始。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1