一种代换-置换网络块加密中扩散层的二元线性变换方法

文档序号:7760826阅读:1066来源:国知局
专利名称:一种代换-置换网络块加密中扩散层的二元线性变换方法
技术领域
本发明涉及一种线性变换的方法,具体涉及一种应用于代换-置换网络块加密中 扩散层的二元线性变换方法。
背景技术
信息安全本身包括的范围很大,从安全性需求的角度来说涉及到信息的保密性、 完整性、可用性、认证性和不可否认性。其中,密码技术是保障信息安全的核心技术。密码 技术主要包括对称密码算法和非对称密码算法及协议。密码算法主要分为对称密码算法和 非对称密码算法两大类。对称加密算法指加密密钥和解密密钥相同,或知道密钥之一很容 易推导得到另一个密钥。通常情况下,对称密钥加密算法的加/解密速度非常快,因此,这 类算法适用于大批量数据加密的场合。对称密钥加密算法根据加密模式分为分组密码和流密码两大类。相对流密码算法 来说,分组密码算法不需要存储生成的密钥序列,所以适用于存储空间有限的加密场合。另 一方面,分组密码也是许多密码组件的基础,比如很容易转化为流密码和Hash函数。安全性是分组密码最重要的设计原则,它要求即使攻击者知道分组密码的内部结 构,仍不能破译该密码。针对分组密码的安全性设计原则,Shannon在其1949的论文中介 绍了一个新思想通过“乘积”来组合密码体制。所谓乘积密码就是采用m个函数(密码)
f2,…,fm的复合,其中每个&可能是一个代换或置换。Shannon建议交替使用代换和 置换两种方法,即他称之为混乱(confusion)和扩散(diffusion)的过程,破坏对密码系统 进行的各种统计分析。这种思想在现代密码体制的设计中十分重要,深刻影响着数据加密 标准DES、高级数据加密标准AES的设计。常见的乘积密码是迭代密码。典型的迭代密码定义了一个轮函数和一个密钥编 排方案,对明文的加密将经过多轮迭代。代换_置换网络SPN(substitution-permutation network)是一类特殊的迭代密码。代换-置换网络的轮函数包括三个变换代换、置换、密 钥混合。这里,密钥混合层通常将子密钥简单的异或到中间状态上;代换层,一般由若干个 S盒并置而成,它们是非线性部份,主要起混淆的作用同时也是密码安全性的重要保障;置 换层,也称扩散层,一般由一个置换或一个可逆变换构成,主要起扩散作用,多数情况下采 用线性变换。相对于代换层,对扩散层的讨论研究比较少,但经过密码分析者的长期研究发现 扩散层作为轮函数的一部分对整个密码安全性起着至关重要作用,良好设计的扩散层可以 使整个密码系统能更好地抵抗线性和差分攻击。扩散层的扩散特性由其分支数来衡量。分 支数越大,其抗击线性和差分攻击能力越强。在扩散层设计中,往往采用GF (2m)上的η阶 可逆矩阵来表示一个η维线性变换。当其变换分支数达到理论最大值η+1时,该扩散层被 称为最优的。在很多实际情况下,分支数未必能达到最大,例如密码算法Ε2和Camellia所使用 的扩散层所对应的线性变换矩阵均是8X8的二元矩阵。8X8的二元矩阵的分支数上界已经被证明为5,不能达到理论最优值9。Kanda等人找到了 10080个分支数为5的8X8的二 兀矩阵(MasayukiKanda, Youichi Takashima, Tsutomu Matsumoto, et al. A Strategy for Constructing Fast RoundFunctions with Practical Security Against Differential and Linear Cryptanalysis, SAC,98,LNCS1556,1999,pp. 264-279),他们的方法是按照一 定的限定条件由计算机程序进行搜索,该算法计算复杂性很大,且不能穷尽所有的情况。

