基于线性移位寄存器的流密码算法与实现 联系客服

发布时间 : 星期四 文章基于线性移位寄存器的流密码算法与实现更新完毕开始阅读c45c2a9b84868762caaed53c

深圳大学本科毕业论文—基于线性移位寄存器的流密码算法与实现

LFSR1 1{Sk} 多路复合 LFSR2 {S} 2kLFSR3 3{Sk} 选择控制

图6 GEFFE发生器

Geffe序列生成器序列生成器最基本得结构是由3个LFSR组成的,其中LFSR2作为控

制生成器使用,当LFSR2输出为1的时候,LFSR2和LFSR1连接,当LFSR2输出为0的时候,LFSR2与LFSR3连接。

3 流密码算法的设计与分析

流密码是现代密码学的一大重要分支,它的加密算法就是由明文序列与密钥序列进行异或运算从而得到密文序列,反过来再由密文序列与密钥序列作异或运算便重新得到明文序列。其算法简单,而且具有易实现、无延迟、通信效率高等优点。但是,流密码算法也存在其弊端,当攻击者获得部分明文和对应的密文时,很容易求得其对应的密钥序列,同样当攻击者得到密钥序列和对应的密文时,就可以恢复出相应的明文。正是根据这一特性,由部分明文和对应的密文得到部分密钥序列,再根据这部分密钥序列试图恢复整个密钥序列,从而

[5]

达到破译密文的目的。

3.1 密钥流的设计原理与结构

在本文的设计中,将借鉴Geffe生成器的结构设计,采用五个线性移位寄存器和非线性结构的特点,令所设计出的结构足够安全。

下图为密钥流的结构图。其中,初始密钥K1K2K3K4K5由加密者决定,为了系统的安全性,初始密钥采用不同级数,且最好是互素的,这样能给密码分析者的破译带来极大的难度,极大的增加系统的安全性和隐秘性。

第 10 页 共 32 页

深圳大学本科毕业论文—基于线性移位寄存器的流密码算法与实现

LFSR1 ? LFSR2 ?? LFSR4 ?LFSR3 ???密钥流 LFSR5

图7 密钥流的结构图

① LFSR1、LFSR2、LFSR3、LFSR4、LFSR5工作,将输出的密钥序列放入x*y维矩阵中,得到c1(i,j),c2(i,j),c3(i,j),c4(i,j),c5(i,j)。

② LFSR1、LFSR2、LFSR3将构成第一个Geffe序列,将初始密钥k1k2k3输入LFSR1、LFSR2、LFSR3中,通过Geffe生成器产生一个新的密钥序列temp1。

③将temp1序列放入x*y维矩阵中,得到加密矩阵coord_0。

④ coord_0、LFSR4、LFSR5将构成第二个Geffe序列,将初始密钥k4k5输入LFSR4、LFSR5中,通过Geffe生成器产生一个新的密钥序列temp2。

⑤将temp2序列放入x*y维矩阵中得到加密矩阵coord_1。 ⑥coord_1与c1、c2、c3、c4、c5进行异或得到最终密钥流k。

3.2 设计标准

通过研究密码学的基础知识和流密码的基础原理,为了设计一种实用的流密码,设计的密钥生成器,应该满足下列几个基本要求:

①满足图3的密钥流生成器的结构,即由LFSR和非线性序列构成的密钥生成器,这样才足够的安全和隐秘,不容易被破解;

②结构中所用的LFSR都应当满足本原多项式,即所用的LFSR产生的流密钥都是M序列,这样才能够把周期最大化,形成一种伪随机序列;

③采用的多个LFSR都应该使用不同的级数,这样也能加强密钥的安全和隐秘; ④为了加强密钥的可靠性,在加密过程中将加入明文序列,这样能够混淆密码分析者分

第 11 页 共 32 页

深圳大学本科毕业论文—基于线性移位寄存器的流密码算法与实现

析密码的思维,使得密钥更加难以破解

[11]

3.3 LFSR的结构

①LFSR1采用满足41级本原多项式的线性移位寄存器,其周期T1=2-1。AI为LFSR5的初始密钥,假设LFSR5 的初始密钥序列为

41

k1?(a1,a2,?,a40,a41),且LFSR5 满足41级本

413R(x)?x?x?1,则输入初始序列之后LFSR1输出序列K1。 原多项式

②LFSR2 采用满足18级本原多项式的线性移位寄存器,其周期T2=2-1。ai为LFSR2的初始密钥,假设LFSR2 的初始密钥序列为k2?(a1,a2,?,a17,a18),且LFSR2 满足18级本原多项式R(x)?x18?x11?1,则输入初始序列之后LFSR2输出序列K2。

③LFSR3 采用满足35级本原多项式的线性移位寄存器,其周期T3=2-1。ai为LFSR3的初始密钥,假设LFSR3 的初始密钥序列为k3?(a1,a2,?,a34,a35),且LFSR3 满足35级本原多项式R(x)?x35?x2?1,则输入初始序列之后LFSR3输出序列K3。

④LFSR4 采用满足17级本原多项式的线性移位寄存器,其周期T4=2-1。ai为LFSR4的初始密钥,假设LFSR4 的初始密钥序列为k4?(a1,a2,?,a16,a17),且LFSR4 满足17级本原多项式R(x)?x171735

18

?x14?1,则输入初始序列之后LFSR4输出序列K4。

7

⑤LFSR5 采用满足7级本原多项式的线性移位寄存器,其周期T5=2-1。ai为LFSR5的初始密钥,假设LFSR5 的初始密钥序列为k5?(a1,a2,?,a6,a7),且LFSR5 满足7级本原多项式R(x)?x?x?1,则输入初始序列之后LFSR5输出序列K5。

763.4 小结

本次设计使用了5个LFSR,所以周期为T=T1T2T3T4T5 =(2-1)*(2-1)*(2-1)*(2-1)7

*(2-1),所以周期十分之长,使得想要通过截获一部分密钥序列并且获得周期来破译密码成为一件不可能的事情。并且Geffe序列生成器的应用,通过线性序列以及非线性序列的结合,使得系统的破译变得更加复杂。

但是本设计也有缺点。就是周期的过长使得加密时间长,另外就是系统结构过于复杂,实现难度比较大。

41

18

35

17

第 12 页 共 32 页

深圳大学本科毕业论文—基于线性移位寄存器的流密码算法与实现

4 MATLAB平台实现图像加密

4.1 MATLAB基本应用及功能

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple、MathCAD并称为四大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB

[7]

也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

第 13 页 共 32 页