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

        ?

        基于AES加密算法的消息系統(tǒng)設(shè)計

        2009-02-11 10:02:34
        新媒體研究 2009年1期
        關(guān)鍵詞:網(wǎng)絡(luò)安全

        沈 俊

        [摘要]AES是一種對稱分組密碼算法,它是廣泛應(yīng)用的新標(biāo)準(zhǔn)。首先介紹AES加密算法的基本操作和流程。隨后討論AES加密算法的實現(xiàn)。最后,闡述一個基于AES加密算法的消息系統(tǒng)的設(shè)計方案。

        [關(guān)鍵詞]AES加密 消息系統(tǒng) 網(wǎng)絡(luò)安全

        中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-7597(2009)0110052-02

        一、引言

        美國國家標(biāo)準(zhǔn)技術(shù)協(xié)會(NIST)在2001年發(fā)布了高級加密標(biāo)準(zhǔn)(AES)。AES是一種對稱分組密碼算法,用以取代DES的商業(yè)應(yīng)用,從而成為廣泛使用的新標(biāo)準(zhǔn)。其分組長度為128位,密鑰長度為128位,192位或256位,其中128位的密鑰長度最常用。以下各節(jié)介紹了一個基于AES加密算法的消息系統(tǒng)的設(shè)計。

        二、AES加密算法簡介

        AES加密算法1、2中128位密鑰是最常用的,故以128位密鑰為例介紹。AES加密算法有四種基本的操作:

        1.字節(jié)代換:用一個S盒完成分組中的按字節(jié)代換。

        2.行移位:一個簡單的基于行的置換。

        3.列混淆:一個利用在域GF(28)上算術(shù)特性的代換。

        4.輪密鑰加:用當(dāng)前分組和擴展密鑰的一部分進(jìn)行按位異或。

        AES加密、解密算法的流程如圖1所示:

        圖1中,輸入的密鑰將被擴展成由44個32位字組成的數(shù)組W[i],在每輪加解密過程中有四個字(128位)的密鑰。

        AES加密算法的詳細(xì)內(nèi)容請參考文獻(xiàn)[1]。

        三、AES加密算法實現(xiàn)

        AES加密算法中,S盒的初始化和列混淆變換都要用到有限域GF(28)上的運算乘法和加法。因此先闡述有限域GF(28)上運算的實現(xiàn),再介紹AES加密算法的實現(xiàn)。

        (一)有限域GF(28)上運算實現(xiàn)

        一個專門的GF2NOP_1B類被用來進(jìn)行一字節(jié)(8位)的加法、乘法和循環(huán)左右移位運算,類的主要方法在AES加密算法中會被調(diào)用。

        1.加法

        GF(28)上的加法實際上就是按位異或運算。代碼如下:

        GF2NOP_1B GF2NOP_1B::operator+(ubyte ubV)//typedef unsigned

        char ubyte;

        {

        GF2NOP_1B gfR;

        gfR = this->ubValue ^ ubV; //XOR

        return gfR;

        }

        2.乘法

        乘法要稍微復(fù)雜一些,不能只用簡單的異或運算。但是可以使用一種合理而容易實現(xiàn)的技巧,原理請見參考文獻(xiàn)[2],這里只給出實現(xiàn):

        GF2NOP_1B GF2NOP_1B::operator * (ubyte ubV)

        {

        GF2NOP_1B gfR = 0;

        ubyte ubMulN = ubV;

        ubyte ubMN = (ubyte)iMODNUM_8; //iMODNUM_8 = 00011011b

        ubyte ubTmp;

        int i;

        for (i = 0; ubMulN; ubMulN >>= 1, i++) {

        if (i == 0)

        ubTmp = this->ubValue;

        else {

        if (ubTmp &0x80) {

        ubTmp <<= 1;

        ubTmp ^= ubMN;

        }

        else

        ubTmp <<= 1;

        }

        if (ubMulN & 1) {

        gfR = gfR + ubTmp;

        }

        }

        return gfR;

        }

        代碼中還有一個類GF2NOP_4B是實現(xiàn)有限域GF(28)上4字節(jié)的運算,使得AES算法在32位機上用32位字操作會更緊湊更高效。

        (二)AES加解密算法及實現(xiàn)

        一個AESCrypt類被用來實現(xiàn)AES加解密,其主要方法有:密鑰擴展、輪密鑰加、字節(jié)代換、行移位、列混淆。其中,字節(jié)代換是用查表法實現(xiàn)的,列混淆是矩陣的乘法實現(xiàn)的,其它幾個方法也比較容易實現(xiàn)。

        圖1所示AES加密算法和解密算法不同,采取兩處改進(jìn)[2]可以使解密算法的結(jié)構(gòu)和加密算法的結(jié)構(gòu)一致。分別是,在解密輪中,交換逆向行移位和逆向字節(jié)代換,交換輪密鑰加和逆向列混淆。

        逆向行移位影響字節(jié)的順序,但不更改字節(jié)的內(nèi)容,也不依賴字節(jié)的內(nèi)容來進(jìn)行它的變換。逆向字節(jié)代換影響字節(jié)的內(nèi)容,但不更改字節(jié)的順序同時也不依賴字節(jié)的順序來進(jìn)行它的變換。因此,這兩個操作可以交換。如對一個給定的State Si:

        逆向行移位[逆向字節(jié)代換(Si)]=逆向字節(jié)代換[逆向行移位(Si)] (1)

        類似的第二處改進(jìn)也可以用一個算式表示,即對給定的State Si和給定的輪密鑰wj:

        InvMixColumns(Si^wj)= [InvMixColumns(Si)]^[InvMixColumns(wj)] (2)

        其中“^”符號表示異或,上式的證明見文獻(xiàn)[2]。至此,加、解密的輪函數(shù)已經(jīng)統(tǒng)一起來了,輪函數(shù)的C++聲明如下:

        int AESCrypt::RoundFun(int iRound, int iEDFlag);

        參數(shù)iRound是輪數(shù),加密時是1到10,解密時是9到0;iEDFlag是加、解密標(biāo)志,真值為解密。輪函數(shù)的UML[3]活動圖如圖2所示:

        圖2清楚地描繪了AES加、解密算法的輪函數(shù),圖中最后一個分支處當(dāng)解密并且iRound!=0時有三步操作:ExpandKey[iRound]列逆混淆、輪密鑰加、ExpandKey[iRound]列混淆。第一、二步與前面的States[iRound]列逆混淆完成了上述式(2)等號右邊的運算,而第三步則是為了還原ExpandKey[iRo

        und]。

        四、消息系統(tǒng)的設(shè)計

        這里設(shè)計的消息系統(tǒng)是C/S結(jié)構(gòu)的,客戶端通過服務(wù)器與另一個客戶端聯(lián)系。服務(wù)器端的主要功能是:接受管理客戶端的連接請求,存儲轉(zhuǎn)發(fā)客戶端的消息。其UML構(gòu)件圖如圖3。

        TCP/IP接口構(gòu)件是對Socket API的封裝,為上層構(gòu)件提供接口;數(shù)據(jù)庫接口構(gòu)件是對數(shù)據(jù)庫訪問操作的封裝,為上層構(gòu)件提供接口??蛻舳诉B接請求到達(dá)時,經(jīng)由AES加解密構(gòu)件解密后由連接管理構(gòu)件管理,并反饋以密鑰生成構(gòu)件隨機生成的密鑰;當(dāng)有消息到達(dá)時,AES加解密構(gòu)件對其解密后,由消息處理構(gòu)件進(jìn)行處理,由消息存檔構(gòu)件存入數(shù)據(jù)庫,并由消息分發(fā)構(gòu)件向連接管理構(gòu)件查詢目標(biāo)地址后交由TCP/IP接口構(gòu)件發(fā)送。

        客戶端程序比較簡單,主要的流程如圖4的UML活動圖。

        圖4中請求連接時的請求數(shù)據(jù)是用默認(rèn)密鑰進(jìn)行加密的,服務(wù)器響應(yīng)后會返回新密鑰,以后的會話都使用新密鑰進(jìn)

        行。監(jiān)聽和等待發(fā)送是由兩個線程同時執(zhí)行的。這兩個線程一般都是在等待睡眠中,所以CPU占用率很低。

        五、結(jié)束語

        以上由介紹AES加密算法開始闡述了一個基于AES加密算法的消息系統(tǒng)的設(shè)計。這里介紹的這個系統(tǒng)是一個初步的雛形,尚只在局域網(wǎng)內(nèi)應(yīng)用。此系統(tǒng)存在的缺陷是用默認(rèn)的AES密鑰加密來傳輸AES新密鑰,很容易被黑客破解。為了使系統(tǒng)更安全,下一步的工作是將AES密鑰用RSA算法加密后再傳輸。

        參考文獻(xiàn):

        [1]Deamen,j.and Rijmen,V.“Rijndael: The Advanced Encryption Standard.”Dr.Dobb's Journal, March 2001.

        [2]孟慶樹、王麗娜、傅建明等譯,William Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實踐[M].第四版.北京:電子工業(yè)出版社,2006:66-125.

        [3]李洋、鄭龑等譯,Larman,C.UML和模式應(yīng)用[M].第三版.北京:機械工業(yè)出版社,2006.

        作者簡介:

        沈俊,男,浙江省湖州人,同濟(jì)大學(xué)碩士研究生,主要從事網(wǎng)絡(luò)化測試平臺通信安全的研究。

        猜你喜歡
        網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全(上)
        網(wǎng)絡(luò)安全知多少?
        工會博覽(2023年27期)2023-10-24 11:51:28
        新量子通信線路保障網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全人才培養(yǎng)應(yīng)“實戰(zhàn)化”
        上網(wǎng)時如何注意網(wǎng)絡(luò)安全?
        網(wǎng)絡(luò)安全與執(zhí)法專業(yè)人才培養(yǎng)探索與思考
        設(shè)立網(wǎng)絡(luò)安全專項基金 促進(jìn)人才培養(yǎng)
        網(wǎng)絡(luò)安全監(jiān)測數(shù)據(jù)分析——2015年12月
        網(wǎng)絡(luò)安全監(jiān)測數(shù)據(jù)分析——2015年11月
        欧洲AV秘 无码一区二区三 | 老汉tv永久视频福利在线观看| 国产免费三级三级三级| 一区二区三区日本美女视频| 免费视频无打码一区二区三区| 无码中文字幕日韩专区| v一区无码内射国产| 国产精品女视频一区二区| 福利一区二区三区视频在线| 久久精品国产在热亚洲不卡| 一个色综合中文字幕人妻激情视频 | 久青草久青草视频在线观看| 国产va精品免费观看| 一区二区三区在线视频爽| 亚洲中文字幕精品视频| 精品伊人久久大线蕉色首页| 欧美成人一区二区三区| 色播在线永久免费视频网站| 亚洲精华国产精华液的福利| 加勒比精品久久一区二区三区| 日本免费一区精品推荐| 国产亚洲精品精品综合伦理| 国内揄拍国内精品少妇| 久久人妻少妇嫩草av蜜桃| 久久精品午夜免费看| 亚洲97成人精品久久久| 99国产精品久久久久久久成人热 | 加勒比一区二区三区av| 中文字幕日韩人妻少妇毛片| 国内精品视频在线播放不卡 | 日出白浆视频在线播放| 51国产黑色丝袜高跟鞋| 国产91 对白在线播放九色| 亚洲av一二三四又爽又色又色| 国产一区二区三区天堂| 洲色熟女图激情另类图区| 欧美又大又色又爽aaaa片| 国内精品九九久久久精品| 日批视频免费在线观看| 色婷婷av一区二区三区不卡| 亚洲av午夜一区二区三|