CN113326484B - 一种使用单向函数对fpga固件进行授权保护的方法 - Google Patents

一种使用单向函数对fpga固件进行授权保护的方法 Download PDF

Info

Publication number
CN113326484B
CN113326484B CN202110828271.6A CN202110828271A CN113326484B CN 113326484 B CN113326484 B CN 113326484B CN 202110828271 A CN202110828271 A CN 202110828271A CN 113326484 B CN113326484 B CN 113326484B
Authority
CN
China
Prior art keywords
authorization
fpga
unit
mcu
authorization code
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
Application number
CN202110828271.6A
Other languages
English (en)
Other versions
CN113326484A (zh
Inventor
卓才华
窦志斌
肖娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shijiazhuang Communication Measurement And Control Technology Research Institute 54th Research Institute Of China Electronics Technology Corp
Beijing Tianyu Yunan Technology Co ltd
Original Assignee
Shijiazhuang Communication Measurement And Control Technology Research Institute 54th Research Institute Of China Electronics Technology Corp
Beijing Tianyu Yunan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shijiazhuang Communication Measurement And Control Technology Research Institute 54th Research Institute Of China Electronics Technology Corp, Beijing Tianyu Yunan Technology Co ltd filed Critical Shijiazhuang Communication Measurement And Control Technology Research Institute 54th Research Institute Of China Electronics Technology Corp
Priority to CN202110828271.6A priority Critical patent/CN113326484B/zh
Publication of CN113326484A publication Critical patent/CN113326484A/zh
Application granted granted Critical
Publication of CN113326484B publication Critical patent/CN113326484B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种使用单向函数对FPGA固件进行授权保护的方法。本方法通过授权码和硬件MCU授权单元结合授权的方式,控制FPGA业务单元有效运行,保障开发方、拥有方和生产方三方利益。生产方得到开发方和拥有方授权,才能正常生产有FPGA固件的终端设备,达到合理授权终端设备生产的目的。本方法针对使用FPGA和CPU的终端设备,结合硬件MCU授权单元进行FPGA的固件授权设计。CPU主控单元控制FPGA业务单元启动时,首先MCU授权单元和FPGA业务单元通过两步授权认证,实现授权码分量配对合成,并使用单向函数认证授权码是否合法,如合法,则授权FPGA业务单元正常工作,终端设备系统正常启动,否则,FPGA业务单元停止运行,终端设备系统异常停止。

Description

一种使用单向函数对FPGA固件进行授权保护的方法
技术领域
本发明涉及授权保护技术领域,特别涉及一种使用单向函数对FPGA固件进行授权保护的方法。
背景技术
FPGA固件是业务逻辑实现的核心,FPGA的固件通常是通过配置文件的方式提供,配置文件便于复制,没有特别好的方法对其进行保护,当涉及这类有FPGA的终端进行授权生产时,无法有效控制第三方生产方对终端设备生产,无法保障拥有方、开发方和生产方之间利益关系。
终端设备中FPGA业务单元是业务逻辑实现的关键,本方法通过硬件添加MCU授权单元,MCU授权单元与FPGA业务单元之间通过两步的授权认证,并使用单向函数验证授权码是否合法,如合法,则授权FPGA业务单元运行进入正常状态;否则,FPGA业务单元停止工作,通过这种方法对FPGA业务单元进行授权控制。明确拥有方、开发方和生产方三方利益关系,拥有方掌握授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,开发方生产MCU授权单元将授权码分量二Auth2写入其中,生产方从拥有方获取授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,从开发方获取配对的MCU授权单元,生产方将授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件写入CPU主控单元中,将MCU授权单元焊接到终端设备主板,生产终端设备。
发明内容
一种使用单向函数对FPGA固件进行授权保护的方法,有FPGA固件的终端设备在CPU、FPGA和MCU三单元组合的硬件架构基础上,使用单向函数授权认证方式对FPGA固件进行授权保护,通过授权生产的方式,来保护控制FPGA固件启动,明确拥有方、开发方和生产方三方利益关系,具体步骤如下:
步骤1: 终端产权拥有方和开发方对生产方进行授权生产,分别提供授权码文件和匹配的MCU授权单元给生产方,生产方进行终端设备生产;
步骤2: 终端设备采用模块三单元组合的硬件架构,CPU主控单元+FPGA业务单元+MCU授权单元,CPU主控单元通过SPI连接FPGA业务单元,MCU授权单元通过SPI连接FPGA业务单元;
步骤3: 终端设备启动时,MCU授权单元与FPGA业务单元之间通过两步的授权认证实现一对一的授权码分量合成,并使用单向函数验证授权码是否合法,如合法,则授权FPGA业务单元运行进入正常状态;否则,FPGA业务单元停止工作。
针对授权明确拥有方、开发方和生产方三方关系,拥有方拥有授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,开发方开发MCU授权单元,将授权码分量二Auth2写入其中,生产方从拥有方获取授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,从开发方获取配对的MCU授权单元,将授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件放入CPU主控单元中,将MCU授权单元焊接到终端设备主板,生产终端设备。
授权码校验值RES和授权码分量一Auth1由CPU主控单元通过SPI配置方式传递到FPGA业务单元中存储,授权码分量二Auth2生产前已固化在MCU授权单元。
两步的授权认证协议实现,协议中^符号表示算数逻辑异或操作,||符号表示字符串拼接操作,首先FPGA业务单元产生随机数Rnd1,随机数Rnd1与授权码分量一Auth1算数逻辑异或,Ref1=Hash(Rnd1||RES)使用单向函数Hash对随机数Rnd1和授权码校验值RES计算杂凑值,并创建授权消息报文1=01||Rnd1||Rnd1^Auth1|| Ref1,通过SPI接口将授权消息报文1发送MCU授权单元,MCU授权单元接收到授权消息报文1后,获取出Rnd1和Auth1,RES*=Hash(Auth1^Auth2)通过Hash(Rnd1|| RES*)计算出结果,判断是否和发送过来的Ref1值一致,如不一致,提示异常,如一致,表示授权单向认证成功,同时产生随机数Rnd2,Ref2=Hash(Rnd1^Rnd2||RES)^Auth2使用单向函数Hash对随机数Rnd1与随机数Rnd2的算数逻辑异或值拼接上授权码校验值RES计算杂凑值最后再异或授权码分量二Auth2,创建授权消息报文2=02||Rnd2|| Ref2,将授权消息报文2发送FPGA业务单元,FPGA业务单元接收到授权消息报文2后,获取Rnd2和Auth2,其中Auth2=Hash(Rnd1^Rnd2||RES)^ Ref2,最后通过Hash(Auth1^Auth2)与RES比较,如不一致,授权失败,FPGA处理单元停止运行,如一致,授权成功,FPGA处理单元正常启动。
上述发明中的有益效果为:
(1)终端产权的拥有方和开发方对生产方进行生产授权方式,控制生产方对终端设备生产数目,达到保障拥有方、开发方和生产方三方利益。
附图说明
图1为本发明的一种使用单向函数对FPGA固件进行授权保护的方法的硬件架构图。
图2为本发明的一种使用单向函数对FPGA固件进行授权保护的方法的生产授权图。
图3为本发明的一种使用单向函数对FPGA固件进行授权保护的方法的授权流程图。
图4为本发明的一种使用单向函数对FPGA固件进行授权保护的方法的授权协议实现图。
具体实施方式
针对本发明实现的技术创新特征和目的功效便于理解,结合图示和列举实例,进行阐述本发明。
如图1所示,为本发明实例终端设备硬件架构。实际过程如下:
A. 生产的终端设备硬件架构设计为三单元组合的硬件架构,CPU主控单元+FPGA业务单元+MCU授权单元,CPU主控单元通过SPI连接FPGA业务单元,MCU授权单元通过SPI连接FPGA业务单元;
B.CPU主控单元主要实现对FPGA业务单元配置打入及管理监控;
C.FPGA业务单元主要实现业务加解密功能;
D.MCU授权单元主要实现对FPGA业务单元启动授权功能;
E.如图2所示,需要拥有方和开发方对生产方授权终端设备生产:
拥有方,掌握授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件;
开发方,将授权码分量二Auth2写入MCU授权单元;
生产方,从拥有方获取授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件;从开发方获取配对的MCU授权单元,将授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件放入CPU主控单元中,将MCU授权单元焊接到终端设备主板,生产出终端设备。
F. 如图3所示,终端设备生产完毕后系统启动过程中,CPU主控单元将FPGA配置文件、授权码校验值RES和授权码分量一Auth1通过SPI接口写入FPGA业务单元中,授权码分量二Auth2生产前已固化在MCU授权单元;
G. 如图4所示,FPGA业务单元通过SPI接口与MCU授权单元交互,通过授权协议两步协商的授权认证,协议中^符号表示算数逻辑异或操作,||符号表示字符串拼接操作,第一步FPGA业务单元产生随机数Rnd1,随机数Rnd1与授权码分量一Auth1算数逻辑异或,Ref1=Hash(Rnd1||RES)使用单向函数Hash对随机数Rnd1和授权码校验值RES计算杂凑值,并创建授权消息报文1=01||Rnd1||Rnd1^Auth1|| Ref1,通过SPI接口将授权消息报文1发送MCU授权单元,MCU授权单元接收到授权消息报文1后,获取出Rnd1和Auth1,RES*= Hash(Auth1^Auth2)通过Hash(Rnd1|| RES*)计算出结果,判断是否和发送过来的Ref1值一致,如不一致,提示异常,如一致,表示授权认证第一步成功,同时产生随机数Rnd2,Ref2=Hash(Rnd1^Rnd2||RES)^Auth2使用单向函数Hash对随机数Rnd1与随机数Rnd2的算数逻辑异或值拼接上授权码校验值RES计算杂凑值再异或授权码分量二Auth2,并创建创建授权消息报文2=02||Rnd2|| Ref2,将授权消息报文2发送FPGA业务单元,FPGA业务单元接收到授权消息报文2后,获取Rnd2和Auth2,其中Auth2=Hash(Rnd1^Rnd2||RES)^ Ref2,最后通过Hash(Auth1^Auth2)与RES比较,如不一致,授权失败,FPGA处理单元停止运行,如一致,授权成功,FPGA处理单元正常启动;
H. FPGA处理单元授权失败, 终端设备系统业务停止处理,FPGA处理单元授权成功, 终端设备系统后续正常运行成功后,业务正常处理;
I.通过使用单向函数对FPGA固件进行授权保护方法,采用发放授权码和硬件MCU授权单元结合方式,限制第三方的生产方在未授权情况下不能生产有效启动的终端设备,保障拥有方、开发方和生产方的利益关系。
相关术语解释:
开发方:系统设计实现者;
拥有方:系统购买拥有者;
生产方:拥有方委托的第三方设备生产者;
CPU:中央处理器(全写为central processing unit);
FPGA:现场可编程门阵列(Field Programmable Gate Array);
MCU:微控制单元(Microcontroller Unit);
SPI:串行外设接口(Serial Peripheral Interface);
HASH:单向函数,将任意长度的消息压缩到某一固定长度的消息摘要的函数;
^:表示算数逻辑异或操作;
||:表示字符串拼接操作;
Rnd:随机数;
Auth:授权码,Auth=Auth1^Auth2;
Auth1:授权码分量一;
Auth2:授权码分量二;
RES:Auth授权码校验值,RES=HASH(Auth)。
上面所述的实施案例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

Claims (1)

1.一种使用单向函数对FPGA固件进行授权保护的方法,其特征在于:终端设备在CPU、FPGA和MCU三单元组合的硬件架构基础上,使用单向函数授权认证方式对FPGA固件进行授权保护,使得终端产权拥有方和开发方能有效授权生产,明确拥有方、开发方和生产方三方利益关系,具体步骤如下:
步骤1: 终端产权拥有方和开发方对生产方进行授权生产,分别提供授权码文件和匹配的MCU授权单元给生产方,生产方进行终端设备生产;
步骤2: 终端设备采用三单元组合的硬件架构,CPU主控单元+FPGA业务单元+MCU授权单元,CPU主控单元通过SPI连接FPGA业务单元,MCU授权单元通过SPI连接FPGA业务单元;
步骤3: 终端设备启动时,MCU授权单元与FPGA业务单元之间通过两步的授权认证实现一对一的授权码分量合成,并使用单向函数验证授权码是否合法,如合法,则授权FPGA业务单元运行进入正常状态;否则,FPGA业务单元停止工作;
其中,针对授权明确拥有方、开发方和生产方三方利益关系,拥有方拥有授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,开发方开发MCU授权单元,将授权码分量二Auth2写入其中,生产方从拥有方获取授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件,从开发方获取配对的MCU授权单元,将授权码分量一Auth1文件、授权码校验值RES文件和FPGA配置文件写入到CPU主控单元中,将MCU授权单元焊接到终端设备主板,生产终端设备;
其中,授权码校验值RES和授权码分量一Auth1由CPU主控单元通过SPI配置方式传递到FPGA业务单元中存储,授权码分量二Auth2生产已固化在MCU授权单元;
其中,两步的授权认证协议实现,协议中^符号表示算数逻辑异或操作,||符号表示字符串拼接操作,首先FPGA业务单元产生随机数Rnd1,随机数Rnd1与授权码分量一Auth1算数逻辑异或,Ref1=Hash(Rnd1||RES)使用单向函数Hash对随机数Rnd1和授权码校验值RES计算杂凑值,并创建授权消息报文1=01||Rnd1||Rnd1^Auth1|| Ref1,通过SPI接口将授权消息报文1发送MCU授权单元,MCU授权单元接收到授权消息报文1后,获取出Rnd1和Auth1,RES*= Hash(Auth1^Auth2)通过Hash(Rnd1|| RES*)计算出结果,判断是否和发送过来的Ref1值一致,如不一致,提示异常,如一致,表示授权单向认证成功,同时产生随机数Rnd2,Ref2=Hash(Rnd1^Rnd2||RES)^Auth2使用单向函数Hash对随机数Rnd1与随机数Rnd2的算数逻辑异或值拼接上授权码校验值RES计算杂凑值最后再异或授权码分量二Auth2,创建授权消息报文2=02||Rnd2|| Ref2,将授权消息报文2发送FPGA业务单元,FPGA业务单元接收到授权消息报文2后,获取Rnd2和Auth2,其中Auth2=Hash(Rnd1^Rnd2||RES)^ Ref2,最后通过Hash(Auth1^Auth2)与RES比较,如不一致,授权失败,FPGA处理单元停止运行,如一致,授权成功,FPGA处理单元正常启动。
CN202110828271.6A 2021-07-22 2021-07-22 一种使用单向函数对fpga固件进行授权保护的方法 Active CN113326484B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110828271.6A CN113326484B (zh) 2021-07-22 2021-07-22 一种使用单向函数对fpga固件进行授权保护的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110828271.6A CN113326484B (zh) 2021-07-22 2021-07-22 一种使用单向函数对fpga固件进行授权保护的方法

Publications (2)

Publication Number Publication Date
CN113326484A CN113326484A (zh) 2021-08-31
CN113326484B true CN113326484B (zh) 2021-10-29

Family

ID=77426691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110828271.6A Active CN113326484B (zh) 2021-07-22 2021-07-22 一种使用单向函数对fpga固件进行授权保护的方法

Country Status (1)

Country Link
CN (1) CN113326484B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904527B1 (en) * 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US7683663B1 (en) * 2009-01-13 2010-03-23 Xilinx, Inc. Authorization of an implementation of a user design in a programmable integrated circuit
CN106878007A (zh) * 2017-02-08 2017-06-20 飞天诚信科技股份有限公司 一种授权方法及系统
CN107977568A (zh) * 2017-12-25 2018-05-01 瑞萨集成电路设计(北京)有限公司 Mcu安全保护身份认证装置及方法
CN111324884A (zh) * 2020-03-19 2020-06-23 苏州羿景睿图信息科技有限公司 一种基于fpga的多权限授权验证方法
CN112114830A (zh) * 2020-09-16 2020-12-22 天津光电通信技术有限公司 一种保护fpga烧写文件的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904527B1 (en) * 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US7683663B1 (en) * 2009-01-13 2010-03-23 Xilinx, Inc. Authorization of an implementation of a user design in a programmable integrated circuit
CN106878007A (zh) * 2017-02-08 2017-06-20 飞天诚信科技股份有限公司 一种授权方法及系统
CN107977568A (zh) * 2017-12-25 2018-05-01 瑞萨集成电路设计(北京)有限公司 Mcu安全保护身份认证装置及方法
CN111324884A (zh) * 2020-03-19 2020-06-23 苏州羿景睿图信息科技有限公司 一种基于fpga的多权限授权验证方法
CN112114830A (zh) * 2020-09-16 2020-12-22 天津光电通信技术有限公司 一种保护fpga烧写文件的方法

Also Published As

Publication number Publication date
CN113326484A (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN107743067B (zh) 数字证书的颁发方法、系统、终端以及存储介质
CN103051453B (zh) 一种基于数字证书的移动终端网络安全交易系统与方法
CN103078742B (zh) 数字证书的生成方法和系统
CN110519309A (zh) 数据传输方法、装置、终端、服务器及存储介质
CN103248491B (zh) 一种电子签名令牌私钥的备份方法和系统
CN105790938A (zh) 基于可信执行环境的安全单元密钥生成系统及方法
CN105119931A (zh) 应用登录方法及系统
US11811939B2 (en) Advanced crypto token authentication
CN105592071A (zh) 一种在设备之间进行授权的方法和装置
CN112003697B (zh) 密码模块加解密方法、装置、电子设备及计算机存储介质
WO2015135398A1 (zh) 一种基于协商密钥的数据处理方法
CN114448605A (zh) 加密密文校验方法、系统、设备及计算机可读存储介质
CN114389860B (zh) 语音通信方法、客户端、服务端、电子设备及存储介质
CN114189337A (zh) 一种固件烧录方法、装置、设备以及存储介质
CN113326484B (zh) 一种使用单向函数对fpga固件进行授权保护的方法
CN116208325A (zh) 一种安全多方计算交互方法、装置及设备
CN211557285U (zh) 控制终端、签名服务器和任务服务器
CN110826030B (zh) 一种自助软件和相关模块授权使用方法
CN109150891B (zh) 一种验证方法、装置和信息安全设备
CN116886317B (zh) 一种服务器和终端设备之间分发密钥的方法、系统及设备
CN114726539B (zh) 一种基于可信密码模块tcm的离线升级方法
CN112188418B (zh) 基于区块链的短信验证方法
CN110601841B (zh) Sm2协同签名及解密方法、装置
CN116094785A (zh) 一种分布式网元的统一认证方法及系统
CN117742280A (zh) 一种ecu远程诊断方法及其系统

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