iOS逆向 08:對稱算法(上)

iOS 底層原理 + 逆向 文章匯總
注:大家可以關(guān)-注 Wei-Xin 公-眾-號 :Style月月專欄

本文主要介紹對稱算法的基本概念

對稱加密

對稱加密

  • 加密峭火、解密使用的是同一個key紧显,即使用同一個密鑰加密的方式

對稱加密過程

  • 明文通過密鑰加密得到密文

  • 密文通過密鑰解密得到明文

對稱加密優(yōu)點

  • 加密計算量小

  • 速度快

  • 適合對大數(shù)據(jù)進行加密的場景

對稱加密的缺點

  • 密鑰傳輸問題:因為加解密使用的是同一個密鑰,所以如何安全的把密鑰傳輸?shù)浇饷苷呤掷锸且粋€關(guān)鍵誊抛。在實際應(yīng)用中狈蚤,一般是客戶端想服務(wù)器請求對稱加密的密鑰困肩,而且密鑰還需要使用非對稱加密后再傳輸

  • 密鑰管理問題:因為每個用戶都會有一個單獨的密鑰,所以隨著用戶的增多脆侮,密鑰的管理也是一個問題锌畸。

常見的對稱加密算法

在上節(jié)iOS逆向 07:Hash算法中我們利用了Hash算法加密,還可以使用對稱加密靖避,對稱加密主要有以下 DES潭枣、3DES比默、 AES等,下面會分別進行介紹

DES

DES (Data Encryption Standard) 是 1977 年美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)中所采用的一種對稱密碼(FIPS 46-3)卸耘。DES 一直以來被美國以及其他國家的政府和銀行所使用

DES 是一種把 64 位明文加密成 64 位密文的對稱加密算法退敦。它的密鑰長度為 64 比特粘咖,但是除去每 7 個二進制位會設(shè)置一個用于錯誤檢測的位以外蚣抗,實際上密鑰為 56 比特

  • DES 會以 64 個二進制為一個分組進行加密瓮下。DES一次性只能加密64位明文翰铡,如果明文超過了64位,就要進行分組加密


    DES加密
  • DES解密也是64位分組解密讽坏,解密密鑰實質(zhì)也是 56 位锭魔。


    DES解密

3DES

三重 DES (triple-DES) 是為了增加 DES 強度,所以將 DES 重復(fù) 3 次得到的一種算法路呜。也稱為 TDEA (Triple Data Encryption Algorithm)迷捧,通常縮寫為 3DES

  • 加密:進行3次DES加密(即 加密-解密-加密)胀葱,DES的密鑰長度為56位漠秋,所以3DES的密鑰長度為 56 * 3 = 168 位

    image

  • 解密:解密的過程正好與加密過程相反,按照密鑰的逆序解密(即 解密-加密-解密

    image

缺點:3DES 由于處理速度不高抵屿,除了兼容之前的 DES 以外庆锦,目前基本不再使用它了

AES

AES (Advanced Encrytion Standard) 是取代前任標(biāo)準(zhǔn) DES 而成為新標(biāo)準(zhǔn)的一種對稱密碼算法。在全世界的范圍內(nèi)征集 AES 加密算法轧葛,最終于 2000 年從候選中選出了 Rijndael 算法搂抒,確定它為新的 AES

Rijndael 的分組長度和密鑰長度可以分別以 32 位比特為單位在 128 比特到 256 比特的范圍內(nèi)進行選擇尿扯。不過在 AES 的規(guī)范中求晶,分組長度被固定在 128 比特,密鑰長度只有 128衷笋、192 和 256 比特三種芳杏。

加密:AES的加密是由多個輪組成,主要分為4輪

  • 1右莱、SubBytes 字節(jié)變換

  • 2蚜锨、ShiftRows 移行操作

  • 3、MixColumns 混行操作

  • 4慢蜓、AddRoundKey 異或運算

解密:AES的解密是加密的逆過程亚再。

所以,在 Rijndael 加密過程中晨抡,每一輪處理的順序為:

  • SubBytes -> ShiftRows -> MixColumns -> AddRoundKey

Rijndael 解密過程中氛悬,每一輪處理的順序為:

  • AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBytes

解密過程中除了第一步和加密完全一樣则剃,其他三步都為加密的逆過程。

優(yōu)點

  • 加密效率更高
  • 目前還沒有針對AES有效的攻擊破譯方式

參考鏈接

注:對稱算法這里也只是簡單介紹如捅,更為詳細的了解可以參考以下鏈接

分組模式

由于DES和AES一次加密都只能加密固定長度的明文棍现,如果需要加密任意長度的明文,就需要對分組密碼進行迭代镜遣。其中分組密碼的迭代方式就稱為分組密碼模式

常用的分組模式主要有ECB己肮、CBC,下面來分別進行介紹

ECB

ECB 模式全稱“Electronic CodeBook”模式悲关,在 ECB 模式中谎僻,將明文分組加密之后的結(jié)果直接就是密文分組,中間不做任何的變換寓辱。

簡單來說艘绍,ECB就是一個電子密碼本模式每一塊數(shù)據(jù)秫筏,獨立加密诱鞠,獨立解密,如果其中一塊丟失这敬,并不會影響其他數(shù)據(jù)塊航夺。如下圖所示

ECB模式

ECB是最基本的加密模式,即通常理解的加密鹅颊,相同的明文將永遠加密成相同的密文敷存,無初始向量,容易受到密碼本重放攻擊堪伍,一般情況下很少用

缺點

由于ECB的加密和解密都非常直接锚烦,所以可以根據(jù)密文中存在多少種重復(fù)的組合就能以此推測明文,來破譯密碼帝雇。所以ECB模式存在安全風(fēng)險涮俄,使用的人很少。

CBC

CBC 模式的全稱是 Cipher Block Chaining 模式尸闸,密文分組鏈接模式彻亲。名字中也展示它的實質(zhì),像鏈條一樣相互鏈接在一起吮廉。使用一個密鑰和一個初始化向量[IV]對數(shù)據(jù)執(zhí)行加密

簡單理解就是苞尝,同ECB一樣,也是一塊一塊的加密宦芦,但是后一塊數(shù)據(jù)的加密與前一塊數(shù)據(jù)室友關(guān)聯(lián)的宙址,解密也是如此,如下所示

CBC模式

明文被加密前要與前面的密文進行異或運算后再加密调卑,因此只要選擇不同的初始向量抡砂,相同的密文加密后會形成不同的密文大咱,這是目前引用最廣泛的模式,CBC加密后的密文是上下文相關(guān)的注益,但明文的錯誤不會傳遞到后續(xù)分組碴巾,但如果一個分組丟失,后面的分組將全部作廢(同步錯誤)

ECB與CBC對比

  • ECB模式只進行了加密

  • CBC模式則是在加密之前進行了一次 XOR(即異或)丑搔,這樣就完美了克服了 ECB 的缺點了

    ECB與CBC對比

優(yōu)點

CBC模式采用鏈接模式厦瓢,可以有效的保證密文的完整性,如果一個數(shù)據(jù)塊在傳遞是丟失還是改變低匙,后面的數(shù)據(jù)將無法正常解密

缺點

一個比特位的缺失就會導(dǎo)致整個密文無法解析旷痕。這算是 CBC 鏈?zhǔn)降囊粋€“小缺點”碳锈。相對ECB而言顽冶,更安全

