專利名稱:標(biāo)量乘法的運算方法、冪運算的運算方法、記錄有標(biāo)量乘法的運算程序的記錄介質(zhì)及記錄 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種標(biāo)量乘法的運算方法和記錄有其運算程序的記錄介質(zhì),通過將有 理點Q的標(biāo)量η乘法的η基于t-Ι進制展開來提高標(biāo)量乘法的運算速度,并涉及一種冪運 算的運算方法和記錄有其運算程序的記錄介質(zhì),通過對A的η次冪的η基于q-r進制展開 來提高冪運算的運算速度。
背景技術(shù):
目前,利用因特網(wǎng)等電氣通信線路的信息網(wǎng)絡(luò)技術(shù)高度發(fā)展,不僅能利用網(wǎng)絡(luò)取 得各種各樣的信息,而且還能夠提供如網(wǎng)絡(luò)銀行或向行政機關(guān)提交電子申請等各種服務(wù)。在使用上述服務(wù)時,需要進行認證處理,以確認服務(wù)的用戶并不是冒充或虛構(gòu)的, 而是恰當(dāng)?shù)挠脩?,作為高可靠性的認證方法,多采用如下電子認證技術(shù),即基于使用公鑰和 私鑰的公鑰加密的電子認證技術(shù)。然而,在公鑰加密方式的電子認證中,當(dāng)公鑰或私鑰泄露時,需要立即變更公鑰和 私鑰,必須謹慎保管公鑰和私鑰,并且根據(jù)需要還需進行新公鑰和私鑰設(shè)定登記操作,使用 復(fù)雜,因此,如用戶的名字或郵件地址那樣,最近多使用以用戶特有ID進行電子認證的基 于ID加密。另外,利用進行電子認證的認證裝置對用戶進行個人認證時,在認證裝置中保存 了每個用戶的簡歷,該簡歷信息本身為用戶的個人信息,最近被指出存在會因該簡歷信息 泄露導(dǎo)致個人信息泄露的問題。因而,提出如下所述的群簽名技術(shù),S卩,在認證裝置中,不是使用用戶的個人信息 來進行認證,而是以多個用戶為整體的群,通過使用表示屬于該群的信息的群簽名,不特別 指定用戶而進行認證,由此,在認證裝置中不保存?zhèn)€人信息并能夠進行認證。在上述基于ID加密和群簽名中所使用的運算,采用被稱為配對的方法,其利用橢 圓曲線上的有理點的雙線性對映射。所謂配對,其運算為,例如以P為素域Fq上的有理點, WQSk擴域F^k上的有理點輸入P和Q,輸出擴域F+qk的元素z,此時,若輸入a倍的P和
b倍的Q,則輸出ζ的ab次冪。而且,在此“k”稱為嵌入次數(shù),對于"F*qk,’,其正確的表示方
式如下式,但因文本限制在行文中記為"FVc ’’。[式1]
ΦP k
Vl在基于ID加密時的加密或解碼處理,或群簽名時的認證處理中,需要在盡可能短 的時間執(zhí)行。尤其是在基于配對的加密方式等中,執(zhí)行很多標(biāo)量乘法和冪運算,因而期望能 夠高速執(zhí)行上述運算。
為此,以往使用二進制法或窗口法提高標(biāo)量乘法和冪運算的速度。另外,在運算擴域的元素AeFqk的冪An時,通過使用弗羅貝尼烏斯映射φ : A-Atl消減運算次數(shù)提高運算速度。另外,提出了在標(biāo)量乘法中也利用映射消減運算次數(shù)提高運算速度的方案(例如 參照專利文獻1、專利文獻2)。專利文獻1 日本專利公開2004-271792號公報專利文獻2 日本專利公開2007-41461號公報
發(fā)明內(nèi)容
但是,公知的通過映射提高運算速度的方法,在當(dāng)標(biāo)量乘法中的標(biāo)量η或冪運算 中的指數(shù)η遠大于階數(shù)q的情況下(n>>q)非常有效,然而,當(dāng)標(biāo)量η和指數(shù)η不是遠大 于有限域Fq的階數(shù)q時,與不使用提高運算速度的方法而直接執(zhí)行標(biāo)量乘法和冪運算的情 況相比,并沒有顯著的效果。尤其是在基于ID的加密中的加密或解碼處理,及群簽名中的認證處理中,當(dāng)必須 使用帶有標(biāo)量η的標(biāo)量乘法或帶有指數(shù)η冪運算時,多數(shù)情況下標(biāo)量η或指數(shù)η不是遠大 于有限域Fq的階數(shù)q,即使使用公知的提高運算速度的方法也不能得到很好的效果。本發(fā)明人有鑒于上述現(xiàn)狀,對即使當(dāng)標(biāo)量η或指數(shù)η不是遠大于有限域Fq階數(shù)q 時,也能夠高速地執(zhí)行標(biāo)量乘法或冪運算的運算方法展開研究,并得到本發(fā)明。本發(fā)明的標(biāo)量乘法的運算方法中,設(shè)橢圓曲線為E/F, = x3+ax+b-y2 = 0,其中 a e Fq,b e Fq令,E(Fq)為由有限域Fq定義的橢圓曲線的有理點構(gòu)成的加法群;E(F^k)為由有限域Fq的擴域F^k定義的橢圓曲線的有理點構(gòu)成的加法群;為關(guān)于有限域Fq的有理點的弗羅貝尼烏斯自同態(tài)映射;t為弗羅貝尼烏斯自同態(tài)映射的跡;r為整除E (Fq)的階數(shù)#E (Fq) = q+1-t的素數(shù)階數(shù);E[r]為階數(shù)為素數(shù)r的有理點集合;[j]為j倍的有理點的映射;G為包含于滿足G = E[r] Π Ker(Φq-[q])
的E (Fqk)中的有理點集合,利用具有CPU和存儲模塊的電子計算機來運算關(guān)于非負整數(shù)η的G的有理點Q的 標(biāo)量η乘法,本發(fā)明的標(biāo)量乘法的運算方法包括輸入步驟,CPU輸入所述非負整數(shù)η的值、所述跡t的值、和由QGGcE(Fqk)表示 的有理點Q的值,并存儲在所述存儲模塊中;初始化步驟,CPU將存儲運算結(jié)果Z的所述存儲模塊初始化;展開步驟,對于G的有理點Q,
Φ,(Q) = [q]Q = [t_l]Q 成立,由此 CPU設(shè)s = t-1,根據(jù)將所述η以s進制展開的下式,[式2]N = ^cMsi, 0 < c[i] < S從i = 0開始重復(fù)進行規(guī)定次數(shù)的由C[i] — s和η — (n-c[i])/s表示的代 入運算,將各系數(shù)c [i]和非負整數(shù)η的值存儲在所述存儲模塊中;運算步驟,CPU從所述存儲模塊讀出所述有理點Q和所述系數(shù)c [i],從i = 0開始 重復(fù)進行規(guī)定次數(shù)的由Q[i] =c[i]Q表示的運算,將各Q[i]的值存儲在所述存儲模塊中; 禾口合成步驟,CPU替代為t-Ι,根據(jù)由關(guān)于有理點的弗羅貝尼烏斯自同態(tài)映射表 示下式的標(biāo)量乘法nQ[式3]nQ =》 ·])
i從所述存儲模塊讀出Q[i]和運算結(jié)果Z,從i = 0開始重復(fù)規(guī)定次數(shù)的由 Ζ-Ζ+Φ; (Q[i])表示的代入運算,將標(biāo)量乘法的運算結(jié)果Z存儲在存儲模塊中。進而,在本發(fā)明的標(biāo)量乘法的運算方法中,在利用整數(shù)變量X分別由q(>c)、r(>c)、t(>c)給出所述橢圓曲線的有限域Fq的 階數(shù)q、整除#E(Fq)的素數(shù)階數(shù)r、弗羅貝尼烏斯自同態(tài)映射的跡t時,包括輔助輸入步驟,CPU輸入所述q(>c)、r(>c)、t(>c)各值,存儲在所述存儲模塊中;輔助展開步驟,CPU從所述存儲模塊讀出Hx)和t(x)的值,令所述s(x)= t(x)_l,根據(jù)將r(x)以S(X)進制展開的下式[式4]
fdeg r(%)/degs (%)]
r(x)= Yj DiOOsOOi, 0 < degCDiCx)) < deg(s(x))
i=0從i = o 到 i<[deg r(x)/deg s(x)]重復(fù)進行由 Di(X) - r(x) %s(x)和 r(x) — (r(x)-Di(x))/s(x)表示的代入運算,將各系數(shù)Di ( χ )和r ( χ )的值記錄在所 述存儲模塊中;輔助抽出步驟,CPU抽出所述被存儲的系數(shù)03>0中,deg(Di(x))為最大的 Ddfflax(x),存儲在所述存儲模塊中;輔助確定步驟,CPU從所述存儲模塊讀出Ddmax ( χ )、Di ( χ )、Q的值,使用滿足Φ/max ([Ddfflax ( χ )]Q) =Σ Φ ([ (χ)]0)-Φ(1<1ω3χ(
0) = ^(Φ,, x)]Q的多項式f ( Φ q,x ),根據(jù)Φ qkQ = Q,確定滿足[Ddmax(X)JQ = ^(Φ,, x)=x)]Q的多項式h ( Φ ,,χ ),將所述多項式h ( Φ q,X )的值存儲在所述存儲模塊中;和
CPU令χ = a將所述s進制展開替換為由s = Ddfflax (a)構(gòu)成的Ddfflax (a)進制展開, 替換為Ddmax(a)并使用所述多項式h(c^,a)的步驟。而且,在本發(fā)明的標(biāo)量乘法的運算方法中,
當(dāng)所述系數(shù)Di ( χ )中存在多個為最高次數(shù)dmax的系數(shù)Di ( χ )時,所述輔助輸入步驟還包括,CPU輸入滿足r(X) Im(X)的m(X)的值,并存儲在所 述存儲模塊中的步驟,并具有第二輔助確定步驟,CPU令deg^J χ ))的最高次數(shù)dmax項,即,χ “的系數(shù)為 ^ ($(1),從所述存儲模塊讀出系數(shù)01(>0,在所述存儲模塊中對11((^,χ)和υ(Φ,,χ) 分配初始值“0”,從i = 0到i <「degr(>c)/degS(>c)」為止重復(fù)進行代入運算,該代入運 算中,當(dāng) deg^Jx)) = dmax 時,表示為 Τ(Φ,,χ) — Τ(Φ,,x )+Di ( χ ) Φ J,其他情況下, 表示為υ(Φ,,χ)χ HDi(X) Φ ,將Τ(Φ,,χ)和υ(Φ,,χ)的值存儲在存儲模 塊中,確定最高次數(shù)系數(shù)Tdmax(CK);第三輔助確定步驟,CPU從存儲模塊讀出m(X)和R(X)的值,使用滿足 H χ ) Im(X)的最小次數(shù)的多項式m(X),進行由W(Cj5q) 一 gccKTjc^),m(c^))和 ν(Φ,) -ΚΦ,)表示的代入運算,確定滿足ν(Φ,) |πι(Φ(1),δο(1(Τ(1ω3Χ(Φ(1),ν(Φ(1)) =1的V ( Φ ,將所述V ( Φ 的值存儲在存儲模塊中;第四輔助確定步驟,CPU從所述存儲模塊讀出V(Cj5q)和m(c^)的值,利用擴展歐 幾里得互除法確定滿足δ(φ )ν(φ ) = v(mod !!!(Φ,))的整數(shù)標(biāo)量ν和g( Φ)的值,將所述標(biāo)量ν和g( Φ)存儲在所述存儲模塊中;第五輔助確定步驟,替代所述輔助確定步驟,CPU從所述存儲模塊讀出Tdmax ( Φ 、 x dmaxJi(X)、Q各值,使用滿足[Tdfflax ( Φ q) XdmaxJQ=E Φ ([Ο (χ)]0)-[Τ,ω3Χ(Φ ) XdmaxJQ= [ ΧΦ,,x)]Q的多項式f (Φ q,χ )和所述g (Φ ,根據(jù)Φ qkQ = Q確定滿足[VXdmaxJQ = [g(c^)f(cK,x)]Q = ^(Φ,, x)]Q的多項式h ( Φ ,,χ ),將所述多項式h ( Φ q,X )的值存儲在所述存儲模塊中;和CPU從所述存儲模塊讀出所述h ( Φ q,X )的值,使該h ( Φ q,X )的關(guān)于Φ q的常數(shù)項h (0,X )滿足[vx^-h (0, x)]Q = [h((^,x)-h (0, x)]Q,由此令χ = a,進行由 s,= vadmax-h (0,a)和 h,( Φ = h ( Φ q,a) _h (0,a)表示的運 算,將s’和h’ (Φ,)的值存儲在所述存儲模塊中,代替以D-Ja)進制展開,對t-1進制展開后的所述n,以VadmaM1(OA)進制展開, 并用 h ( Φ q,a) -h (0,a)代替 vadmax-h (0,a)的步驟。另外,在本發(fā)明的冪運算的運算方法中,令Fqk為階數(shù)q的有限域Fq的k次擴域,H為F^k的素數(shù)階數(shù)r的乘法子群,Φ q為關(guān)于有限域Fq的元素的弗羅貝尼烏斯自同態(tài)映射,
利用具有CPU和存儲模塊的電子計算機運算關(guān)于非負整數(shù)η的H的元素A的η次 冪的冪運算,本發(fā)明的冪運算的運算方法包括 輸入步驟,CPU輸入所述非負整數(shù)η的值、所述階數(shù)q的值、所述F^k的素數(shù)階數(shù)r 的值、由AeHcFqk表示的元素A的值,并存儲在所述存儲模塊中;初始化步驟,CPU對存儲運算結(jié)果Z的所述存儲模塊進行初始化;第一運算步驟,CPU從所述存儲模塊讀出所述階數(shù)q、所述元素A的值,令所述q與 r的差為s = q-r,從j = 0到j(luò) <「lo&s」重復(fù)由T[j] 一 A和A — A*A表示的代入運算, 將所述T[j]和所述A的值存儲在所述存儲模塊中;展開步驟,CPU從所述存儲模塊讀出所述η和差s的值,根據(jù)由差s展開的下式[式5]n = ^c[i]si, ο < c[i] < s
i從i = 0開始重復(fù)規(guī)定次數(shù)的由c[i] — s和η — (n-c[i])/s表示的代入運 算,將各系數(shù)c [i]和非負整數(shù)η的值存儲在存儲模塊中;第二運算步驟,CPU從存儲模塊讀出c[i]和所述η的值,根據(jù)A[i] = Ac[i], 初始化A[i] = 1,在c[i]&l時,從i = 0開始重復(fù)規(guī)定次數(shù)的由A[i] — A[i]*T[j]和 c[i] — c[iV2表示的代入運算,將A[i]和c[i]的值存儲在存儲模塊中;和合成步驟,CPU從存儲模塊讀出各A[i],根據(jù)下式[式6]An=P] φ (A[i])從i = 0開始重復(fù)規(guī)定次數(shù)的由Ζ —Ζ* Φ ^(Ati])表示的冪運算,將計算的結(jié)果 Z存儲在存儲模塊中。進而,本發(fā)明的冪運算的運算方法中,設(shè)Χ~{Υ}表示 χγ,在用整數(shù)變量X分別由q(X)、r(>c)、S(>c)給出所述階數(shù)q、所述素數(shù)階數(shù)r、所 述s時,包括輔助輸入步驟,CPU輸入所述q(>c)、r(>c)、S(>c)各值,存儲在所述存儲模塊中;輔助展開步驟,CPU從所述存儲模塊讀出r(X)和s(x),用所述S(X)根據(jù)將 r(x)以s(x)進制展開的下式[式7]
r(x)= Yi DiOOsOrf, 0<deg(Di(x))<deg(s(x))
i=0從 i = 0 至Ij i <「degr(x)/degs(x)」重復(fù)由 Di(X) —r(x) %s(x)禾口 r(x) — (r(x)-Di(x))/s(x)表示的代入運算,將所述系數(shù)Di ( χ )和r ( χ )存儲在所述存儲模塊中; 輔助抽出步驟,CPU抽出被存儲的系數(shù)Di (X) ^,deg(Di(x))為最大的Ddfflax ( χ ), 存儲在所述存儲模塊中;輔助確定步驟,CPU從所述存儲模塊讀出所述Ddmax ( X )、Di ( X )、q的值,使用滿足(A"{Ddfflax(x)})"{qdfflax} =Α"{ Σ ^dmax-Di(X)qiI =A"{f(q, x)}的多項式f(q,X),根據(jù)C^k(A) =A,確定滿足A" (Ddfflax (x)} =Α"{ Σ ^ ^ax-Di ( χ ) Qi-QdmaxI =A"{h(q, χ)}的多項式h(q,X),將所述多項式h(q,x)的值存儲在所述存儲模塊中;和CPU令χ = a將所述s進制展開的所述η替換為由s = Ddmax(a)構(gòu)成的Ddmax(a) 進制展開,用所述多項式h(q,a)替換D-Ja)的步驟。而且,在本發(fā)明的冪運算的運算方法中,當(dāng)所述系數(shù)Di(X)中存在多個為最高次數(shù)dmax的系數(shù)Di (X)時,所述輔助存儲步驟還包括,CPU輸入滿足r(x) Im(X)的m(x)的值,存儲在所述 存儲模塊中的步驟,并具有第二輔助確定步驟,CPU令deg (Di (X))的最高次數(shù)dmax的項,即x dmax的系數(shù)為 Tdfflax (q),從所述存儲模塊讀出系數(shù)Di (X),在所述存儲模塊中對T (q,x)和U(q,x )的分 配初始值“0”,從i = 0到i <「degr(>c)/degS(>c)」重復(fù)進行代入運算,該代入運算中, 當(dāng) deg^Jx)) = dmax 時,表示為 T (q,x) — T(q,x )+Di ( x ) q、其他情況下,表示為 U (q, x) —U(q,XHDi(X)qS將T(q,x)和U(q,x)的值存儲在所述存儲模塊中,確定最高次 數(shù)系數(shù)Tdmax (q);第三輔助確定步驟,CPU從所述存儲模塊讀出m(X)和R(X)的值,使用滿 足r(X)lm(X)的最小次數(shù)的多項式m(X),進行由W(q) - gcd (Tdfflax (q), m(q))和 V(q) — W(q)表示的運算,確定滿足 V (q) I m (q),gcd (Tdmax (q),V (q)) =1的V(q),將所述V(q)的值存儲在所述存儲模塊中;第四輔助確定步驟,CPU從所述存儲模塊讀出V(q)和m(q)的值,利用擴展歐幾里 得互除法確定滿足g(q)V(q) = ν (mod m(q))的整數(shù)標(biāo)量ν和g(q),將所述標(biāo)量ν和g(q)的值存儲在所述存儲模塊中;第五輔助確定步驟,替代所述輔助確定步驟,CPU從所述存儲模塊讀出Tdmax(q)、 X dmax^ Di ( χ )、Q 各值,利用滿足 A" ITdmax (q) χ dmaxI = Α"{ Σ Di(X) Qi-Tdmax (q) χ “)= A"{f(q, x)}的多項式f(q,x)和所述g(q),根據(jù)(^k(A) =A,確定滿足Α" {ν χ dmaxI = A"{g(q)f(q, x)} = A"{h(q, x)}的多項式h(q,X ),將所述多項式h(q,X )的值存儲在所述存儲模塊中;和CPU從所述存儲模塊讀出所述h(q,X)的值,使該h(q,X)的關(guān)于q的常數(shù)項h(0,x)滿足A'lvx^-h (0, x)} = A"{h(q, x)_h(0,x)},
令χ = a,進行由 s’ = vadmax-h(0, a)和 h,(q) = h(q,a)_h(0,a)表示的運算, 將S’和h’ (q)的值存儲在所述存儲模塊中,代替以Ddmax(a)進制展開,對以s進行展開后 的所述η以vadmax_h (0,a)進制展開,并用h (q, a) _h (0,a)代替VadmaM1 (0,a)的步驟。另外,本發(fā)明的記錄有標(biāo)量乘法的運算程序且能夠被電子計算機讀取的記錄介質(zhì) 中,記錄有如下所述標(biāo)量乘法的運算程序,設(shè)橢圓曲線為E/F, = x3+ax+b-y2 = 0,其中 a G Fq,b e Fq
令,E(Fq)為由有限域Fq定義的橢圓曲線的有理點構(gòu)成的加法群;E(F^k)為由有限域Fq的擴域F^k定義的橢圓曲線的有理點構(gòu)成的加法群;為關(guān)于有限域Fq的有理點的弗羅貝尼烏斯自同態(tài)映射;t為弗羅貝尼烏斯自同態(tài)映射的跡;r為整除E (Fq)的階數(shù)#E (Fq) = q+1-t的素數(shù)階數(shù);EM為階數(shù)為素數(shù)r的有理點集合;[j]為j倍的有理點的映射;G為包含于滿足G = E[r] Π Ker(<j5r[q])的E(F^k)中的有理點集合,利用具有CPU和存儲模塊的電子計算機執(zhí)行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo) 量η乘法,該運算程序在電子計算機中執(zhí)行輸入步驟,輸入所述非負整數(shù)η的值、所述跡t的值、和由Q EGc=E(Fqk)表示的有 理點Q的值,并存儲在所述存儲模塊中;初始化步驟,將存儲運算結(jié)果Z的所述存儲模塊初始化;展開步驟,令對于G的有理點Q,(^(Q) = [q]Q = [t_l]Q 成立,由此設(shè)s = t-Ι,根據(jù)將所述η以s進制展開的下式,[式8]N = ^ Cplsi, 0 < C[l] < S從i =0開始重復(fù)進行規(guī)定次數(shù)的由C[i] — 和η — (n_C[i])/s表示的代 入運算,將各系數(shù)c [i]和非負整數(shù)η的值存儲在所述存儲模塊中;運算步驟,從所述存儲模塊讀出所述有理點Q,非負整數(shù)η和所述系數(shù)c[i],從i =0開始重復(fù)規(guī)定次數(shù)的由Q[i] = c[i]Q表示的運算,將各Q[i]的值存儲在所述存儲模 塊中;和合成步驟,替代為t-Ι,根據(jù)由關(guān)于有理點的弗羅貝尼烏斯自同態(tài)映射表示下 式的標(biāo)量乘法nQ[式9]
從所述存儲模塊讀出Q[i]和運算結(jié)果Z,從i = 0開始重復(fù)規(guī)定次數(shù)的由 Ζ-Ζ+Φ; (Q[i])表示的代入運算,將標(biāo)量乘法的運算結(jié)果Z存儲在存儲模塊中。進而,在本發(fā)明的記錄有標(biāo)量乘法的運算程序且能夠被電子計算機讀取的記錄介 質(zhì)中,在分別由整數(shù)變量X由q(>c)、r(>c)、t(>c)給出所述橢圓曲線的有限域Fq的階 數(shù)q、整除#E(Fq)的素數(shù)階數(shù)r、弗羅貝尼烏斯自同態(tài)映射Φ q的跡t時,由電子計算機執(zhí)行 如下步驟輔助輸入步驟,輸入所述9(乂)、1~(>0 3(>0各值,存儲在所述存儲模塊中;輔助展開步驟,從所述存儲模塊讀出r(x )和t(x)的值,令所述S(X)= t(x)_l,根據(jù)將r(x)以S(X)進制展開的下式[式10]
τω= Yj Di(X)SOOi, 0 < deg(Di(x)) < deg(s(x)) i=0從i = 0 到 i<[deg r(%)/deg重復(fù)進行由 Di(X) - r(x) % s(x)和 r(x) — (r(x)-Di(x))/s(x)表示的代入運算,將各系數(shù)Di ( χ )和r ( χ )的值記錄在所 述存儲模塊中;輔助抽出步驟,抽出所述被存儲的系數(shù)Di(X)中,degQJx))為最大的 Ddfflax(x),存儲在所述存儲模塊中; 輔助確定步驟,從所述存儲模塊讀出Ddfflax ( χ )、Di ( χ )、Q的值,使用滿足Φ/"χ(
0) =Σ Φ ([ (χ)]0)-Φ(1<1ω3χ(
0) = ^(Φ,, x)]Q的多項式f ( Φ q,X ),根據(jù)Φ qkQ = Q,確定滿足[Ddmax(X)JQ = ^(Φ,, χ)=X)]Q的多項式!!(Φ,,乂),將所述多項式11((^,x)的值存儲在所述存儲模塊中;和令χ = a將所述s進制展開替換為由s = Ddmax(a)構(gòu)成的D-Ja)進制展開,替 換為Ddmax(a)并使用所述多項式h(c^,a)的步驟。而且,本發(fā)明的記錄有標(biāo)量乘法的運算程序且能夠被電子計算機讀取的記錄介質(zhì) 中,當(dāng)所述系數(shù)Di (X)中存在多個為最高次數(shù)dmax的系數(shù)Di (X)時,所述輔助輸入步驟還包括,輸入滿足r(X) Im(X)的m(X)的值,存儲在所述存儲 模塊中的步驟,并由所述電子計算機執(zhí)行如下步驟第二輔助確定步驟,令degQJx))的最高次數(shù)dmax項,即x “的系數(shù)為 ^ ($(1),從所述存儲模塊讀出系數(shù)01(>0,在所述存儲模塊中對11((^,χ)和υ(Φ,,χ) 分配初始值“0”,從i = 0到i <「degr ( χ ) /degs ( χ )」重復(fù)進行代入運算,該代入運算中,當(dāng)deg^Jx)) =dmax時,表示為Τ(Φ,,χ)x )+Di ( χ ) Φ J,其他情況下,表示為
υ(Φ,,χ) — υ(Φ,,XHDi(X) Φ/,將Τ(Φ,,χ)禾口 υ(Φ,,χ)的值存儲在存儲模塊中,確 定最高次數(shù)系數(shù)Tdmax(Cttl);第三輔助確定步驟,從存儲模塊讀出m(X)和R(X)的值,使用滿足r(x) Im(X) 的最小次數(shù)的多項式m( χ ),進行由W(Cj5q) —gccKUc^),m(c^))和ν(Φ,) -ΚΦ,) 表示的代入運算,確定滿足ν(Φ5) |m(c^),gCd(Tdmax((^),V((^)) =1
的V ( Φ ,將所述V ( Φ 的值存儲在存儲模塊中;第四輔助確定步驟,從所述存儲模塊讀出ν(Φ,)和m(c^)的值,利用擴展歐幾里 得互除法確定滿足δ(φ )ν(φ ) = v(mod !!!(Φ,))的整數(shù)標(biāo)量ν和g( Φ)的值,將所述標(biāo)量ν和g( Φ)存儲在所述存儲模塊中;第五輔助確定步驟,替代所述輔助確定步驟,從所述存儲模塊讀出Tdmax(CK)、 X dmaxJi(X)、Q各值,使用滿足[Tdfflax ( Φ q) XdmaxJQ=E Φ ([Ο (χ)]0)-[Τ,ω3Χ(Φ ) XdmaxJQ= [ ΧΦ,,x)]Q的多項式 ΧΦ,,x)和所述g(c^),根據(jù)^KkQ = Q確定滿足[VXdmaxQ= [δ(Φ )Γ(Φ(1, x)]Q = ^(Φ,, x)]Q的多項式!!(Φ,,乂),將所述多項式11((^,x)的值存儲在所述存儲模塊中;和從所述存儲模塊讀出所述!!(Φ,,x)的值,使該!!(Φ,,x)的關(guān)于Φ,的常數(shù)項h(0,x)滿足[vx^-h (0, x)]Q = ^(Φ,, x)-h (0, x)]Q,令χ = a,進行由 s,= vadmax-h(0, a)和 h,( Φ = h ( Φ q,a)-h (0, a)表示的運 算,將s’和h’ (Φ,)的值存儲在所述存儲模塊中,代替以D-Ja)進制展開,對t-1進制展開的所述n,以VadmaM1(OA)進制展開,并 用 h ( Φ q,a) -h (0,a)代替 vadmax-h (0,a)的步驟。另外,本發(fā)明的記錄有冪運算的運算程序且能夠被電子計算機讀取的記錄介質(zhì) 中,如下所述冪乘法的運算程序,令,F(xiàn)qk為階數(shù)q的有限域Fq的k次擴域,H為F^k的素數(shù)階數(shù)r的乘法子群,φ q為關(guān)于有限域Fq的元素的弗羅貝尼烏斯自同態(tài)映射,利用具有CPU和存儲模塊的電子計算機運算對于非負整數(shù)η的H的元素A的η次 冪的冪運算,該運算程序在電子計算機中執(zhí)行輸入步驟,輸入所述非負整數(shù)η的值、所述階數(shù)q的值、所述F^k的素數(shù)階數(shù)r的 值、由AEHcFqk表示的元素A的值,并存儲在所述存儲模塊中;初始化步驟,對存儲運算結(jié)果Z的所述存儲模塊進行初始化;第一運算步驟,從所述存儲模塊讀出所述階數(shù)q、所述元素A的值,令所述q與r的 差為s = q_r,從j = 0到j(luò) <「lo&s」重復(fù)由T[j] 一 A和A — A*A表示的代入運算,將所述T[j]和所述A的值存儲在所述存儲模塊中;展開步驟,從所述存儲模塊讀出所述η和差s的值,根據(jù)由差s展開的下式[式11] i從i =0開始重復(fù)規(guī)定次數(shù)的由c[i] — 和η — (n_c[i])/s表示的代入運 算,將各系數(shù)c [i]和非負整數(shù)η的值存儲在存儲模塊中;第二運算步驟,從存儲模塊讀出c[i]和所述η的值,根據(jù)A[i] = f[i],初始化A[i] =1,在c[i]&l時,從i = 0開始重復(fù)規(guī)定次數(shù)的由A[i] —A[i]*T[j]和c[i] — c[i]/2 表示的代入運算,將A [i]和c[i]的值存儲在存儲模塊中;和合成步驟,CPU從存儲模塊讀出各A[i],根據(jù)下式[式12]Α^ΡΙΦ^ΑΜ)從i = 0開始重復(fù)規(guī)定次數(shù)的由Ζ —Ζ* Φ ^(Ati])表示的冪運算,將計算的結(jié)果 Z存儲在存儲模塊中。進而,本發(fā)明的記錄有冪運算的運算程序的記錄介質(zhì)中,設(shè)Χ~{Υ}表示 ΧΥ,在用整數(shù)變量X分別由q(>c)、r(>c)、S(>c)給出所述階數(shù)q、所述素數(shù)階數(shù)r、所 述s時,由電子計算機中執(zhí)行如下步驟輔助輸入步驟,輸入所述9(>0、1~(>0、8(>0各值,存儲在所述存儲模塊中;輔助展開步驟,從所述存儲模塊讀出r ( X )和s ( X ),用所述s ( X )根據(jù)將Hx) 以S(X)進制展開的下式[式13]
fdeg r(x)/deg s(%)l
r(x) = Yj DiOOsOOi, 0 < Cleg(DiOO) < deg (s(x)) i=0從i = 0 至Ij i <「degr ( χ ) /degs (x)」重復(fù)由 Di(X)^r(X) %s(x)禾口 r(x) — (r(x)-Di(x))/s(x)表示的代入運算,將所述系數(shù)Di ( χ )和r ( χ )存儲在所述 存儲模塊中;輔助抽出步驟,抽出被存儲的系數(shù)Di(X)中,deg(Di(x))為最大的Ddmax ( χ ),存 儲在所述存儲模塊中;輔助確定步驟,從所述存儲模塊讀出所述Ddfflax ( X )、Di ( X )、q的值,使用滿足(A" (Ddfflax (X)})" {qdmax} = Α" { Σ ^ ^ax-Di ( x ) q1} =A" {f (q, x)}的多項式f(q,X),根據(jù)C^k(A) =A,確定滿足A" (Ddfflax (x)} =A"{ Σ ^ ^ax-Di ( x ) Qi-QdmaxI = A" {h (q, x)}的多項式h (q,Χ ),將所述多項式h (q,X )的值存儲在所述存儲模塊中;和
令χ = a將所述s進制展開的所述η替換為由s = Ddmax(a)構(gòu)成的Ddfflax (a)進制 展開,替換為Ddmax (a)并使用所述多項式h(q,a)的步驟。而且,在本發(fā)明的記錄有冪運算的運算程序的記錄介質(zhì)中,當(dāng)所述系數(shù)Di ( χ )中存在多個為最高次數(shù)dmax的系數(shù)Di ( χ )時,所述輔助存儲步驟還包括,輸入滿足r(X) Im(X)的m(X)的值,存儲在所述存儲 模塊中的步驟,在電子計算機中執(zhí)行如下步驟 第二輔助確定步驟,令degQJx))的最高次數(shù)dmax的項,S卩Xdmax的系數(shù)為 Tdfflax (q),從所述存儲模塊讀出系數(shù)Di (X),在所述存儲模塊中對T (q,x)和U(q,x )的分 配初始值“0”,從i = 0到i <「degr(>c)/degS(>c)」重復(fù)進行代入運算,該代入運算中, ^deg(Di(x)) = dmax 時,表示為 T (q,x) — T(q,x )+Di ( x ) q、其他情況下,表示為 U (q, x) —U(q,XHDi(X)qS將T(q,x)和U(q,x)的值存儲在所述存儲模塊中,確定最高次 數(shù)系數(shù)Tdmax (q);第三輔助確定步驟,從所述存儲模塊讀出m(x)和R(x)的值,使用滿 Mr(X)Im(X)的最小次數(shù)的多項式m(X),進行由W(q) - gcd (Tdfflax (q), m(q))和 V(q) — W(q)表示的運算,確定滿足V (q) I m (q),gcd (Tdmax (q),V (q)) =1的V (q),將所述V (q)的值存儲在所述存儲模塊中;第四輔助確定步驟,從所述存儲模塊讀出V(q)和m(q)的值,利用擴展歐幾里得互 除法確定滿足g(q)V(q) = ν (mod m(q))的整數(shù)標(biāo)量ν和g (q),將所述標(biāo)量ν和g (q)的值存儲在所述存儲模塊中;第五輔助確定步驟,替代所述輔助確定步驟,從所述存儲模塊讀出Tdfflax (q)、X dma\ Di(X)、Q各值,利用滿足A" (Tdfflax (q) x dmax} = A" { Σ Di(X) Qi-Tdmax (q) x dmax) = A" {f (q, x)}的多項式f(q,x)和所述g(q),根據(jù)(^k(A) =A,確定滿足Α" {ν χ dmaxI = A" {g (q) f(q, x)} = A"{h(q, x)}的多項式h (q,Χ ),將所述多項式h (q,X )的值存儲在所述存儲模塊中;和CPU從所述存儲模塊讀出所述h (q,X )的值,使該h (q,X )的關(guān)于q的常數(shù)項h (0,X )滿足Α" {ν X —-h (0,x)} = A" {h (q,x ) _h (0,x )},令x = a,進行由 s’ = vadmax-h(0, a)和 h,(q) = h(q,a)_h(0,a)表示的運算, 將S’和h’ (q)的值存儲在所述存儲模塊中,代替以Ddmax(a)進制展開,對以s進行展開后 的所述η以vadmax_h (0,a)進制展開,并用h (q, a) _h (0,a)代替VadmaM1 (0,a)的步驟。發(fā)明效果本發(fā)明利用弗羅貝尼烏斯自同態(tài)映射Φ q消減運算次數(shù),尤其是在標(biāo)量乘法中,對 于G的有理點Q,使= [q]Q = [t-l]Q成立,或者是在冪運算時,令q與r的差為s = q-r,對于H的非零元素A,使
Φ^Α) = Aq = As成立,由此,對標(biāo)量η以t-1進制展開,或?qū)χ笖?shù)(Χ t數(shù))η以s進制展開,通過替 換為t-Ι并使用有理點的弗羅貝尼烏斯映射,或替換為s并使用元素的弗羅貝尼烏斯自 同態(tài)映射Φ q,使得即使在標(biāo)量乘法中的標(biāo)量n,或冪運算中的指數(shù)η不是遠大于階數(shù)q時, 也能夠減少運算次數(shù),提高運算速度。尤其是在以配對為基礎(chǔ)的基于ID加密或群簽名等中使用橢圓曲線作為雙線性對 曲線的配對,在使用該雙線性對曲線時,使用整數(shù)變量X預(yù)先給出階數(shù)q(x)、整除#E(Fq) 的素數(shù)階數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x),在標(biāo)量乘法中,將Hx)以 t ( X ) -1進制展開,并設(shè)在該Wt(X)-I進制展開時導(dǎo)入的系數(shù)Di ( χ )中最高次數(shù)的系數(shù) Di(X) SDdmax(X),將該Ddmax(X)置換為多項式h(c^,χ ),由此進一步消減運算次數(shù),另 夕卜,在冪運算中,將r(x)以S(X) = q(x)-r(x)進制展開,并設(shè)在該以s(x)進制展開 時導(dǎo)入的系數(shù)Di(X)中最高次數(shù)的系數(shù)Di(X)為Ddmax(X),將該Ddmax (χ)置換為多項式 h (Φ ,,χ ),由此能夠進一步消減運算次數(shù),提高運算速度。而且,當(dāng)存在多個為最高次數(shù)的dmax WDi (X)時,使用滿足r ( χ ) |m( χ )的最小 次數(shù)的多項式m (χ),確定滿足V (q) I m (q),gcd (Tdmax (q),V (q)) =1的V (q),并使用滿足g(q)V(q)三ν (mod m(q))的整數(shù)標(biāo)量V,在標(biāo)量乘法中,替代以Ddfflax ( x )進制展 開,對以t-Ι進制展開后的標(biāo)量η以VXdmaM1 (0,X)進制展開,通過用h(q,x)-h(0, χ) 代替vXd X_h(0,χ ),進一步消減運算次數(shù),另外,在冪運算中,代替Ddmax(X)進制展開, 對以s進制展開后的指數(shù)η以vxdmax-h(0,X)進制展開,通過用h(q,x)-h(0, x )代替 ν χ dmaMi(C), χ ),進一步消減運算次數(shù),提高運算速度。
圖1具有標(biāo)量乘法的運算程序和冪運算的運算程序的電子計算機。圖2是標(biāo)量乘法的運算程序的流程圖。圖3是標(biāo)量乘法的運算程序的流程圖。圖4是用于求取Ddmax (X)和多項式!!(Φ,,x)的輔助程序的流程圖。圖5是標(biāo)量乘法的運算程序的流程圖。圖6是用于求取!!(Φ,,X )禾Π ν X dmax-h(0, χ )的輔助程序的流程圖。圖7是冪運算的運算程序的流程圖。圖8是冪運算的運算程序的流程圖。圖9是用于求取Ddmax (X)和多項式h(q,x)的輔助程序的流程圖。圖10是冪運算的運算程序的流程圖。圖11是用于求取多項式h(q,X )禾Π ν X dmaM1 (0,x )的輔助程序的流程圖。符號說明10電子計算機
IlCPU12存儲裝置
13存儲器14 總線15輸入輸出控制部20電氣通信線路30客戶端
具體實施例方式本發(fā)明的目的是提高標(biāo)量乘法和冪運算的運算速度,雖然標(biāo)量乘法和冪運算的運 算本身不同,但使用相同方法提高運算速度,能夠消減他們的運算次數(shù),從而能夠提高運算 速度。首先對標(biāo)量乘法進行說明,然后再對冪運算進行說明。首先,設(shè)橢圓曲線為E/F, = x3+ax+b-y2 = 0,其中 a G Fq,b e Fq定義E(Fq)由有限域Fq定義的橢圓曲線的有理點構(gòu)成的加法群;E (Fqk)由有限域Fq的擴域E (Fqk)定義的橢圓曲線的有理點構(gòu)成的加法群;關(guān)于有限域Fq的有理點的弗羅貝尼烏斯自同態(tài)映射;t:弗羅貝尼烏斯自同態(tài)映射的跡;r 整除E (Fq)的階數(shù)#E (Fq) = q+1-t的素數(shù)階數(shù);EM 階數(shù)為素數(shù)r的有理點集合;[j] :j倍的有理點的映射;G 包含于滿足G = E[r] Π Ker ( Φ「[q])的E(F^k)中的有理點集合。然后,運算關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,即nQ。而且,在本實施 方式中,所設(shè)定的標(biāo)量乘法是在配對運算時進行的,一般標(biāo)量η不遠大于階數(shù)r。另夕卜,由于 r = q+1-t,因此 0 三 q+r-t (mod r)。再次,對標(biāo)量η以t-1進制展開,則標(biāo)量η不遠大于階數(shù)r,因此為η = Cjt-1)+C。,或η = (t-1)'+C1U-I)+C00由于(^(Q)= [q]Q = [t_l]Q,因此在 η = C1 (t_l)+C。,nQ 時,nQ 如下所示,nQ = [C1U-I)+C0] Q= [Ciq]Q+[C0]Q= cji(1([C1]Q) + [C(1]Q。另夕卜,當(dāng)n = (t-lV+Qa-D+Co時,nQ如下所示nQ = [ (t-1) '+C1 (t_l) +C0] Q= [q] [q]Q+[Ciq]Q+[C0]Q= (^((^(QD + c^aCjQHECjQ。在此,C1和Ctl與t-1同等或略小,而且能夠使用有理點的弗羅貝尼烏斯自同態(tài)映 射,由此能夠減少運算次數(shù)。因而,能夠提高標(biāo)量乘法的運算速度。另外,通常進行配對運算時,多是使用已知的雙線性對曲線,預(yù)先由整數(shù)變量X 給出階數(shù)q(x)、整除#E(Fq)的素數(shù)階數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)。在此,考慮[r]Q= [q+l-t]Q = 0,設(shè)用t(x)_l除r(x)而未除盡。即,r(x)表示為
[r ( χ ) Q = Σ [Di(X) U(X)-DiJQ =Σ Φ ; ([Di (( χ ) ]Q),以t(x)_l進制展開,令Di(X)中最高次數(shù)者為Ddmax(X)。然后,將定義為Φ/"χ(
0) =Σ Φ (
0)-Φ^χ(
0)= [f(Φ,, x)]Q的以Φ q和x為變量的二元多項式!!(Φ,,X)導(dǎo)入。進而,根據(jù)Φ qkQ = Q,將定義為[Ddmax(X)JQ = ^(Φ,, χ) Φ廣ax]Q= ^(Φ,, x)]Q的以Φ q和x為變量的二元多項式!!(Φ,,X)導(dǎo)入。即,該多項式!!(Φ,,X),能 夠?qū)i (χ)中最高次數(shù)的Ddmax(x),替換為以和χ為變量的多項式!!(Φ,,>0,能夠抑 制向次數(shù)小于最高次數(shù)的運算。特別是χ =a時,將以t-Ι進制展開后的標(biāo)量η進一步以 Ddfflax(a)進制展開,并用h(c^,χ)替換Ddfflax(a),由此,能夠大大減少運算次數(shù),提高標(biāo)量乘 法的運算速度。另外,當(dāng)在Di ( χ )中有多個最高次數(shù)者時,用dmax表示最高次數(shù),設(shè)作為最高次 數(shù)dmax項的Xdmax的系數(shù)為Tdmax(c^),使用滿足Hx) |m(X)的最小次數(shù)的多項式m( χ ) 確定滿足ν(Φ5) |m(c^),gCd(Tdmax((^),V((^)) =1的ν(Φ,)。在此,多項式m(X)可以使用割圓多項式等。然后,使用擴展歐幾里得互除法確定滿足δ(φ )ν(φ ) = v(mod !!!(Φ,))的整數(shù)標(biāo)量ν和g ( Φ ,作為[Tdfflax ( Φ q) XdmaxJQ=E Φ ([Ο (χ)]0)-[Τ,ω3Χ(Φ ) XdmaxJQ= [f(c^,x)]Q導(dǎo)入以Φ,和X為變量的二元多項式f( Φ ,,X)。進一步,使用g ( Φ ,并根據(jù)Φ qkQ = Q,令[VXdmaxJQ =x) (Γ(Φ,, x)]Q = ^(Φ,, x)]Q,導(dǎo)入以φ^和χ為變量的二元多項式!!(Φ,,X)。然后,使!!(Φ,,x)的關(guān)于Φ,的常數(shù)項h(0,x)滿足[vx^-h (0, x)]Q = ^(Φ,, x)-h (0, x)]Q令χ =a,s,= vadmax h(0,a),h,(Φ,) = h ( Φ q,a) _h (0,a),替換以 Ddmax (a)進制 展開,將以t-1進制展開后的標(biāo)量η以VadmaMi (0,a)進制展開,使用h ( Φ q,a) _h (0,a)替代 va^x-hO),a),由此能夠減少運算次數(shù),因而能夠提高標(biāo)量乘法的運算速度。在此,h’ (Φ,) 表示,在二元多項式!!(Φ,,χ)中,因令χ =a而成為Φ q這一個變量。以上對標(biāo)量乘法進行了說明,但在冪運算中,定義Fqk 階數(shù)q的有限域Fq的k次擴域;H :Fqk的素數(shù)階數(shù)r的乘法子群;Φ q 關(guān)于有限域Fq的元素的弗羅貝尼烏斯自同態(tài)映射,進行關(guān)于非負整數(shù)η的H的元素A的η次方。令q與r的差為s = q~r,該s置換 標(biāo)量乘法中的t-i,只需將上述說明改為冪運算,省略詳細說明。在冪運算中,最高次數(shù)部分的運算能夠置換為低次數(shù)的運算,從而能夠減少運算次數(shù),提高冪運算的運算速度。下面,使用已知的雙線性對曲線說明具體的例子。作為埋入次數(shù)8的雙線性對曲線,已知由r(x) = x4-8x2+25,t(x) = (2x3-ll x+15)/15 給出的整除#E(Fq)的素數(shù)階數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)。此時,對r (χ)以t( χ )_1進制展開,利用弗羅貝尼烏斯自同態(tài)映射,得到2r(x) = (15 χ ) Φ,+(-5 χ 2+50),0 = (15 χ) Φ,+ (-5 χ 2+50) (mod r ( χ ))因此,Di(X)成為D0(X) = -5 Χ2+50,D^ χ ) = 15 χ。其中,由于Dtl(X)為最高次數(shù),因此,除Dq (Χ)以外移動到右側(cè),而得到-5 χ2+50 = 15 Χ Φ,對該式整理得到X2-IO = 3 χ Φ,ο因此,在進行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,或關(guān)于非負整數(shù)η的 H的元素A的η次冪中,對于非負整數(shù)η,將η以t_l進制展開,進而以x 2_10進制展開,用 15 χ 代替x2-10,由此能夠利用弗羅貝尼烏斯自同態(tài)映射Φ q來運算G的有理點標(biāo)量η 乘法或H的元素A的η次冪,減少運算次數(shù),提高冪運算的運算速度。作為其他埋入次數(shù)8的雙線性對曲線,在由r ( χ ) = x8-x 4+1,t ( χ ) = χ 5- χ +1給出整除#E(F(1)的素數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)時,將 r(x)以t( χ )-1進制展開,使用弗羅貝尼烏斯自同態(tài)映射,得到r( χ ) = χ0 三 βφ^+ Οιιο Ι r(x))。因此,Di(X)成為D0(X) = -1,D1(X) = x3。其中,由于D1 ( χ )為最高次數(shù),因此,除D1 ( χ ) 以外移動到右側(cè),得到X3(J)q = -I兩邊同時乘以得到X3 = -(J)tJ115因此,在進行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,或關(guān)于非負整數(shù)η的H 的元素A的η次冪中,對于非負整數(shù)η,將η以t_l進制展開,進而以x 3進制展開,用_ Φ ;1 代替χ 3,從而能夠使用關(guān)于有理點的弗羅貝尼烏斯自同態(tài)映射來運算G的有理點的標(biāo) 量η乘法或H的元素A的η次冪,能夠減少運算次數(shù)提高冪運算的運算速度。另外,在埋入次數(shù)10的雙線性對曲線中,已知由
r ( χ ) = 25 χ 4+25 χ 3+15 χ 2+5 χ +1,t ( χ ) = 10 χ 2+5 χ +3 給出整除#E(F(1)的素數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)。此時,將r (X)以t( X )_1進制展開,通過使用弗羅貝尼烏斯自同態(tài)映射,得到8r(x) = 2 Φ q2- Φ q+ (5 χ +2),0 = 2 Φ q2- Φ q+ (5 χ +2) (mod r(x))因此,Di(X)成為D0( χ ) = 5 χ +2,D^ χ ) = -1,D2(χ) =2。其中Dtl(X)為最高次數(shù),因此,除Dq (Χ)以外移動到右側(cè),得到5χ+2 = ^Φ^+Φ,ο因此,在進行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,或關(guān)于非負整數(shù)η 的H的元素A的η次冪中,對于非負整數(shù)η,將η以t_l進制展開,進而以5 χ +2進制展開, 用-2 Φ q2+ Φ q代替5 χ +2,由此能夠利用弗羅貝尼烏斯自同態(tài)映射Φ q來運算G的有理點標(biāo) 量η乘法或H的元素A的η次冪,減少運算次數(shù),提高冪運算的運算速度。另外,在埋入次數(shù)12的雙線性對曲線中,已知由r( χ ) = 36 χ 4_36 χ 3+18 χ 2_6 χ +1,t ( χ ) = 6 χ 2+1給出整除#E(F(1)的素數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)。此時,將r(χ)以t( χ )_1進制展開,通過使用弗羅貝尼烏斯自同態(tài)映射,得到r(x) = Φq2+ (-6 χ +3) Φq+ (_6 χ +1),0 = Φ,2+ (-6 χ +3) Φq+ (-6 χ +1) (mod r ( χ ))。因此,Di(X)成為D0( χ ) = -6 χ +1,Di( χ ) = -6 χ +3,D2 ( χ ) = 1。其中D。(x)和01(>0為最高次數(shù),因此,除Dtl(X)和01(>0 (^得到最高次數(shù)的 X以外項移動到右側(cè),得到6 χ (Φ,+1) = φ^+βφ,+ ο在此,若設(shè)g(c^) = (^4-(^2+1,則滿足8(3(1((^+1,8((^)) = 1,利用擴展歐幾里 得互除法得到( φq+l)-1E φ,2 (1-φq) (mod g( Φ)。因此,兩邊同乘以\2(1-(^),得到6x = Φ^Ι-Φ^) ((^2+3(^+1)。因此,在進行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,或關(guān)于非負整數(shù)η 的H的元素A的η次冪中,對于非負整數(shù)η,將η以t_l進制展開,進而以6 χ進制展開,用 Φ,2(1-Φ(1)(Φ q2+3 Φ q+l)代替6 χ,由此能夠利用弗羅貝尼烏斯自同態(tài)映射Φ q來運算G的 有理點標(biāo)量η乘法或H的元素A的η次冪,減少運算次數(shù),提高冪運算的運算速度。
作為更具體的例子,設(shè)X = 825 (10位)。此時,r = 16656811746301 (44 位)t = 4083751(22 位)。此時,由于
6 χ = 4950(13bits) = Φ,2(I"Φ,) (φ,'+βφ,+ )因此,在進行G的有理點的標(biāo)量η乘法或H的元素A的η次冪時,使用有關(guān)有理點 的弗羅貝尼烏斯自同態(tài)映射變換為13位左右的標(biāo)量乘法或冪運算后,進行運算,能夠 大幅減少運算次數(shù)。另外,在埋入次數(shù)18的雙線性對曲線中,由r(x) = χ 6+37 χ 3+343,t(x) = (x 4+16 χ+7)/7給出整除#E(F(1)的素數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t(x)。此時,將r(χ)以t( χ )_1進制展開,通過使用弗羅貝尼烏斯自同態(tài)映射,得到r(x) = (7 χ2)) Φ,+ (21 x 3+343)0 = (7 χ2) Φ J (21 χ 3+343) (mod r(x))。因此,Di(X)成為D0(X) = 21 X3_343,D1(X) = 7 X20其中Dtl(X)為最高次數(shù),因此,除Dq(Χ)以外移動到右側(cè),得到21 χ 3-343 = 7 χ2Φ9,對該式整理,得到χ 3-49 = χ2Φ 0因此,在進行關(guān)于非負整數(shù)η的G的有理點Q的標(biāo)量η乘法,或關(guān)于非負整數(shù)η的 H的元素A的η次冪中,對于非負整數(shù)η,將η以t_l進制展開,進而以x 3_49進制展開,用 Χ2Φ,代替χ 3_49,由此能夠利用弗羅貝尼烏斯自同態(tài)映射Φ q來運算G的有理點標(biāo)量η乘 法或H的元素A的η次冪,減少運算次數(shù),提高冪運算的運算速度。最后,對標(biāo)量乘法的運算程序和冪運算的運算程序進行說明。而且,在本實施方式 中,標(biāo)量乘法的運算程序和冪運算的運算程序是在由電子計算機執(zhí)行基于ID加密或群簽 名等時,作為一個子程序來執(zhí)行的。如圖1所示,執(zhí)行標(biāo)量乘法的運算程序和冪運算的運算程序的電子計算機10具 有執(zhí)行運算處理的CPUll ;和由存儲所需程序或數(shù)據(jù)的硬盤等存儲裝置12、能夠展開執(zhí)行 所需程序并臨時存儲運算中生成的數(shù)據(jù)的RAM構(gòu)成的存儲器13。圖1中,14為總線。在本 實施方式中,在存儲裝置12中存儲有主程序、標(biāo)量乘法的運算程序/冪運算的運算程序等 各種程序、以及這些程序所要使用的數(shù)據(jù)。電子計算機10,在用作例如群簽名中的認證裝置時,與因特網(wǎng)等電氣通信線路20 連接,接收從連接在該電氣通信線路20上的客戶端裝置30發(fā)送來的群簽名的簽名數(shù)據(jù),臨 時存儲于存儲器13中,根據(jù)群簽名用的程序判斷簽名數(shù)據(jù)的合法性而進行認證處理。圖1 中,15為電子計算機10的輸入輸出控制部。在判斷簽名數(shù)據(jù)的合法性的處理中,多是執(zhí)行標(biāo)量乘法的運算程序和冪運算的運算程序,以下,對標(biāo)量乘法的運算程序和冪運算的運算程序進行說明。而且,本發(fā)明的標(biāo)量 乘法的運算程序和冪運算的運算程序并限于在群簽名處理中使用,其能夠用于多種用途。 并且,本發(fā)明的標(biāo)量乘法的運算程序和冪運算的運算程序,可以是記錄在存儲裝置12中或 能夠由電子計算機讀取的記錄介質(zhì)中,或者從服務(wù)器下載到記錄裝置中的,還可以是構(gòu)成 為半導(dǎo)體電路,即以硬件形式構(gòu)成的。首先,說明基于t-Ι進制展開的標(biāo)量乘法nQ。圖2為用于求取標(biāo)量乘法nQ( = Ζ)的流程圖。執(zhí)行標(biāo)量乘法的運算程序,電子 計算機發(fā)揮標(biāo)量乘法器的作用。如圖2所示,最初,CPUll通過電氣通信線路20、輸入輸出 控制部15從客戶端裝置30輸入標(biāo)量IuE(Fq)的弗羅貝尼烏斯自同態(tài)映射的跡t和有理點 QeGcE(Fqk)的值,存儲在存儲器13中(步驟S101)。此時,電子計算機用作輸入裝置。然后,CPUll在存儲器裝置13中設(shè)定要保持的運算結(jié)果Z,并對Z初始化(Z — 0) (步驟S102)。因此電子計算機用作輸入裝置。CPUll對輸入的Q執(zhí)行有2恂表示的運算 (步驟 S103)。 在步驟S103中,令T[j] = 2JQ,CPUll從存儲器13讀出Q、t的值,執(zhí)行如下動作(l)for(j = 0 ;j <「Iog2S」;j++)(2)T[j]—Q(3)Q —Q+Q(4)End for。在此,(1)中的「log2s」準確意義上應(yīng)為[式14]
卩Og2 Sl
9但因文本的原因,用「」來標(biāo)記。在此,CPUll令s = t-Ι,設(shè)j為自然數(shù),從j = 0 到j(luò) <「lo&s」反復(fù)執(zhí)行由T[j] — Q和Q — Q+Q表示的代入運算,將運算結(jié)果值存儲在存 儲器13中。而且,以下動作用使用的「」與上同。接著,令t-l = s,CPUll從存儲器11讀出c[i]、s、標(biāo)量η的值,用作轉(zhuǎn)換裝置,將 標(biāo)量η,根據(jù)[式15]
Hogs.nl
η = ^ C^si, 0 < c[i] < s i=0以s進制展開(步驟S104)。在此,i為自然數(shù),i的大小由η決定。在步驟S104中,進行s進制展開運算,CPUll執(zhí)行以下動作(l)for(i = O ;i <「logsn」;i++)(2)c[i] ^ n% s(3)n — (n_c[i])/s(4) End for
在此,“ %,,表示余數(shù)。即,CPUll從存儲器13讀出c [i]、s、η的值,從i = 0到i <「logsn」反復(fù)執(zhí)行由c [i] — s和η — (n-c [i]) /s表示的代入運算,將各系數(shù)c [i]、 和標(biāo)量η的值存儲在存儲器13中。
然后,在本實施方式中,電子計算機用作第二運算裝置進行Q[i] =c[i]Q運算 (步驟 S105)。在步驟S105中,用二進制法,CPUll執(zhí)行以下動作(l)for(i = 0 ;i <「logsn」;i++)(2)Q[i]—0(3)for(j = 0 ;c[i] ! = 0 ;i++)(4)if(c[i]&l)(5)Q[i] — Q[i]+T[j](6) End if(7)C[i] — c[i]/2(8) End for(9) End forBP, CPUll從i = 0到i <「logsn」利用Q[i] — 0的代入運算對存儲在存儲器13 中的Q[i]初始化,并重復(fù)執(zhí)行以下運算。CPUll從存儲器13讀出系數(shù)Q[i]、T[i],從j = 0到c[i] ! =0,重復(fù)執(zhí)行如下代入運算,即,在c[i]&l時執(zhí)行由Q[i] — Q[i]+T[j]表示 的代入運算,在其他情況下執(zhí)行由c[i] — c[i]/2表示的代入運算,將各Q[i]和系數(shù)c[i] 存儲在存儲器13中。接著,電子計算機作為合成裝置,使用在步驟S105中運算的Q[i],利用[式 16]
Hogs nl
IiQ=藝
i=0對標(biāo)量乘法nQ進行合成(步驟S106)。在步驟S106中,CPU執(zhí)行以下動作(l)for(i = 0 ;i <「logsn」;i++)(2)Z - Ζ+Φ; (Q[i])(3) End forBP, CPUll從存儲器13讀出Q[i]、的值,從i = 0到1 <「logsn」重復(fù)執(zhí)行由 Z — Ζ+Φ; (Q[i])表示的代入運算,將Z的值存儲在存儲器13中。然后,電子計算機作為輸出裝置,從輸入輸出控制部15輸出Z的值作為標(biāo)量乘法 的運算程序的執(zhí)行結(jié)果(步驟S107),結(jié)束標(biāo)量乘法的運算程序。由此,對標(biāo)量η進行IogsIi 分割,因而能夠通過使用Φ q將橢圓二倍計算的運算次數(shù)較少為大致l/logsn。另外,在用整數(shù)變量X分別以q(>c)、r(>c)、t(>c)來確定橢圓曲線的有限域Fq 的階數(shù)q、整除#E(Fq)的素數(shù)階數(shù)r、弗羅貝尼烏斯自同態(tài)映射Φq的跡t時,將r ( χ )以 t(x)_l展開,從而令由
[r(x)]Q =Σ [Di(X) (t(x)-l)i]Q =Σ Φ ; ([Di ( χ ) ]Q)表示的Di(X)中最高次數(shù)者為Ddmax(X),并使用由Φ/"χ(
9=Σ Φ (
0)-Φ^χ(
0)
= [f(Φ,, x)]Q表示的多項式 ΧΦ,,X),根據(jù)cj\kQ = Q,使用由[Ddmax(X)JQ = ^(Φ,, x) Φ廣ax]Q= ^(Φ,, x)]Q表示的多項式h ( Φ ,,χ )禾Π Ddmax (χ),來提高標(biāo)量乘法nQ的運算速度。即,在Ddmax ( χ )和多項式h ( Φ ,,χ)被確定時,設(shè)χ = a,對標(biāo)量η以Ddmax (a)進 制展開,并用ΜΦ,,χ)替換Ddmax (a),從而減少運算次數(shù)。當(dāng)Ddmax ( χ )和多項式h ( Φ ,,χ )被確定時,在標(biāo)量乘法nQ中執(zhí)行標(biāo)量乘法的運算 程序,電子計算機作為標(biāo)量乘法器使用。此時,如圖3所示,最初CPUll輸入標(biāo)量n,令χ = 8,8 = 0^(8)^' (Φ,) =h(c^,a),并輸入有理點Q EGcE(Fqk)各值,存儲在存儲器I3 中(步驟S201)。此時,電子計算機用作輸入裝置。接著,電子計算機作為初始化裝置。S卩,CPUll在存儲器13中設(shè)定保持運算結(jié)果 的Z,并對其初始化為Z —0 (步驟S202)。然后,電子計算機用作第一運算裝置。S卩,CPUll 對輸入的Q預(yù)先運算2力(步驟S203)。步驟S203的運算與步驟S103的動作相同,省卻其 說明。然后,電子計算機用作第一展開裝置,用[式17]
『logs nl
η = ^ c^s1, 0 < c[i] < s i=0對標(biāo)量η以s進制展開(步驟S204)。步驟S204中的s進制展開與步驟S104中 的展開動作相同,省略其說明。然后,電子計算機用作第二展開裝置,使用h’ (Φ,)和c [i],并利用[式18] k-1η = ^ Ηφη1, 0 < d[i] < S
i=0對標(biāo)量η以Φ q進制展開(步驟S205)。在步驟S205中,進行Φ q進制展開,CPUll執(zhí)行以下動作(1)Τ(Φ ) - 1(2)for(i = 0 ;i <「logsn」;i++)(3)d[i] - c[i](4)if(d[i]彡 s)(5)for(j = 0 ;j <「logsd[i]」;j++)(6)e[j] - d[i]% s(7)d[i] - (d[i]-e[j])% s
(8) End for(9)υ(Φ ) - 1(10) for (j = 0 ;j <「logsd[i]」;j++)(11)υ(Φ ) - {U(c^)*e[j]*h,(Φ ) '}% (Φ,'-Ι)(12) End for(13)Τ(Φ ) 一 {!"(Φ^+ΜΦ,)*!!,(Φ ) }% (Φ,'-Ι)(14) End if
(15)else(16)Τ(Φ ) 一 {T(c^)+d[i]*h,(Φ ) }% (Φ,'-Ι)(17)End else(18) End forBP, CPUll對存儲在存儲器13中的Τ(Φ,)初始1。CPUll從存儲器13讀出c[i] 的值,進行d[i] —c[i]的代入運算,并將d[i]的值存儲在存儲器13中。然后CPU從存 儲器13讀出d[i]、s的值,在滿足d[i]彡s時,從j = 0到j(luò) <「logs d[i]」反復(fù)執(zhí)行由 e[j] -d[i]%siPd[i] 一(d[i]-e[j])%s 表示的代入運算,在進行了 υ(Φ) —1 的 初始化后,從 j = 0 到 j < riogsd[i]J 反復(fù)執(zhí)行由 υ(Φ,) — {U(c^)*e[j]*h’ (Φ,)^ % (Φ,'-Ι)表示的代入運算,然后執(zhí)行由 Τ(Φ,) — {T(c^)+d[i]*h,(Φ,)1} % (Φ^-Ι)表 示的代入運算,將Τ(Φ,)的值存儲在存儲器13中。CPU11,在不滿足d[i] > s時,執(zhí)行由 Τ(Φ,) 一 {Τ(Φ,)+(1[ ]^'(Φ(1) }% (Φ^-1)表示的代入運算,將Τ(Φ,)的值存儲在存儲 器13中。CPUll從i = 0到i <「logsn」反復(fù)執(zhí)行以上運算,將各i的d[i]、Τ(Φ)的值 存儲在存儲器13中。而且,在將標(biāo)量η以Φ q進制展開時,以進制展開的系數(shù)d[i]比s大。CPUll 將進制展開的系數(shù)d[i]與s相比較,在判斷為進制展開的系數(shù)d[i]比s大時(步 驟S206 =NO),通過相對于以Φ q展開的系數(shù)d[i]取s的余數(shù)而進行調(diào)整,以使Φ q展開的系 數(shù)d[i]比s小(步驟S207)。此時,電子計算機在步驟S206中用作比較裝置,在步驟S207
中用作調(diào)整裝置。在步驟S207中,電子計算機執(zhí)行以下動作(1) until(Vd[i]<s)(2)for(i = 0 ;i < k-1 ;i++)(3)d[i] — the i_th coefficient of Τ(Φ)(4)if(d[i]彡 s)(5) the i_th coefficient of !"(Φ) 一 0(6)for(j = 0 ;j <「logsd[i]」;j++)(7)e[j] - d[i]% s(8)d[i] - (d[i]-e[j])% s(9) End for(10)υ(Φ ) - 1(ll)for(j = 0 ;j <「logsd[i]」;j++)(12)υ(Φ,) 一 {U(c^)*e[j]*h,(Φ,'-Ι)
(13) End for (H)T(Cj5q) — {Τ(Φ )+υ(Φ(1)*Φ(1 }% (Φ,'-Ι)(15) End if(16) End for(17)End untilS卩,CPUll從存儲器13讀出Τ(Φ,)的第i個系數(shù)的值,在d[i]中存儲其值,將d[i] 與s的值相比較。CPU11,在滿足d[i]彡s時,對Τ(Φ,)的第i個系數(shù)存儲0、從j = 0到 j <「logsd[i]」重復(fù)執(zhí)行由 e[j] —d[i]%s 禾口d[i] — (d[i]_e[j])% s表示的代入運算,然后,在進行了 υ(Φ,) — 1的初始化 后,從 j = o 到 j <「iogsd[i]」重復(fù)執(zhí)行由 υ(Φ,) — {u(c^)*e[j]*h,(Φ,'-ι) 表示的代入運算,接著,執(zhí)行由τ(φ,) — {Τ(Φ )+υ(Φ(1)*Φ(1 }% (Φ^-Ι)表示的代入運算, 將τ(φ,)的值存儲在存儲器13中。CPU11,在不滿足d[i] > S時,不進行上述一系列的運 算。CPUll從i = 0到i < k-ι重復(fù)執(zhí)行上述運算,直到滿足Vd[i]<s。接著,電子計算機作為第二運算裝置,進行Q[i] = d[i]Q的運算(步驟S208)。在步驟S208中,使用二進制法,CPUll執(zhí)行以下動作(l)for(i = 0 ;i < k ;i++)(2)Q[i]—0(3)for(j = 0 ;d[i] ! = 0 ;i++)(4)if(d[i]&l)(5)Q[i] — Q[i]+T[j](6) End if(7)d[i] — d[i]/2(8) End for(9) End for即,CPUll從存儲器13讀出d[i]和T[j]的值,令Q[i] — 0,對Q[i]初始化后, 在滿足d[i]&l時,執(zhí)行由Q[i] — Q[i]+T[j]表示的代入運算,在不滿足d[i]&l時,執(zhí)行由 d[i] — d[i]/2表示的代入運算,將Q[i]和d[i]的值存儲在存儲器13中。然后,電子計算機用作合成裝置,使用由步驟S208運算的Q[i],利用[式19]
k-1
i=0對標(biāo)量乘法nQ進行合成(步驟S209)。在步驟S209中,CPUl 1執(zhí)行以下動作(l)for(i = 0 ;i < k ;i++)(2)Z - Ζ+Φ; (Q[i])(3) End forBP, CPUll從存儲器13讀出Z和Q[i]的值,從i = 0到i < k重復(fù)執(zhí)行由 Ζ-Ζ+φ;(0[ ])表示的代入運算,將Z的值存儲在存儲器13中。CPUll從輸入輸出控制部15輸出Z的值。S卩,電子計算機用作輸入裝置,輸入Z作為標(biāo)量乘法的運算程序的執(zhí)行 結(jié)果(步驟S210),宛城標(biāo)量乘法的運算程序。由此,對標(biāo)量η進行IogsIi分割,因而能夠通 過使用Φ q將橢圓二倍計算的運算次數(shù)較少為大致ClegDdmax ( χ ) /degr ( χ )。由于預(yù)先給出橢圓曲線的有限域Fq的階數(shù)q ( χ ),整除#E (Fq)的素數(shù)階數(shù)r ( χ ), 弗羅貝尼烏斯自同態(tài)映射Φ q的跡t ( χ ),因而能夠預(yù)先確定Ddfflax ( χ )和多項式h (Φ ,,χ ), 所以也可以預(yù)先將Ddmax(X)和多項式!!(Φ,,χ)與q(x)、r(>c)和t(x) —同安裝到標(biāo) 量乘法的運算程序中,也可以用r(χ)和t( χ )根據(jù)以下輔助程序求出Ddmax(X)和多項式 h( Φ。χ )。在電子計算機啟動輔助程序時,如圖4所示,首先用作輸入裝置。S卩,CPUll輸入 r(x)和t(x)的值并存儲在存儲器13中(步驟S221)。然后,電子計算機用作展開裝置,使用輸入的t ( X ),令t ( X ) -1 = s ( X ),利用[式 20]
『deg r(x)/degs (χ)1
Γω = Z Di(X)S(X)S O^deg(DiOO)(5(χ))
i=0 將r(x)以s(x)進制展開(步驟S222)。在此,i的大小由r(x)和s(x)自動 決定。在步驟S222中,作為S(X)進制展開的運算,CPUll執(zhí)行以下動作(l)for(i = 0 ;i <「degr ( x )/degs ( x )」;i++)(2)Di(X) —r(x) % s(x)(3)r(x) — (r ( x ) -Di ( x )) /s ( x )(4) End forBP, CPUll 從存儲器 13 讀出 r(x)和 s(x)的值,從 i = 0 到 i < degr(x)/ degs(x)重復(fù)執(zhí)行由 Di(X) —r(x) % S(x)和 r(x) — (HX)-Di(X)Vs(X)表示的 代入運算,將Di(X)和r( χ的值存儲在存儲器13中。然后,電子計算機用作抽出裝置,抽出deg^Jx))為最大者,作SDdfflax (X)輸出 (步驟S223)。即,CPUll從存儲器13讀出Di(X)的值并進行比較,將最大的Di ( x )作為 Ddfflax ( Χ )并將其值存儲在存儲器13中。然后,電子計算機用作運算裝置。S卩,CPUll進行[式21]
fdeg r(x)/degs (χ)1
h(ctvx) =^DiOO&ifd腿)-Ddmax (χ)
i=0的運算,確定多項式!!(Φ,,x ),將其值存儲在存儲器13中,并輸出(步驟S224)。 如上所述,在電子計算機使用輔助程序,能夠求出Ddmax(X)和多項式ΜΦ,,x)。通過將 Ddfflax(X)和多項式ΜΦ,,Χ)用于圖3的步驟201,能夠使圖3所示標(biāo)量乘法中橢圓二倍計 算的運算次數(shù)較少為大致ClegDdmax ( χ ) /degr ( x )。另外,使用整數(shù)變量X并分別預(yù)先由q(>c)、r(>c)、t(>c)確定橢圓曲線的有限域Fq、整除#E (Ftl)的素數(shù)階數(shù)r(x)、弗羅貝尼烏斯自同態(tài)映射的跡t,并且將Hx)以 t(x)_l進制展開,從而由[r(x)]Q =Σ [Di ( χ ) (t ( χ )-1) iJ Q = Σ Φ ; ([Di ( χ ) ]Q) 表示Di ( χ ),當(dāng)Di ( χ )中最高次數(shù)dmax為多個時,設(shè)作為最高次數(shù)dmax的項的 Χ “的系數(shù)為Tdmax ( Φ ,使用滿足r ( χ ) I m ( χ )的最小次數(shù)的多項式m ( χ ),確定滿足ν(Φ5) |m(c^),gCd(Tdmax((^),V((^)) =1的V ( Φ ,并利用擴展歐幾里得互除法確定滿足Ε(Φ )ν(Φ ) = v(mod !!!(Φ,))的標(biāo)量ν和g ( Φ ,使用滿足[Tdfflax ( Φ q) XdmaxJQ=E Φ ([Ο (χ)]0)-[Τ,ω3Χ(Φ ) XdmaxJQ= [f(c^,x)]Q的多項式f ( Φ q,x )和g ( Φ ,根據(jù)Φ qkQ = Q,來確定滿足[VXdmaxJQ = [g(c^)f(cK,x)]Q = ^(Φ,, x)]Q的多項式!!(Φ,,乂),并使該11((^,x)的關(guān)于Φ,的常數(shù)項h(0,x)滿足[vx^-h(0, x)]Q = ^(Φ,, x)-h(0, x)]Q,從而提高標(biāo)量乘法nQ的運算速度。即,令χ =a,s,= vadmax-h (0,a),h,(Φ,) = h ( Φ q,a) _h (0,a),代替以 Ddmax (a) 進制展開,而將標(biāo)量η以vadmax-h (0,a)進制展開,用h ( Φ q,a) _h (0,a)代替vadmax-h (0,a), 由此消減運算次數(shù)。當(dāng)確定了s,= VadmaMi(Oia),h,(Φ,) = h ( Φ q, a)-h (0, a)時,在標(biāo)量乘法 nQ 中, 執(zhí)行標(biāo)量乘法的運算程序,電子計算機用作標(biāo)量乘法器。此時,如圖5所示,首先CPUll輸 入標(biāo)量 n,令 χ =a、標(biāo)量 s,= Vadmax-h(0,a)、h,(Φ,) = h ( Φ q,a) _h (0,a),并輸入有理點
QEGcE(Fqk)的值,存儲在存儲器13中(步驟S301)。此時,電子計算機用作輸入裝置。接著,電子計算機用作初始化裝置,CPUll在存儲器13中設(shè)定保持運算結(jié)果的Z, 并進行Z —0的初始化(步驟S302)。然后電子計算機用作第一運算裝置,CPUll讀出存 儲在存儲器13中的Q的值,預(yù)先進行2力的運算,存儲在存儲器13中(步驟S303)。步驟 S303的運算與步驟S103的運算動作相同,CPUll進行的處理也相同,省略其說明。然后,電子計算機用作第一展開裝置,利用[式 2幻
flog s η!
η= I OScDW
i=0將標(biāo)量η以s,進制展開(步驟S304)。步驟S304中的S,進制展開與步驟S204 中的s進制展開的動作相同,CPUll進行的處理也相同,省略其說明。接著,電子計算機用作第二展開裝置,使用h’ (Φ,)和c [i],并根據(jù)[式2幻 k-1η = ^ d[i]<^q[, 0 < d[i] < s'
i=0
將標(biāo)量η以Φ q進制展開(步驟S305)。步驟S305中的Φ q進制展開,除了標(biāo)量 s,( = vadmax-h(0, a))與步驟S205中的標(biāo)量M = Ddfflax(a))不同以外,與步驟205中以s 進制展開動作相同,CPUll進行的處理也相同,省略其說明。步驟S305中的進制展開中,進制展開的系數(shù)大于s,。如上所述,在進 制展開的系數(shù)比s’大時(步驟S306 :N0),相對Φ q進制展開的系數(shù)取S’的余數(shù)而進行調(diào) 整,以使進制展開的系數(shù)比s’小(步驟S307)。步驟S307中的運算,除標(biāo)量S’ (= VadmaM1 (0,a))與步驟S207中的標(biāo)量s ( = Ddmax(a))不同以外,與步驟S207的運算動作相 同,CPUll進行的處理也相同,因此省略其說明。此時,電子計算機在步驟S306中用作比較 裝置,在步驟S307中用作調(diào)整裝置。接著,電子計算機用作第二運算裝置,進行Q[i] =d[i]Q的運算(步驟S308)。在 步驟S308中,利用二進制法,步驟S308的運算與步驟S208的運算動作相同,CPUll進行的 處理也相同,省略其說明。接著,電子計算機用作合成裝置,使用在步驟S308中運算的Q[i],利用[式24]
權(quán)利要求
一種標(biāo)量乘法的運算方法,其特征在于設(shè)橢圓曲線為E/Fq=x3+ax+b y2=0,其中a∈Fq,b∈Fq令,E(Fq)為由有限域Fq定義的橢圓曲線的有理點構(gòu)成的加法群;E(Fqk)為由有限域Fq的擴域Fqk定義的橢圓曲線的有理點構(gòu)成的加法群;φq為關(guān)于有限域Fq的有理點的弗羅貝尼烏斯自同態(tài)映射;t為弗羅貝尼烏斯自同態(tài)映射φq的跡;r為整除E(Fq)的階數(shù)#E(Fq)=q+1 t的素數(shù)階數(shù);E[r]為階數(shù)為素數(shù)r的有理點集合;[j]為j倍的有理點的映射;G為包含于滿足G=E[r]∩Ker(φq [q])的E(Fqk)中的有理點集合,利用具有CPU和存儲模塊的電子計算機來運算關(guān)于非負整數(shù)n的G的有理點Q的標(biāo)量n乘法,所述運算方法包括輸入步驟,CPU輸入所述非負整數(shù)n的值、所述跡t的值、和由表示的有理點Q的值,并存儲在所述存儲模塊中;初始化步驟,CPU將存儲運算結(jié)果Z的所述存儲模塊初始化;展開步驟,對于G的有理點Q,φq(Q)=[q]Q=[t 1]Q成立,由此CPU令s=t 1,根據(jù)將所述n以s進制展開的下式,[式39] <mrow><mi>n</mi><mo>=</mo><munder> <mi>Σ</mi> <mi>i</mi></munder><mi>c</mi><mo>[</mo><mi>i</mi><mo>]</mo><msup> <mi>s</mi> <mi>i</mi></msup><mo>,</mo><mn>0</mn><mo>≤</mo><mi>c</mi><mo>[</mo><mi>i</mi><mo>]</mo><mo>≤</mo><mi>s</mi> </mrow>從i=0開始重復(fù)進行規(guī)定次數(shù)的由C[i]←n%s和n←(n c[i])/s表示的代入運算,將各系數(shù)c[i]和非負整數(shù)n的值存儲在所述存儲模塊中;運算步驟,CPU從所述存儲模塊讀出所述有理點Q和所述系數(shù)c[i],從i=0開始重復(fù)進行規(guī)定次數(shù)的由Q[i]=c[i]Q表示的運算,將各Q[i]的值存儲在所述存儲模塊中;和合成步驟,用弗羅貝尼烏斯自同態(tài)映射φq取代t 1,標(biāo)量乘法nQ表示為下式[式40] <mrow><mi>nQ</mi><mo>=</mo><munder> <mi>Σ</mi> <mi>i</mi></munder><msup> <msub><mi>φ</mi><mi>q</mi> </msub> <mi>i</mi></msup><mrow> <mo>(</mo> <mi>Q</mi> <mo>[</mo> <mi>i</mi> <mo>]</mo> <mo>)</mo></mrow><mo>,</mo> </mrow>CPU根據(jù)該式,從所述存儲模塊讀出Q[i]和運算結(jié)果Z,從i=0開始重復(fù)規(guī)定次數(shù)的由Z←Z+φqi(Q[i])表示的代入運算,將標(biāo)量乘法的運算結(jié)果Z存儲在存儲模塊中。FPA00001208044000011.tif
2.如權(quán)利要求1所述的標(biāo)量乘法的運算方法,其特征在于在利用整數(shù)變量χ分別由q(>c)、r(>c)、t(>c)給出所述橢圓曲線的有限域Fq的階數(shù)q、整除#E(Fq)的素數(shù)階數(shù)r、弗羅貝尼烏斯自同態(tài)映射的跡t時,包括輔助輸入步驟,CPU輸入所述q(>c)、r(>c)、t(>c)各值,存儲在所述存儲模塊中; 輔助展開步驟,CPU從所述存儲模塊讀出Hx)和t(x)的值,令所述s(x)= t(x)_l,根據(jù)將r(x)以s(x)進制展開的下式 [式 41]
3.如權(quán)利要求2所述的標(biāo)量乘法的運算方法,其特征在于 當(dāng)所述系數(shù)Di (χ)中存在多個為最高次數(shù)dmax的系數(shù)Di (χ)時, 所述輔助輸入步驟還包括,CPU輸入滿足r (χ) |m(X)的m(X)的值,并存儲在所述存 儲模塊中的步驟, 并具有第二輔助確定步驟,CPU令作為degQJx))的最高次數(shù)dmax項的Xdmax的系數(shù)為 U Φ),從所述存儲模塊讀出系數(shù)Di (χ),在所述存儲模塊中對Τ(Φ,,χ)和υ(Φ,,χ) 分配初始值“0”,從i = 0到i <「degr(>c)/degS(>c)」重復(fù)進行如下代入運算,該代入運 算中,當(dāng)deg^Jx)) = dmax時,進行由Τ(Φ,,χ)x )+Di ( χ ) Φ /表示的代入運算,其他情況下,進行由υ(Φ,,χ)XHDi(X) Φ^表示的代入運算,將Τ(Φ,,χ)和υ(Φ,,χ)的值存儲在存儲模塊中,確定最高次數(shù)系數(shù)Tdmax(CK);第三輔助確定步驟,CPU從所述存儲模塊讀出m(X)和R(X)的值,用滿足 H χ ) Im(X)的最小次數(shù)的多項式m(X),進行由W(Cj5q) 一 gccKTjc^),m(c^))和 ν(Φ,) -ΚΦ,)表示的代入運算,確定滿足 ν(Φ,) ImQ^gccKUc^),V(Cj5q)) = 1 的V ( Φ ,將所述V ( Φ 的值存儲在存儲模塊中;第四輔助確定步驟,CPU從所述存儲模塊讀出V( Φ 和m(c^)的值,利用擴展歐幾里 得互除法確定滿足三 ν (mod m((j5q))的整數(shù)標(biāo)量ν和g ( Φ 的值,將所述標(biāo)量ν和g ( Φ 存儲在所述存儲模塊中; 第五輔助確定步驟,替代所述輔助確定步驟,CPU從所述存儲模塊讀出Tdmax(CK)、 χ “、Di ( χ )、Q 各值,使用滿足[Tdmax (Φ,) χ dmax] Q=E Φ / ([Di ( χ ) ] Q) - [Tdfflax (Φ q)dmax] Q = [ΜΦ,,x)]Q的多項式ΜΦ,,x)和所述β(Φ ),根據(jù)= 9確定滿足 [ν X dmaxJQ= [g(c^)f(cK,x)]Q= ^(Φ,, x)]Q的多項式h(c^,\),將所述多項式11((^,χ)的值存儲在所述存儲模塊中;和 CPU從所述存儲模塊讀出所述h(c^,χ)的值, 使該ΜΦ,,χ)的關(guān)于Φ,的常數(shù)項h(0,χ)滿足 [vxdmax-h(0, x)]Q = ^(Φ,, x)-h(0,x)]Q,由此令 χ = a,進行由 s,= VadmaMi(Oia)和 h,(φ,) = h ( Φ q, a)-h (0, a)表示的運算,將 s’和h’ (Φ,)的值存儲在所述存儲模塊中,代替以Ddmax(a)進制展開,對以t-1進制展開后 的所述n,以VadmaM1 (0,a)進制展開,并用h ( Φ q,a) _h (0,a)代替VadmaM1 (0,a)的步驟。
4. 一種冪運算的運算方法,其特征在于 令Fqk為階數(shù)q的有限域Fq的k次擴域,H為Fqk的素數(shù)階數(shù)r的乘法子群,Φ q為關(guān)于有限域Fq的元素的弗羅貝尼烏斯自同態(tài)映射,利用具有CPU和存儲模塊的電子計算機來運算關(guān)于非負整數(shù)η的H的元素A的η次冪 的冪運算,所述運算方法包括輸入步驟,CPU輸入所述非負整數(shù)η的值、所述階數(shù)q的值、所述F^k的素數(shù)階數(shù)r的值、 由AEHcFqk表示的元素A的值,并存儲在所述存儲模塊中;初始化步驟,CPU對存儲運算結(jié)果Z的所述存儲模塊進行初始化; 第一運算步驟,CPU從所述存儲模塊讀出所述階數(shù)q、所述元素A的值,令所述q與r的 差為s = q_r,從j = 0到j(luò) <「lo&s」重復(fù)進行由T[j] 一 A和A — A*A表示的代入運算, 將所述T[j]和所述A的值存儲在所述存儲模塊中;展開步驟,CPU從所述存儲模塊讀出所述η和差s的值,根據(jù)以差s展開的下式 [式 42]
5.如權(quán)利要求4所述的冪運算的運算方法,其特征在于 設(shè)X" {Y}表示Xy,在使用整數(shù)變量χ分別由q(>c)、r(>c)、S(>c)給出所述階數(shù)q、所述素數(shù)階數(shù)r、所述 s時,包括輔助輸入步驟,CPU輸入所述q(>c)、r(>c)、S(>c)各值,存儲在所述存儲模塊中; 輔助展開步驟,CPU從所述存儲模塊讀出Hx)和S(X),用所述S(X)根據(jù)將r (X) 以S(X)進制展開的下式 [式 44]
6.如權(quán)利要求5所述的冪運算的運算方法,其特征在于當(dāng)所述系數(shù)Di (χ)中存在多個為最高次數(shù)dmax的系數(shù)Di (χ)時, 所述輔助存儲步驟還包括,CPU輸入滿足r (χ) |m(X)的m(X)的值,并存儲在所述存 儲模塊中的步驟, 并具有第二輔助確定步驟,CPU令作為degQJx))的最高次數(shù)dmax項的Xdmax的系數(shù)為 Tdfflax (q),從所述存儲模塊讀出系數(shù)Di (X),在所述存儲模塊中對T (q,x)和U(q,x )的分 配初始值“0”,從i = 0到i <「degr (χ)/degs ( χ )」重復(fù)進行代入運算,該代入運算中, ^deg(Di(x)) =dmax時,進行由T(q,χ) —T(q,x )+Di ( χ ) Qi表示的代入運算,其他情 況下,進行由U(q,x) -U(q, x )+Di (X)Cii表示的代入運算,將T (q,x)和U(q,x )的值 存儲在所述存儲模塊中,確定最高次數(shù)系數(shù)Tdmax (q);第三輔助確定步驟,CPU從所述存儲模塊讀出m(X)和R(X)的值,用滿足r(x) |m(x)的最小次數(shù)的多項式m(X),進行由ff(q) — gcd (Tdfflax (q), m(q))和 V(q) — W(q)表示的運算,確定滿足V(q) Im(q), gcd(Tdmax(Q), V(q)) = 1 的V (q),將所述V (q)的值存儲在所述存儲模塊中;第四輔助確定步驟,CPU從所述存儲模塊讀出V(q)和m(q)的值,利用擴展歐幾里得互 除法確定滿足g (q) V (q) = ν (mod m(q))的整數(shù)標(biāo)量ν和g (q),將所述標(biāo)量ν和g (q)的值存儲在所述存儲模塊中; 第五輔助確定步驟,替代所述輔助確定步驟,CPU從所述存儲模塊讀出Tdfflax (q)、X dma\ Di ( X )、Q 各值,利用滿足 A" (Tdfflax (q) χ dmax} =Α"{ Σ Di ( χ ) Qi-Tdmax (q) χ dmax) =A"{fq, x)}的多項式f(q,x)和所述g(q),根據(jù)Φ,ΥΑ) =A確定滿足 Α" {ν X dmax} = A"{g(q)f(q, x)} = A"{h(q, x)}的多項式h(q,X),將所述多項式h(q,x)的值存儲在所述存儲模塊中;和 CPU從所述存儲模塊讀出所述h(q,x)的值, 使該h(q,X)的關(guān)于q的常數(shù)項h(0,X)滿足 A"{vxdmax-h (0, x)} = A"{h(q, x)-h (0, x)},令 x = a,進行由 s’ = vadmax-h(0, a)和 h’ (q) = h(q,a)_h(0,a)表示的運算,將 s’ 和h’ (q)的值存儲在所述存儲模塊中,代替以Ddmax (a)進制展開,對以s進行展開后的所述 η 以 VadmaMi (0,a)進制展開,并用 h(q,a)-h(0, a)代替 vadmax-h (0,a)的步驟。
7. —種記錄有標(biāo)量乘法的運算程序的能夠由電子計算機讀取的記錄介質(zhì),其特征在于所述標(biāo)量乘法的運算程序用于,由具有CPU和存儲模塊的電子計算機來運算關(guān)于非負 整數(shù)η的G的有理點Q的標(biāo)量η乘法,其中,設(shè)橢圓曲線為 E/F, = x3+ax+b-y2 = 0,其中 a G Fq,b e Fq 令,E(Fq)為由有限域Fq定義的橢圓曲線的有理點構(gòu)成的加法群;E(F^k)為由有限域Fq的擴域F^k定義的橢圓曲線的有理點構(gòu)成的加法群;Φ q為關(guān)于有限域Fq的有理點的弗羅貝尼烏斯自同態(tài)映射;t為弗羅貝尼烏斯自同態(tài)映射的跡;r為整除E(Fq)的階數(shù)#E(Fq) = q+1-t的素數(shù)階數(shù);E[r]為階數(shù)為素數(shù)r的有理點集合;[j]為j倍的有理點的映射;G為包含于滿足G = E[r] η ΚθΓ(ΦΓ[α])的E (Fqk)中的有理點集合,并在電子計算機中執(zhí)行輸入步驟,輸入所述非負整數(shù)η的值、所述跡t的值、和由QEGc=E(Fqk)表示的有理 點Q的值,并存儲在所述存儲模塊中;初始化步驟,將存儲運算結(jié)果Z的所述存儲模塊初始化; 展開步驟,對于G的有理點Q, Φ q(Q) = [q]Q = [t_l]Q 成立,由此 令s = t-Ι,根據(jù)將所述η以s進制展開的下式, [式 45]
8.如權(quán)利要求7所述的能夠由電子計算機讀取的記錄介質(zhì),其特征在于 在利用整數(shù)變量χ分別由q(>c)、r(>c)、t(>c)給出所述橢圓曲線的有限域Fq的階數(shù) q、整除#E(Fq)的素數(shù)階數(shù)r、弗羅貝尼烏斯自同態(tài)映射Φ q的跡t時,在電子計算機中執(zhí)行 輔助輸入步驟,輸入所述q(x)、r(X)、t(X)各值,存儲在所述存儲模塊中; 輔助展開步驟,從所述存儲模塊讀出r ( χ )和t ( χ )的值,令所述s ( χ ) = t ( χ ) -1,根 據(jù)將r(x)以S(X)進制展開的下式 [式 47]
9.如權(quán)利要求8所述的能夠由電子計算機讀取的記錄介質(zhì),其特征在于 當(dāng)所述系數(shù)Di (χ)中存在多個為最高次數(shù)dmax的系數(shù)Di (χ)時,所述輔助輸入步驟還包括,輸入滿足r (χ) |m(X)的m(X)的值,并存儲在所述存儲模 塊中的步驟,在電子計算機中執(zhí)行第二輔助確定步驟,令作為degQi (χ))的最高次數(shù)dmax項的Xdmax的系數(shù)為 U Φ),從所述存儲模塊讀出系數(shù)Di (χ),在所述存儲模塊中對Τ(Φ,,χ)和υ(Φ,,χ) 分配初始值“0”,從i = 0到i <「degr(>c)/degS(>c)」重復(fù)進行如下代入運算,該代入運 算中,當(dāng)deg^Jx)) = dmax時,進行由Τ(Φ,,χ)x )+Di ( χ ) Φ /表示的代入運算,其他情況下,進行由υ(Φ,,χ)x)+DiX) Φ 表示的代入運算,將Τ(Φ,,χ)和υ(Φ,,χ)的值存儲在存儲模塊中,確定最高次數(shù)系數(shù)Tdmax(CK);第三輔助確定步驟,從所述存儲模塊讀出m((X)和R(x)的值,用滿足r(x) |m(X) 的最小次數(shù)的多項式m( χ ),進行由W(Cj5q) —gccKUc^),πΚΦ))和ν(Φ,) -ΚΦ,) 表示的代入運算,確定滿足ν(Φ,) ImQ^gccKUc^),V(Cj5q)) = 1 的V ( Φ ,將所述V ( Φ 的值存儲在存儲模塊中;第四輔助確定步驟,CPU從所述存儲模塊讀出V( Φ 和m(c^)的值,利用擴展歐幾里 得互除法確定滿足Ε(Φ )ν(Φ )三 ν (mod m(c^))的整數(shù)標(biāo)量ν和g ( Φ 的值,將所述標(biāo)量ν和g ( Φ 存儲在所述存儲模塊中; 第五輔助確定步驟,替代所述輔助確定步驟,CPU從所述存儲模塊讀出Tdmax(CK)、 χ dmaxJi (χ)、Q 各值,使用滿足[Tdmax(Cttl) XdmaxJQ=E Φ ([ (χ)]0)-[Τ(1ω3Χ(Φ(1) xdmax]Q =[ΜΦ,,x)]Q的多項式ΜΦ,,x)和所述β(Φ ),根據(jù)= 9確定滿足 [VXdmaxJQ= [g(c^)f(cK,x)]Q= ^(Φ,, x)]Q的多項式h(c^,\),將所述多項式11((^,χ)的值存儲在所述存儲模塊中;和 從所述存儲模塊讀出所述h(c^,X)的值, 使該h(c^,χ)的關(guān)于Φ,的常數(shù)項h(0,χ)滿足 [vxdmax-h(0, x)]Q = ^(Φ,, x)-h(0,X)]Q,由此令 χ = a,進行由 s,= VadmaMi(Oia)和 h,(φ,) = h ( Φ q, a)-h (0, a)表示的運算,將 s’和h’ (Φ,)的值存儲在所述存儲模塊中,代替以Ddmax(a)進制展開,對以t-1進制展開后 的所述n,以VadmaM1 (0,a)進制展開,并用h ( Φ q,a) _h (0,a)代替VadmaM1 (0,a)的步驟。
10.一種記錄有冪運算的運算程序的能夠由電子計算機讀取的記錄介質(zhì),其特征在于所述冪運算的運算程序用于,由具有CPU和存儲模塊的電子計算機來運算關(guān)于非負整 數(shù)η的H的元素A的η次冪,其中, 令Fqk為階數(shù)q的有限域Fq的k次擴域; H為Fqk的素數(shù)階數(shù)r的乘法子群; Φ q為關(guān)于有限域Fq的元素的弗羅貝尼烏斯自同態(tài)映射, 并在電子計算機中執(zhí)行輸入步驟,輸入所述非負整數(shù)η的值、所述階數(shù)q的值、所述F^k的素數(shù)階數(shù)r的值、由 AeHcFqk表示的元素A的值,并存儲在所述存儲模塊中;初始化步驟,對存儲運算結(jié)果Z的所述存儲模塊進行初始化; 第一運算步驟,從所述存儲模塊讀出所述階數(shù)q、所述元素A的值,令所述q與r的差為 s = q_r,從j = 0到j(luò) <「lo&s」重復(fù)進行由T[j] 一 A和A — A*A表示的代入運算,將所 述T[j]和所述A的值存儲在所述存儲模塊中;展開步驟,從所述存儲模塊讀出所述η和差s的值,根據(jù)以差s展開的下式 [式 48]
11.如權(quán)利要求10所述的能夠由電子計算機讀取的記錄介質(zhì),其特征在于 設(shè)X" {Y}表示Xy,在使用整數(shù)變量χ分別由q(>c)、r(>c)、S(>c)給出所述階數(shù)q、所述素數(shù)階數(shù)r、所述 S時,在電子計算機中執(zhí)行輔助輸入步驟,輸入所述q(x)、r(X)、S(X)各值,存儲在所述存儲模塊中; 輔助展開步驟,從所述存儲模塊讀出r (χ)和s(x),用所述S(X)根據(jù)將r(x)以 s(x)進制展開的下式 [式 50]
12.如權(quán)利要求11所述的能夠由電子計算機讀取的記錄介質(zhì),其特征在于 當(dāng)所述系數(shù)Di (χ)中存在多個為最高次數(shù)dmax的系數(shù)Di (χ)時, 所述輔助存儲步驟還包括,輸入滿足r (χ) |m(X)的m(X)的值,并存儲在所述存儲模 塊中的步驟,在電子計算機中執(zhí)行第二輔助確定步驟,令作為deg(Di (X))的最高次數(shù)dmax項的x ^=1的系數(shù)為Tdmax(q), 從所述存儲模塊讀出系數(shù)Di(X),在所述存儲模塊中對T(q,x)和U(q,x)的分配初 始值“0”,從i = 0到i <「degr(>c)/degS(>c)」重復(fù)進行代入運算,該代入運算中,當(dāng) deg^Jx)) =dmaX時,進行由T(q,x)—T(q,x )+Di ( χ ) Qi表示的代入運算,其他情況 下,進行由U(q,x) -U(q, x )+Di (X)Cii表示的代入運算,將T (q,x)和U(q,x )的值存 儲在所述存儲模塊中,確定最高次數(shù)系數(shù)Tdmax (q);第三輔助確定步驟,從所述存儲模塊讀出m(X)和R(X)的值,用滿足r(x) |m(X)的 最小次數(shù)的多項式m(X),進行由W(q) -gcd (Tdfflax (q),m(q))和V(q) —W(q)表示的運算, 確定滿足V(q) |m(q), gcd(Tdmax(Q), V(q)) = 1 的V (q),將所述V (q)的值存儲在所述存儲模塊中;第四輔助確定步驟,從所述存儲模塊讀出V(q)和m(q)的值,利用擴展歐幾里得互除法 確定滿足g (q) V (q) = ν (mod m(q))的整數(shù)標(biāo)量ν和g (q),將所述標(biāo)量ν和g (q)的值存儲在所述存儲模塊中; 第五輔助確定步驟,替代所述輔助確定步驟,從所述存儲模塊讀出Tdmax(q)、xdma\ Di(X)、Q各值,利用滿足A" ITdmax (q) X dmaxI = Α" { Σ Di ( X ) Qi-Tdmax (q) x dmax) =A"{f(q, x)}的多項式f(q,x)和所述g(q),根據(jù)Φ,ΥΑ) =A確定滿足 Α" {ν X dmax} = A"{g(q)f(q, x)} = A"{h(q, x)}的多項式h(q,X),將所述多項式h(q,x)的值存儲在所述存儲模塊中;和 CPU從所述存儲模塊讀出所述h(q,x)的值, 使該h(q,X)的關(guān)于q的常數(shù)項h(0,X)滿足A"{vxdmax-h(0, χ)} = A"{h(q, x)-h(0, χ)},令 x = a,進行由 s’ = vadmax-h(0, a)和 h’ (q) = h(q,a)_h(0,a)表示的運算,將 s’ 和h’ (q)的值存儲在所述存儲模塊中,代替以Ddmax (a)進制展開,對以s進行展開后的所述 η 以 VadmaMi (0,a)進制展開,并用 h(q,a)-h(0, a)代替 vadmax-h (0,a)的步驟。
全文摘要
本發(fā)明涉及能夠快速進行運算的標(biāo)量乘法或冪運算的運算方法、以及標(biāo)量乘法或冪運算的程序。在電子計算機中,關(guān)于非負整數(shù)n的G的有理點Q的標(biāo)量n乘法的運算方法和運算程序中,φq(Q)=[q]Q=[t-1]Q成立,由此對標(biāo)量n以t-1進制展開,使用有理點的弗羅貝尼烏斯自同態(tài)映射φq取代t-1。另外,在電子計算機中,關(guān)于非負整數(shù)n的H的元素A的n次冪的冪運算方法和運算程序中,令q和r的差為s=q-r,則對于H的非零元素A,φq(A)=Aq=As成立,由此對指數(shù)n以s進制展開,使用關(guān)于元素的弗羅貝尼烏斯自同態(tài)映射φq取代s。
文檔編號G09C1/00GK101965602SQ20098010637
公開日2011年2月2日 申請日期2009年2月25日 優(yōu)先權(quán)日2008年2月25日
發(fā)明者加藤英洋, 森川良孝, 赤根正剛, 野上保之 申請人:國立大學(xué)法人岡山大學(xué)