论文部分内容阅读
在白盒攻击环境(White-Box Attack Context)中,软件的执行过程对攻击者完全可见,运行在这种环境中的密码软件如果没有对密钥进行特殊的保护,攻击者通过观察或者执行密码软件很容易就可以获得密钥信息。白盒密码是针对这种情况提出来的,其目的是为了在白盒攻击环境里保护密钥,将密钥信息隐藏在密码软件的执行过程中,防止攻击者在白盒攻击环境中抽取出密钥。白盒密码的主要设计思想是:把密码算法进行混淆,使得攻击者无法得知具体的算法流程,进而达到保护密钥信息的目的。Chow等设计了DES、AES算法的白盒实现:把密钥隐藏在密码软件的执行过程中,整个算法的实现过程用查找表表示,使得攻击者无法获取任何的密钥信息。查找表的实现方法为白盒密码的实现提供了一个新的方法,但是,Chow等的白盒DES和白盒AES实现都因为设计上的不足被破译了。本文首先介绍了白盒攻击环境和白盒密码,Chow等的白盒AES的设计方法以及所受到的BGE的攻击技术,分析了Chow白盒AES设计方法的优点和不足。之后,提出白盒AES的一种安全实现方法、设计了SMS4算法的白盒实现,两种算法的设计方法是:将密码算法拆分成许多小模块,对每个小模块用随机选择的可逆仿射变换进行混淆,将混淆后的每个小模块用查找表以及仿射变换表示。白盒算法的执行过程可以通过查找表的查找、矩阵乘法以及异或计算完成。然后分别对白盒AES、白盒SMS4算法进行安全性分析。从白盒多样性以及白盒含混度方面来看,本文中的白盒AES算法以及白盒SMS4算法都可以抵抗各种暴力攻击以及旁路攻击方法,同时,他们还可以抵抗Chow白盒AES所受的BGE攻击,可以在白盒攻击环境中有效的保护密钥信息。本文中的白盒AES算法以及白盒SMS4算法可以在白盒攻击环境中有效的保护密钥信息,拓宽了AES算法和SMS4算法的应用领域。