有限域上乘法
轉載自 :?http://blog.sina.com.cn/s/blog_4985a6a301000837.html
對于有限域GF(256),可以先計算出其乘法表。 ?
??在GF(256)中,加法就是異或運算,任意一個元素都可以表示成GF(2) ???上的一個最多7次的多項式, ?
??所以 ?
??0=000 ??就是0 ?
??1=001 ??就是1 ?
??2=0010就是x+0=x ?
??3=0011就是x+1 ?
??4=00100就是x^2 ?
??然后對于兩個變量 ?
??u,v ?
??可以先計算兩個對應多項式的乘積(需要注意的是加法是模2的,或者說是異或運算), ?
??比如 ?
??3*7=(x+1)*(x^2+x+1)=x*x^2+x*x+x+x^2+x+1=x^3+1 ??(模2運算中x+x=0 ??and ?x^2+x^2=0) ?
??所以3*7=9 ?
??在乘積得出來的多項式次數大于7時,我們需要對多項式在GF(2)上關于h(x)求余數,也就是 ?
??129*5=(x^7+1)*(x^2+1)=x^9+x^7+x^2+1 ?
??將上面的函數加上x*h(x)可以消去x^9,這里的h(x)是既約多項式x^8+x^4+x^3+x^2+1,(其實就是手工除法過程,只是現在每一次商總是0或1),所以 ?
??129*5=x^9+x^7+x^2+1+x^9+x^5+x^4+x^3+x=x^7+x^5+x^4+x^3+x^2+x+1 ?
??=0010111111=191 ?
??在得出乘法表以后,我們可以很快的從表格中對于每一個元素找到它的逆,于是逆運算也有了,除法就可以分解為乘法和逆運算。 ?
??有了加乘逆以后(對于GF(2^n)減法同加法沒有分別) ?
??就可以使用手工除法了?
總結
- 上一篇: 网络定位-能定位到国家省份市区县街道
- 下一篇: jstl c:choose、c:when