文档库 最新最全的文档下载
当前位置:文档库 › 基于混沌序列的密钥生成新方法

基于混沌序列的密钥生成新方法

基于混沌序列的密钥生成新方法
基于混沌序列的密钥生成新方法

第36卷第12期2006年12月数学的实践与认识M A TH EM A T I CS I N PRA CT I CE AND TH EO R Y V o l 136 N o 112 

D ecem.,2006 

基于混沌序列的密钥生成新方法杨文安, 袁德明

(徐州建筑职业技术学院计算机技术工程系,江苏徐州 221008)

摘要: 设计了一种从混沌序列生成密钥的新方法.其基本原理是从混沌序列依次取若干数据构成实值序列,将其按非线性规则映射成二值序列,再用实值序列和任意指定序列分别置乱这个二值序列,被置乱后的二值序列即为所生成密钥.实验表明,在混沌密码体制研究中,这种密钥较一般序列密钥更具有独立性、均匀性和不可预测性.

关键词: 混沌序列;密码体制;密钥

1 引 言

收稿日期:2006209216

基金项目:徐州建筑职业技术学院自然科学基金(JYA 30409)

随着网络技术发展,网络安全问题成为当今社会的焦点.人们也在不断寻求解决网络安全问题的有效方法[1].混沌密码体制[2,3]就是适应网络安全的需要应运而生的.

混沌是确定性系统中具有理论意义上的完全随机运动,而不是通常所用的伪随机[4]运动.混沌系统具有确定性、有界性、初值敏感性、拓朴传递性与混合性、宽带性、快速衰退的自相关性和长期不可预测性[5]等.它所具有的基本特性恰好满足了信息保密通信和密码学的基本要求(即Shannon 提出的密码系统设计的基本原则:扩散原则和混淆原则,以及加 解密过程中的可靠性).在著名的L ogistic 混沌映射的基础上,作者设计了一种新型密码体制.该密码体制利用非线性变换从双混沌序列中产生两个二值序列,并对其进行置乱得到两组密钥,由这两组密钥构成密钥矩阵作用于明 密文信息实现信息的加 解密操作,进而达到信息保密的目的.有关新型密码体制的详细内容将另文介绍,本文重点介绍利用非线性变换从混沌序列中生成一组密钥的方法.利用文中方法生成的密钥较一般序列密钥更具有独立性、均匀性和不可预测性.

2 L og istic 混沌映射

美国普林斯顿大学的生态学家R .M ay 在研究昆虫群体繁殖规律时提出的L ogistic 混沌模型的离散形式为:

x i +1=Λx i (1-x i ), 1<Λ<4, 0

(1)其中,x i 表示第i 代昆虫群体的数量.

有关Λ的取值情况,当i →∞时,序列x i 的趋向问题和相关分析请参阅文献[4]和文献

[6].这里仅给出一个本文引用的结论,即:当式(1)中Λ的取值从3逐渐趋向4时,L ogistic 迭代序列由倍周期通向混沌[6],且随Λ的增加而得到的吸引轨道序列逼近一个Can to r 集.

3 密钥生成方法

3.1 几个相关定义

在式(1)中,适当选择Λ,给定初值x 0和初始迭代次数n d ,则由L ogistic 混沌映射生成的混沌时间序列,可用二值序列和实值序列两种形式表示.从第n d 次迭代开始形成的轨迹序列为:x nd ,x nd +1,x nd +2,….每次连续取m 个随机值映射成实值序列和二值序列,映射方法分别由定义1和定义2给出.

定义1 实值序列R Sm (x )

令m 为一正整数,t ∈R ,f (t )=t 2 2是R →R 的映射.对于任意给定的实数序列x ={x 1,x 2,…,x m },其对应的实值序列R Sm (x )定义为:

R Sm (x )=R Sm ({x 1,x 2,…,x m })={f (x 1),f (x 2),…,f (x m )}(2)

定义2 二值序列B Sm (x )

令m >0,k Ε0,m ,k 均为整数,u >0,u ∈R ,且u 的二进制按权展开的各项系数序列为:

u -

∑m

j =-k 32j -{u -k ,u -(k -1),…,u -1,u 0,u 1,u 2,…,u m }(3)

其中,u j 表示u 的第j 项系数,u j =0或1,j 取负和0表示小数点前第j 项,j 取正表示小数点后第j 项,二值映射g j :R →{0,1}的定义为:

g j (u )=u j , j =-k ,-(k -1),…,-1,0,1,2,…,m

则对于任意给定的实数序列x ={x 1,x 2,…,x m },其对应的二值序列B Sm (x )定义为:

B Sm (x )=B Sm ({x 1,x 2,…,x m })={g 1(x 1),g 2(x 2),…,g m (x m )}

(4)

定义3 序列置换和逆置换

令m 为一正整数,Π是定义在集合{1,2,…,m }上的R m →R m 置换,Π-1是Π的逆置换.对于任意给定的实数序列x ={x 1,x 2,…,x m },其序列置换定义为:

Π(x )={x Π(1),x Π(2),…,x Π(m )}={y 1,y 2,…,y m }=y ∈R m

(5)

相应的逆置换为:

Π

-1(y )={y -1Π(1),y -1Π-1(2),…,y -1Π(m )}={x 1,x 2,…,x m }=x ∈R m 3.2 密钥生成示例设从式(1)映射的混沌序列中连续取m =8个随机值序列x 为:

x ={0.3256,0.13717,0.87139,0.17751,0.95597,0.86627,0.63388,0.75079}则由该序列生成密钥的过程如下:

1)按定义1将序列x 映射成实值序列y =R Sm (x ):

y ={0.0530,0.0094,0.3797,0.0158,0.4569,0.3752,0.2009,0.2818}

2)按定义2将实值序列y 映射成二值序列b =B Sm (y )={1,1,0,1,0,0,0,1}

3)随机生成或指定一个置换Π1,按定义3把二值序列b 置乱成二值序列b 1,b 1=Π1(b )={0,1,1,1,0,1,0,0}.这里指定Π1为:

表1 二值序列b 置乱成二值序列b 1

i 1

2345678Π

1(i )5412783616112期杨文安,等:基于混沌序列的密钥生成新方法

4)根据实值序列y 构造一个升序(或降序)置换Π2,按定义3再将b 1置乱成二值序列b 2,b 2=Π2(b 1)={1,0,0,1,0,1,1,0}.升序置换Π2为:

表2 将b 1置乱成二值序列b 2

i 1

2345678Π

2(i )31728645这个b 2就是由该组混沌序列生成的m =8个比特的密钥.

