aes加密器(aes加密工具类)

2023-03-02 19:14:03 密语知识 思思

IOS AES加密

AES加密有四种工作模式:ECB、CBC、CFB和OFB,其中IOS支持ECB(kCCOptionPKCS7Padding 对应Java中的kCCOptionPKCS5Padding)和CBC(kCCOptionECBMode)

AES是开发中常用的加密算法之一。然而由于前后端开发使用的语言不统一,导致经常出现前端加密而后端不能解密的情况出现。然而无论什么语言系统,AES的算法总是相同的, 因此导致结果不一致的原因在于 加密设置的参数不一致 。于是先来看看在两个平台使用AES加密时需要统一的几个参数。

参考:

ios中使用AES128位 ECB模式加密 结果转换16进制

与服务器通讯的时候,除了确定密钥外,加密模式和填充方式也要确定。第一个例子中,就是使用了kCCOptionPKCS7Padding加密模式,并且有IV(初始向量),而第二个例子中使用了ECB(没有补码方式)。

此外也要注意转码后的密文是转成16进制,还是base64编码。

参考链接:

aes加密器(aes加密工具类) 第1张

wpa-psk 的AES 和TKIP 有什么区别

AES和TKIP的区别在于:

1、加密算法不同

TKIP负责处理无线安全问题的加密部分,TKIP是包裹在已有WEP密码外围的一层“外壳”,

这种加密方式在尽可能使用WEP算法的同时消除了已知的WEP缺点。  AES是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。

2、密钥长度不同

TKIP中密码使用的密钥长度为128位,AES可以使用128、192 和 256 位密钥,并且用 128

位(16字节)分组加密和解密数据。

3、加密性能不同

AES提供了比TKIP更加高级的加密技术,现在无线路由器都提供了这2种算法,不过比较倾向于AES。TKIP安全性不如AES,而且在使用TKIP算法时路由器的吞吐量会下降3成至5成,大大地影响了路由器的性能。

扩展资料

TKIP的特性

TKIP是包裹在已有WEP密码外围的一层“外壳”。TKIP由WEP使用的同样的加密引擎和RC4算法组成。不过,TKIP中密码使用的密钥长度为128位。这解决了WEP的第一个问题:过短的密钥长度。

TKIP的一个重要特性,是它变化每个数据包所使用的密钥。这就是它名称中“动态”的出处。密钥通过将多种因素混合在一起生成,包括基本密钥(即TKIP中所谓的成对瞬时密钥)、发射站的MAC地址以及数据包的序列号。混合操作在设计上将对无线站和接入点的要求减少到最低程度,但仍具有足够的密码强度,使它不能被轻易破译。

利用TKIP传送的每一个数据包都具有独有的48位序列号,这个序列号在每次传送新数据包时递增,并被用作初始化向量和密钥的一部分。将序列号加到密钥中,确保了每个数据包使用不同的密钥。这解决了WEP的另一个问题,即所谓的“碰撞攻击”。这种攻击发生在两个不同数据包使用同样的密钥时。在使用不同的密钥时,不会出现碰撞。

AES的加密标准

AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。

AES的基本要求是,采用对称分组密码体制,密钥的长度最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES.

参考资料来源:百度百科-AES

参考资料来源:百度百科-TKIP

什么是AES算法

加密算法分为单向加密和双向加密。

单向加密 包括 MD5 , SHA 等摘要算法。单向加密算法是不可逆的,也就是无法将加密后的数据恢复成原始数据,除非采取碰撞攻击和穷举的方式。像是银行账户密码的存储,一般采用的就是单向加密的方式。

双向加密 是可逆的,存在密文的密钥,持有密文的一方可以根据密钥解密得到原始明文,一般用于发送方和接收方都能通过密钥获取明文的情况。双向加密包括对称加密和非对称加密。对称加密包括 DES 加密, AES 加密等,非对称加密包括 RSA 加密, ECC 加密。

AES 算法全称 Advanced Encryption Standard ,是 DES 算法的替代者,也是当今最流行的对称加密算法之一。

要想学习AES算法,首先要弄清楚三个基本的概念:密钥、填充、模式。

密钥是 AES 算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文的加密和解密需要使用同一个密钥。

AES支持三种长度的密钥:

128位,192位,256位

平时大家所说的AES128,AES192,AES256,实际上就是指的AES算法对不同长度密钥的使用。从安全性来看,AES256安全性最高。从性能来看,AES128性能最高。本质原因是它们的加密处理轮数不同。

要想了解填充的概念,我们先要了解AES的分组加密特性。AES算法在对明文加密的时候,并不是把整个明文一股脑加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。

这些明文块经过AES加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密结果。

但是这里涉及到一个问题:

假如一段明文长度是192bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding)。AES在不同的语言实现中有许多不同的填充算法,我们只举出集中典型的填充来介绍一下。

不做任何填充,但是要求明文必须是16字节的整数倍。

如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字符,且每个字节的值等于缺少的字符数。

比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则补全为{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}

如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数。

比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则可能补全为{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}

