艾爾肯·艾則孜
(烏魯木齊職業大學,新疆 烏魯木齊 830002)
隨著計算機技術、信息通信技術、互聯網技術的發展及普及,辦公電子化、無紙化、網絡化趨勢進一步加強,網絡信息安全問題日益突出。一方面,從技術上,互聯網采用面向無連接的分組交換技術,提供“盡力而為”的數據傳送能力,QoS問題、安全問題一直是互聯網需要解決的主要問題。另一方面,人為惡意破壞威脅網絡安全,特別是某些人員利用黑客技術對網絡系統進行破壞,包括對網站主頁面進行修改;向系統服務器發送大量信息,使整個網絡陷于癱瘓;利用局域網郵件服務器轉發各種有害信息等。此外,在實際網絡信息管理過程中,人們往往更加重視網絡自身安全問題,包括采用防火墻、系統防護軟件等,但對信息文件的惡意拷貝等通常較為忽視,相關的安全保護機制相對較少。針對以上情況,論文側重設計基于信息文件的通用加密算法,實現對單機、在線信息文件的加密及傳輸,具有較強的參考價值。
DES(Data Encryption Standard)信息加密算法是應用較為廣泛的一種算法,其基本思想是通過密鑰對文本進行代替和移位技術,密鑰可以是任意的56位數。DES加密算法基于分級密碼結構,每次加密64位明文分組,從加密算法的輸入端輸入后生成64位加密密文,DES加密密鑰的長度通常為56位。DES加密算法明文處理基本步驟為:
第1步:利用初始置換IP,對64位明文分組進行置換,經過置換重組后形成經過置換的輸入端。
第2步:生成加密明文和加密密鑰的函數,該函數需要對同一函數進行16次的循環,由64位組成,該函數既包括替代函數又包括置換函數。
第3步:通過初始置換的逆置換,生成64位加密密文。56位密鑰的使用方式中密鑰首先通過一個置換函數,接著對于每一個循環都通過一個循環左移操作和一個置換操作的組合產生一個子密鑰Ki。對每個循環來說,置換函數是相同的,但由于密鑰比特的重復移位,產生的子密鑰并不相同。
DES加密算法包括16個循環,每個循環過程具體如下:假定64位加密明文組,M=M1M2M3…M64。密鑰K 也為64位,K=K1K2K3…K64,其中K只有56位有效,其中8位可以用做奇偶檢驗或者任意設置。Li-1和 Ri-1分別是第 i-1 次迭代結果的左右兩部分,其處理過程可以總結為下列公式:

RSA加密算法是目前應用最廣泛的公開密鑰加密算法之一,其算法數學基礎是歐拉定理,其加密的過程可以概括為:
1)取兩個素數p和q(p、q均要保密),且素數p和q要求足夠大,同時素數p和q的長度要求完全相同,以使加密算法具有最大的加密、解密安全可靠性,并計算n=p*q(n為公開值)。
2)選擇整數 e,其中 gcd(φ(n),e)=1;1 <e<φ(n),計算 d≡e-1modφ(n)。
3)生成公開密鑰為KU={e,n},私有密鑰為KR={d,n}。
4)加密過程及解密過程:假定加密消息明文M,首先需要將其分成多個數據分組,該數據分組要求比n,并選取小于n的2的最大次冪,利用加密算法C=Me(mod n),解密算法為M=Cd(mod n)。
相比DES加密算法,RSA公鑰加密算法在加密、解密過程中均需要進行大量的數值計算,數值運算時間進一步加長,算法的開銷也進一步擴大,進而明顯限制了RSA公鑰加密算法的應用領域和應用范圍。RSA加密算法的算法完整性和安全性仍需進一步完善和提高。
結合DES算法、RSA算法對數字簽名方案進行優化,提出基于3DES的數字簽名方案,基本步驟為:
第1步:產生報文摘要,主要是通過HASH函數實現;在此基礎上,對明文生成加密密文,主要是通過3DES加密算法加密實現。
第2步:通過RSA公鑰密碼,利用發送方用戶的私有密碼對報文摘要進行加密,并利用3DES密鑰實現第2次加密。
第3步:用戶發送方將通過3DES加密算法加密后的加密密文、實現二次加密后的密文數據發送至用戶接收方,實現整個數字簽名過程。
基于3DES的數字簽名方案主要包括報文摘要的生成、加密明文、明文加密密鑰的傳輸及身份驗證等3個主要環節,各環節具體設計如下:
1)報文摘要的生成。生成報文摘要的核心是構造一個特殊單向函數,以計算明文消息所得到的值。為提高數字簽名方案的安全性,本方案引入3DES加密算法來構建HASH加密單向函數,并利用該HASH加密單向函數來生成報文摘要,HASH加密單向函數設計如圖1所示。

