《密码编码学与网络安全原理与实践》
第二章 数论基础
欧几里得定理:用辗转相除法求最大公因子 g c d ( a , b ) = g c d ( b , a m o d b ) gcd(a,b) = gcd(b, a mod b) gcd(a,b)=gcd(b,amodb)
扩展欧几里得定理:得到 g c d ( a , b ) = x ∗ a + y ∗ b gcd(a,b) = x*a+y*b gcd(a,b)=x∗a+y∗b
费马小定理: a p − 1 ≡ 1 m o d p a^{p-1} \equiv 1 mod p ap−1≡1modp(a和p互素)
欧拉定理: a φ ( p ) ≡ 1 m o d p a^{\varphi(p)} \equiv 1 mod p aφ(p)≡1modp
欧拉函数:小于n且与n互素的正整数的个数。
φ ( p ) \varphi(p) φ(p)当p为素数时, φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p−1;
当 p = a ∗ b p = a*b p=a∗b时为 φ ( p ) = φ ( a ) ∗ φ ( b ) \varphi(p)=\varphi(a)*\varphi(b) φ(p)=φ(a)∗φ(b)
素性检测(Miller-Rabin概率算法):
TEST(n)
1.找出整数k,q,其中k<0,q是奇数,使(n-1=(2**k)*q);
2.随机选取整数a,满足1<a<n-1;
3.if a**q mod n = 1,then返回“不确定”;
4.for j=0 to k-1 do
5.if a**((2**j)*q) mod n = n-1,then返回“不确定”;
6.返回“合数”
中国剩余定理(孙子定理)(CRT):
对于
{
x
m
o
d
m
1
=
b
1
x
m
o
d
m
2
=
b
2
.
.
.
.
.
.
x
m
o
d
m
k
=
b
k
\begin{cases} x \mod m_1 =b_1 \\ x \mod m_2 = b_2 \\...... \\ x \mod m_k = b_k \end{cases}
⎩
⎨
⎧xmodm1=b1xmodm2=b2......xmodmk=bk
计算
M
=
m
1
∗
m
2
∗
.
.
.
∗
m
k
;
M
i
=
M
m
i
;
M
i
′
≡
M
i
−
1
m
o
d
m
i
;
M=m_1 * m_2 *... * m_k;M_i=\frac{M}{m_i};M_i' \equiv M_i^{-1} \mod m_i;
M=m1∗m2∗...∗mk;Mi=miM;Mi′≡Mi−1modmi;
唯一解:
x
≡
b
1
M
1
M
1
′
+
b
2
M
2
M
2
′
+
.
.
.
+
b
k
M
k
M
k
′
m
o
d
M
x \equiv b_1M_1M_1' + b_2M_2M_2' +... +b_kM_kM_k' \mod M
x≡b1M1M1′+b2M2M2′+...+bkMkMk′modM
另一种形式: M = ∏ i = 1 k m i M=\prod_{i=1}^k m_i M=∏i=1kmi,其中 m i m_i mi是两两互素的,我们可以将 Z M Z_M ZM中任一整数对应一个 k k k元组,该 k k k元组的元素均在 Z m i Z_{m_i} Zmi中,这种对应关系即为 A ↔ ( a 1 , a 2 , . . . , a k ) A\leftrightarrow(a_1,a_2,...,a_k) A↔(a1,a2,...,ak),其中 A ∈ Z M A\in Z_M A∈ZM,对 1 ≤ i ≤ k , a i ∈ Z m i 1 \le i \le k,a_i \in Z_{m_i} 1≤i≤k,ai∈Zmi,且 a i = A m o d m i a_i=A \mod m_i ai=Amodmi
两个断言: A A A和其 k k k元组是一一对应的; Z M Z_M ZM中元素上的运算可等价于对应的 k k k元组上的运算。
离散对数问题:对于任何整数
b
b
b和素数
p
p
p的本原根
a
a
a,有唯一的幂
i
i
i使得
b
≡
a
i
m
o
d
p
,
0
≤
i
≤
(
p
−
1
)
b \equiv a^i \mod p,0 \le i \le (p-1)
b≡aimodp,0≤i≤(p−1)。
该指数
i
i
i成为以
a
a
a为底(模
p
p
p)的
b
b
b的离散对数,记作
d
l
o
g
a
,
p
(
b
)
dlog_{a,p}(b)
dloga,p(b)
求解离散对数的方法:常规算法、Giant-Step-Baby-Step算法、Index Calculus算法,都需要很大的运算量
求乘法逆元的两种方式:用费马小定理然后求 a p − 2 a^{p-2} ap−2或者用扩展欧几里得然后求 1 = a ∗ b − k ∗ p 1=a*b-k*p 1=a∗b−k∗p得到 b b b是 a a a模 p p p的逆元。
次数:由Euler定理,gcd(a, m)=1,有
a
φ
(
m
)
≡
1
m
o
d
m
a^{\varphi(m)} \equiv 1 \mod m
aφ(m)≡1modm,所以
a
0
,
a
1
,
a
2
,
.
.
.
a^0,a^1,a^2,...
a0,a1,a2,...序列一定出现周期性循环,将使得上述序列出现重复的最小正整数
k
k
k称为
a
a
a模
m
m
m的次数。一定有
k
∣
φ
(
m
)
k | \varphi(m)
k∣φ(m),但
k
=
φ
(
m
)
k= \varphi(m)
k=φ(m)不一定成立。
例:
m
=
8
m=8
m=8,则对于所有奇数
x
>
1
,
x
2
≡
1
m
o
d
8
x>1,x^2 \equiv1 \mod 8
x>1,x2≡1mod8,所以
x
x
x模8的次数为2
原根:如果 a a a模 m m m的次数为 φ ( m ) \varphi(m) φ(m),则称 a a a是模 m m m的一个原根。并非所有 m m m都有原根。原根个数为 φ ( φ ( m ) ) \varphi(\varphi(m)) φ(φ(m))个。
第五章 有限域
设
G
G
G是一个集合,定义了
G
×
G
→
G
G×G → G
G×G→G上的二元运算
•
•
•,若满足下面条件称
(
G
,
•
)
(G, •)
(G,•)为一个群:
封闭性:若
a
,
b
∈
G
a,b\in G
a,b∈G,则
a
•
b
∈
G
a•b \in G
a•b∈G;
结合律:若
a
,
b
,
c
∈
G
a,b,c \in G
a,b,c∈G,则
(
a
•
b
)
•
c
=
a
•
(
b
•
c
)
(a•b)•c=a•(b•c)
(a•b)•c=a•(b•c);
单位元:存在一个元素
e
∈
G
e \in G
e∈G,使得对于任意
a
∈
G
a \in G
a∈G有
e
•
a
=
a
•
e
=
a
e•a=a•e=a
e•a=a•e=a;
逆元:对于任意
a
∈
G
a \in G
a∈G,都存在一个元素
b
∈
G
b\in G
b∈G,使得
a
•
b
=
b
•
a
=
e
a•b=b•a=e
a•b=b•a=e。
一个群
(
G
,
•
)
(G, •)
(G,•)满足交换律,称作交换群。即
a
,
b
∈
G
a,b\in G
a,b∈G,有
a
•
b
=
b
•
a
a•b=b•a
a•b=b•a,交换群也称Abel群。
若群
(
G
,
•
)
(G, •)
(G,•)中元素的个数
∣
G
∣
|G|
∣G∣是有限的,称
G
G
G为有限群。
对于
G
G
G中的元素
a
a
a,计算
a
,
a
2
=
a
•
a
,
…
,
a
i
=
a
•
a
i
−
1
,
…
,
i
=
1
,
2
,
3
,
…
a,a^2=a•a,…,a^i=a•a^{i-1} ,…, i=1,2,3,…
a,a2=a•a,…,ai=a•ai−1,…,i=1,2,3,…
若存在
m
m
m使得
a
m
=
1
a^m=1
am=1,称
a
a
a的阶(order) 有限;否则
a
a
a的阶无穷
当
a
a
a的阶有限,使得
a
m
=
1
a^m=1
am=1的最小正整数
m
m
m称为元素
a
a
a的阶。
若
G
G
G的元素
a
a
a是
m
m
m阶元,则
1
,
a
,
a
2
,
a
3
,
.
.
.
,
a
m
−
1
{1,a,a^2,a^3,...,a^{m-1}}
1,a,a2,a3,...,am−1构成
G
G
G的子群;
称形如
1
,
a
,
a
2
,
a
3
,
.
.
.
,
a
m
−
1
{1,a,a^2,a^3,...,a^{m-1}}
1,a,a2,a3,...,am−1的群为循环群,元素
a
a
a是群的生成元。
定理:设群
G
G
G为阶为
n
n
n的群,那么它的所有的子群的阶都可以整除
n
n
n。
设 R R R是一个集合, • • •和 + + +是定义在 R R R上的两个运算。如果满足条件: ( R , + ) (R,+) (R,+)是一个Abel加法群,其单位元用 0 0 0表示;乘法对于加法满足分配律,则称 ( R , + , • ) (R,+, • ) (R,+,•)为一个环(Ring)
一个环
(
R
,
+
,
•
)
(R,+, • )
(R,+,•)满足
(
R
,
•
)
(R, • )
(R,•)可交换、有单位元、无零因子,则被称作整环。
一个环
(
F
,
+
,
•
)
(F,+, • )
(F,+,•)满足
(
F
−
{
0
}
,
•
)
(F-\{0\}, • )
(F−{0},•)是一个Abel乘法群,其单位元用
1
1
1表示,则被称作域(Field) 。
有限域:域中元素个数有限
有限域
G
F
(
p
)
GF(p)
GF(p):阶为p的有限域
有限域
G
F
(
2
n
)
GF(2^n)
GF(2n):阶为
2
n
2^n
2n的有限域
多项式运算,包括加法减法乘法
即使系数集是一个域,除法也不一定是整除
域
F
F
F上的多项式
f
(
x
)
f(x)
f(x)被称为不可约的(既约的)当且仅当
f
(
x
)
f(x)
f(x)不能表示为两个多项式的积。与整数相似,一个不可约多项式也被成为素多项式。
Euclid算法可以用来求两个多项式的最大公因式,扩展欧几里得算法可以用来求一个多项式的乘法逆元。
不可约多项式的根
g
g
g是这个不可约多项式定义的有限域的生成元。(当
f
(
b
)
=
0
f(b)=0
f(b)=0称
b
b
b为
f
(
x
)
f(x)
f(x)的根)