浅谈维吉尼亚加密算法的原理与实现
2017-05-19葛蓝
葛蓝
(广州市公用事业高级技工学校,广东 广州 510100)
浅谈维吉尼亚加密算法的原理与实现
葛蓝
(广州市公用事业高级技工学校,广东 广州 510100)
随着计算机网络和信息通信技术的发展,网络信息安全已经成为不可忽视的领域,密码技术则是保护信息安全的核心技术。维吉尼亚(Vi g e n e r e)密码算法是古典加密算法中的最典型的算法之一,是在单一的“凯撒密码”基础上扩充出的多表密码。本文介绍了维吉尼亚加密算法的原理及实现方法。
维吉尼亚;加密算法;维吉尼亚方阵
1 维吉尼亚加密算法
随着信息技术的发展,网络已成为信息传递的主要途径,在传输过程中,网络信息安全已成为不可忽视的领域,如何保证网络信息的完整性、保密性,成为信息传输的重点,其中数据加密技术是保护信息安全的核心技术。
数据加密的基本原理是:对明文数据按某种算法进行处理,将其转换为不可读或毫无意义的一段代码,称为“密文”,而“密文”只能在输入正确的密钥之后才能转换为明文,通过这样的途径来达到保护数据安全,不被人非法窃取、阅读、篡改。加密过程的逆过程称为解密,即将“密文”转化为“明文”的过程。
维吉尼亚(Vigenere)密码算法是古典加密算法中的最典型的算法之一,是在单一的“凯撒密码”基础上扩充出的多表密码。其原理是使用一串字母作为密钥,结合维吉尼亚方阵,每一个密钥字母被用来加密一个明文字母,第一个密钥字母加密第一个明文字母,第二个密钥字母加密第二个明文字母,以此类推,当密钥字母全部使用完毕后,再重复使用。在此过程中,维吉尼亚方阵是固定的,密钥长度和内容由通信双方约定且只有通信双方知道,并且不同的信息块可以用不同的密钥来加密,因此加密的可靠度较高,而破解的几率较低,能较好地保护信息安全。举例如下:
明文:CCNASECURITY 密钥:TCPIP
加密过程:明文长度为12个字符,密钥长度5个字符,因此从明文的第6个字符开始,重复使用密钥。结合维吉尼亚方阵,明文第一个字母“C”与密钥第一个字母“T”组合,生成密文“V”,明文第二个字母“C”与密钥第二个字母“C”组合,生成密文“E”,以此类推,得出完整密文。解密则是加密的反过程。
图1 维吉尼亚方阵
得出以下结果:
表1 加密结果
由此可见,尽管加密方阵是已知的,但由于密钥长度可变,且只有通信双方知道,相同的明文在加密后生成了不同的密文,且无替代规律,破解难度高,维吉尼亚加密法为信息传输提供了很好的安全保障。
2 用Visual C++实现维吉尼亚加密算法
使用多种程序设计语言均可实现维吉尼亚加密解密算法,如JAVA、JavaScript、C、C++等,算法实现的基本原理类似,都是通过26个英文字母之间在密钥的限定下进行转换,完成加密和解密的过程,本文介绍在C++中常用的加密算法。
2.1 程序设计流程图
以加密过程为例,基本流程如下:
图2 加密过程
2.2 算法实现
在本算法中规定明文长度不超过50个字符,密钥长度为6个字符。用户输入明文和密钥后,生成密钥数组,通过密钥数组和明文,生成密文,过程中忽略空格字符。如果用户输入的是小写字母,先转换为大写字母后再进行加密。
运行程序:输入明文abcdef,密钥abcdef,进行验证,生成密文ACEGIK,对照维吉尼亚方阵,程序结果正确。
图3 运行结果
以上是维吉尼亚加密算法的实现,解密算法是加密算法的逆过程,不再复述。算法的实现方法不止一种,需要在实践过程中不断研究改进。此外,任何加密算法都不能保证数据传输的绝对安全,还必须有多重数据保护。
[1]王飞.基于v i g e n e r e密码的文件加解密器的研究与实现[J].信息系统工程,2011(7):48-50.
[2]道格拉斯R.斯廷森.密码学原理与实践(第三版)[M].北京:电子工业出版社,2009.
The Principle and Implementation of Vigenere EncryptionAlgorithm
Ge Lan
(Guangzhou Public UtilityAdvanced Technical School,Guangzhou 510100,Guangdong)
tract】 With the development of computer network and information communication technology,network information security has become a field that should be paid attention to,and its core technology is ciphergraph.Vigenere algorithm is one of the most typical classical encryption algorithms,which is a multi-table password expanded from the single"Caesar Cipher".This paper introduces the principle and realization method of Vigenere encryption algorithm.
words】 Vigenere;encryption algorithm;Vigenere square
TP309.7
A
1008-6609(2017)04-0064-02