遨遊密碼世界(二)

密碼工具箱

上一篇介紹了消息傳遞存在的問題:機密性完整性認證不能否認性。本篇介紹解決這些問題的方案,咱們形象的把它們統稱爲 密碼工具箱,工具箱裏的 工具 列舉以下:算法

  • 對稱加密: 解決 機密性 的工具;
  • 公鑰加密(也叫非對稱加密): 解決 機密性 的工具;
  • 單向散列函數 :解決 完整性 的工具

(接上文:遨遊密碼世界(一)安全

2、密碼學工具箱

1. 對稱加密

1)異或運算

層疊消融

最強大腦有個 層疊消融 的項目,本質上就是屬於密碼學中的對稱加密。函數

層疊消融 把兩個圖形重疊在一塊兒,相同的部分會消失,不一樣的部分會顯示。若是這麼說不太理解的話,能夠看下面的 異或 運算,和 加減 運算同樣簡單。工具

0 XOR 0 = 0;
0 XOR 1 = 1;
1 XOR 0 = 1;
1 XOR 1 = 0;

XOR+- 都是數學裏面的運算符號,叫作 異或運算符。它的規則是相同的數字作運算以後結果爲 0,不一樣的數字作異或運算以後結果爲 1。這裏便可看出 層疊消融 的本質即異或運算。加密

2)對稱加密的核心就是異或運算

隨機生成兩個相同位數的數字 01001100 和 10101010,對第一個數字記作 A,第二個數字記作 B,對它兩進行異或運算。code

0 1 0 0 1 1 0 0        // A
1 0 1 0 1 0 1 0        // B
1 1 1 0 0 1 1 0        // 結果

將結果 11100110 在與 B 作一次異或運算。視頻

1 1 1 0 0 1 1 0         // 結果
1 0 1 0 1 0 1 0         // B
0 1 0 0 1 1 0 0         // 第二次的結果 === A

第一次對 A 和 B 作 異或運算 能夠當作是 加密行爲圖片

// 加密過程
0 1 0 0 1 1 0 0        // A:消息
1 0 1 0 1 0 1 0        // B:密鑰
1 1 1 0 0 1 1 0        // 結果:密文,加密以後看不懂的東東

第二次對第一次運算的結果再與 B 作 異或運算 能夠當作是 解密行爲get

// 解密行爲
1 1 1 0 0 1 1 0         // 結果:密文
1 0 1 0 1 0 1 0         // B:密鑰
0 1 0 0 1 1 0 0         // A:密文經過密鑰處理以後又獲得密文 A

電腦裏的視頻,圖片,文本文件等若是要作加密,都是先轉化爲計算機識別的二進制數據,也就是 0 和 1 組成的數據,而後再作異或運算。數學

密鑰

這個過程 B(密鑰) 及其重要,加密時候使用它進行加密,解密也要使用它進行解密,若是你的密鑰泄露了,那麼別人就能夠垂手可得的破解你的加密信息。

3)當前使用的對稱加密算法

異或運算只是對稱加密的最底層,實際使用的對稱加密算法都是在這基礎上發展的,而且要複雜的多,這裏介紹這個是爲了之後吹逼的時候增長光環屬性。

前面介紹了異或運算加/解密消息,那麼加密算法如何理解呢。好比有個算法對消息進行 16 次異或操做,這是一種算法,另外一個將消息拆分兩半,只對其中一半進行加密,這又是一種加密算法。

**我的總結:**加密算法就是加密的具體行爲。好比上面使用異或運算加密中,異或加密這個行爲就是個算法。對於消息加密,只有同時知道 加密算法密鑰 這兩個東東才能正確獲得明文。

  • DES 對稱加密算法

DES 加密算法是 1977 年美聯邦使用的標準,在那個年代被政府和銀行普遍使用。

老外整出了加密算法以後,爲了驗證加密算法的安全性,會按期舉辦個密碼比賽邀請全世界的密碼學大師來破譯加密算法。在 1999 年舉辦的 DES challenge 第三次比賽中被人用了 22 個小時就給破譯了(在 1997 年舉辦的 DES challenge 第一次比賽就被人用 96 天給破譯了),自此以後安全性存在嚴重問題,新的加密算法應運而生。

  • 三重 DES 對稱加密算法

因爲 DES 存在安全性問題,不久 三重 DES 加密算法 就誕生了,在 DES 基礎上作細微修改,而且重複三次 DES 加密,因此叫 三重

固然,DES 底層作了 16 次異或運算,三重 DES 也就作了 48 次異或運算(不只僅作異或運算,還有其它行爲),運算次數變得更復雜,致使加/解密速度並不高。有了不爽的東西人們就會尋求替代品。

  • AES 對稱加密算法

1997 年的時候,米國標準化機構 NIST 對外海選新的加密算法,以求替代 DES 帶來的尷尬境遇。並提早指定了新的密碼算法的名稱就叫作 AES

直到 2000 年,在世界各地的密碼學專家競爭中,最終篩選出 15 個最終可能選擇的加密算法;這 15 個加密算法通過又一輪的生死搏殺,最終比利時密碼學家帶來的加密算法 Rijndael 成爲 AES 的最終選擇。

最在用的最多的對稱加密算法仍是 AES,固然沒有絕對安全的算法,被破解也是時間問題,只不過這個時間來的會比較晚一點。

4)對稱密碼實際應用中的缺陷

辦公室

你將用對稱密碼加密後的紙條扔給你的同事,他須要知道密鑰才能解密出明文,因爲大家都在一個辦公室裏,能夠很方便的告訴他密鑰是什麼(這裏舉例好傻,都能告訴他密鑰是啥了,怎麼不直接告訴他明文信息,只是舉例而已~~)。

若是你在上海,你的好朋友在北京,你用對稱加密給他寫了封信,你的好朋友須要密鑰,你只好將密鑰與信件一塊兒塞進信封寄給好朋友。這樣又顯得很傻,信件被任何人拿到均可以經過密鑰獲得明文,加密失去意義。

很不爽,去叫人

最初看到這個場景的時候,我沒忍住破口大罵,花了十分鐘讀到這裏原來是個自相矛盾的東東,純屬浪費時間。對稱加密的密鑰傳遞是個老大難的問題,但能夠經過其它技術彌補

2. 公鑰加密(也叫非對稱加密)






(未完待續,簡書不能設置文章順序,關於密碼工具箱其它工具還需查閱資料完善,這裏先發布文章佔個位置,避免後續文章切斷了遨遊密碼世界兩篇文章的連續性)

相關文章
相關標籤/搜索