信息时代,无纸化办公已经得到广泛的应用,通过Internet进行业务处理与通信非常普及,在信息传榆过程中,数据文件的安全性尤为重要。数据文件加密可以保证数据的安全性,那么我今天就给大家讲一下数据文件加密是如何用Rijndael加密算法实现的。

一、数据文件加密_

计算机密码学是解决网络安全问题的技术基础,是一个专门的研究领域,密码技术主要包括文件加密、解密、认证、数字签名、签名识别。密码学主要包括安全管理、安全协议设计、秘密分存、散列函数等内容。

二、Rijndael加密算法

Rijndael加密算法是一个可以反复运算的加密算法,它允许可变动的数据区块及密钥的长度。数据区块与密钥长度的变动是各自独立的。在Rijndael加密算法中定义了几个名词,分述如下:

Cipher Key:用来做加密运算的密钥,形式是一个4× Nk的矩阵,Nk可由金钥长度除以32位求得,也就是把金钥分割成Nk个32位的子密钥。

State:在运算过程中所产生的中间值,是一个4×Nb的矩阵,Nb可由数据长度除以32位求得,也就是把数据分割成Nb个区块。

在Rijndael加密算法中,运算的回合数(Nr)是由Nb及Nk所决定的,回合数的变动定义见表1。

数据文件加密如何用Rijndael加密算法实现
Rijndael加密算法的特点:数据处理速度快;密钥管理方便;通信前无需秘密分配密钥,密钥更新容易;很高的安全性;设计方便。

三、Rijndael加密算法分析

Rijndael加密算法是一个数据块长度和密钥长度均可变的迭代分组密码。Rijndael加密算法相关参数值定义如下:

第一、分组和密钥,分别为128、192或256Bits;

第二、当分组长是128bit,密钥长度为Kbit,轮数为r为K/32+6;

第三、当密钥长度是128、192、256,对应轮数为10、12、14。

具体状态见Rijndael加密算法编排表和密钥编排表:

数据文件加密如何用Rijndael加密算法实现

四、Rijndael加密算法的加密过程

Rijndael加密算法利用4个基本的运算将一个状态A=(A(i,j))组成,它的实现过程如下:

1、Substitution变换

Substitution字节替换运算是非线性字节置换,它作用于状态中的每个字节,置换过程可逆,整个转换过程包括以下两个变换:乘法逆,仿射变换。

2、 ShiftRow变换

ShiftRow移位行运算是将状态行循环移位,Bij=Ai(j+i)mod4,如表2所示。

数据文件加密如何用Rijndael加密算法实现
3、MixColumn变换

MixColumn变换混合列运算是将状态列看作域GF(28)中的多项式与一固定多项式C(x)相乘然后模x4+1,C(x)=’03’x3+'01’x2+’01’x+'02’这个多项式与x4+1互质,过程也是可逆的。该过程用矩阵表示为:

数据文件加密如何用Rijndael加密算法实现

五、Rijndael加密算法的解密过程

Rijndael加密算法的解密过程是上述加密过程的逆过程,因此Rijndael加密算法是可逆的。

六、密钥编排

密钥编排由密钥扩展和轮密钥选择两部分组成.密钥经过密钥编排得到轮密钥,轮密钥的比特数由密钥编排为其产生,轮密钥的比特总数为N(R+1),N为分组长度,R为轮数。

七、数据文件加密如何用Rijndael加密算法实现

1、密钥的数据文件见图1。

数据文件加密如何用Rijndael加密算法实现

2、分组的数据流见图2。

数据文件加密如何用Rijndael加密算法实现

3、Rijndael加密算法给数据文件加密流程见图3。

数据文件加密如何用Rijndael加密算法实现

Rijndael数据加密算法保证了网络传输过程中信息的安全性,Rijndael加密算法具有软硬件无关性,在不同的软硬件环境下都可行,Rijndael加密算法对系统硬件要求也不高,内存很小的平台中也可以应用。

小知识之散列函数

一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。