專利名稱:用于元素的指數(shù)或標(biāo)量乘法的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種藉助在每種情況下的至少一個指數(shù)或標(biāo)量ei對元素gi進(jìn)行多次取冪∏i=1dgiei或多次標(biāo)量乘法∑i=1deigi的方法,該至少一個指數(shù)或標(biāo)量ei尤其是一個在每種情況下具有最大比特率n或比特長度的整數(shù)指數(shù)或標(biāo)量,該方法尤其是藉助于至少一個指數(shù)或標(biāo)量e對元素g進(jìn)行取冪ge或標(biāo)量乘法e’g,該至少一個指數(shù)或標(biāo)量ei尤其是一個在每種情況下具有最大比特率n或比特長度的整數(shù)指數(shù)或標(biāo)量,該元素gi’,g從至少一個組G例如Abelian組G得出,它-在(多次)取冪的情形下,尤其是用相乘表示的,以及-在(多次)標(biāo)量乘法的情形下,尤其是用相加表示的。
在基于Abelian組中的離散對數(shù)問題的不可解性的非對稱加密方法或公共密鑰密碼系統(tǒng)中,對一組元素g的取冪gil,或?qū)Χ鄠€組元素g,h的多次取冪glnjhknk是在簽名和密鑰交換方法中的基本運(yùn)算之一。所以使這種基本運(yùn)算加速是特別重要的。
預(yù)先計算組元素g的冪的可能性存在下列問題在這種情形下,所使用的組元素g必須是事先已知的。這種情況不是例如在D[igital]S[ignature]A[lgorithm](數(shù)字簽名算法)中或在E[lliptic]C[urve]D[igital]S[ignature]A[lgorithm](橢圓曲線數(shù)字簽名算法)中或在Diffie-Hellman密鑰交換方法中的簽名驗證的情形。對于這一點的一個附加的事實是,在智能卡上,沒有足夠的存儲空間來存儲足夠大的數(shù)目的預(yù)先計算的元素。
另一個可能性在于重新編碼所使用的指數(shù);這個可能性與組元素g的選擇無關(guān),所以對于加速上述的簽名和密鑰交換方法是特別有吸引力的。
用于重新編碼在(多次)取冪的算法中使用的指數(shù)的技術(shù)是基于這樣的基本概念整數(shù)以與通常的二進(jìn)制表示法不同的形式被重寫,即用較低的密度和用一個至少包含元素0和1的有限的整數(shù)組C中的系數(shù)。
如果在一個其中執(zhí)行計算的特定的組中,對元素求逆是“不費(fèi)事的”,也就是說,如果求逆的計算復(fù)雜性比起其它的組運(yùn)算是非常低的,以及如果使用帶符號的系數(shù),則常??梢约僭O(shè)cεC也意味著-cεC。如果求逆在計算方面被復(fù)雜的,則組C的所有的元素是非負(fù)整數(shù)。
用于計算ge的所謂的“平方與乘法”取冪算法,其中g(shù)是組元素和e是整數(shù),則以已知的方式如下地運(yùn)算-e被寫為∑i=0nei2i,其中每個系數(shù)ei處在C中;-元素gen是給定的或事先計算的;-臨時變量x被設(shè)置為gen;-對于所有的i=n-1,n-2,...,0,x首先被平方,然后如果系數(shù)ei不是趨零的,則被乘以元素gei;-在對i=0實行最后的平方運(yùn)算之后,以及在適當(dāng)?shù)那樾?即,如果系數(shù)e0不是趨零的)下乘以元素ge0之后,臨時變量x的數(shù)值是所需的結(jié)果ge。
這樣,組運(yùn)算的數(shù)目近似等于在指數(shù)e的表示式∑i=0nei2i,中非趨零系數(shù)ei的數(shù)目(這些組運(yùn)算是乘以預(yù)先計算的或給定的組元素,或如果組元素的求逆是快速的,則乘以它們的倒數(shù))加上-表示式的長度n(在這種情形下,相應(yīng)的例如n次運(yùn)算是平方運(yùn)算)以及-元素gc的表的基數(shù),其中cεC和c不等于零,或-如果在給定的組中求逆是快速的,則取這個基數(shù)的一半,以及系數(shù)ei被加上符號。
在C的大小與表示法的密度之間的良好匹配是使得指數(shù)的表示法的性能最佳化的路徑。
指數(shù)重新編碼的例子包括N[on]A[djacent]F[orm](相鄰形式的N)(參閱G.W.Reitwiesner,“Binaryarithmetic(二進(jìn)制算法)”,Advances in Computers 1,pages 231 to 308,1960;S.Arno和F.S.Wheeler,“Signed digit representations of minimal Hammingweight(最小漢明權(quán)重的帶符號的數(shù)字表示法)”,IEEE Transactions on Computers42,1993,pages 1007 to 1010);-類似于N[on]A[djacent]F[orm]的相同權(quán)重方法(參閱M.Joye和S.-M.Yen,“Optimal left-to-right binary signed-digit recoding(最佳左-右二進(jìn)制帶符號的數(shù)字重新編碼)”,IEEE Transactions on Computers 49(7),2000,pages 740 to 748);
-重新編碼以便用固定窗口取冪(參閱J.Bos和M.Coster,“Additionchain heuristics(加法鏈試探法)”,in Advances in Cryptology-CRYPTO‘89,LNCS 435,1990,pages 400 to 407;A.Menezes,P.van Oorschot和S.Vanstone,“Handbook of Applied Cryptography(應(yīng)用密碼學(xué)手冊)”,CRC Press,1996);-G[eneralized]N[on]A[djacent]F[orm](歸一化的相鄰形式的N)(參閱W.E.Clark and J.J.Liang,“On arithmetic weight for a general radixrepresentation of integers′(關(guān)于整數(shù)的一般下標(biāo)表示法的算術(shù)權(quán)重)”,IEEETransactions on Information Theory IT-19,1973,pages 823 to 826);-“滑窗”(參閱E.G.Thurber,“On addition chains l(mn)≤l(n)b and lowerbounds for c(r)(關(guān)于加法鏈l(mn)≤l(n)b和c(r)的下邊界)”,Duke MathematicalJournal 40,1973,pages 907 to 913;A.Menezes,P.van Oorschot和S.Vanstone,“Handbook of Applied Cryptography(應(yīng)用密碼學(xué)手冊)”,CRC Press,1996),任選地,在N[on]A[djacent]F[orm]上或在其它冗余的基于2的表示式(參閱R.Avanzi,“On the complexity of certain multi-exponentiation techniquesin cryptography(關(guān)于密碼學(xué)的某些多次取冪技術(shù)的復(fù)雜性)”,出版于Journal ofCryptology;K.Koyama和Y.Tsuruoka,“Speeding up elliptic cryptosystems byusing a signed binary window method(通過使用加符號的二進(jìn)制窗口方法加速橢圓加密系統(tǒng))”,出版于E.Brickell·(Ed.),“Advances in Cryptology,Proceedings of Crypto‘92”,Lecture Notes in Computer Science Volume 740,pages 345 to 357,Springer-Verlag,1992;還參閱K.Koyama,Y.Tsuruoka,“ASigned Binary Window Method for Fast Computing over Elliptic Curves(快速計算橢圓曲線的帶符號的二進(jìn)制窗口方法”,IEICE Trans.Fundamentals,Volume E76-A,No.1,pages 55to 62,January 1993);以及-w[indow]N[on]A[djacent]F[orm](窗口相鄰形式的N)(參閱J.A.Solinas,“An improved algorithm for arithmetic on a family of elliptic curves(對橢圓曲線族上的算術(shù)的改進(jìn)算法)”,in Advances in Cryptology-CRYPTO‘97,B.S.Kaliski jr.(Ed.),Lecture Notes in Computer Science Volume 1294,pages 357 to371;H.Cohen,“Analysis of the flexible window powering algorithm(對靈活的窗口乘方算法的分析)”,最新拷貝可得自http//www.math.u-bordeaux.fr/~cohen/)。
然而,對于指數(shù)的重新編碼,應(yīng)當(dāng)看到,這個重新編碼在許多情形下不能“在線”地進(jìn)行,也就是說不能在進(jìn)行取冪期間進(jìn)行;為此,重新編碼的指數(shù)必須首先被存儲。然而,這個存儲要求在極其受限制的環(huán)境下是特別不利的,例如緣在智能卡的情形下,因為在這樣的極其受限制的環(huán)境下存儲器的每個字節(jié)都是“寶貴的”。
根據(jù)上述的不利情形和缺點以及參照所列出的現(xiàn)有技術(shù),本發(fā)明的目的是進(jìn)一步開發(fā)一種上述類型的方法,以使得即使在和特別是在極其受限制的環(huán)境下(例如像在智能卡的情形下),在用于重新編碼指數(shù)或標(biāo)量的存儲空間方面的要求也盡可能地被減小。
這個目的是通過具有在權(quán)利要求1中規(guī)定的特性的方法達(dá)到的。本發(fā)明的有利的實施例和合適的開發(fā)的特征在從屬權(quán)利要求中闡述。
本發(fā)明由此是基于在受限制的環(huán)境下用于單次取冪或單次標(biāo)量乘法或用于多次取冪或多次標(biāo)量乘法的近于在線重新編碼的原理;在這方面,“近于在線”重新編碼是指,指數(shù)或標(biāo)量被分割成各個分段,它們被單獨(dú)地重新編碼以及它們的重新編碼是在(多次)取冪或(多次)標(biāo)量乘法的各部分之間的層中進(jìn)行的。
“近于在線”重新編碼可用來減小用于對重新編碼的指數(shù)或用于對重新編碼的標(biāo)量的存儲要求。近于在線重新編碼對于(多次)取冪或(多次)標(biāo)量乘法的總的運(yùn)行時間的影響通常是最小的。
根據(jù)上述的示例性重新編碼操作,在按照本發(fā)明的方法中,假設(shè)在多次取冪和多次標(biāo)量乘法的情形下重新編碼具有形式ei=∑j=0nbi,j2j;在作為多次取冪或多個標(biāo)量乘法的特殊情形的(單次)取冪或(單次)標(biāo)量乘法的情形下,所假設(shè)的基礎(chǔ)相應(yīng)地取為ei=∑j=0nbi2j,其中|n=log2e|是e的比特長度,也就是說,比特長度n至多比該二進(jìn)制表示式長1比特。換句話說,這意味著,n+1要被看作為任何指數(shù)或標(biāo)量ei=∑j=0nbi,j2j的最大長度。
另外還假設(shè),重新編碼的算法取決于參數(shù)w—可能不是明顯地—這個參數(shù)通常相應(yīng)于一個在其上讀出指數(shù)或標(biāo)量ei的比特的窗口的寬度,或相應(yīng)于這樣的寬度的上限w。
在這個基礎(chǔ)上,按照本發(fā)明的教導(dǎo),在相乘符號表示的組(特別是地Abelian組G)的情形下,由符號表示法∏i=1dgiei中的符號表示的多次取冪按以下步驟進(jìn)行
首先選擇一個塊或部分的寬度L,它可以明顯大于參數(shù)w和明顯短于任何指數(shù)ei的最大長度;然后[a.1]計算和存儲或[a.2]從存儲器檢索所有的冪gic其中g(shù)i是組G的元素以及c是許可的正的系數(shù);[b]把每個指數(shù)ei,特別是整數(shù)指數(shù),劃分成多個塊或多個具有以上選擇的塊或部分的寬度L的部分ei,k,[b.1]其中指數(shù)ei可以寫成被劃分的形式ei=∑k=0rei,k2kL,其中0≤ei,k<2L,以及[b.2]其中塊或部分ei,k的數(shù)目r可以具體地被定義為最大比特率n對塊或部分的寬度的比特率L的整數(shù)商;[c]分別重新編碼塊或部分ei,k,其中對每個指數(shù)ei的每個單獨(dú)的塊或?qū)γ總€單獨(dú)的部分ei,k的這種重新編碼可劃分成以下的子步驟[c.1]把臨時變量x設(shè)置為標(biāo)準(zhǔn)化的數(shù)值,特別地為數(shù)值1,其中1表示相對于被分配給組G的組運(yùn)算的組G的中性元素;[c.2]把變量k設(shè)置為數(shù)值r-1,r-2,…,0(一個接一個),其中對于變量k的每個這樣的數(shù)值k=r-1,r-2,…,0實行以下的子步驟[c.2.i]對于下標(biāo)i的每個下標(biāo)值i=1,2,…,d(其中d被定義為元素gi的數(shù)目和被分配給元素gi的指數(shù)ei的數(shù)目)[c.2.i.a]把塊或部分ei重新編碼為由在每種情況下從有限整數(shù)集C導(dǎo)出的系數(shù)bi,j加權(quán)的2的冪2j的和值∑j=0Lbij2j;[c.2.i.b]如果被分配給2的最高冪2L的系數(shù)bi,L并不趨零,則把臨時變量x設(shè)置為x與被分配給2的最高冪2L的系數(shù)bi,L的元素gi的冪gibi,L的乘積;[c.2.ii]對于下標(biāo)j的每個數(shù)值j=L-1,L-2,…,0[c.2.ii.a]將臨時變量x進(jìn)行平方;[c.2.ii.b]對于下標(biāo)i的每個數(shù)值i=1,2,…,d如果被分配給2的冪2j的bi,j并不趨零,則把暫時變量x設(shè)置為x與被分配給2的冪2j的系數(shù)bi,j的元素gi的冪gibij的乘積;最后返回x。
(單次)取冪這種特定情形是在以上在d=1時得到的,也就是說,當(dāng)有單個元素g和被分配給該元素g的單個指數(shù)e時,這時實際上等于省略下標(biāo)i;在這種情形下,元素g因此用指數(shù)e進(jìn)行指數(shù)化,尤其是用一個整數(shù)指數(shù),它具有最大比特率n或比特長度),以形成冪ge,其中元素g再次從一個相乘表示法的Abelian組G得出。
類似地,按照本發(fā)明的教導(dǎo),在相加地表示的組(特別是Abelian組G)的情形下可以由符號表示法∑i=1dei·gi,中的符號表示的多個標(biāo)量乘法按以下步驟進(jìn)行首先選擇塊或部分的寬度L,它可以明顯大于參數(shù)w和明顯短于任何變量ei的最大長度;然后[a.1]計算和存儲或[a.2]從存儲器檢索所有的乘數(shù)c·gi其中c是許可的正系數(shù)以及gi是組G的元素;[b]把每個變量ei,尤其是整數(shù)變量,劃分成多個塊或多個具有以上選擇的塊或部分的寬度L的多個部分ei,k,[b.1]其中標(biāo)量ei可以寫成被劃分的形式ei=∑k=0rei,k2kL,其中0≤ei,k<2L,以及[b.2]其中塊或部分ei,k的數(shù)目r可以具體地被定義為最大比特率n對塊或部分的寬度的比特率L的整數(shù)商;[c]分別對塊或部分ei,k重新編碼,其中對每個標(biāo)量ei的對每個單獨(dú)的塊或?qū)γ總€單獨(dú)的部分ei,k的重新編碼可以劃分成以下的子步驟[c.1]把臨時變量x設(shè)置為標(biāo)準(zhǔn)化數(shù)值,尤其是為數(shù)值0,其中0表示相對于分配給組G的組運(yùn)算的組G的中性元素;[c.2]設(shè)置變量k為數(shù)值r-1,r-2,…,0(一個接一個),其中對于變量k的每個這樣的數(shù)值k=r-1,r-2,…,0實行以下的子步驟[c.2.i]對于下標(biāo)i的每個下標(biāo)值i=1,2,…,d(其中d被定義為元素gi的數(shù)目和被分配給元素gi的標(biāo)量ei的數(shù)目)[c.2.i.a]把塊或部分ei重新編碼為由每種情況下從有限的整數(shù)組C得出的系數(shù)bi,j所加權(quán)的2的冪2j的和值∑j=0Lbi,j2j;[c.2.i.b]如果被分配給2的最高冪2j的的系數(shù)bi,j并不趨零,則把臨時變量x設(shè)置為x與分配給2的最高冪2L的的系數(shù)bi,L的元素gi的乘數(shù)bi,Lgi的和值;[c.2.ii]對于下標(biāo)j的每個數(shù)值j=L-1,L-2,…,0[c.2.ii.a]將臨時變量x加倍;[c.2.ii.b]對于下標(biāo)i的每個數(shù)值i=1,2,…,d如果被分配給2的冪2j的系數(shù)bi,j并不趨零,則把臨時變量x設(shè)置為x與被分配給2的冪2j的系數(shù)bi,j的元素gi的乘數(shù)bijgi的和值;最后返回x。
(單次)標(biāo)量乘法的特定的情形是在以上對d=1得到的,也就是說,當(dāng)有單個元素g并有分配給元素g的單個標(biāo)量e時(事實上可以省略下標(biāo)i);在這種情形下,元素g因此被乘以標(biāo)量e,尤其是整數(shù)標(biāo)量(它具有最大比特率n或比特長度),以給出乘積eg,其中元素g再次是從相加地表示的Abelian組G得出的。
按照本發(fā)明的一個優(yōu)選的其它的實施例,-重新編碼的塊或重新編碼的部分ei,k被使用一次,以及-存儲重新編碼的塊或重新編碼的部分ei,k的存儲器單元被使用來重新編碼以下的塊或以下的部分ei,k-l,以使得基于從右到左的整數(shù)的重新編碼的(多次)取冪算法或(多次)標(biāo)量乘法算法的存儲要求可以明顯減小。
本發(fā)明還涉及按照上述類型的方法工作的微處理器。
本發(fā)明還涉及具有上述類型的至少一個微處理器的設(shè)備,尤其是芯片卡和/或尤其是智能卡。
本發(fā)明最后涉及在至少一個密碼系統(tǒng)中,尤其是在至少一個公共密鑰密碼系統(tǒng)、至少一個密鑰交換系統(tǒng)或至少一個簽名系統(tǒng)中-上述類型的方法的使用和/或-上述類型的至少一個微處理器的使用和/或-上述類型的至少一個設(shè)備,尤其是至少一個芯片卡和/或尤其是至少一個智能卡的使用。
如上所述,具有用于有利地實施和研發(fā)本發(fā)明的教導(dǎo)的各種可能性。在這方面,一方面,參考從屬于權(quán)利要求1的權(quán)利要求,和另一方面,在下面根據(jù)實施例的五個例子的示例性實施方案更詳細(xì)地描述本發(fā)明的特性和優(yōu)點,其中-實施例的第一例涉及單次取冪的方法,-實施例的第二例涉及多次取冪的方法,-實施例的第三例同樣涉及多次取冪的方法,也就是說,基于用于Abelian組G的乘法表示法,以及其中-實施例的第四例涉及單次標(biāo)量乘法的方法,以及-實施例的第五例涉及多次標(biāo)量乘法的方法,也就是說,基于用于Abelian組G的加法表示法,與在上一節(jié)“現(xiàn)有技術(shù)”中用于Abelian組G的乘法表示法相比較,當(dāng)然會作出改變和替代,這些是從權(quán)利要求4[<-->(多個)指數(shù)中性元素“1”,“平方”,“乘積”]與權(quán)利要求5[<-->(多個)標(biāo)量乘法中性元素“1”,“加倍”,“和值”]之間的不同的用語可明顯看到的。
下面在本發(fā)明顯示的實施例方面的五個例子中以所謂的近于在線的重新編碼形式用于通用技術(shù),它可用來明顯減小以下算法的存儲要求單次取冪算法(參閱實施例的第一例),多次取冪算法(參閱實施例的第二例和實施例的第三例),單次標(biāo)量乘法算法(參閱實施例的第四例)或多次標(biāo)量乘法算法(參閱實施例的第五例),它們是基于基于從右到左的整數(shù)的重新編碼。
近于在線的重新編碼技術(shù)在極其受限制的環(huán)境下,例如像在芯片卡或在智能卡中,可能是非常有用的,其中在存儲空間方面的節(jié)省可很大程度上取決于具體的情形(也許會出現(xiàn)吞吐量損失,盡管這是非常低的,特別是當(dāng)指數(shù)或標(biāo)量被劃分成太多的小的部分(=太多的小“塊”)時;對于性能的影響可能是顯著的)。
實施例的第一例單次取冪如果G是具有2n階的Abelian組,并且假設(shè)給定元素gεG和整數(shù)e,則按照本發(fā)明的目標(biāo)是盡可能快速地計算x=ge。按照本發(fā)明的重新編碼使得指數(shù)運(yùn)算非??焖?,但這個重新編碼不能在線使用,也就是說,不能在取冪本身期間進(jìn)行;這是例如在w[indow]N[on]A[djacent]F[orm]中的情形。
在近于在線重新編碼中使用的技術(shù)包含把指數(shù)e劃分成多個“指數(shù)塊”,也就是說,劃分成多個指數(shù)分段或多個指數(shù)部分,它們大大地長于w比特,但比起e短得多。塊或部分然后被單獨(dú)重新編碼,被使用一次,然后其中存儲塊或部分的存儲器被重復(fù)使用來重新編碼下一個塊或部分,這樣,對于指數(shù)n所需要的總的存儲空間可以明顯減小。
下面顯示的近于在線重新編碼是在塊或部分具有L比特的長度的假設(shè)下進(jìn)行的。L明顯地大于w的理由是,對于重新編碼的指數(shù)中不趨零系數(shù)的數(shù)目的估值通常是漸近地給出的,但在重新編碼的指數(shù)中非趨零的系數(shù)的實際的數(shù)目由于一個小的相加常數(shù)而有時會是更大的,這將在下面根據(jù)具體的例子示出。
下面,在近于在線重新編碼的實施例的第一例的上下文內(nèi),給出一個算法,在該算法中引入以下內(nèi)容-Abelian組G的基本元素g,-具有n比特的整數(shù)e,-窗口寬度w,以及-塊或部分的寬度L>>w;單次取冪ge被輸出步驟1.x←1步驟2. 則e=Σk=0r-1ek2kLfor0≤ek<2L]]>步驟3.對于k=r-1直到0,進(jìn)行{(a)重新編碼(ek)→ek=Σj=0Lbj2j]]>(b)如果bL≠0則x←x·gbL]]>(c)對于j=L-1直到0,進(jìn)行{(i)x←x2(ii)x←x·gbj}}]]>步驟4.返回x這里應(yīng)當(dāng)指出,在L比特后可能發(fā)生以上的算法在一行實行兩組乘法,而不是僅僅一組乘法。這可能是在一個塊ei(=指數(shù)部分ei之一)代表非偶數(shù)時和在下一個塊ei+1(=下一個指數(shù)部分ei+1之一)的重新編碼要長于一個系數(shù)(bL不等于零)時發(fā)生的。
使用一個其中所選擇的重新編碼是w[indow]N[on]A[djacent]F[orm]的具體的例子,現(xiàn)在可以表明,速度方面的損失是最小的,而存儲空間方面的節(jié)省可以是相當(dāng)大的對于n=160,w的最佳值等于5(參閱H.Cohen,“Analysis ofthe flexible window powering algorithm(對靈活的窗口乘冪算法的分析)”,最新的拷貝可在http//www.math.u-bordeaux.fr/~cohen/)得到);因此必須預(yù)先計算基本元素g的七個冪g3,g5,g7,g9,g11,g13,g15,以及還暫時需要g2。每個生編碼的系數(shù)需要至少5個比特,但實施程序大概要使用全部帶符號的字節(jié)。
兩個重新編碼的指數(shù)需要320個字節(jié)的R[andom]A[ccess]M[emory],但兩個重新編碼的32比特塊(=32比特分段或32比特部分)只需要R[andom]A[ccess]M[emory]的66字節(jié)的R[andom]A[ccess]M[emory]。被節(jié)省的254字節(jié)的R[andom]A[ccess]M[emory]可用來存儲仿射坐標(biāo)中橢圓曲線的六個點。
Cohen現(xiàn)在證明(參閱H.Cohen,“Analysis of the flexible windowpowering algorithm(對靈活的窗口乘冪算法的分析”),最新的拷貝可在http//www.math.u-bordeaux.ff/~cohen/得到)具有n比特(它是在相應(yīng)的指數(shù)中乘法的平均次數(shù)加1)的整數(shù)的該w[indow]N[on]A[djacent]F[orm]的平均漢明權(quán)重等于n/(w+1)+1-0.5(w-1)(w+2)/(w+1)2+O(ρ-n),其中ρ=ρ(w)是大于1的實數(shù),它僅僅取決于w而不取決于n。在數(shù)值方面,ρ=21/2=1.414...對于w=3,ρ=1.2157...對于w=4,以及ρ=1.1296...對于w=5。
關(guān)于w[indow]N[on]A[djacent]F[orm]的平均漢明權(quán)重的以上的組意味著,當(dāng)一個整數(shù)被劃分成r個塊或r個部分時,r個塊或r個部分的總的漢明權(quán)重比起原先的整數(shù)的漢明權(quán)重大(r-1)(1-0.5(w-1)(w+2)/(w+1)2)倍。
在其中n=160的情形下,可以選擇L=32,因此r=5。靈活的窗口的方法,比起按照本發(fā)明的近于在線方法,需要平均少22/9=2.44次的組運(yùn)算。這個差值約為取冪算法(超過193次組運(yùn)算,包括用于預(yù)先計算的時間)的總的運(yùn)行時間的1.26%;然而,對于重新編碼的指數(shù)的存儲要求減小約80%。
實施例的第二例多次取冪來自實施例的第一例(單次取冪)的以上的算法可以變換成多次取冪方法。
如果給定組元素gi,…,gdεG和指數(shù)ei,…,ed,其中d>1,以及要計算∏i=1dgiei,則首先決定使用指數(shù)ei,…,ed的稀疏重新編碼,然后使用“平方與乘法”循環(huán)首先,計算和存儲所有的冪gic,其中c是許可的正系數(shù)。然后把臨時變量x設(shè)置為1εG。對于j=n,n-1,…,0,x首先進(jìn)行平方,以及對于i=1,…,d,把平方過的x乘以gieij,其中ei,j是在ei的重新編碼中2j的系數(shù)。
結(jié)束時,臨時變量x中包含想所需結(jié)果。
這個方法也被稱為快速取冪運(yùn)算;正如在按照實施例的第一例的情形下,再次希望保持良好的從右到左的重新編碼的優(yōu)點,而不必需用使用太多的存儲器。
以下的變例實行近于在線的重新編碼,也就是說,幾乎就在快速多次取冪運(yùn)算期間或在快速多次取冪運(yùn)算后不久,其中在算法中給定以下參數(shù)-Abelian組G的基本元素gi,…,gd,-每個具有至多n比特的整數(shù)ei,…,ed(d>1),-窗口寬度w,-塊或部分寬度L>>w,以及-對于在系數(shù)組中所有的c的預(yù)先計算的冪gic;多次取冪∏i=0dgiei被輸出步驟1.x←1步驟2. 對于i=1...d則ei=Σk=0r-1ei,k2kL,]]>步驟3.對于k=r-1直到0,進(jìn)行{(a)對于i=1到d,進(jìn)行{重新編碼(ei,k)→ei,k=Σj=0Lbi,j2L]]>
如果bi,L≠0則x←x·gibi,L}]]>(b)對于j=L-1直到0,進(jìn)行{(i)x←x2(ii)對于i=1到d,進(jìn)行{如果bi,L≠0則x←x·gibi,j]]>}}步驟4.返回x在按照實施例的第一例的算法方面進(jìn)行的注解在這里也是貼切的,也就是說,在其中n=160和L=32的有限的區(qū)域的橢圓曲線的情形下,要使用2.44d組運(yùn)算,其中d是冪要互相相乘的次數(shù)。雖然這比單次快速取冪的情形要多,但仍可以節(jié)省254d字節(jié)的R[andom]A[ccess]M[emory],也就是說,在仿射坐標(biāo)下用于6d個預(yù)先計算的點的存儲。
實施例的第三例用并行窗口的多次取冪在實施例的第三例中,近于在線重新編碼的使用在Yen,Laih和Lenstra的算法(參閱R.Avanzi,“On the complexity of certain multi-exponentiationtechniques in cryptography(關(guān)于密碼學(xué)中的某些多次取冪技術(shù)的復(fù)雜性)”,出版于Journal of Cryptology)的綜述(參閱S.-M.Yen,C.-S.Laih和A.K.Lenstra,“Multi-exponentiation(多次取冪)”,IEE Proc.Comput.Digit.Tech.,Volume 141,No.6,November 1994)中被描述。
在這方面,下面描述的這個實施例的第三例主要用來說明所描述的算法的基本原理;可以得到的效率提高應(yīng)該認(rèn)為是相當(dāng)小的。算法實際上是Shamir的使用滑動窗口的訣竅的變例,它被顯示為如下在算法中給定以下參數(shù)-窗口寬度w,-整數(shù)ei=∑j=0neij2j,以及-來自形式∏i=1dgiki的組G的、包括gi,…,gd的預(yù)先計算的元素組E(組E高度地取決于窗口寬度w和整數(shù)ei’的表示法;參閱下面在算法后面作出的注解);輸出多次取冪∏i=1dgiei步驟1.t←n和x←1∈G步驟2.如果ei,t-1=0,對于i=1,2,…,d,則{
(a)t←t-1和x←x2}否則{(b)如果t>w,則t←t-w,否則{w←t和t←0}(c)對于i=1,2,…,d進(jìn)行fi←Σj=0w-1ei,i+j2j]]>(d)如果s是最大自然數(shù),s≥0,以使得2s|fi對于所有的i(e)對于i=1,2,…,d,進(jìn)行fi←fi/2J(f)(i)x←x2w-x;]]>(ii)x←x·Πi=1dgifi;]]>和(iii)x←x2J}]]>步驟3.如果t=0則返回x否則轉(zhuǎn)到步驟2。
在這方面,應(yīng)當(dāng)指出,在步驟2.(c)的開始處fi是由指數(shù)e的一串w個接連的比特所表示的整數(shù)。在標(biāo)準(zhǔn)化步驟2.(e)以后,至少一個fi是非偶數(shù)。
如果在組G中,元素的求逆是快速發(fā)生的,則選擇N[on]A[djacent]F[orm]進(jìn)行重新編碼。可以容易地看到,在N[on]A[djacent]F[orm]中具有w比特的帶符號的整數(shù)的數(shù)目是Iw=(2w+2-(-1)w)/3。組E包含形式∏i=1dgiki的所有的元素,以使得-|ki|≤Tw對于i=1,2,...,d,-至少一個ki是非偶數(shù),以及-來自序列k1,k2,...,kp的第一非趨零值是正的。
按照這樣,步驟2.(f)(ii)可通過乘法或除法來執(zhí)行。E的基數(shù)是(Iwd-Iw-1d)/2。
參數(shù)w=2=d然后被固定,以及選擇N[on]A[djacent]F[orm]用于對指數(shù)重新編碼。這樣做的理由是利用橢圓曲線產(chǎn)生數(shù)字簽名(參閱American National Standards Institute,“ANSIX9.62Public Key Cryptography for theFinancial Services IndustryThe Elliptjc Curve Digital Signature Algorithm(ECDSA),1999(金融服務(wù)業(yè)的公共密鑰密碼學(xué)橢圓曲線數(shù)字簽名算法(ECDSA),1999))在這種情形下,d=2,以及對于相關(guān)大小的指數(shù),即從n=160到n=240,參數(shù)w=2是最佳的(參閱R.Avanzi,“On the complexity of certain multi-exponentiationtechniques in cryptography”,published in Journal of Cryptology(關(guān)于密碼學(xué)中的某些多次取冪技術(shù)的復(fù)雜性))。來自實施例的第三例的以上的算法因此用于對于d=2=w和N[on]A[djacent]F[orm]的近于在線的多次取冪,其中在算法中給定以下參數(shù)-Abelian組G的兩個(基本)元素g1,g2,-兩個自然數(shù)e1,e2,每個具有至多n比特,以及
-塊或部分的寬度L,其中n>>L>>2;輸出兩次取冪g1e1·g2e2步驟1.預(yù)先計算8個元素g1ag2b,在這里任一項0<a≤2和-2≤b≤21,其中a,b的至少一個是非偶數(shù),或a=0和b=1[見注A.2]步驟2.x←1 則ei=Σk=0r-1ei,k2kL,]]>對于i=1,2,具有0≤ei,k<2L步驟3.對于k=r-1直到0,進(jìn)行{(a)對于i=1,2進(jìn)行重新編碼ei,k為NAF:vi:=ei,k=Σj=0Lvi,j2j]]>a1←0,a2←0(b)如果(v1,L,v2,L)≠(0,0)(v1,L,v2,L)≠(0,0),則{(i)如果(v1,L-1,v2,L-1)=(0,0),則x←x·(g1v1,L·g2v2,L)]]>(ii)否則{a1←v1,L,a2←v2,L}}(c)對于j=L-1直到0,進(jìn)行{(i)x←x2(ii)如果(v1,j,v2,j)≠(0,0),則如果(a1,a2)≠(0,0),則{(iii)a1←2a1+v1,j,a2←2a2+v2,j(iv)x←x·(g1a1·g2a2)]]>(或x←x/(g1-a1·g2-a2)]]>)}否則{如果(j>0和(v1,j-1,v2,j-1)≠(0,0)),則{(v)a1←v1,j,a2←v2,j}否則{(vi)x←x·(g1vi,j·g2v2,j)]]>(或x←x/(g1-vi,j·g2-v2,j)]]>)}}}}(循環(huán)的內(nèi)部(inner for loop)結(jié)束)}(循環(huán)的外部(outer for loop)結(jié)束)步驟4.返回x這里應(yīng)當(dāng)指出,在步驟3,可以看到來自實施例的第一例的以上的算法的兩個交叉的循環(huán)和來自實施例的第三例的以上的第一算法的同時的順序詢問。
在步驟3.(c)(ii),3.(c)(iii),3.(c)(iv),3.(c)(v),3.(c)(vi),寬度2的窗口由具有L比特的兩個塊或兩個部分經(jīng)由耦合的N[on]A[djacent]F[orm]被形成。
如果下一個列也是非趨零的,則兩個“進(jìn)位(carry-overs)”a1和a2存儲非趨零列的數(shù)值,這樣,使得在下一個迭代期間數(shù)值可被加倍,并被加到下一個列中的數(shù)值中;參閱步驟3.(c)(iii)。步驟3.(c)(iv)和3.(c)(vi)通過乘法或通過除法而實行。
如果兩個整數(shù)b1和b2然后被寫為bi=∑i=1mbi,j2j,則一列包含來自以上的表示的一對系數(shù)(b1,t,b2,t)。這樣的列的經(jīng)排序的序列是b1和b2的共同的表示。在共同的表示中非趨零的列的數(shù)目被稱為該表示的漢明權(quán)重,并且它的密度是漢明權(quán)重與長度m的商。
兩個N[on]A[djacent]F[orm]s的聯(lián)合代表的平均漢明權(quán)重是5/9??梢宰C明,在來自實施例的第三例的以上第二算法的主環(huán)路中預(yù)期的乘法的次數(shù)是11n/27(參閱R.Avanzi,“On the complexity of certain multi-exponentiation techniques in cryptography(關(guān)于密碼學(xué)中的某些多次取冪技術(shù)的復(fù)雜性)”,出版于Journal of Cryptology),其中可能由近于在線技術(shù)造成的附加的組運(yùn)算被消除。
L是智能卡的C[entral]P[rocessing]U[nit]的本身的字長度或它的小倍數(shù),例如L=32的假設(shè)也允許較簡單的實施方案。
使用具有160比特的指數(shù)和考慮這樣的事實N[on]A[djacent]F[orm]s可以每個系數(shù)僅用兩個比特被有效地存儲,需要R[andom]A[ccess]M[emory]的約16字節(jié)來存儲兩個重新編碼的32比特的塊(=兩個重新編碼的32比特的分段或兩個重新編碼的32比特的部分),以替代全部指數(shù)的80個字節(jié)。在存儲空間方面的節(jié)省對應(yīng)于在具有160比特的有限的區(qū)域上橢圓曲線的投影坐標(biāo)上一個點的存儲要求,因此不像在實施例的兩個以前的例子中那樣大。
根據(jù)對于給定長度的成對數(shù)目對根據(jù)實施例的第三例的以上的第二算法形成的窗口的數(shù)目進(jìn)行計數(shù)的計算機(jī)程序,可以計算該程序10萬次完全運(yùn)行結(jié)果的平均值在成對的具有160比特的數(shù)目上窗口的平均數(shù)是65.81153(應(yīng)當(dāng)指出,(11/27)160=65.185),在成對的具有32比特的數(shù)目上窗口的平均數(shù)是13.64216(應(yīng)當(dāng)指出,(11/27)32=13.037)。因此,可以預(yù)期,如果n=160和L=32,則近于在線算法僅僅需要513.64216-65.81153=2.39927,也就是說,比起根據(jù)實施例的第三例的以上的第一算法約多2.4次組運(yùn)算。
由于235是在n=160的情形下預(yù)期的、根據(jù)實施例的第三例的以上的第一算法的組運(yùn)算的總數(shù),可以估計由按照本發(fā)明所使用的近于在線技術(shù)造成的性能方面的損失約為1%。
對于具有可以由從左到右運(yùn)算的簡單算法計算的相同的漢明權(quán)重的N[on]A[djacent]F[orm]有替換的表示法(參閱M.Joye and S.-M.Yen,“Optimalleft-to-right binary signed-digit recoding(最佳左-右二進(jìn)制帶符號的數(shù)字重新編碼)”,IEEE Transactions on Computers 49(7),2000,pages 740 to 748)。可能引起關(guān)于這個表示法是否可以代替近于在線重新編碼的問題。負(fù)面響應(yīng)的原因在于,這個替換方法沒有N[on]A[djacent]F[orm]特性,也就是說,兩個接連的系數(shù)不應(yīng)當(dāng)都趨零。
對于存儲要求的關(guān)聯(lián)的影響是非常差的。在w=2=d的本例中,對于0<a≤3和-3≤b≤3的組E包含元素g1a·g2b,其中a和/或b是非偶數(shù),或a=0和b=1或b=3;因此組E具有基數(shù)20;這使得實施例的第三例的以上的第一算法的存儲要求太大。
在Solinas的“J[oint]S[parse]F[orm](聯(lián)合稀疏表示法)”方面(參閱J.A.Solinas,“Low-Weight Binary Representations for Pairs of Integers(整數(shù)對的低權(quán)重二進(jìn)制表示法)”,Centre for Applied Cryptographic Research,University of Waterloo,Combinatorics and Optimization Research Report CORR 2001-41,2001,可得自http://www.cacr.math.uwaterloo.ca/techreports/2001/corr2001-41,ps),提出類似的考慮。
聯(lián)合稀疏表示法同時地和以互相依賴的方式把兩個指數(shù)重新編碼。J[oint]S[parse]F[orm]的平均密度是I/2,對于w=2=d的實施例的第三例的以上第一算法的主循環(huán)中組運(yùn)算的次數(shù)是3n/8(如以前那樣,不包括預(yù)先計算和近于在線重新編碼的花費(fèi))。
預(yù)先計算的點數(shù)是12,比起以上提出的變例中的數(shù)目8這要大得多,對于從160比特到256比特的輸入,算法的吞吐量沒有很大的提高。對于更詳細(xì)的討論和對于相應(yīng)的見證,可以參考H.Cohe,“Analysisof the flexible window powering algorithm(對靈活窗口乘冪算法的分析)”,的第3.3和4.4節(jié),它的最新拷貝在http://www.math.u-bordeaux.fr/~cohen/可得到。
實施例的第四例單次標(biāo)量乘法在相加地寫入的Abelian組G中單個標(biāo)量乘法,與以上的實施例的第一例(單個指數(shù))相比較,是通過明顯的替代[以<-->標(biāo)量乘法中的中性元素“0”,“加倍”,“求和”,來代替取冪中的中性元素“1”,“平方”,“乘積”]而得到的,并被顯示在下面的近于在線重新編碼的實施例的第四例的意義中,作為一個算法,其中給定以下參數(shù)-Abelian組G的基本元素g,-具有n比特的整數(shù)e,-窗口寬度w,以及-塊或部分的寬度L>>w;輸出(單次)標(biāo)量乘法e·g步驟1.x←0步驟2. 則e=Σk=0r-1ek2kLfor0≤ek<2L]]>步驟3.對于k=r-1直到0,進(jìn)行{(a)重新編碼(ek)→ek=Σj=0Lbj2j]]>(b)如果bL≠0則x←x+bLg(c)對于j=L-1直到0,進(jìn)行{(i)x←2x(ii)x←x+bjg}}步驟4.返回x類似于實施例的第一例,應(yīng)當(dāng)指出,在L比特后可能發(fā)生的是,以上的算法在一行中實行兩組乘法,而不是僅僅一組乘法。這是如果在一個塊ei(=一個指數(shù)部分ei)代表非偶數(shù)時和如果在下一個塊ei+1(=下一個指數(shù)部分ei+1)的重新編碼長于一個系數(shù)(bL不等于零)時發(fā)生的。
實施例的第五例多次標(biāo)量乘法以上根據(jù)實施例的第四例的算法(單次標(biāo)量乘法)可變換成多次(標(biāo)量)乘法方法。這里,在相加地寫入的Abelian組G中多次標(biāo)量乘法,與以上的實施例的第二例(多次取冪)相比較,是通過明顯的替代[用<-->多次標(biāo)量乘法中的中性元素“0”,“加倍”,“求和”,來取代多次取冪中的中性元素“1”,“平方”,“乘積”]得到的,并被顯示在下面的近于在線重新編碼的實施例的第五例的含義中如果給定組元素g1,…,gdεG和指數(shù)e1…,ed,其中d>1,以及要計算∑i=1dei·gi,則首先決定使用指數(shù)e1,…,ed·,的稀疏重新編碼,然后使用“平方與乘法”循環(huán)首先,計算和存儲所有的乘法c·gi,其中c是許可的正系數(shù)。然后把臨時變量x設(shè)置為0εG。對于j=n,n-1,…,0,,首先把x加倍,以及對于i=1,…,d,把算子ei,j·gi加到加倍過的x,其中ei,j是在ei的重新編碼中2j的系數(shù)。結(jié)束時,臨時變量x包含所需結(jié)果。
這個方法也被稱為快速乘法運(yùn)算;正如在按照實施例的第四例的情形下,希望再次要保持良好的從右到左的重新編碼的優(yōu)點而不必使用太多的存儲器。
以下的變例實行近乎在線的重新編碼,也就是說,幾乎是在快速的多次標(biāo)量乘法運(yùn)算期間或在快速多次標(biāo)量乘法運(yùn)算之后的不久,其中在算法中給定以下參數(shù)-Abelian組G的基本元素g1,…,gd,-每個至多具有n比特的整數(shù)e1,…,ed(d>1),-窗口寬度w,-塊或部分寬度L>>w,以及-為系數(shù)組中所有的c的預(yù)先計算的乘數(shù)c·gi;輸出多個標(biāo)量乘積∑i=1dei’gi步驟1.x←0步驟2. 則ei=Σk=0r-1ei,k2kL,]]>對于0≤ei,k<2L和i=1,…,d步驟3.對于k=r-1直到0,進(jìn)行{(a)對于i=1到d,進(jìn)行{重新編碼(ei,k)→ei,k=Σj=0Lbi,j2j]]>如果bi,L≠0則x←x+bi,Lgi}(b)對于j=L-1直到0,進(jìn)行{(i)x←2x(ii)對于i=1到d,進(jìn)行{如果bi,L≠0則x←x+bi,j·gi}步驟4.返回x作為本說明的最后部分,下面給出在本文中提到的數(shù)目、元素、指數(shù)、組、下標(biāo)、系數(shù)、集、參數(shù)、標(biāo)量、變量和數(shù)字的列表。
bi,j系數(shù),bi,L分配給2的最高冪2L的系數(shù),c許可的正的系數(shù),C有限的整數(shù)集,
d來自組G的(基本或組)元素gi的數(shù)目,=被分配給(基本或組)元素gi的指數(shù)或標(biāo)量ei的數(shù)目,e指數(shù),尤其是在單次取冪的整數(shù)指數(shù),或標(biāo)量,尤其是在單次標(biāo)量乘法中的整數(shù)標(biāo)量,ei指數(shù),尤其是在多次取冪的整數(shù)指數(shù),或標(biāo)量,尤其是在多次標(biāo)量乘法中的整數(shù)標(biāo)量,ei,k-1跟隨在(指數(shù)或標(biāo)量)塊或(指數(shù)或標(biāo)量)部分ei,k后面的(指數(shù)或標(biāo)量)塊或(指數(shù)或標(biāo)量)部分,ei,k被劃分的指數(shù)或標(biāo)量ei的(指數(shù)或標(biāo)量)塊或(指數(shù)或標(biāo)量)部分,g在單次取冪的情形下或在單次標(biāo)量乘法的情形下的(基本或組)元素,gi在多次取冪的情形下或在多次標(biāo)量乘法的情形下的(基本或組)元素,G組,尤其是Abelian組,i下標(biāo),j下標(biāo),尤其是求和下標(biāo),k變量,尤其是加下標(biāo)的變量,L(指數(shù)或標(biāo)量)塊的寬度或(指數(shù)或標(biāo)量)部分的寬度,尤其是(指數(shù)或標(biāo)量)塊的寬度或(指數(shù)或標(biāo)量)部分的寬度的比特率,n最大比特率或最大比特長度,r指數(shù)或標(biāo)量)塊或(指數(shù)或標(biāo)量)部分ei,k的數(shù)目,w參數(shù),x臨時變量。
權(quán)利要求
1.一種藉助在每種情況下的至少一個指數(shù)或標(biāo)量(ei)對元素(gi)進(jìn)行多次取冪(∏i=1dgiei)或多次標(biāo)量乘法(∑i=1dei·gi)的方法,該至少一個指數(shù)或標(biāo)量(ei)尤其是一個在每種情況下具有最大比特率(n)或比特長度的整數(shù)指數(shù)或標(biāo)量,該方法尤其是藉助于至少一個指數(shù)或標(biāo)量(e)對元素(g)進(jìn)行取冪(ge)或標(biāo)量乘法(e’g),該至少一個指數(shù)或標(biāo)量(ei)尤其是一個在每種情況下具有最大比特率(n)或比特長度的整數(shù)指數(shù)或標(biāo)量,該元素(gi’,g)從至少一個組(G)例如Abelian組得出,它-在(多次)取冪的情形下,尤其是以相乘來表示,以及-在(多次)標(biāo)量乘法的情形下,尤其是以相加來表示,其特征在于以下的方法步驟[a.1]計算和存儲或[a.2]從至少一個存儲器檢索所有的冪(gic)或所有的乘法(c·gi),其中c是許可的正系數(shù);[b]把每個指數(shù)或標(biāo)量(ei)劃分成多個塊或多個具有由特定的比特率(L)所規(guī)定的塊或部分的寬度的部分(ei,k),;以及[c]分別對這些塊或部分(ei,k)進(jìn)行重新編碼。
2.如權(quán)利要求1中要求的方法,其特征在于,指數(shù)或標(biāo)量(ei)以劃分的形式ei=∑k=0rei,k2kL,來表示,其中-r被規(guī)定為塊或部分(ei,k)的數(shù)目,尤其是塊或部分的寬度與最大比特率(n)和比特率(L)的整數(shù)商,以及-0≤ei,k<2L。
3.如權(quán)利要求1或2中要求的方法,其特征在于,塊或部分的寬度(L)被選擇為-明顯地大于參數(shù)(w),該參數(shù)相應(yīng)于在其中讀出各個指數(shù)或標(biāo)量(ei)的比特的窗口寬度,尤其是該寬度的上限,以及-明顯地短于每個指數(shù)或標(biāo)量(ei)的最大長度,尤其是在方法步驟[a.1]和/或[a.2]以前所選擇的。
4.如權(quán)利要求1到3的至少一項中要求的方法,其特征在于,在(多次)取冪的情形下,對于每個指數(shù)(ei)的各塊或各部分(ei,k)的每一個,對塊或部分(ei,k)重新編碼的方法步驟[c]被劃分成以下各子步驟[c.1]把臨時變量(x)設(shè)置為標(biāo)準(zhǔn)化數(shù)值,尤其是組(G)中的元素的數(shù)值1,它相對于被分配給該組(G)的組運(yùn)算是中性的;[c.2]把變量(k)連續(xù)地設(shè)置為數(shù)值r-1,r-2,...,0,其中對于變量(k)的每個數(shù)值k=r-1,r-2,...,0執(zhí)行以下的子步驟[c.2.i]對于下標(biāo)(i)的每個值i=1,2,...,d,其中d被規(guī)定為元素(gi)的數(shù)目,特別地取決于被分配給元素(gi)的指數(shù)(ei)的數(shù)目[c.2.i.a]把塊或部分(ei)重新編碼以作為由在每種情況下根據(jù)至少一個有限的整數(shù)集(C)導(dǎo)出的至少一個系數(shù)(bi,j)加權(quán)的2的冪(2j)的和值(∑j=0Lbi,j2j);[c.2.i.b]如果被分配給2的最高乘冪(2L)的系數(shù)bi,L不趨零,則把臨時變量(x)設(shè)置為臨時變量(x)與元件(gi)的乘冪(gibi,L)的乘積,該元素是被分配給2的最高乘冪(2L)的系數(shù)(bi,L);[c.2.ii]對于下標(biāo)(j)的每個數(shù)值j=L-1,L-2,...,0[c.2.ii.a]將臨時變量(x)進(jìn)行平方;[c.2.ii.b]對于下標(biāo)(i)的每個數(shù)值i=1,2,...,d如果被分配給2的乘冪(2j)的(bi,j)不趨零,則把臨時變量(x)設(shè)置為臨時變量(x)與被分配給2的冪(2j)的各個系數(shù)(bi,j)的元素gi的冪(gibi,j)的乘積;以及在分別對塊或部分(ei,k)重新編碼的方法步驟[c]后,返回臨時變量(x)。
5.如權(quán)利要求1到3的至少一項中要求的方法,其特征在于,在(多次)標(biāo)量乘法的情形下,對塊或部分(ei,k)重新編碼的方法步驟[c]能被劃分成用于每個指數(shù)(ei)的各個單獨(dú)的塊或各個單獨(dú)的部分(ei,k)的以下的子步驟[c.1]把暫時變量(x)設(shè)置為標(biāo)準(zhǔn)化數(shù)值,尤其是組(G)的元素的數(shù)值0,它相對于被分配給組(G)的組運(yùn)算是中性的;[c.2]相繼地把變量(k)設(shè)置為數(shù)值r-1,r-2,...,0,其中對于變量(k)的每個數(shù)值k=r-1,r-2,...,0執(zhí)行以下的子步驟[c.2.i]對于下標(biāo)(i)的每個值i=1,2,...,d,其中d被定義為元素(gi)的數(shù)目,特別地取決于被分配給元素(gi)的指數(shù)(ei)的數(shù)目[c.2.i.a]把塊或部分(ei)重新編碼為由在每種情況下中由至少一個有限的整數(shù)集(C)導(dǎo)出的至少一個系數(shù)(bi,j)加權(quán)的2的乘冪(2j)的和值(∑j=0Lbi,j2j);[c.2.i.b]如果被分配給2的最高冪(2L)的系數(shù)(bi,L)不趨零,則把臨時變量(x)設(shè)置為臨時變量(x)與被分配給2的最高冪(2L)的系數(shù)(bi,L)的元素(gi)的乘積(bi,L·gi)的和值;[c.2.ii]對于下標(biāo)(j)的每個數(shù)值j=L-1,L-2,...,0[c.2.ii.a]將臨時變量(x)進(jìn)行平方;[c.2.ii.b]對于下標(biāo)(i)的每個數(shù)值i=1,2,...,d如果被分配給2的冪(2j)的(bi,j)不趨零,則把臨時變量(x)設(shè)置為臨時變量(x)與被分配給2的冪(2j)的各個系數(shù)(bi,j)的元素(gi)的乘積(bi,L·gi)的和值;以及在分別對塊或部分(ei,k)的重新編碼的方法步驟[c]后,返回臨時變量(x)。
6.如權(quán)利要求1到5的至少一項中要求的方法,其特征在于,-塊的重新編碼,或部分(ei,k)的重新編碼被使用一次,以及-其中存儲重新編碼的塊或重新編碼的部分(ei,k)的存儲器單元被使用來對下一個塊或下一個部分(ei,k-1)重新編碼。
7.如權(quán)利要求1到6的至少一項中要求的方法,其特征在于,該方法在被分配給特別是至少一個芯片卡和/或特別是至少一個智能卡的至少一個微處理器上實施。
8.按照如權(quán)利要求1到7的至少一項中所要求的方法而工作的微處理器。
9.具有如權(quán)利要求8中要求的至少一個微處理器的設(shè)備,特別是芯片卡和/或特別是智能卡。
10.如權(quán)利要求1到7的至少一項中要求的方法,和/或如權(quán)利要求8中要求的至少一個微處理器,和/或如權(quán)利要求9中要求的至少一個設(shè)備,特別是至少一個芯片卡和/或特別是至少一個智能卡,在至少一個加密系統(tǒng)中,特別是在至少一個公共密鑰加密系統(tǒng)中,在至少一個密鑰交換系統(tǒng)中,或在至少一個簽名系統(tǒng)中的使用。
全文摘要
為了進(jìn)一步開發(fā)一種方法,該方法是一種藉助在每種情況下的至少一個指數(shù)或標(biāo)量(e
文檔編號G06F7/72GK1930547SQ200580006980
公開日2007年3月14日 申請日期2005年2月18日 優(yōu)先權(quán)日2004年3月4日
發(fā)明者R·阿文茨 申請人:皇家飛利浦電子股份有限公司