混合加密算法之異或運算
針對DES對稱加密算法中密鑰安全性保密困難且不易管理、RSA非對加密算法加密速度慢不易實現(xiàn)的缺點,我們在研究信息明文與隨機產(chǎn)生的加密密鑰之間的異或運算進行信息明文加密、同時將信息明文的加密密鑰按RSA算法進行加密管理以安全的傳輸?shù)浇邮辗?,基于此,提出了一種基于異或運算的混合加密算法。
一、DES對稱加密算法
DES對稱加密算法是由IBM公司在70年代初為硬件應(yīng)用而設(shè)計的,之后由美國政府作為一個官方標(biāo)準(zhǔn)定義和支持的加密法。DES加密算法自公布之日起,人們就對它進行了深入的研究,它是世界上最為著名的、使用最為廣泛的加密算法之一,一直應(yīng)用于銀行業(yè)和金融界。
DES算法加密信息的基本工作原理是:
(l)通信開始之前,收發(fā)雙方共同協(xié)商約定一致的密鑰Key用于信息明文的加密。
(2)通信開始后,發(fā)送方首先用密鑰Key對信息明文進行16輪迭代置換運算形成加密密文,通過傳輸系統(tǒng)發(fā)送到接收方;接收方收到來自發(fā)送方發(fā)送過來的密文信息,用密鑰Key對密文信息采用同樣的算法進行反方向的16輪迭代置換運算還原得到信息明文!
由此可以看出,DES對稱加密算法由于收發(fā)雙方采用相同的密鑰進行信息的加密解密,因此DES對稱加密算法的優(yōu)點是易于實現(xiàn)、速度快;但是,DES對稱加密由于算法是完全公開的,它的安全性完全依賴于密鑰的保安性強度,在多用戶之間進行通信加密時,每一對用戶需要使用一個密鑰,N個用戶就需要使用Ⅳ(N-1)/2個不同的密鑰,這樣才能保證收發(fā)雙方收發(fā)密文時第三者無法了解其所使用的密鑰和密文內(nèi)容,當(dāng)N很大時,記住如此多的密鑰是不可能的,而保留起來又會引起密鑰泄漏的可能性增加,另外,如何安全地將加密解密所使用的密鑰傳送給對方,也是一個必須考慮的問題。因此,DES對稱加密算法的缺點是安全性低、密鑰管理不方便。
二、RSA非對稱加密算法
RSA非對稱加密算法又稱公鑰密鑰算法,采用RSA算法加密的通信系統(tǒng)中,收發(fā)雙方都擁有一對不同的密鑰,其中一個在通信系統(tǒng)中公開,發(fā)送方通過獲取此密鑰來加密信息明文,這個密鑰稱為公鑰;另一個密鑰接收方用于解密密文信息,稱為私鑰,且私鑰和公鑰是不同的、解密用的私鑰不能根據(jù)加密用的公鑰計算出來。公鑰和私鑰成對出現(xiàn),而且兩個密鑰之間存在數(shù)學(xué)關(guān)系。這種數(shù)學(xué)關(guān)系指的是RSA算法的理論基礎(chǔ),初等數(shù)論中的質(zhì)數(shù)分解因子。眾所周知,將兩個質(zhì)數(shù)相乘,乘積是很容易算出的。但反過來要將這個乘積值再分解成原來的兩個質(zhì)數(shù)卻相當(dāng)困難了,因為即使是速度最快的計算機,要將一個大的乘積分解還原為得出此積的兩個質(zhì)數(shù)也要很長的時間。只要乘積的位數(shù)足夠長,要想將乘積分解還原幾乎不可能,據(jù)數(shù)學(xué)家推算,用可預(yù)測的未來計算能力分解兩個250位長的質(zhì)數(shù)的乘積要用幾百萬年。因此,RSA非對稱加密算法的優(yōu)點是安全性高,用戶不必記憶大量的提前商定好的密鑰,密鑰的管理簡單方便;缺點是加密速度慢,在選擇密文攻擊面前很脆弱。
RSA算法步驟如下:
(1)選取兩個足夠大素數(shù)m和n,并計算其乘積s =m*n。
(2)隨機選取加密密鑰e,使得e與(m-l),(n-1)互素。
(3)求解密鑰d,以滿足ed≡lmod(m-1).(n-1),從而求得解密密鑰:
![]()
(4)公開e和s,將d保密,丟棄m和n。
(5)加密明文信息p時,首先將它分成比s小的數(shù)據(jù)組。例如,m和n為100位的素數(shù),那么s將有200位,每個信息分組應(yīng)小于200位長(如果需要加密固定的消息分組,那么可以在它的左邊填充一些0并確保該數(shù)比s?。?。
現(xiàn)假設(shè)按上述分組方法將加密信息p分成了k組P1,P2,…,pk,而加密后的密文C也將由相同長度的分組Ci(i=1-k)組成,則加密公式簡化成:
![]()
(6)解密信息時,取每一個加密后的分組Ci(i=l一k)并計算。
![]()
三、基于異或運算的混合加密算法
1、加密算法思路
(1)異或運算:對于任意一個數(shù)A,隨機的任意選擇另一個數(shù)B,則A與B具有如下異或運算性質(zhì)。
如果把A理解為信息明文,B理解為加密密鑰,C理解為信息密文,則公式正好符合對稱加密算法的定義。
![]()
(2)對稱加密算法中,算法的安全性強度完全依賴于密鑰的安全性、且密鑰的管理也極不方便,RSA算法采用數(shù)學(xué)界有名的質(zhì)數(shù)分解因子理論來加密信息明文,如果把對稱加密算法中的密鑰當(dāng)成RSA算法中的信息明文進行加密,其安全陛將達到RSA算法同樣的強度、密鑰的管理也十分方便,且運用RSA算法對密鑰這一小部分信息進行加密比對整個信息明文中的大量信息加密處理起來速度快得多。
基于以上兩點思路,提出一種基于異或運算的混合加密算法(Hybrid Encryption AlgorithmBased On XOR,HEA - XOR),該算法的基本原理是:在任何通信系統(tǒng)中,首先,收發(fā)雙方準(zhǔn)備好一對密鑰,一個作為公鑰公開在通信系統(tǒng)中,發(fā)送方通過獲取此公鑰用于加密明文加密的密鑰;另一個作為私鑰,接收方保留用于解密明文加密密鑰的密文。然后,在信息通信過程中,發(fā)送方隨機產(chǎn)生一個數(shù)作為對信息加密的密鑰,并用接收方公開的公鑰對此產(chǎn)生的隨機數(shù)密鑰進行加密,最后再將信息加密之后的密文和密鑰加密后的密文一起發(fā)送到接收方;接收方收到發(fā)送方發(fā)送過來的信息密文和密鑰密文后,用自身保留的私鑰對密鑰密文進行解密,得出信息加密的密鑰,再用得到的信息加密的密鑰對信息密文進行解密,最后得出原始的明文信息。綜上所述,運用HER - XOR算法對信息加密的思路是,基于二進制的異或運算,收發(fā)雙方用相同的密鑰對信息明文進行加密解密,基于RSA算法對密鑰進行加密解密,以實現(xiàn)密鑰的安全傳輸與管理。
2、加密算法描述
HER - XOR算法密碼系統(tǒng)工作模式如圖所示。

從圖2可以看出,實現(xiàn)HER - XOR算法密碼系統(tǒng)可按如下步驟進行。
(1)接收方根據(jù)RSA算法原理得到自己的公鑰和私鑰,并在整個密碼系統(tǒng)中公開自己的公鑰,并保留自己的私鑰。
(2)發(fā)送方利用自己的密鑰(發(fā)送密鑰是隨機產(chǎn)生的)對信息明文進行XOR運算(二進制異或運算)加密,再用獲得的接收方公鑰對自己的密鑰進行RSA加密運算,最后將得到的信息密文和發(fā)送方私鑰密文通過通信系統(tǒng)發(fā)送到接收方。
(3)接收方收到發(fā)送方發(fā)來的信息密文和發(fā)送方密鑰密文后,首先運用自己保留的私鑰,對發(fā)送方密鑰密文進行RSA解密運算,得到發(fā)送方密鑰,再用此發(fā)送方密鑰對信息密文進行XOR運算解密,以還原初始信息明文。
小知識之異或
異或,英文為exclusive OR,或縮寫成xor
異或(xor)是一個數(shù)學(xué)運算符。它應(yīng)用于邏輯運算。異或的數(shù)學(xué)符號為“⊕”,計算機符號為“xor”。其運算法則為:
a⊕b = (?a ∧ b) ∨ (a ∧?b)
如果a、b兩個值不相同,則異或結(jié)果為1。如果a、b兩個值相同,異或結(jié)果為0。
異或也叫半加運算,其運算法則相當(dāng)于不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。




