葛藍(lán)
(廣州市公用事業(yè)高級(jí)技工學(xué)校,廣東 廣州 510100)
淺談維吉尼亞加密算法的原理與實(shí)現(xiàn)
葛藍(lán)
(廣州市公用事業(yè)高級(jí)技工學(xué)校,廣東 廣州 510100)
隨著計(jì)算機(jī)網(wǎng)絡(luò)和信息通信技術(shù)的發(fā)展,網(wǎng)絡(luò)信息安全已經(jīng)成為不可忽視的領(lǐng)域,密碼技術(shù)則是保護(hù)信息安全的核心技術(shù)。維吉尼亞(Vi g e n e r e)密碼算法是古典加密算法中的最典型的算法之一,是在單一的“凱撒密碼”基礎(chǔ)上擴(kuò)充出的多表密碼。本文介紹了維吉尼亞加密算法的原理及實(shí)現(xiàn)方法。
維吉尼亞;加密算法;維吉尼亞方陣
隨著信息技術(shù)的發(fā)展,網(wǎng)絡(luò)已成為信息傳遞的主要途徑,在傳輸過(guò)程中,網(wǎng)絡(luò)信息安全已成為不可忽視的領(lǐng)域,如何保證網(wǎng)絡(luò)信息的完整性、保密性,成為信息傳輸?shù)闹攸c(diǎn),其中數(shù)據(jù)加密技術(shù)是保護(hù)信息安全的核心技術(shù)。
數(shù)據(jù)加密的基本原理是:對(duì)明文數(shù)據(jù)按某種算法進(jìn)行處理,將其轉(zhuǎn)換為不可讀或毫無(wú)意義的一段代碼,稱(chēng)為“密文”,而“密文”只能在輸入正確的密鑰之后才能轉(zhuǎn)換為明文,通過(guò)這樣的途徑來(lái)達(dá)到保護(hù)數(shù)據(jù)安全,不被人非法竊取、閱讀、篡改。加密過(guò)程的逆過(guò)程稱(chēng)為解密,即將“密文”轉(zhuǎn)化為“明文”的過(guò)程。
維吉尼亞(Vigenere)密碼算法是古典加密算法中的最典型的算法之一,是在單一的“凱撒密碼”基礎(chǔ)上擴(kuò)充出的多表密碼。其原理是使用一串字母作為密鑰,結(jié)合維吉尼亞方陣,每一個(gè)密鑰字母被用來(lái)加密一個(gè)明文字母,第一個(gè)密鑰字母加密第一個(gè)明文字母,第二個(gè)密鑰字母加密第二個(gè)明文字母,以此類(lèi)推,當(dāng)密鑰字母全部使用完畢后,再重復(fù)使用。在此過(guò)程中,維吉尼亞方陣是固定的,密鑰長(zhǎng)度和內(nèi)容由通信雙方約定且只有通信雙方知道,并且不同的信息塊可以用不同的密鑰來(lái)加密,因此加密的可靠度較高,而破解的幾率較低,能較好地保護(hù)信息安全。舉例如下:
明文:CCNASECURITY 密鑰:TCPIP
加密過(guò)程:明文長(zhǎng)度為12個(gè)字符,密鑰長(zhǎng)度5個(gè)字符,因此從明文的第6個(gè)字符開(kāi)始,重復(fù)使用密鑰。結(jié)合維吉尼亞方陣,明文第一個(gè)字母“C”與密鑰第一個(gè)字母“T”組合,生成密文“V”,明文第二個(gè)字母“C”與密鑰第二個(gè)字母“C”組合,生成密文“E”,以此類(lèi)推,得出完整密文。解密則是加密的反過(guò)程。
圖1 維吉尼亞方陣
得出以下結(jié)果:
表1 加密結(jié)果
由此可見(jiàn),盡管加密方陣是已知的,但由于密鑰長(zhǎng)度可變,且只有通信雙方知道,相同的明文在加密后生成了不同的密文,且無(wú)替代規(guī)律,破解難度高,維吉尼亞加密法為信息傳輸提供了很好的安全保障。
使用多種程序設(shè)計(jì)語(yǔ)言均可實(shí)現(xiàn)維吉尼亞加密解密算法,如JAVA、JavaScript、C、C++等,算法實(shí)現(xiàn)的基本原理類(lèi)似,都是通過(guò)26個(gè)英文字母之間在密鑰的限定下進(jìn)行轉(zhuǎn)換,完成加密和解密的過(guò)程,本文介紹在C++中常用的加密算法。
2.1 程序設(shè)計(jì)流程圖
以加密過(guò)程為例,基本流程如下:
圖2 加密過(guò)程
2.2 算法實(shí)現(xiàn)
在本算法中規(guī)定明文長(zhǎng)度不超過(guò)50個(gè)字符,密鑰長(zhǎng)度為6個(gè)字符。用戶輸入明文和密鑰后,生成密鑰數(shù)組,通過(guò)密鑰數(shù)組和明文,生成密文,過(guò)程中忽略空格字符。如果用戶輸入的是小寫(xiě)字母,先轉(zhuǎn)換為大寫(xiě)字母后再進(jìn)行加密。
運(yùn)行程序:輸入明文abcdef,密鑰abcdef,進(jìn)行驗(yàn)證,生成密文ACEGIK,對(duì)照維吉尼亞方陣,程序結(jié)果正確。
圖3 運(yùn)行結(jié)果
以上是維吉尼亞加密算法的實(shí)現(xiàn),解密算法是加密算法的逆過(guò)程,不再?gòu)?fù)述。算法的實(shí)現(xiàn)方法不止一種,需要在實(shí)踐過(guò)程中不斷研究改進(jìn)。此外,任何加密算法都不能保證數(shù)據(jù)傳輸?shù)慕^對(duì)安全,還必須有多重?cái)?shù)據(jù)保護(hù)。
[1]王飛.基于v i g e n e r e密碼的文件加解密器的研究與實(shí)現(xiàn)[J].信息系統(tǒng)工程,2011(7):48-50.
[2]道格拉斯R.斯廷森.密碼學(xué)原理與實(shí)踐(第三版)[M].北京:電子工業(yè)出版社,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