劉芳 王瀅淇 吳海濤
摘? 要: 對電子文件完整性檢查的方法進行了研究。電子文件完整性檢查主要是關注某個文件是否被更改。利用信息摘要函數強有力的加密機制,識別文件發(fā)生的微小變化,只要是入侵者成功的攻擊導致文件任何改變,都能被電子文件完整性檢測系統(tǒng)發(fā)現,從而保證了對電子文件的完整性檢查。文章介紹了CRC32、MD5、SHA-1算法的C語言實現。
關鍵詞: 電子文件; 完整性; 檢測; 算法
中圖分類號:TP3? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)03-44-02
Design and implementation of electronic document integrity detection system
Liu Fang, Wang Yingqi, Wu Haitao
(Nanjing Institute of Technology*School of information and Communication Engineering, Nanjing, Jiangsu 21000, China)
Abstract: The method of checking the integrity of electronic documents is studied. The integrity check of electronic documents mainly focuses on whether a document has been changed. By using the powerful encryption mechanism of information digest function, the tiny changes of the file can be identified. As long as the successful attack of the intruder leads to any changes of the file, it can be found by the electronic document integrity detection system, so as to ensure the integrity check of the electronic document. This paper introduces the C language implementation of CRC32, MD5 and SHA-1 algorithms.
Key words: electronic document; integrity; detection; algorithm
0 引言
隨著信息網絡技術廣泛應用在生活中各個領域,電子文件也隨之層出不窮,且生活中不可缺少。而信息技術網絡安全發(fā)展沒有普及到我們應用的方方面面時,我們在應用電子文件的過程中經過處理、傳輸,文件會發(fā)生損壞、丟失或者被修改的情況,對于應用電子文件的普通的我們來說,我們無法根據自身經驗去判斷這些電子文件在使用過程中出現了什么問題,是否完整。因此,設計檢測系統(tǒng)對電子文件完整性進行檢測就顯得尤為重要。
檢測系統(tǒng)通過對電子文件完整性進行檢測,判斷文件的信息、內容、結構和元數據是否完整。電子文件完整性檢測系統(tǒng)通過對需要保護的文件計算出一個信息摘要,每次檢測都重新計算文件的消息摘要,并將它與摘要庫中的數據進行比較。若相同則說明文件完整,若不相同則說明文件在使用過程中出現了問題,并提示用戶做出必要的防范,進而保障電子文件完整性。
1 算法解析
1.1 MD5算法解析
MD5稱作信息摘要算法,人們在生活中主要應用于加密和解密技術中。人們稱MD5是“數字指紋”的文件,原理是MD5檢測、驗證數據信息的完整性是通過不可逆的字符串變換算法產生一個數字文摘[1]。MD5特征具有唯一性,不管什么類型的文件,都具有唯一的MD5值。對于電子文件完整性的判斷依據是查看MD5值數據信息是否一致[6]。
算法過程:首先對輸入數據/信息進行填充,使得數據比特數448模512同余,填充最高位為1,其余位為0。在填充的數據后面加一原始數據的比特數用64位二進制表示,經過計算得到512位比特的整數倍,之后將512位數據分成16個32位子分組,經過算法過程計算得到32位分組組成的結果,最后由4個32位分組組成的128位的散列值即結果[5]。
1.2 CRC32算法解析
CRC即CRC循環(huán)冗余校驗算法,固定的比特數,以根據網絡數據,諸如分組數據產生一個簡短的散列函數[3],主要用于檢測、錯誤檢查數據傳輸,或存儲之后可能會發(fā)生的錯誤。生成的數字在傳輸或者儲存之前通過計算出來并且附加到數據后面,然后接收方進行分析檢測,確定研究數據與之前相比是否發(fā)生了變化。
算法過程:在數據左移后空車的位置加入校驗碼,而校驗碼是由生成多項式對應系數組成的二進制數與原報文二進制數進行異或得到的。為了查看在傳輸過程中數據是否有損壞、丟失或被修改,可以設計對加密后的報文再做一次校驗,即對其使用同樣的校驗算法。若異或結果全部為0,則說明傳輸過程中數據未丟失、修改或損壞,數據傳輸完整,若搜索結果余數值不為0,表明數據在傳輸過程中發(fā)生了變化。
1.3 SHA-1算法解析
SHA-1即安全哈希算法1[2],是由美國國家安全局設計的一種加密哈希函數。SHA-1可以計算出對應于該固定長度字符串算法的數字消息[8]。如果輸入的信息不同,所對于的字符串不同。因此SHA-1算法是用來檢查數據或文件的完整性。但倘若在數據傳輸過程中,數據只要有改變,就會致使不同的SHA-1算法值產生。
算法過程:SHA-1對不超過2^64的數據進行加密算法,產生一個以512位來分組的160位的散列值,用來進行檢查相關數據在傳輸過程中我們是否是完整未被改變。如果重傳過程中,數據被改變,那么該數據再次通過SHA-1算法時,會產生一個不同的消息摘要值[4]。
2 系統(tǒng)設計與實現
2.1 系統(tǒng)框架設計
在VS2013集成開發(fā)環(huán)境下,用C語言編寫程序完成電子文件完整性檢測系統(tǒng)。檢測系統(tǒng)主要使用CRC32、MD5、SHA-1三種算法實現,如圖1。
2.2 系統(tǒng)功能分析
系統(tǒng)主要模塊包括MD5模塊、CRC32模塊、SHA-1模塊。以下主要對文件內容修改進行電子文件完整性檢測。
進入系統(tǒng)依次選擇三種算法模塊對文件進行檢測,各模塊修改內容檢測前后摘要值對比結果匯總如下(圖2~圖4)。
3 結束語
電子文件完整性檢查研究前景很廣闊,因為它能為企業(yè)數據完整性發(fā)展和人們的生活提供便捷、友好的服務。本文對數據完整性檢查方法進行了研究,選擇算法對原文件進行校驗,通過三個校驗算法進行哈希運算前后數據的對比,來判斷原文件是否被修改。主要的研究成果有:CRC32算法的實現,MD5算法的實現,SHA-1算法的實現,通過添加控件響應設計出一個展示的窗口界面。該界面用來顯示數據完整性檢查的結果。
在文件完整性檢查方法實現過程中,由于自己研究經驗的不足可能導致本文還有很多需要改進的地方。在對電子文件進行校驗設計時,設計了一個友好界面,對電子文件進行完整性進行校驗時,只能選擇一個算法進行檢測,未能設計出對電子文件進行加密的算法,這是研究的不足之處。
希望在未來在對電子文件完整性進行研究時,能夠對原文件或數據進行加密,同時使用三種算法對其進行校驗。這樣可以提高文件完整性檢查的嚴密性,安全性,完整性。電子文件是計算機系統(tǒng)核心,所以保證其完整性以及數據安全性,對于用戶和計算機系統(tǒng)都是極其重要的。
參考文獻(References):
[1] 靳燕.基于MD5算法的文件完整性檢測系統(tǒng)分析及設計[J].網絡安全技術與應用,2019.11:36-38
[2] 王孟釗.SHA算法的研究及應用[J].信息技術,2018.42(8):152-153,158
[3] 張正龍,張小華,李冀明,段怡.基于CRC32的數據校驗的研究和應用[J].科學咨詢(科技·管理),2011.2:62-63
[4] 張松敏,陶榮,于國華.安全散列算法SHA-1的研究[J].計算機安全,2010.10:3-5
[5] 王娜娜.試用MD5算法實現文件完整性檢測[J].山西財經大學學報,2007.S2:209-210
[6] 鄭光明,胡博.基于MD5的文件完整性檢測軟件設計[J].湖南理工學院學報(自然科學版),2007.1:35-38,64