Hello,密碼學:第一部分护蝶,密碼學的基本概念

密碼學有著深刻的數(shù)學背景华烟,看似一門高高在上的貴族知識體系。能夠吧啦吧啦一些密碼學的名詞術(shù)語持灰,有助于迅速建立滿滿的逼格盔夜。

掌握密碼的鑰匙

因此,在這套筆記的第一部分堤魁,匯總一些基本的密碼學概念:

1)密碼
2)單向散列
3)消息認證碼
4)數(shù)字簽名
5)數(shù)字證書
6)偽隨機數(shù)生成器
7)密碼學工具箱
8)隱寫術(shù)
9)正確認知信息安全

為了方便理解喂链,定義幾個角色,后面會時不時的進行引用妥泉。其實椭微,他(她)們都是經(jīng)典密碼學著作中約定俗成的著名人物。

  • Alice:漂亮姑娘
  • Bob:帥氣小伙
  • Eve:偷窺癖涛漂,熱衷于竊聽通信內(nèi)容
  • Mallory:破壞王赏表,喜歡偽造信息,妨礙正常通信
  • Trent:可信的第三方
  • Victor:驗證者

基本概念一:密碼

Alice 和 Bob 正在熱戀中匈仗,難免發(fā)送一些肉麻的消息瓢剿。消息會在多臺通信設(shè)備間中轉(zhuǎn),很有可能被 Eve 偷看悠轩。于是 Alice 和 Bob 對消息進行了加密處理间狂,即使被 Eve 竊聽,其獲取的也是密文火架,無法得知具體的消息內(nèi)容鉴象。也就是說,密碼保證了信息的 機密性 何鸡。

從明文生成密文的步驟纺弊,稱為 加密算法 ,將密文還原為明文的步驟骡男,稱為 解密算法 淆游,加密算法和解密算法統(tǒng)稱為 密碼算法

密碼算法由兩個重要的部分組成,一個是計算步驟犹菱,一個是密鑰拾稳,基本原理如下圖所示:

密碼算法

在現(xiàn)代密碼算法思想中,密碼算法應(yīng)該可以公開腊脱,但密鑰必須嚴格保密访得。這就好比門鎖制造商會用相同方法批量生產(chǎn)門鎖,但每個門鎖都配套獨有的鑰匙陕凹,一旦鑰匙丟失悍抑,級別再強的門鎖也可以被輕易打開。

密碼算法分為 對稱密碼算法非對稱密碼算法 捆姜,后者也常常稱為 公鑰密碼算法 传趾,二者的本質(zhì)區(qū)別是 加密與解密過程是否使用相同的密鑰

對稱密碼算法:加密和解密時采用同一密鑰泥技,如下圖所示:

對稱密碼算法

非對稱密碼算法:加密和解密時采用不同密鑰浆兰,如下圖所示:

非對稱密碼算法

非對稱密碼算法體系是20世紀70年代出現(xiàn)的,而現(xiàn)代計算機和互聯(lián)網(wǎng)安全體系珊豹,很大程度是基于非對稱密碼算法體系構(gòu)建起來的簸呈。當然,現(xiàn)代安全體系往往會結(jié)合非對稱密碼算法和對稱密碼算法的優(yōu)勢店茶,形成了混合密碼算法體系蜕便。

基本概念二:單項散列

如果你仔細觀察,在一些提供軟件下載的網(wǎng)站中贩幻,除了提供二進制的目標文件轿腺,還往往聲明一個MD5或SHA字符串。這說明軟件發(fā)布者具備安全意識丛楚,擔心有人篡改其發(fā)布的軟件族壳,在其中植入一些惡意程序。這個字符串就是用單項散列函數(shù)計算出來的散列值趣些,散列值也被形象的稱為 “數(shù)據(jù)指紋” 仿荆。

現(xiàn)實生活中,偵查員通過將犯罪現(xiàn)場遺留的指紋與嫌疑人的指紋進行比對來確定是否存在關(guān)聯(lián)坏平,而計算機也可以利用數(shù)據(jù)指紋來確認兩段二進制數(shù)據(jù)是否完全一致拢操。我們不需要一一對比二進制數(shù)據(jù),只需要一一比對其數(shù)據(jù)指紋即可舶替。單項散列函數(shù)能夠保證不同的二進制序列產(chǎn)生不同的數(shù)據(jù)指紋 令境。

總結(jié)成一句話:單項散列函數(shù)保證的不是數(shù)據(jù)的機密性,而是數(shù)據(jù)的完整性顾瞪,或者說不可篡改性展父。

基本概念三:消息認證碼

消息認證碼(MAC返劲,Message Authentication Code)是一種能夠保證數(shù)據(jù)完整性和提供認證的密碼技術(shù),其主要作用是在保證數(shù)據(jù)完整性之外栖茉,確認 消息是否來自期望的通信對象

