亚洲免费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月
        五月激情在线观看视频| 国产欧美日韩a片免费软件| 久久狠狠高潮亚洲精品暴力打| av天堂手机在线免费| 精品国产精品久久一区免费式| 色avav色av爱avav亚洲色拍| 久久亚洲精品成人| 亚洲综合久久久中文字幕| 三区中文字幕在线观看| 中文字幕久久熟女蜜桃| 亚洲图区欧美| 精品亚洲一区二区视频| 亚洲综合偷自成人网第页色| 欧美人与动人物牲交免费观看久久| 国产成人国产在线观看入口| 中文字幕精品一区二区日本| 国产高清成人午夜视频| 国产高清av首播原创麻豆| 中文字幕AⅤ人妻一区二区| 久久精品亚洲乱码伦伦中文| 亚洲精品无码不卡| 97精品人妻一区二区三区香蕉| 久久亚洲av成人无码软件| 国产午夜精品视频在线观看| 婷婷色香五月综合激激情| 亚洲欧洲高潮| 东京道一本热码加勒比小泽| 91九色老熟女免费资源| 国产香蕉尹人在线观看视频| 欧美久久中文字幕| 成人性生交大片免费5| 国产欧美日韩精品专区| 国产偷v国产偷v亚洲偷v| 日本免费a一区二区三区| 欧美xxxxx高潮喷水麻豆| 亚洲av无码精品色午夜蛋壳| 国产人妖xxxx做受视频| av天堂最新在线播放| 一性一交一口添一摸视频| 日韩啪啪精品一区二区亚洲av| 亚洲av专区一区二区|