HTTPS從原理到應(yīng)用(一):加密(Encrypt)與哈希(Hash)

隨著安全問題越來越被重視,公司也全面替換了HTTPHTTPS2015iOS9ATS到今年蘋果更是放出話來,2017年全面支持HTTPS缘挽,不支持的App,在審核的時(shí)候可能會遇到麻煩呻粹。鑒于此壕曼,我有了寫這一系列文章的沖動,文章從最基本的知識點(diǎn)著手等浊,一點(diǎn)點(diǎn)剖析腮郊,盡量把HTTPS這個(gè)東西說明白。此系列共四篇文章(有可能會出一篇進(jìn)階篇講述攻防相關(guān)知識)筹燕,本人從事iOS開發(fā)轧飞,其他端的實(shí)際運(yùn)用不做敘述,但是前三篇的原理部分是通用的都可以看撒踪。四篇文章分別為:

此篇文章的邏輯圖

圖0-0 此篇文章的邏輯圖

加密(Encrypt)

  • 加密的概念:簡單來說就是一組含有參數(shù)k變換E过咬。信息m通過變換E得到c = E(m)。原始信息m為明文制妄,通過變換得到的信息c為密文掸绞。從明文得到密文的過程叫做加密變換E加密算法耕捞,參數(shù)k稱作秘鑰衔掸。同一個(gè)加密算法烫幕,可以取不同的密鑰,得出不同的加密結(jié)果具篇。從密文c恢復(fù)明文m的過程稱作解密纬霞,解密算法D加密算法E的逆運(yùn)算。解密算法也有參數(shù)驱显,稱作解密算法的秘鑰。
  • 加密的方式:私鑰密碼(對稱加密)公鑰密碼(非對稱加密)瞳抓。

私鑰密碼(對稱加密)

私鑰密碼實(shí)例-凱撒(J.Caesar)密碼:

公元前羅馬皇帝凱撒(J.Caesar)曾用密碼傳遞作戰(zhàn)命令埃疫。他的加密方法是把每個(gè)字母按字母表的順序向后移動3位,最后3個(gè)字母依次變成前3個(gè)字母孩哑。例如栓霜,"take action at middle night",經(jīng)過加密變成"wdnhdfwlrqdwplqqohqljkw"(忽略掉空格)横蜒。(這個(gè)加密算法應(yīng)該都不陌生胳蛮,數(shù)據(jù)結(jié)構(gòu)雙向循環(huán)鏈表部分應(yīng)該都實(shí)現(xiàn)過的)

凱撒密碼的加密算法是把字母按字母表的順序循環(huán)移動k位,取k=3就是凱撒所用的加密算法丛晌。如果用數(shù)字0 ~ 25分別表示26個(gè)字母仅炊,算法可表示成 E(i) = (i + k)mod26, i = 0, 1, ..., 25,其中k就是加密秘鑰。凱撒密碼的解密算法是D(i) = (i - k) mode 26, i = 0, 1, ..., 25澎蛛。其中k就是解密秘鑰抚垄。它的解密算法的秘鑰與加密算法的秘鑰相同。

私鑰密碼

由以上例子可以看出谋逻。私鑰加密的秘鑰是對稱的呆馁,只要知道加密秘鑰就能推出解密秘鑰(所以稱為對稱加密)。通信雙方分別持有加密密鑰和解密密鑰毁兆,密鑰對外是絕對保密的浙滤,必須通過秘密渠道傳送 。常見的對稱加密算法有:DES气堕、3DES纺腊、TDEABlowfish送巡、RC2摹菠、RC4RC5骗爆、IDEA次氨、SKIPJACKAES摘投。

公鑰加密(非對稱加密)

公鑰加密概念

迪菲(W.Diffie)和赫爾曼(M.Hellman)1976年提出公鑰密碼的思想煮寡,這種密碼是非對稱的虹蓄,也就是說,不能從加密密鑰推算出解密密鑰幸撕,所以又稱之為非對稱加密薇组。加密密鑰不需要保密,可以公開坐儿,稱之為公鑰律胀,只需要保守解密秘鑰稱之為私鑰。公鑰和私鑰是成對的貌矿。常見的非對稱加密算法有:RSA炭菌、Elgamal背包算法逛漫、Rabin黑低、D-HECC酌毡。

公鑰加密簡單舉例:甲乙兩人通信克握,甲將他的加密密鑰(公鑰)公布,任何想與甲通信的人都可以使用這個(gè)加密密鑰將要傳送的信息(明文)加密成密文發(fā)送給甲枷踏,只有甲自己知道解密密鑰(私鑰)菩暗,能夠把密文還原為明文。任何第三方即使截獲到密文也不可能知道密文所傳遞的信息呕寝。

  • 兩種加密方式對比如下圖(圖1-0)所示:
圖1-0 兩種加密方式對比
基于公鑰密碼的加密和認(rèn)證

加密和認(rèn)證是兩個(gè)不同的概念勋眯,其中加密是保證數(shù)據(jù)的安全性,認(rèn)證是確保用戶的真實(shí)性下梢。只有通信雙方確定是真正要通信的雙方客蹋,通信才有進(jìn)行下去的必要。這也就是認(rèn)證的主要目的孽江。

