一直以來,"對稱加密"涉兽、"非對稱加密"招驴、"公鑰"、"私鑰"等這些詞匯對我來說都是最熟悉的陌生詞, 聽著熟悉但是從未理解其中要義. 最近又搞了搞證書相關(guān)的東西, 出于學(xué)習(xí)需要,索性就把這些東西理解了一下.本文不說算法也沒有具體的加密方法,只是幫和我一樣有困惑的小伙伴通俗易懂地理解幾個(gè)概念.
非對稱加密
是相對于對稱加密
而言的.
首先, 不論哪種方式的加密,目的都是保護(hù)被加密內(nèi)容.
對稱加密
先看百度的解釋:
采用單鑰密碼系統(tǒng)的加密方法枷畏,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密别厘,這種加密方法稱為對稱加密,也稱為單密鑰加密拥诡。
怎么理解呢?舉個(gè)栗子.
小紅新建了一個(gè)文檔只想自己和小明看,于是小紅為這個(gè)文檔設(shè)置了密碼(加密), 然后再發(fā)送給小明. 小明只要知道文檔的密碼就可以查看其中內(nèi)容(解密).別人即使拿到文檔想看,但沒有密碼(密鑰)也無從查看里面的內(nèi)容.
所謂對稱
就是加密和解密的過程使用的是相同的密鑰.
非對稱加密
與對稱加密不同,非對稱加密算法的加密和解密使用不同的兩個(gè)密鑰.這兩個(gè)密鑰就是我們經(jīng)常聽到的"公開密鑰
"(公鑰)和"私有密鑰
"(私鑰).
公鑰和私鑰的關(guān)系是:
公鑰和私鑰一般成對出現(xiàn),
如果你的消息使用公鑰加密,那么需要該公鑰對應(yīng)的私鑰才能解密;
如果你的消息使用私鑰加密,那么需要該私鑰對應(yīng)的公鑰才能解密.
非對稱加密的作用是:保護(hù)消息內(nèi)容, 并且讓消息接收方確定發(fā)送方的身份.
再舉個(gè)栗子
小紅和小明互發(fā)郵件,并且郵件內(nèi)容需要保密.
如果是對稱加密,小明需要把唯一的密鑰告知小紅,小紅使用該密鑰進(jìn)行解密即可查看郵件內(nèi)容.但這樣做, 一旦在傳輸密鑰的過程中消息泄露, 保密性也就蕩然無存.
很顯然對稱加密的安全性會(huì)低一些, 于是他們采用決定非對稱加密的方式, 這樣, 小明和小紅就需要各自持有一對屬于自己的公鑰和私鑰.
小明寫的郵件只想讓小紅看, 那么小紅有什么和別人不一樣的特質(zhì)呢? 沒錯(cuò), 她擁有一個(gè)只有她自己知道的密鑰! 如果小明使用小紅的公鑰加密(公鑰是公開給別人的), 那么就只有小紅的私鑰才能解密,這就達(dá)到了只讓小紅看的目的.(保護(hù)消息內(nèi)容)
但是還有一個(gè)問題.既然小紅的公鑰是公開的,那么就可能產(chǎn)生有不明身份的人冒充小明, 使用小紅的公鑰加密然后給小紅發(fā)郵件.
小明為了避免這種情況的發(fā)生,把郵件內(nèi)容用自己的密鑰進(jìn)行加密,小紅接收到郵件后,使用小明的公鑰解密(只有小明公鑰才能解開使用小明私鑰加密的消息),如果可以解開,那么她就知道這個(gè)郵件的的確確是小明發(fā)的.(確定消息發(fā)送方的身份)
我簡單畫了一個(gè)圖來表示這個(gè)過程:
當(dāng)我們想將寫好的iOS程序運(yùn)行到真機(jī)上(你的真機(jī)/測試人員的測試機(jī)/從App Store上下載應(yīng)用的用戶的手機(jī)等)時(shí),很多地方會(huì)使用這種非對稱加密的方式進(jìn)行數(shù)字簽名或者身份認(rèn)證,從而保證程序的來源可信并且安全.
這篇文章只是簡單對非對稱加密做一些理解,后面我會(huì)另起文章對代碼簽名及數(shù)字證書等原理及過程進(jìn)行闡述.
內(nèi)容比較抽象, 也不知道我描述清楚了沒有,如果沒有的話歡迎大家提出意見和指正.
作者:CoderAO
鏈接:http://www.reibang.com/p/2cdaf8e99f8d
來源:簡書
著作權(quán)歸作者所有触趴。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)氮发,非商業(yè)轉(zhuǎn)載請注明出處。