需要注意的是,如果在AES加密的时候使用了某一种填充方式,解密的时候也必须采用同样的填充方式。

AES的工作模式,体现在把明文块加密成密文块的处理过程中。AES加密算法提供了五种不同的工作模式:

ECB、CBC、CTR、CFB、OFB

模式之间的主题思想是近似的,在处理细节上有一些差别。我们这一期只介绍各个模式的基本定义。

电码本模式 Electronic Codebook Book

密码分组链接模式 CipherBlock Chaining

计算器模式 Counter

密码反馈模式 CipherFeedBack

输出反馈模式 OutputFeedBack

如果在AES加密的时候使用了某一种工作模式,解密的时候也必须采用同样的工作模式。

AES加密主要包括两个步骤: 密钥扩展 和 明文加密 。

密钥扩展过程说明(密钥为16字节):

函数g的流程说明:

轮常量(Rcon)是一个字,最右边三个字节总为0。因此字与Rcon相异或,其结果只是与该字最左的那个字节相异或。每轮的轮常量不同,定位为Rcon[j] = (RC[j], 0, 0, 0)。(RC是一维数组)

RC生成函数:RC[1] = 1, RC[j] = 2 * RC[j – 1]。

因为16字节密钥的只进行10轮的扩展,所以最后生成的RC[j]的值按16进制表示为:

十轮的密钥扩展后,就能生成44个字大小的扩展密钥。扩展后的密钥将用于AES对明文的加密过程。

S盒是16×16个字节组成的矩阵,行列的索引值分别从0开始,到十六进制的F结束,每个字节的范围为(00-FF)。

进行字节代替的时候,把状态中的每个字节分为高4位和低4位。高4位作为行值,低4位作为列值,以这些行列值作为索引从S盒的对应位置取出元素作为输出,如下图所示:

S盒的构造方式如下:

(1) 按字节值得升序逐行初始化S盒。在行y列x的字节值是{yx}。

(2) 把S盒中的每个字节映射为它在有限域GF中的逆;{00}映射为它自身{00}。

(3) 把S盒中的每个字节的8个构成位记为(b7, b6, b5, b4, b3, b2, b1)。对S盒的每个字节的每个位做如下的变换:

ci指的是值为{63}的字节c的第i位。

解密过程逆字节代替使用的是逆S盒,构造方式为

字节d={05}。

逆向行移位将状态中后三行执行相反方向的移位操作,如第二行向右循环移动一个字节,其他行类似。

要注意,图示的矩阵的乘法和加法都是定义在GF(2^8)上的。

逆向列混淆原理如下:

轮密钥加后的分组再进行一次轮密钥加就能恢复原值.所以,只要经过密钥扩展和明文加密,就能将明文加密成密文,进行解密的时候,只需要进行逆向变换即可。

图[AES加密算法的流程]中还需要注意,明文输入到输入状态后,需要进行一轮的轮密钥加,对输入状态进行初始化。 前9轮的加密过程,都需要进行字节替代、行移位、列混淆和轮密钥加,但是第10轮则不再需要进行列混淆。

进行解密的时候,需要进行逆向字节替代,逆向行移位、逆向列混淆和轮密钥加。

aes是什么意思?

aes的意思是:

1、密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

2、原子发射光谱原子发射光谱法(Atomic Emission Spectrometry,简称AES),是利用物质在热激发或电激发下,不同元素的原子或离子发射特征光谱的差别来判断物质的组成,并进而进行元素的定性与定量分析的方法。

AES加密

AES加密过程又包括一个作为初始轮的初始密钥加法(AddRoundKey),接着进行9次轮变换(Round),最后再使用一个轮变换(FinalRound),如图2.1 AES算法加密实现过程所示。

每一次Round均由SubBytes,ShiftRows,MixColumns和AddRoundKey共4个步骤构成,FinalRound包含除MixColumns这一步外的其他3个步骤。轮变换及其每一步均作用在中间结果上,将该中间结果称为状态,可以形象地表示为一个4*4 B的矩阵。

AES加密算法原理

一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,本文对对称加密和分组加密中的几种种模式进行一一分析(ECB、CBC、CFB、OFB,CTR)

这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。

优点:

这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。

优点:

计算器模式不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是 在计算器不能维持很长的情况下,密钥只能使用一次 。CTR的示意图如下所示:

优点:

优点:

优点:

加密类型aes是什么意思

1、TKIP: Temporal Key Integrity Protocol(暂时密钥集成协议)负责处理无线安全问题的加密部分,TKIP是包裹在已有WEP密码外围的一层“外壳”, 这种加密方式在尽可能使用WEP算法的同时消除了已知的WEP缺点

2、AES:Advanced Encryption Standard(高级加密标准),是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。 AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。

总而言之AES提供了比 TKIP更加高级的加密技术, 现在无线路由器都提供了这2种算法,不过比较倾向于AES。TKIP安全性不如AES,而且在使用TKIP算法时路由器的吞吐量会下降3成至5成,大大地影响了路由器的性能。