專利名稱:支持正整數(shù)的正則重新編碼的方法、裝置及計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)位重新編碼,并且更具體地,涉及無符號數(shù) 的重新編碼。
背景技術(shù):
本節(jié)意在向讀者介紹可能與以下描述和/或要求保護(hù)的本發(fā)明的 各方面相關(guān)的領(lǐng)域的各個方面。相信這種討論有助于向讀者提供背景 信息,以便于更好地理解本發(fā)明的各個方面。相應(yīng)地,應(yīng)注意,應(yīng)根 據(jù)這一點(diǎn)來閱讀這些陳述,而不應(yīng)將其接納為現(xiàn)有技術(shù)。
己經(jīng)表明,密碼求冪算法易受旁道攻擊(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)中已經(jīng)描述了使用對電磁發(fā)射的觀察來進(jìn)行的攻擊。
被稱作簡單功率分析(SPA)以及簡單電磁分析(SEMA)的這些 攻擊可以揭示求冪算法中簡單實(shí)現(xiàn)的指數(shù),這是由于所需運(yùn)算依賴于指數(shù)的逐比特表示。
為了減少計(jì)算求冪所要求的運(yùn)算數(shù)量,已經(jīng)開發(fā)了重新編碼算法。
最公知的示例是由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}中的值來對指數(shù)的比特進(jìn)行重新編碼。這減少了后續(xù)求冪算法中 要求的乘法的數(shù)量,可以將其推廣至w進(jìn)制重新編碼,如Donald E. Knuth在The Art of Computer Programming (volume 2 / Seminumerical Algorithms. Addison-Wesley, 2nd edition, 1981)中所描述的。然而,設(shè) 計(jì)這些重新編碼算法是為了提高求冪算法的效率,而非增強(qiáng)對旁道攻 擊的抵御。
己經(jīng)提出了幾種其它重新編碼算法
-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)中所指出的,為 了實(shí)現(xiàn)正則求冪算法,所使用的任何重新編碼算法也必須是正則的。 在正則重新編碼算法中,在算法的計(jì)算期間,在主循環(huán)中不存在測試。
盡管可以爭論認(rèn)為在生成指數(shù)時可以執(zhí)行重新編碼,但在例如指 數(shù)與隨機(jī)值相結(jié)合的情況下這是不可能的,這是由于必須在求冪之前 執(zhí)行重新編碼。與隨機(jī)值相結(jié)合是為了阻止特定旁道分析,如 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)中所述。
為了使求冪正則化,己經(jīng)提出了其它重新編碼算法。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進(jìn)制求冪的重新編 碼算法。用-m來代替每個等于零的數(shù)位,并且將次最高有效數(shù)位加1。 這得到了用集合{1,...,附-1} U (-m)中包括的數(shù)來重新編碼的指數(shù)。與w 進(jìn)制求冪算法相結(jié)合,這表明應(yīng)當(dāng)對;T進(jìn)行預(yù)計(jì)算。盡管該計(jì)算在 橢圓曲線上是"容易"的,但是在有限環(huán)的乘法群的情況中則不是這樣。
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,...,柳}中對數(shù)位進(jìn)行重新編碼用附來代替每一個零數(shù)位并且將下 一數(shù)位減l。
M6ller算法的有符號和無符號版本的缺點(diǎn)是不能以正則方式來容 易地實(shí)現(xiàn)它們。
因此可以認(rèn)識到,需要針對正則求冪的重新編碼算法,其中以正 則方式對指數(shù)進(jìn)行簡單的重新編碼。本發(fā)明提供了針對該方案的多種 變型。
發(fā)明內(nèi)容
在第一方面,本發(fā)明提供了一種用于對第一正整數(shù)"進(jìn)行重新編 碼的正則方法,所述第一正整數(shù)n是密碼求冪算法的指數(shù)。處理器選擇 小于"的第二整數(shù)l定義第三整數(shù)",="-&以及對于第四整數(shù)附,將 第三整數(shù)"'的m進(jìn)制表示逐數(shù)位地與s的m進(jìn)制表示相加,以生成n的重
新編碼的表示。
在第一優(yōu)選實(shí)施例中,w=2、
在第二優(yōu)選實(shí)施例中,^gv ',其中/代表"的m進(jìn)制長度。有利
地,對于某個0〈a〈m, A=a;其中,優(yōu)選地,a-l或者a-m—1。
在第二方面,本發(fā)明提供了一種用于對第一正整數(shù)n進(jìn)行正則重 新編碼的設(shè)備。所述設(shè)備包括處理器,所述處理器適于選擇小于" 的第二整數(shù)s,定義第三整數(shù)",="-s,以及對于第四整數(shù)m,將第三整 數(shù)"'的w進(jìn)制表示逐數(shù)位地與^的w進(jìn)制表示相加,以生成n的重新編碼 的表示。
在第三方面,本發(fā)明了提供一種存儲指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)由處理器執(zhí)行時,所述指令執(zhí)行本發(fā)明的第一方面的方法。
現(xiàn)在將通過非限制性示例并參考附圖來描述本發(fā)明的優(yōu)選特征, 附圖中
圖1示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的一種用于進(jìn)行數(shù)位重新編 碼的設(shè)備。
圖中所示的方框是功能性實(shí)體,不必須與物理上分離的實(shí)體相對 應(yīng)。可以將這些功能實(shí)體實(shí)現(xiàn)為硬件、軟件或者軟件和硬件的組合; 此外,可以在一個或者更多集成電路中實(shí)現(xiàn)這些功能實(shí)體。
具體實(shí)施例方式
圖l示出了用于對數(shù)位,尤其是求冪算法中要使用的指數(shù)的數(shù)位
進(jìn)行重新編碼的設(shè)備100。設(shè)備100包括至少一個適于執(zhí)行計(jì)算機(jī)程序 的處理器110 (下文中稱作"處理器"),該計(jì)算機(jī)程序執(zhí)行下文描述的
任意實(shí)施例的重新編碼算法的計(jì)算。應(yīng)當(dāng)注意,還可以用硬件或者軟
件和硬件的組合來實(shí)現(xiàn)處理器110。設(shè)備100還包括適于存儲數(shù)據(jù)(例 如來自處理器110的中間計(jì)算結(jié)果)的存儲器120。設(shè)備100還包括用于 與其他設(shè)備(圖中未示出)進(jìn)行交互的至少一個接口130 (下文中稱作 "接口")。圖1還示出了存儲計(jì)算機(jī)程序的計(jì)算機(jī)程序產(chǎn)品140,例如 CD-ROM,當(dāng)處理器110執(zhí)行該計(jì)算機(jī)程序時,該計(jì)算機(jī)程序執(zhí)行根據(jù) 本發(fā)明的兩個實(shí)施例中任一個的重新編碼算法。
在求冪中,計(jì)算z-x",其中w為整數(shù)并且x是群(以乘法形式來寫
的群)中的元素。令 = §^^代表以附為基數(shù)的"的展開式(典型地
,'=0
w=^),其中/是"的m進(jìn)制長度。取正整數(shù)^<"并定義"如果 "'=^ '和^||>,附'分別代表",禾"的附展開式,貝ljx"^"屮成立,其中
,=0 '=0
"'+5 = 7'—、m',其中繼而A產(chǎn)^r^。如果我們定義以m為基數(shù)的s的最高有效數(shù)位為零,則以附為基數(shù) 的V的最高有效數(shù)位(即&,)將保持大于或者等于零。如果不是這樣,
則該重新編碼將不是無符號的并且將因此不適用于計(jì)算逆(inversion) 代價較高的群。
第一優(yōu)選實(shí)施例
令a是滿足(KoKm的整數(shù)。
選擇^y"2c^'=a^^。這可以被視為是將^的所有數(shù)位設(shè)置為 相同的值,即a。由于 然后使用
下述算法用于重新編碼。
輸入/7》1, w=2、 / ("的m進(jìn)制長度)。
輸出,,.."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的第一優(yōu)選選擇是l,這是由于它針對重新編碼的數(shù)位產(chǎn)生較小 的值。a的第二優(yōu)選選擇是m-l,這是由于它給出^m"-l (即設(shè)置為l 的A: (/-1)的延續(xù))。
現(xiàn)在,兩個示例將說明第一優(yōu)選實(shí)施例。對于這兩個示例,參數(shù) 采用下列值
m = 4
w = 73 = (1,0,2,1)4= 1.40+2.V+0.42+l'43 /=4在第一示例中01=1;在第二示例中01=附-1=3。
第一實(shí)施例的第一示例(a=l)
1 4J—1 63
3 3
w := w — s = 73 — 21 =52 循環(huán)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
如所預(yù)期的,重新編碼的"等于原始的w。 第一實(shí)施例的第二示例(a=m-l=3)
m —1
w := w — s = 73 — 63 = 10 循環(huán)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
如所預(yù)期的,重新編碼的w再一次等于原始的w。
應(yīng)當(dāng)注意,根據(jù)第一實(shí)施例的算法易于實(shí)現(xiàn),但是要求預(yù)先知道
"的w進(jìn)制長度(即/)。由于這可能是一個缺點(diǎn),因此第二優(yōu)選實(shí)施例
克服了這個問題,同時其實(shí)現(xiàn)稍微復(fù)雜一些。
第二優(yōu)選實(shí)施例
如果更細(xì)致地查看減法步驟," - s,可以建立下列等式
-A
.1,0},其中將"借位
(borrow)"初始化為0,即^ = 0 。這是在學(xué)校中學(xué)到的經(jīng)典減法算法。 由于c/,,s,e(0m-1),這給出/c, =cy',+s,.,如果d,+^々s"則 -cf',+s,等 于d,+A,否則等于^+7,+m。
因此,對于A鄰的任意選擇,當(dāng)d,^0力時,得到&的非零值。如
第一優(yōu)選實(shí)施例中一樣,對于某個(KoKm, s = I^am'。此外,為了 僅使用無符號算術(shù),/,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
如第一優(yōu)選實(shí)施例中一樣,a的優(yōu)選選擇是l和w-l。 現(xiàn)在,兩個示例將說明第二優(yōu)選實(shí)施例。對于這兩個示例,參數(shù) 釆用下列值 A:=2 m = 4
"=73 = (1,0,2,1)4 = 1 ■ 40 + 2 . 41 + 0 ' 42 + 1 43
在第一示例中01=1;在第二示例中01=附-1=3。
第二實(shí)施例的第一示例(a=l)
/:=0
,=1
"=73 2 O + a) = 4 + 1 = 5,所以執(zhí)行while循環(huán) 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,所以再一次執(zhí)行while循環(huán) := /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,所以不再一次執(zhí)行while循環(huán)
/ —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
如所預(yù)期的,重新編碼的n等于原始的n。 第二實(shí)施例的第二示例(a=m-l=3)
w = 73 > (m + a) = 4 + 3 = 7,所以執(zhí)4亍while循環(huán) 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,所以再一次執(zhí)行while循環(huán)
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,所以不再一次執(zhí)行while循環(huán) " —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
如所預(yù)期的,重新編碼的"等于原始的"。
可以認(rèn)識到,對相同的輸入,這兩個實(shí)施例如所預(yù)期的那樣給出 了相同的重新編碼的數(shù)位。例如,對于這兩個實(shí)施例,第一示例給出 (4,2,1),同時對于這兩個實(shí)施例,第二示例給出(3,5,5)。
還可以認(rèn)識到,這兩個實(shí)施例是正則的,這是由于在主循環(huán)內(nèi)不 存在測試;在第一實(shí)施例中,在for循環(huán)內(nèi)不存在測試,并且在第二實(shí) 施例中,在while循環(huán)中不存在測試。
因此可以認(rèn)識到,本發(fā)明實(shí)現(xiàn)了正整數(shù)的正則重新編碼。
可以獨(dú)立地或以任何合適組合來提供說明書和(在合適時)權(quán)利 要求和附圖中公開的每個特征。描述為以硬件實(shí)現(xiàn)的特征也可以以軟 件實(shí)現(xiàn),反之亦然。在適用時,連接可以被實(shí)現(xiàn)為無線連接或有線(不 必須是直接或?qū)S玫?連接。
權(quán)利要求中出現(xiàn)的參考標(biāo)號僅作為示意,不應(yīng)對權(quán)利要求的范圍 具有限制作用。
權(quán)利要求
1、一種用于對第一正整數(shù)n進(jìn)行重新編碼的正則方法,所述第一正整數(shù)n是密碼求冪算法的指數(shù),所述方法包括在處理器(110)中的以下步驟選擇小于n的第二整數(shù)s;定義第三整數(shù)n’=n-s;對于第四整數(shù)m,將第三整數(shù)n’的m進(jìn)制表示逐數(shù)位地與s的m進(jìn)制表示相加,以生成n的重新編碼的表示。
2、 根據(jù)權(quán)利要求l所述的方法,其中m二2、
3、 根據(jù)權(quán)利要求1或2所述的方法,其中^g^y,其中/代表n的 m進(jìn)制長度。
4、 根據(jù)權(quán)利要求3所述的方法,其中,對于某個(XcKm, s尸a。
5、 根據(jù)權(quán)利要求4所述的方法,其中a-l。
6、 根據(jù)權(quán)利要求4所述的方法,其中a-m-1。
7、 一種用于對第一正整數(shù)w進(jìn)行正則重新編碼的設(shè)備(100),所 述設(shè)備包括處理器(110),所述處理器(110)適于-選擇小于w的第二整數(shù)^ 定義第三整數(shù)^="-&對于第四整數(shù)m,將第三整數(shù)^的m進(jìn)制表示逐數(shù)位地與s的m進(jìn)制 表示相加,以生成n的重新編碼的表示。
8、 一種存儲指令的計(jì)算機(jī)程序產(chǎn)品(140),當(dāng)由處理器執(zhí)行時, 所述指令執(zhí)行權(quán)利要求l-6中任一項(xiàng)的所述方法。
全文摘要
本發(fā)明提供一種用于對正整數(shù)n進(jìn)行重新編碼的正則方法,其中,選擇小于n的整數(shù)s以定義整數(shù)n’=n-s,將n’的m進(jìn)制表示逐數(shù)位與s的m進(jìn)制表示相加,以生成n的重新編碼的表示,其中m為整數(shù)。本發(fā)明還提供了一種設(shè)備(100)以及計(jì)算機(jī)程序產(chǎn)品(140)。本方法的優(yōu)點(diǎn)是它是正則的。
文檔編號G06F7/72GK101685387SQ20091017465
公開日2010年3月31日 申請日期2009年9月21日 優(yōu)先權(quán)日2008年9月22日
發(fā)明者馬克·喬伊 申請人:湯姆森許可貿(mào)易公司