《數學之美》讀書筆記 (二)
密碼學作爲信息傳遞的一個重要分支,已經有兩千多年的歷史。無論是凱撒大帝的羅馬字母對應表,還是姜太公與周武王的陰符,都體現了密碼在信息傳遞中的重要作用,不過從現代密碼學的眼光來看,破譯這種密碼根本不需要密碼本,只需要多收集幾次情報就可以破譯出來了。但是,這種加密保護信息安全的方式卻被人們不斷傳承、發展,形成了以數學爲基礎的現代密碼學。
現代密碼學的加密原則:
1. 加密函數不應該根據幾個自變量和函數值就能推出函數本身
2. 密碼系統應該就算被所有人知道系統的運作步驟,仍然是安全的。
3. 系統必須可用,非數學上不可譯碼。
4. 系統不一定要保密,可以輕易落入敵人手中。
5. 密匙必須可以不經書寫的資料交換和記憶,且雙方可以改變密匙。
6. 系統可以用於電訊。
7. 系統可以轉移位置,它的功能必須不用經過幾個人之手纔可達到。
8. 系統容易使用,不要求使用者的腦力過份操勞或有很多的規則。
現代密碼學是專注於加密和解密兩個過程,公鑰密碼學就是其中一個代表。
在公鑰系統中,公鑰可以隨意流傳,但私鑰只有該人擁有。典型的用法是,其他人用公鑰來加密給該接受者,接受者使用自己的私鑰解密。 公開鑰匙算法大多基於計算複雜度上的難題,通常來自於數論。例如,RSA源於整數因子分解問題;DSA源於離散對數問題(表示看不懂)。
公開密鑰系統的簡單、靈活、可靠,使之成爲了最常用的加密系統。密碼學的最高境界是無論敵方獲取多少密文,也無法消除己方系統的不確定性,而這依靠的就是簡單的數學原理,數學儼然是密碼學的核心。
公鑰密碼學原理
1.對密文進行轉換使之變成明碼 如單詞caesar 用ascll碼錶示 caesar x=067097101115097114(每三位代表一個字母)
2.對明碼進行加密 這要求我們做一個密碼系統
1.找兩個很大的質數P和Q,越大越好,然後計算他們的乘積
N=P·Q
M=(P-1)·(Q-1)
2.找一個和M互質的整數E,也就是說M和E除了1以外沒有公約數。
3.找一個整數D,使得E·D除以M餘1,即E ·Dmod M=1
E是公鑰誰都可以用來加密,D是私鑰用於解密,乘積N是公開的
3.利用加密公式對X加密,得到密碼Y。
加密公式:X^E mod N= Y
4,利用解密公式對Y解密,得到X
Y^D mod N = X
其中的數學知識 費馬小定理