椭圆曲线系统常采用算数运算操作执行一系列加解密操作,掌握有限域的算数运算方法,对设计高效执行的密码学算法至关重要。本文介绍了有限域的基本概念,进一步阐述了椭圆曲线系统的三种经典有限域(质数域,二元域和扩展域)以及其相应的算数运算方法(加法,减法,乘法和求逆运算)。
数据域是相似数据系统(如有理数,实数和复杂数)及其属性的抽象概念。数据域可构成数据集合 F F F,并执行两类基本运算:加法和乘法,一般满足如下性质:
(1) ( F , + ) (F,+) (F,+)是一个阿贝尔群,具有(加法)单位元0;
(2) ( F \ { 0 } , ⋅ ) (F \backslash \lbrace 0 \rbrace, \cdot ) (F\{0},⋅)是一个阿贝尔群,具有(乘法)单位元1;
(3)分配律:对所有 a , b , c ∈ F a,b,c\in F a,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。
如果集合 F F F是有限的, 数据域也是有限的,称 F F F为有限域。
如上节所述,数据域 F F F具有两种类型操作,加法和乘法。依此类推,域元素的减法可按照加法定义,即对于 a , b ∈ F a,b\in F a,b∈F, a − b = a + ( − b ) a-b=a+(-b) a−b=a+(−b),其中 − b -b −b在有限域 F F F中唯一,且满足 b + ( − b ) = 0 b+(-b)=0 b+(−b)=0,则 − b -b −b称为b的负数。相应的,数据域的除法可按照乘法定义,即对于 a , b ∈ F a,b\in F a,b∈F,且 b ≠ 0 b\neq 0 b=0,满足 a / b = a ⋅ b − 1 a/b=a\cdot b^{-1} a/b=a⋅b−1,其中 b − 1 b^{-1} b−1在有限域 F F F中唯一, 且满足 b ⋅ b − 1 = 1 b\cdot b^{-1}=1 b⋅b−1=1,则称 b − 1 是 b 的 逆 元 b^{-1}是b的逆元 b−1是b的逆元。
在有限域中,阶指有限域的元素数量。称有限域F具有阶q,当且仅当q可以表示为质数的指数形式,也就是 q = p m q=p^m q=pm,其中质数p称为F的特征,m是正整数。如果 m = 1 m=1 m=1,称 F F F为质数域。如果 m ≥ 2 m\ge 2 m≥2,称 F F F为扩展域。对具有任意质数幂的阶q,仅仅存在一个有限域。 也就是说,任意两个具有相同阶q的有限域,尽管形式上其标识有可能不同,但却具有相同在形态。基于该性质,称任2个具有相同阶(假设阶为q)的有限域具有同态性,其同态域表示为 F q F_q Fq。
设p为质数,对整数取模p,就生成一个由元素 0 , 1 , 2 , . . . , p − 1 {0,1,2,...,p-1} 0,1,2,...,p−1构成的整数集合,这个集合构成阶为p的有限域,表示为 F p F_p Fp,其中p为 F p F_p Fp的模数。对任意整数a, a m o d p a\mod p amodp 应表示余数r,且取值唯一,满足 0 ≤ r ≤ p − 1 0\leq r \leq p-1 0≤r≤p−1。这个运算与 a / p a/p a/p等价,也称为约化模 p p p。
举个栗子,有限域 F 29 F_{29} F29的元素集合为{0,1,2,…,28}。以下为一些算数运算的例子:
1 加法: 17 + 20 = 8 17+20 = 8 17+20=8 ,因为 37 m o d 29 = 8 37 \mod 29 = 8 37mod29=8
2 减法: 17 − 20 = 26 17-20 = 26 17−20=26,因为 − 3 m o d 29 = 26 -3 \mod 29 = 26 −3mod29=26
3 乘法: 17 ⋅ 20 = 21 17\cdot 20 =21 17⋅20=21,因为 340 m o d 29 = 21 340 \mod 29 = 21 340mod29=21
4 求逆: 1 7 − 1 = 12 17^{-1}=12 17−1=12,因为 17 ⋅ 12 m o d 29 = 1 17 \cdot 12\mod 29=1 17⋅12mod29=1
阶为 2 m 2^m 2m的有限域称为二元域或特征为2的有限域。一种构造 F 2 m F_{2^m} F2m的方式是采用多项式的基本表示方法。以下是有域 F 2 m F_{2^m} F2m表示为二元多项式的例子(多项式的系数在数据域 F 2 = 0 , 1 F_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 ) m o d f ( 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(二元域 F 2 4 F_{2^4} F24) 二元域 F 2 4 F_{2^4} F24的元素表示为如下16个二元多项式,它的幂不超过3:
例2: 通过一个栗子说明在二元域 F 2 4 F_{2^4} F24中如何用多项式 f ( z ) = x 4 + z + 1 f(z)=x^4+z+1 f(z)=x4+z+1进行一系列约化模运算。
1 加法: ( z 3 + z 2 + 1 ) + ( z 2 + z + 1 ) = z 3 + z (z^3+z^2+1)+(z^2+z+1)=z^3+z (z3+z2+1)+(z2+z+1)=z3+z
2 减法: ( z 3 + z 2 + 1 ) − ( z 2 + z + 1 ) = z 3 + z (z^3+z^2+1)-(z^2+z+1)=z^3+z (z3+z2+1)−(z2+z+1)=z3+z。
注意 − 1 = 1 m o d 2 -1=1\mod 2 −1=1mod2,一般的,对于任意 a ∈ F a m a\in F_{a^m} a∈Fam, − a = a m o d 2 -a=a\mod 2 −a=amod2
3 乘法: ( z 3 + z 2 + 1 ) ( ˙ z 2 + z + 1 ) = z 2 + 1 (z^3+z^2+1)\dot (z^2+z+1)=z^2+1 (z3+z2+1)(˙z2+z+1)=z2+1,因为: ( z 3 + z 2 + 1 ) ( ˙ z 2 + z + 1 ) = z 5 + 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 且 ( z 5 + z + 1 ) m o d ( z 4 + z + 1 ) = z 2 + 1 (z^5+z+1)\mod (z^4+z+1)=z^2+1 (z5+z+1)mod(z4+z+1)=z2+1.
4 求逆: ( z 3 + z 2 + 1 ) − 1 = z 2 (z^3+z^2+1)^{-1}=z^2 (z3+z2+1)−1=z2,因为 ( z 3 + z 2 + 1 ) ⋅ z 2 m o d ( z 4 + 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的不可约二元多项式,分别为: f 1 ( z ) = z 4 + z + 1 f_1(z)=z^4+z+1 f1(z)=z4+z+1, f 2 ( z ) = z 4 + z 3 + 1 f_2(z)=z^4+z^3+1 f2(z)=z4+z3+1和 f 3 ( z ) = z 4 + z 3 + z + 1 f_3(z)=z^4+z^3+z+1 f3(z)=z4+z3+z+1。每个约化多项式能被用于构造域 F 2 4 F_2^4 F24;假设目标域分别为 k 1 k_1 k1, k 2 k_2 k2, k 3 k_3 k3。因此 k 1 k_1 k1, k 2 k_2 k2, k 3 k_3 k3的域元素同为16个二元多项式,其幂不超过3。换句话说,虽然这些域看起来明显不同,例如:在 k 1 k_1 k1中, z 3 . z = z + 1 z^3.z=z+1 z3.z=z+1;在 k 2 k_2 k2中, z 3 . z = z 3 + 1 z^3.z=z^3+1 z3.z=z3+1;在 k 3 k_3 k3中, z 3 . z = z 3 + z 2 + z + 1 z^3.z=z^3+z^2+z+1 z3.z=z3+z2+z+1,但是它们具有相同的阶数,因此是同态的,只是元素具有不同的标记。K1和k2之间的同构性可以通过找到 c ∈ k 2 c\in k_2 c∈k2,c满足 f 1 ( c ) ≡ 0 m o d f 2 f_1(c)\equiv 0\mod f_2 f1(c)≡0modf2,然后扩展 z ⟼ c z\longmapsto c z⟼c到同态 φ : k 1 → k 2 \varphi : k_1 \to k_2 φ:k1→k2来构造。 对c的选择可以为 z 2 + z z^2+z z2+z, z 2 + z + 1 z^2+z+1 z2+z+1, z 3 + z 2 z^3+z^2 z3+z2和 z 3 + z 2 + 1 z^3+z^2+1 z3+z2+1。
在二元域中,多项式可以泛化为如下扩展域形式。
设p为质数, m ≥ 2 m\ge 2 m≥2, F p [ z ] F_p[z] Fp[z]表示以z为自变量,系数属于 F p F_p Fp的一元多次方程。设 f ( z ) f(z) f(z)为一个幂为m( m ∈ F p [ 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)中的多项式的乘积。在 F p m F_{p^m} Fpm中,元素是 F p [ z ] F_p[z] Fp[z]的多项式,且幂不大于m-1。
域元素的加法通常表示为多项式的和,其系数运算在 F p F_p Fp中执行。域元素的乘法表示为多项式 f ( z ) f(z) f(z)的模。
例4(扩展域) 设p=251,m=5, f ( z ) = z 5 + z 4 + 12 z 3 + 9 2 + 7 f(z)=z^5+z^4+12z^3+9^2+7 f(z)=z5+z4+12z3+92+7是 F 251 [ z ] F_{251}[z] F251[z]中的不可约多项式,将 F 25 1 5 F_{251^5} F2515设为约化多项式,可知 F 251 [ z ] F_{251}[z] F251[z]的阶为 25 1 5 251^5 2515,且 F 25 1 5 F_{251^5} F2515的元素为 F 251 [ z ] F_{251}[z] F251[z]中的多项式,幂不大于4。
以下是有限域 F 25 1 5 F_{251^5} F2515中的算数运算,其中, a = 123 z 4 + 76 z 2 + 7 z + 4 a=123z^4+76z^2+7z+4 a=123z4+76z2+7z+4, b = 196 z 4 + 12 z 3 + 225 z 2 + 76 b=196z^4+12z^3+225z^2+76 b=196z4+12z3+225z2+76。
1 加法: a + b = 68 z 4 + 12 z 3 + 50 z 2 + 7 z + 179 a+b=68z^4+12z^3+50z^2+7z+179 a+b=68z4+12z3+50z2+7z+179
2 减法: a − b = 178 z 4 + 239 z 3 + 102 z 2 + z z + 179 a-b=178z^4+239z^3+102z^2+z^z+179 a−b=178z4+239z3+102z2+zz+179
3 乘法: a ⋅ b = 117 z 4 + 151 z 3 + 117 z 2 + 182 z + 217 a\cdot b=117z^4+151z^3+117z^2+182z+217 a⋅b=117z4+151z3+117z2+182z+217
4 除法: a − 1 = 109 z 4 + 111 z 3 + 250 z 2 + 98 z + 85 a^{-1}=109z^4+111z^3+250z^2+98z+85 a−1=109z4+111z3+250z2+98z+85
当 k k k是一个关于有限域 K K K操作的数据域时, K K K的子集 k k k即为 K K K的子域, K K K称为 k k k的一个扩展域。有限子域较为容易地特征化。设 F p m F_{p^m} Fpm是一个有限域,对于m的每个正除数 l l l,都具有一个阶为 p l p^l pl的子域,其元素满足 a p l = a a^{p^l}=a apl=a,且 a ∈ F p m a\in F_{p^m} a∈Fpm。反过来,对于一些m的正除数 l l l,每个 F p m F_{p^m} Fpm的有限子域的阶为 p l p^l pl。
F q n F_{q^n} Fqn是一个建立在有限子域 F q F_q Fq基础上的向量空间。其中,空间中的向量是 F q n F_{q^n} Fqn的元素,其标量是 F q F_q Fq的元素,向量的和是 F q n F_{q^n} Fqn的加法运算,标量的乘积是 F q n F_{q^n} Fqn中 F q F_q Fq元素的乘法运算,向量空间是由不同基数构造的n维空间。
如果 B = b 1 , b 2 , . . . , b n B={b_1,b_2,...,b_n} B=b1,b2,...,bn表示一个基数, a ∈ F q n a\in F_{q^n} a∈Fqn唯一表示为 F q F_q Fq元素的n元组 ( a 1 , a 2 , . . . , a n ) (a_1,a_2,...,a_n) (a1,a2,...,an),其中 a = a 1 b 1 + a 2 b 2 + . . . + a n b n a=a_1b_1+a_2b_2+...+a_nb_n a=a1b1+a2b2+...+anbn。在以上有限域 F p m F_{p^m} Fpm的多项式基中, F p m F_{p^m} Fpm是在 F p F_p Fp上的m维向量空间, ( z m − 1 , z m − 2 , . . . , z 2 , z , 1 ) (z^{m-1},z^{m-2},...,z^2,z,1) (zm−1,zm−2,...,z2,z,1)是建立在 F p F_p Fp上的 F p m F_{p^m} Fpm的基数。
有限域 F q F_q Fq的非0元素 F q ∗ {F_q}^* Fq∗构成一个乘法循环群。此时元素 b ( b ∈ F q ∗ ) b(b\in {F_q}^*) b(b∈Fq∗)存在,称为生成元。生成元满足以下关系式: F q ∗ = { b i : 0 ≤ i ≤ q − 2 } {F_q}^*= \{ b^i:0\le i\le q-2 \} Fq∗={bi:0≤i≤q−2}。 a ∈ F q ∗ a\in {F_q}^* a∈Fq∗的阶是 a t = 1 a^t=1 at=1的最小的正整数 t t t。 F q ∗ {F_q}^* Fq∗是一个循环群,且 t t t为 q − 1 q-1 q−1的除数。