AES模式和填充

AES是分組加密,也就是說它是對(duì)固定大小的分組數(shù)據(jù)進(jìn)行處理上荡。AES每次處理的128位(16字節(jié))的輸入趴樱。不過,大多數(shù)要加密的的數(shù)據(jù)都不是16字節(jié)長榛臼。為了解決這個(gè)問題伊佃,需要選擇合適的模式。

模式是用來將數(shù)據(jù)分組串起來從而使得任意數(shù)據(jù)都能加密的算法沛善。模式適用于任何分組的加密算法航揉,包括AES。

如果你不想了解AES模式的細(xì)節(jié)金刁,那就相信我:對(duì)iOS設(shè)備而言是CBC以及PKCS#7填充

最簡(jiǎn)單的模式是電子密碼本(ECB)帅涂。但千萬不要在iOS應(yīng)用中使用該模式。

最常見的分組加密模式是密碼分組鏈模式(CBC)尤蛮。

填充的作用是在加密前將普通文本的長度擴(kuò)展到需要的長度媳友。關(guān)鍵在于填充的數(shù)據(jù)能夠在解密后正確的移除。

實(shí)現(xiàn)方法有好多種产捞,但iOS支持一種叫PKCS#7的填充方式醇锚。這種方式由選項(xiàng)kCCOptionPKCS7Padding來定義

CBC是最常用的加密模式,因此最方便跟其他系統(tǒng)交換數(shù)據(jù)坯临。這也是蘋果安全團(tuán)隊(duì)推薦的模式焊唬。

初始化向量

在鏈模式如CBC中,每個(gè)分組都會(huì)影響到下一個(gè)分組的加密看靠。這就是為了保證兩個(gè)相同的普通文本分組不會(huì)生成相同的密文分組赶促。

第一個(gè)分組是個(gè)特列,因?yàn)樗懊嬖贈(zèng)]有其他的分組了挟炬。鏈模式允許定義一個(gè)額外的稱為初始化向量(Initialization Vector, IV)的分組來開始這個(gè)鏈鸥滨。這個(gè)通常會(huì)被標(biāo)成可選的嗦哆。但你總是需要提供一個(gè)。否則婿滓,它會(huì)用一個(gè)全是0的分組老速,那樣會(huì)讓你的數(shù)據(jù)容易受到特定的攻擊的侵害。

CCCryptorStatus CCCrypt(
    CCOperation op,         /* kCCEncrypt, etc. */
    CCAlgorithm alg,        /* kCCAlgorithmAES128, etc. */
    CCOptions options,      /* kCCOptionPKCS7Padding, etc. */
    const void *key,
    size_t keyLength,
    const void *iv,         /* optional initialization vector */
    const void *dataIn,     /* optional per op and alg */
    size_t dataInLength,
    void *dataOut,          /* data RETURNED here */
    size_t dataOutAvailable,
    size_t *dataOutMoved)
    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);

AES提供了三種密鑰長度:128位凸主,192位和256位烁峭。
推薦使用AES-128位

在內(nèi)部實(shí)現(xiàn)上,AES只是提供一個(gè)接收固定長度密鑰和16字節(jié)大小的分組秕铛,然后生成另外一個(gè)不同的16字節(jié)大小的分組的數(shù)學(xué)函數(shù)。

  • AES使用固定長度的密鑰缩挑,而不是變長密碼但两。必須將密碼轉(zhuǎn)成密鑰才能在AES中使用它們。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末供置,一起剝皮案震驚了整個(gè)濱河市谨湘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芥丧,老刑警劉巖紧阔,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異续担,居然都是意外死亡擅耽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門物遇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乖仇,“玉大人,你說我怎么就攤上這事询兴∧松常” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵诗舰,是天一觀的道長警儒。 經(jīng)常有香客問我,道長眶根,這世上最難降的妖魔是什么蜀铲? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮汛闸,結(jié)果婚禮上蝙茶,老公的妹妹穿的比我還像新娘。我一直安慰自己诸老,他們只是感情好隆夯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布钳恕。 她就那樣靜靜地躺著,像睡著了一般蹄衷。 火紅的嫁衣襯著肌膚如雪忧额。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天愧口,我揣著相機(jī)與錄音睦番,去河邊找鬼。 笑死耍属,一個(gè)胖子當(dāng)著我的面吹牛托嚣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厚骗,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼示启,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了领舰?” 一聲冷哼從身側(cè)響起夫嗓,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冲秽,沒想到半個(gè)月后舍咖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锉桑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年排霉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片民轴。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡郑诺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杉武,到底是詐尸還是另有隱情辙诞,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布轻抱,位于F島的核電站飞涂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏祈搜。R本人自食惡果不足惜较店,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望容燕。 院中可真熱鬧梁呈,春花似錦、人聲如沸蘸秘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寻咒,卻和暖如春哮翘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毛秘。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來泰國打工饭寺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叫挟。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓艰匙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抹恳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旬薯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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

  • 本文主要介紹移動(dòng)端的加解密算法的分類、其優(yōu)缺點(diǎn)特性及應(yīng)用适秩,幫助讀者由淺入深地了解和選擇加解密算法。文中會(huì)包含算法的...
    蘋果粉閱讀 11,478評(píng)論 5 29
  • 這篇文章主要講述在Mobile BI(移動(dòng)商務(wù)智能)開發(fā)過程中硕舆,在網(wǎng)絡(luò)通信秽荞、數(shù)據(jù)存儲(chǔ)、登錄驗(yàn)證這幾個(gè)方面涉及的加密...
    雨_樹閱讀 2,368評(píng)論 0 6
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 7,934評(píng)論 0 6
  • 目錄 準(zhǔn)備 分析2.1. 三次握手2.2. 創(chuàng)建 HTTP 代理(非必要)2.3. TLS/SSL 握手2.4. ...
    RunAlgorithm閱讀 38,055評(píng)論 12 117
  • 今年快生的時(shí)候無聊畫的抚官,歪歪一下這個(gè)在肚子里即將到來的小精靈扬跋,那時(shí)不知道露露對(duì)她好奇不好奇,但希望她們以后是死黨凌节,...
    yokocw閱讀 168評(píng)論 2 1