在深化分析依据FPGA的安全封装结构的根底上,针对其实践运用中身份认证的安全性要求,要点研讨并规划了一种适用于FPGA安全封装结构的身份认证模型。该模型经过运用RSA公钥暗码算法和SHA-1算法,完成了对用户及FPGA的双向认证。该模型具有杰出的可移植性和安全性,可以有用抵挡多种进犯,为依据FPGA的安全封装运用供给了强有力的用户权限认证。
跟着嵌入式技能的推行,FPGA在各种嵌入式体系中得到了广泛运用。在各种嵌入式体系运用中,FPGA往往用于完成整个体系的中心功用。因而,怎么确保FPGA内部功用结构的安全性成为维护整个嵌入式体系中心知识产权的要害性问题。针对FPGA内部结构码安全性的问题,各FPGA厂家推出了多种具有特别安全功用的产品。可是,先进的数据分析技能及东西使得进犯者可以很容易地对芯片管脚的输出信号(如地址总线、数据总线)进行行为勘探或数据盗取,而且依据勘探成果推导出FPGA内部功用模块的完成机理。
依据FPGA的安全封装技能正是为了处理对芯片管脚输出信号的进犯而发生的一种安全防护技能,经过在FPGA芯片内的功用模块外加上一层安全封装,确保功用模块运行时的不行勘探性。而作为整个安全防护机制的启用进口,身份认证机制联系整个安全封装结构的有用性,有必要确保认证信息在静态存储及认证进程中的有用性及安全性。本文经过对FPGA安全封装进行分析,要点研讨并规划了一种依据FPGA安全封装的身份认证机制。该身份认证机制可以确保认证进程的有用性及认证信息的安全性,具有杰出的可移植性,可以集成到各种安全封装结构中。
1FPGA安全封装技能
安全封装结构首要由三个功用单元组成,分别为FPGA功用模块单元、身份认证单元和加密单元。其间,功用模块单元为详细完成体系中FPGA功用的部分,是完成FPGA芯片运用的中心单元;身份认证单元首要担任对用户的合法身份进行认证并启用安全封装;加密单元担任对功用单元的输入/输出数据进行加/脱密处理,确保FPGA输入/输出数据的安全性。用户接口便于用户刺进智能卡等设备,进行身份认证。安全封装组成结构如图2所示。
安全封装未启用前,FPGA芯片内的功用模块单元处于等候状况。当用户需求启用FPGA内部的安全封装时,运用智能卡与FPGA芯片进行身份认证。假如认证失利,则芯片回绝该用户的拜访,假如认证成功,身份认证单元会将用户ID发送给加密单元。接收到用户ID后,加密单元将发起功用模块单元。当功用模块单元对外部进行写/读操作时,加密单元从功用模块单元取得数据的地址信息,结合用户ID,作为发生加/解密密钥的根向量,并运用所发生的密钥对功用模块单元输入/输出的数据进行加/解密。
2依据FPGA安全封装的身份认证
2.1依据FPGA安全封装的双向认证计划
身份认证是经过将一个依据与实体身份绑定完成的。在FPGA安全封装运用中,实体为智能卡及FPGA。为了确保安全封装运用的安全性,在认证进程中,一方面智能卡有必要向FPGA供给依据证明自己的合法身份;另一方面,FPGA芯片也有必要向智能卡供给依据证明自己的合法性。因而,依据FPGA安全封装的身份认证机制有必要是双向的。为了下降身份认证机制完成的复杂度并节约FPGA内部资源,挑选了RSA暗码算法并辅佐以SHA-1算法作为完成双向认证计划的暗码学根底。
RSA暗码的安全性依据大合数因子分化的困难性,当大合数取1024位或2048位时,破译RSA暗码的价值将是十分巨大的。SHA-1算法是一种单向的Hash函数,经过输入一组小于264位的报文,得到一组160位的报文摘要,而且算法满意下面两条性质:(1)经过报文摘要推算出原报文在计算上是不行行的,即算法具有不行逆性;(2)不同的两段报文所发生的报文摘要是不相同的,即算法具有抗冲击性。
双向认证计划的密钥装备如表1所示。假定ef和eu分别为智能卡和FPGA的RSA私钥,df和du分别为智能卡和FPGA的RSA公钥,nf和nu分别为智能卡和FPGA所运用的RSA大合数。FPGA具有自己的私钥eu和智能卡的公钥df及两边所运用的大合数nf、nu;相同智能卡也具有自己的私钥ef和FPGA的公钥du及两边所运用的大合数nf、nu,则双向认证进程可分为以下几个进程:
(1)用户将记载有用户ID信息的智能卡刺进用户接口。
(2)FPGA芯片勘探到智能卡的刺进,发起身份认证单元。
(3)智能卡发生一个随机数mu,并用ef和nf对其进行加密,然后将加密后的成果发给FPGA芯片中的身份认证单元。
(4)身份认证单元运用df和nf对cu进行解密,得到解密成果mu′。
(5)身份认证单元运用eu和nu对mu′进行加密,并将加密成果cf′回传给智能卡。
(6)智能卡运用du和nu对cf′进行解密,并将解密成果与mu进行比照。若正确,则承认FPGA芯片关于用户的合法性,并持续下一步的操作;若不正确,智能卡将与FPGA芯片断开衔接。
(7)身份认证单元发生一随机数mf,并运用eu和nu对其进行加密,并将加密成果cf传递给智能卡。
(8)智能卡运用du和nu对cf进行解密,得到解密成果mf。
(9)智能卡运用ef和nf对(ID+mu+mf)进行加密,得到加密成果cID,并将cID发送给身份认证单元。
(10)身份认证单元运用df和nf对cID进行解密,并将解密成果减去mu和mf得到ID。
(11)身份认证单元运用SHA-1算法对ID进行Hash运算,得到chash。
(12)身份认证单元将与IDHash表寄存器中的值进行匹配,若匹配成功,则证明智能卡关于FPGA芯片的合法性,IDHash将作为根向量的一部分参加到加密单元的加解密操作中去,若匹配不成功,FPGA芯片将断开与智能卡的衔接。
2.2身份认证单元模型规划
在FPGA安全封装结构中,身份认证单元的一端与加密单元相连,另一端与用户接口相连。为了满意双向认证进程中智能卡RSA运算及用户ID存储安全性的要求,选用DS1957B完成智能卡。DS1957B运用避免物理勘探的封装方法,内置Java处理器、1024位暗码加速器、随机数发生器及134KB的非易失性RAM,可以十分方便地完成RSA运算,而且可以对卡内保存的密钥及用户ID信息施行密封存储。
为了完成双向认证进程,FPGA安全封装中的身份认证单元模型由一个xemodn计算器、随机数发生器、RSA引擎、RSA密钥寄存器、SHA-1计算器及IDHash表寄存器组成。其间,xemodn计算器担任RSA暗码的模幂运算,随机数发生器担任发生随机数,RSA引擎担任FPGA端的RSA运算,RSA密钥寄存器存储RSA暗码的密钥,SHA-1计算器担任对用户ID信息进行单向Hash运算,IDHash表寄存器存储合法的用户ID的Hash值。身份认证单元模型如图3所示。
3安全性分析
身份认证单元模型的安全性首要依据三点:(1)密钥及用户ID静态寄存的安全性;(2)所运用的加密算法的安全性;(3)认证计划抵挡各种进犯的才能。其间第二点不属于本文评论的规模。假定所运用的算法总是安全的,以下将详细分析第一点和第三点。
(1)针关于密钥和用户ID的静态寄存,一方面因为智能卡选用了避免物理勘探的封装方法,并对智能卡内的数据进行密封存储的方法进行保存,进犯者难以经过物理勘探或软件勘探盗取存储在智能卡上的密钥及用户ID信息[7-8]。另一方面,FPGA内部由大规模逻辑门阵列组成,要从中独自提取出密钥等敏感数据十分困难。此外,大部分FPGA现已具有比照特流及其内部结构的维护功用。因而,可以确保身份认证进程中所运用密钥及用户ID的静态安全性。
(2)在认证进程中,最有或许遭受到的进犯手法有假充实体进犯、重放进犯、唯密文进犯。针对这些进犯,认证计划都具有相应的防备战略。
3.1假充实体进犯
假定进犯者盗取了用户的智能卡,为了取得智能卡上的ID信息,运用一个设备假充合法的FPGA与智能卡衔接。但因为在认证进程中,该假充的设备无法成功地向智能卡证明其身份的合法性,使智能卡不会向该设备发送包括用户ID的相关信息,所以该安全封装结构可以反抗“假充实体进犯”。
3.2重放进犯
假定进犯者截获了身份认证单元发送的认证信息cf′和cf,并对智能卡发起重发进犯。
(1)在认证进程的进程(3)中,智能卡发生一个新的随机数mu2,并用ef和nf对其进行加密,然后将加密后的成果cu2发给FPGA芯片中的身份认证单元。
(2)进犯者将cf′发回给智能卡。
(3)智能卡运用du和nu对cf′进行解密,得到mu,因为mu≠mu2,认证失利。
假定进犯者截获了智能卡发送的认证信息cu和cID,并对FPGA发起重发进犯:
(1)在认证进程进程(7)中,身份认证单元发生了一个新的随机数mf2,并运用eu和nu对其进行加密,并将加密成果cf2传递给智能卡;
(2)进犯者将cID发回给FPGA;
(3)身份认证单元运用df和nf对cID进行解密,并将解密成果减去mu和mf2得到ID2;
(4)身份认证单元运用SHA-1算法对ID2进行Hash运算,得到chash′;
(5)因为chash′明显不能与IDHash表寄存器中的值匹配成功,认证失利。
因而该安全封装结构可以反抗“重放进犯”。
3.3唯密文进犯
假定进犯者经过信道偷听截获了两边传递的一切认证信息,因为认证信息都是依据随机数发生的,所以每次传递的认证信息都不相同,这极大增加了进犯者分析密文的难度。而在认证进程的进程(9)中,因为CID是经过对(ID+mu+mf)加密后得到,mu和mf都是随机数,所以每次认证的成果都不同,使进犯者也不能也经过分析CID取得用户ID的相关信息。
本文针对FPGA芯片内部功用单元的安全性问题,深化分析了依据FPGA的安全封装结构,并对依据该结构的身份认证机制进行了要点研讨,规划并完成了一种依据FPGA安全封装结构的身份认证模型。该模型选用依据公钥体系的双向认证机制,可以有用确保认证信息静态及动态的安全,然后到达确保安全封装结构有用性及芯片内部功用单元安全的意图。
责任编辑:gt