论文部分内容阅读
传统密码方案的主要目标是在黑盒攻击下保证机密信息的安全性,例如秘密密钥。在黑盒攻击模式下,攻击者只能对密码方案不同的输入输出具有访问权限。相反,白盒攻击模式则假设密码方案运行在一个不可信任的终端上,攻击者对算法的内部运行细节具有完全的控制能力。因此,传统意义下的密码方案在白盒攻击下已无法为机密信息提供保障。白盒密码学致力于研究在不可信任终端密码算法的安全实现,构造出在白盒攻击环境下能够顺利完成其加密、解密、认证等功能的密码算法。白盒密码的出现将现代密码学的安全理念向前推进了一大步,受到了越来越多的关注。目前白盒密码的基础理论还未形成一套完整的体系,同时对已知的白盒密码方案也陆续出现了许多攻击方法,因而还未有得到公认安全的白盒密码方案,所以白盒密码还有许多值得进一步研究的内容。本论文对白盒密码进行研究,在基础理论方面,我们对白盒密码的安全性基础进行了两点讨论并得出一些新的结论;在方案分析方面,我们对两种SMS4的白盒实现进行了攻击,在有效的时间复杂度内恢复出了密钥;最后,在方案构造方面,我们提出了两种不同的白盒密码方案,并在安全性和效率上对它们进行了详细的分析。我们的主要成果如下:1.针对Saxena等人在白盒密码基础理论上的一个重要进展:基于“白盒性”的否定结论和肯定结论,我们进行了两点讨论并得出了一些新的结论。我们的讨论说明,否定结论的成立与使用了不满足“具有辅助输入的虚拟黑盒性”的混淆器有关,因此我们得出不够安全的混淆器无法实现理想的白盒方案的结论以及白盒性与具有辅助输入的虚拟黑盒性在某种意义上是等价的结论;而肯定结论的成立则是误用了两种不同攻击模式下的安全概念,我们得出黑盒攻击模式下的安全概念不能直接使用在白盒攻击环境下的结论。2.我们融合了多种方法,对一个SMS4的白盒实现方案构造了一种攻击,能在低于O(247)的时间复杂度内恢复出轮密钥。在我们的攻击中,我们使用了合成相邻两轮的某些步骤、消去内部的网络化编码、构造仿射变换的代数式、求解方程、差分分析等方法,将SMS4的白盒实现中插入的随机变换逐个求出,从而求出轮密钥。3.我们基于Biryukov等人提出的仿射等价算法,对一个轻量级的白盒对称加密算法构造了一种攻击。首先我们将Biryukov等人的仿射等价算法增加了一些步骤,得到了一个调整后的仿射等价算法;再将轻量级的白盒对称加密算法的一些查找表合并,构造出仿射等价问题;最后使用调整后的仿射等价算法对我们的仿射等价问题进行求解。我们的攻击可以在低于0(249)的时间复杂度内提取出密钥。我们的攻击经过C++实现,多次的试验结果表明我们可以在很短的时间内恢复密钥。此外,我们提出了一种针对该白盒对称加密方案的改进建议,将方案中T-box两两合并,增加查找表的输入大小,从而使得攻击复杂度增加到O(292)。4.我们提出了一种基于SMS4架构的白盒密码方案,它采用了 SMS4的基本结构,并将SMS4分割为若干个步骤,并在每一步添加了随机选取的双射对输入输出进行编码,最后以查找表的形式来完成整个加密过程。我们并没有使用网络化编码,因而插入的随机项最后并不会抵消,所以我们的白盒密码方案与SMS4功能上并不是等价的,它不是SMS4的白盒实现,而是一个新的密码方案。我们的方案能够防止“方案提取”和“重组”两种攻击,并且只需占用少量的内存空间,具有更高的效率。5.基于非平衡的Feistel网络和ASASASA结构,我们构造了一种新的白盒加密方案。我们的方案不是已存在密码算法的白盒实现,而是一种全新的密码算法。由于使用了非平衡的Feistel网络,我们方案的分组长度是可变的,而同时占用空间需求却只随整个分组长度的增长呈线性增长的趋势。我们在ASASASA结构中将查找表大小固定为16比特,表中的仿射层和非线性层的大小一致,从而避免了针对ASASASA结构的攻击。而由于我们的方案不是已存在密码算法的实现,所以也避免了针对恢复已存在密码算法密钥的白盒攻击。同时,我们在修改弱白盒安全的基础上,提出了一种称为“关于等价密钥的白盒安全性”。经过分析可知,我们的方案在满足基本安全需求、抵抗已知攻击、满足我们的安全定义以及空间需求方面都具有良好的表现。