您好, 访客   登录/注册

基于混沌的密码算法设计

来源:用户上传      作者: 程志山

  摘要:混沌系统对初始条件极端敏感,由于系统内部存在随机性,经过多次迭代后,会产生大量的类似随机数且较宽频谱具有优良的密码学性能的序列。
  本文的工作重点是用logistic公式产生的随机数来设计混沌加密算法,对混沌序列进行“折叠”处理,再根据哈夫曼树编码对其数值化,较大保留了混沌序列的伪随机性,作为原始的密钥。然后针对不同加密强度的需求设计“一组一密”加密算法。
  关键词:混沌;解密;数据加密;加密算法
  
   一、“一组一密”算法设计
  本文“一组一密”算法的思想是:通过一定的方法从logistic公式产生的混沌序列中提取出64位的密钥序列,将其折叠分割,用其组成分组密码算法的子密钥,使用分组密码算法对明文进行加密,每加密一组明文更换一组密钥,实现“一组一密”。
  对于传统的“一组一密”对明文的块的划分是固定的,而本文算法的思想是让64位的密钥多次折叠后成为分组密钥中的子密钥,同时明文的块的划分,随着密钥的多次折叠变化而变化。
  对十进制的十个元素进行哈夫曼编码。如表(1.1)得到十个数的不同字符编码。
  
  
  (2)明文以32位4字节为一组。需要折叠1次,折叠1次得到2个子密钥。
  
  
  这样根据密码折叠的次数越多,加密的强度也越大,要破译的难度也越大。由上面的四种分组加密的方法做分析。
  
  
  根据本文“一组一密”算法的设计,下面我们用下面的流程图来实现具体的整个加密和解密过程。
  一组一密加密过程。
  
  
  二、混沌序列数值化分析
  对一篇2000字符的文章进行十次不同密钥加密后的结果进行分析,明文ASII2码中0和1的个数,以及经过不同的混沌加密方式相同的密码进行加密后,0和1的个数。明文和密文ASII2码中0和1的个数
  
  
  对表1.3行分析,得到以下结果
  1、4种不同的混沌加密方法均可以减少明文中0与1的个数差距。
  2、密文中0与1的比例在减少即意味着该混沌加密算法防止统计分析攻击。
  通过上面的结论可得,该混东加密能够将文章中的内容“混淆”到密文中,而使统计学无法发挥作用,使其无法统计。
  三、字符分布分析
  对一篇2000字符的文章的字符加密前ASCII码分布进行分析,加密前字符分布情况。
  
  
  2000字符的文章的字符加密后ASCII码分布进行分析,加密后字符分布情况。
  
  
  对一篇长度约2000字符的英文文章的字符出现频率所作的统计图,图1.5给出相应加密文的字符出现频率图。明文字符主要为小写英文字符和空格符;而用本文算法加密后相应的密文字符却比较均匀地分布在ASCII码值0-127的整个字符空间,在ASCII码值128-255空间内几乎没有分布。可见本加密算法产生的密文均匀地扩散到这个空间中。因此,密文将具有较强的抗统计分析攻击的能力。
  
  参考文献:
  【1】 李海泉,李键.计算机网络安全与加密技术.科学出版社,2003.11.
  【2】管春阳,高飞.一种基于混沌序列的加密算法.北京理工大学学报,2003,23(3):363-366.


转载注明来源:https://www.xzbu.com/8/view-44034.htm