一種基于zynq的小型密碼機及數據加密方法
【技術領域】
[0001]本發明涉及信息安全技術領域,尤其涉及一種基于ZYNQ的小型密碼機及數據加密方法。
【背景技術】
[0002]近年來,隨著網絡和計算機技術的迅猛發展,整個世界已經進入了互聯網時代,互聯網的方便快捷、跨越時空的特性給人類社會帶來巨大的改變,影響到社會的各個方面。
[0003]人們開始利用這一便捷的基礎設施改變傳統商務活動和辦公模式,進行電子商務、電子政務、網絡辦公。當前,B2C、B2B等電子商務活動已經相當普及,電子報稅、網上審批等電子政務平臺建設發展得如火如荼,互聯網成為企事業單位遠程辦公的理想平臺。互聯網終端也從電腦擴展到手機、平板等移動設備,并有向智能家居設備擴展的趨勢。
[0004]然而,由于互聯網設計的開放性,導致互聯網用戶面臨諸多方面的安全威脅:身份認證機制較弱,合法用戶容易被假冒,無法控制資源的訪問;攻擊者可以在線路上竊聽數據,甚至篡改數據后重新發布到網絡上。另外網絡應用還面臨拒絕服務,線路竊聽、破壞數據完整性、機密性等方面的攻擊。這些安全問題已經逐漸成為影響網絡應用進一步發展的瓶頸。
[0005]為了解決這些問題,業界開發了各種網絡安全技術,以應對各種網絡安全威脅。如PKI (公鑰基礎設施),數據加密、數字簽名,虛擬專用網絡(VPN)等技術和產品可以有效的解決遠程身份認證和數據保密問題。
[0006]對于一些關鍵行業,國家是不允許使用國外產品的。但是國內的產品,在性能、功能完備性、產品成熟度等方面還有不少差距,使得安全產品的應用有諸多不便,其主要體現在兩個方面:
[0007]—,在高性能產品方面,國產密碼產品主要為主機加密服務器,存在性能相對較低、價格高等缺點。以過去常用的1024位RSA算法為例,美國的Cavium公司研發的芯片簽名速度可以達到每秒200000次,而我國最快的芯片只有每秒6000次;國外用于網絡通信的安全芯片,可以把網絡協議(IPSEC,SSL)和密碼算法結合在一起,而國內只有單純實現密碼算法的芯片。
[0008]二,在小型化設備方面,國內密碼產品主要以智能密碼鑰匙(KEY)為主,性能非常低,僅適合個人應用場合。
[0009]本發明針對小型化密碼設備,提出一種以ZYNQ為核心的小型加密設備。
【發明內容】
[0010]本發明所要解決的技術問題是針對現有技術的不足,提供一種基于ZYNQ的小型密碼機及數據加密方法。
[0011]本發明解決上述技術問題的技術方案如下:
[0012]一種基于ZYNQ的小型密碼機,包括ZYNQ主處理器、專用處理器和密鑰存儲器,所述ZYNQ主處理器包括ARM處理器和FPGA,所述ARM處理器與FPGA通過片內高速總線連接,所述FPGA與專用處理器通過總線復用連接,所述專用處理器與密鑰存儲器連接;所述ARM處理器,其運行嵌入式Linux系統進行業務的調度和管理,用于根據接收到的業務請求包進行相應運算,并將經運算的業務請求包發送給FPGA ;所述FPGA,用于根據業務請求包向專用處理器進行密鑰權限驗證,當驗證通過時通過預定加密算法對業務數據進行加密處理,將加密處理的業務數據通過ARM處理器返回給請求方;所述專用處理器,用于實現信息密鑰的管理和權限控制,根據業務請求包進行權限驗證;所述密鑰存儲器,用于以密文形式存儲密鑰。
[0013]本發明的有益效果是:本發明采用ZYNQ可編程器件,ARM處理器通過內部高速總線與FPGA間進行數據的傳輸,提高了數據傳輸效率,降低了系統的復雜度,降低了系統成本;同時由于采用了高速總線互聯、千兆以太網接口,提升了數據傳輸性能;采用FPGA實現算法運算,極大的提高了算法性能,因此系統整體性能也獲得了極大的提升;采用了專用的處理器進行密鑰的管理和權限的控制,使得密鑰不會在Linux系統中出現,真正做到了物理隔絕,同時密鑰存儲以密文形式存儲,保護了密鑰的安全,進而保護了整個系統的安全。
[0014]在上述技術方案的基礎上,本發明還可以做如下改進。
[0015]進一步,所述ARM處理器當收到業務請求包時,運行于Linux上的應用程序對業務請求包進行解析,將業務數據和相應的命令碼按照約定好的順序進行組合,發送至FPGA,數據傳輸完成后向FPGA內部寄存器寫入完成標識;ARM處理器在收到FPGA發送的中斷后讀取FPGA內的運算結果,組織數據,將結果返回給請求方。
[0016]進一步,所述FPGA其內部例化一個雙口 RAM,第一接口通過片內高速總線與ARM處理器互聯,第二接口和專用處理器互聯;當邏輯檢測到內部寄存器被ARM處理器寫入完成標識后,發送中斷給專用處理器,表明FPGA內部有待處理數據,請求相應的權限進行操作,當接收到處理器反饋的權限驗證通過時,調用相應的算法進行運算,將運算結果寫入到雙口 RAM中,產生中斷通知ARM處理器已經完成運算。
[0017]采用上述進一步方案的有益效果是:由于采用了高速總線互聯提升了數據傳輸效率和數據傳輸性能。
[0018]進一步,所述專用處理器接收到FPGA發送的中斷后讀取FPGA內雙口 RAM的數據,根據相應的命令碼判斷是否為合法數據,是否有權限進行運算,如果為合法數據且有權限則通知FPGA啟動算法運算,否則返回錯誤碼。
[0019]進一步,上述技術方案還包括算法專用芯片,所述FPGA的第二接口通過總線復用與算法專用芯片和專用處理器互聯,所述算法專用芯片和專用處理器均可通過復用總線對FPGA的雙口 RAM進行數據讀寫,所述算法專用芯片實現SMl加密算法,并與FPGA中的加密算法配合對業務數據進行加密。
[0020]采用上述進一步方案的有益效果是:SM1算法采用專用算法芯片,其他算法均采用FPGA實現,既提高了芯片的利用率,又能簡化板卡設計,降低成本;同時FPGA通過總線復用與算法專用芯片和專用處理器互聯,實現了完全雙工的數據傳輸模式。
[0021 ] 進一步,上述技術方案還包括外設模塊,其與ARM處理器和FPGA連接,所述ARM處理器對外設模塊進行管理,所述外設模塊包括千兆以太網接口、USB OTG接口、實時時鐘、隨機數發生器、管理串口和存儲設備,所述外設模塊的千兆以太網接口用于接收業務請求包發送給RAM處理器,還用于將響應數據包發送給請求方。
[0022]采用上述進一步方案的有益效果是:接口方面,實現了千兆以太網接口,用于加密網絡數據;集成了 USB OTG接口,既可以連接USB KEY或智能卡,進行密鑰的備份恢復,也可以接駁USB存儲設備,擴展存儲空間;另外還有管理串口、板載存儲設備等,構成功能完備的加密設備。
[0023]—種數據加密方法,包括如下步驟:
[0024]步驟1,ARM處理器運行嵌入式Linux系統進行業務的調度和管理,根據接收到的業務請求包進行相應運算,并將經運算的業務請求包發送給FPGA ;
[0025]步驟2,FPGA根據業務請求包向專用處理器進行密鑰權限驗證,專用處理器根據業務請求包的內容進行權限驗證,驗證通過向FPGA反饋驗證信息;
[0026]步驟3,FPGA當驗證通過時通過預定加密算法對業務數據進行加密處理,ARM處理器將加密處理的業務數據返回給請求方。
[0027]在上述技術方案的基礎上,本發明還可以做如下改進。
[0028]進一步,所述I的具體實現步驟如下:
[0029]所述ARM處理器當收到業務請求包時,運行于Linux上的應用程序對業務請求包進行解析,將業務數據和相應的命令碼按照約定好的順序進行組合,發送至FPGA,數據傳輸完成后向FPGA內部寄存器與入完成標識。
[0030]進一步,所述步驟2的具體實現步驟如下:
[0031]FPGA檢測到內部寄存器被ARM處理器寫入完成標識后,發送中斷給專用處理器,表明FPGA內部有待處理數據,請求相應的權限進行操作;專用處理器接收到FPGA發送的中斷后讀取FPGA內雙口 RAM的數據,根據相應的命令碼判斷是否為合法數據,是否有權限進行運算,如果為合法數據且有權限則通知FPGA啟動算法運算,否則返回