一种基于Logistic映射的S-box获取方法及获取装置与流程

文档序号:12067768阅读:693来源:国知局
一种基于Logistic映射的S-box获取方法及获取装置与流程

本发明涉及通信技术领域,尤其涉及一种基于Logistic映射的S-box获取方法及获取装置。



背景技术:

自密码算法lucifer中首次采用S-box以来,几乎所有经典的分组密码算法都基于S-box设计,并且该设计思想越来越广泛被应用于其它密码系统的算法中。具有良好密码特性的S-box(S盒)能够为算法抗差分攻击和非线性攻击提供很好的安全性保障,例如,AES的安全性就依赖于S-box的非线性结构。在混沌密码学中,通常采用混沌映射,通过多次迭代来设计非线性置换,非线性置换密码特性的好坏直接决定了密码算法的安全性。S-box是许多分组密码算法中唯一的非线性部件,它的密码强度决定了整个密码算法的安全性,其工作速度决定了整个算法的置乱速度。因此,一个好的S-box对于增强Feistel结构,SPN结构和IDEA结构密码算法的安全性起着至关重要的作用。

1975年,李天岩首次提出了混沌的概念,自此有关混沌理论的研究受到了广泛关注。混沌具有遍历性、初始状态敏感性和匀柔性、确定无序性以及结构复杂性。混沌的这种随机性和不可预测性,使得它在密码学中有着重要的研究意义。1989年,Matthews和Pobert等人首次把混沌理论应用于密码学,奠定了混沌密码学的重要基础。在混沌分组密码中,最重要的是对具有非线性的S-box的设计。有关混沌S-box的设计,国内外提出了很多方法,其中,最典型的是G.Jakimoski和Kocarev提出的一种四步构造混沌S-box的方法,并对基于此方法设计的分组密码作了差分分析和线性分析。2005年,唐国坪和廖晓峰通过迭代Logistic映射和离散Baker映射,对G.Jakimoski等人的设计方 法进行了改进。分析表明,尽管改进的S-box具有很好的密码学性能,但其非线性度和差分均匀度还不理想。



技术实现要素:

为解决上述技术问题,本发明的实施例提供了一种基于Logistic映射的S-box获取方法及获取装置。

本发明一方面提供了一种基于Logistic映射的S-box获取方法,所述基于Logistic映射的S-box获取方法包括以下步骤:

S1、利用Logistics映射对随机生成的初值X0产生一个混沌序列:X0,X1,…,Xn

S2、将所述混沌序列映射为一整数序列:Y0,Y1,…,Yn,所述整数序列的取值在0~255之间,并对所述整数序列按两个数一组进行分组,得到整数序列对{Yi+1,Yi},其中i∈[0,n/2];

S3、根据输入序列生成一个大小为256的初始表S-box,其中所述初始S-box中的元素S-box[j]∈{0,…,255},其中j∈[0,255];

S4、利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换,交换所述表S-box中元素在Yi和Yi+1位置的值,得到中间S-box,获取所述中间S-box的8个布尔函数的非线性度LP及输入输出差分分布DP;

S5、分析所述非线性度LP及输入输出差分分布DP是否满足以下条件:非线性度LP的最大值小于10且所述输入输出差分分布DP的最小值大于100,若满足条件,则将满足所述条件的中间S-box存储,否则返回步骤S4。

在一实施例中,所述步骤S1包括:

S11、随机生成一个初值X0

S12、根据下式对所述初值X0产生一个混沌序列X0,X1,…,Xn

Xn+1=AXn(1-Xn)

其中,X0∈(0,1);Xn∈(0,1);n为混沌序列的长度;A取 [3.5699456,4]区间内的实数。

在一实施例中,所述步骤S2包括:

S21、根据方程将所述混沌序列映射为0至255之间的整数集:Y0,Y1,…,Yn,其中M=256;

S22、将所述整数集中的数按以下方式两两分组:G(i)={Yi+1,Yi},i∈[0,n/2],得到整数序列对{Yi+1,Yi}。

