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