CN102567671B - 一种fpga配置数据的加密系统及其加密方法 - Google Patents
一种fpga配置数据的加密系统及其加密方法 Download PDFInfo
- Publication number
- CN102567671B CN102567671B CN201110451436.9A CN201110451436A CN102567671B CN 102567671 B CN102567671 B CN 102567671B CN 201110451436 A CN201110451436 A CN 201110451436A CN 102567671 B CN102567671 B CN 102567671B
- Authority
- CN
- China
- Prior art keywords
- configuration data
- encryption
- random code
- chip microcomputer
- fpga
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种FPGA配置数据的加密系统及其加密方法。系统包括:单片机;加密单元,配置芯片;配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行。本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。
Description
技术领域
本发明属于FPGA配置领域,特别是一种FPGA配置数据的加密系统及其加密方法。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
将FPGA设计程序送入FPGA芯片的过程或操作一般称为对FPGA器件的配置,经过配置的FPGA,即具有用户所需的功能。FPGA在正常工作状态下,其配置数据存储在FPGA的编程元件SRAM中,在每次上电时,需重新下载配置数据。
配置数据一般是通过JTAG接口直接下载或从外部Flash加载到SRAM中运行,对于从外部Flash加载的方式,由于Flash本身无法加密,使得这类方式具有编程数据易失性的特性,因此对FPGA配置数据的加密保护是开发者面临的一个主要问题。目前,对FPGA配置数据的加密方法主要有以下几类:
1.选用自带加密功能的FPGA。例如,Xilinx公司的Virtex 2-5系列,其采用的是DES加密算法;Altera公司的Stratix II-III系列,其采用128位密钥的高级加密算法(Advanced Encryption Standard,AES)。该两种加密算法的加密原理是:配置数据被加载到Flash时被加密,在加载到FPGA内部SRAM时被还原。而第三方从Flash中拷出的配置数据是加了密的,无法复制使用。这种方法简单、实用,但加密成本高,使得大部分FPGA,特别是中、低档FPGA都不具备此类加密功能。
2.外接加密芯片。采用存储器加密方式为FPGA提供安全控制和保护,其采用不可逆的HASH算法,具有极高的雪崩效应。在这种加密方式中,FPGA上电后,从引导存储器中读取配置数据,配置完成后,FPGA被启动并进行认证工作。该加密算法需要占用FPGA大量的逻辑资源,并且对加密芯片也有一定的要求,应用受到限制。
发明内容
针对现有FPGA配置数据的加密方法所存在的问题,本发明提出了一种可降低加密成本,占用FPGA资源较少,简单易用的FPGA配置数据的加密系统。本发明采用的技术手段如下:
一种FPGA配置数据的加密系统,其特征在于包括:单片机;置于现场可编程门阵列中的加密单元,加密单元连接单片机和编程元件;连接编成元件的配置芯片;
配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对该随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。
附图说明
图1为本发明的FPGA配置数据的加密系统原理图。
图2为本发明的FPGA配置数据的加密系统结构图。
图3为图2的加密方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
如图1所示,本发明的FPGA配置数据的加密系统包括:单片机1;置于现场可编程门阵列中的加密单元2,加密单元2连接单片机1和编程元件;连接编成元件的配置芯片3。其中的编程元件1优选是SRAM,其中的配置芯片3优选是Flash。
配置芯片3将配置数据发送给编程元件,加密单元2在编程元件接收到配置数据后控制单片机1开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机1在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元2发送一随机码给单片机1,单片机1对该随机码进行加密后发送给加密单元2,加密单元2同时对该随机码进行加密,将加密后的随机码与单片机1加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
其中,单片机1对随机码的加密是为了保证随机码在传输过程的安全性,系统的加密能力主要取决于单片机1对随机码的加密能力,这就要求加密单元2生成的随机码的线性复杂度要足够高,以使得对单片机1加密后的随机码的捕获与识别足够困难。为了提高随机码的线性复杂度,本发明是利用了单片机1与现场可编程门阵列上电后配置数据所需时间的不同而实现的,利用现场可编程门阵列中的晶振对单片机1与现场可编程门阵列上电后配置数据所需时间的时间差进行计数,可反映出该时间上的微小误差。通过对上述随机码发生方式进行100次测试,结果显示每次产生的随机码均不同。
本发明的单片机1优选采用线性反馈移位寄存器,对指定位抽取异或后循环移位n次的方式实现对随机码的加密,该方式构造简单,用户还可根据需要,改变线性反馈移位寄存器的抽取位数,则加寄存器阶数,以增加该种加密方式的安全性。
如图2所示,单片机1包括:加密模块11、加密输出模块12;加密单元2包括:随机码发生器21、本地加密模块22、验证模块23。
随机码发生器21产生一随机码并发送给加密模块11和本地加密模块22,加密模块11和本地加密模块22分别采用相同的加密算法对该随机码进行加密,加密输出模块12将加密模块11加密后的随机码发送给验证模块23,验证模块23将本地加密模块22加密后的随机码和加密输出模块12发送的加密后的随机码进行比对,若相同则向编程元件发送复位信号以控制编程元件中的配置数据开始执行。
如图3所示,本发明的上述FPGA配置数据的加密系统的加密方法包括以下步骤:
S1:编程元件从配置芯片读取配置数据。
S2:加密单元控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数。
S3:单片机配置数据后,利用高电平复位信号控制现场可编程门阵列中的晶振停止计数。
S4:加密单元发送随机码,单片机对该随机码进行加密,同时现场可编程门阵列对该随机码进行本地加密。
S5:加密单元对单片机加密后的随机码与现场可编程门阵列本地加密后的随机码比较,若相同,则编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种FPGA配置数据的加密系统,其特征在于包括:单片机;置于现场可编程门阵列中的加密单元,加密单元连接单片机和编程元件;连接编程元件的配置芯片;
配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对该随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行;
其中,单片机包括:加密模块、加密输出模块;加密单元包括:随机码发生器、本地加密模块、验证模块;
随机码发生器产生一随机码并发送给加密模块和本地加密模块,加密模块和本地加密模块分别采用相同的加密算法对该随机码进行加密,加密输出模块将加密模块加密后的随机码发送给验证模块,验证模块将本地加密模块加密后的随机码和加密输出模块发送的加密后的随机码进行比对,若相同则向编程元件发送复位信号以控制编程元件中的配置数据开始执行;单片机采用线性反馈移位寄存器,对指定位抽取异或后循环移位n次的方式实现对随机码的加密。
2.如权利要求1所述的FPGA配置数据的加密系统,其特征在于编程元件是SRAM;配置芯片是Flash。
3.一种如权利要求1所述的FPGA配置数据的加密系统的加密方法,其特征在于包括以下步骤:
S1:编程元件从配置芯片读取配置数据;
S2:加密单元控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数;
S3:单片机配置数据后,利用高电平复位信号控制现场可编程门阵列中的晶振停止计数;
S4:加密单元发送随机码,单片机对该随机码进行加密,同时现场可编程门阵列对该随机码进行本地加密;
S5:加密单元对单片机加密后的随机码与现场可编程门阵列本地加密后的随机码比较,若相同,则编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110451436.9A CN102567671B (zh) | 2011-12-30 | 2011-12-30 | 一种fpga配置数据的加密系统及其加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110451436.9A CN102567671B (zh) | 2011-12-30 | 2011-12-30 | 一种fpga配置数据的加密系统及其加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567671A CN102567671A (zh) | 2012-07-11 |
CN102567671B true CN102567671B (zh) | 2015-03-11 |
Family
ID=46413054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110451436.9A Active CN102567671B (zh) | 2011-12-30 | 2011-12-30 | 一种fpga配置数据的加密系统及其加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567671B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103809987A (zh) * | 2012-11-07 | 2014-05-21 | 中国科学院微电子研究所 | 一种soc芯片更换自身内部fpga ip程序的方法 |
CN103049681B (zh) * | 2012-12-13 | 2016-01-06 | 东南大学 | 一种基于防复制电路的防抄板系统及方法 |
CN103198242A (zh) * | 2013-04-02 | 2013-07-10 | 厦门亿联网络技术股份有限公司 | 一种利用芯片实现加密的方法 |
CN103491439A (zh) * | 2013-09-18 | 2014-01-01 | 深圳市九洲电器有限公司 | 一种机顶盒的保护方法、系统及机顶盒和加密装置 |
CN104573567B (zh) * | 2013-10-17 | 2017-11-10 | 联芯科技有限公司 | 芯片编程加密保护方法及其系统 |
CN103824005A (zh) * | 2014-03-11 | 2014-05-28 | 东南大学 | 一种内嵌可配置ip核的防复制系统及防复制方法 |
CN104463026B (zh) * | 2014-12-08 | 2017-11-07 | 深圳中科讯联科技有限公司 | 一种用于硬件防抄板的系统及方法 |
CN105704373B (zh) * | 2016-01-29 | 2019-04-23 | Oppo广东移动通信有限公司 | 一种自拍杆识别方法、装置及自拍杆、移动终端和系统 |
CN106503592B (zh) * | 2016-11-09 | 2021-07-09 | 深圳市德明利技术股份有限公司 | 基于可编程逻辑器件的加密方法及系统 |
CN106782356A (zh) * | 2016-11-21 | 2017-05-31 | 上海佳显机电科技有限公司 | 一种单色高灰阶液晶显示器的驱动装置 |
CN106933752B (zh) * | 2017-03-09 | 2019-10-08 | 西安电子科技大学 | 一种sram型fpga的加密装置及方法 |
CN108388482A (zh) * | 2017-09-26 | 2018-08-10 | 北京计算机技术及应用研究所 | 一种双接口算法处理电路 |
CN108875318A (zh) * | 2018-05-28 | 2018-11-23 | 哈尔滨工程大学 | 一种基于mcu的fpga产权保护和远程更新系统及其方法 |
CN111435394B (zh) * | 2019-01-15 | 2021-05-14 | 创新先进技术有限公司 | 基于fpga硬件的安全计算方法和装置 |
CN109885531A (zh) * | 2019-03-26 | 2019-06-14 | 国网山东省电力公司青岛市即墨区供电公司 | 一种虚拟单片机系统 |
CN111339544B (zh) * | 2019-04-24 | 2023-03-14 | 上海安路信息科技股份有限公司 | 离线下载装置及离线下载方法 |
CN110888835B (zh) * | 2019-11-20 | 2023-10-27 | 苏州芒果树数字技术有限公司 | 一种基于cpu和fpga并行处理的开发环境系统及运行方法 |
CN111767532A (zh) * | 2020-06-12 | 2020-10-13 | 上海橙群微电子有限公司 | 编程器鉴权方法和鉴权系统 |
CN113625629B (zh) * | 2021-08-06 | 2023-03-07 | 中国电子科技集团公司第五十八研究所 | 一种应用于n_flash型fpga的配置控制电路 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854243A (zh) * | 2010-04-30 | 2010-10-06 | 株洲南车时代电气股份有限公司 | 一种电路系统设计加密电路及其加密方法 |
-
2011
- 2011-12-30 CN CN201110451436.9A patent/CN102567671B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854243A (zh) * | 2010-04-30 | 2010-10-06 | 株洲南车时代电气股份有限公司 | 一种电路系统设计加密电路及其加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102567671A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567671B (zh) | 一种fpga配置数据的加密系统及其加密方法 | |
US9866370B2 (en) | Configurable ASIC-embedded cryptographic processing engine | |
US10706179B2 (en) | Secure provisioning of secrets into MPSoC devices using untrusted third-party systems | |
US8484486B2 (en) | Integrated cryptographic security module for a network node | |
US9183413B2 (en) | Method and system for controlling a device | |
KR102239711B1 (ko) | 보안 파라미터들에 기초한 작업 보안 키의 생성 | |
CN104734854A (zh) | 密钥的安全提供 | |
CN104468089A (zh) | 数据保护装置及其方法 | |
RU2007141753A (ru) | Безопасное хранение данных с защитой целостности | |
CN108063664B (zh) | 基于配置的密码密钥生成系统 | |
Guneysu et al. | Dynamic intellectual property protection for reconfigurable devices | |
CN104486355A (zh) | 防止代码被恶意篡改的方法和装置 | |
Druyer et al. | A survey on security features in modern FPGAs | |
CN104902138A (zh) | 加密/解密系统及其控制方法 | |
US8983073B1 (en) | Method and apparatus for restricting the use of integrated circuits | |
Peterson | Developing tamper resistant designs with Xilinx Virtex-6 and 7 series FPGAs | |
US20090260082A1 (en) | Signature based authentication of the configuration of a configurable logic component | |
CN103347017A (zh) | 数据处理方法和片上系统 | |
CN104298936A (zh) | 一种基于cpld芯片的fpga加密及参数配置系统 | |
Duncan et al. | SeRFI: secure remote FPGA initialization in an untrusted environment | |
CN105022651A (zh) | 一种设备生产过程中的防盗版方法及固件烧写装置 | |
CN117436113A (zh) | 基于区块链的数据预测方法、系统、设备及存储介质 | |
Güneysu et al. | Securely sealing multi-FPGA systems | |
CN111339544B (zh) | 离线下载装置及离线下载方法 | |
Hori et al. | Bitstream protection in dynamic partial reconfiguration systems using authenticated encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210421 Address after: 117000 3 / F, block a, No.3, Kehai street, high tech Industrial Park, Dalian, Liaoning Province Patentee after: DALIAN GIGATEC TECHNOLOGY Co.,Ltd. Address before: Hi Tech Park Kehai street Dalian city Liaoning province 116023 No. 3 Patentee before: DALIAN GIGATEC ELECTRONICS Co.,Ltd. |
|
TR01 | Transfer of patent right |