有限域算数运算
橢圓曲線系統常采用算數運算操作執行一系列加解密操作,掌握有限域的算數運算方法,對設計高效執行的密碼學算法至關重要。本文介紹了有限域的基本概念,進一步闡述了橢圓曲線系統的三種經典有限域(質數域,二元域和擴展域)以及其相應的算數運算方法(加法,減法,乘法和求逆運算)。
有限域介紹
數據域是相似數據系統(如有理數,實數和復雜數)及其屬性的抽象概念。數據域可構成數據集合FFF,并執行兩類基本運算:加法和乘法,一般滿足如下性質:
(1)(F,+)(F,+)(F,+)是一個阿貝爾群,具有(加法)單位元0;
(2)(F\{0},?)(F \backslash \lbrace 0 \rbrace, \cdot )(F\{0},?)是一個阿貝爾群,具有(乘法)單位元1;
(3)分配律:對所有 a,b,c∈Fa,b,c\in Fa,b,c∈F,滿足:
(a+b)?c=a?c+b?c(a+b)\cdot c=a\cdot c+b\cdot c(a+b)?c=a?c+b?c。
如果集合FFF是有限的, 數據域也是有限的,稱FFF為有限域。
數據域操作
如上節所述,數據域FFF具有兩種類型操作,加法和乘法。依此類推,域元素的減法可按照加法定義,即對于a,b∈Fa,b\in Fa,b∈F, a?b=a+(?b)a-b=a+(-b)a?b=a+(?b),其中?b-b?b在有限域FFF中唯一,且滿足b+(?b)=0b+(-b)=0b+(?b)=0,則?b-b?b稱為b的負數。相應的,數據域的除法可按照乘法定義,即對于a,b∈Fa,b\in Fa,b∈F,且b≠0b\neq 0b?=0,滿足a/b=a?b?1a/b=a\cdot b^{-1}a/b=a?b?1,其中b?1b^{-1}b?1在有限域FFF中唯一, 且滿足b?b?1=1b\cdot b^{-1}=1b?b?1=1,則稱b?1是b的逆元b^{-1}是b的逆元b?1是b的逆元。
存在性和唯一性
在有限域中,階指有限域的元素數量。稱有限域F具有階q,當且僅當q可以表示為質數的指數形式,也就是 q=pmq=p^mq=pm,其中質數p稱為F的特征,m是正整數。如果m=1m=1m=1,稱FFF為質數域。如果m≥2m\ge 2m≥2,稱FFF為擴展域。對具有任意質數冪的階q,僅僅存在一個有限域。 也就是說,任意兩個具有相同階q的有限域,盡管形式上其標識有可能不同,但卻具有相同在形態。基于該性質,稱任2個具有相同階(假設階為q)的有限域具有同態性,其同態域表示為FqF_qFq?。
質數域
設p為質數,對整數取模p,就生成一個由元素0,1,2,...,p?1{0,1,2,...,p-1}0,1,2,...,p?1構成的整數集合,這個集合構成階為p的有限域,表示為FpF_pFp?,其中p為FpF_pFp?的模數。對任意整數a,amodpa\mod pamodp 應表示余數r,且取值唯一,滿足0≤r≤p?10\leq r \leq p-10≤r≤p?1。這個運算與a/pa/pa/p等價,也稱為約化模ppp。
舉個栗子,有限域F29F_{29}F29?的元素集合為{0,1,2,…,28}。以下為一些算數運算的例子:
1 加法: 17+20=817+20 = 817+20=8 ,因為 37mod29=837 \mod 29 = 837mod29=8
2 減法: 17?20=2617-20 = 2617?20=26,因為 ?3mod29=26-3 \mod 29 = 26?3mod29=26
3 乘法: 17?20=2117\cdot 20 =2117?20=21,因為 340mod29=21340 \mod 29 = 21340mod29=21
4 求逆: 17?1=1217^{-1}=1217?1=12,因為 17?12mod29=117 \cdot 12\mod 29=117?12mod29=1
二元域
階為2m2^m2m的有限域稱為二元域或特征為2的有限域。一種構造F2mF_{2^m}F2m?的方式是采用多項式的基本表示方法。以下是有域F2mF_{2^m}F2m?表示為二元多項式的例子(多項式的系數在數據域F2=0,1F_2={0,1}F2?=0,1中),其度不超過為m-1。
我們選取一個具有項數m的不可約的二元多項式f(z)f(z)f(z)(對任意m,這個多項式都是存在的)。f(z)f(z)f(z)具有的不可約性意味著f(z)f(z)f(z)不能被分解為(小于m)次冪的二元多項式的乘積。多項式系數值通常表示為的多項式加法后,對結果用2取模;多項式系數的乘法表示為執行約化多項式(reduction polynomial)f(z)f(z)f(z)的模。對任意二元多項式a(z)a(z)a(z),a(z)modf(z)a(z)\mod f(z)a(z)modf(z)表示執行a(z)a(z)a(z)除以f(z)f(z)f(z)的冪小于m的余數多項式r(z)r(z)r(z),這個操作稱為約化模f(z)f(z)f(z)。
例1(二元域F24F_{2^4}F24?) 二元域F24F_{2^4}F24?的元素表示為如下16個二元多項式,它的冪不超過3:
例2: 通過一個栗子說明在二元域F24F_{2^4}F24?中如何用多項式f(z)=x4+z+1f(z)=x^4+z+1f(z)=x4+z+1進行一系列約化模運算。
1 加法:(z3+z2+1)+(z2+z+1)=z3+z(z^3+z^2+1)+(z^2+z+1)=z^3+z(z3+z2+1)+(z2+z+1)=z3+z
2 減法:(z3+z2+1)?(z2+z+1)=z3+z(z^3+z^2+1)-(z^2+z+1)=z^3+z(z3+z2+1)?(z2+z+1)=z3+z。
注意 ?1=1mod2-1=1\mod 2?1=1mod2,一般的,對于任意a∈Fama\in F_{a^m}a∈Fam?,?a=amod2-a=a\mod 2?a=amod2
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)=z2+1,因為:(z3+z2+1)(˙z2+z+1)=z5+z+1(z^3+z^2+1)\dot (z^2+z+1)=z^5+z+1(z3+z2+1)(˙?z2+z+1)=z5+z+1 且(z5+z+1)mod(z4+z+1)=z2+1(z^5+z+1)\mod (z^4+z+1)=z^2+1(z5+z+1)mod(z4+z+1)=z2+1.
4 求逆:(z3+z2+1)?1=z2(z^3+z^2+1)^{-1}=z^2(z3+z2+1)?1=z2,因為(z3+z2+1)?z2mod(z4+z+1)=1(z^3+z^2+1)\cdot z^2 \mod (z^4+z+1)=1(z3+z2+1)?z2mod(z4+z+1)=1
例3(同態域):假設有3個冪為4的不可約二元多項式,分別為:f1(z)=z4+z+1f_1(z)=z^4+z+1f1?(z)=z4+z+1,f2(z)=z4+z3+1f_2(z)=z^4+z^3+1f2?(z)=z4+z3+1和f3(z)=z4+z3+z+1f_3(z)=z^4+z^3+z+1f3?(z)=z4+z3+z+1。每個約化多項式能被用于構造域F24F_2^4F24?;假設目標域分別為k1k_1k1?,k2k_2k2?,k3k_3k3?。因此k1k_1k1?,k2k_2k2?,k3k_3k3?的域元素同為16個二元多項式,其冪不超過3。換句話說,雖然這些域看起來明顯不同,例如:在k1k_1k1?中,z3.z=z+1z^3.z=z+1z3.z=z+1;在k2k_2k2?中,z3.z=z3+1z^3.z=z^3+1z3.z=z3+1;在k3k_3k3?中,z3.z=z3+z2+z+1z^3.z=z^3+z^2+z+1z3.z=z3+z2+z+1,但是它們具有相同的階數,因此是同態的,只是元素具有不同的標記。K1和k2之間的同構性可以通過找到c∈k2c\in k_2c∈k2?,c滿足f1(c)≡0modf2f_1(c)\equiv 0\mod f_2f1?(c)≡0modf2?,然后擴展z?cz\longmapsto cz?c到同態φ:k1→k2\varphi : k_1 \to k_2φ:k1?→k2?來構造。 對c的選擇可以為z2+zz^2+zz2+z,z2+z+1z^2+z+1z2+z+1,z3+z2z^3+z^2z3+z2和z3+z2+1z^3+z^2+1z3+z2+1。
擴展域
在二元域中,多項式可以泛化為如下擴展域形式。
設p為質數,m≥2m\ge 2m≥2,Fp[z]F_p[z]Fp?[z]表示以z為自變量,系數屬于FpF_pFp?的一元多次方程。設f(z)f(z)f(z)為一個冪為m(m∈Fp[z]m\in F_p[z]m∈Fp?[z])的不可約多項式,可以證明,該多項式對任意p和m是存在的。f(z)f(z)f(z)的不可約性意味著f(z)f(z)f(z)不能分解為f(z)f(z)f(z)中的多項式的乘積。在FpmF_{p^m}Fpm?中,元素是Fp[z]F_p[z]Fp?[z]的多項式,且冪不大于m-1。
域元素的加法通常表示為多項式的和,其系數運算在FpF_pFp?中執行。域元素的乘法表示為多項式f(z)f(z)f(z)的模。
例4(擴展域) 設p=251,m=5,f(z)=z5+z4+12z3+92+7f(z)=z^5+z^4+12z^3+9^2+7f(z)=z5+z4+12z3+92+7是F251[z]F_{251}[z]F251?[z]中的不可約多項式,將F2515F_{251^5}F2515?設為約化多項式,可知F251[z]F_{251}[z]F251?[z]的階為2515251^52515,且F2515F_{251^5}F2515?的元素為F251[z]F_{251}[z]F251?[z]中的多項式,冪不大于4。
以下是有限域F2515F_{251^5}F2515?中的算數運算,其中,a=123z4+76z2+7z+4a=123z^4+76z^2+7z+4a=123z4+76z2+7z+4,b=196z4+12z3+225z2+76b=196z^4+12z^3+225z^2+76b=196z4+12z3+225z2+76。
1 加法: a+b=68z4+12z3+50z2+7z+179a+b=68z^4+12z^3+50z^2+7z+179a+b=68z4+12z3+50z2+7z+179
2 減法: a?b=178z4+239z3+102z2+zz+179a-b=178z^4+239z^3+102z^2+z^z+179a?b=178z4+239z3+102z2+zz+179
3 乘法: a?b=117z4+151z3+117z2+182z+217a\cdot b=117z^4+151z^3+117z^2+182z+217a?b=117z4+151z3+117z2+182z+217
4 除法: a?1=109z4+111z3+250z2+98z+85a^{-1}=109z^4+111z^3+250z^2+98z+85a?1=109z4+111z3+250z2+98z+85
有限子域
當kkk是一個關于有限域KKK操作的數據域時,KKK的子集kkk即為KKK的子域,KKK稱為kkk的一個擴展域。有限子域較為容易地特征化。設FpmF_{p^m}Fpm?是一個有限域,對于m的每個正除數lll,都具有一個階為plp^lpl的子域,其元素滿足apl=aa^{p^l}=aapl=a,且a∈Fpma\in F_{p^m}a∈Fpm?。反過來,對于一些m的正除數lll,每個FpmF_{p^m}Fpm?的有限子域的階為plp^lpl。
有限域的基
FqnF_{q^n}Fqn?是一個建立在有限子域FqF_qFq?基礎上的向量空間。其中,空間中的向量是FqnF_{q^n}Fqn?的元素,其標量是FqF_qFq?的元素,向量的和是FqnF_{q^n}Fqn?的加法運算,標量的乘積是FqnF_{q^n}Fqn?中FqF_qFq?元素的乘法運算,向量空間是由不同基數構造的n維空間。
如果B=b1,b2,...,bnB={b_1,b_2,...,b_n}B=b1?,b2?,...,bn?表示一個基數,a∈Fqna\in F_{q^n}a∈Fqn?唯一表示為FqF_qFq?元素的n元組(a1,a2,...,an)(a_1,a_2,...,a_n)(a1?,a2?,...,an?),其中a=a1b1+a2b2+...+anbna=a_1b_1+a_2b_2+...+a_nb_na=a1?b1?+a2?b2?+...+an?bn?。在以上有限域FpmF_{p^m}Fpm?的多項式基中,FpmF_{p^m}Fpm?是在FpF_pFp?上的m維向量空間,(zm?1,zm?2,...,z2,z,1)(z^{m-1},z^{m-2},...,z^2,z,1)(zm?1,zm?2,...,z2,z,1)是建立在FpF_pFp?上的FpmF_{p^m}Fpm?的基數。
有限域乘法群
有限域FqF_qFq?的非0元素Fq?{F_q}^*Fq??構成一個乘法循環群。此時元素b(b∈Fq?)b(b\in {F_q}^*)b(b∈Fq??)存在,稱為生成元。生成元滿足以下關系式:Fq?={bi:0≤i≤q?2}{F_q}^*= \{ b^i:0\le i\le q-2 \}Fq??={bi:0≤i≤q?2}。a∈Fq?a\in {F_q}^*a∈Fq??的階是at=1a^t=1at=1的最小的正整數ttt。Fq?{F_q}^*Fq??是一個循環群,且ttt為q?1q-1q?1的除數。
總結
- 上一篇: 可测性设计技术
- 下一篇: SRAM BIST技术学习