0. 課程概述
Mathematical Foundations of Information Security
0.0. 三個數學難題
- 大整數因數分解問題:
由兩個質數p,q之乘積n來分解出p,q很難,RSA公開密鑰算法的理論基礎; - 離散對數問題:
已知有限循環群G=< g > {g^n|k = 0, 1, 2,...},及其生成元g和階n = |G|,很難由h=g^x,計算出整數x; - 橢圓曲線離散對數問題:
已知有限域下F_p上的橢圓曲線群E(F_p) = {(x,y)|<-F_p * F_p, y2=x3+ax+b,a,b<-F_p}|_|{O},及點P=(x,y)的階為一個大素數。給定整數a,計算點aP=(x_a,y_a)=Q很容易,給定Q,計算整數x,使得xP=Q很難。
0.1. 課程主要內容
- 近世代數
群,子群,交換群,循環群,群上的離散對數;環,子環,交換環,整數環,多項式環;域,子域,有限域,有限域上的多項式。 - 數論
整除性,同余性,二次剩余,素數,因子分解,同余式,歐拉定理,擴展的歐幾里得算法和中國剩余定理。 - 數理邏輯
命題邏輯,謂詞邏輯,模態邏輯,邏輯與安全。
1. 近世代數基礎之群
1.1. 群的基本概念
集合上的運算
近世代數中的群、環、域的定義都是基于集合的,通過對集合上運算的約束,將集合構造稱具有不同特性的新對象。
集合: 具有共同屬性的事物的總體。
集合上的二元運算: 設S為集合,映射
n:{ S * S -> S
{ (x,y) -> z
稱為集合上的運算。
群:
設三元組(G,·,1)中G為集合,·為集G上的二元運算,1為G中的一個元。若(G,·,1)滿足:
- G1(乘法結合律):a·(b·c)=(a·b)·c,a,b,c <- G;
- G2(單位元):1·a=a·1=a,a<-G;
- G3(逆元):對a<-G,有a'<-G使得a·a'=a^'·a=1。
則稱(G,.,1)為群,簡稱群G,1稱為群G的單位元,a'稱為a的逆元。
若(G,.,1)滿足G4(交換律):a·b=b·a,a,b<-G,則稱G為交換群。
若(G,.,1)僅滿足G1,G2,則稱G為有單位元的半群。
若(G,.,1)滿足G1,G2,G4,則稱G為有單位元的交換半群。
1.2. 群的例子
例1:
設(Z,+,0)中Z為整數集,+為整數的加法,0為整數零,驗證
- (Z,+,0)中有(a+b)+c=a+(b+c),G1滿足;
- a+0=0+a=a,G2滿足;
- a+(-a)=(-a)+a=0,(-a)表示a對應的負整數,G3滿足;
- a+b=b+a,G4滿足。
從而(Z,+,0)為交換群。
例2:
設(Q,·,1)中的Q為零以外的所有有理數的集合,·為有理數乘法,1為整數1,則(Q*,·,1)滿足G1,2,3,4為交換群。
例3:
設GL_n(R)為n階實數可逆方陣的集合,.為兩矩陣的乘法,1為單位矩陣,則(GL_n(R),·,1)為群。GL_n(R)稱為實數域R上n階一般線性群。
例4:
在希爾密碼(Hill Cipher)中加密變換為
(y_1y_2...y_m) = (x_1x_2...x_m)Mmod26
這里密鑰M <- GL_m(Z_26),x_i,y_i <- Z_26,Z_26 = {0,1,...,25},x_i為明文,y_i為密文。(式中右邊的行向量(x_1x_2...x_m)與矩陣M乘是先進行通常的實數行向量與實數矩陣乘再對所得行向量的每一分量取模26)
加密過程,字母AB...Z分別對應0,1,...,25,加密前先將明文字母串變換成Z_26上的數字串,然后再按上述表達式對每次m個數字的將明文數字串變換成密文數字串,最后將密文數字串變換成密文字母串。
eg:
定理(線性代數),
設A = (A_ij)為一個定義在Z_26上的n · n矩陣,若A在mod26上可逆,則有:
A^-1 = (detA)_-1 A^(mod26)
這里,A^是A的伴隨矩陣。
1.3. 子群
定義,設定(G,·,1)為群,A為G的子集合。若1 <- A且(A,·,1)構成群,則稱A為G的子群,并記為 A <_ G。
例:
證明nZ={0,+-n,+-2n...}為整數群(Z,+,0)的子群。
證:
- nZ 包含于Z
- 0 <- A
- (nZ,+,0)為群
1.4. 循環群
定義,若群G的每一個元素都能表成一個元素a的方冪,則G稱為由a生成的循環群,記作G=< a >,a稱為循環群G的生成元。
根據元素的階的性質,循環群G=< a >共有兩種類型:
- 當生成a是無限階元素,則G稱為無限階循環群。
- 如果a的階位n,即a^n=1,那么這時G=< a >=< 1,a,a2,...,a(n-1) >,則G稱為有a所生成的n階循環群,注意此時1,a,a2,...,a(n-1)兩兩不同。
1.5. 對稱群
定義,S={1,2,3,...,n},映射b:S--S是可逆的,則稱b為S上的置換;
定義,群體S上的置換所成的集合記為S_n,命1表示恒等置換,在S_n中以b(i)表示i在置換b下的像,定義S_n中的兩元素q與p的乘積為
[b·q](i)=b(q(i))
則(S_n,·,1)成群,群S_n稱為n次對稱群。
b為:
b
q為:
q
&為:
&
<-為:
<-
例1:
在置換密碼(Permutation Cipher)中加密變換為
(y_1 y_2 ... y_m) = (b(x_1) b(x_2) ... b(x_m))
這里x_i,y_i <- S={1,2,...,m},x_i為明文,y_i為密文,b <- S_m,S_m為{1,2,...,m}上m次對稱群。加密時按上述表達式每次m個字符的將明文串變換為密文串。
e.g.:
例2
在代換密碼(SUbstitution Cipher)中加密變換為
y=b(x)
這里x,y <- & = {A,B,...,Z},x為明文,y_i為密文,b <- S_(sy&),
b <- S_(sy&)為&上的對稱群。加密時按上述表達式逐字符的將明文串變換為密文串。
e.g.:
字符的出現頻率未發生改變,頻率攻擊破解。
1.6. 群上的離散對數
不同代數系統中都有各自的對數(離散對數)問題,有的可以找到快速算法,有的則尚未找到,這一類可以用來構造密碼學算法或協議。
例:Z_n^*素數個素數
2. 近世代數基礎之環1
2.1. 環的定義
定義,設五元組(R,+,·,0,1)中,R為集合,+與·為集合R上的二元運算,0與1為R中的元。若(R,+,·,0,1)滿足:
- R1(加法交換群):(R,+,0)是交換群
- R2(乘法半群):(R,·,1)是有單位元的半群
- R3(乘法對加法的分配律):
a·(b+c) = a·b+a·c,(b+c)·a=b·a+c·a,a,b,c <- R
則稱(R,+,·,0,1)為環,簡稱環R。