论文部分内容阅读
物联网和普适计算的发展使得越来越多的便携式智能设备如无线传感器、智能卡、RFID标签等在生活中得到广泛的应用。这些智能设备只有有限的资源和计算能力,经常会处理一些敏感的数据,对安全性有一定的要求。传统的密码算法在实现时需要较多的软硬件资源,并不适用于资源受限设备。兼顾实现性能和安全性的轻量级密码算法才是保护资源受限设备数据安全的合适选择。然而,由于这类资源受限设备通常暴露在开放环境中且易于物理接触,使得应用在其上的轻量级密码算法容易遭受功耗分析攻击的威胁。KLEIN和ITUbee是近两年提出的轻量级分组密码算法,它们与大多数面向硬件实现而设计的轻量级密码不同的一点是采用了面向软件实现的设计思想,这使得它们不仅适用于资源受限设备,而且很适合在无线传感器上采用灵活且便于维护的软件实现方式。目前,对于这两种轻量级密码的软件实现性能和功耗分析攻击的研究还很少。因此,对KLEIN和ITUbee采用软件实现时的性能进行合理评估,在软件实现的基础上研究其遭受相关功耗分析攻击(Correlation Power Analysis,CPA)时的安全性,并设计对其软件实现性能影响较小的抗功耗分析攻击的方案,具有重要的理论意义和应用参考价值。本文首先论述了对KLEIN及ITUbee进行软件实现性能的评估和功耗分析研究的意义,并对这两种密码算法采用软件实现时的性能进行了评估。为了更好的进行对比分析,以无线传感器中广泛使用的8位微控制器作为实验环境,遵从相同的编程规范和优化策略对KLEIN、ITUbee、PRESENT和AES算法进行软件实现,通过衡量密码算法采用软件实现时的存储空间占用、加密和解密一个数据分组所需的时钟周期数以及加密和解密时的吞吐率等指标,来对这四种密码算法的软件实现性能进行评估和比较。评估结果表明,面向软件实现而设计的KLEIN及ITUbee在存储空间占用、运行效率以及综合性能方面都远远优于面向硬件实现而设计的PRESENT,在存储空间占用方面也优于软件实现性能良好的AES,KLEIN在运行效率及综合性能方面优于ITUbee,但存储空间占用多于ITUbee。其次,在对KLEIN及ITUbee软件实现的基础上,分析算法流程,并选取合适的攻击点对这两种密码算法进行了CPA攻击,攻击结果表明:在功耗曲线样本量为223时,就可以通过CPA攻击KLEIN加密第一轮而恢复出其8个字节轮密钥中的6个字节,随着功耗曲线样本量增加到10000,破解出的密钥的正确率稳定在75%;在功耗曲线样本量分别为54和43时,就可以分别通过CPA攻击ITUbee加密第一轮和解密第一轮而恢复出其10个字节密钥的高5字节和低5字节,且随着样本量增加到5000,破解出的密钥的正确率稳定在100%。由此可知没有防御措施的KLEIN及ITUbee的软件实现在遭受CPA攻击时是不安全的。最后,针对KLEIN及ITUbee分别设计并实现了防御功耗分析攻击的掩码方案,并对所设计的掩码方案的有效性以及对算法软件实现性能的影响做了实验验证和对比分析,实验表明:添加掩码方案后KLEIN及ITUbee均能有效的抵抗CPA攻击;对比分析表明:添加掩码方案后,KLEIN及ITUbee的软件实现性能都有所下降,但总体上KLEIN及ITUbee添加掩码方案后的软件实现仍属于轻量级的实现。