CN113326484B - 一种使用单向函数对fpga固件进行授权保护的方法 - Google Patents
一种使用单向函数对fpga固件进行授权保护的方法 Download PDFInfo
- 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
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004519 manufacturing process Methods 0.000 claims abstract description 16
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 3
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 3
- 102100039643 Rho-related GTP-binding protein Rho6 Human genes 0.000 claims description 24
- 101710199571 Rho-related GTP-binding protein Rho6 Proteins 0.000 claims description 24
- 102100039642 Rho-related GTP-binding protein RhoN Human genes 0.000 claims description 17
- 108050007497 Rho-related GTP-binding protein RhoN Proteins 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 101100537098 Mus musculus Alyref gene Proteins 0.000 claims description 6
- 101150095908 apex1 gene Proteins 0.000 claims description 6
- 101100269674 Mus musculus Alyref2 gene Proteins 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting 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业务单元是业务逻辑实现的关键,本方法通过硬件添加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处理单元正常启动。
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)
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烧写文件的方法 |
-
2021
- 2021-07-22 CN CN202110828271.6A patent/CN113326484B/zh active Active
Patent Citations (6)
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 |