[發明專利]一種FPGA程序安全驗證方法、系統、終端及存儲介質在審
| 申請號: | 202010032326.8 | 申請日: | 2020-01-13 |
| 公開(公告)號: | CN111259370A | 公開(公告)日: | 2020-06-09 |
| 發明(設計)人: | 蘇振宇 | 申請(專利權)人: | 蘇州浪潮智能科技有限公司 |
| 主分類號: | G06F21/44 | 分類號: | G06F21/44;G06F21/60;G06F7/58 |
| 代理公司: | 濟南舜源專利事務所有限公司 37205 | 代理人: | 張營磊 |
| 地址: | 215100 江蘇省蘇州市吳*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 fpga 程序 安全 驗證 方法 系統 終端 存儲 介質 | ||
本發明提供一種FPGA程序安全驗證方法、系統、終端及存儲介質,包括:設置密鑰并將所述密鑰存儲至ROM區;將所述密鑰與FPGA程序一起編譯并將編譯文件存儲至非易失性存儲器;生成隨機數并根據所述隨機數和ROM區密鑰生成第一摘要值;將所述隨機數下發至非易失性存儲器,并接收非易失性存儲器根據所述隨機數和編譯文件中的密鑰返回的第二摘要值;比對所述第一摘要值和所述第二摘要值,若兩者一致則加載非易失性存儲器存儲的程序。本發明可以確保FPGA程序的完整性,防止因加載惡意程序后引發的系統安全風險。
技術領域
本發明涉及FPGA技術領域,具體涉及一種FPGA程序安全驗證方法、系統、終端及存儲介質。
背景技術
FPGA是可編程邏輯器件,用于實現各種算法、狀態控制、數字邏輯等功能,已廣泛應用于電子信息、通信工程等領域。在服務器中FPGA也有著廣泛的應用,例如實現電源控制、密碼算法、加速單元等,是服務器中不可缺少的部分。由于FPGA是易失性器件,掉電后其內部存儲的程序會丟失,所以需要利用外部的非易失性存儲器(例如Flash)存儲其程序,即二進制位流文件。如圖1所示,FPGA程序存儲于外部的Fl ash中,每次上電后,FPGA首先讀取Fl ash中的二進制位流文件,加載到FPGA內部的RAM后再運行。
近年來針對服務器的攻擊已經從上層軟件逐漸轉移到了底層的硬件和固件,使第三方惡意者向服務器FPGA中植入惡意代碼、病毒、木馬等成為可能。FPGA的程序以二進制位流的形式存儲于Flash存儲器中,存在被黑客惡意篡改的風險,FPGA程序如果被植入惡意代碼,會引發控制功能失效、邏輯時序混亂等問題,從而導致服務器的拒絕服務,引起業務中斷,嚴重情況下會使服務器被黑客從底層控制,造成系統的徹底崩潰。因此FPGA的安全性影響到了服務器整機的安全性。
發明內容
針對現有技術的上述不足,本發明提供一種FPGA程序安全驗證方法、系統、終端及存儲介質,以解決上述技術問題。
第一方面,本發明提供一種FPGA程序安全驗證方法,包括:
設置密鑰并將所述密鑰存儲至ROM區;
將所述密鑰與FPGA程序一起編譯并將編譯文件存儲至非易失性存儲器;
生成隨機數并根據所述隨機數和ROM區密鑰生成第一摘要值;
將所述隨機數下發至非易失性存儲器,并接收非易失性存儲器根據所述隨機數和編譯文件中的密鑰返回的第二摘要值;
比對所述第一摘要值和所述第二摘要值,若兩者一致則加載非易失性存儲器存儲的程序。
進一步的,所述生成隨機數包括:
利用隨機數生成器生成128b i t的隨機數。
進一步的,所述根據隨機數和ROM區密鑰生成第一摘要值,包括:
將所述隨機數添加至所述密鑰的末尾組成字符串;
利用哈希密碼雜湊算法對所述字符串進行填充和迭代壓縮生成雜湊值,將所述雜湊值作為第一摘要值。
進一步的,所述比對第一摘要值和第二摘要值,包括:
利用單芯片多處理器比對第一摘要值和第二摘要值是否一致:
若是,則輸出1;
若否,則輸出0。
第二方面,本發明提供一種FPGA程序安全驗證系統,包括:
密鑰設置單元,配置用于設置密鑰并將所述密鑰存儲至ROM區;
密鑰綁定單元,配置用于將所述密鑰與FPGA程序一起編譯并將編譯文件存儲至非易失性存儲器;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州浪潮智能科技有限公司,未經蘇州浪潮智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010032326.8/2.html,轉載請聲明來源鉆瓜專利網。





