999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Rijndael算法的研究和應用

2012-04-11 02:10:22張青鳳張鳳琴

張青鳳,張鳳琴

(1.運城學院公共計算機教學部,山西運城044000;2.空軍工程大學計算機系,陜西西安710071)

2001年美國國家標準技術協會已經將Rijndael算法作為下一代對稱密碼算法的標準,該算法借鑒了很多Square算法的設計思想。它允許128,192,256位密鑰長度,不僅能夠在128位分組上工作,也能夠在不同的硬件上工作[1-3]。

1 Rijndael算法簡介

Rijndael屬對稱加密,是一種可變數據塊長和可變密鑰長的迭代分組加密算法,在安全、性能、效率、可實現、靈活等多方面有優點,它被設計成數據塊長、密鑰長為128/192/256三個可選長度,來加密128bit分組,相應的加密輪數分別為10/12/14,每一輪循環都有一個循環密鑰,它來自于初始密鑰[4-5]。

2 Rijndael基本術語

2.1 狀態

狀態由一個4行、Nb列的二維字節數組表示,Nb等于數據塊長度除以32,取Nb=4時的狀態為:

2.2 分組密鑰

Rijindael的消息組a00長度和密鑰長度可以是128/192/256比特。為了方便數據的計算和算法的描述,限制密鑰長度為128位,128位輸入分成16個字節,每字節8位,密碼也類似由一個4階方陣組成,NK等于密碼的長度除以32:

2.3 有限域GF(28)

有限域中的元素是按字節計算的,GF(28)的元素代表8比特的字節。例如x7+x6+x3+x+1代表11001011,Rijindael算法選擇的多項式為x8+x4+x3+x+1。

2.4 加密輪數Nr

設Nb為一個消息組經上述處理后得到的字的個數,Nk為加密密鑰處理后的字的個數。那么Nb=4,6,8;Nk=4,6,8,加密的輪數Nr根據表1由Nb和Nk控制。

3 Rijndael算法的實現

Rijindael算法由10輪、12輪、14輪循環組成,加密過程的每輪循環都有一個循環密鑰,每輪循環有4個基本步驟組成:字節轉換、移動行變換、混合列變換、加循環密鑰。因屬對稱加密,在加密和解密時都使用相同的密鑰。

表1 密鑰長度Nb、加密分組長、加密輪數Nr之間的關系

3.1 加密過程

(1)取明文分組為128bit的數據X,

(2)與原始密鑰k1異或

(3)s盒變換

(4)行置換

(5)列置換

(6)與子密鑰Ki異或

(7)重復(3)~(6)

3.2 解密過程

(1)取加密分組數據S

(2)與子密鑰 Ki+1異或

(3)反行置換

(4)反盒置換

(5)與子密鑰Ki異或

(6)反列置換

(7)得解密分組數據

(8)恢復明文分組數據

4 Rijndael算法在文件加解密過程的應用

Rijindael算法常被用于文件的加解密過程,加密時先將讀入的明文依次分組,用加密密鑰將明文加密后寫入文件中;解密時用解密密鑰將文件中的密文解密后將明文寫入結果文件中。

4.1 加密實現關鍵代碼

public static void EncryptTextToFile(String Data,String FileName,byte[]Key,byte[]IV)

{

try

{//創建文件

FileStream fStream = File.Open(FileName,File-Mode.OpenOrCreate);

//創建新的Rijndael對象

Rijndael RijndaelAlg = Rijndael.Create();

//創建加密流,以passed key和initialization vector(IV)填充

CryptoStream cStream=new CryptoStream(fStream,Ri

jndaelAlg.CreateEncryptor(Key,IV),

CryptoStreamMode.Write);

//用加密流創建StreamWriter StreamWriter sWriter=new StreamWriter(cStream);

try

{//加密

sWriter.WriteLine(Data);

}

catch(Exception e)

{

Console.WriteLine("An error occurred:{0}",e.Message);

}

finally

{//關閉文件

sWriter.Close();

cStream.Close();

fStream.Close();

}

}

catch(CryptographicException e)

{

Console.WriteLine("A Cryptographic error occurred:{0}",e.Message);

}

catch(UnauthorizedAccessException e)

{

Console.WriteLine("A file error occurred:{0}",e.Message);

}

}

4.2 解密

從文件中讀取密文實現關鍵代碼:

public static string DecryptTextFromFile(String File-

Name,byte[]Key,byte[]IV)

