密码学-有限域
有限域
近世代數(shù)基礎
- 群
-
A5交換群:滿足交換律的群
-
循環(huán)群:如果群中每一個元素都是某個固定元素g屬于群G的冪g^k,則群G為循環(huán)群
-
環(huán)
-
交換環(huán):M4乘法的交換律
-
整環(huán):M5存在乘法單位元、M6無零因子
-
域F:滿足A1A5,M1M6且有M7乘法逆元
有限域
- 階為p的有限域GF§
- 給定一個素數(shù)p,元素個數(shù)為p的有限域GF§被定義為整數(shù){0,1,……,p-1}的集合Zp,其運算為模p的算術運算
- 是一個交換環(huán)
- Zn中某一整數(shù)有乘法逆元,當且僅當該整數(shù)與n互素
- 若n為素數(shù),則Zn中所有非零整數(shù)都與n互素,所以Zn中所有非零整數(shù)都有乘法逆元。
- 在GF(p)中秋乘法逆元
- a,b互素,則b有模a的乘法逆元
- a是素數(shù)并且b<a,則a和b互素,且其最大公因子為1
- 用擴展歐幾里得算法:求b在a下的逆元即求擴展歐幾里得算法中的y
-
多項式運算
-
普通多項式運算:
- f(x)是定義在系數(shù)集S上的n次多項式
-
- f(x)是定義在系數(shù)集S上的n次多項式
-
系數(shù)在Zp中的多項式運算
-
考慮幾個系數(shù)集合S的除法運算5/3
- 如果S是有理數(shù)集合(域),那么結(jié)果可與簡單表示成5/3,這是S中的一個元素
- 如果S是域Z7,此時5/3 = (5*3^-1)mod 7 = 4。一定能整除
- 如果S是整數(shù)集(是環(huán)但不是域),那么結(jié)果商1余2
-
多項式除法
-
系數(shù)集是一個域,多項式除法也不一定能整除:多項式會產(chǎn)生一個商式和一個余式
-
n次多項式f(x)和m次多項式g(x),(m<n),如果g(x)除f(x)的到一個商式q(x)和一個余式r(x),則滿足:
f(x) = q(x)*g(x)+r(x)
-
-
多項式模運算:與整數(shù)運算相似:可以寫成:r(x) = f(x)mod g(x)
-
GF(2)上的多項式
- 加法和減法相當于異或
- 乘法相當于邏輯與
-
素多項式:當且僅當f(x)不能表示為兩個多項式的積,域F上的多項式被稱為不可約的
-
最大公因式:通過歐幾里得算法可求,例:
-
-
有限域GF(2n):有限域的元素個數(shù)必須為pn,其中p為素數(shù),n為正整數(shù)
-
多項式模運算:
-
有限域構造運算:
- 遵循普通多項式運算規(guī)則
- 系數(shù)運算以p為模,即遵循有限域Zp上的運算規(guī)則
- 如果乘法運算的結(jié)果次數(shù)大于n-1的多項式,那么必須將其除以一個次數(shù)為n的既約多項式m(x)并取余式
-
-
多項式剩余類集合
-
多項式的逆元
- f(x)a(x)+m(x)b(x) = 1,兩邊同時模上m(x)得知f(x)的逆就是a(x)
-
構造有限域GF(2^3)
- 既約多項式:x3+x2+1和x^3+x+1
- 選擇后者則,
-
求乘法逆元:給定既約多項式a(x)和模的有限域元素b(x),則其乘法逆元滿足
b(x)w(x)=1moda(x)b(x)w(x) = 1 mod a(x) b(x)w(x)=1moda(x)
? 使用擴展歐幾里得算法
-
加快多項式乘法:多項式表示成一個n位的二進制數(shù)
-
GF(2^n)加法、減法:二進制異或操作
-
GF(2^n)乘法:
-
一般地
xnmodp(x)=p(x)?xnx^n mod p(x) = p(x)-x^n xnmodp(x)=p(x)?xn -
f(x)=b7x7+b6x6+...+b1x+b0x?f(x)=b7x8+b6x7+...+b1x2+b0xx?f(x)modm(x)=m(x)?b7x8+b6x7+...+b1x2+b0x表達為二進制形式:x?f(x)=b6b5b4b3b2b1b00如果b7=0x?f(x)=b6b5b4b3b2b1b00異或00011011如果b7=1f(x) = b_7x^7+b_6x^6+...+b_1x+b_0 \\ x*f(x) = b_7x^8+b_6x^7+...+b_1x^2+b_0x\\x*f(x) mod m(x) = m(x)-b_7x^8+b_6x^7+...+b_1x^2+b_0x \\表達為二進制形式: \\x*f(x) = b_6b_5b_4b_3b_2b_1b_00~~~~如果b_7=0 \\x*f(x) = b_6b_5b_4b_3b_2b_1b_00異或00011011~~~~如果b_7=1 f(x)=b7?x7+b6?x6+...+b1?x+b0?x?f(x)=b7?x8+b6?x7+...+b1?x2+b0?xx?f(x)modm(x)=m(x)?b7?x8+b6?x7+...+b1?x2+b0?x表達為二進制形式:x?f(x)=b6?b5?b4?b3?b2?b1?b0?0????如果b7?=0x?f(x)=b6?b5?b4?b3?b2?b1?b0?0異或00011011????如果b7?=1
-
-
-
生成元
總結(jié)
- 上一篇: 新手算法学习之路----二分法Last-
- 下一篇: 浅析软件项目管理中十个误区(来自:htt