圖1 HASH加密函數設計示意圖
通過圖1可以看出,HASH加密單向函數隨M的變化而劇烈波動,且無法恢復,通過該HASH加密單向函數生成的報文摘要,可以較好地符合數字簽名的需要。
2)明文加密。利用3DES加密算法實現對明文M的加密,3DES加密算法以DES加密技術為基礎,對加密數據實現3次DES運算,3DES加密算法密鑰是128位的,3DES加密算法采用2個不同的加密密鑰K1和K2,大大提高信息加密的安全性和抗攻擊性。同時,私有密碼實現加密的速度要比公鑰加密更快。3DES算法加密和解密過程如圖2、圖3所示。

圖2 3DES加密算法加密示意圖

圖3 3DES加密算法解密示意圖
3)通過RSA算法實現密鑰加密傳輸。為提供加密密鑰的安全傳輸問題,采用RSA來實現3DES加密密鑰的傳輸,并利用發送方的RSA私鑰和接收方的RSA公鑰進行對用戶發送方和用戶接收方身份的驗證。通過RSA算法實現密鑰加密傳輸示意圖如圖4所示。

圖4 通過RSA算法實現密鑰加密傳輸
在具體實現環節,主要是在優化后加密算法基礎上,能夠較好地識別文件異常操作并進行綁定,并識別信息文件的加密及解密,各功能實現如下:
首先需要讀取系統目錄下的文件異常操作識別與綁定規則文件,主要是通過在文件結尾的最后一個字節存放的文件的長度,防止文件異常操作或者被擅自改動。文件異常操作識別與綁定規則加載實現流程如圖5所示。
對于系統讀寫文件的監控、檢測主要通過文件監視器進行,檢測和識別系統頻繁、持續進行讀寫操作的重點文件,并將這部分重點文件添加到規則文件之中,如果用戶對這些重點核心文件進行異常操作,需要進行信息安全驗證。如果驗證信息沒有通過,便進行告誡提示,提示信息文件打開失敗。此外,由于操作系統會頻繁地讀寫各種文件,通用加密模塊效率將會降低,采用開頭字母路徑鏈接表的方式,建立地址索引表,以大大提高通用加密模塊實現效率。文件異常操作識別與綁定具體實現過程為:

圖5 文件異常操作識別與綁定規則加載實現流程
1)利用系統提供的系統函數注冊回調函數。
2)創建過濾設備對象,并將該過濾設備對象附加到卷或文件系統堆棧上,具體通過IoCreateDevice例程來實現。
3)判斷接收到的IRP是否需要發送,通過識別IRP中的Major Function Code代碼實現,判斷Major Function Code代碼是否為IRP_MJ_FILE_SYSTEM_CONTROL,當系統發現新的存儲媒質,便生成Volume文件系統,并執行IRP發出動作。
4)判斷存儲媒質是否需要實現綁定,通過識別IRP中的Minor Function Code代碼實現,判斷Minor Function Code是否與IRP_MN_MOUNT相一致,如果保持一致,即可實現對存儲媒質的綁定。
5)將過濾設備對象附加到目標設備對象之上。
文件加密操作功能實現首先要考慮現有Windows操作系統采用的緩存機制,判斷IRP標志,當符合加密條件時,即可實現加密操作。文件加密操作實現詳細過程如下:
1)判斷是否需要實行數據加密操作,通過判斷IRP->flags的標志實現,具體判斷條件為是否含有 IRP_NOCACHE,IRP_PAGING_IO,如果判斷條件滿足,即需要執行加密操作,并向存儲器上寫入數據。
2)具體執行時,在已完成的例程中,調用加密算法對寫入數據實現加密,并以新建的內存內容,替換已經保存的MdlAddress數據,該步驟與讀取數據解密過程基本相同。
3)加密操作執行結束。
文件解密操作過程是文件加密操作的逆過程,具體實現過程如下:
1)判斷是否對加密數據執行解密操作,也是通過判斷IRP->flags標志實現,具體看IRP->flags是否包括IRP_SYNCHRONOUS_PAGING_IO、IRP_NOCACHE或者 IRP_PAGING_IO,如果標志判斷滿足條件,便執行文件解密操作。
2)在具體執行過程中,首先是新建保存IRP的MdlAddress的內存,替換原來IRP內存,并通過IOCallDriver完成例程,調用解密算法實現解密。
3)解密操作執行結束。
隨著信息安全問題的凸顯和加劇,針對信息安全技術的研究得到加強。論文重點針對信息文件加密和傳送問題,提出了基于3DES的數字簽名方案,該方案通過3DES加密算法對明文進行加密,進而生成加密密文,并利用3DES加密算法和HASH函數加密密文進行二次加密,實現數字簽名過程。
[1]李響.RSA算法在教學管理數據庫加密中的應用[J].科學咨詢:決策管理,2010(5):34 -38.
[2]張潔,朱麗娟.DES加密算法分析與實現[J].軟件導刊,2007(3):21-25.
[3]吳迪.一種改進的RSA算法的研究[J].科技信息,2010(26):16-18.
[4]石瑩瑩,李濤.RSA公開密鑰算法在 Visual C++下的實現[J].計算機安全,2008(6):31 -34.
[5]劉冰.AES和RSA相結合的數據加密方案[J].計算機安全,2006(6):26-28.