电子文件完整性检测系统的设计与实现

2021-06-11 09:36刘芳王滢淇吴海涛
计算机时代 2021年3期
关键词:电子文件完整性算法

刘芳 王滢淇 吴海涛

摘  要: 对电子文件完整性检查的方法进行了研究。电子文件完整性检查主要是关注某个文件是否被更改。利用信息摘要函数强有力的加密机制,识别文件发生的微小变化,只要是入侵者成功的攻击导致文件任何改变,都能被电子文件完整性检测系统发现,从而保证了对电子文件的完整性检查。文章介绍了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 引言

随着信息网络技术广泛应用在生活中各个领域,电子文件也随之层出不穷,且生活中不可缺少。而信息技术网络安全发展没有普及到我们应用的方方面面时,我们在应用电子文件的过程中经过处理、传输,文件会发生损坏、丢失或者被修改的情况,对于应用电子文件的普通的我们来说,我们无法根据自身经验去判断这些电子文件在使用过程中出现了什么问题,是否完整。因此,设计检测系统对电子文件完整性进行检测就显得尤为重要。

检测系统通过对电子文件完整性进行检测,判断文件的信息、内容、结构和元数据是否完整。电子文件完整性检测系统通过对需要保护的文件计算出一个信息摘要,每次检测都重新计算文件的消息摘要,并将它与摘要库中的数据进行比较。若相同则说明文件完整,若不相同则说明文件在使用过程中出现了问题,并提示用户做出必要的防范,进而保障电子文件完整性。

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循环冗余校验算法,固定的比特数,以根据网络数据,诸如分组数据产生一个简短的散列函数[3],主要用于检测、错误检查数据传输,或存储之后可能会发生的错误。生成的数字在传输或者储存之前通过计算出来并且附加到数据后面,然后接收方进行分析检測,确定研究数据与之前相比是否发生了变化。

算法过程:在数据左移后空车的位置加入校验码,而校验码是由生成多项式对应系数组成的二进制数与原报文二进制数进行异或得到的。为了查看在传输过程中数据是否有损坏、丢失或被修改,可以设计对加密后的报文再做一次校验,即对其使用同样的校验算法。若异或结果全部为0,则说明传输过程中数据未丢失、修改或损坏,数据传输完整,若搜索结果余数值不为0,表明数据在传输过程中发生了变化。

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 系统设计与实现

2.1 系统框架设计

在VS2013集成开发环境下,用C语言编写程序完成电子文件完整性检测系统。检测系统主要使用CRC32、MD5、SHA-1三种算法实现,如图1。

2.2 系统功能分析

系统主要模块包括MD5模块、CRC32模块、SHA-1模块。以下主要对文件内容修改进行电子文件完整性检测。

进入系统依次选择三种算法模块对文件进行检测,各模块修改内容检测前后摘要值对比结果汇总如下(图2~图4)。

3 结束语

电子文件完整性检查研究前景很广阔,因为它能为企业数据完整性发展和人们的生活提供便捷、友好的服务。本文对数据完整性检查方法进行了研究,选择算法对原文件进行校验,通过三个校验算法进行哈希运算前后数据的对比,来判断原文件是否被修改。主要的研究成果有:CRC32算法的实现,MD5算法的实现,SHA-1算法的实现,通过添加控件响应设计出一个展示的窗口界面。该界面用来显示数据完整性检查的结果。

在文件完整性检查方法实现过程中,由于自己研究经验的不足可能导致本文还有很多需要改进的地方。在对电子文件进行校验设计时,设计了一个友好界面,对电子文件进行完整性进行校验时,只能选择一个算法进行检测,未能设计出对电子文件进行加密的算法,这是研究的不足之处。

希望在未来在对电子文件完整性进行研究时,能够对原文件或数据进行加密,同时使用三种算法对其进行校验。这样可以提高文件完整性检查的严密性,安全性,完整性。电子文件是计算机系统核心,所以保证其完整性以及数据安全性,对于用户和计算机系统都是极其重要的。

參考文献(References):

[1] 靳燕.基于MD5算法的文件完整性检测系统分析及设计[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

猜你喜欢
电子文件完整性算法
稠油热采水泥环完整性研究
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
电子文件检查归档移交备份存储机研究
浅谈电子文档与纸质文档在保护技术上的差异
档案管理中电子文件的存储探究
浅谈电子文件的全过程管理
一种改进的整周模糊度去相关算法