《圖解密碼技術(shù)》讀后總結(jié)

前言

最近工作中用到了加密相關(guān)的技術(shù)點(diǎn)沃缘,非常頭疼躯枢,常被公鑰加密、簽名等一系列概念搞的頭大槐臀,所以買來《圖解密碼技術(shù)》這本書锄蹂,想大概的梳理一下密碼技術(shù)的入門知識(shí)。

讀完之后對(duì)基本的密碼技術(shù)概念有了大概的了解峰档,所以寫下這篇博客來做一下讀后的總結(jié)败匹,希望可以幫到大家。

密碼技術(shù)的發(fā)展

這里咱們不談密碼學(xué)的具體發(fā)展軌跡讥巡,我們來回憶一下日常遇到的跟加密相關(guān)的技術(shù)掀亩,從最開始的對(duì)稱加密,到公鑰加密欢顷,再到混合加密系統(tǒng)槽棍,認(rèn)證簽名等,其實(shí)密碼技術(shù)一步步的發(fā)展都是為了解決一個(gè)個(gè)信息安全面臨的問題抬驴,也就是彌補(bǔ)上代(用上代這個(gè)詞可能不合適)加密方式的缺陷炼七。

咱們先對(duì)幾種加密方式做一個(gè)總的梳理〔汲郑看一下下面這個(gè)圖吧豌拙。

密碼學(xué)家一直在和信息交換過程中存在的中間人作斗爭(zhēng),從最開始的單純的為了防止竊聽使用對(duì)稱機(jī)密题暖,但是為了解決對(duì)稱加密存在的秘鑰配送問題而出現(xiàn)的公鑰加密按傅,解決了防竊聽,還有存在的信息被篡改的問題胧卤,中間者偽裝發(fā)送者的問題唯绍,甚至消息否認(rèn)的問題,每個(gè)問題都產(chǎn)生了對(duì)應(yīng)的解決方式枝誊,我們下面一一來說况芒。

機(jī)密性

對(duì)稱加密和公鑰加密(非對(duì)稱加密)

基本概念大家都是知道的,對(duì)稱加密是雙方使用相同的秘鑰進(jìn)行加密解密叶撒,我們常提到的DES绝骚,三重DES耐版,AES都是對(duì)稱密碼算法。我們應(yīng)該注意這三者都根據(jù)明文和秘鑰生成密文的算法皮壁。

但是對(duì)稱加密存在秘鑰配送問題椭更。就是我怎么樣把秘鑰給到跟我通信的人,當(dāng)然了兩個(gè)人直接見面通過U盤拷貝可以蛾魄,但是現(xiàn)實(shí)場(chǎng)景不允許我見到每一個(gè)跟我通信的人來配送秘鑰虑瀑,同時(shí)因?yàn)殡p方都是用同一個(gè)密碼,如果我們?cè)诰W(wǎng)絡(luò)上交換秘鑰滴须,被中間人獲取到秘鑰舌狗,那他就完全可以竊聽我們的通信了。所以就產(chǎn)生了公鑰加密扔水。

公鑰加密就是我生成一個(gè)秘鑰對(duì)痛侍,一公鑰一私鑰,公鑰和私鑰之間存在強(qiáng)烈的數(shù)學(xué)對(duì)應(yīng)關(guān)系魔市,書中有說到主届,但是畢竟我們數(shù)學(xué)功力薄弱,不太能很深的理解里面的數(shù)學(xué)關(guān)系待德,有興趣的大家可以自己查一下君丁。只要大家記住一個(gè)秘鑰對(duì),公鑰加密的只有對(duì)應(yīng)的私鑰能解密将宪,同時(shí)私鑰加密的也只有對(duì)應(yīng)的公鑰能解密绘闷。(這句話很重要)

