基于流密码的循环链表异或加密方法及解密方法

文档序号:9420140阅读:695来源:国知局
基于流密码的循环链表异或加密方法及解密方法
【技术领域】
[0001]本发明涉及信息加解密领域,特别是涉及一种基于流密码的循环链表异或加密方法及解密方法。
【背景技术】
[0002]斯诺登事件之后,各国对自己的信息安全都加大了研发力度。美国之所以能够获取他国的信息内容,不仅与美国在通信技术的技术优势,以及互联网的超级用户管理权有关,而且也与现有技术中所采用的加密方法容易被破解有关。目前主要采用的加密方法是基于流密码的加密方法。流密码(stream cipher),也称之为序列密码。由于流密码的分析和设计往往用于一个国家的军事和外交通信,所以,流密码的研发和设计基本上都是在保密的状态下进行,各个国家研发流密码的学者和专家为了保密几乎没有过多的这方面的公开的论著。各国都将流密码技术和产品,作为军工产品而限制出口。由于它具有许多其他密码不可比拟的优点,所以,它是当今最为通用的密码系统之一。
[0003]现在的流密码学的研究方向,都是以数学模型为基础,使用复杂的代数运算、布尔代数运算、伪随机数、移位寄存器、线性反馈等。完成流密码的加密和解密。在这方面比较成功的方法有A5方法,S盒方法,RC4方法,K2方法等。这些方法已经是不公开的秘密,经过多年的研究,对其加密和解密已经具有了一定的成熟手段。现在已有很多学者研究攻击和破译上述方法加密的密文。这就使得使用以上的方法进行加密的密文,其安全性受到极大的挑战。

【发明内容】

