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

时间:2021-07-02 23:19:00   收藏:0   阅读:51

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

对称加密

对称加密

对称加密过程

对称加密优点

对称加密的缺点

常见的对称加密算法

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

DES

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

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

3DES

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

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

AES

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

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

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

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

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

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

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

优点

参考链接

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

分组模式

由于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对比

优点

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

缺点

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

总结

?

?

原文:https://blog.51cto.com/u_12801393/2972042

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!