一种Grain型流密码的判别方法技术

技术编号:18429540 阅读:28 留言:0更新日期:2018-07-12 02:46
本发明专利技术公开了一种Grain型流密码的判别方法,引入平衡二叉树的结构存储特征函数的项,通过平衡二叉树的搜索、插入、删除操作,能够极大的提高函数处理效率;以项的次数为依据对项进行分类,起到分治的效果,缩减了平衡二叉树的规模:一方面减小了计算每个平衡二叉树对应单变量多项式的计算量,另一方面又减少了计算非线性移位寄存器特征函数的搜索空间;算法引入分治的思想,在求取平衡二叉树对应单变量多项式和计算非线性移位寄存器特征函数过程中都适合并行化运算,在并行化计算环境中,该判别方法可以处理更大规模的特征函数;判别方法具有普适性和可延展性。

【技术实现步骤摘要】
一种Grain型流密码的判别方法
本专利技术涉及一种Grain型流密码的判别方法。
技术介绍
物联网产业在产业升级、节能减排、拉动就业等方面发挥着重要作用。我国物联网已初步形成了完整的产业体系,具备了一定的技术、产业和应用基础,市场前景巨大。受各国战略引领和市场推动,全球物联网应用呈现加速发展态势,物联网所带动的新型信息化与传统领域走向深度融合,物联网在行业领域的应用逐步广泛深入。由于物联网应用场景的多样性,物联网产业的发展导致很多加密方法的使用。为应对物联网等资源(存储资源、计算资源、带宽资源)受限、通信高速的新一代安全通信需求,出现了一批以Grain算法为代表的为物联网运行提供计算安全性的密码算法,从而将物联网系统面临的总体风险降至最低。在这类新型的适用于物联网的轻量级流密码算法中,而Grain类算法是唯一具有可证明周期下界的密码算法。因此,物联网安全标准体系是一个渐进发展成熟的过程,有必要研判所用加密流密码算法是否是Grain型流密码算法,这对于算法安全性能评估特别是周期的定量分析具有重要价值。Grain型流密码是一类安全、高效、快速的流密码算法,在当前密码算法分析技术的前提下,这类算法的安全性分析较为成熟。因此对于通过各种方式得到的寄存器类型密码,判别其是否属于Grain型流密码对其安全性分析具有实用意义。Grain型流密码寄存器是长度达半的线性反馈移位寄存器到非线性反馈移位寄存器的有序级联。已有的研究方案大多是判断寄存器是否等效为非线性反馈移位寄存器到线性反馈移位寄存器有序级联,一方面这并不是Grain型这样的实际使用的流密码,另一方面这个类似问题主要处于理论研究阶段,尚未有高效实用的判别算法出现。
技术实现思路
为了克服现有技术的上述缺点,本专利技术提供了一种Grain型流密码的判别方法,给定刻画寄存器状态转移的自反馈特征函数,能够判断该寄存器构造的流算法是否为Grain型流密码算法,即,寄存器是否等效为长度过半的线性反馈移位寄存器到非线性反馈移位寄存器有序级联。本专利技术解决其技术问题所采用的技术方案是:一种Grain型流密码的判别方法,包括如下步骤:步骤一、对级数为n的移位寄存器的特征函数进行单项的有序分类,建立平衡二叉树,得到项的最高次数d,并将次数为i的项所在的平衡二叉树标记为Ti;步骤二、设置二元域上单变量多项式u=0;步骤三、计算Ti对应的单变元多项式ui,并记v1=u1;步骤四、更新单变量多项式u;步骤五、判断单变量多项式u的次数deg(u)是否小于n/2:若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令i=i+1,然后进入步骤六;步骤六、判断i是否大于d:若否,则返回步骤三;若是则进入步骤七;步骤七、构造U为u对应的特征函数,构造V为u/u1对应的特征函数,令i=2;步骤八、标记平衡二叉树标记Ti为T;步骤九、判断T是否为空:若否,则进入步骤十;若是,则令i=i+1,然后进入步骤十二;步骤十、搜索T中的最小叶子节点,记为t;步骤十一、判断t的变量中最大下标是否超过n-deg(u),若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令V=V+t,同时更新T,然后返回步骤九;步骤十二、判断i是否大于d:若否,则返回步骤八;若是则判定输入的移位寄存器是Grain型流密码,等价于U到V所刻画的两个移位寄存器联接,输出“是,V,U”,然后进入步骤十三;步骤十三、判别过程结束。与现有技术相比,本专利技术的积极效果是:本专利技术提出了一种Grain型流密码的判别方法,其主要优点是:(1)引入平衡二叉树的结构存储特征函数的项。通过平衡二叉树的搜索、插入、删除操作,能够极大的提高函数处理效率。(2)以项的次数为依据对项进行分类,起到分治的效果,缩减了平衡二叉树的规模。一方面减小了计算每个平衡二叉树对应单变量多项式的计算量,另一方面又减少了计算非线性移位寄存器特征函数的搜索空间。(3)算法引入分治的思想,在求取平衡二叉树对应单变量多项式和计算非线性移位寄存器特征函数过程中都适合并行化运算。在并行化计算环境中,该判别方法可以处理更大规模的特征函数。(4)判别方法具有普适性和可延展性。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为Grain流密码示意图;图2为本专利技术的判别方法的流程图。具体实施方式如图1所示,Grain型流密码是指其寄存器等价于一个线性移位寄存器(LFSR)到一个非线性移位寄存器(NFSR)的级联,且该线性移位寄存器(LFSR)的存储空间占到整个寄存器存储空间的至少一半。一种Grain型流密码的判别方法的具体过程如图2所示,包括如下步骤:输入:输入移位寄存器的级数n以及描述该移位寄存器的特征函数。(说明:变量按照字典排序定义序关系x0<x1<…<xn,单项的序由两者首先相异的最高变量自然延伸定义,例如x2x0<x2x1。一个n级移位寄存器的特征函数为二元域上的多变量布尔函数,且按照上述序关系下最高项为xn。如x3+x2x1+x1+x0是一个3级移位寄存器的特征函数。一个项的次数为出现变量的个数。例如x2x1的次数为2。)步骤1:特征函数单项的有序分类。获取特征函数的所有项,同时按照次数分类,对每个同次数的项集合按照上述序关系建立平衡二叉树,同时得到项的最高次数d。次数为i的项所在的平衡二叉树标记为Ti。(说明:即建立了平衡二叉树T0,T1,…,Td,且Ti的叶子节点刚好为特征函数的i次项。注意到T0为空或者只有1个节点。)步骤2:设置二元域上单变量多项式u=0。步骤3:针对次数i从1到d逐个完成下述操作。进入步骤3.1。步骤3.1:计算Ti对应单变元多项式ui。计算规则为:如果Ti有奇数个叶子节点,ui=xi;如果Ti有偶数个叶子节点,ui=0。并记住v1=u1。步骤3.2:更新单变量多项式u,计算u=gcd(u,ui),这里gcd是取二元域上最大公因式。步骤3.3:如果deg(u)<n/2,这里deg(u)是单变量多项式u的次数,那么进入步骤6.2。否则进入下一个Ti操作直到Td完成步骤3.1-3.3(即i增加1,进入步骤3.1)。最后i>d时进入步骤4。步骤4:构造U为u对应的特征函数,即将u的次数改为变量下标。例如,x3+x2+1对应x3+x2+x0。如果T0非空,U=U+1。构造V为u/u1对应的特征函数。步骤5:针对次数i从2到d逐个完成下述操作。进入步骤5.1。步骤5.1:标记平衡二叉树标记Ti为T。步骤5.2:如果T为空进入下一个Ti操作直到Td完成(即i增加1,进入步骤5.1),最后i>d时进入步骤6.1。如果T非空,进入步骤5.3。步骤5.3:搜索t为T中的最小叶子节点。步骤5.4:如果t的变量中最大下标已经超过n-deg(u),那么进入步骤6.2。否则进入步骤5.5。步骤5.5:更新特征函数V=V+t。根据u系数更新T,更新结束后进入步骤5.2。设u的非零项次数为a1,a2,…,ak。平衡二叉树T更新的具体过程如下两步:(1)根据t得到k个项,每个项分别由t的每个变量下标增加a1,本文档来自技高网
...