[0004]为了解决上述的技术问题,本发明的目的是提供一种基于流密码的循环链表异或加密方法,本发明的另一目的是提供一种基于流密码的循环链表异或解密方法。
[0005]本发明解决其技术问题所采用的技术方案是:
基于流密码的循环链表异或加密方法,包括:
51、分别选取字符随机数、第一加密随机数和第二加密随机数;
52、根据第一加密随机数和第二加密随机数的值,分别生成第一密钥字符指针和第二密钥字符指针使其指向密钥文件的对应字符位,同时根据字符随机数的值生成明文字符指针使其指向明文文件的对应字符位;
53、分别设定明文字符指针、第一密钥字符指针和第二密钥字符指针的遍历方向;
54、对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,遍历明文字符指针并生成密文文件。
[0006]进一步,所述步骤SI,其具体为:
获取明文文件的码元个数η后,选取小于该码元个数η的整数作为字符随机数,同时获取密钥文件的码元个数m后,分别选取两个小于该码元个数m的整数作为第一加密随机数和第二加密随机数。
[0007]进一步,步骤S4,包括:
541、在计算机内存开辟密文存储空间,并生成密文字符指针使其指向密文存储空间的首地址;
542、对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,对明文字符指针和密文字符指针进行遍历,并将明文字符指针所指向的字符填入密文字符指针所指向的密文存储空间中;
543、读取密文存储空间的字节,生成密文文件。
[0008]进一步,所述步骤S42,包括:
5421、对第一密钥字符指针和第二密钥字符指针进行循环链表遍历,若判断第一密钥字符指针和第二密钥字符指针所指向的字符位的异或结果为第一结果值,则将明文字符指针所指向的字符填入密文字符指针所指向的密文存储空间中,同时将明文字符指针和密文字符指针指向下一位,反之,将密文字符指针指向下一位;
5422、再次对第一密钥字符指针和第二密钥字符指针进行循环链表遍历,若判断第一密钥字符指针和第二密钥字符指针所指向的字符位的异或结果为第二结果值,则将明文字符指针所指向的字符填入密文字符指针所指向的密文存储空间中,同时将明文字符指针和密文字符指针指向下一位,反之,将密文字符指针指向下一位;
所述第一结果值和第二结果值的异或结果为I。
[0009]本发明解决其技术问题所采用的另一技术方案是:
基于流密码的循环链表异或解密方法,包括:
55、获取字符随机数、第一加密随机数和第二加密随机数,同时在计算机内存开辟明文存储空间;
56、根据第一加密随机数和第二加密随机数的值,分别生成第一密钥字符指针和第二密钥字符指针使其指向密钥文件的对应字符位,同时根据字符随机数的值生成明文字符指针使其指向明文存储空间的对应字符位;
57、分别获取明文字符指针、第一密钥字符指针和第二密钥字符指针的遍历方向;
58、对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,遍历密文文件后生成明文文件。
[0010]进一步,所述步骤S8,包括:
581、生成密文字符指针使其指向密文文件的第一位;
582、对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,对密文字符指针和明文字符指针进行遍历,并将密文字符指针所指向的字符填入明文字符指针所指向的明文存储空间中;
583、读取明文存储空间的字节,生成明文文件。
[0011]进一步,所述步骤S82,包括:
5821、对第一密钥字符指针和第二密钥字符指针进行循环链表遍历,若判断第一密钥字符指针和第二密钥字符指针所指向的字符位的异或结果为第一结果值,则将密文字符指针所指向的字符填入明文字符指针所指向的明文存储空间中,同时将密文字符指针和明文字符指针指向下一位,反之,将密文字符指针指向下一位;
5822、再次对第一密钥字符指针和第二密钥字符指针进行循环链表遍历,若判断第一密钥字符指针和第二密钥字符指针所指向的字符位的异或结果为第二结果值,则将密文字符指针所指向的字符填入明文字符指针所指向的明文存储空间中,同时将密文字符指针和明文字符指针指向下一位,反之,将密文字符指针指向下一位;
所述第一结果值和第二结果值的异或结果为I。
[0012]进一步,所述密钥文件的码元个数m小于等于明文文件的码元个数η。
[0013]本发明的有益效果是:本发明的基于流密码的循环链表异或加密方法,包括:分别选取字符随机数、第一加密随机数和第二加密随机数;根据第一加密随机数和第二加密随机数的值,分别生成第一密钥字符指针和第二密钥字符指针使其指向密钥文件的对应字符位,同时根据字符随机数的值生成明文字符指针使其指向明文文件的对应字符位;分别设定明文字符指针、第一密钥字符指针和第二密钥字符指针的遍历方向;对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,遍历明文字符指针并生成密文文件。本加密方法实现方式简单,灵活性强,安全性高,可靠性高。
[0014]本发明的另一有益效果是:本发明的基于流密码的循环链表异或解密方法,包括:获取字符随机数、第一加密随机数和第二加密随机数,同时在计算机内存开辟明文存储空间;根据第一加密随机数和第二加密随机数的值,分别生成第一密钥字符指针和第二密钥字符指针使其指向密钥文件的对应字符位,同时根据字符随机数的值生成明文字符指针使其指向明文存储空间的对应字符位;分别获取明文字符指针、第一密钥字符指针和第二密钥字符指针的遍历方向;对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,遍历密文文件后生成明文文件。本解密方法实现方式简单,灵活性强,安全性高,可靠性高。
【附图说明】
[0015]下面结合附图和实施例对本发明作进一步说明。
[0016]图1是本发明的基于流密码的循环链表异或加密方法的流程图;
图2是本发明的基于流密码的循环链表异或解密方法的流程图;
图3是本发明的基于流密码的循环链表异或加密方法的详细实施例中对明文文件进行遍历加密的列表示意图;
图4是本发明的基于流密码的循环链表异或解密方法的详细实施例中对密文文件进行遍历解密的列表示意图。
【具体实施方式】
[0017]参照图1,本发明提供了一种基于流密码的循环链表异或加密方法,包括:
51、分别选取字符随机数、第一加密随机数和第二加密随机数;
52、根据第一加密随机数和第二加密随机数的值,分别生成第一密钥字符指针和第二密钥字符指针使其指向密钥文件的对应字符位,同时根据字符随机数的值生成明文字符指针使其指向明文文件的对应字符位;
53、分别设定明文字符指针、第一密钥字符指针和第二密钥字符指针的遍历方向;
54、对第一密钥字符指针和第二密钥字符指针进行两次循环链表遍历,同时根据两者所指向的字符位的异或结果,遍历明文字符指针并生成密文文件。
[0018]进一步作为优选的实施方式,所述步骤SI,其具体为:
获取明文文件的码元个数η后,选取小于该码元个数η的整数作为
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1