在一实施例中,所述的基于Logistic映射的S-box获取方法还包括:在利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换之前,对所述初始表S-box按照如下方式初始化:Sbox[0]←0,Sbox[1]←1,…,Sbox[255]←255。

在一实施例中,当所述步骤S4中进行置换的次数达到n/2,且所得的非线性度LP及输入输出差分分布DP仍不满足所述步骤S5中的条件时,返回步骤S1。

本发明另一方面提供了一种基于Logistic映射的S-box获取装置,所述基于Logistic映射的S-box获取装置包括:

混沌序列生成单元,用于利用Logistics映射对随机生成的初值X0产生一个混沌序列:X0,X1,…,Xn

整数序列对生成单元,用于将所述混沌序列映射为一整数序列:Y0,Y1,…,Yn,所述整数序列的取值在0~255之间,并对所述整数序列按两个数一组进行分组,得到整数序列对{Yi+1,Yi},其中i∈[0,n/2];

初始表生成单元,用于根据输入序列生成一个大小为256的初始表S-box,其中所述初始S-box中的元素S-box[j]∈{0,…,255},其中j∈[0,255];

中间S-box参数获取单元,用于利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换,交换所述表S-box中元素在Yi和Yi+1位置的值,得到中间S-box,获取所述中间S-box的8个布尔函数的非线性度LP及输入输出差分分布 DP;

分析单元,用于分析所述非线性度LP及输入输出差分分布DP是否满足以下条件:非线性度LP的最大值小于10且所述输入输出差分分布DP的最小值大于100,若满足条件,则将满足所述条件的中间S-box存储,否则返回中间S-box参数获取单元。

在一实施例中,所述混沌序列生成单元包括:

初值生成模块,用于随机生成一个初值X0

混沌序列生成模块,用于根据下式对所述初值X0产生一个混沌序列X0,X1,…,Xn

Xn+1=AXn(1-Xn)

其中,X0∈(0,1);Xn∈(0,1);n为混沌序列的长度;A取[3.5699456,4]区间内的实数。

在一实施例中,所述整数序列对生成单元包括:

整数据获取模块,用于根据方程将所述混沌序列映射为0至255之间的整数集:Y0,Y1,…,Yn,其中M=256;

整数序列对获取模块,用于将所述整数集中的数按以下方式两两分组:G(i)={Yi+1,Yi},i∈[0,n/2],得到整数序列对{Yi+1,Yi}。

在一实施例中,所述的基于Logistic映射的S-box获取装置还包括:初始化单元,用于在利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换之前,对所述初始表S-box按照如下方式初始化:Sbox[0]←0,Sbox[1]←1,…,Sbox[255]←255。

在一实施例中,所述基于Logistic映射的S-box获取装置还包括一跳转单元,用于当所示中间S-box参数获取单元中进行置换的次数达到n/2,且所得的非线性度LP及输入输出差分分布DP仍不满足所条件时,返回所述混沌序列生成单元。

由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过迭代Logistic映射生成随机小数序列,映射得到大小在0到255范围内的整数序列,并将整数序列顺序两两分组,互换初始表中两两分组的位置,对初始表进行多次置换,完成S-box的重新构造,经验证该方案设计的S-box在抵抗差分分析和线性分析上具有良好的密码学性能,具有一定的推广价值和意义,进一步提高了S-box的非线性度和差分均匀度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例基于Logistic映射的S-box获取方法的流程图;

图2为本发明实施例混沌序列获取的流程示意图;

图3为本发明实施例整数序列对获取的流程示意图;

图4为本发明实施例基于Logistic映射的S-box获取装置10的结构示意图。

具体实施方式

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

实施例一

图1所示为本发明实施例基于Logistic映射的S-box获取方法的流程图。如图1所示,基于Logistic映射的S-box获取方法包括以下步骤:

S1、利用Logistics映射对随机生成的初值X0产生一个混沌序列:X0,X1,…,Xn

具体实施时,步骤S1可包括以下步骤,如图2所示:

S11、随机生成一个初值X0,该初值X0为实数;

S12、根据下式对所述初值X0产生一个混沌序列X0,X1,…,Xn

