新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于GPU的AES算法實現

        基于GPU的AES算法實現

        作者: 時間:2011-06-14 來源:網絡 收藏

        摘要:近幾年圖形處理器的通用計算能力發展迅速,現在已經發展成為具有巨大并行運算能力的多核處理器,而CUDA架構的推出突破了傳統開發方式的束縛,把巨大的通用計算能力解放了出來。本文利用GPU來加速,即利用GPU作為CPU的協處理器,將在GPU上,以提高計算的吞吐量。最后在GPU和CPU平臺上進行了實驗,獲得了GPU的加速結果,并對實驗結果進行了優化。
        關鍵詞:圖形處理器;統一計算架構;高級加密標準

        0 引言
        隨著通信技術高速發展,信息安全也越來越重要。加密技術是對通信系統或者存儲系統中的信息數據進行保護的一個很重要的方式。(高級加密標準)算法是一種分組密碼算法,具有極高的安全性能,自提出之日起便成為信息安全領域研究的熱點。由于該算法在方面具有設計簡單,速度快,可并行處理,分組長度可以改變,對處理器結構無特殊要求等特點,在電子商務、網絡安全和數據存儲等多個領域得到了廣泛的應用。然而,硬件需要較長的開發周期和很高的成本,并且硬件實現不靈活,不易后續的升級和維護,而且只適合做部分算法的實現,限制了應用領域和范圍。近幾年GPU(圖形處理器)已經成為普及的電子消費品,在市場需求的驅動下,GPU已經發展成為具有巨大運算能力和極高內存帶寬的并行多核處理器。近幾年在某些信號處理任務中使用GPU的運算性能超過了FPGA。
        傳統的GPU開發具有很大的難度,而且由于無法充分利用GPU的資源,并且很多的開發精力是用在將應用轉換到圖形上,這就限制了GPU用作通用計算的應用范圍,并且影響了GPU進行通用運算的性能。為了改變這一現狀,NVIDIA公司在2006年年底推出了一種利用GPU進行通用計算開發的架構,稱作統一計算設備架構,簡稱為CUDA。它對GPU的結構和資源進行了抽象表示,并且為GPU的資源提供了訪問接口,這就使得開發者能夠根據抽象的GPU結構進行通用計算應用的設計,并且可以充分利用到GPU中的資源。

        1 AES算法分析
        AES算法由NIST在2001年11月26日公布,并在2002年5月26日成為標準。AES算法具有分組長度和密鑰長度均可變的分組密碼。密鑰長度和分組長度可以獨立地指定為128bit、192bit或256bit。AES加密的圈數是一個變量,主要依賴于密鑰長度,所有的運算都將在一個4×4字節的模塊上進行。每圈包括4個順序步驟:圈密鑰加,字節代替,行移位,列混合。在加密以前,我們必須使用密鑰擴展算法擴展密鑰。
        狀態可以用字節為元素組成二維數組陣列,共4行,Nb列,Nb等于數據塊長度除以32。密鑰的設計類似二維字節數組,也是4行,Nk列,且Nk等于密鑰塊的長度除以32。AES算法使用的是圈變換,其變換的圈數Nr由Nb和Nk共同決定,如表1所示:

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

        a.JPG


        從具體規則上,AES算法在進行加解密運算時都會按照三大步驟進行,依次為1)初始化的圈密鑰加法;2)(Nr-1)圈變換;3)最后一圈變換。這里以加密過程為例,其加密過程用偽代碼表示如下。
        b.JPG
        解密過程是加密過程的逆過程。


        上一頁 1 2 3 下一頁

        關鍵詞: 實現 算法 AES GPU 基于

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石楼县| 盘锦市| 龙岩市| 清苑县| 姜堰市| 阿克苏市| 万安县| 彰化市| 邢台市| 隆子县| 榆中县| 竹北市| 南投市| 磴口县| 阜平县| 合阳县| 宾川县| 呼图壁县| 正定县| 奇台县| 大荔县| 古丈县| 瑞安市| 桃园县| 资中县| 古田县| 哈巴河县| 广安市| 尚义县| 日照市| 洱源县| 亳州市| 江门市| 盐池县| 通州市| 凤阳县| 神农架林区| 宝丰县| 上蔡县| 大新县| 栖霞市|