一种fpga程序量产批量加密方法

文档序号:1846319 发布日期:2021-11-16 浏览:18次 >En<

阅读说明:本技术 一种fpga程序量产批量加密方法 (FPGA program volume production batch encryption method ) 是由 丁云峰 于 2021-08-18 设计创作,主要内容包括:本发明提供了一种FPGA程序量产批量加密方法,所述方法包括以下步骤:步骤S1、在用户终端运行一个加密程序,事先约定2个AES128加密密钥,为A和B;步骤S2、在FPGA芯片的代码中添加加密功能模块,读取FPGA芯片的唯一标识DNA码并送入加密功能模块;步骤S3、读取加密结果,并用AES128加密密钥A进行解密,获得FPGA芯片唯一标识DNA码;步骤S4、获得FPGA芯片唯一标识DNA码后,将FPGA芯片唯一标识DNA码用AES128加密密钥B进行加密;步骤S5、从而实现设备的加密,加密后的设备在正常工作时,会将设备初始化参数中的启动密钥送入FPGA芯片中;步骤S6、通过AES128加密密钥A和B进行解密,并和FPGA芯片的DNA码进行比对,判断比对结果,从而保证FPGA芯片程序的安全,实现FPGA芯片程序的批量加密。(The invention provides a method for encrypting FPGA programs in mass production in batches, which comprises the following steps: step S1, an encryption program is run at the user terminal, and 2 AES128 encryption keys are agreed in advance, namely A and B; step S2, adding an encryption function module in the codes of the FPGA chip, reading the unique identification DNA code of the FPGA chip and sending the unique identification DNA code into the encryption function module; step S3, reading the encryption result, and decrypting the encryption result by using the AES128 encryption key A to obtain the unique identification DNA code of the FPGA chip; s4, after the unique identification DNA code of the FPGA chip is obtained, encrypting the unique identification DNA code of the FPGA chip by using an AES128 encryption key B; step S5, thereby realizing the encryption of the equipment, and when the encrypted equipment works normally, the starting key in the equipment initialization parameter is sent into the FPGA chip; and S6, decrypting through the AES128 encryption keys A and B, comparing with the DNA code of the FPGA chip, and judging the comparison result, thereby ensuring the safety of the FPGA chip program and realizing the batch encryption of the FPGA chip program.)

一种FPGA程序量产批量加密方法

技术领域

本发明涉及计算机技术领域,特别是一种FPGA程序量产批量加密方法。

背景技术

FPGA是一种现场可编程逻辑器件,广泛用于通信、医疗、工业控制等,领域有着不可替代的作用。但FPGA的程序通常存放在芯片外部的一片通用存储芯片中,非常容易被读取复制,从而对企业造成巨大损失。为了解决这一个问题,FPGA芯片厂家有提供一套加密方法,对程序进行加密使用,但这个方法需要针对每一台设备单独生成用不同密钥加密的程序文件,非常不利于企业批量化生产。

发明内容

有鉴于此,本发明的目的是提供一种能够生成加密FPGA程序的FPGA程序量产批量加密方法。

本发明采用以下方法来实现:一种FPGA程序量产批量加密方法,所述方法包括以下步骤:

步骤S1、在用户终端运行一个加密程序,事先约定2个AES128加密密钥,为A和B;

步骤S2、在FPGA芯片的代码中添加加密功能模块,读取FPGA芯片的唯一标识DNA码并送入加密功能模块;

步骤S3、用户终端连接FPGA芯片所在的设备后,读取加密结果,并用AES128加密密钥A进行解密,获得FPGA芯片唯一标识DNA码;

步骤S4、获得FPGA芯片唯一标识DNA码后,将FPGA芯片唯一标识DNA码用AES128 加密密钥B进行加密;

步骤S5、从而实现设备的加密,加密后的设备在正常工作时,会将设备初始化参数中的启动密钥送入FPGA芯片中;

步骤S6、在FPGA芯片的代码中添加解密功能,通过AES128加密密钥A和B进行解密,并和FPGA芯片的DNA码进行比对,判断比对结果,从而保证FPGA芯片程序的安全,实现FPGA芯片程序的批量加密。

进一步的,在用户终端运行一个加密程序,在加密程序内使用相同的密钥且密钥内容固定约定两个AES128加密密钥,为A和B。

进一步的,所述步骤S2进一步具体为:在FPGA芯片的代码中添加加密功能模块,能够读取FPGA芯片唯一标识DNA码,并将所述FPGA芯片唯一标识DNA码用AES128加密密钥A进行加密,加密结果保存并等待被用户终端读取。

进一步的,所述步骤S3进一步具体为:所述加密功能模块连接用户终端,从中读取加密后的结果,用事先约定的AES128加密密钥A进行解密,解密后的结果就是FPGA芯片的唯一标识DNA码,能够防止通讯接口被监听。

进一步的,所述步骤S4进一步具体为:加密程序获得FPGA芯片的唯一标识DNA码后,将FPGA芯片的唯一标识DNA码用AES128加密密钥B进行加密,将加密结果作为设备启动密钥,并将加密结果保存在设备启动的初始化参数中,作为设备的启动码。

进一步的,所述步骤S6进一步具体为:在FPGA芯片的代码中添加解密功能,并使用AES128加密密钥A和B对设备的初始化参数中的启动密钥进行解密,并和FPGA芯片的唯一标识DNA码进行比对,比对一致,设备开始执行,比对不一致,设备停止执行。

本发明的有益效果在于:本发明能够自动生成加密FPGA程序,并且满足批量化生产的要求;使用FPGA芯片器件的设备中,程序能够被安全的保护,不被复制破解,同时又能满足在生产过程中能够实现批量加密,降低生产成本。