发明内容
本发明的目的是,为代换_置换网络块加密结构的扩散层提供一种二元线性变 换,使得该变换在密码实现上不影响密码结构的抗攻击能力,又能提高运行效率。本发明对应的流程图如图1所示,采用的代换_置换网络块加密结构轮函数图如 图2所示,详细技术方案如下一、输入数据块在与密钥块做异或运算后通过代换层;代换层由8个并行的S盒组 成;原则上可以选用任意合适的S盒,本发明优先选用类似于AES分组密码中的S盒,即求 逆变换复合仿射变换所构成的变换作为S盒。二、8个S盒的输出结果合并为代换层的输出结果,设为一个η比特的数据块X,然 后通过扩散层L进行混合,L(X)即为轮函数输出数据。这里,扩散层L由L(X) =χΡ定义, 其中P为由下列方法构造的二元线性变换矩阵,该变换矩阵构造的方法包括如下步骤1)随机选取一个8阶拉丁方;2)对选取的拉丁方进行变换,使之成为一个每行每列汉明重量均为5的8X8的二 元矩阵,记为P ;所述变换方法可以为对矩阵P先模3,再模2,最后与8X8的全1矩阵做 异或运算;3)检测矩阵(Ρτ I)是否满足任意3列线性无关,若通过测试则转步骤4),否则转 步骤1);其中Pt表示矩阵P的转置矩阵,I表示8阶单位矩阵。4)检查测试矩阵P是否可逆,如果可逆则P即为一个合适的矩阵,算法结束;否则 转步骤1);所述测试矩阵P是否可逆的方法可以使用任意合适的方法,如基于高斯 消去法。利用本发明提供的技术方案,得到的8X8的二元线性变换矩阵作为扩散层用于 代换-置换网络块加密结构轮函数中仅需要异或运算即可实现,并且因为整个矩阵的汉明 总重量为40,与Camellia等密码中所使用的线性变换矩阵不同(其汉明总重量为44)。依照实际情形,本加密结构可以部分或全部实现到一张智能卡上。本发明的有益效果本发明为代换_置换网络块加密结构的扩散层提供了一种新 的二元线性变换方法,该方法实现逻辑简单,运行效率高,同时未损失密码结构的抗攻击能 力。


图1 本发明提供的产生线性变换矩阵的方法;图2 代换-置换网络块加密结构轮函数4
图3 实例中的线性变换所对应的数字逻辑电路图。 具体实施例下面通过实例对本发明做进一步的说明,但是需要注意的是,公布实施例的目的 在于帮助进一步理解本发明,但是本领域的技术人员可以理解在不脱离本发明及所附的 权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实例所公 开的内容,本发明要求保护的范围以权利要求书界定的范围为准。众所周知,生成6阶以上的所有标准拉丁方在实现方面是困难的,可以说是个历 史性难题。本实例提供的一种处理方法是先分析出四个重五行所具备的性质,按照此性质 先写出四个重五行,然后转化为8阶拉丁方的前四行,最后让程序运行出后四行拉丁方。比 如
权利要求
一种应用于代换 置换网络块加密中扩散层的二元线性变换方法,所述扩散层的数据来源于代换层,所述代换层由8个并行的S盒组成,其特征在于,所述扩散层L由L(x)=xP定义,其中x为代换层的输出数据,P为二元线性变换矩阵,该变换矩阵的构造方法如下1)随机选取一个8阶拉丁方;2)对选取的拉丁方进行变换,使之成为一个每行每列汉明重量为5的8×8的二元矩阵,记为P;3)检测矩阵(PT I)是否满足任意3列线性无关,若通过测试则转步骤4),否则转步骤1),其中PT表示矩阵P的转置矩阵,I表示8阶单位矩阵;4)检查测试矩阵P是否可逆,如果可逆则P即为一个合适的矩阵,算法结束;否则转步骤1)。
2.如权利要求1所述的变换方法,其特征在于,所述步骤2)中的变换方法为,对矩阵P 先模3,再模2,最后与8X8的全1矩阵做异或运算。
3.如权利要求1所述的变换方法,其特征在于,所述步骤4)中测试P是否可逆的方法 为高斯消去法。
4.如权利要求1所述的变换方法,其特征在于,通过所述变换方法得到的矩阵的汉明 总重量为40。
5.如权利要求1所述的变换方法,其特征在于,所述方法构造的线性变换的分支数为4。
6.如权利要求1所述的变换方法,其特征在于,该线性变换的实现电路所需要的异或 门为19个。
全文摘要
本发明提供了一种应用于代换-置换网络块加密中扩散层的二元线性变换方法。该方法主要是对8阶的拉丁方进行变换,使之成为一个每行每列汉明重量均为5的8×8的二元矩阵,然后检测矩阵是否满足任意3列线性无关,若通过测试,再检查测试该矩阵是否可逆,如果可逆则该矩阵即为一个合适的矩阵。本发明为代换-置换网络块加密中的扩散层提供了一种新的二元线性变换方法,该方法实现逻辑简单,运行效率高,同时未损失密码结构的抗攻击能力。
文档编号H04L9/00GK101944991SQ20101029289
公开日2011年1月12日 申请日期2010年9月27日 优先权日2010年9月27日
发明者张筱, 王文华, 王钊, 邱望洁, 郑志明, 郭贵凤, 高莹 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1