基于Logistic混沌算法的论文题目 动态口令芯片设计
学生姓名 项智
学生学号
专业班级 09微电子1班
学院名称 电子与通信工程
指导老师 赵杰
2012年6月5日
摘 要
为了解决信息安全问题得到加密用的混沌随机数本文分析了Lo gi s ti c混沌模型提出了一种便于硬件实现的离散Lo gi s ti c混沌算法并完成了其硬件结构设计。针对混沌随机数的典型应用本文利用所述离散Lo gi s ti c混沌算法硬件电路完成了一款动态口令芯片的设计其具有安全性好性价比高速度快等优点其应用价值广。
关键字 Logistic FPGA动态口令混沌
Abstract
In order to sove the problem of information security,and get the chaotic randomnumbers for encryption,this paper analyzed the Logistic random chaos model and gave akind of discrete Logistic chaos algorithm which is easy for hardware realization,andcompleted its hardware structure design.The dynamic password chip is a typicalapplication of random number in chaos,and this paper used the discrete Logistic chaosalgorithm mentioned above,and completed a dynamic password chip design,it has theadvantages of good security,low cost,high speed,and extensive application value.Keywords:Logistic;FPGA;dynamic pas sword; chaotic
目 录
一、 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
二、 方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
三、 Logistic混沌算法设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
(一) Logistic混沌模型分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
(二) 离散化的Logistic混沌算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
(三) Logistic混沌算法系统设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
(四) Logistic混沌算法模块设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
四、 动态口令芯片设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
一动态口令芯片的设计方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
二动态口令芯片的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
1.动态口令芯片硬件实现平台. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.软件设计和仿真平台. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
3.基于FPGA的硬件电路模块设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
五、 动态口令芯片的效果分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
六、 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
七、 参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
八、 附录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
(一) 动态口令芯片的电路图. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
1.动态口令芯片的整体结构图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
2 Logistic核心算法模块结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
3.基于FPGA设计的顶层电路图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
(二) 基于FPGA设计的动态口令芯片各个子模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
1. count模块设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
2.求补码模块(minu s)设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
3.mux2_1模块代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
4.diedai模块设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
5. enable模块设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
6.yin gs h e模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
7.xiaodou模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
8.key模块设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
9.deal模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
10.dis_choose模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
11.fenpin模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
12.display模块的设计代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
一、引言
随着现代信息技术的不断发展信息安全技术变得越来越重要。为了使信息在的过程中不被窃取通常要采用加密技术[1]。比较通用的加密技术中序列密码是一中和非常典型有效的加密方法[2] 其采用伪随机数序列和需要加密的内容进行运算得到加密后的内容。混沌现象是一种确定性的类似随机的过程这种过程既非周期又不收敛并且对初始值有及其敏感的依赖性。从时域上看混沌映射得到的序列类似于随机序列相关性较弱具有很好的类白噪声特性 因此可以用来产生伪随机信号或伪随机码[3]。 Lo gi s ti c映射是一种非常简单却被广泛应用的经典混沌映射[4-5]。
动态口令技术是一种非常有效的身份认证&加密技术[6-7]。通常的动态口令技术采用时间同步的认证机制[8] 常用的算法是使用Hash函数的MDS算法[9]。该算法具有计算代价大芯片成本高专利授权费贵等缺陷。本文采用Lo gi s ti c混沌模型设计出一套可以用硬件实现的算法并利用该算法实现了一个动态口令IC具有安全性好性价比高速度快等优点应用价值广泛。本设计的实现平台采用FPGA FPGA技术应用逐渐在中国得以推广其广泛于数字通信技术计算机应用技术 自动化控制等领域。 FPGA的最新发展主要包括功能扩展和现场可编程技术在原来离线的串/并行格式编
程的基础上创新产生了所谓的在线式可编程技术ISP和动态可重配技术或称cache logic 。使FPGA器件不仅仅是现场可编程而且可用户在线可编程动态容量可扩展从而进一步提高了FPGA技术的应用灵活性降低了应用系统的实现成本[10]。
二、方案论证
方案一用CPLD去实现该动态口令牌芯片设计
方案二用FPGA去实现该动态口令牌芯片设计
方案比较尽管CPLD和FPGA都是可编程的ASIC芯片但是FPGA相比CPLD而言更适合完成时序逻辑 同时在编程上 FPGA比CPLD具有更大的灵活性支持在线可编程再者FPGA相比CPLD集成度要高而且FPGA内部触发器资源丰富在时序要求较高的场合用FPGA去实现更容易达到时序收敛基于上述比较最终方案选择方案二。
三、 Lo gistic混沌算法设计
(一)Lo gi s ti c混沌模型分析
现代混沌学研究起源于20世纪60年代混沌是一种特殊的动力学行为其会在该动力学系统中表现出一种确定性的类随机的过程。这种过程非周期不收敛但是有边界。所以这样的一种过程只要其初始值有微小的变化就会形成完全不同的两组序列所以利用混沌现象的天然随机过程可以得到很好的随机序列从而应用到加密领域达到很好的加密效果。
Logistic是混沌模型中比较经典的一种其起源于虫口模型worm numbermodel[11]
Xk+1=aXk 1
1式中Xk+1为下一代虫子的数量而Xk为上一代虫子的数量这是个理想的情况但是实际中由于虫子的食物问题生存空间问题天灾问题事实上两代虫子之间的数量可以表示为如下式
Xk+1=aXk 1-Xk 2
根据研究表明[12] 当a和X k满足关系 3.5699a4且0<Xk<1时虫子的数量在代与代之间处于混沌变化下一代虫子的数量和这当代的数量之间的关系非收敛变化具有很强的随机性无法从动力学行为[13]规律找到破解密文的办法。
可见(x)不依赖于其初始值的不同而不同所以其遍历性等同于零均值白噪声[14] 所以在保证初始值未知的情况下这样的随机序列与利用的物理效应得到的随机序列在统计意义上是一致的。
(二)离散化的Lo gi s ti c混沌算法
根据前面对Lo gi s ti c混沌模型的分析可知 Lo gi s ti c映射关系中虫子的数量在代与代之间处于混沌变化可以把每一代虫子的数量作为一个数据而随着虫子的繁衍每一代虫子的数量的序列可以形成一个随机性良好的随机序列。
而Lo gi s ti c混沌模型本身的数学关系的定义域但是由于硬件计算需要
使用离散化的方式 因此需要把Lo gi s ti c混沌模型中的映射关系的定义域从实数域映射到整数域。首先定义表达式2中的a为序列选择因子通常也称之为系统的密码。设离散化Lo gi s ti c混沌算法中的序列选择因子为X。而X的取值范围为[0,N],其中N为自然数显然这样的序列因子是不能进行计算的设x是经过变换的序列选择因子且满足3.56699x4可以证明X,x满足表达式4 b*N*xint(b*N*3.5699)int(X*b*0.4301)x
其中 “int ”代表对“”内的数据进行取整数运算 b为计算精度影响因子取值为自然数。为了保证四位有效数字的计算精度N应该不小于自然104 b至少取值为1。这样在二进制计算中可以令N为一个32位二进制数。另外可以较容易证明表达式5成立。int(X*0
为了把浮点运算转换为整数运算并且适用于硬件电路实现可以把表达式5和N=232-1 b=1代入4 经过一系列数学推导得到如下式子6 x
设最后产生的随机序列为SK并且假设SK的取值范围为[0,M]。而满足虫口关系表达式2的序列为sk显然有sk
由于x和sk满足虫口模型 因此将6和7代入2 经过一定的数学推导过程得到如下式子8
Sk
在本文中取值M2161 并且由于M216 ,N232 ,代入上述表达式
8可得
表达式9中除法运算均为整数运算 因此9是一个纯整数域上的迭代运算表达式称之为离散化的Lo gi s ti c混沌算法所生成的Sk序列就是一个良好的混沌随机数序列。其中X为上文所述的序列选择因子式子
15332603705int(X7046/214)将定义在实数域中的序列选择因子X映射到整数域中。 Sk为混沌随机序列式子216-Sk-1为求混沌序列Sk的补码。1/248为将产生的混沌随机序列向右移48位得到新的混沌随机序列。
(三)Logi s tic混沌算法系统设计
为了实现该Lo gi s ti c混沌算法根据表达式9 设计出如图1所示的Logi s tic混沌算法系统结构
图1.Logi s ti c混沌算法系统结构
由于产生S k序列的Lo gi s tic混沌算法是一个反复迭代的过程S k+1的产生依赖于Sk的取值。因此称这个运算为“Lo gi s tic迭代运算”。图1中的“Lo gi s ti c
无忧云官网无忧云怎么样 无忧云服务器好不好 无忧云值不值得购买 无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免北岸建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高...
最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...
香港最便宜的vps要多少钱?最便宜的香港vps能用吗?香港vps无需备案,整体性能好,而且租用价格便宜,使用灵活,因为备受站长喜爱。无论是个人还是企业建站,都比较倾向于选择香港VPS。最便宜的香港vps能用吗?正因为有着诸多租用优势,香港VPS在业内颇受欢迎,租用需求量也在日益攀升。那么,对于新手用户来说,香港最便宜的vps租用有四大要点是务必要注意的,还有易探云香港vps租用最便宜的月付仅18元...