基本概念四:數(shù)字簽名

在通信的過程中孵延,保證了數(shù)據(jù)完整性吕漂,對通信對象進行了認證還不夠,通信雙方還可能對發(fā)送的消息進行 “否認” 尘应。比如 Alice 向 Bob 寫了一封信惶凝,但后來又有點后悔,謊稱“當初根本沒有寫過這封信”犬钢,這種行為就稱為“否認”苍鲜。

能夠確保完整性、提供認證并防止否認的技術(shù)玷犹,就是 “數(shù)字簽名” 混滔。顧名思義,就是對自己發(fā)送的內(nèi)容進行簽字歹颓,只不過采用的是密碼技術(shù)坯屿。Alice 在信的內(nèi)容之后簽上自己的名字發(fā)給 Bob,Bob 收到后對改簽名進行 簽名驗證 巍扛,驗證通過后领跛,就代表契約生效,Alice 事后也無法進行否認撤奸。

我之前參考大牛阮一峰的Blog吠昭,寫過一篇關(guān)于數(shù)字簽名和數(shù)字證書的筆記,文章鏈接為:《數(shù)字簽名與數(shù)字證書》

  1. Bob 有兩把鑰匙胧瓜,一把叫做公鑰矢棚,一把叫做私鑰。
  1. Bob 把公鑰給了他的朋友們贷痪,Pat幻妓、Doug、Susan 每人都有一把劫拢。
  1. Susan 想給 Bob 寫一封密信肉津,用 Bob 的公鑰進行加密即可。而 Bob 用私鑰進行解密舱沧。只要 Bob 的私鑰不泄漏妹沙,別人就無法打開 Susan 的這封密信。
  1. Bob 給 Susan 回信熟吏,為了說明這封信就是自己寫的距糖,需要給這封信加蓋一個印記玄窝,好比皇帝下的圣旨必須加印玉璽是一個道理:
  • 第一步,Bob 對回信內(nèi)容進行 Hash 計算悍引,生成 Digest(摘要)恩脂。這里要說明一下,一旦有人篡改了信件內(nèi)容趣斤,Hash 算法保證了摘要一定會發(fā)生變化俩块,而且也不可能通過摘要推算信件內(nèi)容。
  • 第二步浓领,Bob 用私鑰對這個摘要進行加密玉凯,生成了數(shù)字簽名。
  • 第三步联贩,Bob 把數(shù)字簽名添加到信件上漫仆,好比增加一句 “此致,XXX敬上”泪幌。
  • 第四步盲厌,Bob 把簽了名的信件發(fā)送給 Susan。

  • 第五步座菠,Susan 收到信件后狸眼,用 Bob 的公鑰解密數(shù)字簽名,得到信件摘要 A,同時也對信件內(nèi)容再進行 Hash 計算得到一份摘要 B,對比兩份摘要薪鹦,如果內(nèi)容完全一致怪得,證明信件內(nèi)容沒有被篡改過,而且確實由 Bob 發(fā)出。

基本概念五:數(shù)字證書

通過數(shù)字證書,能夠證實信件來源于可信的一方,然而炕倘,如果 Doug 想假冒 Bob 和 Susan 進行通信怎么辦?繼續(xù)沿用上一節(jié)的例子:

  1. Doug 可能會偷偷使用 Susan 的電腦翰撑,將 Bob 的公鑰換成自己的公鑰罩旋。而 Susan 沒有發(fā)覺使用的公鑰已經(jīng)是 Doug 的了,而 Doug 就用自己的私鑰進行上述的數(shù)字簽名過程眶诈,偽裝 Bob 與 Susan 進行通信涨醋。

  2. 而 Susan 終于發(fā)現(xiàn)事情不對勁,感覺自己使用的公鑰有問題逝撬,于是她想到一個辦法浴骂,希望 Bob 能夠到一個權(quán)威機構(gòu)對自己的公鑰進行公證,這個權(quán)威結(jié)構(gòu)也就是 “證書中心(Certificate Authority宪潮,簡稱CA)” 溯警。證書中心于是用自己的私鑰趣苏,對 Bob 的公鑰和一些相關(guān)信息一起加密,生成 "數(shù)字證書"(Digital Certificate)梯轻。

  1. Bob 拿到數(shù)字證書以后食磕,就可以放心了。以后再給蘇珊寫信喳挑,只要在簽名的同時芬为,再附上數(shù)字證書就行了。而 Susan 收到信件后蟀悦,也先用 CA 的公鑰解開數(shù)字證書,拿到經(jīng)過認證的公鑰氧敢,再用這個公鑰去驗證數(shù)字簽名日戈,以此來確認是否真的來自 Bob。

