论文部分内容阅读
安全SoC(System on Chip)芯片在各个领域中得到了广泛的应用,主要完成用户关键数据的安全存储、数据加解密、数字签名与认证、以及身份鉴别等。安全SoC芯片在各种应用系统中往往作为安全控制的核心和信任根源,因此安全SoC芯片自身的安全性对整个系统而言起着关键作用。受利益驱使,安全SoC芯片往往成为恶意实体或个人的破解目标,相关的破解手段包括软件攻击、旁路攻击以及物理攻击,其中旁路攻击特别是功耗攻击就是一种针对密码算法具体实现中存在的薄弱环节而实施的以破解密钥为目标的有效攻击技术。为此,本文将安全SoC中密码算法部件抗功耗攻击设计与实现的关键技术作为研究内容,主要包括以下三个方面:一是抗功耗攻击的密码算法部件辅助设计技术,二是创新的防护技术,三是面向安全约束的SoC设计技术与安全SoC原型芯片的设计与实现。在本文的研究过程中,主要取得了如下创新成果:(1)提出了识别密码算法具体实现中可被功耗攻击漏洞的分析方法,主要包括三个部分:识别密码算法具体实现中可被功耗攻击漏洞的基本理论,描述密码算法具体实现的增强数据相关图,以及识别可被功耗攻击漏洞的算法。发现密码算法具体实现中可被功耗攻击的漏洞不仅为设计具有高防护能力的密码算法实现模块提供有效指导信息,设计者可以据此采取有针对性的技术措施以抗功耗攻击;也可为建立抗功耗攻击的密码算法部件辅助设计EDA工具打下坚实的基础。(2)提出了密码算法部件抗功耗攻击防护能力的量化评估方法。本文根据功耗攻击的信噪比来估算成功实施功耗攻击所需的样本数,并给出了不同设计层次(包括RTL级、综合后以及布局布线后等)下密码算法部件的瞬态功耗模拟技术。识别密码算法具体实现中可被功耗攻击的漏洞相当于定性分析防护能力,结合防护能力量化评估,可以有效指导抗功耗攻击的密码算法部件设计与实现。(3)提出了基于随机掩码的抗高阶功耗攻击的AES算法实现技术,其目的在于消除可被功耗攻击的漏洞。定义了若干随机掩码的细粒度操作,将AES算法中各种变换转换为细粒度操作的序列,并保证所有的中间结果均被不同的随机量所掩码,结合运算过程随机化技术以达到更好的防护效果。基于该技术,可以采用软件、硬件以及软硬件混合等不同方式实现AES算法。(4)提出了三种不同的旨在增大功耗攻击难度的防护技术:一是基于WDDL和行波流水技术的抗功耗攻击的分组密码算法实现技术,将WDDL逻辑单元的功耗恒定特性与行波流水技术的高运算性能有效结合,用以实现分组密码算法部件,不仅具有良好的抗功耗攻击防护能力,也具有较高的运算性能;二是基于混沌噪声的防护技术,利用混沌信号的高度复杂性和不可预测性,以混沌功耗噪声掩盖密码算法部件的有效功耗信息,适合于安全SoC芯片中对多个密码运算部件进行保护,且与密码算法部件的实现细节无关;三是基于细粒度任务调度的RSA和ECC算法抗功耗攻击实现技术,将RSA和ECC算法中关键操作即大整数模幂和椭圆曲线标量乘法转换为细粒度原子操作的随机序列,在运算过程中随机的插入数目可配置的伪操作,达到了防护能力和运算性能的灵活折衷。(5)提出了面向安全约束的SoC芯片设计技术。在基于层次平台的SoC设计方法学基础上,提出了基于可信计算体系结构的安全SoC层次化设计平台,在安全SoC的设计中引入独立的安全约束,并给出了相应的安全约束映射技术和安全验证技术。从软件攻击和旁路攻击等角度,定义安全约束并验证防护技术的有效性。所提出的安全SoC设计技术不仅可以充分重用已有的设计资源,也可充分利用现有的层次平台设计技术及相关辅助设计工具。