我們?cè)谑褂霉€加密時(shí),私鑰自己保留较坛,公鑰公布出去印蔗,任何人都可以獲得到。這樣有人給我發(fā)消息丑勤,就可以使用我提供給他的公鑰進(jìn)行加密华嘹,然后密文只有我的私鑰可以解密,這樣就可以一定程度解決竊聽問題法竞。因?yàn)橹虚g人劫持到密文之后沒有私鑰來解密除呵。

RSA就是我們使用的公鑰密碼算法。

混合密碼系統(tǒng)

公鑰密碼的處理速度遠(yuǎn)遠(yuǎn)的低于對(duì)稱密碼爪喘。為了解決這個(gè)問題產(chǎn)生了混合密碼系統(tǒng)。

這個(gè)圖大家應(yīng)該能很容易看懂纠拔,偽隨機(jī)數(shù)生成器生成了會(huì)話密鑰秉剑,其實(shí)也就是混合系統(tǒng)中的對(duì)稱加密密鑰,我們的明文直接用這個(gè)密鑰進(jìn)行加密稠诲,得到消息的密文侦鹏,因?yàn)槭菍?duì)稱加密所以說速度很快诡曙。

同時(shí)使用接受者的公鑰對(duì)這個(gè)會(huì)話密碼進(jìn)行加密,得到會(huì)話密碼的密文略水。同時(shí)組合這兩種密文价卤,發(fā)給接受者。

解密的圖我就不用上了渊涝,大家可以反推一下慎璧,接受者先使用自己的秘鑰解密會(huì)話密碼密碼,得到會(huì)話密碼的明文跨释,然后在使用這個(gè)密碼解密消息胸私。也許有小伙伴會(huì)說,這不是也使用到了公鑰加密嘛鳖谈,怎么速度不也慢岁疼?公鑰加密來加密一個(gè)會(huì)話密碼肯定比加密通信的消息的工作量小啊 ~

這里要注意的是,在每次通信中缆娃,會(huì)話密碼對(duì)會(huì)變的捷绒,所以我們的主要任務(wù)還是要保證私鑰的安全,因?yàn)檫@個(gè)會(huì)話密碼如果泄露只是影響到了一次通信贯要,但是私鑰如果泄露暖侨,所有的通信就會(huì)被破譯了。

公鑰加密問題

公鑰加密也存在中間人攻擊問題郭毕,比如你的朋友在向你索要你的公鑰的時(shí)候被人監(jiān)聽它碎,在你給朋友發(fā)送公鑰時(shí),中間人截獲到你的公鑰显押,同時(shí)把自己的公鑰發(fā)給了你的朋友扳肛,這時(shí)你的朋友收到的公鑰就是中間人的了。然后你的朋友給你發(fā)了一個(gè)“我喜歡你”乘碑,然后用中間人的公鑰進(jìn)行了加密挖息,在發(fā)送消息給你的時(shí)候,中間人依然可以劫持到兽肤,然后他用自己的私鑰解密出來了明文“我喜歡你”套腹,再用他劫持到的你的公鑰給你發(fā)了一條“我討厭你”,然后收到消息并解密的你........ 大家應(yīng)該明白我的意思了资铡,這類問題的解決方式下面會(huì)說到电禀。

完整性和認(rèn)證

單向散列函數(shù)

我們有一個(gè)文件需要保存,但是一頓時(shí)間之后在用的時(shí)候笤休,我們?cè)趺礃域?yàn)證這個(gè)文件是否被人篡改過尖飞?

有一個(gè)方法就是我把文件拷貝到U盤里面,隨身攜帶,但是如果文件很大呢政基,每次這樣是不是很不方便贞铣。這樣就用到了單向散列函數(shù)。

單向散列函數(shù)有一個(gè)輸入一個(gè)輸出沮明,輸入稱為消息辕坝,輸出稱為散列值。單向散列函數(shù)也稱為信息摘要函數(shù)荐健,哈希函數(shù)或者雜湊函數(shù)酱畅。比如我們熟悉的SHA-1SHA-256等SHA開頭的那一些摧扇。當(dāng)然了這里的消息不一定是非要是文字圣贸,也可以是圖像音視頻文件,畢竟所有文件最終都是二進(jìn)制扛稽。

