在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

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

            由于當(dāng)前國稅、地稅、各省、各稅種發(fā)票不同,辨別難度較大,因此給造假者可乘之機。本文設(shè)計的基于的稅控算法加密卡可有效地解決上述問題,提供了高效的防偽措施。該加密卡通過總線內(nèi)置于稅控加密機中,將發(fā)票上的數(shù)據(jù)加密成一組防偽碼,打印在相應(yīng)的區(qū)域上,由于采用國家密碼管理局的高安全性稅控芯片,因此發(fā)票難以被篡改,從而可滿足稅務(wù)機關(guān)對發(fā)票管理和身份認證的要求。

            本文引用地址:http://www.biyoush.com/article/201610/308359.htm

            1 系統(tǒng)總體架構(gòu)設(shè)計

            圖1是基于稅控算法加密卡的系統(tǒng)架構(gòu)圖。其中包括芯片、8片稅控芯片SSX12-B、FPGA配置芯片EPCS4、存儲器EEPROM和電源芯片。

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            FPGA是整個加密卡的控制核心,在其內(nèi)部利用嵌入式—IP核實現(xiàn)與物理32位總線的通信;設(shè)計算法模塊實現(xiàn)了FPGA與8片稅控芯片的數(shù)據(jù)交互;另外,設(shè)計了控制器和雙端口RAM實現(xiàn)了數(shù)據(jù)的傳輸及存儲。PCI總線的時鐘信號33 MHz作為FPGA的主時鐘。此外,33 MHz時鐘也作為SSX12-B芯片的工作時鐘,整個系統(tǒng)采用了時鐘完全同步的設(shè)計方式。EPCS4芯片與FPGA相連,每次上電后FPGA需讀取EPCS4內(nèi)的程序進行加密卡的配置與初始化。EEPROM用于存儲系統(tǒng)密鑰等關(guān)鍵參數(shù)。

            數(shù)據(jù)運算的過程如下:

            (1)通過上位機軟件設(shè)置好運算命令字和待運算的數(shù)據(jù)包,F(xiàn)PGA根據(jù)命令字可指定一片SSX12-B工作或多片SSX12-B同時工作。

            (2)啟動數(shù)據(jù)傳輸,將數(shù)據(jù)包通過PCI總線傳入FPGA的雙端口RAM。RAM由8個1 kB的RAM單元構(gòu)成,每個RAM單元對應(yīng)一個SSX12-B的數(shù)據(jù)緩沖區(qū),RAM單元和SSX12-B的數(shù)據(jù)總線寬度均為8 bit,整個RAM的容量為8 kB,數(shù)據(jù)總線寬度為64 bit。

            (3)待所有數(shù)據(jù)包傳輸?shù)綄?yīng)的RAM單元后,F(xiàn)PGA設(shè)置相關(guān)進程,啟動算法,將數(shù)據(jù)包并行傳送給RAM單元對應(yīng)的SSX12-B芯片。

            (4)各SSX12-B芯片同時開始工作,此時FPGA等待運算的完成。

            (5)各SSX12-B芯片運算完成后在算法的控制下將數(shù)據(jù)包傳回到對應(yīng)的RAM單元。待所有數(shù)據(jù)包傳完后狀態(tài)機產(chǎn)生中斷信號,之后FPGA通過PCI總線將數(shù)據(jù)包傳回到上位機,至此完成了一次數(shù)據(jù)運算過程。

            2 主要芯片選型

            (1)FPGA芯片。選用美國Altera公司CycloneⅢ系列的EP3C16F484C8器件,該芯片總引腳數(shù)為484,其中I/O引腳為346,RAM總量為63 kB,邏輯單元(LE)15 408個,可滿足加密卡的設(shè)計要求。FPGA的開發(fā)工具采用Altera公司的EDA軟件Quartus II9.1,其可實現(xiàn)綜合、仿真、布局布線、系統(tǒng)調(diào)試等功能。

            (2)稅控密碼算法芯片。采用國家密碼管理局的稅控密碼算法芯片SSX12-B,該芯片專用于稅控等信息安全領(lǐng)域,功能主要有數(shù)據(jù)加密、解密、生成票據(jù)防偽碼等,有效保證了用戶進行交易時數(shù)據(jù)的安全性。

            其主要特點為:每片算法芯片均有各自獨立的ID,所有加密運算均在片內(nèi)完成,運算速度快且安全性高。

            (3)FPGA配置芯片。采用Altera公司的EPCS4芯片,該芯片用以存儲加密卡的配置程序。加密卡每次上電后,F(xiàn)PGA首先從EPCS4里加載程序。

            (4)EEPROM。采用Microchip公司的24LC512I2C串行總線EEPROM,容量為64×8 kbit,8腳SOIC封裝。100萬次的擦寫周期,數(shù)據(jù)保持時間>200年,最大5 ms的寫入周期。此芯片主要用于存儲加密卡的密鑰等關(guān)鍵數(shù)據(jù)。

            3 數(shù)據(jù)傳輸模塊

            設(shè)計了FPGA的控制器和雙端口RAM作為數(shù)據(jù)傳輸模塊。傳輸對于高效能嵌入式系統(tǒng)算法和網(wǎng)絡(luò)是關(guān)鍵,其允許不同速度的硬件裝置進行溝通,而無需依賴CPU的大量中斷負載。否則,CPU需要從來源將每一片段的資料復(fù)制到暫存器,再寫回到新的地方,在這段時間中CPU無法參與其他工作。DMA傳輸?shù)闹匾饔檬菍⒁粋€內(nèi)存區(qū)從一個裝置復(fù)制到另一個。當(dāng)CPU初始化DMA傳輸后,傳輸動作本身由DMA控制器執(zhí)行。

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            如圖2所示,DMA控制器包括Master Read邏輯、Master Write邏輯、DMA控制邏輯和DMA寄存器。Master Read邏輯實現(xiàn)數(shù)據(jù)由上位機到加密卡的傳輸;Master Write邏輯實現(xiàn)數(shù)據(jù)由加密卡到上位機的傳輸;DMA控制邏輯實現(xiàn)傳輸?shù)目刂乒δ?DMA寄存器包括控制狀態(tài)寄存器CSR、地址計數(shù)寄存器ACR、字節(jié)計數(shù)寄存器BCR、中斷狀態(tài)寄存器ISR和本地地址計數(shù)寄存器LAR。在實現(xiàn)DMA傳輸時,由DMA控制器直接掌管總線。因此,存在一個總線控制權(quán)轉(zhuǎn)移的問題。即DMA傳輸前,CPU要將總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即將總線控制權(quán)再交回給CPU。一個完整的DMA傳輸過程包括DMA請求、DMA響應(yīng)、DMA傳輸和DMA結(jié)束4個步驟。

            DMA控制器實現(xiàn)數(shù)據(jù)傳輸?shù)木唧w步驟如下:

            (1)上位機設(shè)置待傳輸?shù)臄?shù)據(jù)包,并依次設(shè)置CSR、LAR、BCR和ACR寄存器,并對DMA控制器初始化。

            (2)上位機啟動DMA讀(Master Read)的過程,將數(shù)據(jù)包一次性傳入稅控加密卡的雙端口RAM。

            (3)DMA控制器啟動算法狀態(tài)機模塊,控制密碼算法芯片SSX12-B同時工作。

            (4)密碼算法芯片SSX12-B結(jié)束工作后,將運算完成的數(shù)據(jù)傳回到相應(yīng)的雙端口RAM存儲單元。

            (5)DMA控制器設(shè)置ISR和CSR寄存器,啟動DMA寫(Master Write)的過程,將運算完成的數(shù)據(jù)包傳回到上位機。

            雙端口RAM的作用是緩存數(shù)據(jù),其提供2組獨立的數(shù)據(jù)讀寫端口。因此,上位機和FPGA可對RAM進行獨立的訪問,使設(shè)計更加靈活。

            4 密碼算法狀態(tài)機模塊

            狀態(tài)機是數(shù)字時序邏輯中重要的設(shè)計內(nèi)容,通過狀態(tài)轉(zhuǎn)移圖設(shè)計手段可將復(fù)雜的控制時序圖形化表示,分解為狀態(tài)之間的轉(zhuǎn)換關(guān)系,將問題簡化。算法狀態(tài)機模塊實現(xiàn)對SSX12-B芯片的時序控制。狀態(tài)機的狀態(tài)轉(zhuǎn)移圖如圖3所示,由上位機軟件通過設(shè)置CSR寄存器相應(yīng)位的值啟動對應(yīng)的密碼芯片工作,F(xiàn)PGA根據(jù)CSR寄存器可啟動多片SSX12-B同時并行工作。單個芯片的狀態(tài)轉(zhuǎn)移圖如圖4所示,由空閑狀態(tài)、啟動狀態(tài)、寫命令狀態(tài)、寫數(shù)據(jù)狀態(tài)、等待狀態(tài)、讀數(shù)據(jù)狀態(tài)及結(jié)束狀態(tài)組成。對各狀態(tài)的編碼采用格雷碼的方式,可有效地防止毛刺的產(chǎn)生,使系統(tǒng)穩(wěn)定。

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            算法狀態(tài)機的設(shè)計是通過FPGA的硬件描述語言VHDL完成的,單個芯片的狀態(tài)機具體工作過程如下:

            (1)算法開始信號sf_start=‘0’時狀態(tài)機始終處于空閑狀態(tài)。(2)上位機設(shè)置CSR寄存器相應(yīng)的位后,F(xiàn)PGA使sf_start=‘1’,狀態(tài)機進入啟動狀態(tài)。(3)當(dāng)狀態(tài)機檢測到芯片處于不忙的狀態(tài)時,即SSX12-B芯片的Busy_nRdy引腳為低電平,狀態(tài)機進入寫命令狀態(tài)。(4)在寫命令狀態(tài),F(xiàn)PGA將相應(yīng)的命令字寫入SSX12-B芯片,Busy_nRdy=‘0’時進入寫數(shù)據(jù)狀態(tài)。(5)在寫數(shù)據(jù)狀態(tài),F(xiàn)PGA將待運算的數(shù)據(jù)包依次寫入SSX12-B芯片。(6)狀態(tài)機進入等待狀態(tài),等待SSX12-B芯片的運算完成。(7)當(dāng)檢測到Busy_nRdy引腳為低電平時,狀態(tài)機進入讀數(shù)據(jù)狀態(tài),并將運算完成的數(shù)據(jù)傳回到對應(yīng)的RAM單元。(8)待本次運算的數(shù)據(jù)讀取完畢,狀態(tài)機進入結(jié)束狀態(tài),至此完成了一次數(shù)據(jù)運算過程。(9)之后狀態(tài)機返回空閑狀態(tài),等待下一次數(shù)據(jù)運算請求的到來。

            5 系統(tǒng)工作過程

            稅控加密卡的一次業(yè)務(wù)通常包括多次運算過程的組合。例如生成一次票據(jù)防偽碼的業(yè)務(wù)包括自檢、生成非對稱密鑰對、讀入簽名密鑰密文、讀入賬戶密鑰密文等運算過程。圖5是稅控加密卡的業(yè)務(wù)流程圖,具體工作過程如下:

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            (1)稅控加密卡上電、復(fù)位及初始化結(jié)束后,上位機對DMA控制器初始化,其中包括設(shè)置待傳送的數(shù)據(jù)包,設(shè)置DMA相關(guān)的寄存器,提供要傳送數(shù)據(jù)的起始位置和數(shù)據(jù)長度。

            (2)DMA控制器對DMA請求判別優(yōu)先級及屏蔽,向總線裁決邏輯提出總線請求。當(dāng)上位機CPU執(zhí)行完當(dāng)前總線周期即可釋放總線控制權(quán)。此時,總線裁決邏輯輸出總線應(yīng)答,表示DMA已響應(yīng),通過DMA控制器通知加密卡開始DMA傳輸。

            (3)DMA控制器獲得總線控制權(quán)后,上位機CPU即刻掛起或只執(zhí)行內(nèi)部操作,由DMA控制器輸出讀命令,直接控制內(nèi)存區(qū)與加密卡的雙端口RAM進行DMA讀操作(Master Read)。此時,數(shù)據(jù)包通過PCI總線依次傳入到雙端口RAM的相應(yīng)地址單元。

            (4)Master Read完成后,DMA控制器向算法控制模塊產(chǎn)生中斷。算法控制模塊收到中斷后將其清除,之后啟動算法狀態(tài)機進程。狀態(tài)機進程讀取雙端口RAM中的數(shù)據(jù),再將數(shù)據(jù)傳送到外部的算法芯片SSX12-B。

            (5)SSX12-B芯片開始并行工作,此時FPGA等待運算完成。

            (6)SSX12-B芯片將運算完成后的數(shù)據(jù)包傳回到相應(yīng)的RAM地址單元,之后算法控制模塊產(chǎn)生結(jié)束信號,DMA控制器收到此信號后設(shè)置相應(yīng)的進程,并啟動DMA寫操作(Master Wr ite),將數(shù)據(jù)包通過PCI總線傳回到上位機。

            (7)當(dāng)完成DMA寫操作后,DMA控制器釋放總線控制權(quán),上位機CPU重新取得總線的控制權(quán)并執(zhí)行一段檢查本次DMA傳輸操作正確性的代碼,至此完成一次運算。

            (8)根據(jù)上位機的命令依次處理多次運算,如生成非對稱密鑰對、讀入簽名密鑰密文、讀入賬戶密鑰密文等,直至完成生成票據(jù)防偽碼或數(shù)據(jù)加解密的業(yè)務(wù)。

            6 實驗結(jié)果分析

            整個設(shè)計在Quartus II 9.1軟件中先后完成綜合、功能仿真、布局布線后,通過邏輯分析儀SignalTap并結(jié)合上位機軟件進行了調(diào)試。除去SignalTap,F(xiàn)PGA的最終編譯結(jié)果是:占用存儲單元15.75 kB,邏輯單元4 950個。加入SignalTap編譯后占用FPGA的存儲單元為37.8 kB,占用率為60%,由于資源富余較大,所以加入SignalTap調(diào)試對系統(tǒng)的數(shù)據(jù)結(jié)果不會造成影響。FPGA各模塊的時鐘信號同步于33 MHz時鐘,采用了完全同步的方式進行設(shè)計,從理論上通過優(yōu)化FPGA的電路結(jié)構(gòu)可滿足信號的建立、保持時間要求。

            最終利用Quanus II的時序分析工具TimeQuest對系統(tǒng)的時序進行了分析,測得最高時鐘頻率>46.01 MHz,所有信號的建立、保持時間無違規(guī)路徑。

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            圖6是在SignalTap中調(diào)試通過的波形圖,圖中顯示了單芯片生成票據(jù)防偽碼及將數(shù)據(jù)寫到雙端口RAM的過程。Busy_nRdy信號是SSX12-B芯片的狀態(tài)引腳,高電平表示芯片正在運算中,低電平表示輸出數(shù)據(jù)有效;FPGA_i_nD[0]信號是SSX12-B的指令/數(shù)據(jù)引腳,高電平表示數(shù)據(jù)總線上是命令,低電平表示數(shù)據(jù)總線上是數(shù)據(jù);FPGA_nLE[0]是SSX12-B的數(shù)據(jù)總線狀態(tài)引腳,低電平表示總線上的數(shù)據(jù)有效,高電平表示總線為三態(tài);Data_in信號是SSX12-B輸出的數(shù)據(jù):73h是應(yīng)答字,09h是返回的有效數(shù)據(jù)長度,00h表示無錯誤,44 h,E7h,33h,F(xiàn)Eh……是生成的8 Byte防偽碼;ram_wr是雙端口RAM的寫信號,WR_addr是雙端口RAM的寫地址線,ram_in0是RAM的數(shù)據(jù)輸入端口,dma_write_len表示寫入的數(shù)據(jù)長度,圖中顯示了SSX12-B在輸出票據(jù)防偽碼數(shù)據(jù)的同時狀態(tài)機將數(shù)據(jù)寫入到了雙端口RAM,WR_addr地址依次遞增,state_port是狀態(tài)機的狀態(tài)變化信號。

            基于FPGA的稅控算法加密卡設(shè)計與實現(xiàn)

            表1是在不帶有SignalTap的加密卡上測得的8片SSX12-B芯片生成的防偽碼數(shù)據(jù),其與帶有SignalTap的加密卡測得的數(shù)據(jù)相一致,且生成的防偽碼經(jīng)核驗服務(wù)器核驗后均是正確的防偽碼數(shù)據(jù)。

            加密卡的驅(qū)動程序基于Linux2.6內(nèi)核開發(fā),API接口程序和上位機軟件是在RedHat Linux AS4.6環(huán)境下開發(fā)完成的的。最后對加密卡生成票據(jù)防偽碼的性能進行了測試,在程序中設(shè)置8片密碼算法芯片SSX12-B同時并行工作,通過10 000次循環(huán)測試,測得生成票據(jù)防偽碼的速度為827次/s。通過壓力測試加密卡工作穩(wěn)定,且生成數(shù)據(jù)正確。

            7 結(jié)束語

            設(shè)計了一種基于FPGA的稅控算法加密卡,介紹了各模塊的設(shè)計,通過FPGA實現(xiàn)了對稅控密碼算法芯片的高效控制。該加密卡具有加密速度快、效率高、功耗小的優(yōu)點,通過PCI總線內(nèi)置于稅控加密機中,可保證發(fā)票數(shù)據(jù)的正確加解密及生成發(fā)票數(shù)據(jù)防偽碼,滿足了稅務(wù)部門對發(fā)票管理的要求。



            關(guān)鍵詞: FPGA PCI DMA 密碼算法 狀態(tài)機

            評論


            相關(guān)推薦

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

            關(guān)閉