遨游密碼世界(二)

密碼工具箱

上一篇介紹了消息傳遞存在的問題:機密性、完整性認證、不可否認性。本篇介紹解決這些問題的方案,我們形象的把它們統(tǒng)稱為 密碼工具箱,工具箱里的 工具 列舉如下:

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

(接上文:遨游密碼世界(一)

二、密碼學(xué)工具箱

1. 對稱加密

1)異或運算

層疊消融

最強大腦有個 層疊消融 的項目,本質(zhì)上就是屬于密碼學(xué)中的對稱加密。

層疊消融 把兩個圖形重疊在一起,相同的部分會消失,不同的部分會顯示。如果這么說不太理解的話,可以看下面的 異或 運算,和 加減 運算一樣簡單。

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

XOR+、- 都是數(shù)學(xué)里面的運算符號,叫做 異或運算符。它的規(guī)則是相同的數(shù)字做運算之后結(jié)果為 0,不同的數(shù)字做異或運算之后結(jié)果為 1。這里即可看出 層疊消融 的本質(zhì)即異或運算。

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

隨機生成兩個相同位數(shù)的數(shù)字 01001100 和 10101010,對第一個數(shù)字記做 A,第二個數(shù)字記做 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        // 結(jié)果

將結(jié)果 11100110 在與 B 做一次異或運算。

1 1 1 0 0 1 1 0         // 結(jié)果
1 0 1 0 1 0 1 0         // B
0 1 0 0 1 1 0 0         // 第二次的結(jié)果 === 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        // 結(jié)果:密文,加密之后看不懂的東東

第二次對第一次運算的結(jié)果再與 B 做 異或運算 可以看成是 解密行為 。

// 解密行為
1 1 1 0 0 1 1 0         // 結(jié)果:密文
1 0 1 0 1 0 1 0         // B:密鑰
0 1 0 0 1 1 0 0         // A:密文通過密鑰處理之后又得到密文 A

電腦里的視頻,圖片,文本文件等如果要做加密,都是先轉(zhuǎn)化為計算機識別的二進制數(shù)據(jù),也就是 0 和 1 組成的數(shù)據(jù),然后再做異或運算。

密鑰

這個過程 B(密鑰) 及其重要,加密時候使用它進行加密,解密也要使用它進行解密,如果你的密鑰泄露了,那么別人就可以輕而易舉的破解你的加密信息。

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

異或運算只是對稱加密的最底層,實際使用的對稱加密算法都是在這基礎(chǔ)上發(fā)展的,并且要復(fù)雜的多,這里介紹這個是為了以后吹逼的時候增加光環(huán)屬性。

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

個人總結(jié):加密算法就是加密的具體行為。比如上面使用異或運算加密中,異或加密這個行為就是個算法。對于消息加密,只有同時知道 加密算法密鑰 這兩個東東才能正確得到明文。

  • DES 對稱加密算法

DES 加密算法是 1977 年美聯(lián)邦使用的標準,在那個年代被政府和銀行廣泛使用。

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

  • 三重 DES 對稱加密算法

由于 DES 存在安全性問題,不久 三重 DES 加密算法 就誕生了,在 DES 基礎(chǔ)上做細微修改,并且重復(fù)三次 DES 加密,所以叫 三重

當然,DES 底層做了 16 次異或運算,三重 DES 也就做了 48 次異或運算(不僅僅做異或運算,還有其它行為),運算次數(shù)變得更復(fù)雜,導(dǎo)致加/解密速度并不高。有了不爽的東西人們就會尋求替代品。

  • AES 對稱加密算法

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

直到 2000 年,在世界各地的密碼學(xué)專家競爭中,最終篩選出 15 個最終可能選擇的加密算法;這 15 個加密算法經(jīng)過又一輪的生死搏殺,最終比利時密碼學(xué)家?guī)淼募用芩惴?Rijndael 成為 AES 的最終選擇。

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

4)對稱密碼實際應(yīng)用中的缺陷

辦公室

你將用對稱密碼加密后的紙條扔給你的同事,他需要知道密鑰才能解密出明文,由于你們都在一個辦公室里,可以很方便的告訴他密鑰是什么(這里舉例好傻,都能告訴他密鑰是啥了,怎么不直接告訴他明文信息,只是舉例而已~~)。

如果你在上海,你的好朋友在北京,你用對稱加密給他寫了封信,你的好朋友需要密鑰,你只好將密鑰與信件一起塞進信封寄給好朋友。這樣又顯得很傻,信件被任何人拿到都可以通過密鑰得到明文,加密失去意義。

很不爽,去叫人

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

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






(未完待續(xù),簡書不能設(shè)置文章順序,關(guān)于密碼工具箱其它工具還需查閱資料完善,這里先發(fā)布文章占個位置,避免后續(xù)文章切斷了遨游密碼世界兩篇文章的連續(xù)性)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 《圖解密碼技術(shù)》一書介紹了很多關(guān)于密碼的知識,通讀一遍需要不少時間。為了方便學(xué)習,我對書中關(guān)鍵的部分進行了總...
    咖枯閱讀 7,534評論 1 25
  • 重點:分組密碼的設(shè)計思想分組密碼的基本特點AES、DES密碼算法AES和DES各自組成、每部分的實現(xiàn)過程以及特點A...
    七八音閱讀 2,911評論 1 2
  • 0x01 目錄 常見編碼: ASCII編碼 Base64/32/16編碼 shellcode編碼 Quoted-p...
    H0f_9閱讀 13,476評論 2 17
  • 密碼編碼學(xué)與網(wǎng)絡(luò)安全 review lecture01 經(jīng)典加密技術(shù) 什么是安全,如何認識信息安全? 安全性是絕對...
    lucipher1987閱讀 2,677評論 1 1
  • 2017年12月1日星期五晴 下班回來孩子已經(jīng)吃過晚飯,都在做自己老師布置的作業(yè),我剛踏進門孩子都向我匯報說今天都...
    二六班王佳欣閱讀 219評論 0 0

友情鏈接更多精彩內(nèi)容