這樣我們就不需要保存文件了吁峻,只要保存了散列值,然后對(duì)比散列值就可以了在张。

消息認(rèn)證碼 (MAC)

完整性解決消息是否被篡改的問題用含,消息認(rèn)證指的是“消息來自正確的發(fā)送者”這一性質(zhì)。

其實(shí)很容易理解帮匾,就是雙方使用共享密鑰啄骇,然后利用HMAC此類使用單向散列函數(shù)構(gòu)建消息驗(yàn)證碼的方法,對(duì)通信的消息計(jì)算出MAC值瘟斜,然后把消息和MAC值一起傳遞缸夹,再接收放使用共享密鑰也計(jì)算出MAC值,然后對(duì)比來認(rèn)證螺句。

消息認(rèn)證碼也有問題虽惭,例如“第三方證明”和“防止否認(rèn)”,這些大家可以自己去上網(wǎng)查一下解釋的列子蛇尚,這種東西舉例子來說更容易懂芽唇,占用篇幅太大,本文省略取劫。

數(shù)字簽名

數(shù)字簽名大家可以當(dāng)做是現(xiàn)實(shí)中的蓋章匆笤,使用數(shù)字簽名可以識(shí)別篡改和偽裝,還可以防止否認(rèn)谱邪。

簽名和驗(yàn)簽

其實(shí)簽名和驗(yàn)簽還是用到我們的公鑰加密炮捧。上面我們提到過公鑰和私鑰之間的關(guān)系,公鑰加密私鑰解密惦银,同時(shí)私鑰加密也只能用它對(duì)應(yīng)的公鑰解密咆课。私鑰加密其實(shí)就是簽名灌砖,對(duì)應(yīng)公鑰解密也就是驗(yàn)簽。因?yàn)樗借€只有一個(gè)人持有傀蚌,所以使用該私鑰加密的消息相當(dāng)于被該使用者簽名,同時(shí)我們使用它對(duì)應(yīng)的公鑰如果能正確的解密蘸吓,那就肯定消息是這個(gè)人發(fā)送的善炫,這樣也就實(shí)現(xiàn)了防否認(rèn)。

下面是數(shù)字簽名方法

不多做解釋了库继,消息明文和簽名完之后的密文一起發(fā)送箩艺,這樣既可以防篡改又可以防否認(rèn)了。

上面這種方法是對(duì)消息直接進(jìn)行簽名宪萄,如果消息過大會(huì)非常的耗時(shí)艺谆,這樣我們可以使用對(duì)散列值進(jìn)行簽名的方法來代替對(duì)消息直接簽名。

好的拜英,到這時(shí)我們說到數(shù)字簽名基本解決了很多問題静汤,識(shí)別篡改和偽裝,還可以防否認(rèn)居凶,但是我們使用數(shù)字簽名要有一個(gè)大前提虫给,那就是用于驗(yàn)證簽名的公鑰必須屬于真正的發(fā)送者!

這樣是不是感覺進(jìn)入到了死循環(huán)呢侠碧,解決了一堆的問題之后抹估,回到了公鑰的合法性這個(gè)問題上。這就要使用證書了弄兜。

證書

公鑰證書和我們的現(xiàn)實(shí)中的證件類似的药蜻,都包含姓名、組織替饿、郵箱语泽、地址等個(gè)人信息,以后屬于此人的公鑰盛垦,并由認(rèn)證機(jī)構(gòu)施加數(shù)字簽名湿弦。只要看到公鑰證書,我們就可以知道認(rèn)證機(jī)構(gòu)認(rèn)定此公鑰屬于此人腾夯。

下面給一個(gè)簡(jiǎn)單的例子吧

也許會(huì)有人問颊埃,那怎么確認(rèn)這個(gè)認(rèn)證機(jī)構(gòu)是不是權(quán)威的呢?

