1.1 密碼學:PKI 對稱式加密, 非對稱式加密

1.古典密碼學:

        凱薩加密(Caesar):將每個字母的順序將後推固定單位如A->C B->D這樣的加密出來的密文是一篇無法辨認的文章帶其解密方式在蒐集完密文後會變得脆弱,暴力破解法可以在25次以內將其解密出來。 

        Monoalphabetic: 將每個字母對應至另一字母如A->B D->A這樣的加密方式算是凱薩加密的進階版本,它的運行方式高達26個階層,以單純的暴力破解法已經無法嘗試出來,但經過長是統計破解法卻可以順利並快速的將其破解。從圖中可以看到,音文章中字母出現的頻率是不一樣的,其中尤以母音出線機率為高,如果密文夠長,我們可以利用簡單的統計學並對應其出現機率極可以破譯。

        One-Time Pad: 如名稱所示,這是只能用一次的加密方法,,它的運作方式是產生出一個與文章相同長度的隨機密碼表,針對每一個字母的加密方式讓他無法破解號稱絕對安全,但其經過多次使用後還是有破解可能,所以密碼表只有一次的使用性。

             資訊隱藏:

將資料直接隱藏起來的一種加密方式,在進入計算機時代以前屬於高等加密法。 

1.      利用不可視的藥水撰寫資料,在旁人來說只是一張的白紙但卻是機密文件。

2.      將訊息隱藏在資料片段中,利用明文來隱藏密文,對無解密方式的人來說只是無意義的文章罷了

 而在進入計算機時代後資訊隱藏也是很重要的方式 

3.      利用影像或音效檔中的最低位元來隱藏訊息,這對於所有權的保障是很重要的,將自身簽章或者是證明身分方式是打入影音中以宣示所有權。

 

1. Symmetric  Key Cryptography(對稱金鑰密碼學):

Bob與Alice用相同的KEY

Attcks, Block Cipher:一次對一個區塊文字作加解密, 缺點是相同明文經由此法會產生相同密文,比如說"How do yo do?" 兩個do加密後會產生相同的密文,讓密碼分析者可藉此提升猜出原本明文的機會,我們會以chaining mode(鏈結模式)來加強這個弱點

Stream Cipher:一次對一個位元作加解密,但在實際情況下,此法太浪費時間與系統資源

CBC(Cipher-Block Chaining)(密文區段串接模式): 產生一組「初始向量」的碼與明文區段做XOR後,產生的密文當坐下一段明文區段的向量繼續做XOR。由於每一段明文都必須得知前一段的密文,因此無法同步將整個明文加密

ECB(Electronic Code Book),

CFB(Cipher Feedback),

OFB(Output feedback)

 

Feistel 加密演算法  

加密動作:                                    

  Li+1 = Ri 

  Ri+1 = Li ⊕ F(Ki+1Ri)   

解密動作:

  Li = Ri+1 ⊕ F(Ki+1Li+1)

  Ri = Li+1  

F :密鑰產生的子鑰

          1.DES(資料加密標準):將上述方式進行16次的加密方式,所使用的密鑰雖然只有一把,但在加密時所產生出的子鑰卻有16把之多。

       2. TDES(三次資料加密標準):將DES作三次,但是再使用同一把鑰匙卻會造成其脆弱性,顧我們採用2把鑰匙,先使用第一把進行一次DES再使用第二把進行DES最後再使用第一把進行DES


2. Public Key Encryption (公開金鑰加密: RSA algorithm)

公開金鑰加密:將密碼金鑰分成每個人都知道的公開金鑰(public  key),和只有讓本身知道的秘密金鑰(private key)

假設公開金鑰表示為A(),秘密金鑰為B(),某個人要和本身通訊,必須先取得公開金鑰然後使用已之的加密演算法來加密他的訊息m。也就是計算出 A(m),本身收到加密訊息之後再用本身的秘密金鑰和已之的解密演算法來解譯這個加密訊息,計算出B(A(m))。也可以對調加密和公開金鑰得到結果=>B(A(m)) = A(B(m)) = m

RSA algorithm :

RonRivestˋAdi Shamir和 Leonard Adleman 幾乎形同於公開金鑰密碼學 的同義詞

RSA的運作方式:

(1) 選擇公開金鑰和秘密金鑰:

選擇2大質數 p,q (數字越大越難破解但相對的編解碼也會花上較多時間)

再計算 n = pq,z = (p-1)(q-1)

再設立1數字a<n並且和Z沒有公因數(1除外)用於加密上

再取另一數字b滿足 ab-1剛好可以被Z整除用於解密上

公開金鑰變為數對(n,a),秘密金鑰為數對(n,b)

(2) 加密和解密演算法:

傳送訊息m的加密值c => c = m的a次方  mod  n 

解密接收訊息m用到秘密金鑰   => m = c 的b次方 mod  n

(3) RSA 結合 DES & AES:

當傳送者想一次傳送大量資訊時

傳送者選擇一DES金鑰可用於編碼資料稱為通訊金鑰(session key) ,Ks,

傳送者要通知接收者這DES使用的共享對稱金鑰

因此傳送訊息結合通訊金鑰的加密值變成c = Ks的a次方  mod  n

接收者解密後可得到 Ks 再用傳送者送過來的DES使用的共享對稱金鑰來解密