【技术保护点】
1.一种Grain型流密码的判别方法,其特征在于:包括如下步骤:步骤一、对级数为n的移位寄存器的特征函数进行单项的序分类,建立平衡二叉树,得到项的最高次数d,并将次数为i的项所在的平衡二叉树标记为Ti;步骤二、设置二元域上单变量多项式u=0;步骤三、计算Ti对应的单变元多项式ui,并记v1=u1;步骤四、更新单变量多项式u;步骤五、判断单变量多项式u的次数deg(u)是否小于n/2:若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令i=i+1,然后进入步骤六;步骤六、判断i是否大于d:若否,则返回步骤三;若是则进入步骤七;步骤七、构造U为u对应的特征函数,构造V为u/u1对应的特征函数,令i=2;步骤八、标记平衡二叉树标记Ti为T;步骤九、判断T是否为空:若否,则进入步骤十;若是,则令i=i+1,然后进入步骤十二;步骤十、搜索T中的最小叶子节点,记为t;步骤十一、判断t的变量中最大下标是否超过n‑deg(u),若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令V=V+t,同时更新T,然后返回步骤九;步骤十二、判断i是否大于d:若否,则返回步骤八;若是则判定输入的移位寄存器是Grain型流密码,等价于U到V所刻画的两个移位寄存器联接,输出“是,V,U”,然后进入步骤十三;步骤十三、判别过程结束。...

【技术特征摘要】
1.一种Grain型流密码的判别方法,其特征在于:包括如下步骤:步骤一、对级数为n的移位寄存器的特征函数进行单项的序分类,建立平衡二叉树,得到项的最高次数d,并将次数为i的项所在的平衡二叉树标记为Ti;步骤二、设置二元域上单变量多项式u=0;步骤三、计算Ti对应的单变元多项式ui,并记v1=u1;步骤四、更新单变量多项式u;步骤五、判断单变量多项式u的次数deg(u)是否小于n/2:若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令i=i+1,然后进入步骤六;步骤六、判断i是否大于d:若否,则返回步骤三;若是则进入步骤七;步骤七、构造U为u对应的特征函数,构造V为u/u1对应的特征函数,令i=2;步骤八、标记平衡二叉树标记Ti为T;步骤九、判断T是否为空:若否,则进入步骤十;若是,则令i=i+1,然后进入步骤十二;步骤十、搜索T中的最小叶子节点,记为t;步骤十一、判断t的变量中最大下标是否超过n-deg(u),若是,则判定输入的移位寄存器不是Grain型流密码,输出“否”,然后进入步骤十三;若否,则令V=V+t,同时更新T,然后返回步骤九;步骤十二、判断i是否大于d:若否,则返回步骤八;若是则判定输入的移位寄存器是Grain型流密码,等价于U到V所刻画的两个移位寄存器联接,输出“是,V,U”,然后进入步骤十三;步骤十三、判别过程结束。2.根据权利要求1所述的一...

【专利技术属性】
技术研发人员:王林赵伟申兵周宇汤殿华穆道光熊维范佳李路阳
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1