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