基于公鑰密碼的加密過程
比如有兩個(gè)用戶AliceBob讶坯,Alice想把一段明文通過公鑰密碼的技術(shù)發(fā)送給BobBob有一對公鑰和私鑰岗屏,那么加密解密的過程如下:
1辆琅、Bob將他的公鑰傳送給Alice
2这刷、AliceBob的公鑰加密她的消息婉烟,然后傳送給Bob
3暇屋、Bob用他的私鑰解密Alice的消息似袁。
Alice使用Bob的公鑰進(jìn)行加密,Bob用自己的私鑰進(jìn)行解密。

基于公鑰密碼的認(rèn)證過程
認(rèn)證和加密就不同了昙衅,主要是鑒別用戶的真?zhèn)窝锼_€是AliceBob這兩個(gè)用戶,Alice有一對公私鑰而涉,Alice想讓Bob知道自己是真實(shí)的Alice著瓶,而不是假冒的,因此Alice只要使用私鑰對文件加密發(fā)送給Bob啼县,Bob使用Alice的公鑰對文件進(jìn)行解密材原,如果可以解密成功,則證明Alice的私鑰是正確的季眷,因而就完成了對Alice的身份鑒別华糖。
整個(gè)身份認(rèn)證的過程如下:
1、Alice用她的私鑰對文件加密瘟裸,從而對文件簽名。
2诵竭、Alice將簽名的文件傳送給Bob话告。
3、BobAlice的公鑰解密文件卵慰,從而驗(yàn)證簽名沙郭。
Alice使用自己的私鑰加密,BobAlice的公鑰進(jìn)行解密裳朋。

基于公鑰密碼的加密和認(rèn)證的思考
在加密過程中病线,思考如何保證Alice拿到公鑰后就能確定是Bob的公鑰,若是篡改的公鑰鲤嫡,通信進(jìn)行下去已經(jīng)無意義送挑。接下來的第二篇文章數(shù)字簽名和數(shù)字證書來解答這個(gè)問題。

哈希(Hash)

哈希與加密是不同的暖眼,概括來說惕耕,哈希(Hash)是將目標(biāo)文本轉(zhuǎn)換成具有相同長度的、不可逆的雜湊字符串(或叫做消息摘要)诫肠,而加密(Encrypt)是將目標(biāo)文本轉(zhuǎn)換成具有不同長度的司澎、可逆的密文。
兩者有如下重要區(qū)別:
1栋豫、哈希算法往往被設(shè)計(jì)成生成具有相同長度的文本挤安,而加密算法生成的文本長度與明文本身的長度有關(guān)。
2丧鸯、哈希算法是不可逆的蛤铜,而加密算法是可逆的。
這里重點(diǎn)強(qiáng)調(diào)一下HashEncrypt的主要區(qū)別,因?yàn)榻酉聛淼奈恼乱玫竭@兩個(gè)概念昂羡,這里對此不做深究絮记。詳細(xì)介紹可看我下面參考的一篇文章哈希(Hash)與加密(Encrypt)的基本原理、區(qū)別及工程應(yīng)用虐先。

總結(jié)

第一篇講解的都是一些常用的基本概念怨愤,做安全肯定是會經(jīng)常遇見,后續(xù)的幾篇文章也依賴于對這些概念的理解蛹批,所以這里先提一下撰洗。關(guān)于Hash也只強(qiáng)調(diào)了一下和加密的區(qū)別。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猪勇,一起剝皮案震驚了整個(gè)濱河市设褐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泣刹,老刑警劉巖助析,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椅您,居然都是意外死亡外冀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門掀泳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雪隧,“玉大人,你說我怎么就攤上這事员舵∧匝兀” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵固灵,是天一觀的道長捅伤。 經(jīng)常有香客問我,道長巫玻,這世上最難降的妖魔是什么丛忆? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮仍秤,結(jié)果婚禮上熄诡,老公的妹妹穿的比我還像新娘。我一直安慰自己诗力,他們只是感情好凰浮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布我抠。 她就那樣靜靜地躺著,像睡著了一般袜茧。 火紅的嫁衣襯著肌膚如雪菜拓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天笛厦,我揣著相機(jī)與錄音纳鼎,去河邊找鬼。 笑死裳凸,一個(gè)胖子當(dāng)著我的面吹牛贱鄙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨谷,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼逗宁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梦湘?” 一聲冷哼從身側(cè)響起瞎颗,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捌议,沒想到半個(gè)月后言缤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禁灼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轿曙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弄捕。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖导帝,靈堂內(nèi)的尸體忽然破棺而出守谓,到底是詐尸還是另有隱情,我是刑警寧澤您单,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布斋荞,位于F島的核電站,受9級特大地震影響虐秦,放射性物質(zhì)發(fā)生泄漏平酿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一悦陋、第九天 我趴在偏房一處隱蔽的房頂上張望蜈彼。 院中可真熱鬧,春花似錦俺驶、人聲如沸幸逆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽还绘。三九已至楚昭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拍顷,已是汗流浹背抚太。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菇怀,地道東北人凭舶。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像爱沟,于是被迫代替她去往敵國和親帅霜。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

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