论文部分内容阅读
序列密码体制是对称密码体制的一个重要分支。相对于分组密码,序列密码在硬件实现和加密速度方面有着明显的优势,所以,非常适合于大数据传输以及软、硬件在资源受限的场合使用。早期的序列密码研究重点是基于线性反馈移位寄存器序列的非线性序列发生器,如前馈、组合以及钟控等,并在此类序列的伪随机性以及发生器的相关分析方面有着丰富的研究成果。除此之外,还有许多序列密码算法都有较为成熟的研究成果,但由于缺少国际上公开的相关的标准,序列密码体制的设计远不及分组密码更加成熟。2000年启动的欧洲NESSIE计划和2004年启动欧洲序列密码计划(eSTREAM)大大地推动了序列密码体制设计和分析的发展。以欧洲序列密码计划胜出算法为代表的新一代的序列密码算法标志着非线性驱动和迭代成为序列密码算法设计的主流,并且它们也将成为未来序列密码算法分析的主要热点。组合数学中的组合设计理论在密码学、纠错码编码理论、计算机科学以及网络理论中有了越来越多的应用,同时也为计算机科学及其它处理离散结构的应用科学提供了理论基础。拟群理论是组合设计理论中经典的、而且未解决问题又比较多的研究领域,近年来,拟群理论在密码学中的应用得到迅速发展。近年来,出现了很多基于拟群的加密算法、哈希函数算法、消息认证算法等。Edon80是一种二进制加法同步序列密码,它是欧洲序列密码计划的候选算法之一。其优点是高度可并行性、高度可扩展性以及快速运算和对资源要求较低等。但是它存在两个弱点,一个是它存在周期小的可能性,一个是它不能抵抗密钥恢复攻击。这两个弱点使其在最后一轮选拔中被淘汰。本文分析了Edon80的这两个缺陷,并对Edon80的算法进行了改进,使改进后的算法克服了这两个缺陷。Chains80是另一款基于3-拟群的序列密码算法,它保持了Edon80的高可并行性、高可扩展性以及运算速度快的有点,克服了Edon80密钥序列周期短和不能抵御密钥恢复攻击的缺点。本文将用C``开发语言开发一套基于Chains80算法的加密软件系统。软件具有可以并行计算与对硬件要求低等优点。软件开发包括界面设计以及功能的实现。在实现加密运算过程中,为了提高程序的运行速度,采用了3大技术:并行计算、线程与文件映射。并行是Chains80的算法优势。(子)线程技术的原理是把文件分成几部分来同时进行加密,从而加快运算速度,该软件开了4个子线程,其中1个子线程用于设计进度条,另3个子线程与主线程用于加密运算。文件映射技术可以直接从源文件上读取数据,从而减少了计算机的IO操作,从而大大加快了加密速度。软件采用交互式界面,采用消息映射技术以实现拖动选择文件到编辑框的功能。本程序还采用了模式对话框与非模式对话框技术。在弹出对话框时,弹出的对话框能进行编辑,而主对话框不能被编辑,这样的对话框称为模式对话框,反之则为非模式对话框。本程序在进度条设置上采用非模式对话框,而在密码判断与文件选择上采用模式对话框。本文的结构安排如下:(1)第一章是本文的绪论部分,介绍了序列密码发展历程和当前研究的热点方向。(2)第二章描述Edon80的算法原理,分析了Edon80的缺陷,并在此基础上给出了Edon80的改进算法。(3)第三章介绍了基于3-拟群的序列密码算法Chains80的算法原理以及几个重要的算法模式;分析了Chains80相对于Edon80的不同之处以及Chains80的优点。(4)第四章介绍了基于Chains80而开发的软件的设计原理、算法程序以及软件的各个模块功能。(5)第五章是基于Chains80的序列密码软件系统在交互式界面下的详细使用说明。