按上述过程,连续生成的密钥具有分布均匀性和相对独立性.由于引入非线性映射和置换,混沌序列的时序规律在生成的二值序列和密钥中已无明显表现.各组密钥及密钥比特位之间无周期性的重复,其排列规律比一般按阈值和单峰映射抽取的二值序列规律更复杂,具有一定的抗密码分析能力.所生成密钥的安全性和稳定性得到增强.

3.3 密钥时序分析

表3 由混沌序列生成的实值序列、二值序列和密钥的时序对照表

4 当初值受到微小扰动时,实值序列、二值序列和密钥的时序对照表

在式(1)中,令Λ=3.955,x 0=0.3256,初始迭代次数n d =1000,则从第n d 次迭代开始形成的第一个混沌序列为:x nd ,x nd +1,x nd +2,….每次连续取m =32个随机值映射成实值序261数 学 的 实 践 与 认 识36卷

列和二值序列.再取另一组参数,由式(1)映射出第二个混沌序列用于随机构造降序置换来置乱由第一个混沌序列产生的二值序列.

表3给出了从第一个混沌序列生成的10组32比特密钥的时序图.其中,前8组是连续生成的,后两组分别列出的是第30组和第120组的情况.实值序列图中的蓝色线条的长短表示相应项的值(Φ0.5).二值序列和32比特密钥图中的蓝色线条表示1,白色线条表示0,蓝色和白色线条的总数为32条.从表3中可以看出,从混沌序列连续生成的各组序列呈随机性,二值序列与实值序列无明显的关联,二值序列与32位比特密钥相差更远.由此可见,引入非线性映射生成的密钥相对一般混沌编码,在抗编码分析和时序分析上具有较高的安全性.

当初值受到微小扰动时,令Λ=3.955000001,x 0=0.32560000001,表4给出了密钥随之变化的时序图.与表3中相同组比较,可以看出,表4中各组序列的时序改变很大,密钥的时序变化也十分明显.

4 结束语

通过引入非线性变换,从混沌序列生成密钥,并未增加计算复杂度,但提高了密码的安全强度,从而为混沌密码技术及其应用提供了一种新思路.从实验中发现,由于计算机的精度限制,混沌序列本身的优点难以充分表现,甚至退化,采用不同方法提取混沌子序列和构造二值序列,对密码安全性影响较大,所带来的安全隐患是值得重视的.混沌密码的安全性并不取决于所采用的混沌系统,无论选择那种混沌系统,效果都相似,关键是混沌密码算法,文中论述的密钥生成方法为设计高安全性的混沌密码算法提供了必要条件,实验表明,在混沌密码体制研究中,这种密钥较一般序列密钥更具有独立性、均匀性和不可预测性.参考文献:

[1] 冯登国.网络安全原理与技术[M ].北京:科学出版社,2003.1—75.

[2] (加)Douglas R Stinson (冯登国译).C ryp tography T heo ry and P ractice ,Second Editi on [M ].北京:电子工业出版

社,2003.1—185.

[3] (美)B ruce Schneier (吴世忠等译).A pp lied C ryp tography P ro toco ls ,A lgo rithm s ,and Source Code in C (Second

Editi on )[M ].北京:机械工业出版社,2000.261—330.

[4] 王丽娜,郭达等.信息隐藏技术实验教程[M ].武昌:武汉大学出版社,2004.25—262.

[5] Kocarev L ,Jak i m o sk i G ,Sto janovsk i T ,Parlitz U .F rom chao tic m ap s to encryp ti on schem es ,In P roc [J ].IEEE

Int Sym CA S ,1998,4:514—517.

[6] 齐东旭.分形及其计算机生成[M ].北京:科学出版社,1994.19—24.

A New M ethod of KEY Generation Based

on Chaotic Sequence

YAN G W en 2an , YU AN D e 2m ing

(D epartm en t of Compu ter Engineering ,Xuzhou In stitu te of A rch itectu ral

T echno logy ,Xuzhou J iangsu 221008,Ch ina )

36112期杨文安,等:基于混沌序列的密钥生成新方法

461数 学 的 实 践 与 认 识36卷

Abstract: T h is paper is abou t a design of a new m ethod fo r generating the keys from Chao tic

sequence.T he basic p rinci p les of th is m ethod can be summ arized as fo llow s:firstly,m uch data

w as co llected in tu rn from Chao tic sequence to con stitu te a real value sequence;secondly,the

real value sequence w as m apped in to b inary sequence in term s of non linear ru les;lastly,th is

b inary sequence w as disarranged respectively by u se of the real value sequence and random ly

designated sequence.T hu s the disarranged b inary sequence w as the generated KEY.T he

experi m en ts indicated that th is key is mo re independen t,symm etrical and unp redictab le than

the key w ith general sequence in the research of key cryp to system.

Keywords: chao tic sequence;cryp to system;KEY

“第七届全国微分方程稳定性暨第六届全国生物动力系统学术会议”

征 文 通 知

为了交流微分方程稳定性和生物动力系统理论及其应用的研究成果,增强学术同仁的广泛联系与合作,促进对前沿研究动态的了解及研究水平的提高,经中国数学会批准,第七届全国微分方程稳定性暨第六届全国生物动力系统学术会议由运城学院主办,中国科学院数学与系统科学研究院应用数学研究所和中国数学会生物数学学会协办,定于2007年10月6—10日(6日全天报到)在山西省运城市运城学院举行.会议组委会主席:张凤琴教授(运城学院)、俞元洪教授(中科院);学术委员会主席:陈兰荪教授(中科院)、郑穗生教授(台湾清华大学).

现开始征集本届会议论文.

1 投稿方式:

①所有会议论文统一投寄到山西省运城学院应用数学系(044000)路爱英老师收.也可将稿件的电子版直接发到E2m ail:stab ility2007@https://www.wendangku.net/doc/6f5376513.html,(微分方程和差分方程等方面),

b i om athem atic07@https://www.wendangku.net/doc/6f5376513.html,(生物动力系统方面).

②微分方程和差分方程方面论文也可投稿到北京中关村中科院应用数学所(100080)俞元洪教授收.

2 审稿:

论文统一由组委会送审,投稿时请将审稿费80元(有可报销的正式发票)邮寄给运城学院应用数学系路爱英老师.寄俞元洪教授处的论文,审稿费也寄给路爱英老师.

会议论文经审查合格将发表在《数学的实践与认识》2007年第七期、第八期或《生物数学学报》2007年第五期出版.会议期间将评选‘‘优秀论文奖’’.详细情况可登陆会议网址了解.

会议网址:h ttp: https://www.wendangku.net/doc/6f5376513.html, shuxue 全国微分方程和生物动力系统学术会议.h tm l

第七届全国微分方程稳定性暨第六届全国生物动力系统学术会议组委会

二零零六年九月二十五日

求最长子序列的长度

