劉芳 王瀅淇 吳海濤
摘? 要: 對電子文件完整性檢查的方法進行了研究。電子文件完整性檢查主要是關(guān)注某個文件是否被更改。利用信息摘要函數(shù)強有力的加密機制,識別文件發(fā)生的微小變化,只要是入侵者成功的攻擊導致文件任何改變,都能被電子文件完整性檢測系統(tǒng)發(fā)現(xiàn),從而保證了對電子文件的完整性檢查。文章介紹了CRC32、MD5、SHA-1算法的C語言實現(xiàn)。
關(guān)鍵詞: 電子文件; 完整性; 檢測; 算法
中圖分類號: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 引言
隨著信息網(wǎng)絡(luò)技術(shù)廣泛應(yīng)用在生活中各個領(lǐng)域,電子文件也隨之層出不窮,且生活中不可缺少。而信息技術(shù)網(wǎng)絡(luò)安全發(fā)展沒有普及到我們應(yīng)用的方方面面時,我們在應(yīng)用電子文件的過程中經(jīng)過處理、傳輸,文件會發(fā)生損壞、丟失或者被修改的情況,對于應(yīng)用電子文件的普通的我們來說,我們無法根據(jù)自身經(jīng)驗去判斷這些電子文件在使用過程中出現(xiàn)了什么問題,是否完整。因此,設(shè)計檢測系統(tǒng)對電子文件完整性進行檢測就顯得尤為重要。
檢測系統(tǒng)通過對電子文件完整性進行檢測,判斷文件的信息、內(nèi)容、結(jié)構(gòu)和元數(shù)據(jù)是否完整。電子文件完整性檢測系統(tǒng)通過對需要保護的文件計算出一個信息摘要,每次檢測都重新計算文件的消息摘要,并將它與摘要庫中的數(shù)據(jù)進行比較。若相同則說明文件完整,若不相同則說明文件在使用過程中出現(xiàn)了問題,并提示用戶做出必要的防范,進而保障電子文件完整性。
1 算法解析
1.1 MD5算法解析
MD5稱作信息摘要算法,人們在生活中主要應(yīng)用于加密和解密技術(shù)中。人們稱MD5是“數(shù)字指紋”的文件,原理是MD5檢測、驗證數(shù)據(jù)信息的完整性是通過不可逆的字符串變換算法產(chǎn)生一個數(shù)字文摘[1]。MD5特征具有唯一性,不管什么類型的文件,都具有唯一的MD5值。對于電子文件完整性的判斷依據(jù)是查看MD5值數(shù)據(jù)信息是否一致[6]。
算法過程:首先對輸入數(shù)據(jù)/信息進行填充,使得數(shù)據(jù)比特數(shù)448模512同余,填充最高位為1,其余位為0。在填充的數(shù)據(jù)后面加一原始數(shù)據(jù)的比特數(shù)用64位二進制表示,經(jīng)過計算得到512位比特的整數(shù)倍,之后將512位數(shù)據(jù)分成16個32位子分組,經(jīng)過算法過程計算得到32位分組組成的結(jié)果,最后由4個32位分組組成的128位的散列值即結(jié)果[5]。
1.2 CRC32算法解析
CRC即CRC循環(huán)冗余校驗算法,固定的比特數(shù),以根據(jù)網(wǎng)絡(luò)數(shù)據(jù),諸如分組數(shù)據(jù)產(chǎn)生一個簡短的散列函數(shù)[3],主要用于檢測、錯誤檢查數(shù)據(jù)傳輸,或存儲之后可能會發(fā)生的錯誤。生成的數(shù)字在傳輸或者儲存之前通過計算出來并且附加到數(shù)據(jù)后面,然后接收方進行分析檢測,確定研究數(shù)據(jù)與之前相比是否發(fā)生了變化。
算法過程:在數(shù)據(jù)左移后空車的位置加入校驗碼,而校驗碼是由生成多項式對應(yīng)系數(shù)組成的二進制數(shù)與原報文二進制數(shù)進行異或得到的。為了查看在傳輸過程中數(shù)據(jù)是否有損壞、丟失或被修改,可以設(shè)計對加密后的報文再做一次校驗,即對其使用同樣的校驗算法。若異或結(jié)果全部為0,則說明傳輸過程中數(shù)據(jù)未丟失、修改或損壞,數(shù)據(jù)傳輸完整,若搜索結(jié)果余數(shù)值不為0,表明數(shù)據(jù)在傳輸過程中發(fā)生了變化。
1.3 SHA-1算法解析
SHA-1即安全哈希算法1[2],是由美國國家安全局設(shè)計的一種加密哈希函數(shù)。SHA-1可以計算出對應(yīng)于該固定長度字符串算法的數(shù)字消息[8]。如果輸入的信息不同,所對于的字符串不同。因此SHA-1算法是用來檢查數(shù)據(jù)或文件的完整性。但倘若在數(shù)據(jù)傳輸過程中,數(shù)據(jù)只要有改變,就會致使不同的SHA-1算法值產(chǎn)生。
算法過程:SHA-1對不超過2^64的數(shù)據(jù)進行加密算法,產(chǎn)生一個以512位來分組的160位的散列值,用來進行檢查相關(guān)數(shù)據(jù)在傳輸過程中我們是否是完整未被改變。如果重傳過程中,數(shù)據(jù)被改變,那么該數(shù)據(jù)再次通過SHA-1算法時,會產(chǎn)生一個不同的消息摘要值[4]。
2 系統(tǒng)設(shè)計與實現(xiàn)
2.1 系統(tǒng)框架設(shè)計
在VS2013集成開發(fā)環(huán)境下,用C語言編寫程序完成電子文件完整性檢測系統(tǒng)。檢測系統(tǒng)主要使用CRC32、MD5、SHA-1三種算法實現(xiàn),如圖1。
2.2 系統(tǒng)功能分析
系統(tǒng)主要模塊包括MD5模塊、CRC32模塊、SHA-1模塊。以下主要對文件內(nèi)容修改進行電子文件完整性檢測。
進入系統(tǒng)依次選擇三種算法模塊對文件進行檢測,各模塊修改內(nèi)容檢測前后摘要值對比結(jié)果匯總?cè)缦拢▓D2~圖4)。
3 結(jié)束語
電子文件完整性檢查研究前景很廣闊,因為它能為企業(yè)數(shù)據(jù)完整性發(fā)展和人們的生活提供便捷、友好的服務(wù)。本文對數(shù)據(jù)完整性檢查方法進行了研究,選擇算法對原文件進行校驗,通過三個校驗算法進行哈希運算前后數(shù)據(jù)的對比,來判斷原文件是否被修改。主要的研究成果有:CRC32算法的實現(xiàn),MD5算法的實現(xiàn),SHA-1算法的實現(xiàn),通過添加控件響應(yīng)設(shè)計出一個展示的窗口界面。該界面用來顯示數(shù)據(jù)完整性檢查的結(jié)果。
在文件完整性檢查方法實現(xiàn)過程中,由于自己研究經(jīng)驗的不足可能導致本文還有很多需要改進的地方。在對電子文件進行校驗設(shè)計時,設(shè)計了一個友好界面,對電子文件進行完整性進行校驗時,只能選擇一個算法進行檢測,未能設(shè)計出對電子文件進行加密的算法,這是研究的不足之處。
希望在未來在對電子文件完整性進行研究時,能夠?qū)υ募驍?shù)據(jù)進行加密,同時使用三種算法對其進行校驗。這樣可以提高文件完整性檢查的嚴密性,安全性,完整性。電子文件是計算機系統(tǒng)核心,所以保證其完整性以及數(shù)據(jù)安全性,對于用戶和計算機系統(tǒng)都是極其重要的。
參考文獻(References):
[1] 靳燕.基于MD5算法的文件完整性檢測系統(tǒng)分析及設(shè)計[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019.11:36-38
[2] 王孟釗.SHA算法的研究及應(yīng)用[J].信息技術(shù),2018.42(8):152-153,158
[3] 張正龍,張小華,李冀明,段怡.基于CRC32的數(shù)據(jù)校驗的研究和應(yīng)用[J].科學咨詢(科技·管理),2011.2:62-63
[4] 張松敏,陶榮,于國華.安全散列算法SHA-1的研究[J].計算機安全,2010.10:3-5
[5] 王娜娜.試用MD5算法實現(xiàn)文件完整性檢測[J].山西財經(jīng)大學學報,2007.S2:209-210
[6] 鄭光明,胡博.基于MD5的文件完整性檢測軟件設(shè)計[J].湖南理工學院學報(自然科學版),2007.1:35-38,64