论文部分内容阅读
近年来,物联网(IoT)成为新的研究热点,引领世界新一轮科技和经济发展。物联网的核心技术是无处不在的普适设备,它们通过网络联通彼此并协作完成各种日常功能。越来越多的日常用品嵌入了普适设备来得到计算能力,这些普适设备包括RFID标签、传感器、专用集成电路ASIC和智能卡等,它们拥有极少的硬件资源,在面积、存储、计算能力和功耗上受到严苛的限制。虽然普适设备的大量部署给人们带来诸多便利,但是对安全和私密敏感的应用(如军事上、金融上的应用),安全性和私密性将是一个极为严峻的挑战。DES和AES等传统分组密码算法不适用于保护这类设备的安全,人们使用轻量级密码算法作为安全部件来保障这类应用的安全需求。最近几年,包括PRESENT.LED. KLEIN和QUAD等大量轻量级密码算法被密码学家提出以满足普适设备的安全需求。但是由于资源受限,轻量级密码算法都相对简单并且是串行实现。更严重的问题是,普适设备一般工作在不友好环境下,恶意攻击者对普适设备具有完全控制权,这让普适设备面临着巨大的物理攻击危险。近15年来的研究结果表明:即使密码算法在理论上是安全的,未考虑抗侧信道攻击防护措施的密码算法实现,难以抵抗侧信道攻击。过去十多年,研究人员付诸巨大努力研究各种抗击侧信道攻击的防护方法,这些方法主要包括隐藏和掩码两类。掩码方法以其更低的开销,更佳的性能以及良好的抗一阶侧信道攻击的表现,得到广泛应用。本文主要以轻量级分组密码算法KLEIN和轻量级流密码算法QUAD作为目标,全面评估它们抗侧信道攻击的脆弱性,包括分析其侧信道泄漏模型,对其展开侧信道攻击。在此评估基础上,研究各种抗一阶侧信道攻击的轻量级防护方案。KLEIN是专为资源受限设备设计的轻量级对称加密算法,在软硬件实现上皆具有良好的性能表现。KLEIN采用类似于AES的典型SPN结构以及相似的轮操作,容易遭受AES相似的侧信道攻击。我们研究发现KLEIN第一轮的S-box操作,泄漏了S-box输入汉明重量,我们利用该泄漏模型,使用多比特差分能量分析攻击DPA和相关能量分析攻击CPA成功地对KLEIN实施了攻击,其中DPA成功恢复64位的设备密钥需要6,200条功耗曲线,而CPA只需要不到2,000条功耗曲线。为了满足轻量级掩码防护的需求,我们首先基于查找表实现了一个极其轻量级的KLEIN抗侧信道攻击防护方案,随机化了第一轮S-box操作的输入中间结果,从而很好地抵抗一阶侧信道攻击。本方案实现的并行KLEIN-64掩码防护方案只需66%的额外面积开销,而串行KLEIN-64掩码防护方案需要55%的额外面积开销和33%的额外时间开销,是一种非常适合于普适设备的轻量级掩码方案。我们还研究了基于秘密共享的KLEIN掩码方案,该掩码方案高效、额外面积开销小,并且对一阶侧信道攻击是可证明安全的。并行的掩码型KLEIN-64面积开销是未防护KLEIN的6.18倍,时间开销是未防护KLEIN的2.5倍。而串行的掩码型KLEIN-64面积开销是未防护KLEIN的2.58倍,时间开销是未防护KLEIN的2.17倍。本文更重要的工作在于首次发现了基于MQ问题密码算法的侧信道泄漏,并首次成功对该类算法进行了侧信道攻击。QUAD是一族基于MQ方程构造的可证明安全的流密码。基于MQ问题构造的密码算法,除了具备抵御量子计算机算法攻击、算法实现占用硬件资源小适用于资源受限小设备的优点之外,由于其计算过程没有明显的功耗泄漏操作,且密钥长度特别长,而被密码学者们认为具有良好的抗侧信道攻击性质。侧信道攻击发展至今将近20年,仍然没有这方面成功的报道。然而我们的研究发现,基于MQ问题密码算法的串行实现在计算多项式的时候,每周期计算一个单项式并累加回写至寄存器,通过对寄存器存储操作的功耗进行分析,攻击者可以获得其秘密信息,进而攻破密码算法。我们分析了QUAD的侧信道泄漏操作,定义了串行QUAD的单比特功耗泄漏模型,使用单比特相关能量分析攻击(CPA)方法成功地对QUAD实施了攻击。由于对QUAD的单比特CPA攻击需要使用阈值来判断是否有峰值产生,而非传统CPA通过不同密钥假设之间的相似度比较来判断是否有峰值产生,在实际攻击中会很难评估阈值的大小。为此,本文提出了QUAD多比特功耗泄漏模型,综合考虑QUAD的相邻多个密钥比特相关计算对应的功耗泄漏。使用该模型实施多比特CPA,效果比单比特CPA更佳,同时解决了阈值的设定难题。与分组密钥不同,QUAD算法的密钥不停地更新,攻击者能获得的功耗曲线条数更加有限。在QUAD(160,160)运算中,攻击者最多只能获取320条多项式计算的功耗曲线,这对攻击算法的效率提出了更高的要求,为此我们研究了QUAD的模板攻击以及基于模板DPA攻击,从而在只有几条功耗曲线下也可以攻击成功,使得我们对QUAD的侧信道攻击评估更加具有现实可行的价值。同时本文首次针对基于MQ问题密码算法设计行之有效的抵御侧信道攻击的防护方案,提出了轻量级的掩码和隐藏两种对这类密码算法通用的防护方案。我们首先提出了一种对基于MQ问题密码算法通用的轻量级掩码防护方案,设计了一个掩码型乘法,对运算过程存入寄存器的中间变量进行掩码随机化,从而很好地抗击一阶侧信道攻击,该轻量级掩码方案在QUAD上的实现需要83%的额外面积开销和12.5%的额外时间开销。我们还提出了一种针对MQ问题通用的轻量级乱序隐藏防护方案,利用多项式计算中每个单项式的计算顺序随机打乱而不影响最后计算结果的特性,权衡了资源需求与抗侧信道攻击效果,提出了一个简洁而极其高效的隐藏方案。该轻量级隐藏方案在QUAD上的实现只需11.9%的额外面积开销和12.5%的额外时间开销,是一种非常高效的针对MQ问题通用的抗侧信道攻击防护方案。