论文部分内容阅读
密码分析学与密码编码学作为密码学的两个分支,有着矛和盾一样的关系,它们一直在相互促进对方的发展。代数分析是近年来密码分析学的研究热点之一,代数分析方法的研究对于密码分析学和密码编码学都有重要意义。本文首先归纳总结了针对分组密码算法的代数分析过程和方法。代数分析过程包括构建描述加密过程的代数方程组和求解代数方程组以恢复密钥。构建方程组的过程是通过将S盒的代数描述扩展成为整个加密过程的代数描述。本文针对典型的SPN型分组密码算法给出了一种中间相遇式方程构造方法。该方法可以在不提高方程次数的前提下,有效地减少中间变量的使用。求解代数方程组的方法主要有基于Gr?bner基的求解方法、基于可满足问题求解的方法等。在代数攻击中引入差分技术,可以构造出新的攻击形式,有效地提高攻击效率。本文介绍了差分在代数攻击中的各种应用形式,并且通过引入差分S盒将代数攻击扩展到不同的攻击场景中。PRINTCipher算法是2010年提出的一种针对印刷电路的新的轻量级分组密码算法。本文对PRINTCipher中的代数方程做了详细分析,使用MiniSAT攻击工具对低轮PRINTCipher加密算法进行了攻击实验,结果表明完整的PRINTCipher由于轮数较多可以有效地抵御代数分析。本文还介绍了针对PRESENT分组密码算法的代数攻击。采用S盒的表达式形式,通过使用相遇式构建方法,构建出多轮PRESENT加密中的代数方程组。文中还对简化的PRESENT算法进行了攻击实验。采用MiniSAT作为攻击过程中的求解工具,对4轮、6轮PRESENT加密进行实际攻击。可以在一分钟之内恢复4轮加密的所有密钥,数小时内恢复6轮加密的密钥。并且,通过引入差分思想,将有效攻击轮数提高到8轮。