论文部分内容阅读
随着互联网、物联网的蓬勃发展,信息载体呈现移动化和小型化的发展趋势。资源受限条件下的信息安全要求也越来越强烈。为了适应当下更高速、更精细的加密需求,对密码算法设计综合性能更出色的组合逻辑电路具有重要意义。在各类密码体制中,虽然设计细节不同,但是许多组成部件却是类似的,甚至是相同的。比如用来达到混淆目的的S盒,用来达到扩散目的的线性变换等。如果能给出这些组件的一般的优化方法,那么大多数密码算法的实现就比较容易了。本文主要研究了密码算法中两类组成部件(线性部件以及类AES S盒)的实现优化方法。从算法和代数理论两个层面进行分析,对本领域的一些设计方法进行改进,取得了如下研究成果:1.提出了适用性更广的线性组件优化算法(SLP算法)。Boyar和Peralta等人提出的BP算法是用于解决较大规模线性组件实现优化问题的主要方法。本文通过采用一种新的k步捆绑的更新策略对经典的BP算法进行了改进。该策略可以根据不同的问题规模进行参数的调整,从而具有更强的适应性。同时,利用节点的零和关系,对算法中距离函数的计算进行了简化,从而提高了算法的整体效率。本文将改进的算法应用到一些常见的线性组件,得到了较前人更好的实现方案。其中,给出了AES列混合深度为3,异或数仅为103的实现方案,是截至目前已知的AES列混合深度最低条件下异或数最少的实现方案。2.解决了塔域(复合域)方法中所有转换函数对的结构和计数问题,并给出了一般构造方法。通过研究两个p~n元有限域之间的保持乘法逆运算的转换函数对所具有的一般结构,证明了塔域方法中的保持乘法逆的转换函数对有且仅有n(p~n-1)个,并进一步给出了构造方式。通过扩大线性转换对和塔域结构中多项式的选择范围,使得可从更大的范围内搜索出更易实现的变换。3.提出了减小电路深度的优化方法(或算法)。针对小规模的非线性部件,通过减小不必要的节点个数并支持选择器操作,提出了一种深度优先的搜索算法;针对多个串联模块,提出了通过整体考虑相邻模块的实现以减少整体延迟的思想和方法,从而在一定程度上避免了独立优化造成的不必要的延时。4.给出了一系列类AES S盒的更好的实现方案。通过综合利用本文提出的各种技术,包括SLP算法、改进的复合域方法以及减小电路深度的优化方法(或算法)等,对类AES S盒,进行了组合电路设计。一方面,延续Boyar等人的工作,在基{XOR,AND,NOT}上对AES S盒进行组合逻辑方案设计,得到了深度更小、门数量更少的AES S盒实现方案。同时,也使用类似的方法给出了更好的SMS4 S盒实现方案。另一方面,对工艺相关的AES S盒实现方案进行了设计。首先利用支持选择器的搜索算法对Ueno等人提出的乘法逆电路进行了改进,得到了深度更低、面积更小的GF(256)乘法逆电路。进一步,利用提出的GF(256)乘法逆电路,设计了综合实现效率更高的AES S盒和双向AES S盒的组合电路。