加密方式之公鑰加密

原文 http://mp.weixin.qq.com/s/7ImZolr7m3tUuyOgMJeFYg?utm_source=tuicool&utm_medium=referral

公鑰加密

公開密鑰加密(public-key cryptography)簡稱公鑰加密专执,這套密碼算法包含配對的密鑰對拄显,分為加密密鑰和解密密鑰。發(fā)送者用加密密鑰進行加密舱禽,接收者用解密密鑰進行解密。加密密鑰是公開的疾瓮,任何人都可以獲取肩碟,因此加密密鑰又稱為公鑰(public key),解密密鑰不能公開,只能自己使用,因此它又稱為私鑰(private key)。常見的公鑰加密算法有 RSA新啼。

以Alice 給 Bob 發(fā)送數(shù)據(jù)為例,公鑰加密算法由接收者 Bob 發(fā)起

Bob 生成公鑰和私鑰對火诸,私鑰自己保存盯荤,不能透露給任何人灼卢。
Bob 把公鑰發(fā)送給 Alice灿巧,發(fā)送過程中即使被人竊取也沒關(guān)系
Alice 用公鑰把數(shù)據(jù)進行加密盾似,并發(fā)送給 Bob撰茎,發(fā)送過程中被人竊取了同樣沒關(guān)系僻弹,因為沒有配對的私鑰進行解密是沒法破解的
Bob 用配對的私鑰解密。

Paste_Image.png

雖然公鑰加密解決了密鑰配送的問題忠聚,但是你沒法確認公鑰是不是合法的,Bob 發(fā)送的公鑰你不能肯定真的是 Bob 發(fā)的震缭,因為也有可能在 Bob 把公鑰發(fā)送給 Alice 的過程中出現(xiàn)中間人攻擊党涕,把真實的公鑰掉包替換膛堤。而對于 Alice 來說完全不知。還有一個缺點是它的運行速度比對稱加密慢很多堵第。

消息摘要

消息摘要(message digest)函數(shù)是一種用于判斷數(shù)據(jù)完整性的算法圆雁,也稱為散列函數(shù)或哈希函數(shù)西土,函數(shù)返回的值叫散列值讶舰,散列值又稱為消息摘要或者指紋(fingerprint)。這種算法是一個不可逆的算法需了,因此你沒法通過消息摘要反向推倒出消息是什么跳昼。所以它也稱為單向散列函數(shù)。下載軟件時如何確定是官方提供的完整版呢援所,如果有中間人在軟件里面嵌入了病毒庐舟,你也不得而知。所以我們可以使用散列函數(shù)對消息進行運算住拭,生成散列值挪略,通常軟件提供方會同時提供軟件的下載地址和軟件的散列值,用戶把軟件下載后在本地用相同的散列算法計算出散列值滔岳,與官方提供的散列值對比杠娱,如果相同,說明該軟件是完成的谱煤,否則就是被人修改過了摊求。常用的散列算法有MD5、SHA刘离。

下載 Eclipse 時室叉,官方網(wǎng)站同時提供了軟件地址和消息摘要

Paste_Image.png

散列函數(shù)可以保證數(shù)據(jù)的完整性睹栖,識別出數(shù)據(jù)是否被篡改,但它并不能識別出數(shù)據(jù)是不是偽裝的茧痕,因為中間人可以把數(shù)據(jù)和消息摘要同時替換野来,數(shù)據(jù)雖然是完整的,但真實數(shù)據(jù)被掉包了踪旷,接收者收到的并不是發(fā)送者發(fā)的曼氛,而是中間人的。消息認證是解決數(shù)據(jù)真實性的辦法令野。認證使用的技術(shù)有消息認證碼和數(shù)字簽名舀患。

消息認證碼

消息認證碼(message authentication code)是一種可以確認消息完整性并進行認證(消息認證是指確認消息來自正確的發(fā)送者)的技術(shù),簡稱 MAC气破。消息認證碼可以簡單理解為一種與密鑰相關(guān)的單向散列函數(shù)聊浅。

Paste_Image.png