這就是數(shù)字證書作用孙乖。數(shù)字證書好比駕照浙炼,駕照上記錄了駕駛員的姓名、年齡唯袄、出生日期等信息弯屈,并由交管部門在上面蓋章,以示經(jīng)過權(quán)威部門鑒定恋拷,可以信任资厉。同理,數(shù)字證書也同樣記錄了姓名蔬顾、組織宴偿、電子郵箱、以及屬于此人的 公鑰 诀豁,并由權(quán)威的 認證機構(gòu)(Certification Authority窄刘,CA) 施加數(shù)字簽名,也就是說舷胜,權(quán)威認證機構(gòu)認定該公鑰的確屬于證書上記錄的人或組織娩践。

實際情況中,往往對數(shù)字證書申請者身份的認證烹骨,會由一個專門的 注冊機構(gòu)(Registration Authority翻伺,RA) 進行處理,以便讓 CA 能專注于數(shù)字證書的制發(fā)和維護展氓。RA 通過與金融機構(gòu)穆趴,如信用報告機構(gòu)進行合作,對申請人提供的業(yè)務(wù)和身份信息進行核實遇汞,核實通過后通知 CA 頒發(fā)相應(yīng)的證書未妹。

CA機構(gòu)

基本概念六:偽隨機數(shù)生成器

偽隨機數(shù)生成器(Pseudo Random Number Generator簿废,PRNG)是一種能夠模擬產(chǎn)生隨機數(shù)序列的算法。隨機數(shù)是密碼算法的重要技術(shù)基礎(chǔ)络它,承擔著 生成密鑰 的重要指責族檬。如果偽隨機數(shù)生成算法不好,就容易被竊聽者推測出來化戳,對通信的機密性產(chǎn)生威脅单料。

基本概念七:密碼學工具箱

“密碼學家的工具箱” 這個比喻出自布魯斯.施奈爾寫作的《網(wǎng)絡(luò)信息安全的真相》一書。如下圖所示点楼,密碼學的幾項技術(shù)在信息安全中發(fā)揮著至關(guān)重要的作用扫尖,解決了不同維度的威脅問題,讓我們再羅列一下這些技術(shù):

  • 對稱密碼
  • 非對稱密碼
  • 單項散列函數(shù)
  • 消息認證碼
  • 數(shù)字簽名
密碼學家的工具箱

基本概念八:隱寫術(shù)

為了安全的進行通信掠廓,人們進行了很多的發(fā)明换怖,而密碼學的本質(zhì)是一種讓信息變得無法解讀的技術(shù)。還有一種叫做隱寫術(shù)的技術(shù)蟀瞧,則走的是另外一個路徑沉颂,它不是讓消息內(nèi)容變得無法解讀,而是將真正的消息巧妙的進行隱藏悦污,是信息技術(shù)的“障眼法”铸屉。

舉一個小例子(抄自《圖解密碼技術(shù)》,結(jié)城浩):

-- 我們先準備一段話
-- 很容易看懂的就可以
-- 喜聞樂見的當然更好
-- 歡迎你嘗試將另一句話嵌在這段話中
-- 你會發(fā)現(xiàn)這其實就是一段隱寫術(shù)

隱寫術(shù)是一門古老的藝術(shù)切端,遠不是上面寫的這么簡單彻坛,是一個非常有意思的領(lǐng)域。將隱寫術(shù)與密碼技術(shù)相結(jié)合帆赢,揚長避短小压,能夠為帶來更強大的信息安全保障,后面有機會我再更深入的學習下椰于。

基本概念九:正確認知信息安全

這里寫的一些內(nèi)容可能會有悖于常識怠益,但細細品味后,更會覺得密碼學是一個有趣的領(lǐng)域瘾婿。

第一蜻牢、不要使用保密的密碼算法
關(guān)于秘密,歷史和生活告訴我們偏陪,越少的人知道抢呆,就越安全。然而笛谦,這個經(jīng)驗用在密碼學中卻不適用抱虐,主要有兩個原因:

  1. 密碼的算法早晚會公諸于世,一旦到了那一天饥脑,依靠對密碼算法本身保密而建立的安全體系將土崩瓦解恳邀,而那些公開密碼算法從一開始就沒想著要保密懦冰,因此算法的暴露根本不影響其安全強度。這其實是一種思想谣沸,現(xiàn)代密碼體系正是基于這個思想構(gòu)建的刷钢。
  2. 依靠個人或某個組織開發(fā)高強度的密碼算法是非常困難的。世界上公認的高強度密碼算法乳附,幾乎都是經(jīng)過密碼破譯者長期嘗試破解未果而生存帶來的内地。因此,如果自認為偷偷搞出來的一套“不為人知”的密碼算法具有更高的安全性赋除,其實是有點自不量力了阱缓。

