一种FPGA程序防拷贝方法和PCI-E密码卡技术

技术编号:14874468 阅读:69 留言:0更新日期:2017-03-23 22:07
本申请公开一种FPGA程序防拷贝方法和PCI‑E密码卡。当FPGA芯片配置完成后,FPGA芯片获取一组随机数以及安全芯片的芯片序列号,按照预设算法对预存的第一密钥、随机数以及芯片序列号进行一系列,得到第一计算结果。进而,安全芯片采用相同的计算方法对预存的第二密钥、上述随机数以及芯片序列号进行计算,得到第二计算结果。FPGA芯片比较第一计算结果和第二计算结果,当二者一致时,则说明外部为友好电路FGPA进入正常工作状态,否则外部为非友好电路,FPGA进入非正常工作状态。

【技术实现步骤摘要】

本申请涉及信息安全
,更具体地说,涉及一种FPGA程序防拷贝方法和PCI-E密码卡
技术介绍
PCI-E密码卡作为一个软硬件结合的密码产品,应当防止未授权的机构对PCI-E密码卡关键芯片FPGA(Field-ProgrammableGateArray,即现场可编程门阵列)的配置数据流进行拷贝。现在大多数FPGA支持对配置数据流的加密操作,密钥是存放于BBRAM或eFUSE中,其中eFUSE仅支持一次可编程,然而不是所有的FPGA都有eFUSE;而BBRAM掉电内容丢失,需外接电池,可见目前的FPGA配置数据流防拷贝方法的实用性较低。
技术实现思路
有鉴于此,本申请提供一种FPGA程序防拷贝方法和PCI-E密码卡,该方法适用于所有型号的FPGA配置数据流防拷贝保护,具有较高的实用性。为了实现上述目的,现提出的方案如下:一种FPGA程序防拷贝方法,所述方法应用于PCI-E密码卡,所述PCI-E密码卡包括:FPGA芯片和安全芯片,所述方法包括:当所述FPGA芯片配置完成后,所述FPGA芯片获取一组随机数以及所述安全芯片的芯片序列号,并将所述随机数发送至所述安全芯片;FPGA芯片按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果;安全芯片接收所述FPGA芯片发送的所述随机数,并按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果;所述FPGA芯片比较所述第一计算结果和所述第二计算结果;其中,当所述第一计算结果和所述第二计算结果一致时,所述FGPA进入正常工作状态;当所述第一计算结果和所述第二计算结果不一致时,所述FPGA进入非正常工作状态。优选的,所述第一密钥存储在所述FPGA芯片的flash存储器中。优选的,所述按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果,包括:对所述第一密钥和所述芯片序列号进行HASH运算,第一HASH运算结果;对所述第一HASH运算结果和所随机数进行HASH运算,输出所述第一计算结果。优选的,所述按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果,包括:对所述第二密钥和所述芯片序列号进行HASH运算,第二HASH运算结果;对所述第二HASH运算结果和所随机数进行HASH运算,输出所述第二计算结果。一种PCI-E密码,包括:FPGA芯片和安全芯片;其中,所述FPGA芯片用于当所述FPGA芯片配置完成后,获取一组随机数以及所述安全芯片的芯片序列号,并将所述随机数发送至所述安全芯片;FPGA芯片按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果;所述安全芯片用于接收所述FPGA芯片发送的所述随机数,并按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果;所述FPGA芯片还用于比较所述第一计算结果和所述第二计算结果;其中,当所述第一计算结果和所述第二计算结果一致时,所述FGPA进入正常工作状态;当所述第一计算结果和所述第二计算结果不一致时,所述FPGA进入非正常工作状态。优选的,所述FPGA芯片包括:第一数据采集单元,用于当所述FPGA芯片配置完成后,获取一组随机数、所述安全芯片的芯片序列号以及所述安全芯片输出的第二计算结果;第一计算单元,用于按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果;第一数据发送单元,用于将所述随机数发送至所述安全芯片;比较单元,用于比较所述第一计算结果和所述第二计算结果。优选的,所述安全芯片包括:第二数据采集单元,用于接收所述FPGA芯片发送的所述随机数;第二计算单元,用于按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果;第二数据发送单元,用于将所述安全芯片的所述芯片序列号以及所述第二计算结果发送至所述FPGA芯片。经由上述技术方案可知,本申请公开一种FPGA程序防拷贝方法和PCI-E密码卡。当FPGA芯片配置完成后,FPGA芯片获取一组随机数以及安全芯片的芯片序列号,按照预设算法对预存的第一密钥、随机数以及芯片序列号进行一系列,得到第一计算结果。进而,安全芯片采用相同的计算方法对预存的第二密钥、上述随机数以及芯片序列号进行计算,得到第二计算结果。FPGA芯片比较第一计算结果和第二计算结果,当二者一致时,则说明外部为友好电路FGPA进入正常工作状态,否则外部为非友好电路,FPGA进入非正常工作状态。与采用加密防拷贝的方式相比,本专利技术采用FPGA身份认证的方式防止FPGA程序的拷贝,适用于所有型号的FPGA芯片。同时,在身份认证过程中,增加了随机因子和唯一的芯片序列号,防止对身份认证数据的重放攻击以及密钥的破解,提高了PCI-E密码卡的密码算法和密钥的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1示出了本专利技术一个实施例公开了一种FPGA程序防拷贝方法的流程示意图;图2出了本专利技术另一个实施例公开的一种PCI-E密码卡的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1示出了本专利技术一个实施例公开了一种FPGA程序防拷贝方法的流程示意图。该方法应用于PCI-E密码卡,其中所述PCI-E密码卡包括FPGA芯片和安芯片。由图1可知,本专利技术包括:S101:当FPGA芯片配置完成后,FPGA芯片获取一组随机数以及安全芯片的芯片序列号,并将所述随机数发送至安全芯片。PCI-E密码卡上电后,FPGA芯片从Flash存储器中读取配置流数据进行配置。配置完后,FPGA芯片获取安全芯片发送的唯一芯片序列号以及一组随机数。S102:FPGA芯片按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果。可选,FPGA芯片利用预存的第一密钥与安全芯片的唯一芯片序列号进行HASH(哈希)运算,进而将得到的HASH结果与上述随机数再次进行HASH运算,输出第一计算结果。需要说明的是,在本实施例中FPGA芯片的第一密钥存储在FPGA芯片的Flash存储器中。该Flash存储器具有支持多次变程,且断电不丢失数据的特性。S103:安全芯片接收FPGA芯片发送的随机数,并按照所述预设算法对安全芯片预存的所述第二密钥、随机数以及芯片序列号进行计算,得到第二计算结果。安全芯片采用步骤S102中相同的计算方式对随机数、芯片序列号以及第二密钥进行计算输出第二计算结果。具体的,安全本文档来自技高网...
一种FPGA程序防拷贝方法和PCI-E密码卡