附图说明

图1为本发明的方法流程示意图。

图2为生产加密的流程示意图。

图3为设备使用过程示意图。

具体实施方式

下面结合附图对本发明做进一步说明。

请参阅图1所示,本发明提供了一实施例:一种FPGA程序量产批量加密方法,所述方法包括以下步骤:

步骤S1、在用户终端运行一个加密程序,事先约定2个AES128加密密钥,为A和B;

步骤S2、在FPGA芯片的代码中添加加密功能模块,读取FPGA芯片的唯一标识DNA码并送入加密功能模块;

步骤S3、用户终端连接FPGA芯片所在的设备后,读取加密结果,并用AES128加密密钥A进行解密,获得FPGA芯片唯一标识DNA码;

步骤S4、获得FPGA芯片唯一标识DNA码后,将FPGA芯片唯一标识DNA码用AES128 加密密钥B进行加密;

步骤S5、从而实现设备的加密,加密后的设备在正常工作时,会将设备初始化参数中的启动密钥送入FPGA芯片中;

步骤S6、在FPGA芯片的代码中添加解密功能,通过AES128加密密钥A和B进行解密,并和FPGA芯片的DNA码进行比对,判断比对结果,从而保证FPGA芯片程序的安全,实现FPGA芯片程序的批量加密。

下面通过一具体实施例对本发明作进一步说明:

实现方法包括:

一种能够运行加密程序的工具,用户终端可以是PC或者是单片机等,运行一个加密程序,以下简称加密工具。需要事先约定好2个AES128加密密钥A和B。加密工具以及被加密设备上的两个AES128密钥A和B,在加密之初就使用相同的密钥,且密钥是内容是固定的,不可更改。

本发明中的AES128加密密钥A和B加密密钥中的加密算法都是标准的AES128,但是加密的密钥就好比都是门,但每扇门的钥匙是不一样的。加密可以看成是关门上锁,解密可以看成是开门解锁。加密解密用的是同一把钥匙开特定的门,不同的门要用不同的钥匙。

FPGA的代码中添加一个加密功能模块,能够读取FPGA芯片唯一标识DNA码,并将该码用AES128密钥A进行AES128加密,加密结果保存并等待被加密工具读取。读取功能是程序代码的工作内容,这是一段标准流程代码,过程不用解释,只要知道这段代码的功能就是读取FPGA芯片的DNA标识码。

加密工具连接FPGA芯片所在的设备后,会读取加密结果,并用事先约定好的AES128 加密密钥A进行解密,获得DNA码。这个步骤主要是为了通讯接口被监听,明文传递数据容易被破解。

加密工具在获得这个DNA码后,将DNA码用另一个事先约定的AES128加密密钥B进行加密,加密结果作为设备启动密钥,并将其保存在设备启动初始化参数中。

至此设备加密过程完成。

加密后的设备在正常工作启动的时候会将设备初始化参数中的启动密钥送入FPGA。

FPGA的代码中会添加一个解密功能模块,并使用AES128加密密钥B对设备初始化参数中的启动密钥进行解密,并和自己的DNA码进行比对,比对一致,则功能程序开始执行,否则就停止执行功能程序。初始化参数是每台设备的所有运行参数,因为本发明专利不针对特定的设备,每种设备的运行参数从类型到内容都是不同的,而加密解密相关的参数,只是运行参数中的一部分而已。

本发明中AES128加密算法是一个标准流程,解密流程也是AES128标准流程,在此不进行详细说明。

本发明需加密的设备为非特定设备,只要是使用了FPGA芯片的设备都在本发明专利的描述范围中。

生产加密过程

如图2所示,这是一个完整的生产加密过程,执行过程1、2、3、4、5。

过程1:FPGA唯一标识DNA码读取并送入加密模块。

过程2:加密模块通过使用事先约定的密钥A进行AES128加密,并将结果送到通讯模块等待被加密工具读取。

过程3:加密工具连接被加密设备,从中读取加密后的结果,并用事先约定的密钥A进行解密,解密后的结果就是被加密设备的DNA码。

过程4:加密工具使用事先约定的密钥B再次进行AES128加密,并将结果返回给被加密设备,作为设备的启动码。

过程5:被加密设备将设备启动码写入设备启动参数表并保存。

加密过程结束,加密工具断开。

如图3所示,这是一个设备正常启动的过程,执行过程6、7、8、9。

过程6:设备启动,MCU将启动参数中写入FPGA,其中包括启动码。

过程7:FPGA解密代码模块使用事先约定的密钥B对启动码进行解密,解密结果送给比对模块。

过程8:比对模块从DNA读取模块获取FPGA的唯一DNA码,并和解密模块送过来的结果进行比对。

过程9:比对一致,启动FPGA的功能代码模块。至此设备解密启动完成。

在设备中,过程3和过程6的通讯接口是最容易被监听的通讯口,所以使用AES128加密,加密过程被解密。

本发明中FPGA

FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

DNA

每一个FPGA都有一个独特的ID,也就是Device DNA,这个ID相当于我们的身份证,在FPGA芯片生产的时候就已经写死在芯片的eFuse寄存器中,具有不可修改的属性,因为使用的是熔断技术。

AES128

Advanced Encryption Standard高级加密标准,是一种有效的数据加密算法,因其密钥长度的不同可以细分,其中密钥长度为128bit的,被称为AES128。

MCU

微控制单元(Microcontroller Unit;MCU),又称单片微型计算机(Single ChipMicrocomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种智能信息安全防盗存储器及其防盗方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类