一種計(jì)算機(jī)加密方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)及信息安全領(lǐng)域,提供了一種計(jì)算機(jī)加密方法,用于安全快速地將明文數(shù)據(jù)加密成密文,同時(shí)提供了一種使用該方法的計(jì)算機(jī)加密系統(tǒng),以通過多個(gè)部件并行加密。
【背景技術(shù)】
[0002]密碼學(xué)是一門既古老又年輕的學(xué)科,其產(chǎn)生時(shí)間很早,到了現(xiàn)代,由于計(jì)算機(jī)的出現(xiàn),密碼學(xué)和計(jì)算機(jī)結(jié)合在一起,獲得了極大的發(fā)展,現(xiàn)在的計(jì)算機(jī)及信息安全都依賴于計(jì)算機(jī)加密,因此安全且快速的計(jì)算機(jī)加密算法對(duì)于現(xiàn)代信息社會(huì)是極其重要的。
[0003]在密碼學(xué)中,需要被加密的數(shù)據(jù)稱為明文,加密后的數(shù)據(jù)稱為密文。加密和解密算法通常都是在密鑰的控制下進(jìn)行的,分別稱為加密密鑰和解密密鑰。如果加密密鑰和解密密鑰相同,或者可以由其中一個(gè)輕易推算出另一個(gè),則稱該算法為對(duì)稱密碼算法;如果不相同,并且從其中一個(gè)難以推算出另一個(gè),則稱為非對(duì)稱密碼算法?,F(xiàn)在常用的非對(duì)稱密碼算法是RSA算法,該算法的安全性依賴于大整數(shù)分解的困難度,但是,隨著現(xiàn)在計(jì)算機(jī)速度的不斷提升,大整數(shù)分解的速度也越來越快,因此為了安全性,RSA算法所需的密鑰長(zhǎng)度也不斷變長(zhǎng),由于非對(duì)稱密碼算法本身的加密時(shí)間就相對(duì)較長(zhǎng),在密鑰長(zhǎng)度變長(zhǎng)后,加密耗時(shí)就變得更長(zhǎng),加密效率就變得更低?;诖?,RSA算法通常只用于身份認(rèn)證和數(shù)字簽名領(lǐng)域,當(dāng)需要大量加密計(jì)算時(shí),通常優(yōu)先考慮使用對(duì)稱密碼算法。對(duì)于對(duì)稱密碼算法,現(xiàn)在常用的是DES算法(包括DES算法的各種變形,例如3DES等),但是,對(duì)DES算法的安全性疑慮一直存在,一方面是對(duì)其S盒選擇的安全疑慮(由于S盒是NSA人為選擇的,其選擇標(biāo)準(zhǔn)沒有公開,一直受到質(zhì)疑),另一方面由于DES算法是1972年提出的,這么多年來大量密碼學(xué)研宄人員對(duì)其進(jìn)行了大量研宄,通過這些研宄,攻擊DES算法所需的計(jì)算量也在不斷降低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的就在于克服現(xiàn)有技術(shù)的不足與缺陷,提供了一種新的計(jì)算機(jī)加密方法,該方法采用對(duì)稱密碼體制,并且不采用S盒這種人為選擇的加密機(jī)制,而從純數(shù)學(xué)上保證其加密的安全性。相對(duì)于現(xiàn)在常用的加密算法,本發(fā)明提供的方法不僅加密速度快,而且安全性高。
[0005]另一方面,基于上述加密方法,本發(fā)明還提出了一種計(jì)算機(jī)加密系統(tǒng),該系統(tǒng)包括包括三個(gè)協(xié)同工作的部件:CPU,加密卡和一個(gè)USB-key,由每個(gè)部件完成加密算法的一部分內(nèi)容,由于采用上述三個(gè)部件共同完成加密,基于該加密方法的特點(diǎn),每個(gè)部件僅能獲得其自己的一部分信息,因此提高了加密過程的安全性,即使攻擊者獲取了其中一個(gè)部件的控制權(quán),如果不能獲取其他兩個(gè)部件的信息,也不會(huì)破壞整體的安全性。
【附圖說明】
[0006]圖1: 128位密鑰K的表示
[0007]圖2:本發(fā)明的計(jì)算機(jī)加密系統(tǒng)
【具體實(shí)施方式】
[0008]首先,我們假設(shè)二進(jìn)制的明文P和密文C的位數(shù)都是64的倍數(shù),如果不是64的倍數(shù)則補(bǔ)上前導(dǎo)0使得P的位數(shù)是64的倍數(shù),則通過下述方法加密出的密文C的位數(shù)也是64的倍數(shù)。從而P和C可以按照如下表述的形式進(jìn)行組織,分別劃分成n個(gè)64位的塊:
[0009]P = PiPaPs......Pn
[0010]C =......Cn
[0011]其中PjPCi都是64位的塊(i = 1,2, 3,……,n)o
[0012]密鑰K是一個(gè)128位數(shù),劃分成4個(gè)32的塊,即
[0013]K = A1A2A3A4
[0014]其中Ai都是 32 位的塊(i = 1,2,3,4)。
[0015]將AjP A 3連接,形成一個(gè)64位的塊^,即B1= A人,將4和A 4連接,形成一個(gè)64位的塊B2,即B2= A 2A4,將A3和A 2連接,形成一個(gè)64位的塊B 3,即B3= A 3A2?另外,我們用I來表示密鑰K的第i位,密鑰K的表示可見圖1。
[0016]另外,設(shè)置兩個(gè)迭代映射h (x)和t2 (x),如下:
[0017](x) = 1.19x, t2 (x) = x/1.29
[0018]對(duì)上述兩個(gè)迭代映射的迭代用下式表示,我們用t(x) (y)來表示函數(shù)t(x)迭代y次,即:
[0019](x) (1) = (x),
[0020](x) (n) = (t: (x) (n-l))n>l
[0021]t2(x) (1) = t2(x),
[0022]t2(x) (n) = t2(t2(x) (n_l))n>l 時(shí)
[0023]上述兩個(gè)迭代映射的參數(shù)(1.19和1.29)不是隨意選擇的,我們通過對(duì)1000以內(nèi)所有可能的參數(shù)(精確到2位小數(shù))進(jìn)行演算和測(cè)試,發(fā)現(xiàn)1.19和1.29是雪崩效應(yīng)最好的兩個(gè)參數(shù),并且滿足嚴(yán)格雪崩準(zhǔn)則和位獨(dú)立準(zhǔn)則。
[0024]具體的加密和解密過程如下:
[0025]1)設(shè)置變量b = 0,計(jì)算迭代映射的兩個(gè)初始值\和Y 0,以及初始迭代次數(shù)I;,如下:
[0026]
[0027]YfBWL
[0028]T0= K60K61K62......K67
[0029]其中,符號(hào)?表不異或運(yùn)算。
[0030]2)變量b增加1 (即b = b+1),按照下式計(jì)算Xb,Yb和T b:
[0031]Xb= X h 十 C h 十 Y h
[0032]Yb= Yb—!十 Ch? B3
[0033]Tb= T H循環(huán)左移1位,
[0034]其中CQ= 0。
[0035]3)將迭代映射h (x)使用初始值Xb迭代T b次,結(jié)果記為t: (Xb) (Tb),將迭代映射t2 (x)使用初始值Yb迭代T b次,結(jié)果記為12 (Yb) (Tb)。計(jì)算
[0036]Mb= t JXb) (Tb)mod 264
[0037]Nb= t2 (Yb) (Tb)mod 264
[0038]4)按照下式計(jì)算,加密/解密第b個(gè)明文/密文塊,
[0039]Cb= S (P b)十 CV1 十 M b 十 N b
[0040]Pb= S-'(Cb十 Clrf 十 Mb十 Nb)
[0041]其中函數(shù)S可以是任意一個(gè)可逆函數(shù),S—1就是S的逆函數(shù),如果為了追求加密速度,則S可以選擇一個(gè)計(jì)算簡(jiǎn)單的可逆函數(shù)。進(jìn)一步的,S可以是現(xiàn)有技術(shù)中公知的加密函數(shù)(例如DES),則S—1是其相應(yīng)的解密函數(shù),此時(shí)本算法就相當(dāng)于在該加密函數(shù)S基礎(chǔ)上增加的一層加密殼,從而隱藏了 S可能具有的安全缺陷,大大提高該加密函數(shù)S的安全性。
[0042]5)如果明文/密文還未處理完,則跳轉(zhuǎn)到第2步,否則加密/解密結(jié)束。
[0043]基于上述加密方法,還可以設(shè)計(jì)一種新的計(jì)算機(jī)加密系統(tǒng),如果圖2,其主要包括三個(gè)協(xié)同工作的部件:CPU,加密卡和一個(gè)USB-key。
[0044]CPU是計(jì)算機(jī)自身的中央處理器,用戶從加密廠商購(gòu)買加密卡和USB-key,將加密卡通過PC1-E接口插入計(jì)算機(jī)的插槽內(nèi),此后加密卡就不再移動(dòng),而USB-key是用戶個(gè)人持有的一個(gè)USB設(shè)備,在需要加密時(shí),才由用戶插入計(jì)算機(jī)的USB接口,由于本發(fā)明加密算法的特性,上述加密算法的各個(gè)步驟可以在不同的部件中完成,其中第I步由加密廠商完成,將計(jì)算出的Xtl和Y ο存儲(chǔ)于加密卡中,將T C1存儲(chǔ)于USB-key中;當(dāng)進(jìn)行數(shù)據(jù)加密或解密時(shí),第2步的Xb和Yb由加密卡計(jì)算得出,再將結(jié)果發(fā)送給USB-key,Tb由USB-key計(jì)算得出,第3步也由USB-key計(jì)算完成,再將計(jì)算得到的Mb和Nb發(fā)送給處理器,最后由處理器完成第4步,由處理器將得到的密文發(fā)送給加密卡,最后由處理器進(jìn)行第5步的判斷,如果處理完,則結(jié)束計(jì)算,否則繼續(xù)計(jì)算。
[0045]由于采用上述三個(gè)部件共同完成加密,基于該加密方法的特點(diǎn),每個(gè)部件僅能獲得其自己的一部分信息,因此提高了加密過程的安全性,即使攻擊者獲取了其中一個(gè)部件的控制權(quán),如果不能獲取其他兩個(gè)部件的信息,也不會(huì)破壞整體的安全性。
【主權(quán)項(xiàng)】
1.一種計(jì)算機(jī)數(shù)據(jù)加密/解密方法,該方法將二進(jìn)制的明文P加密為密文C,其中P的位數(shù)是64的倍數(shù),并將P和C劃分成η個(gè)64位的塊,即 P = P1P2P3……Pn c = C1C2C3……Cn 密鑰K是一個(gè)128位的數(shù),劃分成4個(gè)32位的塊,即 K = A1A2A3A4 將AJP A 3連接,形成一個(gè)64位的塊B i,即B1= A人,將4和A 4連接,形成一個(gè)64位的塊B2,即B2= A 2A4,將A3和A 2連接,形成一個(gè)64位的塊B 3,即B3= A 3A2,用Ki來表示密鑰K的第i位; 設(shè)置兩個(gè)迭代映射h (x)和t2 (x),如下:h (X) = 1.19x, t2 (X) = x/1.29 所述方法的特征在于,其加密和解密的步驟如下: 1)設(shè)置變量b= O,計(jì)算迭代映射的兩個(gè)初始值\和Y ο,以及初始迭代次數(shù)Ttl,如下: Χ0=Β1ΘΒ2ΦΒ3 Y0= BiffiB2 T0= K60K61K62......K67 其中,符號(hào)?表示異或運(yùn)算; 2)變量b增加I(即b = b+Ι),按照下式計(jì)算Xb,Yb和T b: \ — X b_l ? C b-1 田 Y b-1 Yb — Y b-! ? C b_j ffi B 3 Tb= TV1循環(huán)左移I位, 其中C。= Oo 3)將迭代映射h(x)使用初始值Xb迭代T b次,結(jié)果記為t ! (Xb) (Tb),將迭代映射t2 (x)使用初始值Yb迭代T b次,結(jié)果記為12 (Yb) (Tb)。計(jì)算Mb= t i(Xb) (Tb)mod 264Nb= 12 (Yb) (Tb)mod 264 4)按照下式計(jì)算,加密/解密第b個(gè)明文/密文塊, Cb= S(Pb)十 Ch 十 Mb十 NbPb= SlCb 十 Clri 十 Mb 十 Nb) 其中函數(shù)S可以是任意一個(gè)可逆函數(shù),S—1就是S的逆函數(shù)。 5)如果明文/密文還未處理完,則跳轉(zhuǎn)到第2步,否則方法結(jié)束。
2.如權(quán)利要求1所述的計(jì)算機(jī)數(shù)據(jù)加密/解密方法,其中函數(shù)S可以是一個(gè)公知的加密函數(shù)。
3.如權(quán)利要求1-2任意一項(xiàng)所述的計(jì)算機(jī)數(shù)據(jù)加密/解密方法,其中函數(shù)S是DES算法。
4.如權(quán)利要求1-3任意一項(xiàng)所述的計(jì)算機(jī)數(shù)據(jù)加密/解密方法,其中如果P的位數(shù)不是64的倍數(shù),則對(duì)P補(bǔ)上前導(dǎo)0,使其位數(shù)成為64的倍數(shù)。
5.一種采用如權(quán)利要求1所述方法的計(jì)算機(jī)加密/解密系統(tǒng),該系統(tǒng)包括三個(gè)協(xié)同工作的部件:CPU,加密卡和USB-key,其中CPU是計(jì)算機(jī)自身的中央處理器,加密卡通過PC1-E接口插入計(jì)算機(jī)的插槽內(nèi),此后加密卡就不再移動(dòng),而USB-key是用戶個(gè)人持有的一個(gè)USB設(shè)備,在需要加密時(shí),才由用戶插入計(jì)算機(jī)的USB接口, 權(quán)利要求1所述的數(shù)據(jù)加密/解密方法的各個(gè)步驟在不同的部件中完成,其中第I步由加密卡和USB-key的生產(chǎn)廠商完成,將計(jì)算出的\和Y ^存儲(chǔ)于加密卡中,將T ^存儲(chǔ)于USB-key中;當(dāng)進(jìn)行數(shù)據(jù)加密或解密時(shí),第2步的Xb和Yb由加密卡計(jì)算得出,再將結(jié)果發(fā)送給USB-key,Tb由USB-key計(jì)算得出,第3步也由USB-key計(jì)算完成,再將計(jì)算得到的Mb和Nb發(fā)送給CPU,然后由CPU完成第4步,由CPU將得到的密文發(fā)送給加密卡,最后由CPU進(jìn)行第5步的判斷,如果處理完,則結(jié)束計(jì)算,否則繼續(xù)計(jì)算。
【專利摘要】本發(fā)明公開了一種計(jì)算機(jī)加密方法及系統(tǒng),該方法采用對(duì)稱密碼體制,通過分塊迭代的方式進(jìn)行加密,不僅加密速度快,而且安全性高。該系統(tǒng)包括三個(gè)協(xié)同工作的部件:CPU,加密卡和一個(gè)USB-key,由每個(gè)部件完成加密算法的一部分內(nèi)容,由于采用上述三個(gè)部件共同完成加密,基于該加密方法的特點(diǎn),加密安全性得到極大地提高。
【IPC分類】H04L29-06, H04L9-06
【公開號(hào)】CN104821946
【申請(qǐng)?zhí)枴緾N201510229028
【發(fā)明人】徐靜, 吳素芹, 徐森, 張成彬, 皋軍, 劉其明
【申請(qǐng)人】鹽城工學(xué)院
【公開日】2015年8月5日
【申請(qǐng)日】2015年5月7日