鄒汪平
(池州職業(yè)技術(shù)學(xué)院 信息技術(shù)系,安徽 池州247000)
遺傳算法在計(jì)算機(jī)加密解密技術(shù)中的應(yīng)用
鄒汪平
(池州職業(yè)技術(shù)學(xué)院 信息技術(shù)系,安徽 池州247000)
隨著信息時(shí)代的到來,人們對(duì)信息的了解逐漸加深,信息的應(yīng)用領(lǐng)域也越來越廣,信息的安全性也越來越受到重視,各種加密技術(shù)應(yīng)運(yùn)而生。文章首先介紹了遺傳算法全局尋優(yōu)和強(qiáng)收斂性的特點(diǎn),然后將遺傳算法特點(diǎn)與加密技術(shù)相結(jié)合實(shí)現(xiàn)高強(qiáng)度的加密解密應(yīng)用。分析表明,該應(yīng)用設(shè)計(jì)具有良好的安全性和可靠性性。
加密;解密;遺傳算法;應(yīng)用
對(duì)數(shù)據(jù)進(jìn)行加密, 通常要經(jīng)過 Intranet、Extranet和Internet對(duì)信息進(jìn)行安全轉(zhuǎn)換,從技術(shù)層面看,加密是指通過數(shù)學(xué)方法,把郵件或是信息設(shè)置為不可讀狀態(tài),進(jìn)而實(shí)現(xiàn)保護(hù)數(shù)據(jù)的目標(biāo)。研發(fā)具有加密功能的計(jì)算機(jī)軟件,是軟件專員最主要的工作職責(zé),同樣也是整個(gè)軟件研發(fā)程序中最關(guān)鍵的環(huán)節(jié)。創(chuàng)建出一種,能從密碼圖表中尋找到最佳解的算法,這是關(guān)系到全局尋優(yōu)和收斂速率高低的重要環(huán)節(jié),而遺傳算法的出現(xiàn)解決了這一難題。
1.1 傳統(tǒng)的計(jì)算機(jī)數(shù)據(jù)加密途徑分析
傳統(tǒng)的計(jì)算機(jī)數(shù)據(jù)加密,一般會(huì)采取加密數(shù)據(jù)流的途徑,由于此途徑使用起來較方便,操作簡(jiǎn)單,但是此途徑運(yùn)用前,所受局限性較大,只能用于了解到密文和原文的前提下,如果對(duì)其中一方面不了解,就會(huì)對(duì)破譯工作帶來困難,甚至是不可以進(jìn)行的。優(yōu)質(zhì)的傳統(tǒng)加密算法,其使用起來非但對(duì)系統(tǒng)性能不會(huì)造成影響,還會(huì)在使用過程中,將自身的優(yōu)點(diǎn)全能發(fā)揮出來。
1.2 傳統(tǒng)解密法的過程解析
以上所提到的加密算法,都是具有高效加密和破譯功能的,具體從一個(gè)例子中說明:假設(shè)要對(duì)某些數(shù)據(jù)進(jìn)行加密,首先基于RSA算法在RSA公鑰的作用下加密密鑰“34567”并將其放置在所需加密數(shù)據(jù)之前配以分隔符或文件長(zhǎng)度將其跟加密數(shù)據(jù)區(qū)分。在對(duì)稱加密算法的作用下對(duì)正文使用密鑰“34567”進(jìn)行加密后,一旦接收到密文就會(huì)通過RSA私鑰在確定加密密鑰“34567”的基礎(chǔ)上利用解密數(shù)據(jù)。這就是一個(gè)完整的傳統(tǒng)解密數(shù)據(jù)的過程。
1.3 遺傳算法出現(xiàn)的意義
密碼是整個(gè)加密解密過程中,最重要的環(huán)節(jié)之一,也是最大的突破點(diǎn)。然而理論上可行的算法,往往實(shí)際上會(huì)因?yàn)楹臅r(shí)巨大卻又不能滿足需求。因此設(shè)計(jì)既高效又科學(xué)的算法才是數(shù)據(jù)加密的首要問題,而改進(jìn)的算法必須具備強(qiáng)收斂性和全局巡游的特點(diǎn),恰好遺傳算法(Genetic Algorithms)由于其獨(dú)有的強(qiáng)收斂性、全局尋優(yōu)以及智能搜索等多種特性能夠很好的滿足上述密碼表的生成條件,因此被廣泛應(yīng)用。
2.1 遺傳算法的理論來源
遺傳算法被認(rèn)為是唯一能高效解決優(yōu)化問題的計(jì)算方法[2]。遺傳算法是依據(jù)Morgan的基因原理、Eldridge和Gould的間斷平衡理論而建立的,并涉及到Mayr的邊緣物種理論以及Bertalanffv一般系統(tǒng)思想的并行優(yōu)化算法。這些原理和理論都是源于達(dá)爾文的自然界遺傳學(xué),其中包含:繼承、進(jìn)化和優(yōu)勝劣汰等相關(guān)理論原理,取名為遺傳算法[3]。其本質(zhì)就是自然界中經(jīng)過自然淘汰、優(yōu)化后得到有機(jī)體的進(jìn)化機(jī)制結(jié)合同一群體間其他所有個(gè)體間進(jìn)行信息交換的搜索算法。
2.2 遺傳算法使用過程的解析
求解遺傳算法的最優(yōu)化問題的第一步就是采用二進(jìn)制編碼可行域中的點(diǎn)并從中隨機(jī)選擇一部分構(gòu)造第一代進(jìn)化點(diǎn),在此基礎(chǔ)上得到編碼適應(yīng)度較高的點(diǎn)作為一定標(biāo)準(zhǔn)隨機(jī)抽選編碼構(gòu)造下一代進(jìn)化點(diǎn)。這樣的生成機(jī)制中遺傳算法提供交叉和變異兩種方式對(duì)進(jìn)化點(diǎn)進(jìn)行交換,其不同之處在于前者交換隨機(jī)兩個(gè)編碼而后者是對(duì)某一隨機(jī)編碼的某一位進(jìn)行取反操作。在此機(jī)制下循環(huán)往復(fù),不斷構(gòu)造新的編碼組。
3.1 密碼轉(zhuǎn)表的使用分析
在實(shí)際應(yīng)用后,人們發(fā)現(xiàn)遺傳算法也會(huì)存在過早就進(jìn)行最優(yōu)解收斂的問題,這樣就會(huì)導(dǎo)致很難實(shí)現(xiàn)全局最優(yōu)化的目標(biāo)。通常情況下,利用某一數(shù)字使其生成一個(gè)能重復(fù)制造出偽隨機(jī)的數(shù)字序列,若在此過程中會(huì)用到128個(gè)表項(xiàng),在產(chǎn)生隨機(jī)數(shù)列的同時(shí),以隨機(jī)數(shù)序列的形式產(chǎn)生密碼轉(zhuǎn)表[5]。在密碼轉(zhuǎn)表中,有一個(gè)存有128個(gè)隨機(jī)數(shù)的矩陣,記錄每個(gè)數(shù)的初始位置并結(jié)合表中數(shù)據(jù)排序后的每個(gè)數(shù)的位置產(chǎn)生一個(gè)隨機(jī)數(shù)序列表 (數(shù)字在0-127之間)。然后通過映射原理構(gòu)造解碼表。如果有C映射到D,則一定有D映射到C,記為D[C[N]]=N.(其中N是0-127之間任意數(shù))。然后利用循環(huán)賦值生成另外一個(gè)解碼表與之前生成的加密表對(duì)應(yīng)[6]。此時(shí)就構(gòu)造出兩個(gè)轉(zhuǎn)換表,加密解密工作順利展開。比如前一個(gè)轉(zhuǎn)換表的密文是128字節(jié)表的索引,為達(dá)到增強(qiáng)加密的作用,就可利用多余8位值作為索引字節(jié)。若該表為128*128的字符數(shù)組,則有:
Encrypt1=X[Encrypt0][value]
3.2 變量的研究
在表達(dá)式中共包含兩個(gè)變量:變量“Encrypt1”,指加密數(shù)據(jù),其前驅(qū)就是“Encrypt0”,第一個(gè)加密數(shù)據(jù)需要一個(gè)隨機(jī)數(shù)“種子”如果使用8個(gè)字節(jié)產(chǎn)生表的索引,就要把128位的密鑰作為其初始 “種子”,待產(chǎn)生隨機(jī)數(shù)表后,方可對(duì)數(shù)據(jù)加密,其中最重要的環(huán)節(jié)就是要確保加密和解密兩個(gè)過程中所用的加密值表作為索引完全一致[7]。
3.3 探討具體應(yīng)用和算法
利用遺傳法在實(shí)際的加密編碼的實(shí)現(xiàn)過程中,前提是加密的序列的隨機(jī)性必須得以保障。解密的過程均只基于加密時(shí)的隨機(jī)序列。任意字符序列都將被加密轉(zhuǎn)化為亂碼并且每個(gè)字符的加密又基于其前驅(qū)字符的密鑰而并非其字符本身,這將會(huì)有效地隱藏加密文本的實(shí)際內(nèi)容和長(zhǎng)度。隨機(jī)數(shù)的產(chǎn)生可以利用各種程序設(shè)計(jì)語言中自帶的函數(shù)或者方法,當(dāng)然也可以通過自定義的方式生成隨機(jī)數(shù)。例如選用的隨機(jī)數(shù)序列值在0到表中的任意數(shù)之間,算法偽碼描述如下:
int process1(void*r1,void*r2){
long**rr1=long**r1;
long**rr2=long**r2;
if(**rr1<**rr2)return-1;
else if(**rr1>*rr2)
return 1;
return 0;
}
……
intw1;
long*rand1[128],rand1[128];
int result1[128];
for(w1=0;w1<128;w1++;{
rand1[w1]=rand1+w1
}
rsort1(rand1,128,size of(*rand1),process1);
for(w1=0;w1<128;w1++){
result1[w1]=(int)(rand1[w1]-rand);
}
……
算法中,變量result1是存儲(chǔ)值為0-127之間的一個(gè)有序整型數(shù)組。這個(gè)整型數(shù)組在使用隨機(jī)數(shù)種子構(gòu)造簡(jiǎn)短密鑰的過程中非常有效。該算法在多次優(yōu)化設(shè)計(jì)下有效地降低了隨機(jī)字符出現(xiàn)的重復(fù)率,大大增加了暴力解密的時(shí)間,甚至可以實(shí)現(xiàn)在目前現(xiàn)有條件下無法解密。
綜上所述,本文研究了遺產(chǎn)算法的優(yōu)點(diǎn):全局尋優(yōu)和強(qiáng)收斂性,還經(jīng)過分析具體的操作過程以及運(yùn)算方式,深入探討了這一計(jì)算機(jī)加密技術(shù)的應(yīng)用方法并在加密解密的過程中提高了有效性。
[1]王育欣.數(shù)據(jù)加密技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)安全中的應(yīng)用[C]//第九屆沈陽科學(xué)學(xué)術(shù)年會(huì)論文集:經(jīng)濟(jì)管理與人文科學(xué)分冊(cè),2012.
[2]李曉利.數(shù)據(jù)加密技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)安全中的應(yīng)用探討[J].數(shù)字技術(shù)與應(yīng)用,2011(6):87-89.
[3]馬書月,王劍.基于自適應(yīng)遺傳算法的數(shù)字混沌加密技術(shù)研究[J].計(jì)算機(jī)仿真,2011(10):59-60.
[4]鄭曉寧.數(shù)據(jù)加密技術(shù)[J].信息與電腦:理論版,2010(2):31-32.
[5]廉士珍.計(jì)算機(jī)網(wǎng)絡(luò)通信安全中數(shù)據(jù)加密技術(shù)的應(yīng)用分析[J].硅谷,2010(10):66-66.
[6]徐雁萍.數(shù)據(jù)加密技術(shù)的研究[C]//中國氣象學(xué)會(huì)2008年年會(huì)第二屆研究生年會(huì)分會(huì)場(chǎng)論文集,2008:151-158.
[7]刁訓(xùn)娣.基于多目標(biāo)遺傳算法的項(xiàng)目調(diào)度及其仿真研究[J].上海交通大學(xué),2010(5):78-79.
[責(zé)任編輯:桂傳友]
TP312
A
1674-1104(2013)06-0051-02
2013-04-21
鄒汪平(1982-),男,安徽安慶人,池州職業(yè)技術(shù)學(xué)院信息技術(shù)學(xué)講師,碩士,研究方向?yàn)樗惴ㄑ芯颗c設(shè)計(jì)。