微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于FPGA安全封装的身份认证模型研究

基于FPGA安全封装的身份认证模型研究

时间:05-27 来源:互联网 点击:
在深入分析基于FPGA的安全封装结构的基础上,针对其实际应用中身份认证的安全性要求,重点研究并设计了一种适用于FPGA安全封装结构的身份认证模型。该模型通过利用RSA公钥密码算法和SHA-1算法,实现了对用户及FPGA的双向认证。该模型具备良好的可移植性和安全性,能够有效抵御多种攻击,为基于FPGA的安全封装应用提供了强有力的用户权限认证。
    随着嵌入式技术的推广,FPGA在各种嵌入式系统中得到了广泛应用。在各种嵌入式系统应用中,FPGA往往用于实现整个系统的核心功能[1]。因此,如何保证FPGA内部功能构造的安全性成为保护整个嵌入式系统核心知识产权的关键性问题。针对FPGA内部构造码安全性的问题,各FPGA厂家推出了多种具有特殊安全功能的产品[2-3]。但是,先进的数据分析技术及工具使得攻击者可以很容易地对芯片管脚的输出信号(如地址总线、数据总线)进行行为探测或数据窃取,并且根据探测结果推导出FPGA内部功能模块的实现机理。

   基于FPGA的安全封装技术正是为了解决对芯片管脚输出信号的攻击而产生的一种安全防护技术,通过在FPGA芯片内的功能模块外加上一层安全封装,保证功能模块运行时的不可探测性。而作为整个安全防护机制的启用入口,身份认证机制关系整个安全封装结构的有效性,必须保证认证信息在静态存储及认证过程中的有效性及安全性[4]。本文通过对FPGA安全封装进行剖析,重点研究并设计了一种基于FPGA安全封装的身份认证机制。该身份认证机制能够保证认证过程的有效性及认证信息的安全性,具有良好的可移植性,能够集成到各种安全封装结构中。




1 FPGA安全封装技术

   如图1所示,基于FPGA的安全封装结构可以看作是在功能模块外加上一层保护层,功能模块所有与外界的I/O端口通信都必须通过安全封装结构。当功能模块需要对外部器件进行通信时,所有功能模块接收/发送的数据均被安全封装模块进行加/脱密处理。通过这种方法,攻击者在FPGA管脚上所截获的信息均为密文信息,从而达到保护FPGA内部功能模块的目的。
   安全封装结构主要由三个功能单元组成,分别为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密码的安全性基于大合数因子分解的困难性[5],当大合数取1 024位或2 048位时,破译RSA密码的代价将是非常巨大的。SHA-1算法是一种单向的Hash函数,通过输入一组小于264位的报文,得到一组160位的报文摘要[6],并且算法满足下面两条性质:(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, 则双向认证过程可分为以下几个步骤:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top