CN114047947B - 一种双fpga架构电路板卡程序版本控制方法 - Google Patents
一种双fpga架构电路板卡程序版本控制方法 Download PDFInfo
- Publication number
- CN114047947B CN114047947B CN202210035143.0A CN202210035143A CN114047947B CN 114047947 B CN114047947 B CN 114047947B CN 202210035143 A CN202210035143 A CN 202210035143A CN 114047947 B CN114047947 B CN 114047947B
- Authority
- CN
- China
- Prior art keywords
- program
- ciphertext
- fpga
- hash value
- auxiliary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种双FPGA架构电路板卡程序版本控制方法,程序发送方对程序代码进行加密,得到“程序‑密文”,并远程传递给客户端,使用一个用于对所述程序代码的版本进行验证的验证密文存储在硬件电子钥匙上并转给客户端;客户端主FPGA接收“程序‑密文”并传给副FPGA进行解密,在副FPGA上使用所述硬件电子钥匙对程序版本进行验证;当副FPGA版本验证通过后,将解密后的“程序‑明文”传回给主FPGA进行程序更新。利用双FPGA架构的特点,在副FPGA上对程序代码进行验证,只有验证正确的程序代码才能加载到主FPGA芯片上进行更新,充分发挥了副FPGA管理控制的特点,因此不会因非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露的干扰对主FPGA造成影响。
Description
技术领域
本发明属于FPGA领域,尤其是涉及一种双FPGA架构电路板卡程序版本控制方法。
背景技术
在双FPGA架构的电路板卡中,主FPGA主管业务功能,副FPGA实现管理控制BMC等辅助功能。随着FPGA技术蓬勃发展,双FPGA电路板卡的形式和种类越来越多,在金融领域、加速卡领域、智能网卡领域、测试设备领域等都有广泛的应用。
因为各种各样的原因,需要定期对主管业务功能的FPGA进行程序版本的更新,为了防止非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露等等问题,如果操作不当很可能会对用户造成巨额的经济损失。
虽然现在的加密算法已经有很多,可以对程序进行保护,但是应用在双FPGA架构板卡中,怎样在确保程序版本未更改的情况下,方便快捷的对程序进行更新。
发明内容
本发明要解决的技术问题是在双FPGA架构的电路板卡上,怎样在对主管业务功能的主FPGA进行程序更新时,确保程序版本在传递过程中未被更改,提出了一种双FPGA架构电路板卡程序版本控制方法。
为解决上述技术问题,本发明所采用的技术方案是:
一种双FPGA架构电路板卡程序版本控制方法,包括以下步骤:
步骤1:程序发送方对程序代码进行加密,得到“程序-密文”,并远程传递给客户端;
步骤2:程序发送方使用一个用于对所述程序代码的版本进行验证的验证密文存储在硬件电子钥匙上并转给客户端;
步骤3:客户端主FPGA接收“程序-密文”并传给副FPGA进行解密得到“程序-明文”,在副FPGA上使用所述硬件电子钥匙对程序版本进行验证;
步骤4:当副FPGA进行版本验证通过后,将解密后的“程序-明文”传回给主FPGA进行程序更新。
进一步地,步骤1中对程序代码进行加密的方法为对称加密算法。
进一步地,步骤2中所述验证密文是指:
步骤2.1:提取所述程序代码的哈希值H0;
步骤2.2:对所述哈希值H0使用不同于程序代码的加密方法进行加密,得到“哈希值H0-密文”,所述“哈希值H0-密文”为验证密文。
进一步地,步骤3中使用所述硬件电子钥匙对程序版本进行验证的方法是:
步骤3.1:在客户端电路板卡的EEPROM中预先存储有“程序-密文”的秘钥以及所述验证密文的秘钥,同时所述副FPGA上还加载有对程序代码以及对哈希值H0进行加密的加密算法;
步骤3.2:客户端副FPGA读取存储在硬件电子钥匙中的验证密文即“哈希值H0-密文”,副FPGA读取存储在EEPROM中的验证密文即“哈希值H0-密文”的秘钥,使用副FPGA上对哈希值H0的加密算法以及“哈希值H0-密文”的秘钥对“哈希值H0-密文”进行解密,得到“哈希值H0-明文”;
步骤3.3:副FPGA接收从主FPGA传递过来的“程序-密文”,读取预先存储在电路板卡的EEPROM中的“程序-密文”的秘钥,使用对程序代码加密的算法进行解密,得到“程序-明文”;
步骤3.4:使用步骤2中提取哈希值的方法对所述“程序-明文”提取哈希值H1;
步骤3.5:副FPGA对比哈希值H0和H1,若一致,则程序版本合法,将解密后的“程序-明文传递给主FPGA进行程序更新,若不一致, 则上传警报信息。
进一步地,步骤2.1中提取所述程序代码的哈希值H0的方法是使用一种加密算法进行哈希值提取。
进一步地,2.1中提取所述程序代码的哈希值H0时所使用的加密算法是国密SM3。
进一步地,步骤2.2中所述哈希值H0进行加密的方法是不对称加密算法。
进一步地,所述对称加密算法为国密SM4。
进一步地,所述不对称加密算法为国密SM2。
采用上述技术方案,本发明具有如下有益效果:
本发明提供的一种双FPGA架构电路板卡程序版本控制方法,利用双FPGA架构的特点,在副FPGA上对程序代码进行验证,只有验证正确的程序代码才能加载到主FPGA上进行更新,充分发挥了副FPGA管理控制的特点,因此不会因非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露的干扰对主FPGA造成影响。
在副FPGA上加载多种与程序发送方相对应的加密算法,并在电路板卡的EEPROM中预先存储对程序代码以及对程序代码提取哈希值后加密的秘钥,方便读取,并且直接使用副FPGA上的加密算法并读取EEPROM中的秘钥对“程序-密文”和“哈希值-密文”进行解密,再使用与程序发送方相同的提取哈希值的方法对解密后的程序代码明文提取哈希值,如果客户端所提取的哈希值与程序发送方所提取的哈希值一致,则验证正确,将解密后的程序代码发给主FPGA进行程序的更新,充分利用了副FPGA管理控制的特点,将验证正确的程序代码进行更新,由于只有验证正确的程序代码才会发送给主FPGA,因此不会因非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露的干扰对主FPGA造成影响。
附图说明
图1为本发明系统流程图;
图2为程序发送方的加密过程示意图;
图3为本发明的原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1至图3示出了本发明一种双FPGA架构电路板卡程序版本控制方法的具体实施例,如图1和图3所示,包括以下步骤:
步骤1:程序发送方对程序代码进行加密,得到“程序-密文”,并远程传递给客户端。本实施例中,对程序代码进行加密的方法为对称加密方法。加密后的程序代码在传递给客户端的过程中,可能会因非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露等原因造成程序发生了改变,因此需要增加版本验证使得只有版本没有发生错误的情况下才能对主FPGA进行更新。本实施例中,对程序代码进行加密的方法是对称加密算法为国密SM4。
步骤2:程序发送方使用一个用于对所述程序代码的版本进行验证的验证密文存储在硬件电子钥匙上并转给客户端;本实施例中,将验证密文转给客户端,可以通过邮寄的方式将硬件电子钥匙转交到客户端手中,便于客户端进行程序版本的验证。
本实施例中所提到的验证密文是指,如图2所示:
步骤2.1:提取所述程序代码的哈希值H0。提取所述程序代码的哈希值H0的方法是使用一种加密算法进行哈希值提取。在本实施例中,使用的加密算法是国密SM3。
步骤2.2:对所述哈希值H0使用不同于程序代码的加密方法进行加密,得到“哈希值H0-密文”,所述“哈希值H0-密文”为验证密文。本实施例中,对哈希值H0进行加密的方法是不对称加密算法。在本实施例中使用的不对称加密方法为国密SM2。
本实施例中,如图2所示,程序发送方在有新版本的程序需要更新时,需要对程序代码进行加密,秘钥为预先设置好的存储在客户端电路板卡的存储芯片EEPROM上,加密后的“程序-密文”可以以邮件、光盘发送等形式传送给客户,同时为了对程序版本进行验证,还提取了程序代码的哈希值,并对哈希值进行加密,加密后的哈希值即“哈希值H0-密文”以硬件电子钥匙的形式发送给客户。
步骤3:客户端主FPGA接收“程序-密文”并传给副FPGA进行解密,在副FPGA上使用所述硬件电子钥匙对程序版本进行验证。由于副FPGA没直接有对外的程序代码输入接口,因此,“程序-密文”是主FPGA从对外接口接收后再传送给副FPGA,在副FPGA上进行版本验证,这样做也可以保护副FPGA的程序不被外部人员更改。
本实施例中副FPGA对“程序-密文”进行解密,使用所述硬件电子钥匙对程序版本进行验证的方法是:
步骤3.1:在客户端电路板卡的EEPROM中预先存储有“程序-密文”的秘钥以及所述验证密文的秘钥,同时所述副FPGA上还加载有对程序代码以及对哈希值H0进行加密的加密算法。本实施例中,由于主FPGA的程序经常需要更新,因此在程序发送方在第一次交付给客户端主FPGA和副FPGA时,便预先设置好程序变更时加密所用的秘钥,从而以硬件的形式将秘钥提前给了客户,避免后续秘钥发送过程中因秘钥泄漏造成的损失。在副FPGA上加载多种与程序发送方相对应的加密算法,并在电路板卡的EEPROM上预先存储对程序代码以及对程序代码提取哈希值后加密的秘钥,方便读取,直接使用副FPGA上的加密算法以及秘钥对“程序-密文”和“哈希值-密文”进行解密。在FPGA上加载与程序发送方相对应的加密算法,其解密性能要远高于计算机,解密延时低,实时性更好;并且解密后的程序代码明文只在主副FPGA间传递,保证了其安全性,如果在计算机上进行解密再传送给主FPGA,在传送过程中间有可能造成程序被破坏修改;而且在副FPGA进行解密的过程是预先通过可编程设置好的“职能”,不受外部影响,并且无直接对外接口,监控功能不会被外界破解、更改。
步骤3.2:客户端副FPGA读取存储在硬件电子钥匙中的验证密文即“哈希值H0-密文”,并读取存储在EEPROM中的验证密文即“哈希值H0-密文”的秘钥,使用副FPGA上对哈希值H0的加密算法以及“哈希值H0-密文”的秘钥对“哈希值H0-密文”进行解密,得到“哈希值H0-明文”;
步骤3.3:副FPGA接收从主FPGA传递过来的“程序-密文”,读取预先存储在EEPROM中上的“程序-密文”的秘钥,使用对程序代码加密的算法进行解密,得到“程序-明文”;
步骤3.4:使用步骤2中提取哈希值的方法对所述“程序-明文”提取哈希值H1;
步骤3.5:副FPGA对比哈希值H0和H1,若一致,则程序版本合法,将解密后的“程序-明文传递给主FPGA卡进行程序更新,若不一致, 则上传警报信息。
通过在副FPGA上进行程序版本的验证,不影响主FPGA的功能。
步骤4:当副FPGA进行版本验证通过后,将解密后的程序代码传给主FPGA进行程序更新。
本实施例中,充分发挥副FPGA管理控制的特点,在在副FPGA上对程序代码密文进行解密和版本正确性验证,只有验证正确的程序代码才能加载到主FPGA上进行更新,充分发挥了副FPGA管理控制的特点,因此不会因非法程序、病毒程序、错误版本程序的干扰和程序代码的泄露的干扰对主FPGA造成影响。此外,使用FPGA实现加解密算法,解密性能可随需求而更改,副FPGA上的加密算法种类可随需求而更改,使用更灵活,可扩展性更强;FPGA作为可编程逻辑芯片,比单独的加密芯片更加智能,可以承担其他的电路板功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种双FPGA架构电路板卡程序版本控制方法,其特征在于,包括以下步骤:
步骤1:程序发送方对程序代码进行加密,得到“程序-密文”,并远程传递给客户端;
步骤2:程序发送方使用一个用于对所述程序代码的版本进行验证的验证密文存储在硬件电子钥匙上并转给客户端;
步骤3:客户端主FPGA接收“程序-密文”并传给副FPGA进行解密得到“程序-明文”,在副FPGA上使用所述硬件电子钥匙对程序版本进行验证,副FPGA无直接对外接口;
步骤4:当副FPGA进行版本验证通过后,将解密后的“程序-明文”传回给主FPGA进行程序更新;
步骤3中使用所述硬件电子钥匙对程序版本进行验证的方法是:
步骤3.1:在客户端电路板卡的EEPROM中预先存储有“程序-密文”的秘钥以及所述验证密文的秘钥,同时所述副FPGA上还加载有对程序代码以及对哈希值H0进行加密的加密算法;
步骤3.2:客户端副FPGA读取存储在硬件电子钥匙中的验证密文即“哈希值H0-密文”,副FPGA读取存储在EEPROM中的验证密文即“哈希值H0-密文”的秘钥,使用副FPGA上对哈希值H0的加密算法以及“哈希值H0-密文”的秘钥对“哈希值H0-密文”进行解密,得到“哈希值H0-明文”;
步骤3.3:副FPGA接收从主FPGA传递过来的“程序-密文”,读取预先存储在电路板卡的EEPROM中的“程序-密文”的秘钥,使用对程序代码加密的算法进行解密,得到“程序-明文”;
步骤3.4:使用步骤2中提取哈希值的方法对所述“程序-明文”提取哈希值H1;
步骤3.5:副FPGA对比哈希值H0和H1,若一致,则程序版本合法,将解密后的“程序-明文”传递给主FPGA进行程序更新,若不一致,则上传警报信息。
2.根据权利要求1所述的程序版本控制方法,其特征在于,步骤1中对程序代码进行加密的方法为对称加密算法。
3.根据权利要求2所述的程序版本控制方法,其特征在于,步骤2中所述验证密文是指:
步骤2.1:提取所述程序代码的哈希值H0;
步骤2.2:对所述哈希值H0使用不同于程序代码的加密方法进行加密,得到“哈希值H0-密文”,所述“哈希值H0-密文”为验证密文。
4.根据权利要求3所述的程序版本控制方法,其特征在于,步骤2.1中提取所述程序代码的哈希值H0的方法是使用一种加密算法进行哈希值提取。
5.根据权利要求4所述的程序版本控制方法,其特征在于,步骤2.1中提取所述程序代码的哈希值H0时所使用的加密算法是国密SM3。
6.根据权利要求3所述的程序版本控制方法,其特征在于,步骤2.2中所述哈希值H0进行加密的方法是不对称加密算法。
7.根据权利要求2所述的程序版本控制方法,其特征在于,所述对称加密算法为国密SM4。
8.根据权利要求6所述的程序版本控制方法,其特征在于,所述不对称加密算法为国密SM2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035143.0A CN114047947B (zh) | 2022-01-13 | 2022-01-13 | 一种双fpga架构电路板卡程序版本控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035143.0A CN114047947B (zh) | 2022-01-13 | 2022-01-13 | 一种双fpga架构电路板卡程序版本控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047947A CN114047947A (zh) | 2022-02-15 |
CN114047947B true CN114047947B (zh) | 2022-04-15 |
Family
ID=80196478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210035143.0A Active CN114047947B (zh) | 2022-01-13 | 2022-01-13 | 一种双fpga架构电路板卡程序版本控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047947B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676501B2 (en) * | 2008-03-22 | 2010-03-09 | Wilson Kelce S | Document integrity verification |
CN108848094B (zh) * | 2018-06-22 | 2021-04-16 | 平安科技(深圳)有限公司 | 数据安全验证方法、装置、系统、计算机设备及存储介质 |
CN111143869B (zh) * | 2019-12-30 | 2023-07-14 | Oppo广东移动通信有限公司 | 应用程序包处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-01-13 CN CN202210035143.0A patent/CN114047947B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114047947A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2538087C (en) | System and method for remote device registration | |
US7987356B2 (en) | Programmable security platform | |
US9425956B2 (en) | Method and system for transferring firmware or software to a plurality of devices | |
CN108270739B (zh) | 一种管理加密信息的方法及装置 | |
CN103593621A (zh) | 本地可信服务管理器 | |
CN111639348B (zh) | 数据库秘钥的管理方法及装置 | |
CN110598429B (zh) | 数据加密存储和读取的方法、终端设备及存储介质 | |
US10027639B2 (en) | IC chip performing access control based on encrypted ID | |
CN108573181B (zh) | 一种rfid读写器、rfid系统以及区块链网络 | |
US9182967B2 (en) | Method for safely downloading application | |
CN104135531A (zh) | 一种Web软件的升级方法及装置 | |
US11126992B2 (en) | Method for facilitating transactions, computer program product and mobile device | |
CN109194467A (zh) | 一种加密数据的安全传输方法和系统 | |
CN108710804A (zh) | 一种计算机uefi固件的带硬件加密快速更新方法 | |
CA2611818C (en) | System and method for remote device registration | |
US11297063B2 (en) | Method for user administration of a field device | |
CN112069535A (zh) | 一种基于访问分区物理隔离的双系统安全智能终端架构 | |
CN114047947B (zh) | 一种双fpga架构电路板卡程序版本控制方法 | |
CN108154037B (zh) | 进程间的数据传输方法和装置 | |
CN112905994B (zh) | 一种远程漏洞补丁程序防护方法及系统 | |
CN112054890B (zh) | 屏体配置文件导出、导入方法及其装置和播控设备 | |
CN106487796A (zh) | 身份证阅读机具中的安全加密单元及其应用方法 | |
JP4989806B2 (ja) | 遠隔装置登録のためのシステムと方法 | |
CN116455892B (zh) | 文件传输方法、传输装置及终端设备 | |
CN111698080B (zh) | 节目文件导出、导入方法及其装置和多媒体播放盒 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |