亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Rijndael算法的研究和應(yīng)用

        2012-04-11 02:10:22張青鳳張鳳琴
        關(guān)鍵詞:輪數(shù)明文解密

        張青鳳,張鳳琴

        (1.運(yùn)城學(xué)院公共計(jì)算機(jī)教學(xué)部,山西運(yùn)城044000;2.空軍工程大學(xué)計(jì)算機(jī)系,陜西西安710071)

        2001年美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)協(xié)會(huì)已經(jīng)將Rijndael算法作為下一代對(duì)稱密碼算法的標(biāo)準(zhǔn),該算法借鑒了很多Square算法的設(shè)計(jì)思想。它允許128,192,256位密鑰長(zhǎng)度,不僅能夠在128位分組上工作,也能夠在不同的硬件上工作[1-3]。

        1 Rijndael算法簡(jiǎn)介

        Rijndael屬對(duì)稱加密,是一種可變數(shù)據(jù)塊長(zhǎng)和可變密鑰長(zhǎng)的迭代分組加密算法,在安全、性能、效率、可實(shí)現(xiàn)、靈活等多方面有優(yōu)點(diǎn),它被設(shè)計(jì)成數(shù)據(jù)塊長(zhǎng)、密鑰長(zhǎng)為128/192/256三個(gè)可選長(zhǎng)度,來加密128bit分組,相應(yīng)的加密輪數(shù)分別為10/12/14,每一輪循環(huán)都有一個(gè)循環(huán)密鑰,它來自于初始密鑰[4-5]。

        2 Rijndael基本術(shù)語(yǔ)

        2.1 狀態(tài)

        狀態(tài)由一個(gè)4行、Nb列的二維字節(jié)數(shù)組表示,Nb等于數(shù)據(jù)塊長(zhǎng)度除以32,取Nb=4時(shí)的狀態(tài)為:

        2.2 分組密鑰

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

        2.3 有限域GF(28)

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

        2.4 加密輪數(shù)Nr

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

        3 Rijndael算法的實(shí)現(xiàn)

        Rijindael算法由10輪、12輪、14輪循環(huán)組成,加密過程的每輪循環(huán)都有一個(gè)循環(huán)密鑰,每輪循環(huán)有4個(gè)基本步驟組成:字節(jié)轉(zhuǎn)換、移動(dòng)行變換、混合列變換、加循環(huán)密鑰。因?qū)賹?duì)稱加密,在加密和解密時(shí)都使用相同的密鑰。

        表1 密鑰長(zhǎng)度Nb、加密分組長(zhǎng)、加密輪數(shù)Nr之間的關(guān)系

        3.1 加密過程

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

        (2)與原始密鑰k1異或

        (3)s盒變換

        (4)行置換

        (5)列置換

        (6)與子密鑰Ki異或

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

        3.2 解密過程

        (1)取加密分組數(shù)據(jù)S

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

        (3)反行置換

        (4)反盒置換

        (5)與子密鑰Ki異或

        (6)反列置換

        (7)得解密分組數(shù)據(jù)

        (8)恢復(fù)明文分組數(shù)據(jù)

        4 Rijndael算法在文件加解密過程的應(yīng)用

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

        4.1 加密實(shí)現(xiàn)關(guān)鍵代碼

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

        {

        try

        {//創(chuàng)建文件

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

        //創(chuàng)建新的Rijndael對(duì)象

        Rijndael RijndaelAlg = Rijndael.Create();

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

        CryptoStream cStream=new CryptoStream(fStream,Ri

        jndaelAlg.CreateEncryptor(Key,IV),

        CryptoStreamMode.Write);

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

        try

        {//加密

        sWriter.WriteLine(Data);

        }

        catch(Exception e)

        {

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

        }

        finally

        {//關(guān)閉文件

        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 解密

        從文件中讀取密文實(shí)現(xiàn)關(guān)鍵代碼:

        public static string DecryptTextFromFile(String File-

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

        {

        try

        {//創(chuàng)建文件流

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

        //創(chuàng)建新的Rijndael對(duì)象

        Rijndael RijndaelAlg = Rijndael.Create();

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

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

        CryptoStreamMode.Read);//用加密流創(chuàng)建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

        {//關(guān)閉文件

        sReader.Close();

        cStream.Close();

        fStream.Close();

        }

        //返回密碼結(jié)果

        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 實(shí)際實(shí)現(xiàn)過程

        try

        {//創(chuàng)建新的Rijndael對(duì)象以產(chǎn)生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 結(jié)語(yǔ)

        Rijndael算法作為AES標(biāo)準(zhǔn),其密鑰長(zhǎng)度的安全性已經(jīng)足夠,分析結(jié)果表明,7輪以上的Rijndael對(duì)于square攻擊是安全的。Rijndael算法已被廣泛應(yīng)用于身份認(rèn)證、數(shù)字簽名、結(jié)點(diǎn)加密機(jī)、網(wǎng)絡(luò)加密等方面。Rijndael也有一個(gè)非常小的版本(52位),適用在蜂窩電話、個(gè)人數(shù)字處理器(PDA)和其他的小設(shè)備上。

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

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

        [3]裴定一,徐祥.信息安全數(shù)學(xué)基礎(chǔ)[M].北京:人民郵電出版社,2007.

        [4]高永強(qiáng),郭世澤.網(wǎng)絡(luò)安全技術(shù)與應(yīng)用大典[M].北京:人民郵電出版社,2004.

        [5]王衍波,薛通.應(yīng)用密碼學(xué)[M].北京:機(jī)械工業(yè)出版社,2003.

        猜你喜歡
        輪數(shù)明文解密
        解密“熱脹冷縮”
        多輪反應(yīng)溶液用量對(duì)微生物加固粉土的影響
        LowMC實(shí)例的差分枚舉攻擊效果分析
        解密“一包三改”
        網(wǎng)絡(luò)安全平臺(tái)斗象科技 完成C輪數(shù)億元融資
        炫詞解密
        奇怪的處罰
        奇怪的處罰
        四部委明文反對(duì)垃圾焚燒低價(jià)競(jìng)爭(zhēng)
        色一情一乱一伦| 伊人狼人影院在线视频| 精品婷婷国产综合久久| 久久久久亚洲精品男人的天堂| 18分钟处破好疼哭视频在线观看 | JIZZJIZZ国产| 91精品啪在线观看国产色| 精品亚洲一区二区区别在线观看| 男人进去女人爽免费视频| 精品人无码一区二区三区| av中文码一区二区三区| 粉嫩av最新在线高清观看| 无码中文字幕免费一区二区三区| 国产精品国产三级农村妇女| 中文字幕精品永久在线| 丰满的少妇av一区二区三区| 天天爽夜夜爱| 亚洲综合色秘密影院秘密影院| 中文字幕这里都是精品| 日本精品一区二区三区福利视频| 久久综合狠狠综合久久| 国产女高清在线看免费观看| 日本办公室三级在线看| 18禁免费无码无遮挡不卡网站| 亚洲国产无套无码av电影| 日韩在线不卡一区在线观看| 情av一区二区三区在线观看| 午夜裸体性播放| 波多野结衣中文字幕在线视频| 一区二区三区视频在线免费观看 | 六月丁香婷婷色狠狠久久| 精品系列无码一区二区三区| 日韩中文字幕素人水野一区 | 精品视频在线观看免费无码| 精品女人一区二区三区| 亚洲熟妇无码av在线播放| 伊人久久综合精品无码av专区| 国产网友自拍亚洲av| 国产激情一区二区三区在线 | 美腿丝袜av在线播放| 在线观看国产成人av天堂野外|