關(guān) 閉

        新聞中心

        EEPW首頁(yè) > 安全與國(guó)防 > 設(shè)計(jì)應(yīng)用 > 在ARM微處理器上實(shí)現(xiàn)Rijndael加密算法

        在ARM微處理器上實(shí)現(xiàn)Rijndael加密算法

        ——
        作者: 時(shí)間:2006-06-09 來源: 收藏

        引 言
            2000年10月2日,美國(guó)國(guó)家標(biāo)準(zhǔn)局NIST宣布,比利時(shí)密碼學(xué)家Joat Daemen和Vincent Rijmen設(shè)計(jì)的“RijndaeI算法”以安全性好、運(yùn)算速度快、存儲(chǔ)要求低、靈活性強(qiáng)最終當(dāng)選AES。該算法對(duì)目前的各種威脅是免疫的。這標(biāo)志著信息技術(shù)有了新的安全工具,為計(jì)算機(jī)網(wǎng)絡(luò)和電子商務(wù)的發(fā)展提供了強(qiáng)有力的保障。
            在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC時(shí)代,技術(shù)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中,成為目前最熱門的技術(shù)之一。
            本文使用北京博創(chuàng)興業(yè)科技有限公司研制的UP-NETARM300嵌入式開發(fā)板,在ARM SDT 2.51集成開發(fā)環(huán)境下,建立基于μC/OS-Il操作系統(tǒng)的工程文件,分別調(diào)用ARM匯編程序和C程序在嵌入式微處理器上實(shí)現(xiàn)了Rijndael算法,并比較了兩者的效率。下面以分組長(zhǎng)度和密鑰長(zhǎng)度都是128位為例,介紹調(diào)用ARM匯編程序?qū)崿F(xiàn)加密算法的過程。本實(shí)現(xiàn)算法可以將密鑰長(zhǎng)度擴(kuò)展
        到192位或256位。


        1 Rijndael加密算法簡(jiǎn)介
        1.1 算法流程結(jié)構(gòu)

            Rijndael加密算法的128位輸入分組用以字節(jié)為單位的正方形矩陣描述。該數(shù)組被復(fù)制到State數(shù)組。加密過程分為四個(gè)階段:密鑰擴(kuò)展、輪密鑰加、Nr-1(對(duì)應(yīng)128、192、256位密鑰長(zhǎng)度,Nr分別為10、12、14)輪變換及最后一輪變換。輪變換包括字節(jié)代換、行移位、列混淆和輪密鑰加四個(gè)過程,最后一輪變換包括字節(jié)代換、行移位和輪密鑰加三個(gè)過程。用偽C代碼表示如下:

        Rijndael (State, CipherKey)  {

        KeyExpansion (CipherKey, ExpandKey);  //密鑰擴(kuò)展

        AddRoundKey (State, RoundKey);  //輪密鑰加

        For (i=1;i<Nr;i++)  

        Round (State, ExpandKey+4*i);  //輪變換

        FinalRound (State, ExpandKey+4 * Nr);  //最后一輪變換}

        Round (State, RoundKey){  //輪變換

        SubByte (State);  //字節(jié)代換

        ShiftRow(State);  //行移位

        MixColumn(State);  //列混淆

        AddRoundKey(State, RoundKey);  輪密鑰加

        FinalRound(State, RoundKey) {  //最后一輪變換

        SubByte(State);

        ShiftRow(State);

        AddRoundKey(State,RoundKey); 
        1. 2算法所使用的主要變換
        (1)字節(jié)代換SubByte
            用一個(gè)簡(jiǎn)單的查表操作代替了基于矩陣乘法的復(fù)雜仿射變換。Rijndael定義了一個(gè)16



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 阳江市| 淮安市| 英德市| 奇台县| 元氏县| 泰安市| 奎屯市| 永和县| 商水县| 泽库县| 朝阳市| 三原县| 桓台县| 隆回县| 南澳县| 饶平县| 华蓥市| 镇安县| 冕宁县| 平谷区| 前郭尔| 陇西县| 乐至县| 长沙市| 龙游县| 博客| 枣阳市| 蚌埠市| 油尖旺区| 呈贡县| 铅山县| 平昌县| 梨树县| 广水市| 威宁| 乌海市| 自治县| 淮安市| 宜章县| 思南县| 来宾市|