【技术保护点】
一种FPGA程序防拷贝方法,所述方法应用于PCI‑E密码卡,其特征在于,所述PCI‑E密码卡包括:FPGA芯片和安全芯片,所述方法包括:当所述FPGA芯片配置完成后,所述FPGA芯片获取一组随机数以及所述安全芯片的芯片序列号,并将所述随机数发送至所述安全芯片;FPGA芯片按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果;安全芯片接收所述FPGA芯片发送的所述随机数,并按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果;所述FPGA芯片比较所述第一计算结果和所述第二计算结果;其中,当所述第一计算结果和所述第二计算结果一致时,所述FGPA进入正常工作状态;当所述第一计算结果和所述第二计算结果不一致时,所述FPGA进入非正常工作状态。

【技术特征摘要】
1.一种FPGA程序防拷贝方法,所述方法应用于PCI-E密码卡,其特征在于,所述PCI-E密码卡包括:FPGA芯片和安全芯片,所述方法包括:当所述FPGA芯片配置完成后,所述FPGA芯片获取一组随机数以及所述安全芯片的芯片序列号,并将所述随机数发送至所述安全芯片;FPGA芯片按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果;安全芯片接收所述FPGA芯片发送的所述随机数,并按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果;所述FPGA芯片比较所述第一计算结果和所述第二计算结果;其中,当所述第一计算结果和所述第二计算结果一致时,所述FGPA进入正常工作状态;当所述第一计算结果和所述第二计算结果不一致时,所述FPGA进入非正常工作状态。2.根据权利要求1所述的方法,其特征在于,所述第一密钥存储在所述FPGA芯片的flash存储器中。3.根据权利要求1所述的方法,其特征在于,所述按照预设算法对所述FPGA芯片预存的第一密钥、所述随机数以及所述芯片序列号进行计算,得到第一计算结果,包括:对所述第一密钥和所述芯片序列号进行HASH运算,第一HASH运算结果;对所述第一HASH运算结果和所随机数进行HASH运算,输出所述第一计算结果。4.根据权利要求1所述的方法,其特征在于,所述按照所述预设算法对所述安全芯片预存的所述第二密钥、所述随机数以及所述芯片序列号进行计算,得到第二计算结果,包括:对所述第二密钥和所述芯片序列号进行HASH运算,第二HASH运算结果;对所述第二HASH运算结果和所随机数进行HASH运算,输出所述第二计算结果。5....

【专利技术属性】
技术研发人员:王佶林峰
申请(专利权)人:北京中金国信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1