確實(shí)會(huì)有這種問題蝶俱,認(rèn)證也不簡(jiǎn)單的發(fā)一個(gè)證書而已班利,有一套完整的公鑰基礎(chǔ)設(shè)施(PKI)。

簡(jiǎn)單的提一下PKI包括三個(gè)要素榨呆,用戶罗标、認(rèn)證機(jī)構(gòu)和倉(cāng)庫(kù),也涉及到注冊(cè)證書和作廢證書一些邏輯,大家自己查閱吧闯割,我就不繼續(xù)說了彻消。

寫在最后

本片文章簡(jiǎn)單的梳理了一些密碼技術(shù)的基礎(chǔ),從對(duì)稱加密到數(shù)字簽名宙拉、證書宾尚,希望筆者講的還算清晰,也希望本文能給大家?guī)硪恍椭?/p>

密碼技術(shù)在我們的工作中有很多的應(yīng)用谢澈,比如眾所周知的SSL/TLS(在此之上承載http就是我們的https)煌贴。我們之后再找時(shí)間專門的來說一下https吧。

感謝大家讀完我的文章锥忿。

文章使用圖片來自《圖解密碼技術(shù)》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牛郑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敬鬓,更是在濱河造成了極大的恐慌淹朋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件列林,死亡現(xiàn)場(chǎng)離奇詭異瑞你,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)希痴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門者甲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砌创,你說我怎么就攤上這事虏缸。” “怎么了嫩实?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵刽辙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我甲献,道長(zhǎng)宰缤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任晃洒,我火速辦了婚禮慨灭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘球及。我一直安慰自己氧骤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布吃引。 她就那樣靜靜地躺著筹陵,像睡著了一般刽锤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朦佩,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天并思,我揣著相機(jī)與錄音,去河邊找鬼语稠。 笑死纺荧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颅筋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼输枯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼议泵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起桃熄,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤先口,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瞳收,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碉京,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年螟深,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谐宙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡界弧,死狀恐怖凡蜻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垢箕,我是刑警寧澤划栓,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站条获,受9級(jí)特大地震影響忠荞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帅掘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一委煤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锄开,春花似錦素标、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寓免。三九已至,卻和暖如春计维,著一層夾襖步出監(jiān)牢的瞬間袜香,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工鲫惶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜈首,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓欠母,卻偏偏與公主長(zhǎng)得像欢策,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赏淌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 工作或者面試過程中我們總會(huì)接觸到密碼相關(guān)的技術(shù)和問題祈秕,本篇文章是我對(duì)近期閱讀《圖解密碼技術(shù)》的總結(jié)挺勿,這本書很值得推...
    樂Coding閱讀 1,452評(píng)論 0 5
  • 先放一張以太坊的架構(gòu)圖: 在學(xué)習(xí)的過程中主要是采用單個(gè)模塊了學(xué)習(xí)了解的晨继,包括P2P,密碼學(xué)凰盔,網(wǎng)絡(luò),協(xié)議等掷贾。直接開...
    麻臉大叔閱讀 11,223評(píng)論 1 10
  • ## 密碼技術(shù)在網(wǎng)絡(luò)傳輸安全上的應(yīng)用 隨著互聯(lián)網(wǎng)電子商務(wù)和網(wǎng)絡(luò)支付的飛速發(fā)展睛榄,互聯(lián)網(wǎng)安全已經(jīng)是當(dāng)前最重要的因素之一...
    進(jìn)撃超人閱讀 1,643評(píng)論 0 1
  • 前言 文中首先解釋加密解密的一些基礎(chǔ)知識(shí)和概念场靴,然后通過一個(gè)加密通信過程的例子說明了加密算法的作用,以及數(shù)字證書的...
    sunny沖哥閱讀 2,990評(píng)論 0 2
  • 數(shù)字證書原理 - 無恙 - 博客園 文中首先解釋了加密解密的一些基礎(chǔ)知識(shí)和概念港准,然后通過一個(gè)加密通信過程的例子說明...
    拉肚閱讀 1,663評(píng)論 0 3