支持正整数的正则重新编码的方法、装置及计算机程序的制作方法

文档序号:6580554阅读:126来源:国知局
专利名称:支持正整数的正则重新编码的方法、装置及计算机程序的制作方法
技术领域
本发明一般地涉及数位重新编码,并且更具体地,涉及无符号数 的重新编码。
背景技术
本节意在向读者介绍可能与以下描述和/或要求保护的本发明的 各方面相关的领域的各个方面。相信这种讨论有助于向读者提供背景 信息,以便于更好地理解本发明的各个方面。相应地,应注意,应根 据这一点来阅读这些陈述,而不应将其接纳为现有技术。
己经表明,密码求幂算法易受旁道攻击(side channel attacks)的 攻击。在"Differential Power Analysis" (M.J. Wiener, editor, Advances in Cryptology - CRYPTO '99, volume 1666 of Lecture Notes in Computer Science, pages 388-397, Springer Verlag 1999)中,Paul Kocher、 Joshua Jaffe以及Benjamin Jim描述了使用对功率消耗的观察来迸行的攻击, 而 Karine Gandolfi 、 Christophe Mourtel 禾口 Francis Olivier 在 "Electromagnetic Analysis: Concrete Results" (Q.K. K05, D. Naccache and C. Paar, editors, Cryptographic Hardware and Embedded Systems -CHES 2001, volume 2162 of Lecture Notes in Computer Science, pages 251-261, Springer Verlag 2001 )中以及Jean-Jacques Quisquater禾口 David Samyde 在 "Electromagnetic Analysis (EMA): Measures and Counter-Measures for Smart Cards" (I. Attali and T.P. Jensen, editors, Smart Card Programming and Security (E-Smart 2001), volume 2140 of Lecture Notes in Computer Science, pages 200-210, Springer Verlag 2001)中已经描述了使用对电磁发射的观察来进行的攻击。
被称作简单功率分析(SPA)以及简单电磁分析(SEMA)的这些 攻击可以揭示求幂算法中简单实现的指数,这是由于所需运算依赖于指数的逐比特表示。
为了减少计算求冪所要求的运算数量,已经开发了重新编码算法。
最公知的示例是由Ian Blake、Gadiel Seroussi和Nigel Smart在"Elliptic Curves in Cryptography" (volume 265 of London Mathematical Society Lecture Note Series. Cambridge University Press. 1999)中描述的非相邻 形式(Non-Adjacent Form) (NAF)重新编码。NAF重新编码使用{-1, 0, 1}中的值来对指数的比特进行重新编码。这减少了后续求幂算法中 要求的乘法的数量,可以将其推广至w进制重新编码,如Donald E. Knuth在The Art of Computer Programming (volume 2 / Seminumerical Algorithms. Addison-Wesley, 2nd edition, 1981)中所描述的。然而,设 计这些重新编码算法是为了提高求幂算法的效率,而非增强对旁道攻 击的抵御。
己经提出了几种其它重新编码算法
-Bodo M6ller. "Parallelizable Elliptic Curve Point Multiplication Method with Resistance against Side-Channel Attacks". In A.H. Chan and V. Gligor, editors, Information Security (ISC 2002), volume 2433 of Lecture Notes in Computer Science, pages 402-413, Springer Verlag 2002.
-Bodo M6ller. "Fractional Windows Revisited: Improved Signed-Digit Representation for Efficient Exponentiation". In C. Park and S. Chee, editors, Information Security and Cryptology - ICISC 2004, volume 3506 of Lecture Notes in Computer Science, pages 137-153, Springer Verlag 2004.
-Katsuyuki Okeya and Tsuyoshi Takagi. "A More Flexible Countermeasure against Side-Channel Attacks Using Window Method". In C.D. Walter, (^.K. Ko and C. Paar, editors, Cryptographic Hardware and Embedded Systems — CHES 2003, volume 2779 of Lecture Notes in Computer Science, pages 397-410, Springer Verlag 2003.
-Katsuyuki Okeya and Tsuyoshi Takagi. "The Wi她-w NAF method Provides Small Memory and Fast Elliptic Scalar Multiplications Secureagainst Side-Channel Attacks". In M. Joye, editor, Topics in Cryptology -CT-RSA 2003, volume 2612 of Lecture Notes in Computer Science, pages 328-342, Springer Verlag 2003.
然而,如Yasuyuki Sakai禾卩Kouichi Sakurai在"A New Attack with Side Channel Leakage During Exponent Recoding Computations" (M. Joye and J.-J. Quisquater, editors, Cryptographic Hardware and Embedded Systems - CHES 2004, voume 3156 of Lecture Notes in Computer Science, pages 298-311, Springer Verlag 2004)中所指出的,为 了实现正则求幂算法,所使用的任何重新编码算法也必须是正则的。 在正则重新编码算法中,在算法的计算期间,在主循环中不存在测试。
尽管可以争论认为在生成指数时可以执行重新编码,但在例如指 数与随机值相结合的情况下这是不可能的,这是由于必须在求幂之前 执行重新编码。与随机值相结合是为了阻止特定旁道分析,如 Jean-S化astien Coron在"Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems" (G.K. K09 and C. Paar, editors, Cryptographic Hardware and Embedded Systems — CHES '99, volume 1717 of Lecture Notes in Computer Science, pages 292-302, Springer Verlag 1999)中以及Paul Kocher在"Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems" (N. Koblitz, editor, Advances in Cryptology — CRYPTO '96, volume 1109 of Lecture Notes in Computer Science, pages 104-113, Springer Verlag 1996)中所述。
为了使求幂正则化,己经提出了其它重新编码算法。BodoMmier 在"Securing Elliptic Curve Point Multiplication against Side-Channel Attacks" (G. Davida and Y. Frankel, editors, Information Security (ISC 2001), volume 2200 of Lecture Notes in Computer Science, pages 324-334, Springer Verlag 2001)中描述了一种针对w进制求幂的重新编 码算法。用-m来代替每个等于零的数位,并且将次最高有效数位加1。 这得到了用集合{1,...,附-1} U (-m)中包括的数来重新编码的指数。与w 进制求幂算法相结合,这表明应当对;T进行预计算。尽管该计算在 椭圆曲线上是"容易"的,但是在有限环的乘法群的情况中则不是这样。
Camille Vuillaume禾口 Katsuyuki Okeya在"Flexible Exponentiation With Resistance to Side Channel Attacks" (J. Zhou, M. Yung and F. Bao, editors, Applied Cryptography and Network Security — ACNS 2006, volume 3989 of Lecture Notes in Computer Science, pages 268-283, Springer Verlag 2006)中描述了 M6iler的算法的无符号版本。在集合 {1,...,柳}中对数位进行重新编码用附来代替每一个零数位并且将下 一数位减l。
M6ller算法的有符号和无符号版本的缺点是不能以正则方式来容 易地实现它们。
因此可以认识到,需要针对正则求幂的重新编码算法,其中以正 则方式对指数进行简单的重新编码。本发明提供了针对该方案的多种 变型。

发明内容
在第一方面,本发明提供了一种用于对第一正整数"进行重新编 码的正则方法,所述第一正整数n是密码求幂算法的指数。处理器选择 小于"的第二整数l定义第三整数",="-&以及对于第四整数附,将 第三整数"'的m进制表示逐数位地与s的m进制表示相加,以生成n的重
新编码的表示。
在第一优选实施例中,w=2、
在第二优选实施例中,^gv ',其中/代表"的m进制长度。有利
地,对于某个0〈a〈m, A=a;其中,优选地,a-l或者a-m—1。
在第二方面,本发明提供了一种用于对第一正整数n进行正则重 新编码的设备。所述设备包括处理器,所述处理器适于选择小于" 的第二整数s,定义第三整数",="-s,以及对于第四整数m,将第三整 数"'的w进制表示逐数位地与^的w进制表示相加,以生成n的重新编码 的表示。
在第三方面,本发明了提供一种存储指令的计算机程序产品,当由处理器执行时,所述指令执行本发明的第一方面的方法。


现在将通过非限制性示例并参考附图来描述本发明的优选特征, 附图中
图1示出了根据本发明的优选实施例的一种用于进行数位重新编 码的设备。
图中所示的方框是功能性实体,不必须与物理上分离的实体相对 应。可以将这些功能实体实现为硬件、软件或者软件和硬件的组合; 此外,可以在一个或者更多集成电路中实现这些功能实体。
具体实施例方式
图l示出了用于对数位,尤其是求幂算法中要使用的指数的数位
进行重新编码的设备100。设备100包括至少一个适于执行计算机程序 的处理器110 (下文中称作"处理器"),该计算机程序执行下文描述的
任意实施例的重新编码算法的计算。应当注意,还可以用硬件或者软
件和硬件的组合来实现处理器110。设备100还包括适于存储数据(例 如来自处理器110的中间计算结果)的存储器120。设备100还包括用于 与其他设备(图中未示出)进行交互的至少一个接口130 (下文中称作 "接口")。图1还示出了存储计算机程序的计算机程序产品140,例如 CD-ROM,当处理器110执行该计算机程序时,该计算机程序执行根据 本发明的两个实施例中任一个的重新编码算法。
在求幂中,计算z-x",其中w为整数并且x是群(以乘法形式来写
的群)中的元素。令 = §^^代表以附为基数的"的展开式(典型地
,'=0
w=^),其中/是"的m进制长度。取正整数^<"并定义"如果 "'=^ '和^||>,附'分别代表",禾"的附展开式,贝ljx"^"屮成立,其中
,=0 '=0
"'+5 = 7'—、m',其中继而A产^r^。如果我们定义以m为基数的s的最高有效数位为零,则以附为基数 的V的最高有效数位(即&,)将保持大于或者等于零。如果不是这样,
则该重新编码将不是无符号的并且将因此不适用于计算逆(inversion) 代价较高的群。
第一优选实施例
令a是满足(KoKm的整数。
选择^y"2c^'=a^^。这可以被视为是将^的所有数位设置为 相同的值,即a。由于 然后使用
下述算法用于重新编码。
输入/7》1, w=2、 / ("的m进制长度)。
输出,,.."A丄,其中A;, e{a"..,a + (w_l)}, 0 兰/ - 2
算法
」以及 w <~ w一s
w — l
for / = 0 to / _ 2 do
d — w mod w
A:; <~ d + a end
A:/.I — w
a的第一优选选择是l,这是由于它针对重新编码的数位产生较小 的值。a的第二优选选择是m-l,这是由于它给出^m"-l (即设置为l 的A: (/-1)的延续)。
现在,两个示例将说明第一优选实施例。对于这两个示例,参数 采用下列值
m = 4
w = 73 = (1,0,2,1)4= 1.40+2.V+0.42+l'43 /=4在第一示例中01=1;在第二示例中01=附-1=3。
第一实施例的第一示例(a=l)
1 4J—1 63
3 3
w := w — s = 73 — 21 =52 循环forz'=0to/-2,即forz、0to2 / = 0:
d := w mod附=52 mod 4 = 0 := L〃H = L52/4j = 13
1:
<i := " mod m = 13 mod 4 = 1 L"H = —J =3
A:, := d + a = 1 + 1 = 2
<i := w mod m = 3 mod 4 = 3 ":=L— = L3/4」=o
^ := w = 0
* = (^,^) = (0,4,2,1) A7 = Z:::/(,m' =1-40+2.41+4.42 +0.43 =1-1 + 2.4 + 4-16 = 1 + 8 + 64 = 73
如所预期的,重新编码的"等于原始的w。 第一实施例的第二示例(a=m-l=3)
m —1
w := w — s = 73 — 63 = 10 循环for / = 0 to / — 2,即for z' = 0 to 2 / = 0:
:= w mod附=10 mod 4 = 2
一1 = 43 —1 = 63 := L"H = Lio/4j=2
d := w mod w = 2 mod 4 = 2 := L"H = [2/4」=0
:=(i+a = 2 + 3 = 5 d := w mod w = 0 mod 4 = 0
:= L由」=L。/4」=0
&:=t/+a = 0 + 3 = 3 /t3 := w = 0
A:U2,A:^) = (0,3,5,5) A = Z:::/f,77 ' =5.40 +5.41 + 3.42 +0.43 =5-1 + 5.4 + 3-16 = 5 + 20 + 48 = 73
如所预期的,重新编码的w再一次等于原始的w。
应当注意,根据第一实施例的算法易于实现,但是要求预先知道
"的w进制长度(即/)。由于这可能是一个缺点,因此第二优选实施例
克服了这个问题,同时其实现稍微复杂一些。
第二优选实施例
如果更细致地查看减法步骤," - s,可以建立下列等式
-A
.1,0},其中将"借位
(borrow)"初始化为0,即^ = 0 。这是在学校中学到的经典减法算法。 由于c/,,s,e(0m-1),这给出/c, =cy',+s,.,如果d,+^々s"则 -cf',+s,等 于d,+A,否则等于^+7,+m。
因此,对于A邻的任意选择,当d,^0力时,得到&的非零值。如
第一优选实施例中一样,对于某个(KoKm, s = I^am'。此外,为了 仅使用无符号算术,/,U1e{0,1}:<formula>formula see original document page 11</formula>输人w 2 1, m =0 < oc< m
输出"=(/cM,.../(。)m其中A:, +—1)}, 0^"/-2
算法
/ — 0; 1 while w 2 (m + a) do
<i — w mod m
d, — +m — a—1
& — (cf mod m) + a
L由」 / — / + 1 end
A:, — " + — 1
如第一优选实施例中一样,a的优选选择是l和w-l。 现在,两个示例将说明第二优选实施例。对于这两个示例,参数 釆用下列值 A:=2 m = 4
"=73 = (1,0,2,1)4 = 1 ■ 40 + 2 . 41 + 0 ' 42 + 1 43
在第一示例中01=1;在第二示例中01=附-1=3。
第二实施例的第一示例(a=l)
/:=0
,=1
"=73 2 O + a) = 4 + 1 = 5,所以执行while循环 d := w mod m = 73 mod 4=1 d,二d+Z + — a—1 = 1 + 1+ 4—1 — 1=4 & := (c , mod w) + a = (4 mod 4) + 1 二 0 + 1 = 1
:= Ld'/m」=L4/4」=i
ii圹=L由」=L73"」=18 / := / + 1 = 0 + 1 =
"=18^(w + a) = 4+ 1 = 5,所以再一次执行while循环 := /7 mod m = 18 mod 4 = 2 c/,=d + ^ + w —a—1=2+1+4 —1 = 5
Ar7 := (af, mod m) + a = (5 mod 4) + 1 = 1 + 1 = 2 := Ld7m」=L5/4」=i
纩=L"H = [18/4」=4
/ := z' + 1 = 1 + 1 = 2 "=4<(m + a) = 4 + l=5,所以不再一次执行while循环
/ —1=4+1 — 1= 4 A = (^,/U/,/t0) = (0,4,2,1)
n = Z;》,m' =1.40+2-41+ 4.42 +0.43 =1-1 + 2.4 + 4-16 = 1 + 8 +64 = 73
如所预期的,重新编码的n等于原始的n。 第二实施例的第二示例(a=m-l=3)
w = 73 > (m + a) = 4 + 3 = 7,所以执4亍while循环 d := w mod m = 73 mod 4=1 d,=d+/ + w— a—1 = 1 + 1+ 4 — 3 — 1= 2
& := (<i, mod w) + a = (2 mod 4)+ 3 = 2 + 3 = 5 y :=—」=L2/4」=0
—」=L73/4」=18
/ := / + 1 = 0 + 1 = 1
w = 18 2 (w + a) = 4 + 1 = 5,所以再一次执行while循环
d := w mod w = 18 mod 4 = 2
d,=d + " +w-a-1 =2 + 0 + 4 -3-1=2
:= (d, mod m) + a = (2 mod 4)+ 3= 2 + 3 = 5 := [d'/m」=L2/4」=0
z. :=0
,=1
12—」=L18/4」=4
/ := / + 1 = 1 + 1 = 2 "=4<(> + a) = 4 + l=5,所以不再一次执行while循环 " —1=4 + 0—1=3 A: 2,&,&) = (0,3,5,5)
n = yM 二5.40+5(+3.42 +0.43 -51 + 5.4 + 3.16二5 + 20 + 48-73
如所预期的,重新编码的"等于原始的"。
可以认识到,对相同的输入,这两个实施例如所预期的那样给出 了相同的重新编码的数位。例如,对于这两个实施例,第一示例给出 (4,2,1),同时对于这两个实施例,第二示例给出(3,5,5)。
还可以认识到,这两个实施例是正则的,这是由于在主循环内不 存在测试;在第一实施例中,在for循环内不存在测试,并且在第二实 施例中,在while循环中不存在测试。
因此可以认识到,本发明实现了正整数的正则重新编码。
可以独立地或以任何合适组合来提供说明书和(在合适时)权利 要求和附图中公开的每个特征。描述为以硬件实现的特征也可以以软 件实现,反之亦然。在适用时,连接可以被实现为无线连接或有线(不 必须是直接或专用的)连接。
权利要求中出现的参考标号仅作为示意,不应对权利要求的范围 具有限制作用。
权利要求
1、一种用于对第一正整数n进行重新编码的正则方法,所述第一正整数n是密码求幂算法的指数,所述方法包括在处理器(110)中的以下步骤选择小于n的第二整数s;定义第三整数n’=n-s;对于第四整数m,将第三整数n’的m进制表示逐数位地与s的m进制表示相加,以生成n的重新编码的表示。
2、 根据权利要求l所述的方法,其中m二2、
3、 根据权利要求1或2所述的方法,其中^g^y,其中/代表n的 m进制长度。
4、 根据权利要求3所述的方法,其中,对于某个(XcKm, s尸a。
5、 根据权利要求4所述的方法,其中a-l。
6、 根据权利要求4所述的方法,其中a-m-1。
7、 一种用于对第一正整数w进行正则重新编码的设备(100),所 述设备包括处理器(110),所述处理器(110)适于-选择小于w的第二整数^ 定义第三整数^="-&对于第四整数m,将第三整数^的m进制表示逐数位地与s的m进制 表示相加,以生成n的重新编码的表示。
8、 一种存储指令的计算机程序产品(140),当由处理器执行时, 所述指令执行权利要求l-6中任一项的所述方法。
全文摘要
本发明提供一种用于对正整数n进行重新编码的正则方法,其中,选择小于n的整数s以定义整数n’=n-s,将n’的m进制表示逐数位与s的m进制表示相加,以生成n的重新编码的表示,其中m为整数。本发明还提供了一种设备(100)以及计算机程序产品(140)。本方法的优点是它是正则的。
文档编号G06F7/72GK101685387SQ20091017465
公开日2010年3月31日 申请日期2009年9月21日 优先权日2008年9月22日
发明者马克·乔伊 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1