在數論當中群(Group)是其中一種重要的概念,代數最基本由三種結構組成:群 Group, 環 Ring, 體 Field,而群作為最基本的代數結構,也是我們在密碼系統中常常使用的,故需要先了解群的定義對於後續密碼系統分析會比較方便
一個群由一個集合和運算元組成G=(S,⊙),集合S以及運算元⊙(這個意思表示任何運算元皆可,而我們在密碼系統內最常表達的是加法+與乘法*),而一個群需要滿足下列四個條件:
- (封閉性 Closure):Foreveryx,y∈S,x⊙y∈S ,對於任何元素x和y屬於S這個集合裡面,做任何的運算後該元素也應該要屬於這個集合內。
- (關聯性 Associativity):Foreveryx,y,z∈S,(x⊙y)⊙z=x⊙(y⊙z),對於任何元素x, y, z屬於這個集合S內,先運算x與y最後再與z運算,跟y與z做運算最後再跟x做運算的結果是一樣的
- (單位元素 Identity):Existe∈S such that for every x∈S,x⊙e=e⊙x=x,在集合S內存在一個單位元素e能夠讓集合內任何一個元素x與這個e做運算會得到x本身
- (反元素 Inverse):Foreveryx∈S,exist y∈S,x⊙y=e,對這個集合S的x元素存在一個y元素,而x元素與y元素進行運算能夠得到單位元素e
滿足以上四點的話該集合S就能構成一個群,而在多一項條件的話可以變成阿貝爾群(Abelian):
- (交換性 Commutative):Foreveryx,y∈S,x⊙y=y⊙x,對於任意x, y元素在S集合內,x對y進行運算跟y跟x進行運算結果都一樣
滿足群的條件,如果整個群裡面運算元使用加法,代表這是一個加法群,其定義如下:
- 運算元 ⊙→+
- 單位元素 Identity:0
- 反元素 inverse: ∃−x 對於x∈S
- multiple:kx=x+x+….+x
(Z,+):Z是整數集合−∞…−2,−1,0,1,2,…,∞,而+則代表在這個整數群內通通使用加法運算
(Zn,+):Zn=0,1,…,n−1,Zn是0到n-1的整數群並且使用加法運算在(mod n)的條件之下,(mod n)才能把條件限制在n−1之下
- ∥Zn∥=n,Zn這個整數群內的元素個數總共有n個,從 0 到 n−1
- −x→n−x:x−x=0 (mod n)→−x=n−x
(Zp[x],+):集合由多項式組成而係數在Zp集合內
滿足群的條件,如果整個群裡面運算元使用乘法,代表這是一個乘法群,其定義如下:
- 運算元 ⊙→∗
- 單位元素 Identity:1
- 反元素 Inverse:x−1
- multiple:xk=x∗x∗...∗x
(Q\0,∗):Q是有理數集合排除掉0,並且這個群使用乘法運算元
(Zn∗,∗):Zn∗=x∣x∈Zn,x⊥n,Zn∗代表這個整數群在(modn)之下,並且整個群都是使用乘法運算元
- ∥Zn∗∥=φ(n)
- x−1指的是x−1(modn)在x∈Zn∗的條件下