Alice 給 Bob 發(fā)送消息前,先把共享密鑰(key)發(fā)送給 Bob堵幽,Alice 把消息計算出 MAC 值狗超,連同消息一起發(fā)送給 Bob,Bob 接收到消息和 MAC 值后朴下,與本地計算得到 MAC 值對比努咐,如果兩者相同,就說明消息是完整的殴胧,而且可以確定是 Alice 發(fā)送的渗稍,沒有中間人偽造。不過团滥,消息認證碼同樣會遇到對稱加密的密鑰配送問題竿屹,因此解決密鑰配送問題還是要采用公鑰加密的方式。

此外灸姊,消息認證碼還有一個無法解決的問題拱燃,Bob 雖然可以識別出消息的篡改和偽裝,但是 Alice 可以否認說:“我沒發(fā)消息力惯,應該是 Bob 的密鑰被 Attacker 盜取了碗誉,這是 Attacker 發(fā)的吧”。Alice 這么說你還真沒什么可以反駁的父晶,那么如何防止 Alice 不承認呢哮缺,數(shù)字簽名可以實現(xiàn)。

數(shù)字簽名

Alice 發(fā)郵件找 Bob 借1萬錢甲喝,因為郵件可以被人篡改(改成10萬)尝苇,也可以被偽造(Alice 根本就沒發(fā)郵件,而是 Attacker 偽造 Alice 在發(fā)郵件),Alice 借了錢之后還可以不承認(不是我借的糠溜,我沒有簽名按就妗)。

消息認證碼可以解決篡改和偽造的問題诵冒,Alice 不承認自己借了錢時凯肋,Bob 去找第三方機構(gòu)做公正,即使這樣汽馋,公正方也沒法判斷 Alice 有沒有真的借錢,因為他們倆共享了密鑰圈盔,也就是說兩個都可以計算出正確的 MAC 值豹芯,Bob 說:“明明你發(fā)的消息和 MAC 值和我自己生成的 MAC 值一樣,肯定是你發(fā)的消息”驱敲,Alice 說:“你把密鑰透露給了其他人铁蹈,是他發(fā)的郵件,你找他去吧”众眨。Alice 矢口否認握牧。

數(shù)字簽名(Digital Signature)就可以解決否認的問題,發(fā)送消息時娩梨,Alice 和 Bob 使用不同的密鑰沿腰,把公鑰加密算法反過來使用,發(fā)送者 Alice 使用私鑰對消息進行簽名狈定,而且只能是擁有私鑰的 Alice 可以對消息簽名颂龙,Bob 用配對的公鑰去驗證簽名,第三方機構(gòu)也可以用公鑰驗證簽名纽什,如果驗證通過措嵌,說明消息一定是 Alice 發(fā)送的,抵賴也不行芦缰,因為你只有 Alice 可以生成簽名企巢。這就防止了否認的問題。

Paste_Image.png
Paste_Image.png

它的流程是:

第一步:發(fā)送者 Alice 把消息哈希函數(shù)處理生成消息摘要让蕾,摘要信息使用私鑰加密之后生成簽名浪规,連同消息一起發(fā)送給接收者 Bob。

第二步:數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)傳輸涕俗,Bob收到數(shù)據(jù)后罗丰,把簽名和消息分別提取出來。

第三步:對簽名進行驗證再姑,驗證的過程是先把消息提取出來做同樣的Hash處理萌抵,得到消息摘要,再與 Alice 傳過來的簽名用公鑰解密,如果兩者相等绍填,就表示簽名驗證成功霎桅,否則驗證失敗,表示不是 Alice發(fā)的讨永。

公鑰證書

公鑰密碼在數(shù)字簽名技術(shù)里面扮演舉足輕重的角色滔驶,但是如何保證公鑰是合法的呢,如果是遭到中間人攻擊卿闹,掉包怎么辦揭糕?這個時候公鑰就應該交給一個第三方權(quán)威機構(gòu)來管理,這個機構(gòu)就是認證機構(gòu)(Certification Authority)CA锻霎,CA 把用戶的姓名著角、組織、郵箱地址等個人信息收集起來旋恼,還有此人的公鑰吏口,并由 CA 提供數(shù)字簽名生成公鑰證書(Public-Key Certificate)PKC,簡稱證書冰更。

Paste_Image.png