第二,使用低強度的密碼比不進行任何加密更危險
這觀點更讓人懵逼了举农。其實這還是在講述一個思想茬祷,那就是人們?nèi)菀淄ㄟ^“密碼”這個詞獲得一種”錯誤的安全感”,我們必須清醒的認識到 信息被加密 != 安全強度高 這個道理并蝗。使用低強度的密碼,自以為獲得了安全級別秸妥,在處理機密信息時滚停,意識深處會放棄警惕性,這是最危險的粥惧。

第三键畴,任何密碼總有一天會被破解
如果有人向你推銷一種不可能被破解的密碼體系時,你一定要打起精神突雪,不要被其欺騙起惕。當然,嚴格來說咏删,一次性密碼本 是絕對不會被破解的(原因在后面的文章中講述)惹想,然而這種密碼技術(shù)是不具備實際用途的;還有一種可能會實現(xiàn)理想的途徑 -- 量子密碼督函,只是現(xiàn)在還為時過早嘀粱。不要忘記,擁有了量子武器的盾牌辰狡,面臨的也將是被量子武裝的長矛锋叨,輸贏還是未知。

第四宛篇,密碼只是信息安全的一部分
水流的聰明之處在于娃磺,它會巧妙的繞開石頭。攻擊者面對密碼技術(shù)時叫倍,也未必就會選擇正面強攻偷卧。也許繞道攻擊信息持有者的電腦豺瘤,直接獲取加密前或解密后的文件更簡單。比起“騙子”涯冠,再強大的CPU也會顯得很傻炉奴。結(jié)城浩在《圖解密碼技術(shù)中》說的很棒:

要保證良好的安全性,就需要理解“系統(tǒng)”這一概念本身的性質(zhì)蛇更。復雜的系統(tǒng)就像一根由無數(shù)環(huán)節(jié)相連組成的鏈條瞻赶,如果用力拉,鏈條就會從其中最脆弱的環(huán)節(jié)斷開派任。因此砸逊,系統(tǒng)的強度取決于其中最脆弱的環(huán)節(jié)的強度

最錯弱的環(huán)節(jié)并不是密碼掌逛,而是人师逸。

以上,就是密碼學的基本概念豆混。


我喜歡的民謠女歌手-邵夷貝
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篓像,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子皿伺,更是在濱河造成了極大的恐慌员辩,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸵鸥,死亡現(xiàn)場離奇詭異奠滑,居然都是意外死亡,警方通過查閱死者的電腦和手機妒穴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門宋税,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人讼油,你說我怎么就攤上這事杰赛。” “怎么了矮台?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵淆攻,是天一觀的道長。 經(jīng)常有香客問我嘿架,道長瓶珊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任耸彪,我火速辦了婚禮伞芹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己唱较,他們只是感情好扎唾,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著南缓,像睡著了一般胸遇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汉形,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天纸镊,我揣著相機與錄音,去河邊找鬼概疆。 笑死逗威,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的岔冀。 我是一名探鬼主播凯旭,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼使套!你這毒婦竟也來了罐呼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤侦高,失蹤者是張志新(化名)和其女友劉穎弄贿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矫膨,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年期奔,在試婚紗的時候發(fā)現(xiàn)自己被綠了侧馅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡呐萌,死狀恐怖馁痴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肺孤,我是刑警寧澤罗晕,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站赠堵,受9級特大地震影響小渊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茫叭,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一酬屉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦呐萨、人聲如沸杀饵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽切距。三九已至,卻和暖如春惨远,著一層夾襖步出監(jiān)牢的瞬間谜悟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工锨络, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赌躺,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓羡儿,卻偏偏與公主長得像礼患,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掠归,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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

  • 前言 最近在面試中被問到了HTTPS的相關(guān)問題缅叠,加上密碼學也剛好學到公鑰密碼學,我就趁熱打鐵虏冻,整理一下HTTPS相...
    卓三陽閱讀 2,953評論 0 5
  • 一肤粱、準備知識 在開始介紹前,需要首先了解一下消息摘要厨相、數(shù)字簽名领曼、數(shù)字證書的知識 1、消息摘要 - Message ...
    浪夠_閱讀 2,723評論 1 2
  • 在深入學習區(qū)塊鏈時,不可避免的需要了解密碼學践磅。區(qū)塊鏈算是對密碼學的一次整合運用单刁,雖然并無太多創(chuàng)新的密碼算法,但也值...
    Kerwong閱讀 44,309評論 4 25
  • 本文轉(zhuǎn)載府适,出處如下:數(shù)字證書原理 文中首先解釋了加密解密的一些基礎(chǔ)知識和概念羔飞,然后通過一個加密通信過程的例子說明了...
    隨安居士閱讀 1,683評論 1 8
  • 林沖命真好 文/茹 林沖,江湖人稱“豹...
    姣俠閱讀 3,876評論 2 6