基于流密码的双位单向循环链表加密解密方法
【专利摘要】本发明的基于流密码的双位单向循环链表加密解密方法,该方法包括:开辟内存空间,进行初始化并设值进行设置;生成对应的第一指针和第二指针;运行算法程序进行第一指针和第二指针位移读取;对第一指针和第二指针进行四次单向循环链表遍历,同时根据第一指针和第二指针所指向的字符位的异或结果,得到密文文件。本发明的解密方案与加密方法一致。本发明的有益效果为:破译极难,实现容易,保密系统更加安全。本加密方法而是无序加密,可在现有的、公开的通信信道进行传输;不需辅助硬件设备,完全用软件实现;密钥字节可以是任意长度,随着密钥字节长度的增加,其加密复杂度也随之增加。
【专利说明】
基于流密码的双位单向循环链表加密解密方法
技术领域
[0001]本发明涉及基于流密码的双位单向循环链表加密解密方法,属于数字通信技术及信息加密领域。
【背景技术】
[0002]斯诺登事件之后,各国对自己的信息安全都加大了研发力度。美国之所以能够获取他国的信息内容,主要有以下几个方面问题。
[0003]第一、美国有通信技术的技术优势,以及互联网的超级用户管理权;
第二、邮件服务器(美国的相关部门迫使邮件服务器服务商提供邮件信息)、经过路由器的信息(美国的相关部门迫使通信服务部门和通信设备供应商提供信息截获功能),手机通信的信息等都可被他人截获;
第三、很多信息在互联网中传输是不加密的明码信息。这就给他人获取信息取得方便(例如:美国住阿富汗总指挥官情书邮件泄密案);
第四、美国投入巨大的物力、人力、财力。组织庞大的网络信息收集、加工、分析、筛选、处理的团队。收集各国信息(例如:德国总理默克尔手机通信信息被窃听事件)。
[0004]流密码(stream cipher)。也称之为序列密码。现有流密码的研究状态,由于流密码的分析和设计往往用于一个国家的军事和外交通信。所以,流密码的研发和设计基本上都是在保密的状态下进行,各个国家研发流密码的学者和专家为了保密几乎没有过多的这方面的公开的论著。各国都将流密码技术和产品,作为军工产品而限制出口。由于它具有许多其他密码不可比拟的优点,所以,它是当今最为通用的密码系统之一。
[0005]现在的流密码学的研究方向,都是以数学模型为基础,使用复杂的代数运算、布尔代数运算、伪随机数、移位寄存器、线性反馈等。完成流密码的加密和解密。在这方面比较成功的方法有A5方法,S盒方法,RC4方法,K2方法等。这些方法已经是不公开的秘密,经过多年的研究,对其加密和解密已经具有了一定的成熟手段。现在已有很多学者研究攻击和破译上述方法加密的密文。这就使得使用以上的方法进行加密的密文,其安全性受到极大的挑占戈。
[0006]目前流密码的设计方案,主要采用系统论的方法,密钥流序列的生成主要是利用线性反馈移位寄存器产生伪随机序列。生成伪随机数列的方法有:反馈移位寄存器序列;线性移位寄存器加非线性前馈函数产生前馈序列、钟控序列、组合网络序列、进位移位寄存器、元胞自动机、混沌理论等。
[0007]本方法针对现有技术的不足,本发明的技术方案方案采用的是混沌流(此混沌流的产生,不同于以往的混沌流,本发明的技术方案提出的混沌流可以是任意的文件模式,而不是由函数或信号发生器产生的混沌流,也可称本混沌流为真随机序列,而不是伪随机序列)动态寄生法,本方法即使被猜到,由于混沌流是一个无序的序列,所以,要想破译,几乎不可能实现。用穷举法,在数学上几乎不可能实现,在计算机上也几乎不可能实现。穷举的次数为明文的字节数(N)S倍的二次幂,S卩:28n。
[0008]引证文献:
[1]何克晶RC4流密码与微软Office文档安全分析[j].计算机工程2009.1235(23) pl30-pl35
[2]陈杰对流密码中代数攻击的研究西安电子科技大学硕士学位论文2005.01
[3]王化中张桂香邵勇基于Logistic映射的混沌流密码设计[j]计算机工程
2007.533(10) pl64_pl68
[4]罗松江朱路平基于分段非线性混沌映射的流密码加密方案[j]计算机应用30(11) p3038-p3043
[5]罗卫华基于流密码的代数攻击及代数免疫性研究国防科技大学硕士学位论文2006.11
[6]周建涛基于同步的时空确定性随机流密码及密钥交换研究东南大学硕士学位论文2005.3
[7]赵立杰基于线性反馈移位寄存器的流密码的研究及设计硕西南交通大学士学位论文2006.4
[8]李媛基于字的流密码算法Dragon的研究西安电子科技大学硕士学位论文2008.1
[9]李顺波胡予濮王艳流密码Sosemanuk的区分攻击哈尔滨工程大学学报2012.2 33(2) p259_p262
[10]刘琼流密码的快速相关攻击研究西安电子科技大学硕士学位论文2010.1
[11]王建明流密码的设计与分析北京工业大学工程硕士学位论文2006.6
[12]罗启彬张建流密码的现状和发展[j]信息与电子工程2006.24(l)p75-p80
[13]朱莉艳流密码复杂性研究扬州大学硕士学位论文2008.5
[14]魏仕民流密码及其复杂度分析西安电子科技大学博士学位论文2001.1
[15]胡能发流密码密钥序列的类演化生成华中科技大学硕士学位论文2005.4
[16]黄融图文混沌加密传送用流密码的研究和实现华南理工大学硕士学位论文
2005.5
[17]董斌辉周建勇一种混沌流密码算法设计与实现[j]计算机工程与应用2009,45(35)pl20-pl50
[18]蔡颖张家树一种基于参数切换的高维混沌流密码设计[j]铁道学报2003.1225(6) p61-p65
[19]仵丽花一种新型流密码结构的区分攻击研究,西安电子科技大学硕士学位论文 2008
[20]李顺波胡予濮王艳针对流密码HC-256'的区分攻击[j]电子与信息学报2012.4 34(4) p807_p811
[21]刘树凯关杰常亚勤针对流密码K2算法的猜测决定攻击计算机工程2011.437(7) pl68-pl70
[22]常亚勤金辰辉针对流密码MAG算法的已知明文攻击计算机工程2010.1036(20) pl59-pl72o
【发明内容】
[0009]针对现有技术的不足,本方本发明的技术方案方法采用的是混沌流(此混沌流的产生,不同于以往的混沌流,本发明的技术方案提出的混沌流可以是任意的文件模式,而不是由函数或信号发生器产生的混沌流,也可称本混沌流为真随机序列,而不是伪随机序列)动态寄生法,本方法即使被猜到,由于混沌流是一个无序的序列,所以,要想破译,几乎不可能实现。用穷举法,在数学上几乎不可能实现,在计算机上也几乎不可能实现。穷举的次数为明文的字节数(N)8倍的二次幂,S卩:28n。
[0010]本发明的技术方案包括基于流密码的双位单向循环链表加密解密方法,其特征在于,该方法包括:S1,开辟内存空间,为明文文件、密文文件、密钥文件及算法程序集合准备对应的存储空间,其中,密钥文件为加密和解密的共用文件,进一步对上述的集合进行初始化并对集合预设值进行设置;S2,对所述明文文件、密文文件和密钥文件分别创建对应的明文加密随机数、密文加密随机数和密钥加密随机数,根据加密随机数的值生成对应的第一指针和第二指针;S3,运行所述算法程序集合的算法程序对明文文件、密文文件、密钥文件进行第一指针和第二指针位移读取;S4,对第一指针和第二指针进行四次单向循环链表遍历,同时根据第一指针和第二指针所指向的字符位的异或结果,对明文文件进行多次迭代,得到密文文件。
[0011]进一步,其中步骤SI还包括:初始化明文文件,加载需要加密的明文文件,设置密钥文件码元个数,其中密钥文件的字节长度能进行自定义设置,进一步,密钥文件码元个数不大于明文文件码元个数,进而还包括自定义调取算法程序集合中的算法作为预设处理算法,其中每个加密或解密算法都对应还原算法。
[0012]进一步,其中步骤SI还包括:所述的明文文件、密文文件、密钥文件为单向循环链表存储方式的字节符集,该字节符集为{O,I },即当单向循环链表接收指针的读取时,自动将位于表尾的指针自动跳转至表头;
进一步,其中步骤S2还包括:S201,获取明文文件的码元个数为η,选取小于η-1的整数作为明文字符随机数;S202,根据步骤S202获得的明文文件码元个数η,获取密钥文件的码元个数m,其中m不大于η,设置密文加密随机数,选取小于n-Ι的整数作为密钥字符随机数;S203,选取小于η-1的整数作为密文字符随机数;S204,存储明文字符随机数、密钥字符随机数和密文字符随机数。
[0013]进一步,其中步骤S4还包括:S401,创建第一明文指针和第二明文指针分别指向明文码元,创建第一密钥指针和第二密钥指针,创建第一密文指针和第二密文指针,还包括确认明文、密钥、密文对应第一指针和第二指针之间的位移法则;S402,对第一密钥指针为第二密钥指针进行四次循环遍历,在循环遍历时对第一密钥指针和第二密钥指针进行异或判定;S403,根据步骤S402异或判定结果将第一密钥指针和第二密钥指针根据位移法则进行对应的计算,并将计算结果写入第一密文指针和第二密文指针;S404,将步骤S403写入结果的第一密文指针和第二密文指针的字符数据进行写入,并生成密文文件。
[0014]进一步,其中步骤S402还包括:S4021,执行第一步对第一密钥指针和第二字密钥指针进行单向循环链表遍历,在进行第一密钥指针和第二密钥指针的异或判定时,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置;S4022,基于步骤S4021,执行二、三、四次单向循环链表遍历,根据每次单向循环链表时的异或判定条件的不同,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置。
[0015]本发明的技术方案还实现解密方法,该方法还包括:S5,从算法程序集合调取所述步骤SI所设置的算法对应的还原算法,调取明文文件、密文文件、密钥文件对应的加密随机数,以及,需要进行解密的密文文件;S6,根据明文文件的长度,开辟密文字符数组,所述算法程序创建功能接口,用于根据加密随机数得到明文字符指针,该明文字符指针用于指向明文文件存储空间;S7,运行所述算法程序集合的还原算法程序对明文文件、密文文件、密钥文件进行第一指针和第二指针位移读取;S8,对第一密钥指针和第二密钥指针进行四次次循环链表遍历,同时根据第一密钥指针和第二密钥指针所指向的字符位的异或结果,遍历密文文件后生成明文文件。
[0016]进一步,所述步骤S8还包括:S801,创建第一密文指针和第二密文指针分别指向明文码元,创建第一密钥指针和第二密钥指针,创建第一密文指针和第二密文指针,还包括确认明文、密钥、密文对应第一指针和第二指针之间的位移法则;S802,对第一密钥指针和第二密钥指针进行四次循环遍历,在循环遍历时对第一密钥指针和第二密钥指针进行异或判定;S803,根据步骤S802异或判定结果将第一密钥指针和第二密钥指针根据位移法则进行对应的计算,并将计算结果写入第一明文指针和第二明文指针;S804,将步骤S803写入结果的第一明文指针和第二明文指针的字符数据进行写入,并生成明文文件。
[0017]进一步,所述步骤S802还包括:S8021,执行第一步对第一密钥指针和第二字密钥指针进行单向循环链表遍历,在进行第一密钥指针和第二密钥指针的异或判定时,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置;S8022,基于步骤S801,执行二、三、四次单向循环链表遍历,根据每次单向循环链表时的异或判定条件的不同,判定结果符合预设值则将密文指针及名文指针按照位移法则进行位移,如果不符合预设值与则仅对密文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置,直至完成四次单向循环链表遍历,完成解密。
[0018]本发明的有益效果为:方法简单,破译极难;使用计算机算法与编程,实现容易;明文加密、发送、接受,解密实行三分离原则,使得保密系统更加安全;本加密方法不是传统的一对一,一对多;而是无序加密;可在现有的、公开的通信信道进行传输;不需要任何的辅助硬件设备;完全用软件实现;密钥字节可以是任意长度,随着密钥字节长度的增加,其加密复杂度也随之增加。
【附图说明】
[0019]图1所示为根据本发明实施方式的加密解密示意图;
图2a所示为根据本发明实施方式的加密表图;
图2b所示为根据本发明实施方式的加密遍历图;
图3所示为根据本发明实施方式的解密表图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的游戏界面行为控制系统适用于单机游戏、手机游戏、网页游戏等游戏的开发,尤其适用于在控制角色扮演类游戏中实现的游戏界面行为的处理。
[0021]图1所示为根据本发明实施方式的加密解密示意图。该图表现公共密钥实现了明文密文的相互转变,其中算法为加密或解密的算法及对应的还原算法。基于该图,加密体制四元组(M(明码),C(密文),P(密钥),A(算法
))Κ,Ρ,Α集合具有如下特性:
1.集合内的信息{0,1}是由二进制码元组成的字节符集。适用ASCII码。
[0022]2.明码集合M具有η个字节,其码元个数记作:sum(M)=8n,具有sum(M) mod 8=0;
3.密文集合C的元素个数是将M集合作为初值,经过r次迭代得到C1,c2,C3,…,Cr。对于Cj( j=l ,2,3,...,r)子集码元个数记作:sum( C j),具有sum( c j) mod 8=0 ;假设c j的字节数为m,则有:
(1)当!11〈11,压缩加密。
[0023](2)当m=n,称之为一对一加密,或称之为等密度加密。
[0024](3)当m>n,称之为冗余加密。
[0025]4.秘钥集合P的码元个数。记作:sum(P),具有sum(P) mod 8=0;假设P集合内字节数为m,有m<n。初步定义P集合内的字节数为I字节。加密、解密共享秘钥集合P。该集合中不含有 Oxf f,0x00,OXaa,0x55 码。
[0026]5.本定义中的算法具有,可行性、确切性、有穷性、有唯一输入、有唯一输出。
[0027]6.算法集合A是由计算机可执行的代码集合。也称为函数的集合。集合A中的元素个数记作sum(A),具有sum(A) mod 2=0ο
[0028]算法集合特性:若存在算法a,使得Ci加密成Cj,则必存在算法b,使得Cj还原成Ci。即存在逆算法。或还原算法。
[0029]图2a所示为根据本发明实施方式的加密表图,以及,图2b所示加密遍历图的。其步骤如下1-14所示:
1.明码 M={中国} = {0xD6 OxDO 0xB9 0xFA} = (1101 0110 1101 0000 1011 1000 11111010)2。
[0030]2.密钥P={^jOt} = {0xC3 0xB5 0xB9 0xE5}= (1100 0011 1011 0101 1011 10001110 0101)2。
[0031]3.开辟与明码等长度的密文空间。密码C=1xOO 0x00 0x00 0x00}.5li=5,j=4,k=0o
[OO32 ] 6.取指针Pl,P2。pi指向X集合X5位,P2指向X集合X6位。
[0033 ] 7.取指针qi,q2。qi指向P集合y 4位,q2指向P集合y5位。
[0034]8.取指针ri,r2。1*1指向C机和ZQ位,Γ2指向C集合ζι位。
[0035]9.做4次循环。
[0036]10.第一次循环,判断(*qi==0)&&(q2==0)的值,为 “I”。则:*η=*ρι,*?=*Ρ2。移动指针:ρι=ρ2+1, p2=pi+l ; qi=q2+l, q2=qi+l ; π=Γ2+1, Γ2=π+1。否贝>J: ρι=ρ2+1, p2=pi+l ; qi=q2+l, q2=qi+1 o 当 P2—NULL,MSpi^xs ; P2^X6 o qi^y4 ; q2^ys ο
[0037]11.第二次循环,判断(*qi==0)&&(q2==l)的值,为“I”。则:*ri=*pi,*r2=*P2。移动指针:pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+1 o 当 P2—NULL,MSpi^xs ; P2^X6 o qi^y4 ; q2^ys o
[0038]12.第三次循环,判断(*91==1)&&(92==0)的值,为“1”。则:*ri=*pi,*r2=*p2。移动指针:ρι=ρ2+1,ρ2=ρι+1; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+1 o 当 P2—NULL,MSpi^xs ; P2^X6 o qi^y4 ; q2^ys o
[0039]13.第四次循环,判断(*91==1)&&(92==1)的值,为“1”。则:*ri=*pi,*r2=*p2。移动指针:ρι=ρ2+1,ρ2=ρι+1; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+1 o 当 P2—NULL,结束。
[0040]14.获得密文,C={^M } = {0xD8 0x56 0x4D OxBE}= (1101 1000 0101 0110 01001101 1011 1110)2。
[0041]参照图3所示为根据本发明实施方式的解密表图,以及,图2b所示的加密遍历图。其实施步骤如下1-13所示:
1.密文。={黯1 } = {0xD8 0x56 0x4D OxBE}= (1101 1000 0101 0110 0100 1101 10111110)2。
[0042]2.密钥?={玫瑰} = {(^03 0xB5 0xB9 0xE5}= (1100 0011 1011 0101 1011 10001110 0101)2。
[0043]3.开辟与密文等长度的明码空间J=1xOO 0x00 0x00 OxOOK
[0044]4.取i=5,j=4,k=0。
[0045]5.取指针P1,P2DP1指向X集合X5位,P2指向X集合X6位。
[0046]6.取指针qi,q2Dqi指向P集合y4位,q2指向P集合ys位。
[00Λ7] 7.取指针ri,r2Dri指向匚机和ZQ位,r2指向C集合ζι位D
[0048]8.做4次循环遍历。
[0049]9.第一次循环,判断(*qi==0)&&(q2==0)的值,为“I”。贝丨j:却1=打1,却2=打2。移动指针:pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+10 当P2—NULL,MSpi^xs ; P2^X6 0 qi^y4 ; q2^ys ; 0
[0050]10.第二次循环,判断(*qi==0)&&(q2==l)的值,为“I”。则Jpi=打I,*P2=打2。移动指针:ρι=ρ2+1,ρ2=ρι+1; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+10 当P2—NULL,MSpi^xs ; P2^X6 0 qi^y4 ; q2^ys ; 0
[0051 ] 11.第三次循环,判断(*qi==l)&&(q2==0)的值,为“I”。则:*ρι=打ι,*Ρ2=打2。移动指针:ρι=ρ2+1,ρ2=ρι+1; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+10 当P2—NULL,MSpi^xs ; P2^X6 0 qi^y4 ; q2^ys ; 0
[0052]12.第四次循环,判断(*91==1)&&(92==1)的值,为“1”。则:*pi=*ri,*p2=*r2。移动指针:ρι=ρ2+1,ρ2=ρι+1; qi=q2+l,q2=qi+l; ri=r2+l,r2=ri+l。否贝丨j: pi=p2+l,p2=pi+l; qi=q2+l,q2=qi+10 当 P2—NULL,结束。
[0053]13.获得明文,M={中国} = {0xD6 OxDO 0xB9 0xFA} = (1101 0110 1101 0000 10111000 1111 1010)20
[0054]以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
【主权项】
1.基于流密码的双位单向循环链表加密解密方法,其特征在于,该方法包括: SI,开辟内存空间,为明文文件、密文文件、密钥文件及算法程序集合准备对应的存储空间,其中,密钥文件为加密和解密的共用文件,进一步对上述的文件进行初始化并对集合预设值进行设置; S2,对所述明文文件、密文文件和密钥文件分别创建对应的明文加密随机数、密文加密随机数和密钥加密随机数,根据加密随机数的值生成对应的第一指针和第二指针; S3,运行所述算法程序集合的算法程序对明文文件、密文文件、密钥文件进行第一指针和第二指针位移读取; S4,对第一指针和第二指针进行四次单向循环链表遍历,同时根据第一指针和第二指针所指向的字符位的异或结果,对明文文件进行多次迭代,得到密文文件。2.根据权利要求1所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,其中步骤SI还包括: 初始化明文文件,加载需要加密的明文文件,设置密钥文件码元个数,其中密钥文件的字节长度能进行自定义设置,进一步,密钥文件码元个数不大于明文文件码元个数,进而还包括自定义调取算法程序集合中的算法作为预设处理算法,其中每个加密或解密算法都对应还原算法。3.根据权利要求1所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,其中步骤SI还包括: 所述的明文文件、密文文件、密钥文件为单向循环链表存储方式的字节符集,该字节符集为{O,1},即当单向循环链表接收指针的读取时,自动将位于表尾的指针自动跳转至表头。4.根据权利要求1或2所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,其中步骤S2还包括: S201,获取明文文件的码元个数为n,选取小于η-1的整数作为明文字符随机数; S202,根据步骤S202获得的明文文件码元个数η,获取密钥文件的码元个数m,其中m不大于η,设置密文加密随机数,选取小于n-Ι的整数作为密钥字符随机数; S203,选取小于n-Ι的整数作为密文字符随机数; S204,存储明文字符随机数、密钥字符随机数和密文字符随机数。5.根据权利要求1所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,其中步骤S4还包括: S401,创建第一明文指针和第二明文指针分别指向明文码元,创建第一密钥指针和第二密钥指针,创建第一密文指针和第二密文指针,还包括确认明文、密钥、密文对应第一指针和第二指针之间的位移法则; S402,对第一密钥指针为第二密钥指针进行四次循环遍历,在循环遍历时对第一密钥指针和第二密钥指针进行异或判定; S403,根据步骤S402异或判定结果将第一密钥指针和第二密钥指针根据位移法则进行对应的计算,并将计算结果写入第一密文指针和第二密文指针; S404,将步骤S403写入结果的第一密文指针和第二密文指针的字符数据进行写入,并生成密文文件。6.根据权利要求5所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,其中步骤S402还包括: S4021,执行第一步对第一密钥指针和第二字密钥指针进行单向循环链表遍历,在进行第一密钥指针和第二密钥指针的异或判定时,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置; S4022,基于步骤S4021,执行二、三、四次单向循环链表遍历,根据每次单向循环链表时的异或判定条件的不同,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置。7.根据权利要求1所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,该方法还包括: S5,从算法程序集合调取所述步骤SI所设置的算法对应的还原算法,调取明文文件、密文文件、密钥文件对应的加密随机数,以及,需要进行解密的密文文件; S6,根据明文文件的长度,开辟密文字符数组,所述算法程序创建功能接口,用于根据加密随机数得到明文字符指针,该明文字符指针用于指向明文文件存储空间; S7,运行所述算法程序集合的还原算法程序对明文文件、密文文件、密钥文件进行第一指针和第二指针位移读取; S8,对第一密钥指针和第二密钥指针进行四次次循环链表遍历,同时根据第一密钥指针和第二密钥指针所指向的字符位的异或结果,遍历密文文件后生成明文文件。8.根据权利要求1所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,该方法还包括: S801,创建第一密文指针和第二密文指针分别指向明文码元,创建第一密钥指针和第二密钥指针,创建第一密文指针和第二密文指针,还包括确认明文、密钥、密文对应第一指针和第二指针之间的位移法则; S802,对第一密钥指针和第二密钥指针进行四次循环遍历,在循环遍历时对第一密钥指针和第二密钥指针进行异或判定; S803,根据步骤S802异或判定结果将第一密钥指针和第二密钥指针根据位移法则进行对应的计算,并将计算结果写入第一明文指针和第二明文指针; S804,将步骤S803写入结果的第一明文指针和第二明文指针的字符数据进行写入,并生成明文文件。9.根据权利要求7所述的基于流密码的双位单向循环链表加密解密方法,其特征在于,所述步骤S8还包括: S8021,执行第一步对第一密钥指针和第二字密钥指针进行单向循环链表遍历,在进行第一密钥指针和第二密钥指针的异或判定时,判定结果符合预设值则将明文指针及密文指针按照位移法则进行位移,如果不符合预设值与则仅对明文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置; S8022,基于步骤S801,执行二、三、四次单向循环链表遍历,根据每次单向循环链表时的异或判定条件的不同,判定结果符合预设值则将密文指针及名文指针按照位移法则进行位移,如果不符合预设值与则仅对密文指针进行位移,进一步当第二密钥指针为空时,对指针地址进行重置,直至完成四次单向循环链表遍历,完成解密。
【文档编号】H04L9/06GK105959118SQ201610279725
【公开日】2016年9月21日
【申请日】2016年4月28日
【发明人】司玉娟, 郎六琪
【申请人】吉林大学