有限域算數運算

在橢圓曲線系統中,由於採用算數運算操作執行一些列操作,能否在有限域中高效執行算數運算就變得至關重要。本文介紹了一套有限域的形式化算法,爲配合形式化驗證,特別爲橢圓曲線系統設計了3種易於處理的數字域:質數域,二進制域和可選擴展域,目的是系統性地介紹基於有限域算數運算方法:加法,減法,乘法和求逆運算。

有限域介紹

數據域是相似數據系統(如有理數,實數和複雜數)和其基本屬性的抽象。數據域構成數據集合FF,執行2類運算,即加法和乘法,同時滿足一般的運算性質:
(1)(F,+)(F,+)是一個阿貝爾羣,具有(加法)單位元0;
(2)(F\{0},)(F \backslash \lbrace 0 \rbrace, \cdot )是一個阿貝爾羣,具有(乘法)單位元1;
(3)分配律:(a+b)c=ac+bc(a+b)\cdot c=a\cdot c+b\cdot c, 對於所有 a,b,cFa,b,c\in F
如果集合FF是有限的, 數據域也是有限的。

數據域操作

數據域FF具有2種類型操作,加法和乘法。域元素的減法按照加法定義,即對於a,bFa,b\in F, ab=a+(b)a-b=a+(-b),其中b-bFF種的唯一元素,滿足b+(b)=0b+(-b)=0,即b-b稱爲b的負數。相似的,數據域的除法按照乘法來定義,即對於a,bFa,b\in F,且b0b\neq 0,滿足a/b=a.b1a/b=a.b^{-1},其中b1b^{-1}是數據域FF的唯一元素, 且滿足b.b1=1b.b^{-1}=1,也稱b1bb^{-1}是b的逆元

存在性和唯一性

有限域的階是指有限域的元素數量。我們稱有限域F具有階q,當且僅當q可以表示爲質數的指數形式,也就是 q=pmq=p^m,其中p是質數,稱爲F的特性,m是正整數。如果m=1m=1,稱FF爲質數域。如果m2m\ge 2,稱F爲擴展域。對任何質數冪q,僅僅存在一個有限域,階爲q。 這意味形式上,任意兩個具有相同階q的有限域,儘管其標識符可能不同,但都具有相同在形態。基於以上性質,我們稱任2個有相同階q的有限域具有同態性質,其同態域表示爲FqF_q

質數域

設p爲一個質數,對整數取模p,就生成一個由元組0,1,2,...,p1{0,1,2,...,p-1}構成的整數集合,這個集合是階爲p的有限域。這個數據域可表示爲FpF_p,p爲FpF_p的模數。對任意整數a,amod  pa\mod p 應表示爲唯一的餘數r,且滿足0rp10\leq r \leq p-1,與a除p等價,該操作也稱爲還原模量p。

舉個栗子,質數域F29F_{29}的元素爲{0,1,2,…,28}。以下爲一些算數運算的例子:
1 加法: 17+20=817+20 = 8 ,因爲 37mod  29=837 \mod 29 = 8
2 減法: 1720=2617-20 = 26,因爲 3mod  29=26-3 \mod 29 = 26
3 乘法: 1720=2117\cdot 20 =21,因爲 340mod  29=21340 \mod 29 = 21
4 求逆: 171=1217^{-1}=12,因爲 1712mod  29=117 \cdot 12\mod 29=1

二元域

階爲2m2^m的有限域稱爲二元域或特徵2的有限域。一個方式構造F2mF_{2^m}是使用多項式基本表示方法。其中,元素F3mF_{3^m}是二元多項式(多項式的係數在數據域F2=0,1F_2={0,1}中),度最多爲m-1。

選取一個具有項數m的不可約的二元多項式f(z)f(z)(對任意m,這個多項式存在且能夠有效發現)。f(z)f(z)的不可約性意味着f(z)f(z)不能被分解爲項數(小於m)的二元多項式的乘積。域元素的加法表示爲通常的多項式加法後,將係數取模2;域元素的乘法表示爲執行約化多項式(reduction polynomial)f(z)f(z)的模。對任意二元多項式a(z)a(z)a(z)mod  f(z)a(z)\mod f(z)表示在執行a(z)a(z)除以f(z)f(z)的項數小於m的餘數多項式r(z)r(z),這個操作稱爲減法模f(z)f(z)

例1(二元域F24F_{2^4} 二元域F24F_{2^4}的元素表示爲16個二元多項式,其項數不超過3:

以下是一些在二元域F24F_{2^4}的用減法多項式f(z)=x4+z+1f(z)=x^4+z+1進行算數運算的栗子。
1 加法:(z3+z2+1)+(z2+z+1)=z3+z(z^3+z^2+1)+(z^2+z+1)=z^3+z

2 減法:(z3+z2+1)(z2+z+1)=z3+z(z^3+z^2+1)-(z^2+z+1)=z^3+z
注意 1=1mod  2-1=1\mod 2,一般的,對於任意aFama\in F_{a^m}1=amod  2-1=a\mod 2
3 乘法:(z3+z2+1)(˙z2+z+1)=z2+1(z^3+z^2+1)\dot (z^2+z+1)=z^2+1,因爲:(z3+z2+1)(˙z2+z+1)=z5+z+1(z^3+z^2+1)\dot (z^2+z+1)=z^5+z+1
(z5+z+1)mod  (z4+z+1)=z2+1(z^5+z+1)\mod (z^4+z+1)=z^2+1.
4 求逆:(z3+z2+1)1=z2(z^3+z^2+1)^{-1}=z^2,因爲:
(z3+z2+1)z2mod  (z4+z+1)=1(z^3+z^2+1)\cdot z^2 \mod (z^4+z+1)=1

例2(同態域):有3個不可約二元多項式,度爲4,分別爲f1(z)=z4+z+1f_1(z)=z^4+z+1f2(z)=z4+z3+1f_2(z)=z^4+z^3+1f3(z)=z4+z3+z+1f_3(z)=z^4+z^3+z+1。每個約化多項式能被用於構造域F24F_2^4;假設目標域分別爲k1k_1,k2k_2,k3k_3k1k_1,k2k_2,k3k_3的域元素同爲16個二元多項式,度最多爲3。簡單的說,這些域明顯不同,例如:在k1k_1中,z3.z=z+1z^3.z=z+1;在k2k_2中,z3.z=z3+1z^3.z=z^3+1;在k3k_3中,z3.z=z3+z2+z+1z^3.z=z^3+z^2+z+1;然而,所有給定階的域都是同態的,即其元素的不同僅僅是標記不同。K1和k2之間的同構性可以通過發現ck2c\in k_2,滿足f1(c)0mod  f2f_1(c)\equiv 0\mod f_2來構造。然後擴展zcz\longmapsto c到同態φ:k1k2\varphi : k_1 \to k_2; 對c的選擇爲z2+zz^2+z,z2+z+1z^2+z+1,z3+z2z^3+z^2z3+z2+1z^3+z^2+1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章