iOS逆向 08:对称算法(上)

iOS 底层原理 + 逆向 文章汇总
注:大家可以关-注 Wei-Xin 公-众-号 :Style月月专栏

本文主要介绍对称算法的基本概念

对称加密

对称加密

  • 加密、解密使用的是同一个key,即使用同一个密钥加密的方式

对称加密过程

  • 明文通过密钥加密得到密文

  • 密文通过密钥解密得到明文

对称加密优点

  • 加密计算量小

  • 速度快

  • 适合对大数据进行加密的场景

对称加密的缺点

  • 密钥传输问题:因为加解密使用的是同一个密钥,所以如何安全的把密钥传输到解密者手里是一个关键。在实际应用中,一般是客户端想服务器请求对称加密的密钥,而且密钥还需要使用非对称加密后再传输

  • 密钥管理问题:因为每个用户都会有一个单独的密钥,所以随着用户的增多,密钥的管理也是一个问题。

常见的对称加密算法

在上节iOS逆向 07:Hash算法中我们利用了Hash算法加密,还可以使用对称加密,对称加密主要有以下 DES、3DES、 AES等,下面会分别进行介绍

DES

DES (Data Encryption Standard) 是 1977 年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS 46-3)。DES 一直以来被美国以及其他国家的政府和银行所使用

DES 是一种把 64 位明文加密成 64 位密文的对称加密算法。它的密钥长度为 64 比特,但是除去每 7 个二进制位会设置一个用于错误检测的位以外,实际上密钥为 56 比特

  • DES 会以 64 个二进制为一个分组进行加密。DES一次性只能加密64位明文,如果明文超过了64位,就要进行分组加密


    DES加密
  • DES解密也是64位分组解密,解密密钥实质也是 56 位。


    DES解密

3DES

三重 DES (triple-DES) 是为了增加 DES 强度,所以将 DES 重复 3 次得到的一种算法。也称为 TDEA (Triple Data Encryption Algorithm),通常缩写为 3DES

  • 加密:进行3次DES加密(即 加密-解密-加密),DES的密钥长度为56位,所以3DES的密钥长度为 56 * 3 = 168 位

    image

  • 解密:解密的过程正好与加密过程相反,按照密钥的逆序解密(即 解密-加密-解密

    image

缺点:3DES 由于处理速度不高,除了兼容之前的 DES 以外,目前基本不再使用它了

AES

AES (Advanced Encrytion Standard) 是取代前任标准 DES 而成为新标准的一种对称密码算法。在全世界的范围内征集 AES 加密算法,最终于 2000 年从候选中选出了 Rijndael 算法,确定它为新的 AES

Rijndael 的分组长度和密钥长度可以分别以 32 位比特为单位在 128 比特到 256 比特的范围内进行选择。不过在 AES 的规范中,分组长度被固定在 128 比特,密钥长度只有 128、192 和 256 比特三种。

加密:AES的加密是由多个轮组成,主要分为4轮

  • 1、SubBytes 字节变换

  • 2、ShiftRows 移行操作

  • 3、MixColumns 混行操作

  • 4、AddRoundKey 异或运算

解密:AES的解密是加密的逆过程。

所以,在 Rijndael 加密过程中,每一轮处理的顺序为:

  • SubBytes -> ShiftRows -> MixColumns -> AddRoundKey

Rijndael 解密过程中,每一轮处理的顺序为:

  • AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBytes

解密过程中除了第一步和加密完全一样,其他三步都为加密的逆过程。

优点

  • 加密效率更高
  • 目前还没有针对AES有效的攻击破译方式

参考链接

注:对称算法这里也只是简单介绍,更为详细的了解可以参考以下链接

分组模式

由于DES和AES一次加密都只能加密固定长度的明文,如果需要加密任意长度的明文,就需要对分组密码进行迭代。其中分组密码的迭代方式就称为分组密码模式

常用的分组模式主要有ECB、CBC,下面来分别进行介绍

ECB

ECB 模式全称“Electronic CodeBook”模式,在 ECB 模式中,将明文分组加密之后的结果直接就是密文分组,中间不做任何的变换。

简单来说,ECB就是一个电子密码本模式每一块数据,独立加密,独立解密,如果其中一块丢失,并不会影响其他数据块。如下图所示

ECB模式

ECB是最基本的加密模式,即通常理解的加密,相同的明文将永远加密成相同的密文,无初始向量,容易受到密码本重放攻击,一般情况下很少用

缺点

由于ECB的加密和解密都非常直接,所以可以根据密文中存在多少种重复的组合就能以此推测明文,来破译密码。所以ECB模式存在安全风险,使用的人很少。

CBC

CBC 模式的全称是 Cipher Block Chaining 模式,密文分组链接模式。名字中也展示它的实质,像链条一样相互链接在一起。使用一个密钥和一个初始化向量[IV]对数据执行加密

简单理解就是,同ECB一样,也是一块一块的加密,但是后一块数据的加密与前一块数据室友关联的,解密也是如此,如下所示

CBC模式

明文被加密前要与前面的密文进行异或运算后再加密,因此只要选择不同的初始向量,相同的密文加密后会形成不同的密文,这是目前引用最广泛的模式,CBC加密后的密文是上下文相关的,但明文的错误不会传递到后续分组,但如果一个分组丢失,后面的分组将全部作废(同步错误)

ECB与CBC对比

  • ECB模式只进行了加密

  • CBC模式则是在加密之前进行了一次 XOR(即异或),这样就完美了克服了 ECB 的缺点了

    ECB与CBC对比

优点

CBC模式采用链接模式,可以有效的保证密文的完整性,如果一个数据块在传递是丢失还是改变,后面的数据将无法正常解密

缺点

一个比特位的缺失就会导致整个密文无法解析。这算是 CBC 链式的一个“小缺点”。相对ECB而言,更安全

总结

  • 对称算法:加解密使用同一个key

  • 常用的对称算法

    • DES:数据加密标准,因为强度不够,所以使用很少

    • 3DES:使用3个密钥,多相同的数据进行加密,相比DES而言,强度增强

    • AES:高级密码标准

  • 常用的分组模式

    • ECB:电子密码本模式,每一块数据独立加密、独立解密

    • CBC:分组密码采用链接模式,使用一个密钥和一个初始化向量[IV]对数据执行加密,即上下文是关联的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容