李聪
(北方民族大学 计算机科学与工程学院,宁夏 银川 750021)
0 引 言在当今信息化革命发展进程中,信息占据了越来越重要的地位,但是在信息传递过程中不可避免地带来信息泄露的困扰,因此信息安全日益受到人们的广泛关注。信息安全主要研究的是如何解决网络环境中的安全威胁以及安全防护问题。密码学作为信息安全领域的研究核心,其主要分为密码分析学以及密码编码学两个方向。密码编码学主要侧重于研究如何优化密码算法,其核心是在数学公式的基础上完成密钥的产生以及信息的转换。密码分析学则与之相反,其主要研究如何破解密码算法或者密钥,从而达到信息窃取的目的。传统的密码分析学主要集中在对密码算法进行破解上,并对输入输出等数据辅之以监听等手段,在流程内实现攻击。而侧信道攻击,其核心思想是通过加密软件或硬件运行时产生的各种泄露获取密文信息,通过分析秘密信息与侧信息之间的依赖关系进行侧信道攻击。
国际标准Common Criteria 被称为通用标准(CC),用于评估IT 产品和系统的安全性能,评估结果有助于消费者确定IT 产品或者系统对于其预期应用是否足够安全,以及其使用中隐含的安全风险是否可以容忍,然而目前主流的密码产品测评机构均将侧信道攻击的防护能力作为衡量密码产品安全性的主要指标。
1 侧信道攻击方法与分类1996年Paul Kocher 等学者首次提出了侧信道攻击,翻开了密码分析学领域的新篇章。侧信道攻击是以密码算法为核心,但其与密码算法执行所依托的软硬件平台密不可分,例如中央处理器、Cache 缓存器、逻辑运算部件、集成电路等硬件设备和链接硬件设备与上层应用软件的操作系统等,共同承载着密码算法的运行。我们将侧信道攻击按照攻击方法进行分类总结为计时攻击、功耗分析、故障分析、电磁分析以及Cache攻击五个方面,并讨论了上述攻击中所用到的模型。理论模型:
(1)通常密码系统在运行过程中所呈现出来的秘密信息与侧信息之间的模型为:=((,))+,其中为密码算法的输入,为密钥信息,为噪声,(,)为假设侧信道信息(如假设功耗),为(,)到真实侧信息的映射。
(2)文献[8]提出了基于信息熵的RSA 时间信息泄露模型,其中为密钥,为密文,为采样时间,为时间信息泄露函数,最终用信息熵概念量化通道泄露函数进行建模为:
表1从攻击方法、攻击手段/原理、攻击对象/平台三个方面总结了近年来的侧信道攻击发展趋势。
表1 侧信道攻击方法
2 RSA 计时攻击RSA 公钥密码算法是Rivest、Shamir 与Adleman 三位学者于1978年提出的,是目前应用最为广泛的公钥密码算法之一。RSA 算法主要通过计算=mmodn 完成加密,计算=mmodn 完成解密,其中为明文,为密文,为模,(,)为公钥对,(,)为私钥对。对RSA 实现进行快速模幂运算的算法主要有“平方—乘法”算法、蒙哥马利算法、中国剩余定理或引入并行的模乘线程来提高模幂运算速度。
Paul Kocher 在1996年首次提出了计时攻击的概念,其用数学理论证明了计时攻击的可行性,并对Diffie-Hellman、DSS、RSA 进行计时攻击破解分析。计时攻击是侧信道攻击中的一种,通过获取在不同输入下的每个操作的执行时间从而提取有关设备平台的关键信息,该时间可能会因为操作不同、输入数据的差异以及运行环境属性不同而存在差异。虽然现阶段随着量子计算密码的发展,但其仍不能对1024-bit 的RSA 密码破解构成威胁。RSA 计时攻击原理如图1所示。
图1 计时攻击原理
2.1 计时攻击方法RSA 计时攻击通过分析模幂运算过程中条件分支语句运行时间不同来区分比特1 和比特0,通过获取运行时间进行统计分析从而破解私钥。“平方-乘法”算法描述如算法1(a)和算法1(b)所示,分别为从左至右和从右至左平方乘算法两种。
本文以算法1(b)展开实验,通过分析可知当私钥位为1 时执行语句4,私钥位为0 时执行语句6,模乘运算的时间远大于赋值运算,我们获取时间运行数据进行方差运算破解私钥。根据Kocher 假设每个私钥位运行时间是相互独立的,猜测正确位较比于猜测错误位减少更多的方差,其攻击步骤为:
(1)用条密文对算法进行解密,获取每条密文解密总时间T(1 ≤≤)。
(2)给定两个测试私钥,测试私钥与真实私钥二进制位长度相同,均为,从右向左进行攻击,两条测试私钥高位任意,低位攻击过的私钥位固定,但当前攻击位不同,比较当前攻击位方差减少情况,方差减少多得即为猜测正确。
2.2 结果分析为了评估RSA 密码核时间侧信道。本文以(Intel(R)Xeon(R) Gold 6154 CPU @ 3.00 GHz双核处理器,256 GB内存,1 TB 固态)Linux 操作系统为主要测试平台,利用OpenSSL库生成测试向量(RSA 密钥和模)。其时间数据如图2所示,比特1 时间为(150 000~200 000)时钟周期之间,比特0时间在200 时钟周期以内。计时攻击结果如图3所示。
图2 时间统计
图3 攻击成功率
3 防御对策常见的侧信道防御技术包括:随机掩码,该技术是通过将随机数添加到加密算法的中间过程中,从而改变侧信道信息泄露和密钥之间的依赖关系,因此攻击者则无法还原出正确的密钥;功耗平衡,此种方法为了消除侧信道信息泄露和密钥之间的依赖关系,通过将侧信道泄露的信息特征进行隐藏,从而使攻击者难以捕捉侧信息的泄露;无效操作,此种方法主要是通过在特定的攻击点周围添加无效操作,或者在密码算法实现过程中添加无效操作或者延时干扰,其基本原理也是破坏侧信息同密钥之间的依赖关系。
4 结 论本文对近年来典型以及新兴的侧信道攻击成果进行了总结。首先介绍了常见的攻击方法,然后将各类攻击方法作为分类目标,阐述了其中所用到的各类攻击手段和作用平台,最后以RSA 计时攻击为例,演示了时间侧信道信息泄露途径。侧信道攻击应用场景逐渐扩大,其攻击手段也不断丰富,对于加强侧信道研究以保护信息泄露刻不容缓。