在橢圓曲線系統中,由於採用算數運算操作執行一些列操作,能否在有限域中高效執行算數運算就變得至關重要。本文介紹了一套有限域的形式化算法,爲配合形式化驗證,特別爲橢圓曲線系統設計了3種易於處理的數字域:質數域,二進制域和可選擴展域,目的是系統性地介紹基於有限域算數運算方法:加法,減法,乘法和求逆運算。
有限域介紹
數據域是相似數據系統(如有理數,實數和複雜數)和其基本屬性的抽象。數據域構成數據集合F,執行2類運算,即加法和乘法,同時滿足一般的運算性質:
(1)(F,+)是一個阿貝爾羣,具有(加法)單位元0;
(2)(F\{0},⋅)是一個阿貝爾羣,具有(乘法)單位元1;
(3)分配律:(a+b)⋅c=a⋅c+b⋅c, 對於所有 a,b,c∈F;
如果集合F是有限的, 數據域也是有限的。
數據域操作
數據域F具有2種類型操作,加法和乘法。域元素的減法按照加法定義,即對於a,b∈F, a−b=a+(−b),其中−b是F種的唯一元素,滿足b+(−b)=0,即−b稱爲b的負數。相似的,數據域的除法按照乘法來定義,即對於a,b∈F,且b=0,滿足a/b=a.b−1,其中b−1是數據域F的唯一元素, 且滿足b.b−1=1,也稱b−1是b的逆元。
存在性和唯一性
有限域的階是指有限域的元素數量。我們稱有限域F具有階q,當且僅當q可以表示爲質數的指數形式,也就是 q=pm,其中p是質數,稱爲F的特性,m是正整數。如果m=1,稱F爲質數域。如果m≥2,稱F爲擴展域。對任何質數冪q,僅僅存在一個有限域,階爲q。 這意味形式上,任意兩個具有相同階q的有限域,儘管其標識符可能不同,但都具有相同在形態。基於以上性質,我們稱任2個有相同階q的有限域具有同態性質,其同態域表示爲Fq。
質數域
設p爲一個質數,對整數取模p,就生成一個由元組0,1,2,...,p−1構成的整數集合,這個集合是階爲p的有限域。這個數據域可表示爲Fp,p爲Fp的模數。對任意整數a,amodp 應表示爲唯一的餘數r,且滿足0≤r≤p−1,與a除p等價,該操作也稱爲還原模量p。
舉個栗子,質數域F29的元素爲{0,1,2,…,28}。以下爲一些算數運算的例子:
1 加法: 17+20=8 ,因爲 37mod29=8
2 減法: 17−20=26,因爲 −3mod29=26
3 乘法: 17⋅20=21,因爲 340mod29=21
4 求逆: 17−1=12,因爲 17⋅12mod29=1
二元域
階爲2m的有限域稱爲二元域或特徵2的有限域。一個方式構造F2m是使用多項式基本表示方法。其中,元素F3m是二元多項式(多項式的係數在數據域F2=0,1中),度最多爲m-1。
選取一個具有項數m的不可約的二元多項式f(z)(對任意m,這個多項式存在且能夠有效發現)。f(z)的不可約性意味着f(z)不能被分解爲項數(小於m)的二元多項式的乘積。域元素的加法表示爲通常的多項式加法後,將係數取模2;域元素的乘法表示爲執行約化多項式(reduction polynomial)f(z)的模。對任意二元多項式a(z),a(z)modf(z)表示在執行a(z)除以f(z)的項數小於m的餘數多項式r(z),這個操作稱爲減法模f(z)。
例1(二元域F24) 二元域F24的元素表示爲16個二元多項式,其項數不超過3:
以下是一些在二元域F24的用減法多項式f(z)=x4+z+1進行算數運算的栗子。
1 加法:(z3+z2+1)+(z2+z+1)=z3+z
2 減法:(z3+z2+1)−(z2+z+1)=z3+z。
注意 −1=1mod2,一般的,對於任意a∈Fam,−1=amod2
3 乘法:(z3+z2+1)(˙z2+z+1)=z2+1,因爲:(z3+z2+1)(˙z2+z+1)=z5+z+1 且
(z5+z+1)mod(z4+z+1)=z2+1.
4 求逆:(z3+z2+1)−1=z2,因爲:
(z3+z2+1)⋅z2mod(z4+z+1)=1
例2(同態域):有3個不可約二元多項式,度爲4,分別爲f1(z)=z4+z+1,f2(z)=z4+z3+1和f3(z)=z4+z3+z+1。每個約化多項式能被用於構造域F24;假設目標域分別爲k1,k2,k3。k1,k2,k3的域元素同爲16個二元多項式,度最多爲3。簡單的說,這些域明顯不同,例如:在k1中,z3.z=z+1;在k2中,z3.z=z3+1;在k3中,z3.z=z3+z2+z+1;然而,所有給定階的域都是同態的,即其元素的不同僅僅是標記不同。K1和k2之間的同構性可以通過發現c∈k2,滿足f1(c)≡0modf2來構造。然後擴展z⟼c到同態φ:k1→k2; 對c的選擇爲z2+z,z2+z+1,z3+z2和z3+z2+1。