Bob 生成密鑰對产徊,私鑰自己保管,公鑰交給認證機構(gòu) Trent蜀细。
Trent 經(jīng)過一系列嚴格的檢查確認公鑰是 Bob 本人的
Trent 事先也生成自己的一套密鑰對舟铜,用自己的私鑰對 Bob 的公鑰進行數(shù)字簽名并生成數(shù)字證書。證書中包含了 Bob 的公鑰审葬。公鑰在這里是不需要加密的深滚,因為任何人獲取 Bob 的公鑰都沒事,只要確定是 Bob 的公鑰就行涣觉。
Alice 獲取 Trent 提供的證書痴荐。
Alice 用 Trent 提供的公鑰對證書進行簽名驗證,簽名驗證成功就表示證書中的公鑰是 Bob 的官册。
于是 Alice 就可以用 Bob 提供的公鑰對消息加密后發(fā)送給 Bob生兆。
Bob 收到密文后,用與之配對的私鑰進行解密膝宁。

至此鸦难,一套比較完善的數(shù)據(jù)傳輸方案就完成了。HTTPS(SSL/TLS)就是在這樣一套流程基礎(chǔ)之上建立起來的员淫。

HTTPS 簡單點說就是通過服務端證書非對稱加密的方式實現(xiàn)雙方身份驗證合蔽,第一次客戶端密鑰交換到服務端是以服務端證書加密的,然后雙方數(shù)據(jù)傳輸以客戶端的隨機密鑰的對稱加密處理(提高處理速度)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末介返,一起剝皮案震驚了整個濱河市拴事,隨后出現(xiàn)的幾起案子沃斤,更是在濱河造成了極大的恐慌,老刑警劉巖刃宵,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衡瓶,死亡現(xiàn)場離奇詭異,居然都是意外死亡牲证,警方通過查閱死者的電腦和手機哮针,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坦袍,“玉大人十厢,你說我怎么就攤上這事∥嫫耄” “怎么了寿烟?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辛燥。 經(jīng)常有香客問我,道長缝其,這世上最難降的妖魔是什么挎塌? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮内边,結(jié)果婚禮上榴都,老公的妹妹穿的比我還像新娘。我一直安慰自己漠其,他們只是感情好嘴高,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著和屎,像睡著了一般拴驮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柴信,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天套啤,我揣著相機與錄音,去河邊找鬼随常。 笑死潜沦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的绪氛。 我是一名探鬼主播唆鸡,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枣察!你這毒婦竟也來了争占?” 一聲冷哼從身側(cè)響起燃逻,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燃乍,沒想到半個月后唆樊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡刻蟹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年逗旁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舆瘪。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡片效,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出英古,到底是詐尸還是另有隱情淀衣,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布召调,位于F島的核電站膨桥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唠叛。R本人自食惡果不足惜只嚣,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望艺沼。 院中可真熱鬧册舞,春花似錦、人聲如沸障般。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挽荡。三九已至藐石,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徐伐,已是汗流浹背贯钩。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留办素,地道東北人角雷。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像性穿,于是被迫代替她去往敵國和親勺三。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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

  • 在現(xiàn)代密碼體制中有保密和認證兩種機制需曾,一般發(fā)送者和接收者擁有自己的公鑰和密鑰吗坚,公鑰是公開的祈远,密鑰不公開。 保密機制...
    F麥子閱讀 1,072評論 0 0
  • 終端之間信息傳遞安全性的保證始終是業(yè)務的剛性需求商源。不同的加密算法針對不同的業(yè)務需求车份,因為公司是金融公司性質(zhì),又不是...
    語歌閱讀 2,810評論 0 5
  • 加密貨幣牡彻,特別是比特幣扫沼,幾乎從各個方面都得到了大量關(guān)注:規(guī)則、管理庄吼、稅務缎除、技術(shù)、產(chǎn)品創(chuàng)新等等总寻,不勝枚舉器罐。“點對點(...
    簡聞閱讀 671評論 0 9
  • HTTPS 是建立在密碼學基礎(chǔ)之上的一種安全通信協(xié)議渐行,嚴格來說是基于 HTTP 協(xié)議和 SSL/TLS 的組合轰坊。理...
    i_cassell閱讀 266評論 0 3
  • 《請回答1988》里衰倦,大女兒寶拉給爸爸買了件襯衫,死活不好意思送出去旁理,只能讓媽媽轉(zhuǎn)交。爸爸穿著緊繃的衣服我磁,一個勁兒...
    槽值閱讀 2,966評論 12 53