宋晓静
(保定职业技术学院,河北 保定 071000)
在物联网技术飞速发展的背景下,虽然物联网的智能化水平不断提升,但是其安全性也受到了相应的威胁。在信息安全与隐私保护方面,物联网终端的接入在一定程度上提升了数据信息泄露的概率。云计算技术作为现阶段广泛使用的一种数据存储技术,在存储技术的作用下,虽然为用户访问数据提供了便捷,但是在服务商系统出现问题后,云端的数据也会出现泄露、丢失的情况。为了有效提升数据的安全性,保护用户数据隐私,在数据上传前需对其进行相应的加密处理。高级加密标准(Advanced Encryption Standard,AES)作为现阶段常用的一种加密方案,虽然在一定程度上提升了数据存储的安全性,但是也存在相应的不足。AES属于一种对称加密算法,可同时处理128位数据块。在采用此种算法进行加密的过程中,需在4×4的位元矩阵上进行加密,其加密步骤为:替换字节→行位移→列混淆→加轮密钥,除了替换字节之外,其他步骤均为线性。由此得知,128位的输出块属于输出位的线性组合,并且后3个步骤在具体的实现难度上相对较低[1]。此外,由于字节替换为非线性,需通过施加S盒完成替换,目前主要是通过查表法实现S盒,由于此种方法在AES算法中存在相应的缺陷,导致硬件开销增大。针对此种情况,本文在AES隐私保护加密算法的基础上,对其进行了优化。
在通常情况下,若使用S盒代替 AES中的混乱原则,需通过混合列运算的方式来实现,在 AES加密算法的优化中,主要是从扩散性上进行改进[2]。目前,学术界主要是将扩散分支数作为扩散能力的指标,具体描述如下。
假设,F为加密过程中的字节向量,在对其进行线性变换后,可将其表示为(F2m)n→(F2m)n,非零字节W(α)数量则通过权重的方式进行表示。此时线性变换后的分支数量可通过下列公式进计算,即:
(1)
在式(1)中,α=(α1,α2,…,αn)∈(F2m)n。此时,AES使用的变换函数为:
(F28)4/x4+1
(2)
此时,变换过程中使用的可逆多项式为c(x),且ci≠0|0≤i≤3。由此得知,W(α)的取值范围为{1,2,3,4}。
假设:
α=[α0,3α1,α2,α3]T∈(F28)4
(3)
f(α)=[b0,b1,b2,b3]T
(4)
在W(α)=1的情况下,可得:
bi=ci+3bmod4·aixjbmodx4+1≠0
(5)
由此得知,W(α)+W(f(α))=9;
在W(α)=i|2≤i≤4的情况下,若α、f(α)≠0,则W(α)+W(f(α))≥i+1。对于扩散分支数的上界而言,需满足B(f)≤n+1=5,由此得出(F28)4/x4+1的分支区间位于[3,5]。当使用AES算法的过程中,采用了相对交单的多项式,即:
c(x)+03·x3+01·x2+01·x+02
(6)
由此得知B(f)=5,可满足扩散层的需求。
在 AES算法中,列混淆主要是利用循环矩阵最大距离可分码的特点。
若矩阵G由线性码(n,l,d)生成,则有:
d=n-l+1
(7)
式(7)中,n、l分别表示码长、码维。
假设矩阵C在有限域为GF(28)上的最大可分码为(6,3,4),则矩阵G可表示为:
G=[I|C]
(8)
此时线性码生成的矩阵G为矩阵C中最右边的一块,在矩阵G中,I为一个3阶单位的矩阵。为确保加密过程中线性变换始终保持矩阵的长充,并且字码之间的距离未发生变化,则不需要考虑矩阵C左边的部分,即构建最大距离可分码的矩阵是最优扩散层的充要条件[3]。
本研究主要是采用8×8的哈达玛矩阵来进行扩充,将分支数从最初的5逐渐扩展至9,此时最大的线性分码为(16,8,9),哈达玛矩阵定义如下。
若哈达玛矩阵中包含n个元素(α1,α2,α3,…,αn),则矩阵中每个元素的构造可表示为:
Ai,j=αi⊕ j
(9)
在GF(28)中有:
A2=k·In(k为常数)
(10)
在k取1的情况下,矩阵A为对合矩阵。
例如,哈达玛系数为{01,03,04,05,06,08,0B,07}时,其对应的构造矩阵为:
(11)
对于 AES而言,可通过大小为4×4的矩阵表示其中的16字节状态,在对其进行优化改进后,通过大小为8×2的字节表示其中列混淆状态信息,并将其与A进行相乘,然后再将积进行转换处理,以此便能得到大小为4×4的矩阵。由于A属于对合矩阵,在将其进行逆转后,其状态信息保持不变。因此,在列混淆的过程中,可降低电路解密的复杂充,以此来减少硬件上的开销[4]。
1.2.1 暴力攻击
此种攻击方式较为复杂,在破解密码是难度相对较大,难以在破解过程中获取对应的密钥。
1.2.2 差分攻击
此种攻击方式消耗的时间相对较长,并且损耗的数据量大,只需通过 AES算法中的宽轨迹策略便能防御。
1.2.3 线性攻击
此种方法主要是通过线性分析的方式对S盒进行攻击,由于优化后S盒为非线性,改进后的AES算法可对其进行有效防御。
通过上述分析发现,优化后的AES加密模式具备较强的数据防护能力,这主要是由于S盒可通过逆运算来构造相应的差分分布表,在一定程度上提升了存储数据的安全性。
在用户采用优化改进后的AES进行云数据加密前,需根据云服务上的标识获取相应的API接口,然后再通过对应的标识符获取相应的权限,此时用户便能通过相应的操作渠道发送相应的数据操作请求。在得到允许后,便可以根据用户的实际需求设置对应的密钥参数,自动生成密钥,最后再确定相应的轮数;轮数确定后,对密钥进行扩展,可通过扩展函数Key Expansion实现;扩展完成后,将用户需要输入的数据进行16字节分组,若部分数据不属于16字节倍数,需用字节填充,填充完成后,将原密钥以及分组状态进行加轮,然后再使用S盒替换查表,同时完成行位移,此时矩阵形式便会转变,进而得到大小为8×2的矩阵;在获取相应的转换矩阵后,根据上述操作将其与哈达玛矩阵相乘,此时便能得到大小为4×4的状态矩阵;选择扩展密钥其中的一个轮密钥,对其进行加轮,在轮数小于n-1时,需重新进行行位移,在轮数等于n-1时,则可进行下一步操作[5]。
此时,用户便可通过API接口将加密后的数据上传至云端,云端会将生成的扩展密钥保存至用户管理中心,在用户需要访问存储的数据信息时,通过建立连接通道的方式,下载云端中的加密文件,并从管理中心取出对应的密钥,对其进行解密后便能获取相应的数据信息。
当前使用AES算法的硬件多为8位或者是16位的单片机。CPU的参数为16位核心,主频率为20 MHz以及一个32 kB容量的闪存。实验的加密模拟结果如下。
为分析AES算法优化前后的加密模拟结果,分别对其进行10轮模拟,结果如表1所示。
表1 10轮优化前后的AES算法加密模拟结果
通过分析表1的数据得知,优化前后加密结果只是在列混淆上存在差异,其他均相同。两种加密模式的时钟周期对比如图1所示。
图1 两种加密模式的时钟周期对比
从图1中可明确看出,优化后的AES列混淆时所消耗的周期相对较长,相比优化前多出了40个周期,说明AES优化后的加密需多出5%的时间消耗,但是由于优化前后的开销处于同一数量级,虽然优化后的AES花费时间较长,但是扩展能力相对较高,并且安全性较高,由此说明了优化后的AES算法对数据隐私的保护较为安全。
为有效提升数据隐私保护的安全性,在传统AES模式的基础上对其进行优化,通过哈达玛矩阵实现矩阵的替换,不仅有效扩展了分支数,而且扩展性也不会给算法造成太大的性能开销,可有效满足云计算环境下数据隐私保护的需求。