1.一种基于分形排序向量S盒的混沌密码系统,其特征在于,包括:混沌密码系统,所述混沌密码系统包括基于分形排序向量的S盒、基于明文信息数据的密钥生成器及基于分形排序向量的S盒的混沌密码算法;
所述基于分形排序向量的S盒的构造方法包括分形排序向量的构造方法及基于分形排序向量的S盒为信息数据的数值改变的扩散方法;
分形排序向量,是在排序向量的基础上提出的;
基于明文信息数据的密钥生成器,将明文信息数据依靠Hash函数得到Hash序列,再由Hash序列转化方法将16进制的序列转化为密钥,获得与明文信息紧密相关的混沌加密算法的密钥,进而提升密钥的安全性和算法抵抗差分攻击的能力;
基于分形排序向量的S盒的混沌密码算法,包括置乱过程和扩散过程;
所述分形排序向量的构造方法包括以下步骤:S11:设置初始排序向量 , 由正整数1、2、3、4组成, 长度为4且其中的元素不重复;
S12:计算出向量子段 , ;
其中: 表示向量 的第 个子向量;
表示向量 中的第 个元素;
S13:将 、 、 、 依此组成长度为 的向量;
S14:将向量 中的元素按由小到大的序次,依次标记大小序号,由这样的序号组成向量 为分形排序向量;
S15:在已知分形排序向量 的条件下,计算出向量子段, ;
是大于2的正整数,用于标记分形排序向量的迭代次数,进而区分每一次迭代的结果;
S16:将 、 、 、 依此组成长度为 的向量;
S17:将向量 中的元素按由小到大的序次,依次标记大小序号,由这样的序号构成分形排序向量 ;
S18:重复S15、S16及S17,得到适当长度的分形排序向量;
S19:结合实际需求和适当的迭代次数 ,得到合适的长度的分形排序向量FSV;
所述基于分形排序向量的S盒由两个序列构建,这两个序列由分形排序向量中的元素计算得出,具体步骤如下:S21:设置初始排序向量 ,规定迭代次数 ;
是大于2的正整数,用于标记分形排序向量的迭代次数,与 的含义相同;
S22:按分形排序向量的迭代算法计算 ;
S23:随机选择 32 个小于 的不同正整数 ,将这32个不同的正整数排列并组成一个向量 ;
S24:计算第一个8bit序列向量 ,其中 的取值与分形排序向量中的指定元素相关;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
S25:计算第二个8bit序列向量 ,其中 的取值与分形排序向量中的指定元素相关;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时,取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时,取值为1,否则为0;
当 中第 个整数与第 个整数的商大于1时, 取值为1,否则为0;
S26:根据S24和S25计算出的两个序列和AES方法,得到基于分形排序向量的S盒;
所述基于明文信息数据的密钥生成器,将源数据经hash函数运算得到的16进制的序列转化为密钥,用于密码系统中的信息数据的加密和解密,其处理步骤如下:S31:读取源信息数据Q;
S32:使用Hash函数计算Q得到的16进制的序列记为向量 ;
S33:计算向量 的长度记为 ;
S34:使用连续异或运算,计算出中间变量 , ,L为向量 的比特长度,为累积异或的次数标识;
S35:应用中间变量 ,计算第一个密钥 ;
S36:计算第二个密钥 ;
S37:计算第三个密钥 ;
S38:计算第四个密钥 ;
根据上述步骤可以得到密钥 ,其中, 被用于混沌密码系统的混沌系统的初始值,而 便是为了保障混沌系统达到混沌状态的删除的前段序列的长度;
所述基于分形排序向量的S盒的混沌密码算法如下:S41:读取明文信息数据 ,计算明文信息数据长度 ;
S42:根据密钥生成器得到密钥 ;
S43:设置初始排序向量,采用所述分形排序向量的构造方法得到恰当长度的分形排序向量 ,按基于分形排序向量的S盒构造方法,得到S盒B;
S44:以 为初始值,带入混沌系统,得到删除前 个元素后长度 为的两个混沌序列 和 ;
S45:求得混沌序列 中各元素的升序排序位置索引并记为 ;然后将明文信息数据 按和 作为像素位置置乱索引进行置乱得到置乱数据 ;
S46:将混沌序列 的进行混沌数值整数化并映射到像素域,可得 ,其中mod表示取余函数, 表示向上取整运算;
S47:应用S43构造出的B和由S46求得的T对置乱后的数据 进行扩散,得到密文数据;
根据以上步骤即可实现明文信息数据到密文数据的加密转换,从而保护明文信息数据的安全。