{

try

{//創建文件流

FileStream fStream = File.Open(FileName,File-Mode.OpenOrCreate);

//創建新的Rijndael對象

Rijndael RijndaelAlg = Rijndael.Create();

//創建加密流,以 passed key和 initialization vector(IV)填充

CryptoStream cStream=new CryptoStream(fStream,RijndaelAlg.CreateDecryptor(Key,IV),

CryptoStreamMode.Read);//用加密流創建StreamWriter

StreamReader sReader=new StreamReader(cStream);string val=null;

try

{//解密

val= sReader.ReadLine();

}

catch(Exception e)

{

Console.WriteLine("An error occurred:{0}",e.Message);

}

finally

{//關閉文件

sReader.Close();

cStream.Close();

fStream.Close();

}

//返回密碼結果

return val;

}

catch(CryptographicException e)

{

Console.WriteLine("A Cryptographic error occurred:{0}",e.Message);

return null;

}

catch(UnauthorizedAccessException e)

{

Console.WriteLine("A file error occurred:{0}",e.Message);return null;

}

}

4.3 實際實現過程

try

{//創建新的Rijndael對象以產生Key和IV(初始化向量)

Rijndael RijndaelAlg = Rijndael.Create ();//需要加密的字符串及保存的文件名

string sData="Here is some data to encrypt.";

string FileName="CText.txt";

//利用Key和IV加密字符串到文件中Encrypt-TextToFile(sData,FileName,RijndaelAlg.Key,RijndaelAlg.IV);

//利用Key和IV從文件中解密

string Final=DecryptTextFromFile(FileName,Rijn

daelAlg.Key,RijndaelAlg.IV);

//顯示密碼

Console.WriteLine(Final);

}

catch(Exception e)

{

Console.WriteLine(e.Message);

}

5 結語

Rijndael算法作為AES標準,其密鑰長度的安全性已經足夠,分析結果表明,7輪以上的Rijndael對于square攻擊是安全的。Rijndael算法已被廣泛應用于身份認證、數字簽名、結點加密機、網絡加密等方面。Rijndael也有一個非常小的版本(52位),適用在蜂窩電話、個人數字處理器(PDA)和其他的小設備上。

[1]段鋼.加密與解密[M].3版.北京:電子工業出版社,2008.

[2]馮登國.信息安全中的數學方法與技術[M].北京:清華大學出版社,2009.

[3]裴定一,徐祥.信息安全數學基礎[M].北京:人民郵電出版社,2007.

[4]高永強,郭世澤.網絡安全技術與應用大典[M].北京:人民郵電出版社,2004.

[5]王衍波,薛通.應用密碼學[M].北京:機械工業出版社,2003.

主站蜘蛛池模板: 亚洲欧美不卡| 国产精品制服| 久久久久免费精品国产| 亚洲精品动漫| 毛片免费高清免费| 国产精品毛片一区| 久久福利片| 毛片在线看网站| 亚洲黄色成人| 91亚洲精品第一| 国产成人亚洲毛片| 亚洲精品无码高潮喷水A| 日韩欧美中文字幕一本| 亚洲成人高清在线观看| 呦女亚洲一区精品| a级毛片一区二区免费视频| 亚洲欧美人成电影在线观看| 天天视频在线91频| 日本亚洲欧美在线| 久久综合干| 久久香蕉欧美精品| 98精品全国免费观看视频| 999国内精品久久免费视频| 91蜜芽尤物福利在线观看| 伊人久久精品无码麻豆精品| 国产小视频免费观看| 欧美中文字幕在线播放| Aⅴ无码专区在线观看| 欧美中文字幕在线视频| 欧美成人怡春院在线激情| 性网站在线观看| 午夜欧美在线| 成AV人片一区二区三区久久| 国产主播在线一区| 亚洲国产无码有码| 国产噜噜在线视频观看| 5555国产在线观看| 婷婷亚洲综合五月天在线| 国产精品嫩草影院视频| 国产三级视频网站| 伊人久久福利中文字幕 | 91在线播放国产| 小说区 亚洲 自拍 另类| 在线观看精品国产入口| 亚洲国产亚综合在线区| 久久这里只有精品23| 婷婷激情亚洲| 国产原创演绎剧情有字幕的| 在线免费观看a视频| 尤物国产在线| 国产精品成人第一区| 国产免费精彩视频| 91娇喘视频| 孕妇高潮太爽了在线观看免费| 成人午夜天| 国产第三区| 亚洲第一成年免费网站| 亚洲另类第一页| 无码AV高清毛片中国一级毛片 | 欧洲一区二区三区无码| 久一在线视频| 日韩在线永久免费播放| 欧美午夜一区| 久久亚洲中文字幕精品一区 | 亚洲欧洲日产国产无码AV| 日韩福利视频导航| 久久久亚洲色| 欲色天天综合网| 中国国产A一级毛片| 日韩专区第一页| 久久精品丝袜| 黄色网址免费在线| 亚洲成av人无码综合在线观看| 伊人91视频| 在线观看热码亚洲av每日更新| 国产在线小视频| 午夜小视频在线| 日本人妻丰满熟妇区| 欧美精品导航| 亚洲专区一区二区在线观看| 欧美精品亚洲精品日韩专区va| 在线观看精品国产入口|