Vigenere密码的自动破解毕业论文
2021-10-28 20:47:13
摘 要
随着信息技术的发展,作为信息安全的关键问题的密码学已经成为国际社会关注的焦点,并广泛的应用于网络通信等应用之中。本文以维吉尼亚密码为基础,通过编写基于c语言的维吉尼亚密码自动破解程序,了解维吉尼亚密码的构成原理,学习体会密码学的基础知识,主要的工作内容涉及以下几个方面:
维吉尼亚密码密钥长度的确认,维吉尼亚密码密钥确认,通过密钥破解维吉尼亚密码密文。当程序运行时,通过读取保存有密文的文本文件,分析破解密文密钥的长度及字母,将其输出,并通过密钥将密文破解翻译成明文输出,同时生成保存有明文的文本文件。
关键词:维吉尼亚密码 明文 密钥 重合指数法
Abstract
With the development of information technology, cryptography, as the key problem of information security, has become the focus of the international community, and is widely used in network communication and other applications. In this paper, based on the Vigenere code, by writing the automatic password cracking program based on C language, we can understand the composition principle of the Vigenere code and learn the basic knowledge of cryptography. The main work involves the following aspects:
Confirm the length of the Vigenere password key, confirm the Vigenere password key, and crack the Vigenere password through the key. When the program is running, by reading the text file with the ciphertext saved, analyzing the length and letter of the key to crack the ciphertext, output it, and translate the ciphertext cracking into plaintext output through the key, and generate the text file with the plaintext saved at the same time.
key word :Vigenere Cipher plaintext secret key index of coincidence
目录
摘要 1
Abstract 1
第一章绪论 1
1.1研究背景 1
1.2密码学发展与维吉尼亚密码 1
1.3研究内容 2
1.4论文组织结构 2
1.5本章小结 3
第二章维吉尼亚密码破解方法 4
2.1维吉尼亚密码的基本原理 4
2.2维吉尼亚密码的破解思路 5
2.3破解维吉尼亚密码的具体方法 5
2.3.1确定密钥长度 5
2.3.2确定密钥 7
2.3.3破解密文 7
2.4本章小结 7
第三章维吉尼亚密码自动破解的编程实现 8
3.1确定密钥长度 8
3.2确定具体密钥 8
3.3破解密文 8
3.4系统测试 9
3.4.1测试任务 9
3.4.2测试目标 9
3.4.3测试原则 9
3.4.4测试方法 11
3.4.5对于程序可靠性与效率的探究 11
3.4.6测试分析 15
3.5本章小结 15
第四章总结与展望 17
致谢 18
参考文献 19
第一章绪论
1.1研究背景
近些年来,随着计算机网络的蓬勃发展,互联网早已走进千家万户,人们对于信息技术的应用愈加广泛,而智能手机的推出更是进一步改变了人们的生产和生活方式,但新的改变也意味着新的问题与风险。网络安全问题开始逐渐走入大众的视野,成为了人们百说不厌的新话题[6]。因为在大量信息飞速传递的互联网上,每台接入的计算机都或多或少的存在一些安全漏洞,这些漏洞往往会被人利用,导致诸如系统被破坏、数据丢失、机密文件信息泄露等问题,造成直接或者间接的精神、经济损失。因此曾用于军事领域的密码学就逐渐地被专业人士所发掘,而专业人士在经过深入地研究后,将密码学广泛地应用到了网络信息之中,在确保网络信息的安全的同时,也确保了信息的准确性。
人们对密码的研究包含编译与破译,而包含这两种知识的学科就是密码学。其中包括应用于编码来确保信息秘密的编码学和应用于破译密码以求获取信息情报的破译学。人们通过编码学设计密码,通过特定的密钥对信息进行一种特殊变换,将明文转换为密文,而信息的接受方通过该密钥将密文转换为明文,以此来获得信息[8]。同样的,人们也可以通过破译学的知识,运用各种方法,在没有密钥的情况下,将密文破解翻译成明文。密码学就是在编码与破译的斗争与实践中不断地发展、壮大,成为如今的一门综合性的尖端技术科学。而维吉尼亚密码作为一种经典的古典密码,即便在现在也仍然在某些方面被人们使用,也是人们学习密码学的一个很好的案例[9]。
1.2密码学发展与维吉尼亚密码
最早的密码学在公元前400多年便已经诞生,几乎可以说是与文字一同诞生的。人类使用密码大至可以分为以下三个阶段:1949年之前的古典密码学阶段,人们刚刚开始使用密码;1949年至1975年的近代密码学阶段,密码学开始真正成为一门新的学科;1976年及之后的现代密码学阶段,人们提出了“公钥密码”的概念。而维吉尼亚密码就是古典密码学中的一个非常经典的密码。
维吉尼亚密码的构造源于罗马帝国时期凯撒大帝设计过的一种简单的移位密码,它在当时被用于战争时期的通信,被后人称之为凯撒密码。凯撒密码的原理是选择一个字母作为密钥,然后将明文的所有字母,依据其在字母表中的顺序,依次递推密钥字母在字母表中的顺序,这样就得到了经凯撒密码加密的密文,而解密密文则只需进行与加密过程相反的操作即可[7]。
凯撒密码在当时面对大部分目不识丁的人来说是行之有效的加密方式,但其实非常容易被破解,不论是通过频率分析破解,还是单纯的通过穷举依次用26种密钥翻译密文,都能够有效的破解凯撒密码[11]。因此,人们在凯撒密码的基础之上进行了改进,维吉尼亚密码应运而生。
相较于凯撒密码,维吉尼亚密码采用一组字符串作为密钥,依次通过密钥中的每个字母对明文进行与凯撒密码相同的加密,通过这样在一定程度上规避了直接的频率攻击;此外,由于密钥是一组字符串,虽然大部分的维吉尼亚密码密钥均为有意义的单词,但单词的数量庞大,单纯的穷举也无法破解维吉尼亚密码。
1.3研究内容
本设计主要为了实现维吉尼亚密码的自动破解,实现不需要人力干预,通过计算机自动地破解维吉尼亚密码。使维吉尼亚密码的破解效率更高,避免因为人力而造成的误差,可以通过更快更强大的计算力尝试破解更复杂的维吉尼亚密码。此外,不需人力干预的自动破解可以更好的利用碎片化的时间等资源,也能通过大量的测试,收集数据,为可信度提供保障。