廣東 李俊杰
基于SHA與XOR的快速加密算法
廣東 李俊杰
在信息系統(tǒng)中很多重要數(shù)據(jù)需要加密,各種加密算法如AES、DES、IDEA等都在廣泛應(yīng)用,一種基于SHA與XOR的加密算法可以實(shí)現(xiàn)信息快速安全加密。
SHA;XOR;加密算法;Hash函數(shù)
在信息系統(tǒng)中,信息的存儲和傳輸容易被非法使用和篡改,因此,加密技術(shù)對這些信息存儲、傳輸將帶來很好的保護(hù)作用。一種基于SHA與XOR的加密算法能大大提高了加密速度和效率。
加密技術(shù)包括兩個元素:算法和密鑰。算法是將普通的文本(或者可以理解的信息)與一串?dāng)?shù)字(密鑰)的結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對數(shù)據(jù)進(jìn)行編碼和解碼的數(shù)字串。
傳統(tǒng)的加密算法如下:對于明文空間M中的每一個明文M,加密算法E在密鑰K的控制下將明文M加密成密文C:C=E(M,K),而解密算法D在密鑰K的控制下將密文C解密出同一明文M:M=D(C,K)。
一種基于SHA與XOR的快速加密算法如下:密鑰K使用Hash函數(shù)進(jìn)行轉(zhuǎn)換h=H(K),算法E、D都使用XOR,即:加密為C=XOR(M,H(K)),解密為M=XOR(C,H(K))。
Hash函數(shù)將任意長的報文M映射為定長的Hash碼h,其形式為:h=H(M),Hash碼也稱報文摘要。SHA(Secure Hash Algorithm)是美國國家安全局設(shè)計(jì),美國國家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布的一系列密碼散列函數(shù)。其SHA-1的輸入可以是任意長的報文,輸出160位的報文摘要。該算法對輸入按512位進(jìn)行分組,并以分組為單位進(jìn)行處理。SHA-1算法步驟如下:
(一)填充報文。填充報文的目的是使報文長度與448模512同余(即長度≡448 mod 512),如:圖1。
圖1 報文填充
(二)初始化緩沖區(qū)。Hash函數(shù)的中間結(jié)果和最終結(jié)果保存于160位的緩沖區(qū)(A,B,C,D,E)中,IV=緩沖區(qū)ABCDE的初值。
(三)執(zhí)行算法主循環(huán)。每一次處理一個512位的分組。
(四)輸出。第L分組的輸出OVL即是160位的報文摘要,HSHA為壓縮函數(shù),如:圖2。
圖2 利用SHA-1算法產(chǎn)生報文摘要
基于SHA與XOR的加密算法加密過程的關(guān)鍵步驟是對密鑰K進(jìn)行Hash運(yùn)算,利用SHA-1算法產(chǎn)生160位的摘要,再與明文M進(jìn)行XOR。步驟如下:
(一)任取任意長的密鑰K,使用Hash函數(shù)進(jìn)行運(yùn)算:h=H(K)。
(二)對輸入明文M按160位進(jìn)行分組,并以分組為單位進(jìn)行處理。
(三)每個分組都與H(K)進(jìn)行按位XOR運(yùn)算,最后運(yùn)算結(jié)果連接起來形成密文C,如:圖3。
圖3 加密過程
(一)取得密鑰K,使用Hash函數(shù)進(jìn)行計(jì)算:h=H(K)。
(二)對輸入密文C按160位進(jìn)行分組,并以分組為單位進(jìn)行處理。
(三)每個分組都與H(K)進(jìn)行按位XOR運(yùn)算,最后運(yùn)算結(jié)果連接起來形成明文M,如:圖4。
圖4 解密過程
選擇密鑰K=“abc”,H(K)=a9993e364706816aba3e25717850c26c9cd0d89d;明文M=“汕尾職業(yè)技術(shù)學(xué)院abc123”,由C=XOR(M,H(K))加密得密文C=605ef08491b653df0682ef84a9f716d6fdb2bbac9baa;由M=XOR(C,H(K))解密得同一明文M,測試正確。
(作者單位:汕尾職業(yè)技術(shù)學(xué)院)
(編輯 李艷華)