Xn+1=AXn(1-Xn)

其中,X0∈(0,1);Xn∈(0,1);n为混沌序列的长度;A取[3.5699456,4]区间内的实数,其精度为64位。

当系统参数A在大于等于3.5699456,小于等于4的实数区间取值时,该映射呈现混沌状态。尽管Xn具有随机性,但它是由确定性方程导出的,当初值X0确定后,Xn就已确定,即混沌序列具有内在的规律性。在本实施例中,取混沌数列的序列长度n=1200,该数值仅用于示例,并非对本发明的限制。

S2、将所述混沌序列映射为一整数序列:Y0,Y1,…,Y1200,所述整数序列的取值在0~255之间,并对所述整数序列按两个数一组进行分组,得到整数序列对{Yi+1,Yi},其中i∈[0,600],当序列结束时,序列对为{Y600,Y0}。

在一实施例中,步骤S2可包括如下步骤,如图3所示:

S21、根据方程将所述混沌序列映射为0至255之间的整数集:Y0,Y1,…,Y1200,其中M=256。

S22、将所述整数集中的数按以下方式两两分组:G(i)={Yi+1,Yi},i∈[0,600],得到整数序列对{Yi+1,Yi}。

S3、根据输入序列生成一个大小为256的初始表S-box,其中所述初始S-box中的元素S-box[j]∈{0,…,255},其中j∈[0,255]。

具体地,在利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换之前,对所述初始表S-box按照如下方式初始化:Sbox[0]←0,Sbox[1]←1,…,Sbox[255]←255。

S4、利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换,交换所述表S-box中元素在Yi和Yi+1位置的值,得到中间S-box,获取所述中间S- box的8个布尔函数的非线性度LP及输入输出差分分布DP。

S5、分析所述非线性度LP及输入输出差分分布DP是否满足以下条件:非线性度LP的最大值小于10且所述输入输出差分分布DP的最小值大于100,若满足条件,则将满足所述条件的中间S-box存储,否则返回步骤S4。

当重复所述步骤S4中的次数达到600,且所得的非线性度LP及输入输出差分分布DP仍不满足所述步骤S5中的条件时,返回步骤S1。

若需要生成下一个S-box,则返回步骤S1;若不需要生成下一个S-box,则结束。

本发明通过迭代Logistic映射,对初始表进行多次置换,开辟了一种新的混沌S-box获取方式,随着置换次数的增加,S-box的DP(输入输出差分分布)值和LP(非线性度)值逐渐趋于理想值。经过验证,利用本发明提供的方法获取的S-box的输入输出差分分布和非线性度均较佳,具有很强的抗差分攻击和非线性攻击能力。

评价一个S-box的安全性,主要通过非线性度和输入输出差分分布来度量,本发明设计方案仍然采用这两个度量值来衡量S-box的安全性,以下从非线性度和输入输出差分分布两个方面来详细对其安全性因素进行详细阐述。

非线性度LP:

令f(x):是一个n元布尔函数,称为f(x)的非线性度。其中,Ln表示全体n元线性和仿射函数之集;dH(f,l)表示f与l之间的汉明距离。

令是一个多输出函数,S的非线性度为

在线性密码分析中,关键的一步是构造单轮的有效线性逼近,而单轮线性逼近总是离不开S-box的线性逼近,因此,S-box的非线性度越大越好。通过 计算,S-box中8个布尔函数的非线性度分别是:102,102,106,102,106,102,104和104。很明显地,8个非线性度的值均大于102。而G.Jakimoski构造的S-box的8个布尔函数的非线性度分别是:106,100,100,98,108,104,106和104;利用唐国坪提供的方式获取的S-box的8个布尔函数的非线性度是:103,104,106,105,105,104,109和103。由此数据证明,利用本发明提供的方法所构造的S-box是非线性的,更能够抗“最佳线性逼近”攻击,非线性度较好。

输入输出差分分布DP:

令用于度量一个密码函数抗击差分分析的能力,是一个多输出函数,S(x)的输入输出差分分布为:

也可用差分逼近概率DP来表示输入输出的异或分布情况:

其中,所述x为所有可能输入的集合,所述2n是该集合的元素个数。事实上,DP所表示的是:给定一个输入差分△x,输出为△y的最大可能性。输入输出差分分布是针对差分密码分析而引入的,它用来度量一个密码函数抗击差分分析的能力。S-box的输入输出差分分布越小越好。

根据输入输出差分分布的计算公式,可求得利用本发明实施例获取的S-box的差分逼近概率是8,而已有的G.Jakimoski的方案其差分逼近度是12,唐国坪的设计方案差分逼近度是10,由此可以看出本发明的设计方案其差分逼近度更小,本发明提供的方法在输入输出差分分布方面表现比以往方案更好。

S-box是许多分组密码算法中唯一的非线性部件,它的密码强度决定了整个密码算法的安全性,其工作速度决定了整个算法的置乱速度。非线性度和 输入输出差分分布两个指标决定了S-box的安全性,由实验结果可以证明本发明的一种基于Logistic映射的S-box获取方法在安全性方面较以往方案更好。

实施例二

图4所示为本发明实施例基于Logistic映射的S-box获取装置10的结构示意图。如图4所示,所述基于Logistic映射的S-box获取装置10包括:混沌序列生成单元1、整数序列对生成单元2、初始表生成单元3、中间S-box参数获取单元4、分析单元5。

混沌序列生成单元1,用于利用Logistics映射对随机生成的初值X0产生一个混沌序列:X0,X1,…,Xn

在一实施例中,上述混沌序列生成单元1包括:初值生成模块11,用于随机生成一个初值X0;混沌序列生成模块12,用于根据下式对所述初值X0产生一个混沌序列X0,X1,…,Xn

Xn+1=AXn(1-Xn)

其中,X0∈(0,1);Xn∈(0,1);n为混沌序列的长度;A取[3.5699456,4]区间内的实数。

整数序列对生成单元2,用于将所述混沌序列映射为一整数序列:Y0,Y1,…,Yn,所述整数序列的取值在0~255之间,并对所述整数序列按两个数一组进行分组,得到整数序列对{Yi+1,Yi},其中i∈[0,n/2],当序列结束时,序列对为{Yn,Y0}。

在一实施例中,整数序列对生成单元2包括:整数据获取模块21,用于根据方程将所述混沌序列映射为0至255之间的整数集:Y0,Y1,…,Yn,其中M=256;整数序列对获取模块22,用于将所述整数集中的数按以下方式两两分组:G(i)={Yi+1,Yi},i∈[0,n/2],得到整数序列对{Yi+1,Yi},当序列结束时,序列对为{Yn,Y0}。

初始表生成单元3,用于根据输入序列生成一个大小为256的初始表S- box,其中所述初始S-box中的元素S-box[j]∈{0,…,255},其中j∈[0,255]。

中间S-box参数获取单元4,用于利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换,交换所述表S-box中元素在Yi和Yi+1位置的值,得到中间S-box,获取所述中间S-box的8个布尔函数的非线性度LP及输入输出差分分布DP。

分析单元5,用于分析所述非线性度LP及输入输出差分分布DP是否满足以下条件:非线性度LP的最大值小于10且所述输入输出差分分布DP的最小值大于100,若满足条件,则将满足所述条件的中间S-box存储,否则返回中间S-box参数获取单元。

在一实施例中,基于Logistic映射的S-box获取装置10还包括一初始化单元6,用于在利用所述整数序列对{Yi+1,Yi}对所述初始表S-box进行置换之前,对所述初始表S-box按照如下方式初始化:Sbox[0]←0,Sbox[1]←1,…,Sbox[255]←255。

在一实施例中,基于Logistic映射的S-box获取装置10还包括一跳转单元7,用于当所示中间S-box参数获取单元中进行置换的次数达到n/2,且所得的非线性度LP及输入输出差分分布DP仍不满足所条件时,返回所述混沌序列生成单元,重新生成一初值来获取S-box。

在实施例一中已对基于Logistic映射的S-box获取方法进行了详细阐述,在此不再赘述。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1