新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的AES算法芯片設計實現

        基于FPGA的AES算法芯片設計實現

        作者: 時間:2009-08-21 來源:網絡 收藏

        引言

        本文引用地址:http://www.104case.com/article/191956.htm

        密碼模塊作為安全保密系統的重要組成部分,其核心任務就是加密數據。分組密碼以其高效率、低開銷、實現簡單等特點目前被廣泛應用于密碼模塊的研制中。密碼模塊一般被設計成外接在主機串口或并口的一個硬件設備或是一塊插卡,具有速度快,低時延的特點。而從整體發展趨勢來看,嵌入式密碼模塊由于靈活,適用于多種用戶終端、通信設備和武器平臺,將會得到更加廣泛的應用。基于實現的嵌入式密碼模塊與以往的主流硬件實現方式(如DSP芯片、單片機)相比,具有低成本、高速度、微功耗、微小封裝以及保密性強等優點,與ASIC相比具有設計靈活、成本低、周期短等優點。另一個明顯的優點在于:在對時間代價和空間代價的取舍上,基于實現的加密技術提供了多種實現方案,分別對時間代價和空間代價有不同的偏重,有利于在各種應用環境中進行優化。硬件實現無論是ASIC方案還是方案,數據處理速度的提高都離不開優化技術,包括輪函數和設計結構的優化。的快速實現方案包括:優化 S盒的結構(如使用復合域、查表等方法),列混合與密鑰加的結合,以及采用流水線技術等。表1為幾種典型的算法實現性能對比情況。

        AES算法結構

        AES是一個迭代型的分組密碼,包含了輪變換對狀態的重復作用。用State表示待加密狀態,CipherKey表示初始加密密鑰,ExpandedKey表示擴展密鑰,其加密過程描述如下:

        Round(State,ExpandedKey) --輪變換
        {
        SubByte(State); --字節代替

        表1幾種典型的AES算法實現性能對比

        ShiftRow(State); --行移位
        MixColumn(State); --列混合
        AddRoundKey(State,ExpandedKey[i]); --密鑰加
        }
        AES(State,CipherKey)--主函數
        {
        KeyExpansion(CipherKey,ExpandedKey); --密鑰擴展
        AddRoundKey(State,ExpandedKey[0]); --模加輪密鑰
        For(i=1;i FinalRound(State,ExpandedKey[Nr]); --末輪運算
        }

        在AES的單輪運算中包含了SubByte(字節代替)、ShiftRow(行移位)、MixColumn(列混合)、AddRoundKey(密鑰加)四個步驟。圖1所示為單輪運算的加/脫密結構。


        圖1 單輪運算的加/脫密結構

        AES算法芯片IP核的完整結構包括:接口模塊,密鑰擴展模塊,控制模塊,加/脫密模塊。各模塊之間的統一調度、協調配合是芯片性能的保證。然而制約芯片吞吐率的瓶頸是加/脫密模塊的實現。本文在第三部分著重分析了加/脫密模塊實現方案。


        上一頁 1 2 3 下一頁

        關鍵詞: FPGA AES 算法 設計實現

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 揭东县| 东阿县| 深泽县| 平安县| 湟源县| 锡林郭勒盟| 桐柏县| 犍为县| 金秀| 道真| 上杭县| 曲水县| 巩留县| 泾川县| 吉林市| 射阳县| 响水县| 卢湾区| 克什克腾旗| 广安市| 筠连县| 奉贤区| 平潭县| 绍兴市| 修武县| 青阳县| 宜君县| 济南市| 军事| 大关县| 寿阳县| 黎平县| 卢龙县| 定南县| 聂拉木县| 西乌珠穆沁旗| 胶州市| 东兰县| 金沙县| 乐都县| 枣强县|