一,最长递增子序列问题的描述 设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1是对序列L=按递增排好序的序列。那么显然X与L的最长公共子序列即为L的最长递增子序列。这样就把求最长递增子序列的问题转化为求最长公共子序列问题LCS了。 最长公共子序列问题用动态规划的算法可解。设Li=< a1,a2,…,a i>,Xj=< b1,b2,…,b j>,它们分别为L和X的子序列。令C[i,j]为Li与Xj的最长公共子序列的长度。则有如下的递推方程: 这可以用时间复杂度为O(n2)的算法求解,由于这个算法上课时讲过,所以具体代码在此略去。求最长递增子序列的算法时间复杂度由排序所用的O(nlogn)的时间加上求LCS的O(n2)的时间,算法的最坏时间复杂度为O(nlogn)+O(n2)=O(n2)。 三,第二种算法:动态规划法 设f(i)表示L中以a i为末元素的最长递增子序列的长度。则有如下的递推方程: 这个递推方程的意思是,在求以a i为末元素的最长递增子序列时,找到所有序号在L前面且小于a i的元素a j,即j

混沌加密技术综述

混沌加密技术综述 混沌理论是近年来发展较快的非线性科学的分支,因其非周期、连续宽频带、类噪声和长期不可预测等特点,适用于保密通信等领域。本文从混沌加密技术的原理、发展阶段和特点的问题对其较为的分析和总结。关键词:混沌的原理… 摘要:混沌理论是近年来发展较快的非线性科学的分支,因其非周期、连续宽频带、类噪声和长期不可预测等特点,适用于保密通信等领域。本文从混沌加密技术的原理、发展阶段和特点的问题对其较为的分析和总结。关键词:混沌的原理加密算法性能评估一、混沌的原理混沌是的非线性、非平衡的动力学过程,其特点为: (1)混沌系统的是许多有序的集合,而每个有序分量在条件下,都不起主导作用;(2)混沌看起来似为随机,但的;(3)混沌系统对初始条件极为敏感,两个相同的混沌系统,若使其稍异的初态就会迅速变成完全不同的状态。1963年,美国气象学家洛伦兹(Lrenz)混沌理论,气候从本质上是不可预测的,最微小的条件将会巨大的天气,这著名的“蝴蝶效应”。此后混沌在各个领域都了不同程度的运用。20 世纪80 年代开始,短短的二十几年里,混沌动力学了的应用和发展。二、混沌在加密算法中的应用混沌系统对初值的敏感性,很小的初值误差就能被系统放大,,系统的长期性是不可预测的;又混沌序列的统计特性,它可以产生随机数列,特性很适合于序列加密技术。信息论的奠基人美国数学家Shannn指出:若能以某种产生一随机序列,序列由密钥所,任何输入值微小对输出都大,则的序列就可以加密。混沌系统恰恰符合要求。混沌系统的特性使得它在数值分布上不符合概率统计学原理, 得稳定的概率分布特征;, 混沌数集是实数范围, 还可以推广到复数范围。, 从理论上讲, 混沌原理对数据加密,可以防范频率分析攻击、穷举攻击等攻击方法, 使得密码难于分析、破译。从1992年至今,混沌保密通信经历了四代。混沌掩盖和混沌键控属于代混沌保密通信技术,安全性能非常低,实用性大大折扣。混沌调制属于代混沌保密通信技术,代系统的安全性能比代高,仍然达满意的程度。混沌加密技术属于代混沌保密通信,该类方法将混沌和密码学的优点起来,非常高的安全性能。基于脉冲同步的混沌通信则属于代混沌保密通信。三、混沌加密算法的性能评估参考美国标准与技术协会(NIST)的评判规则LNIST 的评判规则大体分为三个:安全性、代价和算法特性。介绍了基于Lrenz系统的混沌加密算法,以此标准分析了其性能,并将其与当前通用加密算法。1.安全性分析,混沌系统对初始值和参数非常敏感,可以的密钥集合,完全加密的需要。对混沌系统生成的二进制序列检验,0和1的分布均匀,游程符合随机数要求,可以是随机序列。,混沌加密属于流密码,对分组加密的攻击方法是无效的。,对选择明文密文攻击方法,混沌的单向性和混沌信号的迭代,异或操作后密钥流的推断几乎不。2.代价分析算法的代价包括代价和空间代价。代价又分为和加密。通常,加密前的主要是用来生成子密钥,加密主要是在子密钥的控制下对明文数据变换。混沌加密属于流密码的范畴,它的非常短;加密时只对数据的各个位异或操作,其主要花费在密钥流的生成操作上,相流行的分组加密算法,其花费很少的。空间代价分为算法的静止空间和运行态空间。静止空间指算法变成程序后本身所占用的空间,为代码的长度。运行态空间指在加密过程中算法所需要的临时空间。混沌加密算法S-bx空间,临时变量也少,而且,它循环产生密钥流,循环过程中需要寄存的变量有限,,其运行时占用的空间很少,在空间代价上是优秀的。3.特性混沌加密算法的加密和解密过程是可以重用的,其所占用的空间大大缩小。它的软件和硬件特性都比,分别用++和Java语言了该算法,基于该算法的DSP也开发设计四、混沌加密算法的问题1.短周期响应现混沌序列的所生成序列的周期性伪随机性、性、互性等的估计是在统计分析上,或是实验测试给出的,这难以其每个序列的周期足够大,性足够高,使人放心地采用它来加密。例如,在自治状态下,输入信号为零时,加密器为有限周期响应。不同初始状态对应于不同周期,其周期长度很短,缺点在某种程度上降低了混沌加密系统的保密性。2.有限精度效应混沌序列的生成总是要用有限精度器件来的,从而混沌序列生成器可归结为有限自动机来描述。,混沌生成器能否超越已用有限自动机和布尔逻辑理论所给

最长公共子序列问题(最)

