數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

信息時代,無紙化辦公已經(jīng)得到廣泛的應(yīng)用,通過Internet進行業(yè)務(wù)處理與通信非常普及,在信息傳榆過程中,數(shù)據(jù)文件的安全性尤為重要。數(shù)據(jù)文件加密可以保證數(shù)據(jù)的安全性,那么我今天就給大家講一下數(shù)據(jù)文件加密是如何用Rijndael加密算法實現(xiàn)的。

一、數(shù)據(jù)文件加密_

計算機密碼學(xué)是解決網(wǎng)絡(luò)安全問題的技術(shù)基礎(chǔ),是一個專門的研究領(lǐng)域,密碼技術(shù)主要包括文件加密、解密、認(rèn)證、數(shù)字簽名、簽名識別。密碼學(xué)主要包括安全管理、安全協(xié)議設(shè)計、秘密分存、散列函數(shù)等內(nèi)容。

二、Rijndael加密算法

Rijndael加密算法是一個可以反復(fù)運算的加密算法,它允許可變動的數(shù)據(jù)區(qū)塊及密鑰的長度。數(shù)據(jù)區(qū)塊與密鑰長度的變動是各自獨立的。在Rijndael加密算法中定義了幾個名詞,分述如下:

Cipher Key:用來做加密運算的密鑰,形式是一個4× Nk的矩陣,Nk可由金鑰長度除以32位求得,也就是把金鑰分割成Nk個32位的子密鑰。

State:在運算過程中所產(chǎn)生的中間值,是一個4×Nb的矩陣,Nb可由數(shù)據(jù)長度除以32位求得,也就是把數(shù)據(jù)分割成Nb個區(qū)塊。

在Rijndael加密算法中,運算的回合數(shù)(Nr)是由Nb及Nk所決定的,回合數(shù)的變動定義見表1。

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)
Rijndael加密算法的特點:數(shù)據(jù)處理速度快;密鑰管理方便;通信前無需秘密分配密鑰,密鑰更新容易;很高的安全性;設(shè)計方便。

三、Rijndael加密算法分析

Rijndael加密算法是一個數(shù)據(jù)塊長度和密鑰長度均可變的迭代分組密碼。Rijndael加密算法相關(guān)參數(shù)值定義如下:

第一、分組和密鑰,分別為128、192或256Bits;

第二、當(dāng)分組長是128bit,密鑰長度為Kbit,輪數(shù)為r為K/32+6;

第三、當(dāng)密鑰長度是128、192、256,對應(yīng)輪數(shù)為10、12、14。

具體狀態(tài)見Rijndael加密算法編排表和密鑰編排表:

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

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

Rijndael加密算法利用4個基本的運算將一個狀態(tài)A=(A(i,j))組成,它的實現(xiàn)過程如下:

1、Substitution變換

Substitution字節(jié)替換運算是非線性字節(jié)置換,它作用于狀態(tài)中的每個字節(jié),置換過程可逆,整個轉(zhuǎn)換過程包括以下兩個變換:乘法逆,仿射變換。

2、 ShiftRow變換

ShiftRow移位行運算是將狀態(tài)行循環(huán)移位,Bij=Ai(j+i)mod4,如表2所示。

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)
3、MixColumn變換

MixColumn變換混合列運算是將狀態(tài)列看作域GF(28)中的多項式與一固定多項式C(x)相乘然后模x4+1,C(x)=’03’x3+'01’x2+’01’x+'02’這個多項式與x4+1互質(zhì),過程也是可逆的。該過程用矩陣表示為:

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

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

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

六、密鑰編排

密鑰編排由密鑰擴展和輪密鑰選擇兩部分組成.密鑰經(jīng)過密鑰編排得到輪密鑰,輪密鑰的比特數(shù)由密鑰編排為其產(chǎn)生,輪密鑰的比特總數(shù)為N(R+1),N為分組長度,R為輪數(shù)。

七、數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

1、密鑰的數(shù)據(jù)文件見圖1。

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

2、分組的數(shù)據(jù)流見圖2。

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

3、Rijndael加密算法給數(shù)據(jù)文件加密流程見圖3。

數(shù)據(jù)文件加密如何用Rijndael加密算法實現(xiàn)

Rijndael數(shù)據(jù)加密算法保證了網(wǎng)絡(luò)傳輸過程中信息的安全性,Rijndael加密算法具有軟硬件無關(guān)性,在不同的軟硬件環(huán)境下都可行,Rijndael加密算法對系統(tǒng)硬件要求也不高,內(nèi)存很小的平臺中也可以應(yīng)用。

小知識之散列函數(shù)

一般的線性表,樹中,記錄在結(jié)構(gòu)中的相對位置是隨機的,即和記錄的關(guān)鍵字之間不存在確定的關(guān)系,因此,在結(jié)構(gòu)中查找記錄時需進行一系列和關(guān)鍵字的比較。這一類查找方法建立在“比較“的基礎(chǔ)上,查找的效率依賴于查找過程中所進行的比較次數(shù)。 理想的情況是能直接找到需要的記錄,因此必須在記錄的存儲位置和它的關(guān)鍵字之間建立一個確定的對應(yīng)關(guān)系f,使每個關(guān)鍵字和結(jié)構(gòu)中一個唯一的存儲位置相對應(yīng)。