论文部分内容阅读
在现如今的信息时代里,信息的存储、传递过程中的安全性成为人们非常关注的事情,而密码学的存在为信息的安全性提供了保障。分组加密算法是密码学中非常重要的组成部分,到目前为止,有很多具有重要意义的分组密码算法产生,例如数据加密标准DES算法、高级加密标准AES算法等。但随着智能设备的逐渐普及,物联网(IoT)、无线射频识别(RFID)、无线传感网络(WSN)等应用的安全性需求增加。因为这些设备对资源环境有极大的限制,原有的分组加密算法并不能够满足这一应用,故密码学家设计了轻量级分组密码算法,以适应资源受限的环境条件,如PRESENT算法、LED算法等。NUX算法是Bansod等人设计并提出的一种轻量级分组密码算法,其采用广义Feistel结构,共有31轮。NUX算法的分组长度为64比特,支持80比特和128比特两种长度的密钥。Bansod等人在设计文档中给出了对NUX算法的安全性分析,估计了 25轮的NUX算法的差分路线的概率为2-90,故而推断攻击的数据复杂度为290。同时估计了 25轮NUX算法的线性路线偏差最大为2-66,故而推断攻击所需要的明文量至少为2132。对全轮的biclique攻击,所需的数据复杂度为224,时间复杂度为2127.10次全轮加密。在本文中,我们利用NUX算法左侧两个分支和右侧两个分支的差分或线性掩码在传递过程中互不影响的特性,使用固定左侧或右侧的两个分支的差分值或线性掩码值为0的方法来减少搜素路线过程中的活性S盒数量,从而搜索得到了 NUX算法1-31轮的差分路线和线性路线。对于25轮的NUX算法,我们搜索得到的最佳差分路线概率为2-71,线性路线的最大偏差绝对值为2-41,均优于之前Bansod等人给出的结果。对于全轮算法,差分路线概率最优为2-88,线性偏差绝对值最优为2-50。利用搜索结果,我们使用概率为2-58的22轮的差分路线,通过在尾部添加七轮,对29轮NUX算法进行了差分攻击,攻击的时间复杂度为2121.73次29轮加密,数据复杂度为261,存储复杂度为296字节;同时我们使用偏差为2-30的19轮的线性路线,通过在其头部和尾部各添加三轮,对25轮NUX算法进行了线性攻击,攻击的时间复杂度为2126次25轮加密,数据复杂度为263.7,存储复杂度为270字节。此外,我们介绍了概率为1的全轮NUX算法的区分器,并利用该区分器对全算法进行区分攻击,攻击的数据复杂度为8,时间复杂度为8次全轮加密,且无存储。