一种芯片鉴权方法与流程
未命名
09-17
阅读:139
评论:0
1.本发明属于集成电路芯片技术领域,具体涉及一种芯片鉴权方法。
背景技术:
2.随着集成电路及微电子技术的发展,集成电路芯片作为信息的载体应用在各种领域。集成电路芯片测试包括功能、性能、可靠性及安全性等测试。在集成电路芯片安全性检测中,芯片的测试接口的安全性是评估芯片是否安全的一个尤为重要的因素。以fpga(现场可编程门阵列)为例,fpga芯片是一种大规模可编程器件,用户用硬件描述语言描述所需的功能设计编译成码流文件用于对fpga的进行编程,为用户提供了系统可编程或可重配置的能力,在应用中的显著优势是可定制性、可扩展性性、加速面世时间等。随着fpga在数据钟信、通信基础设施、ai加速、医疗设备、边缘计算等多个领域的广泛使用,针对fpga安全性的研究逐渐成为关注的热点之一。简而言之,fpga使用越来越广泛,但最关键的是安全,防止被篡改是fpga有效应用的前提。
3.鉴权一般指的是对加密后的比特流文件进行身份验证,防止对其进行篡改和删减。如果fpga没有鉴权功能,不对配置文件进行鉴权,那么攻击者就可以对比特流文件进行任意修改,比如修改系统功能、木马注入等。fpga配置文件由fpga设计软件自动生成,它包含了fpga设计的全部信息,因此配置文件是fpga安全性能防护中的重中之重。而现有的crc(循环冗余校验码)校验并不能100%的检查出数据的错误,会出现crc校验正确但数据中有错误位的情况,这使得fpga的应用受到限制。
4.现有的fpga鉴权,较好的采用rsa非对称密钥鉴权。现有的鉴权方法一般都是先解密码流后鉴权。加密必鉴权,鉴权必加密。并不是真正意义上的鉴权,还是存在安全漏洞,并且这样的鉴权方法存在很多限制,尤其不利于国产芯片的应用。
5.因此,亟需研究一种芯片鉴权方法,更有效地防止芯片被篡改和删减,提高芯片安全性,同时在实践中突破原有鉴权方法的限制,推动芯片的开发应用,及国产芯片的设计技术发展。
技术实现要素:
6.本发明是为解决上述现有技术的全部或部分问题,本发明提出了一种芯片鉴权方法,给出了对芯片进行身份验证实现鉴权的方法,是一种适合于对需要在使用过程中对身份需要验证的芯片进行保护的方法,该方法可以有效地防止对芯片的配置文件进行篡改和删减,如果配置文件被修改,势必会导致错误的鉴权结果,芯片会因为身份校验失败而拒绝执行工作,从而避免被攻击的可能。
7.本发明提供的一种芯片鉴权方法,包括:步骤s1.对芯片的原始配置文件进行哈希运算并生成鉴权码流;步骤s2.进行身份验证;其中,所述步骤s1包括:计算哈希值得到原始码流的唯一消息摘要;用预定义的鉴权密钥加密所述消息摘要得到加密摘要;将所述加密摘要和所述原始配置文件组成新的配置文件作为所述鉴权码流;所述步骤s2包括:加载码
流,对接收到的所述鉴权码流中的原始码流部分计算哈希值得到当前摘要;用所述鉴权密钥解密所述加密摘要得到鉴权摘要;比较所述当前摘要和所述鉴权摘要,判断是否通过身份验证。先哈希运算得到唯一的消息摘要作为标定摘要,该消息摘要加密后与原始配置文件共同作为鉴权码流,鉴权时计算出接收到的码流的唯一摘要,作为当前摘要,并用预定义的鉴权密钥对加密后的消息摘要解密得到鉴权摘要。只要配置文件发生改变,利用哈希算法算出来的消息摘要就会改变。如果鉴权码流没有被篡改则鉴权摘要应与当前摘要一致,因鉴权摘要就是标定摘要加密再解密得到,与标定摘要一致,当前摘要与标定摘要一致则可以通过验证,即接收到的鉴权码流中的原始配置没有任何改动,配置文件改变1bit都会出现鉴权失败而拒绝访问,由此实现鉴权。先哈希运算生成鉴权码流,通过唯一消息摘要实现鉴权,解密整个码流文件不再是鉴权的前置步骤,配置码流可以不加密,改变了现有必须先解密再鉴权的限制;并且鉴权的同时在配置芯片,无须把鉴权后的码流先缓存再读出配置,节约了配置时间,全面提高了鉴权效率,有效地的提升了芯片的安全性能。
8.所述鉴权密钥是对称的密钥,所述得到加密摘要的方法包括采用对称算法进行加密。
9.所述芯片鉴权方法包括:生成鉴权码流之前,对芯片的原始配置文件采用对称算法加密;所述身份验证之后,若验证通过则进行:对加密的所述原始码流进行解密再解压缩。所述唯一消息摘要是对加密的原始码流进行哈希运算得到的摘要;所述鉴权码流中的原始码流部分是加密的原始码流。
10.用预定义的鉴权密钥加密的方法包括:用户设定所述鉴权密钥并将其写进所述芯片的电子熔丝efuse中进行存储,并且设置不能被再次修改。电子熔丝(efuse)是一种一次性可编程非易失性存储器,efuse保存的信息不会因为系统掉电而丢失,且每个比特(bit)只能编程一次。efuse被广泛应用于芯片制造中,用于保存数据。
11.所述步骤s1和/或所述步骤s2中,采用sha-2算法进行哈希运算。利用该算法实现鉴权非常安全,因为要获得相同的哈希值的唯一方法是输入相同的文件或者字符串。即使改变1bit数据,输出的哈希值也会完全改变。
12.所述组成新的配置文件的方法包括:采用电子设计自动化(eda)软件将所述加密摘要和所述原始配置文件添加一个明文的同步头生成所述新的配置文件。每次用户或攻击者对芯片进行配置时,芯片可以根据明文头识别出鉴权码流里面的加密摘要。
13.所述步骤s2中,在计算哈希值之前,判断所述接收到的码流中所述同步头是否被修改,若是,则识别加载的码流并非所述鉴权码流,直接拒绝访问;若否,则进行后续操作。
14.所述步骤s2中,若所述当前摘要和所述鉴权摘要不一致,则鉴权失败,芯片拒绝访问。
15.所述步骤s2中若鉴权失败则分析行为并记录、报错;所述分析行为包括判断不一致的原因,确定所述原始码流被修改的数据。
16.所述芯片包括可编程逻辑电路芯片(例如fpga芯片)、专用电路芯片、(例如asic芯片)。
17.与现有技术相比,本发明的主要有益效果:本发明提供的一种鉴权方法,通过先对原始配置文件进行哈希运算得到唯一摘要,实际加载的配置文件有任何改变都出现鉴权失败而拒绝访问,且只对唯一摘要加密解
密即可完成身份验证,有效地加强了在使用过程中对身份需要验证的芯片的安全性能,进一步提高了产品的可靠性,减少了安全漏洞的隐患。通过只对原始码流的摘要进行加密,避免了对码流的限制,从而芯片配置时间能够进一步压缩,能够优化产品整体性能。
附图说明
18.图1为本发明实施例的芯片鉴权方法示意图。
19.图2为本发明实施例中fpga芯片鉴权流程示意图。
20.图3为本发明实施例中示例的同步头。
具体实施方式
21.下面将对本发明具体实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。
22.本发明实施例中示例的芯片鉴权方法,如图1所示,步骤s1.对芯片的原始配置文件进行哈希运算并生成鉴权码流;步骤s2.进行身份验证。本实施例中芯片以fpga芯片为例进行说明,以便于理解本发明的具体应用。芯片可以是其他在使用过程中对身份需要验证的芯片,例如其他可编程电路芯片或专用电路芯片,例如asic芯片,并不限定。
23.示例的情况中,步骤s1包括:计算哈希值得到原始码流的唯一消息摘要;用预定义的鉴权密钥加密消息摘要得到加密摘要;将加密摘要和原始配置文件组成新的配置文件作为鉴权码流;步骤s2包括:加载码流,对接收到的鉴权码流中的原始码流部分计算哈希值得到当前摘要;用鉴权密钥解密加密摘要得到鉴权摘要;比较当前摘要和鉴权摘要,判断是否通过身份验证。示例的鉴权密钥是用户设定的,可以是随意设置值,鉴权密钥可以是1至256bit。本实施例中,鉴权密钥是对称的密钥,得到加密摘要的方法包括采用对称算法进行加密。用预定义的鉴权密钥加密的方法包括:用户设定鉴权密钥并将其写进芯片的电子熔丝中进行存储,用户只要输入128bit的0/1即可,并且设置不能被再次修改。示例的鉴权密钥是存在efuse里面低128bit,比如可以用第129bit设置能不能修改。用户第一次写密钥时,该bit会自动勾上设置成不能再次修改。本实施例中利用对称的鉴权密钥实现鉴权,且只对摘要进行加密,鉴权密钥存放在efuse里。相比较传统的鉴权方法,本实例中采用对称密钥作为鉴权密钥,并且先鉴权,鉴权的同时在配置fpga,而传统的做法是把码流鉴权后缓存在fpga内部,再读出配置。示例的做法没有缓存这一步骤,节省了配置时间。本实施例中通过对比解密出期待的鉴权摘要和fpga实际加载的码流计算出的摘要对比,来身份验证实现鉴权。
24.示例的情况中,步骤s2中,若当前摘要和鉴权摘要不一致,则鉴权失败,芯片拒绝访问。一些较好的示例中,步骤s2中若鉴权失败则分析行为并记录、报错;分析行为包括判断不一致的原因,确定原始码流被修改的数据。能够记录未许可行为,便于后续安全管控工作的优化。
25.本实施例中,鉴权码流中包含的原始码流可以是任何形式的配置码流:非加密非压缩、加密非压缩、非加密压缩、加密压缩。有些示例中,生成鉴权码流之前,对芯片的原始配置文件采用对称算法加密;身份验证之后,若验证通过则进行:对加密的原始码流进行解密再解压缩。即fpga先鉴权,后解密(指原始配置文件用单独加密密钥,非鉴权密钥,鉴权过
程中摘要可以是对加密后的原始码流哈希计算得到的,鉴权之后,如果身份验证通过再用加密密钥解密。)如果鉴权失败则不进行解密,直接拒绝执行。
26.有些示例中,步骤s1和步骤s2中,采用sha-2算法进行哈希运算。也可以两个步骤之一选用sha-2算法,并不限定。
27.有些示例中,组成新的配置文件的方法包括:采用电子设计自动化软件将加密摘要和原始配置文件添加一个明文的同步头生成新的配置文件。一个具体的示例中,步骤s2中,在计算哈希值之前,判断接收到的码流中同步头是否被修改,若是,则识别加载的码流并非鉴权码流,直接拒绝访问;若否,则进行后续操作。
28.以下结合图2对芯片鉴权方法的一个具体流程进行示例。
29.本实施例中提供了一种基于sha-256算法对fpga配置文件进行身份验证实现fpga鉴权的示例。在示例的情况中利用sha-256算法,对fpga原始配置文件(psk文件)进行哈希运算,计算出唯一的摘要且对摘要进行加密后和原始配置文件组成新的配置文件交付给用户,用户把密钥存在fpga的efuse里,每次加载配置文件时,fpga会对加载的原始配置文件进行哈希运算,计算出当前摘要,并对配置文件里的加密摘要进行解密出期待的鉴权摘要,将二者进行对比,判断配置文件是否通过身份验证,从而实现鉴权。
30.sha-256算法是一种示例的哈希算法,并不限定,也可以采用其他哈希算法。sha-256作为sha-2(secure hash algorithm 2,安全哈希算法2)的一部分,目前已经是最流行的哈希算法之一。sha-256算法往往被用来生成256位的签名。sha-256是一种密码散列函数,对任意长度的消息,sha256算法都会产生一个256bit长度的散列值,称为消息摘要。利用该算法实现鉴权更安全,因为要获得相同的哈希值的唯一方法是输入相同的文件或者字符串。即使改变1bit数据,输出的哈希值也会完全改变。
31.图2中“software tool”部分为fpga的eda工具生成鉴权码流的过程,“fpga device”部分为fpga需要实现的身份验证的流程。
32.eda工具生成鉴权码流的过程,包括:eda软件对原始的配置文件psk进行sha-256计算,计算出原始码流的唯一消息摘要。
33.示例的配置文件内容:123(分别表示256bit数据),哈希算法有个初始摘要值,然后利用初始值和1计算出1’,再用1’和2计算出2’,再用2’和3计算出3’,3’即最终的唯一消息摘要。
34.eda软件对原始码流的256bit消息摘要根据用户设定的鉴权密钥进行加密。
35.eda软件将生成的加密摘要和原始配置文件添加一个明文的同步头生成新的配置文件,即鉴权码流。示例的同步头可参考图3。
36.pga需要实现的身份验证的流程如下:用户将鉴权密钥写进efuse,并且设置不能再次修改。
37.每次(用户或攻击者)对fpga进行配置时,fpga会根据明文头识别出加载的是否为鉴权码流authenic_psk,再识别出鉴权码流里面的加密摘要,用efuse里面的鉴权密钥(鉴权key)对其进行解密,解密出期待的身份验证的鉴权摘要。
38.fpga对鉴权码流里面的原始码流部分用sha-256算法计算哈希值,即fpga接收到的码流的唯一当前摘要。
39.fpga将计算出fpga接收到的码流的唯一当前摘要和解密出期待的身份验证的鉴权摘要进行对比。
40.如果相同yes(即“=”),则鉴权通过authen pass,fpga正常工作,否no,则会因为身份校验失败而拒绝执行,为error状态,从而避免了被攻击的可能。
41.fpga鉴权方法具体应用过程示例如下:每次对fpga进行配置时,如果码流明文头被修改,fpga会识别配置文件是非鉴权码流,而fpga中因为efuse被写过鉴权密钥,从而拒绝访问;如果加密摘要被修改,fpga解密出的预期摘要和实际算出的实际摘要不匹配,鉴权失败,fpga拒绝访问;如果原始码流被修改,fpga计算出的实际消息摘要不对,即当前摘要会和解密出的鉴权摘要不匹配,鉴权失败,fpga拒绝访问。
42.本发明为了便于叙述清楚而采用的一些常用的英文名词或字母只是用于示例性指代而非限定性解释或特定用法,不应以其可能的中文翻译或具体字母来限定本发明的保护范围。
技术特征:
1.一种芯片鉴权方法,其特征在于,包括:步骤s1.对芯片的原始配置文件进行哈希运算并生成鉴权码流;步骤s2.进行身份验证;其中,所述步骤s1包括:计算哈希值得到原始码流的唯一消息摘要;用预定义的鉴权密钥加密所述消息摘要得到加密摘要;将所述加密摘要和所述原始配置文件组成新的配置文件作为所述鉴权码流;所述步骤s2包括:加载码流,对接收到的所述鉴权码流中的原始码流部分计算哈希值得到当前摘要;用所述鉴权密钥解密所述加密摘要得到鉴权摘要;比较所述当前摘要和所述鉴权摘要,判断是否通过身份验证。2.根据权利要求1所述的芯片鉴权方法,其特征在于,所述鉴权密钥是对称的密钥,所述得到加密摘要的方法包括采用对称算法进行加密。3.根据权利要求1所述的芯片鉴权方法,其特征在于,包括:生成鉴权码流之前,对芯片的原始配置文件采用对称算法加密;所述身份验证之后,若验证通过则进行:对加密的所述原始码流进行解密再解压缩。4.根据权利要求1所述的芯片鉴权方法,其特征在于,用预定义的鉴权密钥加密的方法包括:用户设定所述鉴权密钥并将其写进所述芯片的电子熔丝中进行存储,并且设置不能被再次修改。5.根据权利要求1所述的芯片鉴权方法,其特征在于,所述步骤s1和/或所述步骤s2中,采用sha-2算法进行哈希运算。6.根据权利要求1-5任一项所述的芯片鉴权方法,其特征在于,所述组成新的配置文件的方法包括:采用电子设计自动化软件将所述加密摘要和所述原始配置文件添加一个明文的同步头生成所述新的配置文件。7.根据权利要求6所述的芯片鉴权方法,其特征在于,所述步骤s2中,在计算哈希值之前,判断所述接收到的码流中所述同步头是否被修改,若是,则识别加载的码流并非所述鉴权码流,直接拒绝访问;若否,则进行后续操作。8.根据权利要求1-5任一项所述的芯片鉴权方法,其特征在于,所述步骤s2中,若所述当前摘要和所述鉴权摘要不一致,则鉴权失败,芯片拒绝访问。9.根据权利要求8所述的芯片鉴权方法,其特征在于,所述步骤s2中若鉴权失败则分析行为并记录、报错;所述分析行为包括判断不一致的原因,确定所述原始码流被修改的数据。10.根据权利要求1所述的芯片鉴权方法,其特征在于:所述芯片包括可编程逻辑电路芯片、专用电路芯片。
技术总结
本发明提供一种芯片鉴权方法包括:步骤S1.对芯片的原始配置文件进行哈希运算并生成鉴权码流;步骤S2.进行身份验证;其中,所述步骤S1包括:计算哈希值得到原始码流的唯一消息摘要;用预定义的鉴权密钥加密所述消息摘要得到加密摘要;将所述加密摘要和所述原始配置文件组成新的配置文件作为所述鉴权码流;所述步骤S2包括:加载码流,对接收到的所述鉴权码流中的原始码流部分计算哈希值得到当前摘要;用所述鉴权密钥解密所述加密摘要得到鉴权摘要;比较所述当前摘要和所述鉴权摘要,判断是否通过身份验证。只对唯一摘要加密解密即可完成身份验证,有效地加强了芯片的安全性能,提高了产品的可靠性,减少了安全漏洞的隐患。减少了安全漏洞的隐患。减少了安全漏洞的隐患。
技术研发人员:俞文 韦援丰 蔡刚 魏育成
受保护的技术使用者:中科亿海微电子科技(苏州)有限公司
技术研发日:2023.08.14
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
