新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于FPGA+PCI的并行計算平臺實現

        基于FPGA+PCI的并行計算平臺實現

        ——
        作者: 時間:2007-10-29 來源:嵌入式系統IC網 收藏

          當前對于各種加密算法.除了有針對性的破解算法,最基本的思想就是窮舉密鑰進行匹配,通常稱為暴力破解算法。由于暴力破解算法包含密鑰個數較多,遍歷的時間超過實際可接受的范圍。如果計算速度提高到足夠快。這種遍歷的算法因結構設計簡便而具有實際應用的前景。

          總線(外設互聯總線)與傳統的總線標準——ISA總線(工業標準結構總線)相比,具有更高的傳輸率(132MBps)、支持32位處理器及DMA和即插即用等優點,用于取代ISA總線而成為目前臺式計算機的事實I/O總線標準,在普通PC機和工控機上有著廣泛的應用。總線為滿足在插卡和系統存儲器中高速傳輸數據的要求提供了很好的途徑。

          總線是一種獨立于處理器的局部總線,因此通過PCI總線插入擴展板,利用并提升普通PC機和工控機對大規模數字信號處理的運算能力和速度是一項非常具有實用意義的工作。

          隨著數字技術日益廣泛的應用,以現場可編程門陣列()為代表的ASIC器件得到了迅速普及和發展,器件集成度和速度都在高速增長。既具有門陣列的高邏輯密度和高可靠性,又具有可編程邏輯器件的

          用戶可編程特性,可以減少系統設計和維護的風險,降低產品成本,縮短設計周期。與通用CPU相比又具有如下顯著優點:

          (1)FPGA一般均帶有多個加法器和移位器,特別適合多步驟算法中相同運算的并行處理。通用CPU只能提供有限的多級流水線作業。

          (2)一塊FPGA中可以集成數個算法并行運算。通用CPU一般只能對一個算法串行處理。

          (3)基于FPGA設計的板卡功耗小、體積小、成本低,特別適合板卡問的并聯。

          本文介紹的基于PCI總線的FPGA計算平臺的系統實現:通過在PC機上插入擴展PCI卡,對算法進行針對并行運算的設計,提升普通PC機對大計算量數字信號的處理速度。本設計采用5片FPGA芯片及相關周邊芯片設計實現這一并行高速計算平臺,并在該平臺上完成了DES和MD5等算法的加密和解密。文中通過基于MD5算法設計的加密方案(仿Yahoo郵箱的密碼校驗)進行暴力破解,驗證了本系統的可行性以及速度快、性價比高等顯著優點。

          1 系統結構

          系統利用普通PC機或工控機進行控制、數據流下載和結果采集,大計算量的數字運算利用IP-CORE技術并行地在FPGA中進行。將數字信號處理的算法設計為一個單元模塊,并根據芯片的結構對布局和布線進行優化,該單元模塊重復利用的技術被稱為IP-CORE技術。在本系統中利用TP-CORE的可重復利用性,通過仲裁邏輯調度數據的分配,從而實現算法的并行處理。

          1.1 硬件結構

          系統中采用5片ALTERA公司的STRATIX EP1Sl0FPGA芯片,其中4片作為數字信號處理算法CORE的載體(文中稱為算法FPGA);l片作為連接PC機與運算CORE的橋接芯片、加載程序、并行總線裁決和中斷判決等仲裁邏輯的載體。與PCI總線的接口使用PLX公司的PCI9054芯片。系統硬件結構如圖l所示。

          

        系統硬件結構

          1.2 邏輯結構

          BRIDGE FPGA的程序采用自頂向下的設計方法,其邏輯結構如圖2所示,按功能可分為以下部分:頂層模塊PCI_FPGA_PARALLEL;與PCI9054的接口模塊PCI接口;數據緩存及仲裁部分:數據緩存模塊FIFO、寄存器模塊regpart、數據回傳模塊deserial、內部總線仲裁和流控模塊CORE接口等。

          PCI接口部分實現與PCI9054芯片的接口時序,使得復用的地址和數據分開,產生地址空間的選取及使能信號,便于后端處理。

          仲裁邏輯部分:

          (1)實現對地址空間內數據緩沖區、各種寄存器的讀寫,以及根據配置寄存器的內容對算法CORE和橋FPGA做相應的操作(配置、啟動、停止、復位等)。

          (2)利用緩沖區及FIF0的隊列長度信號wrusedw、rdusedw、full和empty進行數據流控制。數據由PC機下載時首先進入緩沖區,每一塊算法CORE均對應一個數據下行FIFO,由FIFO當前狀態來判定是否從緩沖區中取數。具體邏輯模型如圖3所示。

          

        具體邏輯模型

          (3)返回結果引入本地中斷機制,當有正確結果產生、或無正確結果但密鑰匹配完成、或系統異常狀態,均產生中斷信號并填寫中斷類型寄存器,經級聯后產生向PC機的中斷。中斷判決如圖4所示。

          (4)實現與算法core間的協議邏輯,控制多種數據流的下行以及結果的返回。

          2 MD5算法簡介

          MD5(Message Digest 5)報文摘要算法是一種應用廣泛的提取數字指紋的算法標準,它由MIT的密碼學專家、RSA算法的發明人之一Rivest設計發明。MD5算法結構如圖5所示。

          對任意長度的信息輸入,MD5都將產生一個長度為128bit的輸出,這一輸出可以被看作是原輸入報文的“報文摘要值(Message Digest)”。

          MD5的特點:

          (1)兩條不同的報文具有相同的報文摘要值的可能性極小。

          (2)對于預先給定的報文摘要值,要想尋找到一條報文,使得其報文摘要值與某個給定的報文摘要值相等,在計算上是不可能的。

          (3)根據報文的摘要值,要想推測出原來的報文是極端困難的。

          MD5算法被廣泛地應用于網絡數據完整性檢查以及各種數據加密技術中。

          Yahoo郵箱密碼算法是基于兩次MD5算法。共算法步驟如下:

          stepl:對一個密碼字段(例如:dfeag~hyt),用MD5算法加密:h=md5 (dfertgrhyt)。

          step2:將step1所得結果轉換為32Bytes的hex值:hex(h)。

          step3:將step2所得結果與一個yahoo提供的chanllenge值簡單級聯:string=hex(h)+chanUenge

          step4:將step3所得結果再進行一次MD5運算:hash=md5

          (strmg)。

          由于未得到實際Yaheo郵箱密碼生成參數(例如challenge碼),本文構造了相近算法以測試本系統性能。

          測試方案如下:

          提供一個已知的challenge值與相應的Hash值,從提供的字典中提取合適密碼,由生成算法計算出對應的Hash值與提供的Hash值匹配來校驗匹配的密碼。密鑰字典的產生有兩種方式:人為構造字典及系統自加、窮舉產生密鑰。

          3 實測性能分析

          實際系統中算法CORE運算時鐘為20MHz,64bit數據寬度輸入;采用多級流水線設計及運算速度就是系統運行時鐘的速度。除運算初期流水線建立過程和運算結束時流水線完成過程,運算速度均可視為20MHz;實際制成的系統為四片算法FPGA并行運算,實際吞吐量為4



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 元江| 乐安县| 三台县| 永胜县| 墨脱县| 武乡县| 榆社县| 南丰县| 武清区| 沭阳县| 靖安县| 汉阴县| 蒲城县| 徐州市| 饶平县| 确山县| 济源市| 闸北区| 揭西县| 徐州市| 四平市| 文水县| 新竹市| 宁明县| 甘南县| 景宁| 定日县| 阳西县| 长治市| 尼勒克县| 封丘县| 伊金霍洛旗| 开平市| 克什克腾旗| 新兴县| 略阳县| 迭部县| 高雄市| 教育| 四平市| 岱山县|