本发明一般涉及现场可编程门阵列(fpga),并且更具体地,涉及保护fpga的加密电路。
背景技术:
1、fpga被配置有通常通过网络连接下载、存储在闪存中或存储在闪存卡上的比特文件。因为加密密钥被存储在静态随机存取存储器(sram)或嵌入式闪存中,即使比特文件通常被加密,也可以通过诸如对fpga的侧信道攻击或皮秒成像电路分析(pica)的技术来找到用于保护比特文件的加密密钥。在找到加密密钥后,可以修改和/或逆向设计比特文件。这种安全性破坏的结果等同于在系统中引入了欺诈芯片和代码。
技术实现思路
1、根据本发明的一个方面,提供了一种用于创建防篡改现场可编程门阵列(fpga)的计算机实现的方法,该计算机实现的方法包括:由一个或多个处理器确定加密密钥是否存储在fpga的物理不可克隆功能(puf)中;响应于加密密钥未被存储在puf中,由一个或多个处理器将加密密钥写入与fpga的后端制程(beol)相关联的防篡改存储器;由一个或多个处理器将程序密钥写入防篡改存储器;以及由一个或多个处理器将查找表(lut)写入防篡改存储器。
2、根据本发明的另一方面,提供了一种用于现场可编程门阵列(fpga)的防篡改远程重编程的计算机实现的方法,该计算机实现的方法包括:由一个或多个处理器从远程fpga接收重编程请求;由一个或多个处理器生成随机初始化向量;由一个或多个处理器使用与远程fpga共享的加密密钥来加密编程密钥和比特文件;以及由一个或多个处理器将随机初始化向量、所加密的编程密钥和所加密的比特文件发送到fpga。
3、根据本发明的另一方面,提供了一种用于创建防篡改现场可编程门阵列(fpga)的计算机系统,该计算机系统包括:一个或多个计算机处理器;一个或多个计算机可读存储介质;以及存储在一个或多个计算机可读存储介质上以供一个或多个处理器中的至少一个处理器执行的程序指令,程序指令包括:用于确定加密密钥是否存储在fpga的物理不可克隆功能(puf)中的程序指令;响应于加密密钥未被存储在puf中,用于将加密密钥写入与fpga的后端制程(beol)相关联的防篡改存储器中的程序指令;用于将程序密钥写入防篡改存储器中的程序指令;以及用于将查找表(lut)写入防篡改存储器中的程序指令。
4、从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
1.一种用于创建防篡改现场可编程门阵列(fpga)的计算机实现的方法,所述计算机实现的方法包括:
2.根据权利要求1所述的计算机实现的方法,其中,所述防篡改存储器是以下中的至少一个:电阻随机存取存储器(rram)、自旋转移(st)rram或自旋转移扭矩(stt)rram。
3.根据权利要求1或2所述的计算机实现的方法,其中,在非信任工厂中制造所述fpga的第一部分,并且在信任工厂中制造其它部分。
4.根据权利要求3所述的计算机实现的方法,其中,所述第一部分是所述fpga的前端制程(feol),并且所述其它部分是所述fpga的所述beol。
5.根据权利要求4所述的计算机实现的方法,其中,所述fpga还包括所述feol中的一个或多个复用器以供所述lut使用。
6.根据权利要求4所述的计算机实现的方法,其中,所述fpga还包括所述feol中的一个或多个触发器以供所述lut使用。
7.根据权利要求2所述的计算机实现的方法,其中,在所述防篡改存储器中实现所述puf。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述加密密钥被存储在私有云中的信任数据库中并被写入信任设施中的fpga。
9.一种用于现场可编程门阵列(fpga)的防篡改远程重编程的计算机实现的方法,所述计算机实现的方法包括:
10.根据权利要求9所述的计算机实现的方法,其中,所述加密是对称加密。
11.根据权利要求9或10所述的计算机实现的方法,其中,所述比特文件包括用于lut的布尔逻辑。
12.根据权利要求9至11中任一项所述的计算机实现的方法,其中,所述加密密钥被存储在与所述fpga上的后端制程(beol)相关联的防篡改存储器中。
13.根据权利要求12所述的计算机实现的方法,其中,所述防篡改存储器是以下中的至少一个:电阻随机存取存储器(rram)、自旋转移(st)rram或自旋转移扭矩(stt)rram。
14.根据权利要求12所述的计算机实现的方法,还包括:
15.根据权利要求14所述的计算机实现的方法,其中,利用存储在所述防篡改存储器中的所述加密密钥来对所加密的编程密钥进行解密。
16.一种用于创建防篡改现场可编程门阵列(fpga)的计算机系统,所述计算机系统包括:
17.根据权利要求16所述的系统,其中,所述防篡改存储器是以下中的至少一个:电阻随机存取存储器(rram)、自旋转移(st)rram或自旋转移扭矩(stt)rram。
18.根据权利要求16所述的系统,其中,在非信任工厂中制造所述fpga的前端制程(feol),并且在信任工厂中制造所述beol。
19.根据权利要求18所述的系统,其中,所述fpga还包括所述feol中的供所述lut使用的一个或多个复用器以及所述feol中的供所述lut使用的一个或多个触发器。
20.根据权利要求16所述的系统,其中,在所述防篡改存储器中实现所述puf。