總結(jié)

  • 對稱算法:加解密使用同一個key

  • 常用的對稱算法

    • DES:數(shù)據(jù)加密標(biāo)準(zhǔn),因為強度不夠售碳,所以使用很少

    • 3DES:使用3個密鑰强重,多相同的數(shù)據(jù)進行加密,相比DES而言贸人,強度增強

    • AES:高級密碼標(biāo)準(zhǔn)

  • 常用的分組模式

    • ECB:電子密碼本模式间景,每一塊數(shù)據(jù)獨立加密、獨立解密

    • CBC:分組密碼采用鏈接模式艺智,使用一個密鑰和一個初始化向量[IV]對數(shù)據(jù)執(zhí)行加密倘要,即上下文是關(guān)聯(lián)的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市十拣,隨后出現(xiàn)的幾起案子封拧,更是在濱河造成了極大的恐慌,老刑警劉巖夭问,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泽西,死亡現(xiàn)場離奇詭異,居然都是意外死亡缰趋,警方通過查閱死者的電腦和手機捧杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秘血,“玉大人味抖,你說我怎么就攤上這事』伊福” “怎么了仔涩?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谋竖。 經(jīng)常有香客問我红柱,道長承匣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任锤悄,我火速辦了婚禮韧骗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘零聚。我一直安慰自己袍暴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布隶症。 她就那樣靜靜地躺著政模,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚂会。 梳的紋絲不亂的頭發(fā)上淋样,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音胁住,去河邊找鬼趁猴。 笑死,一個胖子當(dāng)著我的面吹牛彪见,可吹牛的內(nèi)容都是我干的儡司。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼余指,長吁一口氣:“原來是場噩夢啊……” “哼捕犬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酵镜,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碉碉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后笋婿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體誉裆,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年缸濒,在試婚紗的時候發(fā)現(xiàn)自己被綠了足丢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡庇配,死狀恐怖斩跌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捞慌,我是刑警寧澤耀鸦,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響袖订,放射性物質(zhì)發(fā)生泄漏氮帐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一洛姑、第九天 我趴在偏房一處隱蔽的房頂上張望上沐。 院中可真熱鬧,春花似錦楞艾、人聲如沸参咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕴侧。三九已至,卻和暖如春两入,著一層夾襖步出監(jiān)牢的瞬間净宵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工谆刨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塘娶,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓痊夭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脏里。 傳聞我的和親對象是個殘疾皇子她我,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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