算法作业: LCS 问 题 作业要求:设计一个算法求出两个序列的所有LCS ,分析最坏情况,用“会计方法”证明利用b[i][j]求出 所有LCS 的算法在最坏情况下时间复杂度为)(m m n C O + 1、 算法思路: 根据最长公共子序列问题的性质,即经过分解后的子问题具有高度重复性,并且具有最优子结构性质,采用动态规划法求解问题。设X={x 1, x 2, … , x n }, Y={y 1, y 2, … , y m }, 首先引入二维数组C[i][j]记录X i 和Y j 的LCS 的长度,定义C[i][j]如下: { j i j y i 且x ,i,j ]][j C[i j y i x j i j i C j i C j i C 00001110,]},1][[],][1[max{]][[===>+--≠>--=或,且 为了构造出LCS ,还需要使用一个二维数组b[m][n],b[i][j]记录C[i][j]是通过哪个子问题的值求得 的,以决定搜索的方向,欲求出所有的LCS ,定义数组b 如下: 设1-对角线方向;2-向上;3-向左;4-向上或向左 若X[i]=Y[j],b[i][j] = 1, 若C[i-1][j][i][j-1], 则b[i][j] = 3, 若C[i-1][j]=[i][j-1], 则b[i][j] = 4, 根据以上辅助数组C 和b 的定义,算法首先需要求出这两个数组, C[m][n]中记录的最长公共子序列的长度,b 中记录了查找子序列元素的搜索方向。 利用C 和b 的信息,Find_All_LCS 可以采用回溯法求出所有的LCS 。基本思路如下:使用一个辅助数组记录每次调用Find_All_LCS 得到的LCS 中的元素,每次递归调用一次Find_All_LCS ,进入一个新的执行层,首先要判断当前处理的两个子序列长度是否大于等于0 ,若不满足,则该层的递归结束,返回上一层;然后再判断当前得到的子序列是否等于数组C 中求出的最长公共子序列长度,若等于,则说明算法执行到此已经得到一个LCS ,按序输出;若不等于,此时根据数组b 中记录的搜索方向继续搜索,特别要说明的是,当b[i][j]=4时,即要向上或向左,需要对这两个方向分别调用Find_All_LCS ,保证沿着这两个方向上LCS 元素不被漏掉,都可以搜索到;若b[i][j]=1,即沿对角线方向搜索前进时,此时元素X[i]为LCS 中的元素,存放至辅助数组中去,同时将当前已经求得的LCS 长度增1,当递归调用Find_All_LCS 从b[i][j]=1处时,需要回溯一步,搜索其它路径上可能为LCS 中的元素。当所有的可能路径都已经搜索完,算法结束。 对于某些情况会输出重复的LCS ,这是因为算法在沿不同路径搜索时可能会出现相同的LCS 序列。 2、 时间复杂度分析 由上述对Find_All_LCS 算法的分析可知,求出所有的LCS 实际上是根据搜索的方向信息遍历所有的路径找出满足条件的元素集合。因此,除求解辅助数组C 和b 所用的O(mn+m+n)的执行时间外,Find_All_LCS 的时间复杂度取决于所遍历路径数。而路径数是由搜索方向决定的。显然算法在最好的情况下,即m=n 并且b 中所有的值都指示沿着对角线方向搜索,时间复杂度为O(n). 相反,当X 和Y 序列不存在公共子序列时为算法的最坏情况,此时C 中所有值都等于0,数组b 中所有的值都指示要分别沿两个不同的方向(向左或向上)搜索,这种情况下每处理一次X[i],Y[j]时总是要沿两个方向分别调用Find_All_LCS ,遇到i=0或j=0时返回,直到搜索完所有的可能路径才结束,最坏情况下的搜索矩阵如下图所示:

(完整版)基于MATLAB的混沌序列图像加密程序

设计题目:基于MATLAB的混沌序列图像加密程序 一.设计目的 图像信息生动形象,它已成为人类表达信息的重要手段之一,网络上的图像数据很多是要求发送方和接受都要进行加密通信,信息的安全与保密显得尤为重 要,因此我想运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。 熟练使用matlab运用matlab进行编程,使用matlab语言进行数据的隐藏加密,确保数字图像信息的安全,混沌序列具有容易生成,对初始条件和混沌参数敏感等特点,近年来在图像加密领域得到了广泛的应用。使用必要的算法将信息进行加解密,实现信息的保护。 .设计内容和要求 使用混沌序列图像加密技术对图像进行处理使加密后的图像 使用matlab将图像信息隐藏,实现信息加密。 三.设计思路 1. 基于混沌的图像置乱加密算法 本文提出的基于混沌的图像置乱加密算法示意图如图1所示 加密算法如下:首先,数字图像B大小为MX N( M是图像B的行像素数,N是图像B的列像素数),将A的第j行连接到j-1行后面(j=2,3, A,M,形成长度为MX N的序列C。其次,用Logistic混沌映射产生一个长度为的混沌序列{k1,k2,A,kMX N},并构造等差序列D: {1,2,3, A,MX N-1,MX N}。再次,将所

产生的混沌序列{kl, k2. A, kMX N}的M N个值由小到大排序,形成有序序列{k1', k2'. A' kMX N' },确定序列{k1, k2, A, kMX N}中的每个ki在有序序列{k1', k2', A , kMX N' }中的编号,形成置换地址集合 {t1 , t2 , A, tM X N},其中ti为集合{1 , 2, A, MX N}中的一个;按置换地址集合{t1 , t2 , A, tM X N}对序列C进行置换,将其第i个像素置换至第ti列, i=1 , 2, A, MX N,得到C'。将等差序列D做相同置换,得到D'。 最后,B'是一个MX N 的矩阵,B' (i ,j)=C ' ((i-1) X M+j),其中i=1 , 2, A, M j=i=1 , 2, A, N,则B'就是加密后的图像文件。 解密算法与加密算法相似,不同之处在于第3步中,以序列C'代替随机序列{k1, k2, A, kMX N},即可实现图像的解密。 2. 用MATLAB勺实现基于混沌的图像置乱加密算法 本文借助MATLAB^件平台,使用MATLAB!供的文本编辑器进行编程实现加密功能。根据前面加密的思路,把加密算法的编程分为三个主要模块:首先,构造一个与原图a等高等宽的矩阵b加在图像矩阵a后面形成复合矩阵c: b=zeros(m1, n1); ifm1>=n1 ifm1> n1 fore=1: n1 b=(e,e); end else fore=1: n1 end fore=1:( n1-m1) b((m1+e-1),e)=m1+e-1 end end c=zeros(m1*2, n1); c=zeros(m1*2,1); c=[b,a]; 然后,用Logitic映射产生混沌序列:

混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)

混沌映射(序列)matlab 算法“小全”:Logistic 、Henon 、帐篷、kent (含 混沌二值图像生成函数) 1.Logistic (罗切斯特)映射 变换核: ) 1(1n n n x ax x ?=+绘图程序: n=64; key=0.512; an=linspace(3.1,3.99,400); hold on;box on;axis([min(an),max(an),-1,2]);N=n^2; xn=zeros(1,N);for a=an; x=key;for k=1:20; x=a*x*(1-x);%产生公式end; for k=1:N; x=a*x*(1-x);xn(k)=x; b(k,1)=x;%一维矩阵记录迭代结果end; plot(a*ones(1,N),xn,'k.','markersize',1);end; %figure;%imhist(b) 实用混沌加密函数: function ichao_ans=ichaos_logistic(varargin)%logistic 序列生成算法%函数名: %logistic 混沌序列生成函数%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。%(n ),n 为矩阵阶数,key=0.600。 %()或(n ,key ,...),n=64,key=0.600。switch nargin; case 1; n=varargin{1};key=0.600;case 2; n=varargin{1}; key=varargin{2};otherwise key=0.600;n=64;end N=n^2; xn=zeros(1,N);a=4; x=key;for k=1:20; x=a*x*(1-x);%产生公式end; for k=1:N; x=a*x*(1-x); xn(k)=x;%一维矩阵记录迭代结果end;c=reshape(xn,n,n);%一维矩阵转换二维矩阵d=zeros(n,n); %二维混沌矩阵调制for a1=1:n; for a2=1:n; if c(a1,a2)>=0.5;d(a1,a2)=1;else d(a1,a2)=0;end;end;end; %figure;title('logistic 映射');%imshow(d);ichao_ans=d;

(完整word版)最长公共子序列长度算法

// KSY.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; void LCSLength(int m,int n,char *x ,char *y, int **c, int **b) { int i ,j; for (i = 1; i <= m; i++) c[i][0] = 0; for (i = 1; i <= n; i++) c[0][i] = 0; for (i = 1; i <= m; i++) for (j = 1; j <= n; j++) {

if (x[i]==y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]=1; } else if (c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]=2; } else { c[i][j]=c[i][j-1]; b[i][j]=3; } } } void LCS(int i ,int j, char *x ,int **b) { if (i ==0 || j==0) return; if (b[i][j]== 1) { LCS(i-1,j-1,x,b); printf("%c",x[i]); } else if (b[i][j]== 2) LCS(i-1,j,x,b); else LCS(i,j-1,x,b); } const int M = 6; const int N = 5; void output(char *s,int n); void LCSLength(int m,int n,char *x,char *y,int * *c,int * *b); void LCS(int i,int j,char *x,int * *b); void main() { char x[] = {' ','B','C','E','F','G','T'}; char y[] = {' ','C','D','F','J','G'}; int **c = new int *[M+1]; int **b = new int *[M+1]; for(int i=0;i<=M;i++) { c[i] = new int[N+1]; b[i] = new int[N+1]; } cout<<"序列X:"<

混沌时间序列分析

第四章
混沌时间序列分析
一.相空间重建 二.相关维数 三.最优延迟时间 四. Lyapunov特征指数 五.应用举例
一、相空间重建
1

2

Embedding
Φ
A M System with dynamics f has an attractor A ? M
Z ?d
A is transformed into a set Z ? ?d such that the all the important geometric characteristics of A will be preserved. Lets also assume Φ is invertible.
Ruelle(1981),法国科学家
对m维动力系统:
? x1 = f1 ( x1 , x 2 , .... x m ) ? ? x 2 = f 2 ( x1 , x 2 , ... x m ) ? ? ................... ? ? x m = f m ( x1 , x 2 , ... x m )
( x1 , x2 ,.....xm )
是状态空间坐标
x(t ), x(t + τ), x(t + 2τ),......., x [t + (m ? 1)τ]
3

Phase Space Reconstruction
一个单变量时间序列:x0 , x1 , x2 ,...
?τ = 1.?t ? ?n = 3 ( x0 , x1 , x2 ) ( x1 , x2 , x3 ) ( x2 , x3 , x4 ) ............... ( xn ?1 , xn , xn +1 )
4

最长公共子序列实验报告

河北地质大学课程设计报告 (学院)系: 信息工程学院 专业: 计算机科学与技术 姓名: 李义 班级: 二班 学号: 515109030227 指导教师: 王培崇 2016年11月26 日

算法课程设计报告 姓名李义学号515109030227 日期2016/11/10-2016/12/1 实验室152 指导教师王培崇设备编号08 设计题目求最长公共子序列 一、设计内容 求最长公共子序列,如输入字符串str1=adadsda,str2=sadasfda。 则求出的最长公共子序列是adasda。 二、设计目的 掌握动态规划思想,对使用求最长公共子序列加深理解。 三、设计过程 1.算法设计 1. for i ←0 to n 2. L[i,0] ←0 3. end for 4. for j ←0 to m 5. L[0,j] ←0 6. end for 7. for i ←1 to n 8. for j ←1 to m 9. if ai=bj then L[i,j]←L[i-1,j-1]+1 10. else L[i,j]←max {L[i,j-1], L[i-1,j] } 11. end if 12. end for 13. end for 14. return L[n,m] 2.流程图

开始结束 输入I=0,j=0 i<=n L[I,0]=0 i++ Y L[0,j]=0 N j<=n j++ Y i=1 to n J=1 to m ai=bj L[i,j]=L[i-1,j-1]+1 L[i,j]=max{L[i-1,j ],L[i,j-1]} Y J++i++ N 图1.Lcs 算法 3.数据结构 str1=adadsda str2=sadasfda 四、程序实现及运行结果

动态规划解最长公共子序列问题

动态规划解最长公共子序列问题 动态规划主要针对最优化问题,它的决策是全面考虑不同的情况分别进行决策,,最后通过多阶段决策逐步找出问题的最终解.当各个阶段采取决策后,会不断决策出新的数据,直到找到最优解.每次决策依赖于当前状态,又随机引起状态的转移.一个决策序列就是在变化的状态中产生出来的,故有”动态”的含义.所以,这种多阶段最优化决策解决问题的过程称为动态规划. 一问题的描述与分析 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干字符(可能一个也不去掉)后形成的字符序列..令给定的字符序列X=”x0,x1,x2,…xm-1”,序列Y=”y0,y1,…yk-1”是X的子序列,存在X的一个严格递增下标序列i=i0,i1,i2,…ik-1,使得对所有的j=0,1,2,…k-1,有xi=yi。例如X=“ABCBDAB”,Y=“BCDB”是X的一个子序列。 给定两个序列A和B,称序列Z是A和B公共子序列,是指Z同是A和B的子序列。求最长公共子序列。 若A的长度为m,B的长度为n,则A的子序列有2*m-1个,B的子序列有2*n-1个。采用枚举法分别对A和B的所以子序列一一检查,最终求出最长公共子序列。如此比较次数(2*2n)接近指数阶,当n较大时,算法太耗时,不可取。所以要全面考虑不同的情况分别进行决策,,最后通过多阶段决策逐步找出问题的最终解.当各个阶段采取决策后,会不断决策出新的数据,直到找到最优解。 二、算法设计(或算法步骤) A=”a0,a1,a2,……am-1”,B=”b0,b1,b2,……bn-1”,且Z=”z0,z1,z2……zk-1”,为她们的最长公共子序列。不难证明有一下结论: (1)如果am-1=bn-1,则zk-1=am-1=bn-1,且“z0,z1,z2,……zk-2”是“a0,a1,a2,…… am-2”和“b0,b1,b2,……bn-2”的一个最长公共子序列; (2)如果am-1!=bn-1,则若zk-1!=am-1,则“z0,z1,z2,……zk-1”是“a0,a1,a2,…… am-2”和”b0,b1,b2,……bn-1”的一个最长公共子序列。 (3)如果am-1!=bn-1,则若zk-1!=bn-1,则“z0,z1,z2,……zk-1”是“a0,a1,a2,…… am-1”和“b0,b1,b2,……bn-2”的一个最长公共子序列。 如此找到了原问题与其子问题的递归关系。 基本存储结构是存储两个字符串及其最长公共子序列的3个一位数组。当然要找出最长公共子序列,要存储当前最长公共子序列的长度和当前公共子序列的长度,而若只存储当前信息,最后只能求解最长公共子序列的长度,却不能找到最长公共子序列本身。因此需建立一个(n+1)*(m+1)的二维数组c,c[i][j]存储序列“a0,a1,a2……ai-2”和“b0,b1,……bj-1”的最长公共子序列长度,由上递推关系分析,计算c[i][j]可递归的表述如下: (1)c[i][j]=0 如果i=0或j=0;

混沌序列产生及其在图像

混沌序列产生及其在图像、视频加密中 的应用研究 左建政 【摘要】:伴随着科技的不断进步,信息技术已经渗透进人们生活的各个方面,信息安全问题已经引起越来越多的关注,因此如何加强信息的保密性就成为了一个急需解决的难题。混沌信号所固有的非周期, 宽频谱和对初始值非常敏感等突出特征,使得其在信息加密中有着良好的应用前景。而要想提高混沌在信息加密中的保密性以及实用性,需要做的工作主要是以下两个方面:一方面,提高混沌自身的性能;另一方面,提高加密系统的性能。本文以此为背景,分别从上述两方面着手进行研究,取得了一系列新的结果。本文的主要工作和创新体现在以下几个方面: (1)系统地研究了各种混沌序列的产生方式。混沌序列的产生是混沌应用到信息加密的前提也是一项关键技术。从最初的模拟电路到现在数字系统,在不断地进步,当然也会产生一系列新的问题。本文总结以前所做的研究,系统地介绍了各种混沌序列的产生方式,包括模拟电路、FPGA、LabVIEW、DSP等。通 过分析和比较,为以后的继续深入研究发挥重要的参考作用。 (2)设计了一个新的混沌系统。从混沌信息加密工程的观点考虑,构造一个庞大的混沌函数库是必要的。为了设计性能良好的混沌系统,在研究Sprott系统的基础上,构造了一个新的混沌系统。对构造的混沌系统进行了动力学分析,其中包括分岔特性以及Ly apunov指数等特性分析,同时设计了相应的模拟电路,通过电路实验获得了与 仿真相符的混沌吸引子,验证了混沌系统的特性。 (3)设计了一个新的分数阶混沌系统。并且介绍了两种分数阶微积分的分析方法,时域求解法对其进行数值仿真,时频域转换法对其进行电路仿真。数值仿真结果表明系统存在混沌的最低阶数是2.31。设计了该系统的分数阶混沌振荡电路,电路仿真与数值仿真结果相符,证实了该分数阶混沌振荡电路的可行性。分数阶混沌系统更能反映系统呈现的工程物理现象,一个确定的分数阶混沌系统随着其阶数即分数值的不同而呈现不同的状态,因而这种系统具有更大的密钥空间,不容易被复制。 (4)首次利用数字系统产生分数阶混沌序列。对分数阶混沌系统的广泛研究开始于最近十几年,目前的研究大多处于理论阶段。本文通过利用LabVIEW等数字系统,获得了真实的分数阶混沌序列。通过LabVIEW与MATLAB的接口,首先利用MATLAB编程计算混沌状态方程,然后再在LABVIEW平台设计前面板,调节参数,最后通过数据采集卡即可实现分数阶混沌序列输出。数字系统可以做到参数相同,并且精度可控,容易控制。 (5)借助DSP平台,利用分数阶混沌序列,成功实现了图像、视频的实时加密、解密。利用前面得到的分数阶混沌序列作为图像、视频加密的密钥流,对图像、视频中每一帧图像的像素点进行异或加密。分数阶混沌系统密钥空间大,因此安全性高,需要考虑的主要就是实时性的问题,而借助于运算速度非常快的DSP芯片,能很好地满足实时性的要求。这种加密方式突破了传统软件加密时,加密速度慢、容易被破译的缺点,具有广阔的应用前景

基于混沌序列的密钥生成新方法

第36卷第12期2006年12月数学的实践与认识M A TH EM A T I CS I N PRA CT I CE AND TH EO R Y V o l 136 N o 112  D ecem.,2006  基于混沌序列的密钥生成新方法杨文安, 袁德明 (徐州建筑职业技术学院计算机技术工程系,江苏徐州 221008) 摘要: 设计了一种从混沌序列生成密钥的新方法.其基本原理是从混沌序列依次取若干数据构成实值序列,将其按非线性规则映射成二值序列,再用实值序列和任意指定序列分别置乱这个二值序列,被置乱后的二值序列即为所生成密钥.实验表明,在混沌密码体制研究中,这种密钥较一般序列密钥更具有独立性、均匀性和不可预测性. 关键词: 混沌序列;密码体制;密钥 1 引 言 收稿日期:2006209216 基金项目:徐州建筑职业技术学院自然科学基金(JYA 30409) 随着网络技术发展,网络安全问题成为当今社会的焦点.人们也在不断寻求解决网络安全问题的有效方法[1].混沌密码体制[2,3]就是适应网络安全的需要应运而生的. 混沌是确定性系统中具有理论意义上的完全随机运动,而不是通常所用的伪随机[4]运动.混沌系统具有确定性、有界性、初值敏感性、拓朴传递性与混合性、宽带性、快速衰退的自相关性和长期不可预测性[5]等.它所具有的基本特性恰好满足了信息保密通信和密码学的基本要求(即Shannon 提出的密码系统设计的基本原则:扩散原则和混淆原则,以及加 解密过程中的可靠性).在著名的L ogistic 混沌映射的基础上,作者设计了一种新型密码体制.该密码体制利用非线性变换从双混沌序列中产生两个二值序列,并对其进行置乱得到两组密钥,由这两组密钥构成密钥矩阵作用于明 密文信息实现信息的加 解密操作,进而达到信息保密的目的.有关新型密码体制的详细内容将另文介绍,本文重点介绍利用非线性变换从混沌序列中生成一组密钥的方法.利用文中方法生成的密钥较一般序列密钥更具有独立性、均匀性和不可预测性. 2 L og istic 混沌映射 美国普林斯顿大学的生态学家R .M ay 在研究昆虫群体繁殖规律时提出的L ogistic 混沌模型的离散形式为: x i +1=Λx i (1-x i ), 1<Λ<4, 0

最长公共子序列问题

实验三最长公共子序列问题 1.实验环境 本实验采用 java 语言编写实现,环境:,编译器: eclipse 2.实验目的 通过最长公共子序列问题,巩固并详细分析动态规划思想和解题 步骤。 3.设计思路 最长公共子序列的定义为:设有两个序列S[1..m]和9[仁n],需要寻找它们之间的一个最长公共子序列。 例如,假定有两个序列: S1: I N T H E B E G I N N I N G S2: A L L T H I N G S A R E L O S T 则S i和S的一个最长公共子序列为 THING又比如: S1: A B C B D A B S2: B D C A B A 则它们的一个最长公共子序列为 BCBA。 这里需要注意的是,一个子序列不一定必须是连续的,即中间可被其他字符分开,单它们的顺序必须是正确的。另外,最长公共子序列不一定只有一个,而我们需要寻找的是其中一个。

当然,如果要求子序列里面的元素必须连成一片也是可以的。实际上,连成一片的版本比这里实现的更容易。 4.过程 我们可以通过蛮力策略解决这个问题,步骤如下: 1.检查S1[1..m]里面每一个子序列。 2.看看其是否也是S2[1..n]里的子序列。 3.在每一步记录当前找到的子序列里面最长的子序列。 这种方法的效率十分低下。因此本实验采用动态规划的方法实现该算法。 利用动态规划寻找最长公共子序列步骤如下: 1.寻找最长公共子序列的长度。 2.扩展寻找长度的算法来获取最长公共子序列。 策略:考虑序列S1和S2的前缀序列。 设 c[i,j] = |LCS (S1[1..i],S2[1..j]),则有 c[m, n] = |LCS(S1 S2)| 所以有 c[ i -1 , j -1 ] + 1, 如要 S1[i] = S2[j] c[i, j]= max{ c [ i - 1, j ], c[ i , j -1 ] }, 如果 S1[i]工S2[j] 然后回溯输出最长公共子序列过程:

Logistic混沌映射

Logistic混沌映射 引言 如果一个系统的演变过程对初始的状态十分敏感,就把这个系统称为是混沌系统。 在1972年12月29日,美国麻省理工教授、混沌学开创人之一E.N.洛仑兹在美国科学发展学会第139次会议上发表了题为《蝴蝶效应》的论文,提出一个貌似荒谬的论断:在巴西一只蝴蝶翅膀的拍打能在美国得克萨斯州产生一个龙卷风,并由此提出了天气的不可准确预报性。至此以后,人们对于混沌学研究的兴趣十分浓厚,今天,伴随着计算机等技术的飞速进步,混沌学已发展成为一门影响深远、发展迅速的前沿科学。 混沌来自于非线性动力系统,而动力系统又描述的是任意随时间变化的过程,这个过程是确定性的、类似随机的、非周期的、具有收敛性的,并且对于初始值有极敏感的依赖性。而这些特性正符合序列密码的要求。1989年Robert Matthews 在Logistic映射的变形基础上给出了用于加密的伪随机数序列生成函数,其后混沌密码学及混沌密码分析等便相继发展起来。混沌流密码系统的设计主要采用以下几种混沌映射:一维Logistic映射、二维He’non映射、三维Lorenz映射、逐段线性混沌映射、逐段非线性混沌映射等,在本文中,我们主要探讨一维Logistic映射的一些特性。 Logistic映射分析 一维Logistic映射从数学形式上来看是一个非常简单的混沌映射,早在20世纪50年代,有好几位生态学家就利用过这个简单的差分方程,来描述种群的变化。此系统具有极其复杂的动力学行为,在保密通信领域的应用十分广泛,其数学表达公式如下: Xn+1=Xn×μ×(1-Xn) μ∈[0,4] X∈[0,1] 其中μ∈[0,4]被称为Logistic参数。研究表明,当X∈[0,1] 时,Logistic 映射工作处于混沌状态,也就是说,有初始条件X0在Logistic映射作用下产生的序列是非周期的、不收敛的,而在此范围之外,生成的序列必将收敛于某一个特定的值。如下图所示:

混沌加密的原理

混沌加密的原理 2007-09-27 06:12 基于对混沌加密技术的发展和应用的理解,下面我们将对其原理进行探究。 混沌加密基于混沌系统所具有的独特性质:对初值极端敏感性和具有高度的随机性。 混沌加密的原理与序列密码的原理相似,不同在于:一般的序列密码是利用移位寄存器为基础的电路来产生伪随机序列作为密钥序列,而混沌加密是利用混沌系统产生混沌序列作为密钥序列,利用该序列对明文加密,密文经信道传输,接收方用混沌同步的方法将明文信号提取出来实现解密。 混沌序列加密是指明文数据与“乱数流”叠加产生密文,称该“乱数流”为加密序列,它由一个密钥产生。序列加密的数学模型可作如下描述: 明文序列: =(…),GF(q) “乱数流”: = (,,…),GF(q) 由明文序列与“乱数流”可产生密文序列: = (,,…),GF(q) 其中=+,i=0,1,2,…… “乱数流”也是无穷序列,在密码学中通常采用随机序列或伪随机序列。混沌序列加密的主要特点是加密方式十分简单,它只要对两个序列进行叠加即可。混沌序列加密原理(如图1)

混沌序列加密原理 (1)信号加密 在信号的发射端选取适当的非线性动力学系统F(,),为系统变 量,为系统参量。在适当的参数条件下,使非线性动力系统处于混沌状态,然后信息流s(t)对非线性动力学系统输出的混沌信号y(t)进行调制,以产生密文数据流M(t),这一过程可以简单表示如下: M(t)=s(t)y(t) s(t)对y(t)的调制可以是加性掩盖、函数调制,也可以是乘性扩频方法。总之经过这一过程后,明文信息就被隐藏在混沌信号流中。在实际通讯中,可以根据需要,采用低维混沌系统,高维混沌系统,甚至可以是时空混沌系统来产生混沌信号流来对信息进行加密。由于混沌信号具有类随机性,特别是高维超混沌信号和时空混沌信号,具有更大的随机性,经过混沌加密的信号在公开信道中传输,即使被敌人截取,敌人也很难破解信息,即使可以破解,也需要相当长的时间。这样,由于保密通讯的时效性,也可以达到保密的目的。 (2)信号解密 信号解密是指把信息从密文中提取出来的过程。在混沌保密通讯中,信号的解密可以通过多种方式。第一种方式是直接利用混沌序列进行解密。在这种方式中,通信双方事先约定好调制和解调方法,并由发送一方事先把做成密钥的混沌信号流发送给对方,使接受方很容易地解密信号。第二种方式是利用系统的自身特性对混沌的密文信号进行解密。第三种方式,也是混沌保密通讯中通常采用的解密方式,即利用同步混沌来解调密文信号。 具体方案如下: 在接收端有一个和发射端的非线性动力系统F(,)同步的F′(′,

混沌加密开题报告

篇一:图像加密技术的开题报告燕山大学本科毕业设计(论文)开题报告课题名称:图像加密技术的java 实现 学院(系):里仁学院 年级专业:08自动化2 班 学生姓名:杨合如 指导教师:刘剑鸣 完成日期:2012.3.23 一、综述本课题国内外研究动态,说明选题的依据和意义 (一)本课题国内外研究动态数字图像加密源于早期的经典加密理论,其目的是隐藏图像本身的真实信息,使窃取者或无关人员,在收到加密消息后无法获得原始图像,而接收方,则可用预先约定的密钥和解密方法,方便地把收到的加密信息解密出来。 图像加密主要有以下几种方法:基于矩阵变换/ 像素置换的图像加密算法、基于密钥分割与秘密共享的图像加密算法、基于现代密码体制的图像加密算法和基于混沌理论的图像加密算法。下面简要阐述 它们各自加密算法的原理、特点,分析各种算法的优缺点及发展趋势。 (1)基于矩阵变换/像素置换的图像加密技术 基于矩阵变换/ 像素置换的图像加密技术,基于arnold 变换的系列置乱方法,可以等效为对图像矩阵 进行有限步地初等矩阵变换,从而打乱图像像素的排列位置。但初等矩阵变换是一种线性变换,其保 密性不高。基于arnold 变换的加密算法和基于幻方的加密算法是不能公开的,这是因为加密算法和秘钥没有有效地分开,这和现代密码体制的要求是不相容的,即它不符合kerckhoffs 准则,而属于古典密码体制的范畴。在实际应用中应该加以适当的改进,有两种方法:一是使这类加密算法的保密性提高;二是要使这类加密算法符合kerckhoffs 准则,适应现代密码学的要求。另外,基于arnold 变换的图 像加密算法含有其动力学系统的庞加莱回复特性,而幻方矩阵也是由有限域上的元素所组成的,因而都容易受到唯密文迭代攻击,因而从根本上来说这类算法是不能公开的。从加密算法不能公开、秘密不是完全依赖密钥这一点来看,这类加密算法是属于被淘汰之列的,除非它们能和其它的加密算法有效地 结合,从而符合现代加密体制的规范。 (2)基于秘密分割与秘密共享的图像加密基于秘密共享的加密算法是基于shamir 在1979 年提出的密钥分存的概念。之后,在1994 年欧密会上naor 和shamir 共同提出二值图像信息的共享方案。密钥分存的优点在于个别子密钥的泄漏不至于引起密钥的泄漏,而个别子密钥的损失也不至于影响密钥的恢复。算法简单直观,安全性好,具有较好的抗干扰性能。其缺点是图像数据量发生膨胀,这在图像数据本来就很庞大的情况下给图像的网络传输带来了严重的困难,限制了这种加密算法在实际中应用,而且对于采用这种门限方案的算法其恢复出的图像的对比度会有所下降。在密钥分存领域,我国学者曹珍富做了许多开创性的工作:他基于有限集合理论设计的二级(k,n)门限的方法,可以有效地发现冒充 特有子密钥的人或蓄意破坏者,与密钥分存紧密相连的一个概念是密钥托管问题。在文献中,文中作者基于公钥密码加密算法、门限方案、认证方案和签名算法,提出一种新的基于公钥密码的托管方案, 解决了shamir 所提出的密钥托管方案中的关键问题,即“用户的密钥完全依赖于可信赖的托管机构” 问题(实际上没有一个机构可以完全信赖)。关于密钥分存,常见的算法还有dhamir 基于lagrange 插值公式的密钥分存方法, asmuth-bloom 方法。 (3)基于现代密码体制的图像加密 claude shannon 于1949 年发表了一篇题为“保密系统的信息理论”的文章,用信息论的观点对信息保密问题做了全面地阐述,建立了现代密码学理论。对于图像数据来说,这种加密技术就是把待传输的图像看作明文,通过各种加密算法,如des,rsa 等,在秘钥的控制下, 达到图像数据保密通信。这种加密机制的设计思想是加密算法可以公开,通信的保密性完全依赖于秘钥的保密性(即满足kerckhoffs 准则)。私钥密码体制和公钥密码体制各有其应用场合。一般来说,

最长公共子序列实验报告

最长公共子序列问题 一.实验目的: 1.加深对最长公共子序列问题算法的理解,实现最长公共子序列问题的求解算法; 2.通过本次试验掌握将算法转换为上机操作; 3.加深对动态规划思想的理解,并利用其解决生活中的问题。 二.实验内容: 1.编写算法:实现两个字符串的最长公共子序列的求解; 2.将输入与输出数据保存在文件之中,包括运行时间和运行结果; 3.对实验结果进行分析。 三.实验操作: 1.最长公共子序列求解: 将两个字符串放到两个字符型数组中,characterString1和characterString2,当characterString1[m]= characterString2[m]时,找出这两个字符串m之前的最长公共子序列,然后在其尾部加上characterString1[m],即可得到最长公共子序列。当characterString1[m] ≠characterString2[m]时,需要解决两个子问题:即找出characterString1(m-1)和characterString2的一个最长公共子序列及characterString1和characterString2(m-1)的一个最长公共子序列,这两个公共子序列中较长者即为characterString1和characterString2的一个最长公共子序列。 2.动态规划算法的思想求解: 动态规划算法是自底向上的计算最优值。 计算最长公共子序列长度的动态规划算法LCS-Length以characterString1和characterString2作为输入,输出两个数组result和judge1,其中result存储最长公共子序列的长度,judge1记录指示result的值是由那个子问题解答得到的,最后将最终的最长公共子序列的长度记录到result中。 以LCS-Length计算得到的数组judge1可用于快速构造序列最长公共子序列。首先从judge1的最后开始,对judge1进行配对。当遇到“↖”时,表示最长公共子序列是由characterString1(i-1)和characterString2(j-1)的最长公共子序列在尾部加上characterString1(i)得到的子序列;当遇到“↑”时,表示最长公共子序列和characterString1(i-1)与characterString2(j)的最长公共子序列相同;当遇到“←”时,表示最长公共子序列和characterString1(i)与characterString2(j-1)的最长公共子序列相同。 如图所示:

相关文档
相关文档 最新文档