<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的高速加密卡設(shè)計與實現(xiàn)

          基于FPGA的高速加密卡設(shè)計與實現(xiàn)

          作者: 時間:2013-08-10 來源:網(wǎng)絡(luò) 收藏

          PCI—E總線接口向主機發(fā)送數(shù)據(jù)的過程:(1)PCI—E總線接口檢測到由內(nèi)部發(fā)送的啟動PCI—E總線接口信號后,首先向主機發(fā)送中斷信號,然后將數(shù)據(jù)緩存的數(shù)據(jù)組包后發(fā)送給主機。(2)主機接收到PCI—E總線接口的中斷信號后,將PCI—E總線接口發(fā)送來的數(shù)據(jù)存入內(nèi)存中。(3)PCI—E總線接口發(fā)送完數(shù)據(jù)后再次向主機發(fā)送中斷信號,至此PCI—E總線接口向主機發(fā)送數(shù)據(jù)操作完成。
          1.2.2 NiosII軟核設(shè)計
          NiosII軟核處理器是Altera公司推出的第二代集成在內(nèi)部的可配置的32位RSIC(Reduced InstructionSet Computer)嵌入式處理器,具有經(jīng)濟型、標準型和快速型3種,占用少量的資源,其中快速性NiosII軟核性能較高,速度較快,可獲得超過250DMIPS(Dhrystone Million Instructions executed Per Second)的性能。為使達到最快的運算速度,本次選用快速型NiosII軟核處理器作為CPU,其通過Avalon總線與SM1算法芯片接口電路、數(shù)據(jù)緩存、PCI—E硬核接口以及其他接口模塊等互聯(lián),共同組成硬件結(jié)構(gòu)?;贜iosII的軟核處理器采用C語言進行軟件部分設(shè)計,軟件主要功能是根據(jù)主機發(fā)送的命令控制完成數(shù)據(jù)加解密、密鑰管理、權(quán)限管理和隨機數(shù)生成等操作。同時通過NiosII軟核指令與自定義硬件模塊相結(jié)合,以軟硬件協(xié)同的方式完成RSA算法電路的設(shè)計。
          1.2.3 RSA算法設(shè)計
          加密卡中的RSA算法操作主要包括密鑰生成、密鑰存儲和加解密。到目前為止,密鑰長度為1 024位的RSA算法已經(jīng)無法保證加密數(shù)據(jù)的安全性,因此本次加密卡中的RSA算法采用2 048位的密鑰。RSA算法操作中的密鑰生成和密鑰存儲部分需要生成隨機數(shù),并對大量數(shù)據(jù)進行存儲和轉(zhuǎn)換,用硬件實現(xiàn)難度大,且效率不高,所以本次采用基于NiosII軟核的軟件方式實現(xiàn)該部分操作。RSA算法中的加解密操作需要對大位數(shù)的數(shù)據(jù)進行模冪運算,運算復(fù)雜,雖已有成熟的軟件實現(xiàn)方式,但是該種方法實現(xiàn)的RSA算法運算速度慢,無法滿足設(shè)計要求,而硬件實現(xiàn)方式已有成熟的算法,運算速度快,所以本次RSA算法的加解密部分采用硬件方式實現(xiàn),通過NiosII軟核控制RSA運算模塊完成加解密操作。
          模冪運算是RSA加解密的核心,可以通過模乘運算來實現(xiàn),本次采用蒙哥馬利算法實現(xiàn)模乘運算,該算法利用移位和加法代替了復(fù)雜的乘、模操作,易于在硬件上實現(xiàn)。NiosII軟核中定制的RSA加解密運算指令的輸入為密鑰、數(shù)據(jù)長度和啟動信號,輸出為運算完成信號。當(dāng)NiosII軟核接收到RSA運算命令后,通過定制的模冪運算指令向RSA運算模塊寫入密鑰和數(shù)據(jù)長度信號,然后啟動該運算模塊,RSA運算模塊接收到Nios II軟核的啟動信號后,從數(shù)據(jù)緩存讀取待運算數(shù)據(jù)進行加解密運算,運算完成后將運算結(jié)果存入數(shù)據(jù)緩存中,并向NiosII軟核發(fā)送完成信號,NiosII軟核接收到RSA運算完成信號后啟動PCI—E總線接口,將運算結(jié)果發(fā)送給主機。這樣采用軟硬件結(jié)合的方式實現(xiàn)RSA加解密功能,不但能夠保證RSA運算的正確性,降低RSA算法實現(xiàn)的復(fù)雜度,而且比采用純軟件實現(xiàn)方式提高了運算速度。
          1.2.4 SM1接口電路設(shè)計
          在FPGA內(nèi)設(shè)計有一個專用SM1算法芯片的接口控制電路,用于控制SM1算法芯片實現(xiàn)數(shù)據(jù)的加解密操作。SM1算法芯片采用雙總線命令和組包操作方式,具有較高的運算速率。所以接口電路主要由寫狀態(tài)機和讀狀態(tài)機組成,分別控制對SM1算法芯片進行寫數(shù)據(jù)操作和讀運算結(jié)果操作。接口電路的工作原理:加密卡上電后,首先對SM1算法芯片進行硬件復(fù)位,然后檢查由NiosII軟核發(fā)送的SM1算法啟動信號,若該信號有效,則同時啟動寫狀態(tài)機和讀狀態(tài)機,這樣能夠在進行寫數(shù)據(jù)操作時,也讀取運算結(jié)果值,從而提高SM1算法命令的執(zhí)行速率。圖4和圖5分別為寫操作狀態(tài)機和讀操作狀態(tài)機的設(shè)計。

          d.JPG



          2 設(shè)計實現(xiàn)
          設(shè)計采用NiosII Eclipse開發(fā)軟件完成加密卡軟件程序設(shè)計,采用QuaxtusII 11.0工具軟件完成加密卡硬件電路設(shè)計,并對所設(shè)計的軟硬件進行了整合和仿真驗證。在驗證設(shè)計的正確性后,完成了對FPGA內(nèi)部整體電路的布局及綜合,并制作成加密卡樣品。在Windows系統(tǒng)下對所設(shè)計的加密卡連續(xù)測試168 h,加密卡工作正確;和已有的基于DSP和PCI—E橋接芯片設(shè)計的加密卡進行測試比較,結(jié)果如表1所示,本次設(shè)計的加密卡能夠正確地完成各項功能,同時RSA算法的運算速度為5.9次/s,SM1運算速度為295 Mbit·s-1,較已有加密卡RSA運算的3.5次/s和SM1運算的240 Mbit·s-1有了大幅提高,所以本次加密卡在保證可靠性的同時,運算速度更快。

          e.JPG



          3 結(jié)束語
          基于增強信息安全的思想,設(shè)計了一種基于FPGA的低成本、高性能的加密卡。采用FPGA內(nèi)部資源實現(xiàn)了加密卡的控制器模塊、算法模塊、通信接口模塊和各種接口等主要功能。并對兩種不同結(jié)構(gòu)設(shè)計方式的加密卡進行了性能比較測試,結(jié)果表明采用FPGA單芯片結(jié)構(gòu)設(shè)計方式的加密卡功能正確,電路板結(jié)構(gòu)簡單,可靠性強并且具有更高的靈活性和運算速度,達到了預(yù)期的目標。目前所設(shè)計的加密卡只集成了SM1和RSA算法,今后根據(jù)需要,可在FPGA內(nèi)部通過擴展硬件或軟件的方式來增加其它的加密算法功能,所以,該加密卡實用性強,具有可擴展性,在信息安全領(lǐng)域具有良好的發(fā)展前景。

          fpga相關(guān)文章:fpga是什么



          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA 加密卡

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();