Rijndael的加密解密要经过多次的数据变换操作,每一次变换操作都会产生一个中间结果,我们称这个中间结果为状态。算法的所有操作都以状态为对象进行,每个状态可由字节的矩阵列表示,这种矩阵立列包含4行,矩阵列的列数目可以由Nb表示。密钥列表用Nk表示。他等于密钥的长度除以32.
从某种意义上来讲,这些数据也可以看作是4字节的一维向量,每个向量由相应的矩阵的一个列组成。Nb于Nk的可取值为4、6、8,下面的矩阵的形式由列出Nb不同取值情况下的数组结构:
以下为Nk不同取值情况下数组的矩阵形式:
算法中的加密解密是迭代进行的,它的重复次数成为轮数,用Nr来表示。Nr由Nb和Nk共同决定。
(1)字节置换
字节置换是一种非线性的置换,字节置换对分组矩阵的每个字节执行一次非线性字节替换操作。假设a(x)为状态数组中的一个字节,采用多项式表示,讲GF中的元素用多项式的形式表示,且系数是GF2中的元素。值得一提的是,字节替换作为Rijndael算法的唯一一个非线性运算,是整个算法中的最关键部分,也是最复杂的部分。
(2)行位移
行位移将状态数组的每一行进行循环左移操作,位移量随着不同的行而有所不同。其中,第0行的位移为0,第一行循环左移c1字节,第二行循环左移c2字节。位移操作是算法中的一个基本的操作,无论是在加密过程中的初始轮还是在加密过程中的中间轮,位移的操作一直存在。
(3)列混合
在列混合变换中,将一个列视为上的多项式,再与一个固定的模式进行乘法,上面的公式运算可以展开为有限的加法与乘法运算,从而在很大程度上简化了运算的复杂度。列混合并没有贯穿夹击算法的整个流程,在最后一轮的运算并没有包含列混合的操作。
(4)添加密钥
在添加密钥变换中,每一轮的密钥被加载状态数组上,有限域上的假发相当于亦或操作。其中轮密钥由密钥调度模块产生,它由Nb个列组成。这Nb个列被加到状态数组中的每一列上。
(5)轮密钥表
在AES算法中,一共要产生Nb(nr+1)个字的密钥。轮密钥是由初始密钥产生的,它分为两个步骤进行:密钥扩展与轮密钥的选择,且遵循一定的原则。
如何有效防止源代码泄密?马上为你指点迷津
大家是不是常常担心自己的源代码会被泄露?一旦泄露,不但将面临经济损失,而且还将耗费大家的技术成果。别担心,此次我会给你一些建议,告诉你如何有效地防止源代码的泄露!一、为什么源代码容易泄密?首先,咱们得明白,源代码为什么容易泄密。其实,原因有很多,比如:员工离职时带走源代码;团队成员不小心将源代码上传到公共平台;黑客攻击...
如何快速为U盘设置密码,防止数据泄露
你们是不是经常带着U盘到处跑,存着各种重要的文件、照片或者资料?是不是有时候还会担心,万一U盘丢了,里面的数据可咋整?别担心,今天我就来教大家一个简单又实用的方法——给U盘设置密码,让你的数据安全得到全方位的保障!一、为什么要给U盘设置密码?首先,咱们得明白,U盘虽小,但里面的数据可都是宝贝啊!一旦U盘丢失或被不法分子...
企业网络安全准入的实践与常见误区
企业数据与血液一样重要,一旦泄漏或被篡改,后果很严重。你企业网络大门如果是敞开的,任何人都可以随意进出,你的重要材料、客户资料,乃至商业机密,都将面临失窃或破坏风险。这不是骇人听闻,企业网络安全准入,是守护您数据安全的“大门”。今日,我们将探讨企业网络安全准入的良好实践和常见误区,给您创建扎实的防御,同时避免那些“坑”...
打造完美办公环境:十大电脑桌面管理软件推荐
在日复一日的忙碌工作中,你的电脑桌面是不是经常杂乱无章,文件、图标散落一地,让人看得眼花缭乱?别急,今天我们就来聊聊如何借助一些实用的电脑桌面管理软件,轻松打造一个整洁、高效、个性化的办公环境。精心挑选的十大软件,总有一款能击中你的心!一、Fences:给你的桌面建个“围栏”你的桌面就像一个大农场,文件、图标就是那些散...
提高工作效率:公司监控上网记录的必要性
网络就像一座无形桥,连接着世界的每一个角落,让我们的工作方便快捷高效。可是,您有没有注意到,当互联网成为我们的工作助手时,它可能会悄悄的影响了每个人工作效率?今日,让我们来谈谈为何企业应该监控上网记录。一、网络是一把双刃剑:方便与诱惑并存想象一下,你坐在电脑前,准备开始一天紧张的工作。忽然,一个网络广告吸引了你注意,你...