專利名稱::加密計算方法、加密系統(tǒng)和計算機程序的制作方法
技術(shù)領域:
:本發(fā)明涉及加密計算方法、加密系統(tǒng)和計算機程序。更具體地說,本發(fā)明涉及在超橢圓曲線加密術(shù)(hyperellipticcurvecryptography)中實現(xiàn)較快的標量乘法的加密計算方法、加密系統(tǒng)和計算機程序。
背景技術(shù):
:隨著在網(wǎng)絡通信和電子商務交易方面的最新進步,確保通信的安全變得越來越重要。用于確保安全的一種方法是加密術(shù)?,F(xiàn)在,通過使用各種加密技術(shù)來進行通信。例如,已經(jīng)將這樣的系統(tǒng)投入到實際使用中將加密模塊嵌入在諸如IC卡之類的小型裝置中,并且在IC卡和作為數(shù)據(jù)讀/寫裝置的讀/寫器之間執(zhí)行數(shù)據(jù)傳送/接收,從而執(zhí)行驗證處理、或者對所傳送/接收的數(shù)據(jù)進行加密/解密。例如,在諸如火車站或購物中心的入口門之類的各種門口廣泛使用執(zhí)行加密處理的IC,而且,對于更小尺寸和更快處理速度的需求正在變得越來越迫切。將加密方案大致分為公用密鑰方案(commonkeyscheme)和公開密鑰方案(publickeyscheme)。也將公用密鑰方案稱為對稱加密術(shù)。在公用密鑰方案中,發(fā)送者和接收者都擁有共同密鑰。公用密鑰方案的典型應用是DES(數(shù)據(jù)加密標準)。DES算法的特征特點是可以使用基本上相同的算法來執(zhí)行加密和解密。采用與上述公用密鑰方案不同的、由發(fā)送者擁有的密鑰與由接收者擁有的密鑰不相同的配置的方案是公開密鑰方案、或者非對稱加密術(shù)。與將共同密鑰用于加密和解密的共同密鑰加密術(shù)不同,公共密鑰加密術(shù)在密鑰管理方面更加優(yōu)越,這是因為只有一個特定的人需要擁有必須被秘密保存的秘密秘鑰。然而,與共同密鑰加密術(shù)相比較,公共密鑰加密術(shù)具有較低的數(shù)據(jù)處理速度。因此,總體來說,經(jīng)常將公共密鑰加密術(shù)用于秘密密鑰、數(shù)字簽名等的分發(fā),因為這樣的應用具有較小的數(shù)據(jù)量。公共密鑰加密術(shù)的公知例子包括RSA(Rivest-Shamir-Adleman)加密術(shù)和ECC(EllipticCurveCryptograph,橢圓曲線加密術(shù))。橢圓曲線加密術(shù)使用素域上的橢圓曲線y2=x3+ax+b(其中4a3+27b2≠0)、兩個擴展域上的橢圓曲線y2+xy=x3+ax2+b(其中b≠0)等。包括被加到這些曲線的每一個上的點上的無限點(O)的集合形成針對加法的有限群,而無限點O變?yōu)槠鋯挝辉?。在下面的描述中,由運算符+來表示在該有限群中的點的加法。將在有限群中的兩個不同點P、Q的加法P+Q稱為“點加法”,而將有限群中的兩個點P的加法P+P=2P稱為“點加倍(pointdoubling)”。將點P與其自己加法k次的運算,也就是,尋找點P+P++P=kP的運算,稱為“點的標量乘法”。眾所周知,可以用點加法和點加倍來計算點的標量乘法。在針對公共密鑰加密術(shù)的IEEEp1363/D13標準規(guī)范中描述了在素域上在橢圓曲線上以及在兩個擴展域上的橢圓曲線上、在仿射坐標(x,y)或者射影坐標(X,Y,Z)中的點的標量乘法。將橢圓曲線加密術(shù)進行推廣的方案例子是Koblitz和Cantor所提議的HECC(超橢圓曲線加密術(shù))系統(tǒng)。在非專利文獻1和2中描述了超橢圓曲線加密術(shù)。在橢圓曲線加密術(shù)中,如果P代表在有限域Fq上所定義的橢圓曲線上的點,而Q代表點kP(k∈Z),也就是,作為點P的標量乘法的結(jié)果而獲得的點,則可以作為離散對數(shù)問題來解從Q中求解k的問題。在另一方面,在超橢圓曲線加密術(shù)中,如果D1代表與點的形式和(formalsum)相等的除數(shù)而D2代表被定義為標量乘法kD1的除數(shù),則作為公共密鑰加密術(shù)問題,從D2中求解k的問題可以被當作在超橢圓曲線上在雅可比簇中的離散對數(shù)問題來處理。在超橢圓曲線的情況中,對該曲線定性的值是虧格(genus)g。讓q等于pn(q=pn),其中p代表素數(shù)而n代表正整數(shù)。在這種情況下,由下面等式來定義作為虧格g的曲線在有限域Fq上定義的超橢圓曲線Cy2+h(x)y=f(x)其中h(x),f(x)∈Fq[x],f(x)是2g+1次的首一多項式。將超橢圓曲線C上與點P=(x,y)相對的點-P定義為-P=(x,y+h(x))。將P=-P的點稱為分歧點(ramificationpoint)。眾所周知,假設與橢圓曲線加密術(shù)的安全性的等級相同,則可以將超橢圓加密術(shù)的定義域的處理規(guī)模(位數(shù)量)減少到橢圓曲線加密術(shù)的定義域的處理規(guī)模的1/g。從實施的角度來說,小處理規(guī)模是有利的,所以將此作為超橢圓加密術(shù)的一個優(yōu)點。下面,將描述超橢圓加密術(shù)的基本原理。如上所述,在超橢圓加密術(shù)中,可以將從D2中求解k的問題作為超橢圓曲線上的雅可比簇中的離散對數(shù)問題處理,因此可以作為公共密鑰加密術(shù)中的問題處理,其中D1是與點的形式和相等的除數(shù),而D2是被定義為標量乘積kD1的除數(shù)。在這種情況下,除數(shù)等于點的形式和并且可以以下面形式表示[公式1]D=ΣimiPi]]>進一步,可以以下面形式表示減半的除數(shù)[公式2]D=ΣimiPi-(Σimi)P∞,mi≥0]]>然而,對于Pi=(xi,yi)和i≠j,關(guān)系Pi≠Pj為真。將上述等式中的∑mi稱為除數(shù)D的權(quán)重。進一步,將具有不超過虧格g的權(quán)重的減半的除數(shù)稱為減小的除數(shù)。使用多項式U和V∈Fq[x],可以將超橢圓曲線上在雅可比簇中的任何減半除數(shù)D表示為D=(U,V)。將該表達式稱為Mumford表達式。在例如非專利文獻3中描述了Mumford表達式。U=Π(x-xi)mi]]>V(xi)=y(tǒng)iV(x)2+V(x)h(x)-f(x)≡0modU(x),degV<degU通過使用Mumford表達式,可以有多項式集合來表示針對虧格為2的任何減小的除數(shù)D,所述每一個多項式具有在多項式系數(shù)中所設定的有限域上的元素并且具有不超過2的階數(shù)。也就是,可以將減小的除數(shù)表示為(U,V)=(x2+u1x+u0,v1x+v0),或者(U,V)=(x+x0,y0)。進一步,將零元素表示為(U,V)=(1,0)=O下面,將描述在超橢圓曲線加密術(shù)中使用的除數(shù)的標量乘法??梢詫⒊龜?shù)的標量乘法執(zhí)行為除數(shù)的加法的組合,將其稱為加法算法,以及除數(shù)的加倍。將在下面描述主要的加法算法。第一個所提出的實際算法是Cantor算法。在例如非專利文獻1和2中描述了Cantor算法??梢詫⒃揅antor算法應用于在任何虧格的超橢圓曲線上的除數(shù)。然而,與橢圓曲線算法相比較,這種Cantor算法的缺點是該算法較復雜并且具有較高的復雜度。哈利(Harley)提出了一種算法,在其中通過將算法限制到虧格為2的超橢圓曲線,根據(jù)除數(shù)的權(quán)重來進行逐個情況的分化(differentiation),并且針對每個獨立情況執(zhí)行優(yōu)化以實現(xiàn)復雜度的降低。從那時起,哈利算法已經(jīng)成為關(guān)于HECC(超橢圓曲線加密術(shù))中的計算算法的改進和擴展所進行的最近的廣泛研究的主題。(a)根據(jù)哈利算法,將定義域用于素域,并且采用Mumford表達式作為在帶有虧格為2的曲線上的除數(shù)的表達式。目標是減小這種算法的復雜度的研究的例子包括在非專利文獻4、非專利文獻5、非專利文獻6等中所公開的那些。(b)此外,在非專利文獻7和非專利文獻8的每一個中都報導了關(guān)于兩個擴展域來擴展定義域的處理的例子。(c)進一步,非專利文獻11、12、6和13公開了這樣的研究根據(jù)該研究,通過使用Mumford表達式來表示除數(shù)并且采用加權(quán)的坐標來實現(xiàn)復雜性降低。將參照圖1描述使用哈利算法的處理。應該注意,本發(fā)明涉及在特征為2的有限域上所定義的虧格為2的超橢圓曲線。在下面的描述中,假設曲線的虧格為2而且定義域的特征為2。圖1A是示出除數(shù)的加法D1+D2的處理示例,其中D1和D2每一個都表示帶有虧格為2的除數(shù)。應該注意,將除數(shù)D1和D2表示如下D1=(U1,V1),D2=(U2,V2)。首先,根據(jù)除數(shù)的權(quán)重值進行逐情況的分化。也就是,根據(jù)[D1+D2]的相應權(quán)重的值,針對下面情況對該處理進行分化(1)權(quán)重1+權(quán)重2(2)權(quán)重2+權(quán)重1(3)例外處理1隨后,在將權(quán)重2加到權(quán)重2自身的情況中,即在情況(1)中權(quán)重1+權(quán)重2,如果針對兩個除數(shù)D1=(U1,V1)和D2=(U2,V2)的最大公分母gcd(U1,U2)是1(gcd(U1,U2)=1),則兩個除數(shù)D1=(U1,V1)和D2=(U2,V2)不包括公共點或者彼此相反的點。在這種情況下,根據(jù)下面進行加法(1a)HarleyADD也就是,執(zhí)行哈利算法。參照在例如非專利文獻7中所公開的最頻繁情況(MostFrequentCase)來處理(1a)HarleyADD的處理。最頻繁情況是在用于球針對虧格為2的除數(shù)之和D1+D2的處理之外具有最高發(fā)生概率的情況。(1a)HarleyADD的處理發(fā)生的概率非常高。一些其他例外處理發(fā)生的概率非常低。如果不滿足最頻繁情況的條件,也就是,如果不滿足針對兩個除數(shù)D1=(U1,V1)和D2=(U2,V2)的最大公分母gcd(U1,U2)=1,則(1b)執(zhí)行例外處理2。此外,針對權(quán)重2+權(quán)重1的情況(2),以相同的方式,檢查是否有g(shù)cd(U1,U2)=1,如果滿足gcd(U1,U2)=1,則執(zhí)行ExHarADD2+1→2(2a),而如果不滿足gcd(U1,U2)=1,則執(zhí)行(2b)ExceptionalProcessing3(2b)針對除了上述情況(1)和(2)的那些之外的權(quán)重設定的情況執(zhí)行在情況(3)中的例外處理1。應該注意,在非專利文獻8(表1、2)中詳細公開了上述針對虧格為2的加法處理的算法。在圖1(B)中示出了針對虧格為2的加倍操作的流程。將加倍運算處理表示為D+D=2D。使得D1=(U1,V1)是輸入,而D2=[2]D1是輸出。當在加法的情況中,根據(jù)除數(shù)D的權(quán)重來執(zhí)行不同種類的處理,如下(4)權(quán)重2(5)權(quán)重1(6)權(quán)重0在權(quán)重2的情況(4)中,檢查除數(shù)是否包括分歧點。如果不包括分歧點,則執(zhí)行(4a)HarleyDBL的處理。如果除數(shù)包括分歧點,則執(zhí)行(4b)例外處理6。在例如非專利文獻7中將HarleyDBL處理的算法公開為最頻繁情況。下面示出HarleyDBL處理的算法。Algorithm1HarleyDBLInputD1=(U1,V1)OutputD2=(U2,V2)Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,U1)=11.U1′←U122.S←h-1(f+hV1+V12)/U1modU13.V1′←SU1+V14.U2′←(f+hV1′+V1′2)/U′5.U2←MakeMonic(U2′)6.V2←V1′+hmodU27.returnD2=(U2,V2)如將在后面描述的那樣,該處理發(fā)生概率非常高。一些其他例外處理的發(fā)生概率非常低。如上所述,如果不滿足最頻繁情況的條件,則執(zhí)行例外處理6。此外,在權(quán)重1的情況中,檢查是否有g(shù)cd(U1,U2)=1,并且執(zhí)行(5a)的處理、ExHarDBL1+1→2、或者例外處理7作為處理(bb)。在非專利文獻8[4.12.(a)]中公開了ExHarDBL1+1→2的算法。如上所述,將HarleyADD和HarleyDBL當作最頻繁情況。如果除數(shù)被隨機產(chǎn)生并且經(jīng)歷加法或者加倍,則HarleyADD或者HarleyDBL處理發(fā)生的概率非常高。應該注意,在例如非專利文獻14中給出了關(guān)于HarleyADD和HarleyDBL變?yōu)樽铑l繁情況的描述。根據(jù)非專利文獻14,除了上述最頻繁情況以外的處理發(fā)生的概率是O(1/q),其中q表示定義域中的元素數(shù)量。由于qg是在安全加密應用中帶有大約160的所需要大小的大數(shù),所以實際上可以認為只有HarleyADD或者HarleyDBL發(fā)生。因此,當通過使用哈利算法或者其改進算法,實施HECC(超橢圓曲線加密)的加法算法作為諸如IC之類的加密計算裝置時,經(jīng)常是這樣的情況只實施HarleyADD,和HarleyDBL,不執(zhí)行其他類型的具有幾乎為零的發(fā)生概率的復雜例外處理。應用于這種情況中的例外處理的方法的例子包括不需要依據(jù)權(quán)重值進行逐情況的分化的Cantor算法的執(zhí)行。由于較大的虧格,所以復雜的例外處理的負載較大,在非專利文獻9和10中具體描述了這種實施方法。下面將描述在HECC(超橢圓曲線加密)的算法中的除數(shù)的標量乘法。在HECC(超橢圓曲線加密)的算法中,將除數(shù)的標量乘法作為超橢圓加法和超橢圓加倍的組合來執(zhí)行。將通過采用基本二進制方法和基本的總是加倍與加法方法(basicdouble-and-add-alwaysmethod)作為例子來描述標量加法的算法。如上所述,在橢圓曲線加密術(shù)中,假設P表示在有限域Fq上所定義的橢圓曲線上的點,Q表示點kP(k∈Z),也就是,作為點P的矢量乘法的結(jié)果而獲得點,則可以將從Q中找到k的問題解為離散對數(shù)問題。在另一方面,在超橢圓曲線加密術(shù)中,假設D1表示與點的形式和相等的除數(shù),而D2表示被定義為標量乘法kD1的除數(shù),則作為公共密鑰加密術(shù)問題,從D2中找到k的問題可以被作為在超橢圓曲線上在雅可比簇中的離散對數(shù)問題對待。在這種情況下,標量值的二進制表示d作為要被應用標量乘法(D=dD)的乘數(shù)被如下給出d=(dl-1,...,d0)其中dl-1=1,以及dl-2,...,0=1或0作為針對標量乘法的算法,基本二進制方法的計算算法包括下面二進制(左到右)方法;和二進制(右到左)方法根據(jù)二進制(右到左)方法,從最低有效位中掃描d,并且如果di=1,則加入[2i]D。下面示出二進制(右到左)的算法(算法2)。Aleorithm2binary(right-to-left)methodInputD0OutputD=dD0T←D0D←Oforifrom0tol-1{ifdi=1thenD←D+T//AdditionHarleyADDT←2T//DoublingHarleyDBL}returnD在另一方面,根據(jù)二進制(左到右)方法,從最高有效位掃描d,針對每個位將D加倍,而且如果di=1,則加入基點(basepoint)。下面示出二進制(左到右)方法的算法(算法3)。Algorithm3binary(left-to-right)methodInputD0OutputD=dD0D←D0forifroml-2downto0{D←[2]D//DoublingHarleyDBLifdi=1thenD←D+D0//AdditionHarleyADD}returnD下面,將描述基點產(chǎn)生處理。當將標量乘法應用到加密術(shù)時,將輸入所需要的除數(shù)D0分為下面兩種類型(1)事先確定除數(shù);和(2)除數(shù)不可事先確定并且隨機地產(chǎn)生在事先確定除數(shù)的類型(1)的情況中,將輸入除數(shù)稱為基點。將用于產(chǎn)生基點的一般算法描述如下。(a)隨機選擇在定義域Fq上的g個元素并且產(chǎn)生在超橢圓曲線上的g個點Pi(其中i=1,...,g)。(a1)隨機選擇的元素每個都被用作x坐標xi(其中i=1...g)。然后,確定與xi對應的y坐標,從而將每個點(x,y)都放置在超橢圓曲線上。(b)使得D0=(U(x),V(x))表示基點的除數(shù)。(b1)U(x)=(x-x1)(x-x2)...(x-xg)(b2)確定等式V(x)=vg-1xg-1+Vg-2xg-2+...+v0的系數(shù)vi。例如,如果所產(chǎn)生的點全部彼此不同,則可以從等式V(xi)=y(tǒng)i中找到系數(shù)vi。(c)根據(jù)上述算法所產(chǎn)生的除數(shù)每個都是帶有權(quán)重g的除數(shù)。如果將標量乘法的計算應用于加密術(shù),則產(chǎn)生輸入所需要的除數(shù)D0,也就是基點。如果將事先所確定的除數(shù)應用于產(chǎn)生基點,則可能通過執(zhí)行上述處理(a)到(c)來找到帶有權(quán)重g的除數(shù)作為可以被用作基點的除數(shù)。進一步,關(guān)于橢圓曲線加密術(shù),已經(jīng)提出了二等分有理點。例如,在非專利文獻15中公開了在橢圓曲線加密術(shù)中二等分有理點。在所公開的處理中,當計算有理點的標量乘法時,替代于使用加法和加倍,使用加法和二等分。通??梢员燃颖陡斓赜嬎銠E圓曲線加密術(shù)中的二等分。作為結(jié)果,可以更快地計算使用二等分的標量乘法。非專利文獻16報告了這樣的情況使用英特爾公司提供的[IntelPentiumIII800MHz]作為處理的軟件實施,關(guān)于定義域Fq,q=2163,二等分比加倍快大約2.1倍,而且關(guān)于定義域Fq,q=2233,二等分比加倍大約快2.6倍。由于超橢圓曲線加密術(shù)代表橢圓曲線加密術(shù)的一般情況,所以可能存在將橢圓曲線加密術(shù)中所使用的操作擴展到超橢圓曲線加密術(shù)的情況。例如,非專利文獻17和18公開了將Montgomery方法(由于y坐標不用于橢圓曲線加密術(shù)中的計算所以該方法實現(xiàn)快速計算)擴展到超橢圓曲線加密術(shù)的情況??梢灶A計,如果在超橢圓曲線加密術(shù)中也可以實現(xiàn)比加倍更快的二等分,則可以比現(xiàn)有技術(shù)更快地計算除數(shù)的標量乘法。然而,在現(xiàn)有技術(shù)中不知道這種二等分運算的使用。應該注意,非專利文獻19是呈現(xiàn)了使用加密的快速計算技術(shù)的公開文獻的例子。E.Knudsen.COMPUTINGMETHODFORELLIPTICCURVECRYPTOGRAPHY,WO01/04742A1,18Jan2001[專利文獻2]R.Schroeppel.Ellipticcurvepointambiguityresolutionapparatusandmethod,WO01/35573A1,17May2000[非專利文獻1]N.Koblitz.Hyperellipticcurvecryptosystems.J.Cryptology,vol.1,No.3,pp.139-150,1989[非專利文獻2]D.G.Cantor.ComputingintheJacobianofhyperellipticcurve.Math.Comp.,Vol.48,No.177,pp,95-101,1987″D.Mumford,TatalecturesonthetaII,ProgressinMathematics,no.43,Birkhauser,1984.″[非專利文獻4]K.Matsuo,J.Chao,andS.Tsujii.FastGenustwohyperellipticcurvecryptosystems.TechnicalReportISEC2001-31,IEICEJapan,2001[非專利文獻5]M.Takahashi.ImprovingHarleyalgorithmsforJacobiansofgenus2hyperellipticcurves.SCIS2002.(日語)[非專利文獻6]T.Lange.Inversionoperation-freearithmeticongenus2hyperellipticcurves.CryptologyePrintArchive,2002/147,IACR,2002[非專利文獻7]T.Sugizaki,K.Matsuo,J.Chao,andS.Tsujii.AnextensionofHarleyadditionalgorithmforhyperellipticcurvesoverfinitefieldsofcharacteristictwo.ISEC2002-9,IEICE,2001[非專利文獻8]T.Lange,Efficientarithmeticongenus2hyperellipticcurvesoverfinitefieldsviaexplicitformulae.CryptologyePrintArchive,2002/121,IACR,2002[非專利文獻9]J.Kuroki,M.Gonda,K.Masuo,J.ChaoandS.Tsujii.Fastgenusthreehyperellipitccurvecryptosystems.SCIS2002[非專利文獻10]J.Pelzl,T.Wollinger,J.Guajardo,andC.Paar.HyperellipticcurveCryptosystemsClosingthePerformanceGaptoEllipticCurves.CryptologyePrintArchive,2003/026,IACR,2003[非專利文獻11]Y.Miyamoto,H.Doi,K.Matsuo,J.ChaoandS.Tsujii.Afastadditionalgorithmofgenustwohyperellipticcurves.SCIS2002.(日語)[非專利文獻12]N.Takahashi,H.MorimotoandA.Miyaji.Efficientexponentiationongenustwohyperellipticcurves(II).ISEC2002-145,IEICE,2003.(日語)[非專利文獻13]T.Lange.Weighedcoordinateongenus2hyperellipitccurve.CryptologyePrintArchive,2002/153,IACR,2002N.Nagao.ImprovinggrouplawalgorithmsforJacobiansofhyperellipticcurves.ANTS-IV,LNCS1838,pp.439-448,Springer-Verlag,2000[非專利文獻15]E.Knudsen.EllipticScalarMultiplicaionUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999[非專利文獻16]K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf[非專利文獻17]S.Dquesne.MontgomeryScalarMultiplicationforGenus2Curves.ANTS-VI,LNCS3076,pp.153-168,2004.T.Lange.MontgomeryAdditionforGenusTwoCurves.ANTS-VI,LNCS3076,pp.309-317,2004.T.Lange.EfficientDoublingonGenusTwoCurvesoverBinaryFields,SAC2004,pre-proceedings,pp.189-202,2004.
發(fā)明內(nèi)容與現(xiàn)在進入商業(yè)階段的ECC(橢圓曲線加密術(shù))算法相反,作為ECC(橢圓曲線加密術(shù))算法的擴展概念的HECC(超橢圓曲線加密術(shù)),當前正在學術(shù)范圍的層面上關(guān)于快速算法的構(gòu)件和它們的實施方法進行研究。然而,基于HECC(超橢圓曲線加密術(shù))的標量乘法的計算時間還與ECC(橢圓曲線加密術(shù))的計算時間相近,所以需要進一步增加計算速度。已經(jīng)在考慮到上述情況提出了本發(fā)明,因此本發(fā)明的目的是提供能夠使得HECC(超橢圓曲線加密術(shù))中的標量乘法的計算時間縮短以實現(xiàn)快速HECC(超橢圓曲線加密術(shù))處理的加密計算方法、加密系統(tǒng)和計算機程序。本發(fā)明的另一個目的是提供加密計算方法、加密系統(tǒng)和計算機程序,它們能夠找到允許橢圓曲線加密術(shù)中的二等分被擴展到超橢圓曲線加密術(shù)中以實現(xiàn)快速計算的算法、曲線參數(shù)和定義域,從而通過將二等分應用到超橢圓曲線加密術(shù)的計算處理來實現(xiàn)快速計算處理。根據(jù)本發(fā)明的第一方面,提供用于基于超橢圓曲線加密術(shù)執(zhí)行加密計算的加密計算方法,該方法包括計算步驟在超橢圓曲線上關(guān)于除數(shù)D的標量乘法計算中,執(zhí)行包括二等分作為計算處理的計算運算。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,計算步驟是執(zhí)行計算運算的步驟,包括關(guān)于在具有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,計算步驟是執(zhí)行計算運算的步驟,包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,計算步驟是執(zhí)行計算運算的步驟,包括關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,計算步驟是執(zhí)行計算運算的步驟,包括關(guān)于在具有h(x)=x作為參數(shù)的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,加密計算方法還包括查詢表的表查詢步驟,該表根據(jù)關(guān)于事先固定的除數(shù)D所計算的[1/2iD]的值記錄k1、k1′、(k0,k0′)中的哪個是正確的,而且計算步驟通過基于表的查詢的確定處理來執(zhí)行其中降低二等分的復雜度的計算處理。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,計算步驟包括通過應用下面關(guān)系表達式,通過乘法和加法處理而不執(zhí)行倒數(shù)運算(inversion)來計算倒數(shù)1/k1的值的步驟1/k1=h2+k1u21該表達式從二等分計算算法中得出,在該二等分計算算法中InputD2=(U2,V2),和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,加密計算方法執(zhí)行根據(jù)具有不應用1/u21作為輸入值的設定的算法的計算,在二等分計算算法中有InputD2=(U2,V2);和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。進一步,在根據(jù)本發(fā)明的加密計算方法的實施方式中,加密計算方法是用于執(zhí)行關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法的計算方法,并且計算步驟包括步驟將作為之前所計算的值的1/h12設定為輸入值;以及應用之前所計算的輸入值1/h12而不執(zhí)行計算倒數(shù)1/h12的處理。進一步,根據(jù)本發(fā)明的第二方面,提供基于超橢圓曲線加密術(shù)執(zhí)行加密計算的加密系統(tǒng),包括在關(guān)于在超橢圓曲線上的除數(shù)D計算標量乘法中執(zhí)行包括二等分作為計算處理的計算運算的計算執(zhí)行部分。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行計算運算,包括關(guān)于在具有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行計算運算,包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行計算運算,包括關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行計算運算,包括關(guān)于在具有h(x)=x作為參數(shù)的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,加密系統(tǒng)進一步包括存儲部分,其存儲根據(jù)關(guān)于事先固定的除數(shù)D所計算的[1/2iD]的值記錄k1、k1′、(k0,k0′)中的哪個是正確的表,而且計算執(zhí)行部分被配置為通過基于表的查詢的確定處理來執(zhí)行其中降低二等分的復雜度的計算處理。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為通過應用下面關(guān)系表達式,通過乘法和加法處理而不執(zhí)行倒數(shù)運算(inversion)來計算倒數(shù)1/k1的值1/k1=h2+k1u21該表達式從二等分計算算法中得出,在該二等分計算算法中InputD2=(U2,V2),和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行二等分計算算法,其中InputD2=(U2,V2);和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2,并且執(zhí)行根據(jù)具有不應用1/u21作為輸入值的設定的算法的計算。進一步,在根據(jù)本發(fā)明的加密系統(tǒng)的實施方式中,將計算執(zhí)行部分配置為執(zhí)行關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法的計算方法,并且執(zhí)行這樣的計算將作為之前所計算的值的1/h12設定為輸入值,應用之前所計算的輸入值1/h12而不執(zhí)行計算倒數(shù)1/h12的處理。進一步,根據(jù)本發(fā)明的第三方面,提供用于使得根據(jù)超橢圓曲線加密術(shù)的加密計算在計算機上被執(zhí)行的計算機程序,包括步驟在關(guān)于在超橢圓曲線上的除數(shù)D的標量乘法的計算中,執(zhí)行包括二等分作為計算處理的計算運算。應該注意,根據(jù)本發(fā)明的計算程序是關(guān)于計算機系統(tǒng)提供的計算機程序,所述計算機系統(tǒng)能夠通過以計算機可讀格式提供的存儲介質(zhì)或者通信介質(zhì)執(zhí)行各種程序代碼,記錄介質(zhì)是例如CD、FD或者MO,而通信介質(zhì)例如是因特網(wǎng)。通過以計算機可讀格式提供這種程序,在計算機系統(tǒng)上實現(xiàn)與該程序?qū)奶幚?。通過下面對本發(fā)明的實施方式的詳細描述和附圖,本發(fā)明的其他目的、特點和優(yōu)點將變得明顯。應該注意,在本說明書中所使用的術(shù)語系統(tǒng)指的是多個裝置的邏輯組合,而不限于相應結(jié)構(gòu)的裝置位于相同的機箱內(nèi)的情況。根據(jù)本發(fā)明的配置,將對橢圓曲線加密術(shù)的二等分擴展到超橢圓曲線加密術(shù)以實現(xiàn)快速計算。在使用對超橢圓曲線上的除數(shù)的計算的加密計算中,對處理施加較大負荷的計算運算是除數(shù)的標量乘法。因此,通過借助于根據(jù)上述本發(fā)明的處理來實現(xiàn)較快的標量乘法,從超橢圓曲線加密術(shù)的處理角度來,能夠?qū)崿F(xiàn)顯著的改進。根據(jù)本發(fā)明的實施方式,在關(guān)于在超橢圓曲線加密術(shù)的除數(shù)D的標量乘法中,可以通過執(zhí)行包括二等分作為計算處理的計算操作來實現(xiàn)較快的標量乘法。例如,通過執(zhí)行計算運算來實現(xiàn)快速計算,該計算運算包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上、在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上、或者在具有h(x)=x作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)在標量乘法中的二等分。根據(jù)本發(fā)明的配置,可以通過應用表來實現(xiàn)除數(shù)的標量乘法的復雜性的進一步降低以及因此帶來的更快的計算,所述表根據(jù)關(guān)于事先固定的除數(shù)D所計算的[1/2iD]的值記錄k1、k1′、(k0,k0′)中的哪個是正確的。根據(jù)本發(fā)明的配置,在關(guān)于超橢圓曲線加密術(shù)中的除數(shù)D的標量乘法中,執(zhí)行包括二等分的計算運算作為計算處理,并且應用用于減少在二等分計算處理中所執(zhí)行的倒數(shù)運算的數(shù)量的算法,從而使得能夠進一步降低除數(shù)的標量乘法的復雜度因此產(chǎn)生更快的計算。圖1是示出用于在虧格為2的曲線上在超橢圓曲線加密術(shù)中在標量乘法中的加法和加倍的處理的算法的示意圖;圖2是示出在虧格為2的曲線上在超橢圓曲線加密術(shù)中在逐情況的基礎上如何對加倍運算進行分化的示意圖;圖3是示出HEC_HLV的算法的流程圖;圖4是示出HEC_HLV2→1+1的算法的流程圖;圖5是示出HEC_HLV2→2+2的算法的流程圖;圖6是示出HEC_HLV1→2+2的算法的流程圖;圖7是示出執(zhí)行根據(jù)本發(fā)明的加密計算的加密系統(tǒng)的功能配置的框圖;和圖8是示出IC模塊的配置的例子的示意圖,該IC模塊作為執(zhí)行根據(jù)本發(fā)明的加密計算的加密處理執(zhí)行裝置的例子。具體實施例方式下面將參照附圖詳細描述根據(jù)本發(fā)明的加密系統(tǒng)和加密計算方法以及計算機程序。本發(fā)明提供關(guān)于HECC(超橢圓曲線加密術(shù))的快速計算方法,HECC表示橢圓曲線加密術(shù)的推廣。如上所述,在超橢圓曲線的情況中,將曲線定性的值是虧格g。假設p代表素數(shù),n代表正整數(shù),并且q=pn。在這種情況下,由下面等式來表示作為虧格g的曲線的在有限域Fq上所定義的超橢圓曲線Cy2+h(x)y=f(x)其中h(x),f(x)∈Fq[x],f(x)是2g+1次的首一多項式。將在超橢圓曲線C上與點P=(x,y)相對的點-P定義為-P=(x,y+h(x))。將P=-P的點稱為分歧點。眾所周知,假設與橢圓曲線加密術(shù)相同等級的安全性,可以將超橢圓曲線加密術(shù)的定義域的處理規(guī)模(或者位數(shù))減少到橢圓曲線加密術(shù)的定義域的處理規(guī)模的1/g。從實施的角度來說,小處理規(guī)模是有利的,這是超橢圓曲線加密術(shù)的一個優(yōu)點。下面,將描述超橢圓曲線加密術(shù)的基本原理。如上所述,在超橢圓加密術(shù)中,可以將從D2中求解k的問題當作在超橢圓曲線上的雅可比簇中的離散對數(shù)問題,因此可以將該問題當作公共密鑰加密術(shù)中的問題對待,其中D1是與點的形式和相等的除數(shù),而D2是被定義位標量乘法kD1的除數(shù)。在這種情況中,除數(shù)等于點的形式和并且可以用下面形式表示[公式7]D=ΣimiPi]]>進一步,可以由下面形成表示減半的除數(shù)[公式8]D=ΣimiPi-(Σimi)P∞,mi≥0]]>然而,對于Pi=(xi,yi)和i≠j,關(guān)系Pi≠Pj為真。將上面等式中的∑mi稱為除數(shù)D的權(quán)重。進一步,將具有不超過虧格g的權(quán)重的減半的除數(shù)稱為減小的除數(shù)。使用多項式U和V∈Fq[x],可以將在超橢圓曲線上在雅可比簇上的減半的除數(shù)D表示為D=(U,V)??梢詫⒃摫磉_式稱為Mumford表達式。U=Π(x-xi)mi]]>V(xi)=y(tǒng)iV(x)2+V(x)h(x)-f(x)≡0modU(x),degV<degU通過使用Mumford表達式,可以由多項式的集合來表示針對虧格為2的減小的除數(shù)D,所述多項式的每一個都具有在該多項式的系數(shù)中所設定的有限域上的元素并且具有不超過2的階數(shù)。也就是,可以將減小的除數(shù)表示為(U,V)=(x2+u1x+u0,v1x+v0),or(U,V)=(x+x0,y0)。進一步,將零元素表示為(U,V)=(1,0)=O。根據(jù)本發(fā)明,將在橢圓曲線加密術(shù)中的二等分運算擴展到超橢圓曲線加密術(shù)中,并且找到允許比加倍運算更快的計算的算法、曲線參數(shù)和定義域,從而實現(xiàn)將比加倍運算更快的二等分運算應用到超橢圓曲線加密術(shù)中的計算處理。下面,將把對本發(fā)明的實施方式的描述組織到兩個部分中。首先,將在第一部分中描述根據(jù)處理示例1到6的技術(shù)。(處理示例1提出的方法A1)計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例2提出的方法F1)計算在帶有參數(shù)h(x)=x2+h1x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例3提出的方法B1)計算在帶有參數(shù)h(x)=x2+x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例4提出的方法E1)計算在帶有參數(shù)h(x)=x的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例5提出的方法C1)當計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分時,產(chǎn)生所二等分指的兩個候選者,在帶有參數(shù)h(x)=x2+h1x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線、和在帶有參數(shù)h(x)=x2+x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線。在這種情況下,需要從兩個候選者中選擇帶有正確值的一個。當選擇正確的一個時,需要計算軌跡、乘法和有限域的平方根。兩個候選者中的哪一個是正確的取決于除數(shù)D。因此,如果除數(shù)D固定,則事先在表中保留關(guān)于兩個候選者中的哪一個正確的信息,并且當選擇正確值時對該表進行查詢,從而省略上述額外的計算。(處理示例6提出的方法D1)通過使用在處理示例1到5的每一個中所述的計算除數(shù)的二等分的方法來計算除數(shù)的標量乘法的方法。進一步,第二部分涉及對下面技術(shù)的描述,該技術(shù)顯示出對處理示例1到3和處理示例5和6的改進。(處理示例7提出的方法A2)計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例8提出的方法F2)計算在帶有參數(shù)h(x)=x2+h1x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例9提出的方法B2)計算在帶有參數(shù)h(x)=x2+x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。(處理示例10提出的方法C2)當計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分時,產(chǎn)生所二等分指的兩個候選者,在帶有參數(shù)h(x)=x2+h1x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線、和在帶有參數(shù)h(x)=x2+x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線。在這種情況下,需要從兩個候選者中選擇帶有正確值的一個。當選擇正確的一個時,需要計算軌跡、乘法和有限域的平方根。兩個候選者中的哪一個正確的取決于除數(shù)D。因此,如果除數(shù)D固定,則事先在表中保留關(guān)于兩個候選者中的哪一個正確的信息,并且當選擇正確值時對該表進行查詢,從而省略上述額外的計算。(處理示例11提出的方法D2)通過使用在處理示例7到10的每一個中所述的計算除數(shù)的二等分的方法來計算除數(shù)的標量乘法的方法。將在下面順序地詳細描述上述的各個處理示例。處理示例1(提出的方法A1)涉及計算在帶有隨機參數(shù)的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。進一步,假設在下面處理中所使用的除數(shù)的階數(shù)為r。也就是,除數(shù)不具有分歧點。假設輸入除數(shù)如下D2=(U2,V2);U2=u22x2+u21x+u20;和V2=v21x+v20,其中如果除數(shù)D2的權(quán)重為2則u22=1;和如果除數(shù)D2的權(quán)重為1則u22=1,u21=1,和v21=0。由于不包括分歧點,所以作為二等分運算,足以考慮四種倒數(shù)運算ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2、和HarleyDBL。除了HarleyDBL之外的那些代表例外情況。這里,ExHarDBL2+2→1代表這種情況中的計算輸入除數(shù)的權(quán)重為2,并且輸出除數(shù)的權(quán)重為1。進一步,ExHarDBL2+2→2代表這種情況中的計算輸入除數(shù)的權(quán)重為2,而且U2的第一次項的系數(shù)滿足u21=0并且輸出除數(shù)的權(quán)重為2。然而,當通過HarleyDBL計算ExHarDBL2+2→2時,由于作為其倒數(shù)運算的二等分變?yōu)槔馇闆r,所以這里將ExHarDBL2+2→2當作例外情況對待。將與上述ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2和HarleyDBL對應的二等分運算分別定義為ExHEC_HLV2→1+1,ExHEC_HLV1→2+2、ExHEC_HLV2→2+2和HEC_HLV。當執(zhí)行除數(shù)的二等分運算時,首先,根據(jù)圖2中所示的輸入除數(shù)進行逐情況的分化。如果輸入除數(shù)的權(quán)重為2,并且U2的第一次項的系數(shù)滿足u21≠0,則通過HEC_HLV執(zhí)行計算。進一步,如果輸入除數(shù)的權(quán)重為2,并且U2的第一次項的系數(shù)滿足u21=0,則通過ExHEC_HLV2→2+2或者ExHEC_HLV2→1+1來執(zhí)行計算。進一步,如果輸入除數(shù)的權(quán)重為1,則通過ExHEC_HLV1→2+2來執(zhí)行計算。將參照圖3來描述HEC_HLV的算法。圖3是示出HEC_HLV的算法的流程圖。在步驟S101中,將輸入定義如下D2=(U2,V2);U2=x2+u21x+u20;和V2=v21x+v20。在步驟S102中,求出的k1h2+k12u21+1=0的根k1、k1′,并且在步驟S103中,設定c1←f3+h2v21+u20+(f4+u21)u21。在步驟S104中,確定k1h0+k0h1+k02u21+c1=0是否具有根。如果其不具有根,則在步驟S105設定k1←k1′,而如果其具根,則流程前進到步驟S106,在其中求出k1h0+k0h1+k02u21+c1=0的根k0、k0′。隨后,流程前進到步驟S107,在其中計算u11并且在步驟S108中確定xh2+x2u11+1=0是否有根。如果其沒有根,則在步驟S109中設定k0←k0′,而如果其有根,則流程前進到步驟S110,在其中計算u10。進一步,在步驟S111中,計算v11、v10,并且在步驟S112中,通過進行下面設定U1←x2+u11x+u10;heV1←v11x+v10,并且在步驟S113中,獲得輸出D1←(U1,V1)。通過執(zhí)行除數(shù)的加倍運算(也就是,下面的算法1[Algorithm1HarleyDBL])的算法的逆運算來實現(xiàn)除數(shù)的二等分運算,[公式10]Algorithm1HarleyDBLInputD1=(U1,V1)OutputD2=(U2,V2)Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,U1)=11.U1′←U122.S←h-1(f+hV1+V12)/U1modU13.V1′←SU1+V14.U2′←(f+hV1′+V1′2)/U′5.U2←MakeMonic(U2′)6.V2←V1′+hmodU27.returnD2=(U2,V2)在算法1的步驟6中,存在唯一的多項式k(x)=k1x+k0,其滿足V1′+h=(k1x+k0)U2+V2。將其進行下面變換V1′=h+(kix+k0)U2+V2。將其代入步驟4中出現(xiàn)的表達式中,(f+hV1′+V1′2),產(chǎn)生下面結(jié)果U2′U1=f+h(kU2+V2)+k2U22+V22表達式(1)在上面的表達式中,由于(U2,V2)已知,所以從表達式(1)中可以獲得k和U1′之間的關(guān)系表達式。在這種情況下,應該注意U2=k12U2。將上面表達式(1)進行擴展并且重新排列以產(chǎn)生下面的表達式U1′=x4+((k1h2+k12u21+1)/k12)x3+((k1h1+k0h2+k12u20+k02+c2)/k12)x2+((k1h0+k0h1+k02u21+c1)/k12)x+(k0h0+k02u20+c0)/k12表達式(2)這里,滿足c2=f4+u21,c1=f3+h2v21+u21+c2u21,和c0=f2+h2v20+h1v21+v212+c2u20+c1u21。進一步,從步驟1,U1′=U12,也就是,下面表達式成立U1′=x4+u112x2+u102表達式(3)通過比較上述表達式(2)和(3)的相應系數(shù)以得出關(guān)系表達式,并且可以通過解這個關(guān)系表達式來計算二等分運算。將描述上述過程的算法在下面作為算法4示出[Algorithm4概略(sketch)HEC_HLV][公式11]Algorithm4SketchHEC_HLVInputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.reconstructk0,k11.1V1′←V2+h+kU2,k(x)=k1x+k01.2U1′←(f+hV1′+V1′2)/(k12U2)1.3derivek0,k1fromcoeff(U1′,3)=0,coeff(U1′,1)=02.computeu11bysubstitutingk0,k1incoeff(U1′,2)3.computeu10bysubstitutingk0,k1incoeff(U1′,0)4.U1←x2+u11x+u105.V1←V2+h+kU2modU16.returnD1=(U1,V1)具體地說,可以獲得下面關(guān)系表達式。k1h2+k12u21+1=0表達式(4)k1h0+k0h1+k02u21+c1=0表達式(5)u11=k1h1+k0h2+k12u20+k02+c2/k1]]>表達式(6)u10=k0h0+k02u20+c0/k1]]>表達式(7)需要從這些關(guān)系表達式中計算k0、k1的正確值??梢允褂孟旅嫠龅囊?lemma)來對其進行計算。假設h(x)是不可約多項式。在這種情況下,僅僅存在一個滿足表達式(4)和(5)的k1。進一步,表達式(5)具有僅僅關(guān)于正確k1的根。進一步,僅僅存在一個允許在算法4中被二等分的除數(shù)D1的計算的k0。進一步,下面表達式xh2+x2u11+1=0具有僅僅針對正確k0的根。將上述引理1應用于算法4。將二等分的詳細計算方法作為下面算法5[Algorithm5概略(sketch)HEC_HLV]示出。Algorithm5HEC_HLVInputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1h2+k12u21+1=0α←h2/u21,γ←1/(u21α2)/*1/(u21α2)=u21/h22*/k1←H(γ)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0h1+k02u21+c1=0c2←f4+u21,c1←f3+h2v21+u20+c2u21c0←f2+h2v20+h1v21+v212+c2u20+c1u21α←h1/u21,γ←(c1+k1h0)/(u21α2)ifTr(γ)=1thenk1←k1′,γ←(c1+k1h0)/(u21α2)k0←H(γ)α,k1′←k1+α3.Selectcorrectk0bycheckingtraceofxh2+x2u11+1=0u11←k1h1+k0h2+k12u20+k02+c2/k1,]]>γ←u11/h22ifTr(γ)=1thenk0←k0′,u11←k1h1+k0h2+k12u20+k02+c2/k1]]>4.ComputeU1u10←k0h0+k02u20+c0/k1]]>5.ComputeV1=V2+h+kU2modU1w←h2+k1u21+k0+k1u11v11←v21+h1+k1u20+k0u21+u10k1+u11wv10←v20+h0+k0u20+w6.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)在上述算法5[Algorithm5]中,如果k1′、k0′是正確值(換句話說,如果k1、k0不是正確值),則該算法的復雜度為32M+5S+6I+3SR+2H+2T。這里,M、S、I、SR、H和T分別表示乘法、平方、倒數(shù)、平方根運算、半跡(half-trace)(用于找到二次等式的根的運算)和跡(確定二次方程的根是否存在)。如果這些k1′、k0′是正確的值,則復雜度變得最大。隨后,如果k1、k0是正確的值(換句話說,如果k1′、k0′不是正確的值),則復雜度變得最小,所以在步驟2中可以將復雜度以2M減小,并且在步驟3中可以以2M+1SR將復雜度減小。也就是說,在這種情況中的復雜度是28M+5S+6I+2SR+2H+2T,并且復雜度變?yōu)樽钚?。之后,如果k1、k0′是正確值(換句話說,如果k1′、k0不是正確的值),則在步驟3中可以以2M+1SR降低復雜度。也就是,在這種情況下復雜度變?yōu)?0M+5S+6I+2SR+2H+2T。最后,如果k1′、k0是正確的值(換句話說,如果k1、k0′不是正確的值),則在步驟2中可以以2M來減小復雜度。也就是,在這種情況下復雜度變?yōu)?0M+5S+6I+3SR+2H+2T。當通過計算機試驗檢查上述四種情況發(fā)生的概率時,確認了它們以基本上相同的比例發(fā)生。在下面的描述中,假設上述四種情況發(fā)生的概率基本相等。將在上述四種情況中的復雜度進行平均得出30M+5S+6I+2.5SR+2H+2T。下面,將考慮下面的例外情況ExHEC_HLV2→1+1;ExHEC_HLV1→2+2和ExHEC_HLV2→2+2。由于這些例外情況發(fā)生的概率低到可以被忽略的程度,所以將不進行關(guān)于復雜度的評估。首先,將參照圖4的流程來描述ExHEC_HLV2→1+1的算法。通過ExHarDBL1+1→2的逆運算來實現(xiàn)ExHEC_HLV2→1+1。假設ExHarDBL1+1→2的輸入除數(shù)是D1=(U1,V1),U1=x+u10,V1=v10,輸出除數(shù)D2=(U2,V2)=2D1,U2=x2+u20x,V2=v21x+v20,可以被計算如下U2=x2+u20=(x+u10)2,v12=(u104+f3u102+f1+h1v10)/h(u10),和v20=v10+v21u10。使用這些關(guān)系表達式,計算ExHEC_HLV2→1+1。讓輸入除數(shù)為D2=(U2,V2),U2=x2+u20x,V2=v21x+v20(圖4的流程步驟S201)。為了獲得輸出除數(shù)D1=(U1,V1)=[1/2]D2,U1=x+u10,V1=v10,在步驟S202中,使得u10=√u20,并且在步驟S203中,使得v10=(v21h(u10)+u104+f3u102+f1)/h1,并且在步驟S204中,使得U1=x+u10,V1=v10。然后,在步驟S205中,獲得輸出除數(shù)D1=(U1,V1)。隨后,將參照圖5的流程來描述ExHEC_HLV2→2+2的處理過程。在步驟S301,將輸入除數(shù)假設為D2=(U2,V2),U2=x2+u20,V2=v21x+v20。在步驟S302,關(guān)于k1解k1h2+1=0以得出k1←1/h2。在步驟S303,使得c2←f4,和c1←f3+h2v21+u20+u21c2,并且在步驟S304,關(guān)于k0解k1h0+k0h1=0以給出k0←(k1h0+c1)/h1。隨后,在步驟S305中,計算u11,并且在步驟S306中,確定xh2+x2u11+1=0是否具有根。如果其不具有根,則在步驟S307中,通過D1←HEC_HLV2→1(D2)來確定輸出D1(步驟S308)。在另一方面,如果xh2+x2u11+1=0有根,則流程前進到步驟S309,在其中計算u10,并且進一步在步驟S310中,計算v11、v10。然后,在步驟S311中,使得U1←x2+u11x+u10,和V1←v11x+v10,并且在步驟S312中,獲得輸出D1←(U1,V1)。通過下面過程具體地執(zhí)行ExHEC_HLV2→2+2的處理。假設輸入除數(shù)為D2=(U2,V2),U2=x2+u20,V2=v21x+v20如果U2=x2+u20,也就是,如果U2的第一次項為0,則存在兩個輸出除數(shù)候選者,將它們表示為D1=(x+u20,V2(u20)),和D1′=(x2+u11x+u10,v11x+v10)。如果D1是正確的,則使用ExHEC_HLV2→1+1來執(zhí)行計算。如果D1′是正確的,則使用ExHEC_HLV2→2+2來執(zhí)行計算。根據(jù)下面過程來進行關(guān)于要使用哪個算法的確定。1.假設D1′是正確的。2.計算u11。3.計算xh2+x2u11+1=0的跡Tr(h2/u112)。如果Tr(h2/u112)=0,則D1′是正確的,所以使用ExHEC_HLV2→2+2來執(zhí)行計算。否則,也就是,如果Tr(h2/u112)=1,則是D1正確的,所以使用ExHEC_HLV2→1+1來執(zhí)行計算。將ExHEC_HLV2→2+2的計算算法作為算法6[Algorithm6]在下面示出。Algorithm6ExHEC_HLV2→2+2InputD2=(U2,V2)=(x2+u20,v21x+v20)OutputD1=(U1,V1)=(x2+u11x+u10,v11x+v10)=[1/2]D2gcd(h,Ui)=1,i=1,21.Solvek1h2+1=0k1←1/h22.Selectcorrectk1bysolvingk1h0+k0h1+k02+c1=0c2←f4,c1←f3+h2v21+u20+c2u21c0←f2+h2v20+(h1+v21)v21+c2u20+c1u21k0←(k1h0+c1)/h13.Selectcorrectalgorithmbycheckingtraceofxh2+x2u11+1=0u11←k1h1+k0h2+k12u20+k02+c2/k1,γ←u11/h22]]>ifTr(γ)=1thenD1←ExHEC_HLV2→1+1(D2),returnD14.ComputeU1u10←k0h0+k02u20+c0/k1]]>5.ComputeV1=V2+h+kU2modU1w←h2+k1v11←h1+k1u20+k0+u11wv10←v20+h0+k0u20+u10w6.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)下面,將參照圖6來描述ExHEC_HLV1→2+2的處理過程。在步驟S401中,假設輸入除數(shù)為D2=(U2,V2);U2=x+u20;和V2=v20。在步驟S402中,使得c3←f4+u20,并且在步驟S403中,求出的k1h2+k12u21+c3=0的根k1、k1′,并且在步驟S404中,使得c1←f3+c3u20,和c1←f2+h2v20+c2u20,并且在步驟S405中,確定k1h0+k0h1+k02+c1=0是否有根。如果其沒有根,則在步驟S406中設定k1←k1′之后流程前進到步驟S407,而如果其有根,則流程就原樣前進到步驟S407。在步驟S407中,求出k1h0+k0h1+k02+c1=0的根k0,k0′。然后,流程前進到步驟S408,其中計算u11并且在步驟S409中,確定xh2+x2u11+1=0是否有根。如果其沒有根,則在步驟S410中設定k0←k0′之后流程前進到步驟S411,而如果其有根,則流程原樣前進到步驟S411,并且計算u10。進一步,在步驟S412中,計算v11、v10。在步驟S413中,使得U1←x2+u11x+u10,和V1←v11x+v10,并且在步驟S414中,獲得輸出D1←(U1,V1)。雖然ExHEC_HLV1→2+2的計算過程于HEC_HLV的計算過程類似,但是在輸入除數(shù)的權(quán)重方面存在很大不同。因此,ExHEC_HLV1→2+2的f+hV1′+V1′2變?yōu)槲宕问滓欢囗検?quinticmonicpolynomial)。因此,與在HEC_HLV的情況中不同,U1′←(f+hV1′+V1′2)/U2不除以k12。將ExHEC_HLV1→2+2的計算算法如下示出[Algorithm7]。Algorithm7ExHEC_HLV1→2+2InputD2=(U2,V2)=(x+u20,v20)OutputD1=(U1,V1)=(x2+u11x+u10,v11x+v10)=[1/2]D2gcd(h,Ui)=1,i=1,21.Solvek1h2+k12u21+c3=0c3←f4+u20,α←h2,γ←c3/(u21α2)k1←H(γ)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0h1+k02+c1=0c2←f3+c3u20,c1←f2+h2v20+c2u20,c0←f1+h1v20+c1u20α←h1,γ←(c1+k1h0)/α2ifTr(γ)=1thenk1←k1′,γ←(c1+k1h0)/α2k0←H(γ)α,k1←k1+α3.Selectcorrectk0bycheckingtraceofxh2+x2u11+1=0u11←k1h1+k0h2+k12u20+c2,γ←u11/h22]]>ifTr(γ)=1thenk0←k0′,u11←k1h1+k0h2+k12u20+c2]]>4.ComputeU1u10←k0h0+k02u20+c0]]>5.ComputeV1=V2+h+kU2modU1w←h2+k1v11←h1+k1u20+k0+u11wv10←v20+h0+k0u20+u10w6.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)[處理示例2提出的方法F1]處理示例2[提出的方法F1]涉及計算在帶有參數(shù)h(x)=x2+h1x+h0,f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分。對算法5的仔細研究將揭示算法5包含大量通過系數(shù)h(x)的乘法運算以及系數(shù)h(x)的倒數(shù)運算。這意味著可以通過操控系數(shù)h(x)來減小乘法和倒數(shù)運算的復雜度。應該注意,根據(jù)文獻(非專利文獻19T.Lange.EfficientDoublingonGenusTwoCurvesoverBinaryFields,SAC2004,pre-proceedings,pp.189-202,2004),使用h2=1,f4=0來實現(xiàn)快速計算。在使用這些參數(shù)的情況下HarleyDBL的復雜度為21M+5S+1I。雖然也與上述的那些一致地設定這里所描述的處理示例2(提出的方法2)的條件,但是由于因為引理1導致針對h(x)假設不可約的多項式,所以假設h(x)=x2+h1x+h0,和Tr(h0/h12)=1(二次方程ax2+bx+c=0為不可約多項式的充分必要條件是Tr(ac/b2)=1)。在這種情況中的計算方法在算法8[Algorithm8]HEC_HLV(h2=1,f4=0)中示出。Algorithm8HEC_HLV(h2=1,f4=0)InputD2=(U2,V2),invu=1/u21,1/h12OutputD1=(U1,V1)=[1/2]D2,invu=1/u11Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0α←invu,k1←H(u21)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0h1+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21(h1+v21)+u21(u20+c1)w0←u21/h12,α←h1α,γ←(c1+k1h0)w0ifTr(γ)=1thenk1←k1′,γ←(c1+k1h0)w0k0←H(γ)α,k0′←k0+α3.Selectcorrectk0bycheckingtraceofx+x2u11+1=0w0←k12,w1←w0u20+k1h1+u21w2←k0+w1+k0,]]>w3←k0′+w1+k0′,]]>w4←w2w3w1←1/(w4k1),w4←w1w4,u11←w2w4ifTr(γ)=1thenk0←k0′,u11←w3w4,w2w3invu←w0w1w34.ComputeU1w1←k0u20,w5←k1u21,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+h1w6←w1+v20+h0,w7←k1u11+w4w1←w7u10,w3←(k1+w7)(u10+u11)v11←w1+w3+w4+w5+w7v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1),invu進一步,為了消除倒數(shù)運算的數(shù)量,使用所謂Montgomery技巧(trick)的技術(shù)。根據(jù)該技術(shù),例如,當需要找到三個有限域元素a、b和c的倒數(shù)時,首先,找到這三個元素的積,并且找到其倒數(shù)為w=1/(a*b*c)等。然后,為了找到a的倒數(shù),計算w*b*c。類似地,對于b、c的倒數(shù),分別計算w*a*c和w*a*b。通常,倒數(shù)運算的復雜度比乘法運算的復雜度高幾倍(如將在后面描述的,軟件實施的結(jié)果指示找到倒數(shù)的復雜度大約比乘法運算高8倍)。因此,為了找到三個元素的倒數(shù),例如,如果以直接的方式執(zhí)行三次倒數(shù)運算,假設I=8M,則所產(chǎn)生的復雜度是24M。相反地,如果使用上述Montgomery技巧,則所產(chǎn)生的復雜度為I+8M=16M,因此使得比三個倒數(shù)運算更快的計算成為可能。根據(jù)所述的處理例子2(提出的方法F1),使用這種Montgomery技巧來求u11的倒數(shù)。給出u11的倒數(shù)作為隨后二等分運算的輸入。因此,算法8允許[1/2i]D的計算,并且當執(zhí)行除數(shù)D的標量乘法時,可以將算法8應用于右到左方法,也就是,加入[1/2i]D的方法。將在后面描述使用二等分運算的標量乘法。進一步,此時所需要的復雜度如下。(a)如果k1,k0是正確的值24M+2S+1I+3SR+2H+2T(b)如果k1,k0′是正確的值26M+2S+1I+3SR+2H+2T(c)如果k1′,k0是正確的值25M+2S+1I+3SR+2H+2T(d)如果k1′,k0′是正確的值27M+2S+1I+3SR+2H+2T將所有上述情況(a)到(d)進行平均產(chǎn)生25.5M+2S+1I+3SR+2H+2T。HarleyDBL的復雜度為21M+5S+1I。這里,根據(jù)文獻(非專利文獻15)E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999.],已知當以正規(guī)基(normalbasis)定義有限域時,可以忽略S(平方)、SR(平方根運算)、H(半跡(用于找到二次等式的根的運算))和T(跡(確定二次等式是否存在根))的復雜度,并且僅僅需要考慮M(乘法)和I(倒數(shù))的復雜度。因此,當使用正規(guī)積時,算法8比HarleyDBL慢4.5M。進一步,當以多項式基(polynomialbasis)來定義有限域時,根據(jù)文獻(非專利文獻16)K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf18],已知與M(乘法)的復雜度相比較,通常SR(平方根運算)和H(半跡(用于找到二次方程的根的運算))是大約SR=H=0.5M。進一步,可以忽略T(跡(確定針對二次等式是否有根))的復雜度。進一步,已知S(平方)的復雜度僅僅大約是M(乘法)的十分之幾。然而,還已知根據(jù)選擇多項式基的方式,SR的復雜度可以變?yōu)樾∮?.5M。應該注意,可以根據(jù)上述處理示例1(提出的方法A1)中的例外情況來計算例外情況。處理示例3(提出的方法B1)涉及計算帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。如參照上述處理示例2(提出的方法F1)已經(jīng)描述的那樣,對參照處理示例1(提出的方法A1)所描述的二等分的計算算法的仔細研究,也就是,算法5[Algorithm5HEC_HLV]揭示算法5包含大量系數(shù)h(x)的乘法運算和系數(shù)h(x)的倒數(shù)運算。這意味著可以通過操控系數(shù)h(x)來減少乘法和倒數(shù)運算的復雜度。在文檔[J.Pelzl,T.Wollinger,J.Guajardo,andC.Paar.HyperellipticcurveCryptosystemsClosingthePerformanceGaptoEllipticCurves.CryptologyePrintArchive,2003/026,IACR,2003]中,公開了使用h2、h1∈{0,1}、f4=0來實現(xiàn)快速計算的例子。在使用這些參數(shù)的情況下HarleyDBL的復雜度為18M+7S+1I。雖然也與上述的那些一致地設定處理示例3(提出的方法B1)的條件,但是由于因為上述引理1所以針對h(x)假設不可約多項式,因此設定h(x)=x2+x+h0,和Tr(h0)=1(二次方程ax2+bx+c=0為不可約的充分和必要條件為Tr(ac/b2)=1)。將這種情況下的計算方法在下面作為算法10[Algorithm10HEC_HLV(h2=h1=1,f4=0)]示出。Algorithm10HEC_HLV(h2=h1=1,f4=0)InputD2=(U2,V2),invu=1/u21OutputD1=(U1,V1)=[1/2]D2,invu=1/u11Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0α←invu,k1←H(u21)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21+v212+u21(u20+c1)γ←(c1+k1h0)u21ifTr(γ)=1thenk1←k1′,γ←γ+h0k0←H(γ)α,k0′←k0+α3.Selectcorrectk0bycheckingtraceofx+x2u11+1=0w0←k12,w1←w0u20+k1+u21w2←k0+w1+k0,w3←k0′+w1+k0′,w4←w2w3]]>w1←1/(w4k1),w4←w1w4,u11←w2w4ifTr(u11)=1thenk0←k0′,u11←w3w4,w2w34.ComputeU1w0←w0w1,w1←k0u20,w5←k1u21,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+1,w6←w1+v20+h0invu←w0w3w0←w2+w4,w1←w0u10,w3←(k0+k1)(u10+u11)v10←w1+w2+w3+w5v11←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1),invu進一步,為了消除倒數(shù)運算的數(shù)量,如在上述處理示例2(提出的方法F1)中一樣,使用Montgomery技巧來求u11的倒數(shù)。將給出u11的倒數(shù)作為隨后二等分運算的輸入。根據(jù)這種處理示例的復雜度如下。(a)如果k1,k0是正確的值19M+3S+1I+3SR+2H+2T(b)如果k1,k0′是正確的值20M+3S+1I+3SR+2H+2T(c)如果k1′,k0是正確的值19M+3S+1I+3SR+2H+2T(d)如果k1′,k0′是正確的值20M+3S+1I+3SR+2H+2T將所有上述情況(a)到(d)進行平均得出19.5M+3S+1I+3SR+2H+2T。HarleyDBL的復雜度為18M+7S+1I。這里,如上所述,根據(jù)文獻[(非專利文獻15)E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999],已知當以正規(guī)基定義有限域時,可以忽略S(平方)、SR(平方根運算)、H(半跡(用于找到二次方程的根的運算))和T(跡(確定二次方程是否存在根))的復雜度,并且僅僅需要考慮M(乘法)和I(倒數(shù))的復雜度。因此,當使用正規(guī)積時,上述算法10[Algorithm10]比傳統(tǒng)算法[HarleyDBL]慢1.5M。進一步,當以多項式基來定義有限域時,根據(jù)文獻[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf18],已知通常SR和H是大約SR=H=0.5M。進一步,可以忽略T的復雜度。進一步,已知S的復雜度僅僅大約是M的十分之幾。然而,還已知根據(jù)選擇多項式基的方式,SR的復雜度可以變?yōu)樾∮?.5M。上述算法10[Algorithm10]的曲線還要受到h0=1的約束。由于通過設定為h0=1,上述算法10[Algorithm10]涉及h0的一個乘法運算,可以以1M減小該復雜度。通過將所有上述情況(a)到(d)進行平均所得出的復雜度為18.5M+3S+1I+3SR+2H+2T。在另一方面,HaryleyDBL的復雜度為15M+7S+11。應該注意,可以根據(jù)上述處理示例1(提出的方法A1)中的例外情況來計算例外情況。處理示例4(提出的方法E1)涉及計算在帶有參數(shù)h(x)=x的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D的二等分的方法。如處理示例3(提出的方法B1)那樣,在算法5中,通過設定h(x)=x,可以減小除數(shù)的二等分運算所需要的在有限域上的元素的乘法和倒數(shù)運算的復雜度。作為具體的例子,在f(x)=x5+f1x+f0的情況中的算法在下面作為算法12(Algorithm12)示出。Algorithm12HEC_HLV(h(x)=x,f(x)=x5+f1x+f0)InputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek12u21+1=0w0←1/u21,k1←w0]]>2.Solvek0+k02u21+c1=0c1←u20+u212,w1←c1u21c0←v21+v212+u21u20+w1invk1←u21,]]>w2←H(w1),w3←w2+1k0←w0w2,k0′←k0+w03.ComputeU1u11←invk1+k0,u10←(k0+c1)u20+c0u21]]>ifTr(u11(u10+invk1+k0))=1thenk0←k′0,w2←w3,u11←u11+k1,u10←u10+w0+u20]]>4.ComputeV1=V2+h+kU2modU1w1←k1(u21+u11)+k0v11←k1(u20+u10)+w2+v21+1+u11w1v10←k0u20+v20+u10w15.U1(x)←x2+u11x+u10,V1(x)←v11x+v106.returnD1=(U1,V1)如在處理示例3(提出的方法B1)那樣,評估上述算法12(Algorithm12)的復雜度。與處理示例3(提出的方法B1)不同,在h(x)=x類型的超橢圓曲線的情況下,由于在步驟1中唯一地確定k1,所以僅僅存在針對k0的選擇步驟(步驟3)。當在步驟3中的if語句中跡為0時,具有最低復雜度的最佳情況發(fā)生,而當跡為1時,最差情況發(fā)生。由于兩者發(fā)生的概率相同,所以平均復雜度為11.5M+2S+1I+4.5SR+1H+1T。該復雜度低于上述處理示例3的復雜度,因此實現(xiàn)了快速計算。應該注意,可以根據(jù)上述處理例子1(提出的方法A1)中的例外情況來計算例外情況。處理示例5(提出的方法C1)涉及下述方法。也就是,當計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分時,出現(xiàn)經(jīng)二等分的值的兩個候選者,在帶有參數(shù)h(x)=x2+h1x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線,和在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線。當選擇正確的一個時,需要計算有限域的跡、乘法和平方根。兩個候選者中哪一個是正確的取決于除數(shù)D。因此,如果將除數(shù)D固定,則事先將關(guān)于兩個候選者中哪一個正確的信息保存在表中,并且當選擇正確的值時查詢該表,從而省略上述額外的計算。k1、k1′(k0,k0′)中的哪一個是正確的依賴于輸入除數(shù)D。因此,如果將D固定,例如,當作為ECDH密鑰交換、ECDSA簽名產(chǎn)生或者驗證等的階段1的情況之前確定基點時,計算[1/2i]D并且事先將關(guān)于k1、k1′(k0,k0′)中的哪一個正確的信息記錄在表中。例如,準備與基點的階數(shù)(order)的相同位大小的兩個表T1、T0,并且將這些表的二進制表達式表示為T1=(t1,r-1,---,t1,0),和T0=(t0,r-1,---,t0,0)。當求[1/2i]D時,如果這樣的信息存儲在表中如果k1是正確的,則t1,i=0否則如果k1′是正確的,則t1,i=1;以及如果k0是正確的,則t1,i=0,否則如果k0′是正確的,則t1,i=1,,則僅僅大約有基點的階數(shù)的大小兩倍的位串作為表大小就足夠了。通過查詢這些表,可以減小二等分的復雜度。將作為應用到算法8[Algorithm8]HEC_HLV(h2=1,f4=0)的上述方法表示為算法9[Algorithm9]HEC_HLV(h1=1,f4=0,withtable-lookup)。該算法的復雜度為22M+2SR+1I+2SR+2H。Algorithm9HEC_HLV(h2=1,f4=0,table-lookup)InputD2=(U2,V2),invu=1/u21,1/h12,t0,t1OutputD1=(U1,V1)=[1/2]D2,invu=1/u11Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0ift1=0thenk1←H(u21)invuelsek1←H(u21)invu+invu2.Solvek1h0+k0h1+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21(h1+v21)+u21(u20+c1)α←h1invu,γ←(c1+k1h0)u21/h12ift0=0thenk0←H(γ)αelsek0←H(γ)α+α3.ComputeU1w0←k12,w1←w0u20+k1h1+u21,w2←k0+w1+k0]]>w1←1/(w2k1),w3←w1w2u11←w2w3,invu←w0w1w1←k0u20,w5←k1u21,w6←(k0+k1)(u20+u21)u10←w3k0(w1+h0)+c0]]>4.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+h1w6←w1+v20+h0,w7←k1u11+w4w3←(k1+w7)(u10+u11),w1←w7u10v11←w1+w3+w4+w5+w7v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1),invu具體地說,將作為應用于上述算法10[Algorithm10HEC_HLV(h2=h1=1,f4=0)]的上述方法表示為下面的算法11[Algorithm11HEC_HLV(h2=h1=1,f4=0,withtable-lookup)]。Algorithm11HEC_HLV(h2=h1=1,f4=0,withtable-lookup)InputD2=(U2,V2),invu=1/u21,t0,t1OutputD1=(U1,V1)=[1/2]D2,invu=1/u11Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,U1)=11.Solvek1+k12u21+1=0andselectcorrectk1viat1α←invu,k1←H(u21)αift1=0thenk1←k1+α2.Solvingk1h0+k0+k02u21+c1=0andselectcorrectk0viat0c1←f3+v21+u20+u212c0←f2+v20+v21+v212+u21(u20+c1)γ←(c1+k1h0)u21k0←H(γ)αift1=0k0thenk0←k0+α3.ComputeU1w0←k12,w1←w0u20+k1+u21w2←k0+w1+k0]]>w1←1/(w2k1),w4←w1w2u11←w2w4w0←w0w1,w1←k0u20,w5←k1u21,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+1,w6←w1+v20+h0invu←w0w0←w2+w4,w1←w0u10,w3←(k0+k1)(u10+u11)w10←w1+w2+w3+w5w11←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1),invu=1/u11算法11[Algorithm11HEC_HLV(h2=h1=1,f4=0,withtable-lookup)]的復雜度為18M+3S+1I+2SR+2H,并且進一步,通過設定h0=1,可以以1M來減小復雜度。在這種情況中的復雜度變?yōu)?7M+3S+1I+2SR+2H。進一步,將作為應用到上述算法12[HEC_HLV(h(x)=x,f(x)=x5+f1x+f0]的上述方法表示為下面的算法13[HEC_HLV(h(x)=x,f(x)=x5+f1x+f0,withtable-lookup)]。Algorithm13HEC_HLV(h(x)=x,f(x)=x5+f1x+f0,withtable-lookup)InputD2=(U2,V2),t0OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=11.Solvek12u21+1=0w0←1/u21,k1←w0]]>2.Solvek0+k02u21+c1=0c1←u20+u212,w1←c1u21c0←v21+v212+u21u20+w1invk1←u21,]]>w2←H(w1)ift0=0thenk0←w0w2elsek0←w0w2+w0,w2←w2+13.ComputeU1u11←invk1+k0,]]>u10←(k0+c1)u20+c0u21]]>4.ComputeV1=V2+h+kU2modU1w1←k1(u21+u11)+k0v11←k1(u20+u10)+w2+v21+1+u11w1v10←k0u20+v20+u10w15.U1(x)←x2+u11x+u10,V1(x)←v11x+v106.returnD1=(U1,V1)上述算法的復雜度為9.5M+3S+1I+3.5SR+1H,因此可以實現(xiàn)更快的計算。處理示例6(提出的方法D1)涉及通過使用在處理示例1到5中的每一個中所述的計算除數(shù)的二等分的方法來計算除數(shù)的標量乘法的方法。在文獻[E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999]中描述了使用橢圓曲線上的有理點的二等分來計算標量乘法的方法。在該文檔中所公開的標量乘法來執(zhí)行使用超橢圓曲線上的除數(shù)的二等分的標量乘法的計算方法。然而,應該注意,使用計算和加入[1/2i]D的右到左方法。將該算法表示為下面算法14[ScalarMultiplication]。Algorithm14ScalarMultiplicationInputD∈J(F2n)suchthat2D≠O,]]>d∈Z,rorderofD,OutputscalarmultiplicationdD2.Σi=0mdi/2i←Σi=0md^i2i-m,di∈{0,1}]]>3.Q←O,R←D,invu←1/u14.forifrom0tomdoifdi=1thenQ←Q+R(R,invu)←HEC_HLV(R,invu)5.returnQ在上述算法14[Algorithm14ScalarMultiplication]的步驟4中出現(xiàn)的HEC_HLV可以是使用隨機曲線的上述算法5[Algorithm5]的HEC_HLV、帶有提供給算法8[Algorithm8]的曲線參數(shù)的約束h2=1、f4=0的HEC_HLV、帶有應用于算法8[Algorithm8]的曲線參數(shù)的查表方法的HEC_HLV、帶有提供給算法10[Algorithm10]的曲線參數(shù)的約束h2=h1=1、f4=0的HEC_HLV、帶有提供給算法10[Algorithm10]的曲線參數(shù)的約束h2=h1=h0=1、f4=0的HEC_HLV、或者帶有應用于算法10[Algorithm10]的曲線參數(shù)的查表方法的HEC_HLV。進一步,上述HEC_HLV可以是算法12[Algorithm12]的曲線參數(shù)的HEC_HLV、或者帶有應用于算法12[Algorithm12]的查表方法的HEC_HLV。下面,找到應用于上述處理示例1到6的每一個的計算的復雜度,并且進行關(guān)于計算速度增加的驗證。在HEC_HLV(h2=1,f4=0)的情況中,所需要的復雜度平均為25.5M+2S+1I+3SR+2H+2T。首先,考慮通過正規(guī)基定義有限域的情況。如上所述,當使用正規(guī)基時,僅僅考慮M和I的復雜度。根據(jù)文獻[A.Menezes.EllipticCurvePublicKeyCryptosystems.KluwerAcademicPublishers,1993.],假設有限域為Fq,q=2n,一個倒數(shù)運算等效于通過下面不等式所計算的乘法運算的數(shù)量,也就是[公式23]在這種情況下,w(n-1)表示在n-1的二進制表達式中1的數(shù)量。例如,如果n=83、89、113,則I=8M,而如果n=103,則I=9M。這里,假設I=8M,則將復雜度HEC_HLV(h2=1,f4=0)表示為25.5M+1I=33.5M。在另一方面,在HarleyDBL的情況中,其復雜度表示為21M+1I=29M,所以HarleyDBL比HEC_HLV快13%。進一步,當使用查表時,復雜度變?yōu)?2M+1I=30M,所以HarleyDBL比HEC_HLV快大約3%。進一步,在HEC_HLV(h2=h1=1,f4=0)的情況中,復雜度平均為19.5M+3S+1I+3SR+2H+2T。在這種情況中,19.5M+1I=27.5M。在另一方面,在HarleyDBL的情況中,復雜度表示為18M+1I=26M,所以HarleyDBL比HEC_HLV快5%。進一步,當使用查表方法時,復雜度變?yōu)?8M+1I=26M,所以HarleyDBL和HEC_HLV在復雜度方面相等。進一步,HEC_HLV(h2=h1=h0=1,f4=0)的復雜度平均為18.5M+3S+1I+3SR+2H+2T。在這種情況下,18.5M+1I=26.5M。在另一方面,在HarleyDBL的情況中,其復雜度為15M+1I=23M,所以HarleyDBL比HEC_HLV快13%。進一步,當使用查詢表方法時,復雜度變?yōu)?7M+1I=25M,所以HarleyDBL比HEC_HLV快8%。進一步,通過軟件實施針對多項式基的情況執(zhí)行速度比較。在下面指示的環(huán)境下執(zhí)行軟件實施CPUPentiumII300MHxOSRedHat7.3編譯程序gcc2.96。分別以下面文檔中所公開的方式執(zhí)行M(乘法)和S(平方)、I(倒數(shù))、SR(平方根運算)和T(跡(確定對于二次等式是否存在根))、和H(半跡)(用于找到二次等式的根的運算)的運算[D.Hankerson,J.Hemandez,andA.Menezes.SoftwareImplementationofEllipticCurveCryptographyoverBinaryFields.CHES2000,LNCS1965,pp.1-24,2000.Algorithm4.6,4.7];[S.Shantz.FromEuclid′sGCDtoMontgomeryMultiplicationtotheGreatDivide.TR-2001-95,SunMicrosystems,Inc.,2001.];[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf];and[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdfAlgorithm4.7]。關(guān)于n=83、89、113的三個有限域來實施M、S、I、SR、H、T,并且找到對于M的比率。在這種情況下,使用下面的不可約多項式在n=83的情況中,z83+z7+z4+z2+1=0;在n=89的情況中,z89+z38+1=0;和在n=113的情況中,z113+z9+1=0。在相應情況中的復雜度如下。n=83S/M=0.12,I/M=7.96,SR/M=0.57,H/M=0.58n=89S/M=0.05,I/M=8.74,SR/M=0.14,H/M=0.61n=113S/M=0.06,I/M=8.56,SR/M=0.10,H/M=0.50將這些應用到HarleyDBL的復雜度21M+5S+1I,得出下面n=83HarleyDBL29.56Mn=89HarleyDBL29.99Mn=113HarleyDBL29.86M。將這些應用到HEC_HLV(h2=1,f4=0)的復雜度25.5M+2S+1I+3SR+2H+2T,得出下面n=83HEC_HLV(h2=1,f4=0)36.57Mn=89HEC_HLV(h2=1,f4=0)35.98Mn=113HEC_HLV(h2=1,f4=0)35.48M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快20%、17%、16%。進一步,將這些應用到應用表查詢方法的HEC_HLV(h2=1,f4=0)的復雜度22M+2S+1I+2SR+2H,得出下面n=83HEC_HLV(h2=1,f4=0withtable-lookup)32.5Mn=89HEC_HLV(h2=1,f4=0withtable-lookup)32.34Mn=113HEC_HLV(h2=1,f4=0withtabIe-lookup)31.88M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快9%、7%、6%。進一步,在h2=h1=1、f4=0的情況中,將這些應用到HarleyDBL的復雜度18M+7S+1I,得出下面n=83HarleyDBL27.4Mn=89HarleyDBL27.09Mn=113HarleyDBL26.98M。隨后,將這些應用到HEC_HLV(h2=h1=1,f4=0)的復雜度19.5M+3S+1I+3SR+2H+2T,得出下面n=83HEC_HLV(h2=h1=1,f4=0)30.69Mn=89HEC_HLV(h2=h1=1,f4=0)30.03Mn=113HEC_HLV(h2=h1=1,f4=0)29.54M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快13%、12%、9%。進一步,將這些應用到應用表查詢方法的HEC_HLV(h2=h1=1,f4=0)的復雜度18M+3S+1I+2SR+2H,得出下面n=83HEC_HLV(h2=h1=1,f4=0withtable-lookup)28.62Mn=89HEC_HLV(h2=h1=1,f4=0withtable-lookup)28.39Mn=113HEC_HLV(h2=h1=1,f4=0withtable-lookup)27.94M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快4%、5%、3%。進一步,在h2=h1=h0=1、f4=0的情況下,將這些應用到HarleyDBL的復雜度,15M+7S+1I,得出下面n=83HarleyDBL23.8Mn=89HarleyDBL24.09Mn=113HarleyDBL23.98M。隨后,將這些應用到HEC_HLV(h2=h1h0=1,f4=0)的復雜度,18.5M+3S+1I+3SR+2H+2T,得到下面n=83HEC_HLV(h2=h1=h0=1,f4=0)29.69Mn=89HEC_HLV(h2=h1=h0=1,f4=0)29.03Mn=113HEC_HLV(h2=h1=h0=1,f4=0)28.54M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快20%、17%、6%。進一步,將這些應用到應用了表查詢方法的HEC_HLV(h2=h1=h0=1,f4=0)的復雜度,17M+3S+1I+2SR+2H,得出下面n=83HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)27.62Mn=89HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)27.39Mn=113HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)26.94M。在這種情況下,當n=83、89、113時,HarleyDBL比HEC_HLV分別快14%、12%、11%。隨后,關(guān)于上述算法12[Algorithm12](也就是,[Algorithm12HEC_HLV(h(x)=x,f(x)=x5+f1x+f0)])和應用了表查詢方法的算法13[Algorithm13](也就是,[Algorithm13HEC_HLV(h(x)=x,f(x)=x5+f1x+f0,withtable-lookup)])的每一個,進行與HarleyDBL的比較。的復雜度為11.5M+2S+1I+4.5SR+1H+1T,而[Algorithm13HEC_HLV(h(x)=x,f(x)=x5+f1x+f0,withtable-lookup)]的復雜度為9.5M+2S+1I+3.5SR+1H。根據(jù)文檔[(非專利文檔19T.Lange.EfficientDoublingonGenusTwoCurvesoverBinaryFields,SAC2004,pre-proceedings,pp.189-202,2004.)],HarleyDBL的復雜度為6M+5S+1I。如上所述,當通過正規(guī)基定義有限域時,可以忽略S(平方)、SR(平方根)、H(半跡(用于找到二次等式的根的運算)、和T(跡(確定對于二次等式是否存在根)),并且只需要考慮M(乘法)和I(倒數(shù))的復雜度。因此,算法12[Algorithm12HEC_HLV(h(x)=x,f(x)=x5+f1x+f0)]的復雜度變?yōu)?.5M+2S+1I+4.5SR+1H+1T,=11.5M+1I。進一步,算法13[Algorithm13HEC_HLV(h(x)=x,f(x)=x5+f1x+f0,withtable-lookup)]的復雜度變?yōu)?.5M+2S+1I+3.5SR+1H=9.5M+1I。HarleyDBL的復雜度變?yōu)?M+1I。因此,HarleyDBL比HEC_HLV快。如上所述,在曲線參數(shù)h2=h1=1、f4=0的情況中,將表查詢方法應用到HEC_HLV的情況中的復雜度18M+3S+1I+2SR+2H與HarleyDBL的復雜度18M+7S+1I基本相等,并且表示在等效條件下在HEC_HLV和HarleyDBL之間比較時最快的算法。隨后,考慮使用算法14[Algorithm14scalarmultiplication]的標量乘法的復雜度。關(guān)于使用允許在等效條件下與HarleyDBL相比較的最快算法的h2=h1=1、f4=0作為參數(shù)、并且針對HEC_HVL使用表查詢方法的方法,來考慮標量乘法的復雜度。由于步驟1、2對于算法14中的整個標量乘法過程的比率非常小,所以忽略其復雜度。這里,針對正規(guī)基和多項式基的兩者針對n=83、89、113的情況考慮復雜度。進一步,假設基點的階數(shù)關(guān)于n=83、89、113分別為165位、177位、225位。進一步,在步驟4的重復部分中,針對基點的階數(shù)的位數(shù)進行重復。在文獻[T.Lange,Efficientarithmeticongenus2hyperellipticcurvesoverfinitefieldsviaexplicitformulae.CryptologyePrintArchive,2002/121,IACR,2002]中所公開的方式執(zhí)行除數(shù)加法。應該注意,曲線參數(shù)為h2=h1=1、f4=0。在這種情況中除數(shù)加法所需要的復雜度為21M+3S+1I。假設標量值的二進制表示導致0、1以相等比率出現(xiàn)。將復雜度計算如下((加法的復雜度)/2+(二等分或者加倍的復雜度))x(基點的階數(shù)的位數(shù))。首先,將考慮正規(guī)基的情況。假設I=8M。在h2=h1=1、f4=0的情況中,n=83加法·加倍6682.5Mn=89加法·加倍7168.5Mn=113加法·加倍9112.5M在h2=h1=1、f4=0的情況中,n=83加法·二等分6930Mn=89加法·二等分7434Mn=113a加法·二等分9450M在h2=h1=1、f4=0+表查詢方法的情況中(復雜度等于加法·加倍的情況中的復雜度)n=83加法·加倍6682.5Mn=89加法·加倍7168.5Mn=113加法·加倍9112.5M隨后,考慮多項式的情況。在h2=h1=1、f4=0的情況中,n=83加法·加倍6913.5Mn=89加法·加倍7361.3Mn=113加法·加倍9333M在h2=h1=1,f4=0的情況中,n=83加法·二等分7456.35Mn=89加法·二等分7881.8Mn=113加法·二等分9909M在h2=h1=1、f4=0+表查詢方法的情況中(復雜度與加法·加倍的情況的復雜度相等)n=83加法·加倍7114.8Mn=89加法·加倍7591.53Mn=113加法·加倍9540M如上所述,根據(jù)所述本發(fā)明的處理示例,將橢圓曲線加密術(shù)上的二等分擴展到超橢圓曲線加密術(shù),從而實現(xiàn)快速計算。在使用對超橢圓曲線上的除數(shù)的計算的加密計算的情況中,對處理產(chǎn)生較大負載的算術(shù)計算是除數(shù)的標量乘法。從這個角度來說,根據(jù)上述本發(fā)明的處理使得標量形成在與現(xiàn)有技術(shù)的速度等效的速度上進行計算。結(jié)果,即使當使用二等分時,可以在與現(xiàn)有技術(shù)的速度等效的速度上處理超橢圓曲線加密術(shù)。隨后,將描述對于上述處理示例,也就是(處理示例1提出的方法A1)(處理示例2提出的方法F1)(處理示例3提出的方法B1)(處理示例5提出的方法C1)(處理示例6提出的方法D1)顯示出改進的處理示例7到11。具體地說,處理示例7到11指的是下面方法。(處理示例7提出的方法A2)目的是進一步增加上述的處理示例(處理示例1提出的方法A1)的運算速度的技術(shù),其包括計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分。(處理示例8提出的方法F2)目的是進一步增加上述的處理示例(處理示例2提出的方法F1)的運算速度的技術(shù),其包括計算在帶有參數(shù)h(x)=x2+h1x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分。(處理示例9提出的方法B2)目的是進一步增加上述的處理示例(處理示例2提出的方法B1)的運算速度的技術(shù),其包括計算在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分。(處理示例10提出的方法C2)目的是進一步增加上述的處理示例(處理示例2提出的方法C1)的運算速度的技術(shù)。也就是,當計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上、在帶有參數(shù)h(x)=x2+h1x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上和在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)的二等分時,出現(xiàn)所二等分值的兩個候選者。在這種情況下,需要從兩個候選者中選擇帶有正確的值的一個。當選擇正確的一個時,需要計算有限域的跡、乘法和平方根。兩個候選者中哪一個是正確的依賴于除數(shù)D。因此,如果固定除數(shù)D,則實現(xiàn)在表中保留關(guān)于兩個候選者中的哪一個正確的信息,并且當選擇正確的值時查詢該表,因此省略上述額外的計算。(處理示例11提出的方法D2)目的是進一步增加上述的處理示例(處理示例2提出的方法D1)的運算速度的技術(shù),其包括使用在處理示例7到10的每一個中所述的計算產(chǎn)生的二等分的方法來計算除數(shù)的標量乘法。將在下面順序地詳細描述上述各個處理示例。處理示例7(提出的方法A2)涉及目的是進一步增加上述的處理示例(處理示例1提出的方法A1)的運算速度的技術(shù),其包括計算在帶有隨機參數(shù)的特征為2中的虧格為2的超橢圓曲線上的除數(shù)D的二等分。也在下面的處理示例中,假設在下面處理中所使用的除數(shù)的階數(shù)為r。也就是,除數(shù)沒有分歧點。假設輸入除數(shù)如下D2=(U2,V2);U2=u22x2+u21x+u20;和V2=v21x+v20,其中如果D2的權(quán)重為2則u22=1;和如果D2的權(quán)重為1則u22=1,u21=1,和v21=0。由于不包括分歧點,所以作為二等分運算,考慮四種倒數(shù)運算,ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2和HarleyDBL,就足夠了。除了HarleyDBL之外的那些是例外情況。這里,ExHarDBL2+2→1表示在輸入除數(shù)的權(quán)重為2并且輸出除數(shù)的權(quán)重為1的情況下的計算。進一步,ExHarDBL2+2→2表示在輸入除數(shù)為2,并且U2的第一次項的系數(shù)滿足u21=0而且輸出除數(shù)的權(quán)重為2的情況下的計算。然而,雖然可以通過HarleyDBL來計算ExHarDBL2+2→2,但是由于作為其倒數(shù)運算的二等分變?yōu)槔馇闆r,所以這里將ExHarDBL2+2→2作為例外情況。將與上述ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2和HarleyDBL對應的二等分運算分別定義為ExHEC_HLV2→1+1、ExHEC_HLV1→2+2、ExHEC_HLV2→2+2和HEC_HLV。當執(zhí)行除數(shù)的二等分運算時,首先,如上面參照(處理示例1提出的方法A)所描述的那樣,如圖2所示地根據(jù)輸入除數(shù)進行逐情況的分化。如果輸入除數(shù)的權(quán)重為2,并且U2的第一次項的系數(shù)滿足u21≠0,則通過HEC_HLV執(zhí)行繼續(xù)。進一步,如果U2的該項的系數(shù)滿足u21=0,則通過ExHEC_HLV2→2+2或ExHEC_HLV2→1+1來執(zhí)行計算。進一步,如果輸入除數(shù)的權(quán)重為1,則通過ExHEC_HLV1→2+2來執(zhí)行計算。HEC_HLV的算法如上面參照圖3所述。通過用于執(zhí)行除數(shù)的加倍運算的算法,即下面的[Algorithm1HarleyDBL],的逆運算來實現(xiàn)除數(shù)的二等分運算。Algorithm1HarleyDBLInputD1=(U1,V1)OutputD2=(U2,V2)Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,U1)=11.U1′←U122.S←h-1(f+hV1+V12)/U1modU13.V1′←SU1+V14.U2′←(f+hV1′+V1′2)/U′5.U2←MakeMonic(U2′)6.V2←V1′+hmodU27.returnD2=(U2,V2)在算法1的步驟6中,存在唯一多項式k(x)=k1x+k0,其滿足V1′+h=(k1x+k0)U2+V2。將其進行變換如下V1′=h+(kix+k0)U2+V2。將其帶到步驟4中出現(xiàn)的表達式中,(f+hV1′+V1′2),得出下面U2′U1′=f+h(kU2+V2)+k2U22+V22表達式(1)。在上述表達式中,由于(U2,V2)已知,所以從表達式(1)中,可以獲得k和U1′之間的關(guān)系表達式。在這種情況下,應該注意U2=k12U2。將上述等式(1)進行擴展并且重新排列以產(chǎn)生下式U1′=x4+((k1h2+k12u21+1)/k12)x3+((k1h1+k0h2+k12u20+k02+c2)/k12)x2+((k1h0+k0h1+k02u21+c1)/k12)x+(k0h0+k02u20+c0)/k12表達式(2)這里,滿足c2=f4+u21,c1=f3+h2v21+u21+c2u21,和c0=f2+h2v20+h1v21+v212+c2u20+c1u21。進一步,從步驟1,U1′=U12。也就是,下面表達式成立U1′=x4+u112x2+u102表達式(3)通過上述表達式(2)和(3)之間的相應系數(shù)的比較得出關(guān)系表達式,并且通過解該關(guān)系表達式計算二等分運算。將描述上述過程的算法在下面示出作為算法4[Algorithm4SketchHEC_HLV]。Algorithm4SketchHEC_HLVInputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.reconstructk0,k11.1V1′←V2+h+kU2,k(x)=k1x+k01.2U1′←(f+hV1′+V1′2)/(k12U2)1.3derivek0,k1fromcoeff(U1′,3)=0,coeff(U1′,1)=02.computeu11bysubstitutingk0,k1incoeff(U1′,2)3.computeu10bysubstitutingk0,k1incoeff(U1′,0)4.U1←x2+u11x+u105.V1←V2+h+kU2modU16.returnD1=(U1,V1)具體地說,可以獲得下面關(guān)系表達式。k1h2+k12u21+1=0表達式(4)k1h0+k0h1+k02u21+c1=0表達式(5)u11=k1h1+k0h2+k12u20+k02+c2/k1]]>表達式(6)u10=k0h0+k02u20+c0/k1]]>表達式(7)必須從這些關(guān)系表達式中計算正確的k0、k1。這可以使用下面描述的引理進行計算。假設h(x)是不可約多項式。在這種情況下,只存在一個滿足表達式(4)和(5)的k1。進一步,表達式僅僅針對正確的k1具有根。進一步,只存在允許算法4中的經(jīng)二等分的除數(shù)D1的計算的一個k0。進一步,下面表達式xh2+x2u11+1=0僅僅針對正確的k0具有根。將上述引理1應用到算法4。將二等分的詳細計算方法在下面示出作為算法5a[Algorithm5aSketchHEC_HLV]。Algorithm5aHEC_HLVInputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1h2+k12u21+1=0invu←1/u21,invh←1/h22,α←h2invu,γ←u21invhk1←H(γ)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0h1+k02u21+c1=0c2←f4+u21,c1←f3+h2v21+u20+c2u21c0←f2+h2v20+h1v21+v212+c2u20+c1u21α←h1invu,w←u21/h12,γ←(c1+k1h0)wifTr(γ)=1thenk1←k1′,γ←(c1+k1h0)wk0←H(γ)α,k0′←k0+α3.Selectcorrectk0bycheckingtraceofxh2+x2u11+1=0invk←1/k1,u11←invkk1(h1+k1u2)+k0(h2+k0)+c2,]]>γ←u11invhifTr(γ)=1thenk0←k0′,u11←u11+invkα(h2+α)]]>4.ComputeU1u10←invkk0(h0+k0u20)+c0]]>5.ComputeV1=V2+h+kU2modU1w←h2+k1(u11+u21)+k0v11←v21+h1+k1(u10+u20)+k0u21+u11wv10←v20+h0+k0u20+w6.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)在上述算法5a[Algorithm5a]中,如果k1′、k0′是正確的值(換句話說,如果k1、k0不是正確的值),則該算法的復雜度為29M+1S+4I+3SR+2H+2T。這里,M、S、SR、H和T分別表示乘法、平方、倒數(shù)、平方根、半跡(用于找到二次方程的根的運算)和跡(確定針對二次方程是否存在根)。如果這些k1′、k0′是正確的值,則復雜度變?yōu)樽畲?。隨后,如果k1、k0是正確的值(換句話說,如果k1′、k0′不是正確的值),則復雜度變?yōu)樽钚?,所以在步驟2中可以以2M減小復雜度,并且可以在步驟3中以2M+1SR減小復雜度。也就是,在這種情況中的復雜度為25M+1S+4I+2SR+2H+2T,并且復雜度變?yōu)樽钚?。隨后,如果k1、k0′是正確的值(換句話說,如果k1′、k0不是正確的值),則復雜度在步驟3中可以以2M+1SR減小。也就是,在這種情況中的復雜度變?yōu)?7M+1S+4I+2SR+2H+2T。最后,如果k1′、k0是正確的值(換句話說,如果k1、k0′不是正確的值),則可以在步驟2中以2M減小復雜度。也就是,在這種情況下的復雜度變?yōu)?7M+1S+4I+3SR+2H+2T。當通過計算機試驗檢查上述四種情況發(fā)生的概率時,確認它們以基本上相同的比率發(fā)生。在下面的描述中,假設上述四種情況發(fā)生的概率基本上相同。將上述四種情況的復雜度進行平均得出27M+1S+4I+2.5SR+2H+2T。隨后,考慮例外情況ExHEC_HLV2→1+1;ExHEC_HLV1→2+2;和ExHEC_HLV2→2+2由于這四種例外情況發(fā)生的概率低到可以被忽略,所以不對復雜度進行評估。應該注意,這些例外情況的計算算法是在上述(處理示例1提出的方法A1)的部分中參照圖4到6所示的流程圖所描述的那些相同的處理,也就是對于ExHEC_HLV2→1+1的算法,流程圖在圖4中示出;對于ExHEC_HLV1→2+2的算法,流程圖在圖5中示出;和對于ExHEC_HLV2→2+2的算法,流程圖在圖6中示出。進一步,也關(guān)于針對ExHEC_HLV2→2+2的計算過程,該處理與在(處理示例1提出的方法A1)的部分中在上面所描述的算法6[Algorithm6]的處理相同,該處理與在(處理示例1提出的方法A1)的部分中在上面所描述的算法7[Algorithm7]的處理相同。處理示例8(提出的方法F2)涉及目的是進一步增加上述的處理示例(處理示例2提出的方法F1)的運算速度的技術(shù),其包括計算在帶有參數(shù)h(x)=x2+h1x+h0、f4=0的特征為2中的虧格為2的超橢圓曲線上的除數(shù)D的二等分。對于算法5a的仔細研究應用于上述處理示例(處理示例7提出的方法A2)將揭示算法5a包含大量系數(shù)h(x)的乘法運算和系數(shù)h(x)的倒數(shù)運算。這意味著可以通過操控系數(shù)h(x)來降低形成和倒數(shù)運算的復雜度。應該注意,根據(jù)文獻(非專利文獻19T.Lange.EfficientDoublingonGenusTwoCurvesoverBinaryFields,SAC2004,pre-proceedings,pp.189-202,2004.),使用h2=1、f4=0來實現(xiàn)快速計算。在使用這些參數(shù)的情況下的HarleyDBL的復雜度為21M+5S+1I。雖然與上述那些一致地設定在這里描述的針對處理示例8(提出的方法F2)的條件,但是由于移位引理1導致針對h(x)假設不可約多項式,所以設定h(x)=x2+h1x+h0,和Tr(h0/h12)=1(二次方程ax2+bx+c=0為不可約多項式的充分必要條件是Tr(ac/b2)=1)。將這種情況中的計算方法在算法8[Algorithm8]HEC_HLV(h2=1,f4=0)中示出。Algorithm8aHEC_HLV(h2=1,f4=0)InputD2=(U2,V2),1/h12OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0α←1/u21,k1←H(u21)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0h1+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21(h1+v21)+u21(u20+c1)w0←u21/h12,α←h1α,γ←(c1+k1h0)w0ifTr(γ)=1thenk1←k1′,γ←(c1+k1h0)w0k0←H(γ)α,k0′←k0+α3.Selectcorrectk0bycheckingtraceofx+x2u11+1=0w0←k12,w1←w0u20+k1h1+u21w2←k0+w1+k0,]]>w4←k1u21+1,u11←w2w4ifTr(u11)=1thenk0←k0′,w2←k0+w1+k0,]]>u11←w2w44.ComputeU1w1←k0u20,w5←w4+1,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+h1w6←w1+v20+h0,w7←w2+w4w1←w7u10,w3←(k1+w7)(u10+u11)v11←w1+w2+w3+w5v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←V11x+V107.returnD1=(U1,V1)這里,考慮減少倒數(shù)運算的數(shù)量的方法。雖然算法5a[Algorithm5a]需要四個倒數(shù)運算1/u21、1/h22、1/h12、1/k1,但是這里通過設定為h2=1,將所需要的倒數(shù)運算的數(shù)量減少到三個。進一步,由于h1是曲線參數(shù),所以通過計算1/h12和將此事先作為輸入給出,可以將所需要的倒數(shù)運算的數(shù)量減少到兩個1/u21和1/k1。進一步,關(guān)于1/k1,可以基于參照上述[處理示例7提出的方法A2]所描述的表達式4通過一個乘法運算和一個加法運算來找到它,也就是,1/k1=h2+k1u21。由于這些運算,上述算法8a[Algorithm8a]HEC_HLV(h2=1,f4=0)所需要的倒數(shù)運算的數(shù)量僅僅為一個,1/u21。作為結(jié)果,上述算法8a[Algorithm8a]HEC_HLV(h2=1,f4=0)的復雜度如下。(a)如果k1,k0是正確的值18M+2S+1I+2SR+2H+2T(b)如果k1,k0′是正確的值19M+2S+1I+3SR+2H+2T(c)如果k1′,k0是正確的值20M+2S+1I+2SR+2H+2T(d)如果k1′,k0′是正確的值21M+2S+1I+3SR+2H+2T將所有上述情況(a)到(d)進行平均得出19.5M+2S+1I+2.5SR+2H+2T。HarlyeDBL的復雜度為21M+5S+1I。這里,根據(jù)文獻[(非專利文獻15)E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999.],已知當以正規(guī)基定義有限域時,可以忽略S(平方)、SR(平方根運算)、H(半跡(用于找到二次等式的根的運算))、和T(跡(確定二次等式是否存在根))的復雜度,并且僅僅需要考慮M(乘法)和I(倒數(shù))的復雜度。因此,當使用正規(guī)積時,算法8a比HarleyDBL快1.5M。進一步,當以多項式基(polynomialbasis)來定義有限域時,根據(jù)文獻(非專利文獻16)K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf18],已知與M(乘法)的復雜度相比較,通常SR(平方根運算)和H(半跡(用于找到二次方程的根的運算))是大約SR=H=0.5M。進一步,可以忽略T(跡(確定針對二次方程是否有根))的復雜度。進一步,已知S(平方)的復雜度僅僅大約是M(乘法)的十分之幾。然而,還已知根據(jù)選擇多項式基的方式,SR的復雜度可以變?yōu)樾∮?.5M。應該注意,可以根據(jù)上述處理示例7(提出的方法A2)中的例外情況來計算例外情況。處理示例9(提出的方法B2)涉及目的是進一步增加上述的處理示例(處理示例2提出的方法B1)的運算速度的技術(shù),其包括計算在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的二等分。如已經(jīng)參照上述處理示例8(提出的方法F2)所描述的那樣,對參照處理示例7(提出的方法A2)所描述的二等分的計算算法,也就是算法5a[Algorithm5aHEC_HLV],的仔細研究,將揭示算法5a包含大量的系數(shù)h(x)的乘法運算和系數(shù)h(x)的倒數(shù)運算。這意味著可以通過操控系數(shù)h(x)來減小乘法和倒數(shù)運算的復雜度。在文獻[J.Pelzl,T.Wollinger,J.Guajardo,andC.Paar.HyperellipticcurveCryptosystemsClosingthePerformanceGaptoEllipticCurves.CryptologyePrintArchive,2003/026,IACR,2003]中,公開了使用h2、h1∈{0,1}、f4=0來實現(xiàn)快速計算的例子。在使用這些參數(shù)的情況下HarleyDBL的復雜度為18M+7S+1I。雖然也與上述的那些一致地設定處理示例9(提出的方法B2)的條件,但是由于上述引理1導致針對h(x)假設不可約多項式,所以設定h(x)=x2+x+h0,和Tr(h0)=1(二次方程ax2+bx+c=0為不可約的充分必要條件是Tr(ac/b2)=1)。將這種情況下的計算方法在下面作為算法10a[Algorithm10aHEC_HLV(h2=h1=1,f4=0)示出。Algorithm10aHEC_HLV(h2=h1=1,f4=0)InputD2=(U2,V2)OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0α←1/u21,k1←H(u21)α,k1′←k1+α2.Selectcorrectk1bysolvingk1h0+k0+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21+v212+u21(u20+c1)γ←(c1+k1h0)u21ifTr(γ)=1thenk1←k1′,γ←γ+h0k0←H(γ)α,k0′←k0+α3.Selectcorrectk0bycheckingtraceofx+x2u11+1=0w0←k12,w1←w0u20+k1+u21w2←k0+w1+k0,]]>w4←k1u21+1,u11←w2w4ifTr(u11)=1thenk0←k0′,w2←k0+w1+k0,u11←w2w4]]>4.ComputeU1w1←k0u20,w5←w4+1,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+1w6←w1+v20+h0,w7←w2+w4w1←w7u10,w3←(k0+w7)(u10+u11)v11←w1+w2+w3+w5v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)上訴算法10a[Algorithm10aHEC_HLV(h2=h1=1,f4=0)的復雜度如下。a)如果k1,k0是正確的值14M+3S+1I+2SR+2H+2T(b)如果k1,k0′是正確的值15M+3S+1I+3SR+2H+2T(c)如果k1′,k0是正確的值14M+3S+1I+2SR+2H+2T(d)如果k1′,k0′是正確的值15M+3S+1I+3SR+2H+2T將所有上述情況(a)到(d)進行平均得出14.5M+3S+1I+3SR+2H+2T。HarleyDBL的復雜度為18M+7S+1I。這里,如上所述,根據(jù)文獻[E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springe-Verlag,1999.],已知當以正規(guī)基(normalbasis)定義有限域時,可以忽略S(平方)、SR(平方根運算)、H(半跡(用于找到二次等式的根的運算))、和T(跡(確定二次等式是否存在根))的復雜度,并且僅僅需要考慮M(乘法)和I(倒數(shù))的復雜度。因此,當使用正規(guī)基時,上述算法10a[Algorithm10a]比傳統(tǒng)算法[HarleyDBL]快3.5M。進一步,當以多項式基定義有限域是,根據(jù)文獻[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf18],已知與M(乘法)的復雜度相比較,通常SR(平方根運算)和H(半跡(用于找到二次等式的根的運算))是大約SR=H=0.5M。進一步,可以忽略T(跡(確定針對二次等式是否有根))的復雜度。進一步,已知S(平方)的復雜度僅僅大約是M(乘法)的十分之幾。然而,還已知根據(jù)選擇多項式基的方式,SR的復雜度可以變?yōu)樾∮?.5M。上述算法10a[Algorithm10a]的曲線還要受到h0=1的約束。由于上述算法10a[Algorithm10a]涉及h0的乘法運算,所以通過設定為h0=1,可以以1M減小復雜度。通過將所有上述情況(a)到(d)進行平均得出復雜度13.5M+3S+1I+2.5SR+2H+2T。在另一方面,HarleyDBL的復雜度為15M+7S+11。應該注意,當以正規(guī)基定義有限域時,可以忽略S、SR、H、T的復雜度,并且當使用正規(guī)基時,算法10a[Algorithm10a]變?yōu)楸葌鹘y(tǒng)算法[HarleyDBL]快1.5M。應該注意,可以根據(jù)上述處理示例7(提出的方法A2)中的例外情況來計算例外情況。處理示例10(提出的方法C2)涉及目的是進一步增加上述的處理示例(處理示例2提出的方法C1的運算速度的技術(shù)。也就是,當計算在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上、在帶有參數(shù)h(x)=x2+h1x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上和在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)的二等分時,出現(xiàn)二等分值的兩個候選者。在這種情況下,需要從兩個候選者中選擇帶有正確的值的一個。當選擇正確的一個時,需要計算有限域的跡、乘法和平方根。兩個候選者中哪一個是正確的依賴于除數(shù)D。因此,如果固定除數(shù)D,則實現(xiàn)在表中保留關(guān)于兩個候選者中的哪一個正確的信息,并且當選擇正確的值時查詢該表,因此省略上述額外的計算。k1、k1′(k0,k0′)中的哪一個是正確的依賴于輸入除數(shù)D。因此,如果例如D固定,則當之前將基點確定為在ECDH密鑰交換、ECDSA簽名產(chǎn)生或者驗證等的階段1的情況中時,計算[1/2i]D并且實現(xiàn)將關(guān)于k1、k1′(k0,k0′)中的哪一個正確的信息記錄在表中。例如,準備與基點的階數(shù)相同位大小的兩個表T1、T0,并且將這些表的二進制表示定義為T1=(t1,r-1,...,t1,0),和T0=(t0,r-1,...,t0,0)。在尋找[1/2i]D時,如果將這樣的信息存儲在表中如果k1是正確的則t1,i=0否則如果k1′是正確的則t1,i=1;并且如果k1是正確的則t1,i=0,否則如果k0′是正確的則t0,i=1,則僅僅大約是基點的階數(shù)的大小兩倍的位串作為表大小就足夠了。通過查詢這些表,可以減小二等分的復雜度。將如應用到算法8a[Algorithm8a]HEC_HLV(h2=1,f4=0)的上述方法表示為算法9a[Algorithm9a]HEC_HLV(h2=1,f4=0,withtable-lookup)。該算法的復雜度為18M+2SR+1I+2SR+2H。Algorithm9aHEC_HLV(h2=1,f4=0,table-lookup)inputD2=(U2,V2),1/h12,t0,t1OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,21.Solvek1+k12u21+1=0α←1/u21ift1=0thenk1←H(u21)αelsek1←(H(u21)+1)α2.Solvek1h0+k0h1+k02u21+c1=0c1←f3+v21+u20+u212c0←f2+v20+v21(h1+v21)+u21(u20+c1)w0←u21/h12,α←h1α,γ←(c1+k1h0)w0ift0=0thenk0←H(γ)αelsek0←(H(γ)+1)α3.ComputeU1w0←k12,w1←w0u20+k1h1+u21,w2←k0+w1+k0]]>w4←k1u21+1,u11←w2w4w1←k0u20,w5←w4+1,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>4.ComputeV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+h1w6←w1+v20+h0,w7←w2+w4w1←w7u10,w3←(k1+w7)(u10+u11)v11←w1+w2+w3+w5v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)具體地說,將如應用到上述算法10a[Algorithm10aHEC_HLV(h2=h1=1,f4=0,withtable-lookup)]的上述方法表示為下面的算法11a[Algorithm11aHEC_HLV(h2=h1=1,f4=0,withtable-lookup)。Algorithm11aHEC_HLV(h2=h1=1,f4=0,withtable-lookup)InputD2=(U2,V2),t0,t1OutputD1=(U1,V1)=[1/2]D2Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,U1)=11.Solvek1+k12u21+1=0andselectcorrectk1viat1α←1/u21ift1=0thenk1←H(u21)αelsek1←(H(u21)+1)α2.Solvek1h0+k0+k02u21+c1=0andselectcorrectk0viat0c1←f3+v21+u20+u212c0←f2+v20+v21+v212+u21(u20+c1)γ←(c1+k1h0)u21k0←H(γ)αift0=0thenk0←H(γ)αelsek0←(H(γ)+1)α3.ComputeU1w0←k12,w1←w0u20+k1+u21w2←k0+w1+k0]]>w4←k1u21+1,u11←w2w4w1←k0u20,w5←w4+1,w6←(k0+k1)(u20+u21)u10←w4k0(w1+h0)+c0]]>5.ComputV1=V2+h+kU2modU1w4←w5+k0+1,w5←w1+w5+w6+v21+1w6←w1+v20+h0,w7←w2+w4w1←w7u10,w3←(k0+w7)(u10+u11)v11←w1+w2+w3+w5v10←w1+w66.U1(x)←x2+u11x+u10,V1(x)←v11x+v107.returnD1=(U1,V1)算法11a[Algorithm11aHEC_HLV(h2=h1=1,f4=0,withtable-lookup)的復雜度為14M+3S+1I+2SR+2H,而且進一步,通過設定為h0=1,可以以1M將該復雜度減小。在這種情況下的復雜度變?yōu)?3M+3S+1I+2SR+2H。處理示例11(提出的方法D2)涉及目的是進一步增加上述的處理示例(處理示例2提出的方法D1)的運算速度的技術(shù),其包括使用在處理示例7到10的每一個中所述的計算產(chǎn)生的二等分的方法來計算除數(shù)的標量乘法。在下面的每個文獻中公開了使用橢圓曲線上的有理點的二等分來計算標量乘法的方法[E.Knudsen.EllipticScalarMultiplicationUsingPointHalving.ASIACRYPTO′99,LNCS1716,pp.135-149,Springer-Verlag,1999.]和[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf]?;谠谶@些文獻中所公開的標量乘法來執(zhí)行使用在超橢圓曲線上的除數(shù)的二等分來計算標量乘法的方法。這里,假設經(jīng)歷標量乘法的除數(shù)D是大階數(shù)的素數(shù)。進一步,假設標量值d是整數(shù)0<d<r。為了使用二等分來執(zhí)行標量乘法,首先,需要以半表示(halfrepresentation)來表達以二進制表示所表達的標量值d。這里,假設[公式32]進一步,求當將d乘以2m然后除以r時的余數(shù),也就是,Σi=0md^i2i←2md(modr).]]>隨后,將其除以2m以得出[公式34]Σi=0mdi/2i←Σi=0md^i2i-m]]>將在上述表達式中由[公式35]Σi=0mdi/2i]]>所表達的標量值用于使用二等分的標量乘法[二等分-并-二進制加法(halve-and-addbinary)]方法。這里[公式36]di,d^i∈{0,1}.]]>將二等分-并-二進制加法方法(右到左)和二等分-并-二進制加法方法(左到右)分別在下面表示為算法12a[Algorithm12a]和算法13a[Algorithm13a]。Algorithm12aHalve-and-addbinaryMethod(right-to-left)InputD∈J(F2n)suchthat2D≠O,]]>d∈Z,rorderofD,OutputscalarmultiplicationdD1.Σi=0md^i2i←2mdmodr,d^i∈{0,1}]]>2.Σi=0mdi/2i←Σi=0md^i2i-m,di∈{0,1}]]>3.Q←O,R←D4.forifrom0tomdoifdi=1thenQ←Q+RR←HEC_HLV(R)5.returnQ[公式38]Algorithm13aHalve-and-addbinaryMethod(left-fo-right)InputD∈J(F2n)suchthat2D≠O,]]>d∈Z,rorderofD,OutputscalarmultiplicationdD1.Σi=0md^i2i←2mdmodr,d^i∈{0,1}]]>2.Σi=0mdi/2i←Σi=0md^i2i-m,di∈{0,1}]]>3.Q←O4.forifrommdownto0doQ←HEC_HLV(Q)ifdi=1thenQ←Q+D5.returnQ在上述算法12a[Algorithm12a]和算法13a[Algorithm13a]的每一個的步驟4中所出現(xiàn)的HEC_HLV可以是使用隨機曲線的上述算法5a[Algorithm5a]的HEC_HLV、帶有提供給算法8a[Algorithm8a]的曲線參數(shù)的約束h2=1、f4=0的HEC_HLV、帶有提供給算法10a[Algorithm10a]的曲線參數(shù)的約束h2=h1=1、f4=0的HEC_HLV、或者帶有提供給算法10a[Algorithm10a]的曲線參數(shù)的約束h2=h1=h0=1、f4=0的HEC_HLV。在參照上面處理示例1到6描述的二等分運算的情況中,例如,在上述[處理示例3(提出的方法B1)]中示出的算法10或者在[處理示例5(提出的方法C1)]中示出的算法11中,輸入和輸出分別需要1/u21和1/u11因此,基點D的1/2i倍乘積,也就是(1/2)D,(1/22)D,(1/23)D,(1/2i)D...可以用被取作下一個二等分運算的輸入的之前二等分運算的輸出1/u11來給出,因此使得有效計算成為可能。因此,當通過二等分-并-二進制加法方法(右到左)來計算標量乘積時,這可以通過適當?shù)丶臃ɑcD的1/2i乘積來完成。因此在右到左方法的情況中可以用有效的方式來執(zhí)行標量乘法。在另一方面,在左到右方法的情況中,存在不能將之前二等分運算的輸出取作下一個二等分運算的輸入的情況。在上述算法13a[Algorithm13a]的步驟4中,首先,將通過該算法中途獲得的中間結(jié)果Q乘以1/2(Q←HEC_HLV(Q)),而且如果標量值的一位是1,則將基點加入到該中間結(jié)果(如果di=1則Q←Q+D)。因此,如果位是1,則對于下一位,并且將之前二等分運算的輸出1/u11作為下一個二等分運算的輸出給出,所以需要重新計算輸入值1/u21。有限域的倒數(shù)比乘法復雜得多。因此,在上面處理示例1到6中所描述的二等分方法的情況中,當應用左到右時,需要執(zhí)行用于產(chǎn)生二等分的輸入值的額外倒數(shù)運算,其降低了計算的效率。然而,根據(jù)參照從處理示例7向前的處理示例所描述的提出的方法,輸入不需要1/u21,所以可以與使用左到右或者右到左方法無關(guān)地以相同的復雜度執(zhí)行計算。進一步,上述算法12a[Algorithm12a]的二等分-并-二進制加法方法(右到左)的步驟4中的HEC_HLV可以是帶有應用到使用隨機曲線的5a[Algorithm5a]的表查詢方法的HEC_HLV、帶有對算法8a[Algorithm8a]的曲線參數(shù)提供約束h2=1、f4=0并且應用表查詢方法的HEC_HLV、帶有對算法10a[Algorithm10a]的曲線參數(shù)提供約束h2=h1=1、f4=0并且應用表查詢方法的HEC_HLV、或者帶有對算法10a[Algorithm10a]的曲線參數(shù)提供約束h2=h1=h0=1、f4=0并且應用表查詢方法的HEC_HLV。進一步,除了二進制方法以外還可以應用窗口方法。使得D表示輸入除數(shù)而w表示窗口寬度。將針對其代替中間結(jié)果的除數(shù)表示為Q←O。關(guān)于整數(shù)i=(iw-1,iw-2...i0)2∈{0,1,...,2w-1},執(zhí)行下面初步計算[公式39]Dj←Σj=0w-1ij2jD]]>以事先計算由2w個除數(shù)組成的表。進一步,以下面的1/2w進制表示來擴展標量值d。Σi=0lci/(2w)i←Σi=0mdi/2i]]>首先,將二等分w次地應用到Q以給出Q←(1/2w)Q。之后,以窗口寬度w從d的最高有效位中掃描標量值c1,并且查詢在表中的對應除數(shù),并且將此加入到結(jié)果如下。Q←Q+Dc1將此重復到c0。將這種計算方法[二等分-并-窗口加法方法]表示為下面算法14a[Algorithm14a]。Algorithm14aHalve-and-addWindowMethodInputD∈J(F2n)suchthat2D≠O,]]>d∈Z,rorderofD,OutputscalarmultiplicationdD1.Σi=0md^i2i←2mdmodr,d^i∈{0,1}]]>2.Σi=0mdi/2i←Σi=0md^i2i-m,di∈{0,1}]]>3.Σi=0lci/(2w)i←Σi=0mdi/2i,ci∈{0,1,···,2w-1}]]>4.Di←iw-12w-1D+···+i020D,fori=(iw-1···i0)2∈{0,1,···,2w-1}]]>5.Q←O6.forifromldownto0doforjfrom1towdoQ←HEC_HLV(Q)Q←Q+Dc17.returnQ進一步,可以將除數(shù)D=(U,V),U=x2+u1x+u0,和V=v1xandv0,的倒數(shù)表示如下-D=(U,V+hmodU)=(U,(v1+h2u1+h1)x+(v0+h2u0+h0))。具體地說,如果h2=1,則不需要有限域乘法,并且四個有限域乘法運算就足以從D中找到-D。可以通過除數(shù)-D的加法來計算除數(shù)D的相減。也就是,能夠以相同的復雜度得出除數(shù)的加法和相減。因此,可能通過也使用負值來表示標量值,并且使用負值來執(zhí)行標量乘法。首先,使用NAF(非相鄰形式,Non-AdjacentForm),通過{-1,0,1}來表示給定整數(shù)s。在NAF中,從最低有效位中掃描以二進制表示所表達的整數(shù)s的標量值。如果存在數(shù)字1彼此相鄰的點,則將其表達如下,例如在(11)的情況中,將此表達位(10-1),也就是,3=22-1;和在(111)的情況中,將此表達位(100-1),也就是,7=23-1。將用于NAF的計算方法表示為下面算法15a[Algorithm15a]。Algorithm15aConversiontoNAFInput:s=Σj=0l-1sj2j∈Z,sj∈{0,1}]]>Output:NAF(s)=Σj=0lsj′2j,sj′∈{-1,0,1}]]>1.c0←0,sl←02.Forj=0toldosj′←sj+cj-2cj+13.returnNAF(S)=(sl′sl-1′…s0′)NAF表示帶有最少數(shù)量的非零位的表達式。由于在非零位的部分中執(zhí)行除數(shù)加法或者相減,所以因為非零位的數(shù)量變得較小導致可以更快地計算標量乘法??梢詫⑹褂肗AF的標量值表達式應用于二等分-并-二進制加法方法和二等分-并-窗口加法方法。二等分-并-二進制加法方法和二等分-并-窗口加法方法的每一個中所使用的HEC_HLV可以是使用隨機曲線的上述算法5a[Algorithm5a]的HEC_HLV、帶有提供給算法8a[Algorithm8a]的曲線參數(shù)的約束h2=1、f4=0的HEC_HLV、帶有提供給算法10a[Algorithm10a]的曲線參數(shù)的約束h2=h1=1、f4=0的HEC_HLV、或者帶有提供給算法10a[Algorithm10a]的曲線參數(shù)的約束h2=h1=h0=1、f4=0的HEC_HLV。將使用NAF的二等分-并-二進制加法方法表示為下面算法16a[Algorithm16a]。Algorithm16aHalve-and-addNAFBinaryMethodInputD∈J(F2n)suchthat2D≠O,]]>d∈Z,rorderofD,OutputscalarmultiplicationdD1.Σi=0md^i2i←NAF(2mdmodr),d^i∈{-1,0,1}]]>2.Σi=0mdi/2i←Σi=0md^i2i-m,di∈{-1,0,1}]]>3.Q←O4.forifrommdownto0doQ←HEC_HLV(Q)ifdi>0thenQ←Q+Difdi<0thenQ←Q-D5.returnQ[增加的計算速度的驗證]下面,找到應用于上述處理示例7到11的每一個的計算的復雜度,并且進行針對計算速度的增加的驗證。在HEC_HLV(h2=1,f4=0)的情況中,所需要的復雜度平均為19.5M+2S+1I+3SR+2H+2T。首先,考慮以正規(guī)基定義有限域的情況。如上所述,當使用正規(guī)基時,僅僅考慮M和I的復雜度。根據(jù)文獻[A.Menezes.EllipticCurvePublicKeyCryptosystems.KluwerAcademicPublishers,1993.],假設有限域為Fq、q=2n,一個倒數(shù)運算等效于通過下面表達式計算的乘法運算的數(shù)量,也就是[公式44]在這種情況下,w(n-1)表示在n-1的二進制表達式中1的數(shù)量。例如,如果n=83、89、113,則I=8M,而如果n=103,則I=9M。這里,假設I=8M,則HEC_HLV(h2=1,f4=0)在復雜度表示為19.5M+1I=27.5M。在另一方面,在HarleyDBL的情況中,其復雜度表示為21M+1I=29M,所以HEC_HLV比HarleyDBL快大約5%。進一步,當使用表查詢方法時,復雜度變?yōu)?8M+1I=26M,所以HEC_HLV比HarleyDBL快大約10%。進一步,在HEC_HLV(h2=h1=1,f4=0)的情況中,復雜度平均為14.5M+3S+1I+2.5SR+2H+2T。在這種情況下,14.5M+1I=22.5M。在另一方面,在HarleyDBL的情況中,復雜度表示為18M+1I=26M,所以HEC_HLV比HarleyDBL快大約13%。進一步,當使用表查詢方法時,復雜度變?yōu)?4M+1I=22M,所以HEC_HLV比HarleyDBL快大約15%。進一步,HEC_HLV(h2=h1=h0=1,f4=0)的復雜度平均為13.5M+3S+1I+2.5SR+2H+2T。在這種情況中,13.5M+1I=21.5M。在另一方面,在HarleyDBL的情況中,其復雜度為15M+1I=23M,所以HEC_HLV比HarleyDBL快大約6%。進一步,當使用表查詢方法時,復雜度變?yōu)?7M+1I=25M,所以HEC_HLV比HarleyDBL快大約14%。下面,評估多項式基的情況中的復雜度。假設S、I、SR、H、T的復雜度如下S=0.1M,I=8M,SR=0.5M,H=0.5M,T=0.5M。在HEC_HLV(h2=1,f4=0)的情況中,復雜度平均為19.5M+2S+1I+2.5SR+2H+2T=29.95M。在另一方面,在HarleyDBL的情況中,復雜度為21M+5S+1I=29.5M,所以HarleyDBL比HEC_HLV快大約1%。進一步,當使用表查詢方法時,復雜度變?yōu)?8M+2S+1I+2SR+2H=28.2M,所以HEC_HLV比HarleyDBL快大約4%。進一步,在HEC_HLV(h2=h1=1,f4=0)的情況中,復雜度平均為14.5M+3S+1I+2.5SR+2H+2T=25.05M。在另一方面,在HarleyDBL的情況中,復雜度為18M+7S+1I=26.7M,所以HEC_HLV比HarleyDBL快大約6%。進一步,當使用表查詢方法時,復雜度變?yōu)?4M+3S+1I+2SR+2H=24.3M,所以HEC_HLV比HarleyDBL快大約9%。進一步,在HEC_HLV(h2=h1=h0=1,f4=0)的情況中,復雜度平均為13.5M+3S+1I+2.5SR+2H+2T=24.05M。在另一方面,在HarleyDBL的情況中,復雜度為15M+7S+1I=23.7M,所以HarleyDBL比HEC_HLV快大約1%。進一步,當使用表查詢方法時,復雜度變?yōu)?3M+3S+1I+2SR+2H=23.3M,所以HEC_HLV比HarleyDBL快大約2%。進一步,通過軟件實施針對多項式基的情況執(zhí)行速度比較。在如下指示的環(huán)境中執(zhí)行軟件實施CPUPentiumII300MHxOSRedHat7.3編譯程序gcc2.96。分別以下面文檔中所公開的方式執(zhí)行M(乘法)和S(平方)、I(倒數(shù))、SR(平方根運算)和T(跡(確定對于二次等式是否存在根))、和H(半跡)(用于找到二次等式的根的運算)的運算[D.Hankerson,J.Hernandez,andA.Menezes.SoftwareImplementationofEllipticCurveCryptographyoverBinaryFields.CHES2000,LNCS1965,pp.1-24,2000.Algorithm4.6,4.7];[S.Shantz.FromEuclid′sGCDtoMontgomeryMultiplicationtotheGreatDivide.TR-2001-95,SunMicrosystems,Inc.,2001.];[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf];and[K.Fong,D.Hankerson,J.Lopez,andA.Menezes.Fieldinversionoperationandpointhalvingrevised.TechnicalReportCORR2003-18,http//www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdfAlgorithm4.7]。關(guān)于n=83、89、113的三個有限域來實施M、S、I、SR、H、T,并且找到對M的比率。在這種情況下,使用下面不可約多項式在n=83的情況中,z83+z7+z4+z2+1=0;在n=89的情況中,z89+z38+1=0;和在n=113的情況中,z113+z9+1=0。在相應情況中的復雜度如下。n=83S/M=0.12,I/M=7.96,SR/M=0.57,H/M=0.58n=89S/M=0.05,I/M=8.74,SR/M=0.14,H/M=0.61n=113S/M=0.06,I/M=8.56,SR/M=0.10,H/M=0.50將這些應用到HarleyDBL的復雜度,21M+5S+1I,得出如下。n=83HarleyDBL29.56Mn=89HarleyDBL29.99Mn=113HarleyDBL29.86M將這些應用到HEC_HLV(h2=1,f4=0)的復雜度,19.5M+2.5SR+2H+2T,得出如下。n=83HEC_HLV(h2=1,f4=0)30.285Mn=89HEC_HLV(h2=1,f4=0)29.91Mn=113HEC_HLV(h2=1,f4=0)29.43M在這種情況下,當n=83時,HarleyDBL比HEC_HLV快2%。進一步,當n=89、113時,HEC_HLV比HarleyDBL分別快0.3%和1.5%。進一步,將這些應用到應用了表查詢方法的HEC_HLV(h2=1,f4=0)的復雜度,18M+2S+1I+2SR+2H,得出如下。n=83HEC_HLV(h2=1,f4=0,withtable-lookup)28.5Mn=89HEC_HLV(h2=1,f4=0,withtable-lookup)28.34Mn=113HEC_LV(h2=1,f4=0,withtable-lookup)27.88M在這種情況下,當n=83、89、113時,HEC_HLV比HarleyDBL分別快4%、5%、6%。進一步,在h2=h1=1、f4=0的情況中,將這些應用到HarleyDBL的復雜度,18M+7S+1I,得出下面。n=83HarleyDBL27.4Mn=89HarleyDBL27.09Mn=113HarleyDBL26.98M下面,將這些應用于HEC_HLV(h2=h1=1,f4=0)的復雜度,14.5M+3S+1I+2.5SR+2H+2T,得出下面。n=83HEC_HLV(h2=1,f4=0)25.405Mn=89HEC_HLV(h2=1,f4=0)24.96Mn=113HEC_HLV(h2=1,f4=0)24.49M在這種情況下,當n=83、89、113時,HEC_HLV比HarleyDBL分別快7%、8%、10%。進一步,將這些應用到應用了表查詢方法的HEC_HLV(h2=h1=1,f4=0)的復雜度,14M+3S+1I+2SR+2H,得出下面。n=83HEC_HLV(h2=h1=1,f4=0,withtable-lookup)24.62Mn=89HEC_HLV(h2=h1=1,f4=0,withtable-lookup)24.39Mn=113HEC_HLV(h2=h1=1,f4=0,withtable-lookup)23.94M在這種情況下,當n=83、89、113時,HEC_HLV比HarleyDBL分別快10%、8%、11%。進一步,在h2=h1=h0=1,f4=0的情況中,應用這些到HarleyDBL的復雜度,15M+7S+1I,得出下面。n=83HarleyDBL23.8Mn=89HarleyDBL24.09Mn=113HarleyDBL23.98M下面,將這些應用于HEC_HLV(h2=h1h0=1,f4=0)的復雜度,13.5M+3S+1I+2.5SR+2H+2T,得出下面。n=83HEC_HLV(h2=h1=h0=1,f4=0)24.405Mn=89HEC_HLV(h2=h1=h0=1,f4=0)23.96Mn=113HEC_HLV(h2=h1=h0=1,f4=0)23.49M在這種情況下,當n=83時HarleyDBL比,HEC_HLV快2%。當n=89、113時,HEC_HLV比HarleyDBL分別快0.5%、2%。進一步,將這些應用于應用了表查詢方法的HEC_HLV(h2=h1=h0=1,f4=0)的復雜度,13M+3S+1I+2SR+2H,得出下面。n=83HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)23.62Mn=89HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)23.39Mn=113HEC_HLV(h2=h1=h0=1,f4=0withtable-lookup)22.94M在這種情況下,當n=83、89、113時,HEC_HLV比HarleyDBL分別快1%、3%、4%。根據(jù)上面的描述,可以說HEC_HLV在大多數(shù)情況中比HarleyDBL快。特別是,當參數(shù)曲線是h2=h1=1、f4=0時,HEC_HLV在所有情況中都比HarleyDBL快。下面,考慮標量乘法的復雜度。關(guān)于上述例子,在HEC_HLV比HarleyDBL快的情況中,使用加法和二等分的組合的標量乘法比使用加法和加倍的組合的標量乘法快?,F(xiàn)在,將對每個獨立情況中的標量乘法的具體復雜度進行比較。對于曲線參數(shù),使用h2=h1=1、f4=0。進一步,作為標量乘法算法,使用上述NAF+二進制方法(算法16a[Algorithm16a])。由于在該算法中步驟1、2對于整個標量乘法處理的比例非常小,所以可以忽略其復雜度。這里,針對正規(guī)基和多項式基兩者對于n=83、89、113的情況考慮復雜度。進一步,假設基點的階數(shù)對于n=83、89、113分別為165位、177位和225位。進一步,在步驟4的重復部分中,針對基點的階數(shù)的位的數(shù)量進行重復。以文獻[T.Lange,Efficientarithmeticongenus2hyperellipticcurvesoverfinitefieldsviaexplicitformulae.CryptologyePrintArchive,2002/121,IACR,2002]中所公開的方式來執(zhí)行除數(shù)加法。應該注意,曲線參數(shù)是h2=h1=1、f4=0。在這種情況中除數(shù)加法所需要的復雜度為21M+3S+1I。使用NAF由{-1,0,1}來表示標量值。如果將標量值定義為m,則存在大約m/3個非零位。因此,將NAF+二進制方法的復雜度計算如下((乘法·相減的復雜度)/3+(二等分或者加倍的復雜度))×(基點的階數(shù)的位的數(shù)量)。首先,將考慮正規(guī)基的情況。假設I=8M。在h2=h1=1、f4=0的情況中,n=83加法·加倍5885Mn=89加法·加倍6313Mn=113加法·加倍8025M在h2=h1=1、f4=0的情況中,n=83加法·二等分5307.5Mn=89加法·二等分5693.5Mn=113加法·二等分7237.5M在h2=h1=1、f4=0+表查詢方法的情況中,n=83加法·二等分5225Mn=89加法·二等分5605Mn=113加法·二等分7125M下面,考慮多項式基的情況。在h2=h1=1、f4=0的情況中,n=83加法·加倍6116Mn=89加法·加倍6505.93Mn=113加法·加倍8245.5M在h2=h1=1、f4=0的情況中,n=83加法·二等分5786.82Mn=89加法·二等分6128.92Mn=113加法·二等分7685.25M在h2=h1=1、f4=0+表查詢方法的情況中,n=83加法·二等分5657.3Mn=89加法·二等分6028.03Mn=113加法·二等分7561.5M可以說(加法·加倍的標量乘積)比(加法·二等分的標量乘積)在正規(guī)基的情況中快大約10到11%,而在多項式基的情況中快大約5到8%。如上所述,根據(jù)本發(fā)明的處理,將橢圓曲線加密術(shù)的二等分擴展到超橢圓曲線加密術(shù)從而實現(xiàn)快速計算。在使用在超橢圓曲線上對除數(shù)的計算的加密術(shù)計算的情況中,對處理施加較大負荷的算術(shù)計算是除數(shù)的標量乘法。從這方面來說,根據(jù)上述本發(fā)明的處理使得更快的標量乘法成為可能,從而在以超橢圓曲線加密術(shù)中進行處理時實現(xiàn)顯著的改進。如上所述,HECC(超橢圓曲線加密術(shù))是ECC(橢圓曲線加密術(shù))的概括概念。因此,可以將本發(fā)明應用于使用在各種應用程序中所使用的ECC(橢圓曲線加密術(shù))的加密處理,具體包括簽名處理、加密數(shù)據(jù)的產(chǎn)生、解密、密鑰預先分發(fā)系統(tǒng)和驗證處理??梢酝ㄟ^用上述標量乘法代替ECC(橢圓曲線加密術(shù))的計算處理中的標量乘法部分來實現(xiàn)更快的計算。圖7是示出根據(jù)本發(fā)明的加密系統(tǒng)的功能配置的框圖。加密系統(tǒng)100包括基點產(chǎn)生部分101,用于產(chǎn)生除數(shù)D作為基點;存儲部分102,用于存儲參照上述處理示例5所述的表,也就是,記錄關(guān)于對于事先固定的除數(shù)D基于計算值[1/2iD]在k1、k1′、(k0,k0′)中哪一個正確的信息的表;以及計算執(zhí)行部分103。計算執(zhí)行部分103執(zhí)行計算運算,包括關(guān)于超橢圓曲線上的除數(shù)計算標量乘法的計算處理。具體地說,計算執(zhí)行部分執(zhí)行計算運算,包括關(guān)于在帶有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)的標量乘法。例如,計算執(zhí)行部分103執(zhí)行計算運算,包括關(guān)于在帶有參數(shù)h(x)=x2+x+h0、f4=0的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法、或者在帶有參數(shù)h(x)=x的特征為2中在虧格為2的超橢圓曲線上的除數(shù)D的標量乘法。下面說明解釋將根據(jù)本發(fā)明的技術(shù)應用于ECDSA(EC數(shù)字簽名算法)的標量乘法中的情況,作為可以將本發(fā)明的處理應用到的具體加密算法的例子,其中ESDSA是用于數(shù)字簽名的產(chǎn)生和驗證的并且橢圓曲線加密術(shù)所應用到的算法。根據(jù)IEEE1363,通過執(zhí)行下面序列來產(chǎn)生和驗證數(shù)字簽名。(1)輸入(1-1)輸入橢圓曲線的域參數(shù)和基點G(階數(shù)r)(1-2)輸入簽名人的秘密密鑰。(1-3)輸入明文M。(2)密鑰的產(chǎn)生(2-1)使用W=sG作為用于秘密密鑰s的公共密鑰。(3)簽名的產(chǎn)生(3-1)產(chǎn)生隨機整數(shù)u,其中0<u<r。(3-2)計算V=uG=(xv,yv)。(3-3)將xv轉(zhuǎn)換為整數(shù)i。(3-4)計算c=imodr。如果c=0,則轉(zhuǎn)到步驟3-1。(3-5)f=h(M),其h是散列函數(shù)。(3-6)計算d=u-1(f+sc)modr。如果d=0,轉(zhuǎn)到3-1。(3-7)使用(c,d)作為用于明文M的簽名。(4)簽名的驗證(4-1)檢查關(guān)系0<c<r和0<d<r是否為真。如果它們不為真,輸出“無效”。(4-2)計算h=d-1modr,h1=fhmodr,和h2=chmodr。(4-3)計算P=(xp,yp)=h1G+h2W。如果P=0,則輸出“無效”。(4-4)將xp轉(zhuǎn)換為整數(shù)i。(4-5)計算c′=imodr。(4-6)如果c′=c,則輸出“有效”。否則,輸出“無效”??梢詫⑺岢龅氖褂贸瑱E圓曲線的技術(shù)應用于上面算法的下面步驟中(2-1)使用W=sG作為用于秘密密鑰s的公共密鑰;(3-2)計算V=uG=(xv,yv);和(4-3)計算P=(xp,yp)=h1G+h2W。如果P=0,則輸出“無效”。在各個步驟(2-1)、(3-2)和(4-3)的每一個中的計算處理W=sG、V=uG和P=(xp,yp)=h1G+h2W表示對除數(shù)的標量乘法處理,并且可以通過本發(fā)明的應用更加快速的執(zhí)行。進一步,技術(shù)處理sG、uG、和h1G表示對固定除數(shù)的標量乘法處理,并且可以通過根據(jù)本發(fā)明的表查詢方法的應用更快地執(zhí)行。最后,將參照圖8描述作為執(zhí)行上述加密處理的裝置進行工作的IC模塊200的示例配置??梢酝ㄟ^諸如PC、IC卡和讀/寫器之類的各種信息處理設備來執(zhí)行上述處理。可以將圖8中所示的IC模塊200合并在這些信息處理設備中。在圖8中所示的CPU(中央處理單元)201是用于執(zhí)行各種程序以開始和結(jié)束加密處理、擴展數(shù)據(jù)的傳送和接收、并且控制各個組成部件之間的數(shù)據(jù)傳輸?shù)奶幚砥鳌4鎯ζ?02包括ROM(只讀存儲器)和RAM(隨機存儲器)。ROM存儲用于由CPU201執(zhí)行的程序或者作為計算參數(shù)的固定數(shù)據(jù)。RAM用作存儲區(qū)域/工作區(qū)域以存儲由CPU201執(zhí)行以進行處理的程序、以及隨著程序處理進行而改變的計算參數(shù)。應該注意,將存儲器202中所存儲的計算執(zhí)行程序定義為包括加法和加倍的執(zhí)行序列的程序,作為上述基點設定處理和標量乘法處理對其進行執(zhí)行。此外,存儲器202還作為用于加密處理所需要的密鑰數(shù)據(jù)等的存儲區(qū)域工作。最好將用于數(shù)據(jù)等的存儲區(qū)域設計為具有防篡改(tamper-proof)結(jié)構(gòu)的存儲器區(qū)域。加密部分203執(zhí)行諸如加密處理之類的處理,并且上述標量乘法和解密處理。應該注意,雖然將加密部分203作為獨立模塊示出,但是可以不提供這種獨立的加密處理模塊。也就是說,可以采用這樣的配置例如,將加密程序存儲在ROM中,而CPU201從ROM中讀出加密程序并且執(zhí)行該程序。隨機數(shù)產(chǎn)生器204執(zhí)行產(chǎn)生加密處理所必須的密鑰等的產(chǎn)生所需要的隨機數(shù)的處理。傳送/接收部分205是數(shù)據(jù)通信處理單元,用于執(zhí)行與外部設備的數(shù)據(jù)通信。傳送/接收部分205執(zhí)行與諸如讀/寫器之類的IC模塊的數(shù)據(jù)通信,并且執(zhí)行諸如輸出IC模塊中所產(chǎn)生的加密的文字或者從讀/寫器之類的外部設備輸入數(shù)據(jù)之類的處理。至此已經(jīng)參照其具體實施方式詳細描述了本發(fā)明。但是,對于本領域的普通技術(shù)人員非常明顯,在不偏離本發(fā)明的范圍的情況下可以對這些實施方式進行變型和替換。也就是說,僅僅是示例地進行了對本發(fā)明的上述公開,而不應該對其進行限制性的理解。應該參照所附權(quán)利要求來確定本發(fā)明的范圍??梢酝ㄟ^硬件、軟件或者兩者的組合結(jié)構(gòu)來執(zhí)行在本說明書中所描述的處理序列。如果通過軟件來執(zhí)行處理序列,則可以通過將記錄處理序列的程序安裝到在專用硬件中安置的計算機的存儲器中,或者通過將程序安裝到能夠執(zhí)行各種處理的通用計算機中,來執(zhí)行處理序列。例如,可以事先將程序存儲在作為記錄介質(zhì)的硬盤或者ROM(只讀存儲器)中。替代地,可以臨時或者永久地將程序存儲(記錄)在諸如軟盤、CD-ROM(致密盤只讀存儲器)、MO(磁光)盤、DVD(數(shù)字多功能盤)、磁盤和半導體存儲器之類的可拆卸記錄介質(zhì)中。可以用所謂打包軟件的形式提供這種可拆卸記錄介質(zhì)。除了從上述可拆卸記錄介質(zhì)中被安裝到計算機中之外,可以將程序從下載站點無線地、或者經(jīng)由諸如LAN(局域網(wǎng))或者因特網(wǎng)之類的網(wǎng)絡有線地傳輸?shù)接嬎銠C。計算機接收這樣傳輸?shù)某绦虿⑶覍⒃摮绦虬惭b到諸如硬盤之類的內(nèi)置記錄介質(zhì)中。在本說明書中所描述的各種處理不僅可以以它們在說明書出現(xiàn)的順序在時間上順序執(zhí)行,而且可以依賴于執(zhí)行處理的裝置的吞吐量并行或者獨立地進行執(zhí)行。進一步,在本說明書中所使用的術(shù)語系統(tǒng)指的是多個裝置的邏輯組合,并且不限于各個配置的裝置都位于相同的機箱內(nèi)的一種情況。產(chǎn)業(yè)的可利用性根據(jù)本發(fā)明的配置,將橢圓曲線加密術(shù)上的二等分擴展到超橢圓曲線加密術(shù)從而實現(xiàn)快速計算。在使用對超橢圓曲線上的分數(shù)的計算的加密計算的情況中,對處理產(chǎn)生較大負荷的計算運算是除數(shù)的標量乘法。因此,通過根據(jù)上述本發(fā)明的處理來實現(xiàn)較快的標量乘法,從超橢圓曲線加密術(shù)的處理角度來說可以實現(xiàn)顯著的改進。因此可以將本發(fā)明應用于諸如IC卡之類的、需要執(zhí)行快速和安全的加密計算的設備、裝置等。根據(jù)本發(fā)明的配置,在關(guān)于在超橢圓曲線加密術(shù)中的除數(shù)D的標量乘法中,可以通過執(zhí)行包括二等分作為計算處理的計算運算來實現(xiàn)較快的標量乘法。例如,通過執(zhí)行計算運算來實現(xiàn)快速計算,該計算運算包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上、在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上、或者在具有h(x)=x作為參數(shù)的特征為2中在虧格為2的超橢圓曲線上的除數(shù)在標量乘法中的二等分。因此可以將本發(fā)明應用于諸如IC卡之類的、需要執(zhí)行快速和安全的加密計算的設備、裝置等。根據(jù)本發(fā)明的配置,可以通過應用表來實現(xiàn)除數(shù)的標量乘法的復雜性的進一步降低以及因此帶來的更快的計算,所述表根據(jù)關(guān)于事先固定的除數(shù)D的[1/2iD]的所計算的值記錄k1、k1′、(k0,k0′)中的哪個是正確的。因此可以將本發(fā)明應用于諸如IC卡之類的、需要執(zhí)行快速和安全的加密計算的設備、裝置等。根據(jù)本發(fā)明的配置,在關(guān)于超橢圓曲線加密術(shù)中的除數(shù)D的標量乘法中,執(zhí)行包括二等分的計算運算作為計算處理,并且應用用于減少在二等分計算處理中所執(zhí)行的倒數(shù)運算的數(shù)量的算法,從而使得能夠進一步降低除數(shù)的標量乘法的復雜度因此產(chǎn)生更快的計算。權(quán)利要求1.一種用于基于超橢圓曲線加密術(shù)執(zhí)行加密計算的加密計算方法,該方法包括關(guān)于在超橢圓曲線上除數(shù)D的標量乘法的計算中,執(zhí)行包括二等分作為計算處理的計算運算的計算步驟。2.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述計算步驟是執(zhí)行這樣的計算運算的步驟,該計算運算包括關(guān)于在具有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法中的二等分。3.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述計算步驟是執(zhí)行這樣的計算運算的步驟,該計算運算包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。4.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述計算步驟是執(zhí)行這樣的計算運算的步驟,該計算運算包括關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。5.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述計算步驟是執(zhí)行這樣的計算運算的步驟,該計算運算包括關(guān)于在具有h(x)=x作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。6.根據(jù)權(quán)利要求1所述的加密計算方法,其中該加密計算方法還包括查詢表的表查詢步驟,該表根據(jù)關(guān)于事先固定的除數(shù)D所計算的[1/2iD]的值記錄k1、k1′、(k0,k0′)中的哪個是正確的;以及所述計算步驟通過基于表的查詢的確定處理,來執(zhí)行降低二等分的復雜度的計算處理。7.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述計算步驟包括通過應用下面關(guān)系表達式,通過乘法和加法處理而不執(zhí)行倒數(shù)運算來計算倒數(shù)1/k1的值的步驟1/k1=h2+k1u21,該公式從二等分計算算法中得出,在該二等分計算算法中,InputD2=(U2,V2),和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。8.根據(jù)權(quán)利要求1所述的加密計算方法,其中在二等分計算算法中,所述加密計算方法執(zhí)行根據(jù)具有不應用1/u21作為輸入值的設定的算法的計算,其中InputD2=(U2,V2);和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。9.根據(jù)權(quán)利要求1所述的加密計算方法,其中所述加密計算方法是用于執(zhí)行關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法的計算方法;以及所述計算步驟包括步驟將作為之前所計算的值的1/h12設定為輸入值;以及應用之前所計算的輸入值1/h12而不執(zhí)行計算倒數(shù)1/h12的處理。10.一種基于超橢圓曲線加密術(shù)執(zhí)行加密計算的加密系統(tǒng),包括在關(guān)于在超橢圓曲線上的除數(shù)D計算標量乘法中執(zhí)行包括二等分作為計算處理的計算運算的計算執(zhí)行部分。11.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為執(zhí)行這樣的計算運算,該計算運算包括關(guān)于在具有隨機參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。12.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為執(zhí)行這樣的計算運算,該計算運算包括關(guān)于在具有h(x)=x2+x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。13.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為執(zhí)行這樣的計算運算,該計算運算包括關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分。14.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為執(zhí)行這樣的計算運算,該計算運算包括關(guān)于在具有h(x)=x作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D在標量乘法中的二等分15.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中所述加密系統(tǒng)進一步包括存儲部分,其存儲根據(jù)關(guān)于事先固定的除數(shù)D所計算的[1/2iD]的值記錄k1、k1′、(k0,k0′)中的哪個是正確的表;以及所述計算執(zhí)行部分被配置為通過基于表的查詢的確定處理來執(zhí)行降低二等分的復雜度的計算處理。16.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為通過應用下面關(guān)系表達式,通過乘法和加法處理而不執(zhí)行倒數(shù)運算來計算倒數(shù)1/k1的值1/k1=h2+k1u21該表達式從二等分計算算法中得出,在該二等分計算算法中InputD2=(U2,V2),和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2。17.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中將所述計算執(zhí)行部分配置為執(zhí)行二等分計算算法,在該二等分計算算法中InputD2=(U2,V2);和OutputD1=(U1,V1)=[1/2]D2,其中Ui(x)=x2+ui1x+ui0,Vi(x)=vi1x+vi0,gcd(h,Ui)=1,i=1,2,并且執(zhí)行根據(jù)具有不應用1/u21作為輸入值的設定的算法的計算。18.根據(jù)權(quán)利要求10所述的加密系統(tǒng),其中,將所述計算執(zhí)行部分配置為執(zhí)行關(guān)于在具有h(x)=x2+h1x+h0、f4=0作為參數(shù)的特征為2下、虧格為2的超橢圓曲線上的除數(shù)D的標量乘法的計算方法;和執(zhí)行這樣的計算將作為之前所計算的值的1/h12設定為輸入值,應用之前所計算的輸入值1/h12而不執(zhí)行計算倒數(shù)1/h12的處理。19.一種用于使得根據(jù)超橢圓曲線加密術(shù)的加密計算在計算機上被執(zhí)行的計算機程序,包括在關(guān)于在超橢圓曲線上的除數(shù)D的標量乘法的計算中,執(zhí)行包括二等分作為計算處理的計算運算的計算步驟。全文摘要實現(xiàn)超橢圓加密的安全、高速計算的裝置和方法。通過執(zhí)行包括1/2乘法的計算來增加超橢圓曲線加密的因數(shù)D的標量乘法的速度。例如,執(zhí)行具有帶有虧格為2和特征為2的參數(shù)h(x)=x文檔編號G09C1/00GK101031944SQ20058003317公開日2007年9月5日申請日期2005年9月26日優(yōu)先權(quán)日2004年9月30日發(fā)明者北村出,堅木雅宣,高木剛申請人:索尼株式會社