CN101488860B - 一种文件加密、解密方法 - Google Patents

一种文件加密、解密方法 Download PDF

Info

Publication number
CN101488860B
CN101488860B CN2009103004906A CN200910300490A CN101488860B CN 101488860 B CN101488860 B CN 101488860B CN 2009103004906 A CN2009103004906 A CN 2009103004906A CN 200910300490 A CN200910300490 A CN 200910300490A CN 101488860 B CN101488860 B CN 101488860B
Authority
CN
China
Prior art keywords
file
length
data
basic
deciphering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009103004906A
Other languages
English (en)
Other versions
CN101488860A (zh
Inventor
刘贤洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN2009103004906A priority Critical patent/CN101488860B/zh
Publication of CN101488860A publication Critical patent/CN101488860A/zh
Application granted granted Critical
Publication of CN101488860B publication Critical patent/CN101488860B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及文件加密技术。本发明提供一种基于基本加密单元的文件加密、解密方法。一种文件加密方法,包括以下步骤:加密方以基本加密单元的长度将文件划分为多个数据包;对数据包进行加密;加密至最后一个数据包则进行数据填充,再对填充的数据进行加密。文件解密方法,包括以下步骤:a、解密方根据加密算法、基本加密单元的长度确定解密算法、基本解密单元的长度;c、解密方根据基本解密单元的长度确定每一次读取的数据长度,对加密数据包进行解密并返回解密后的数据包;完成最后一个数据包解密后,删除填充数据。本发明能实现对任意格式文件的可以加密,同时也可以实现对文件的边解密边使用,可应用在办公系统,数字媒体的内容保护中。

Description

一种文件加密、解密方法
技术领域
本发明涉及文件加密技术。
背景技术
目前,对数字内容的保护,包括商业或者技术文件资料、多媒体文件等均采用加密的方式进行。加密一般采用两大类方式,一种是基于文件全部数据的加密,一种是针对文件的特点,只对文件的部分数据内容加密。
基于文件全部数据的加密,是指不对文件做任何区分,也不对文件数据格式进行解析,将文件全部内容进行加密,在使用的时候,直接先将文件进行解密,还原成原始文件,或者将加密文件解密成临时文件,然后再使用。显然,该方式的好处是兼容的格式非常多,可以处理几乎任意的文件,处理方式非常简单,和其它的应用软件等可以没有任何关系。但是缺点也是非常明显,就是文件在使用前必须先解密,很难做到边解密边使用。由于使用前必须先解密出原始文件,增加了安全的风险,同时原始文件也需要占用内容空间,在某些嵌入式终端中将增加硬件成本。此外,文件先解密再使用,将额外增加解密的时间。比如,目前的高清电影,如果采用mpeg2编码,一般在几十G甚至上百G,即使经过H264、MPEG4或者AVS编码后的,也在几个G以上,如果使用前必须先解密还原原始文件,则必须考虑增加上G的硬件空间,同时解密耗时可能在几分钟甚至几十分钟,导致用户体验非常差。目前采用这种方式加密文件的情况还非常多,比如OMA DRM的DCF格式、部分商用的文件加密系统等等。
针对文件特点,对部分数据格式加密的方法,则是对首先对具体文件的数据内容进行分析,然后选择性的进行加密。比如对于MP4文件,该类文件的格式使用的是国际标准IS014496-12多媒体文件格式,具体文件结构包括ftyp部分、moov部分、moof部分、mdat部分、free部分、skip部分。则在OMA DRM标准中则只对mdat部分的数据进行了加密,还可以对文件继续进行更细的解析,可以只对MOOV box中的帧数据进行加密。这样不改变文件的结构,可以在使用的时候边解密边使用。此外,对于电子文档,按照ebook的标准,则可以选择将电子文档的说明信息、格式信息排除不处理,然后只对文件中实质封装的数据内容进行加密。显然,这样作的优点就是不需要对文件进行事先解密,可以节约空间和处理的时间,带来好的用户体验。但是缺点也很明显,软件工作量非常大。目前正在使用的文件格式成百上千种,如果要作到对一种文件格式的兼容,则必须全部清楚该类型文件的结构,了解数据的封装格式和敏感信息的位置,对关键数据进行加密处理,这样作非常麻烦,只能选择部分格式进行兼容。此外,有的文件格式出于商业利益或者技术保密的理由,可能为某些公司的私有格式,外界无法知道该格式的详细情况,根本无法作到兼容。
关于文件加密方面,目前已经有很多该方面的技术,但是大部分内容都是大的框架,即采用什么加密、采用什么架构,很少有描述到底如何处理具体的文件的,操作性或者兼容性比较差,强调安全,忽视了用户体验。中国公开号CN 1567255A提出了一种安全文件系统的存储和访问控制方法,该方法提出根据不同的安全级别要求,对存储的文件采用不同的加密方法和机密强度进行处理,同时引入数字签名技术对文件进行签名,防止文件的被篡改,同时进行身份控制和访问控制。CN1567288A提出了一种多重文件同时封存/开封的方法,该发明主要采用非对称加密的算法对文件进行嵌套加密,解密时,需要所有加密的密钥依次进行解密。CN 1567814A则提出了一种在归属寄存器中实现明文许可文件的方法,该方法主要是通过包含一加密信息的明文许可文件,加载工具在加载文件时,对加密文件的特定部分解密,然后与明文进行对比,如果相同则加载该文件。此方法主要用于在加载加密模块前,判断加密模块的合法,本身并不是针对如何进行加密。
以上方式都没有解决文件格式和使用体验的问题。
发明内容
本发明所要解决的技术问题是,提供一种基于基本加密单元的文件加密、解密方法。
本发明为解决上述技术问题所采用的技术方案是,一种文件加密方法,包括以下步骤:
a、加密方确定加密算法;
b、加密方根据加密算法确定基本加密单元的长度;
c、加密方将文件从文件起始地址开始,以基本加密单元的长度将文件划分为多个数据包;
d、加密方按照顺序对数据包进行加密;
e、加密方判断当前数据包是否为最后一个数据包,如是,进入步骤f;如否,回到步骤d;
f、加密方进行数据填充,填充后的文件长度为基本加密单元长度的整数倍,对填充的数据进行加密;所述数据填充的具体步骤为:如最后一个数据包的长度为一个基本加密单元的长度,则增加一个基本加密单元;否则,直接对该数据包进行填充,使填充后的数据包的长度为一个基本加密单元的长度。
进一步的,步骤f后还包括步骤g,步骤g为加密方添加文件说明信息,对文件进行封装;或加密方将文件说明信息加密后发送至解密方;所述文件说明信息包括加密算法、基本加密单元的长度。
所述文件说明信息包括加密算法、基本加密单元的长度。
进一步的,为保证文件的数据完整性,在步骤f之后、步骤g之前还对文件进行数字签名操作;步骤g中所述文件说明信息中还包括数字签名信息。
另,根据上述文件加密方法,本发明还提供针对该文件加密方法的文件解密方法,包括以下步骤:
a、解密方通过解析文件说明信息得到加密算法、基本加密单元的长度;
b、解密方根据加密算法来确定解密算法,根据加密单元的长度或者加密算法来确定基本解密单元的长度;
c、解密方根据基本解密单元的长度确定每一次读取的数据长度,对加密数据包进行解密并返回解密后的数据包;所述每一次读取的数据长度为基本解密单元的长度的整数倍;
d、解密方完成最后一个数据包解密后,删除填充数据。
进一步的,在加密过程中为保证文件的数据完整性,那么相应的解密过程的步骤a中还包括,根据文件说明信息中的数字签名信息对稳健性进行数字签名验证的步骤。
步骤c中,在读取数据时,对于需要读取的加密数据包的相对起始地址不是基本加密单元的整数倍时,则需要向前调整到相对起始地址刚好为基本加密单元整数倍处。
本发明的有益效果是,能实现对任意格式文件的可以加密,同时也可以实现对文件的边解密边使用。本发明应用在办公系统中,可防止技术秘密、商业秘密以及其它文件的安全,并且不影响用户的使用;应用在数字媒体的内容保护中,可达到对任意媒体文件的保护并且实现边解密边使用,不需要全部解密后再使用,可以有效节省硬件开支,提高处理速度。
附图说明
下面结合附图和具体实施例对本发明作进一步详细的描述。
图1为文件加密过程;
图2为文件解密过程。
具体实施方式
本发明只需要对读取文件的函数模块进行少量修改重载就可以实现,非常简单。本文着重数据解密处理和如何解密,对于加密过程中密钥的传送,已经有非常多的方法,本文不作描述。下面对整个实现过程进行详细的说明。
文件的加密过程,如图1,具体流程如下:
(1)确定加密算法:由于本方案拟将文件分为多个数据包,然后进行加密处理,因此适合采用分组加密的算法,比如AES、DES、3DES、SMS4等算法,对于流密码算法,必须对其进行一定的处理,形成基本的加密单元后才可以使用;
(2)确定基本加密单元的长度:基本加密数据长度的确定,与加密算法有关。例如,AES、SMS4加密算法的基本长度是16个字节,而DES、3DES加密算法的基本长度为8个字节。也可以采用加密算法的基本长度的整数倍作为基本加密单元的长度,采用结合机密算法与可选的加密模式进行加密,如CTR模式、CBC模式等;
(3)加密:加密算法和加密长度确定后,即可以开始以基本加密单元为单位,读取数据进行加密处理。原则上,为了使用的方便,加密后的数据和加密前的数据长度应该保持一致,即基本加密单元的长度与基本解密单元的长度一致;也可以不一致,但将增加后续解密时地址定位的运算量。一个数据包加密完成后,写入新的文件中或者写回到原始文件的原始位置。继续执行(4);
(4)确定当前数据包是否最后一个数据包:以基本加密单元为度量单位,判断需要加密的数据包是否为最后一个数据包。如果不是,执行(3),继续加密;如果是,则执行(5);
(5)数据填充:数据填充一般可以采用填充的字节数作为填充的值。如待加密的数据包恰好是一个基本加密单元,则增加一个基本加密单元的数据即可,该增加的基本加密单元中所有的字节的内容均是该单元的长度。例如,基本加密单元的长度为16,而最后一个数据包刚好是16个字节,则再增加16个字节的长度,增加的16个字节每个字节的值均为0x0f(十进制为16)。如最后一个数据包中的数据小于一个基本加密单元,则直接对其进行填充,使其长度刚好为一个基本加密单元。例如,加密基本单元长度为16,而待加密的数据只有5个,则需要填充11个数据,使用11作为值,对尾部增加的11个字节进行填充,使其刚好为16个字节;
(6)剩余数据的加密:对填充的数据进行加密;
(7)数据签名:如果需要保证数据的完成性,可选对整个文件进行数字签名操作,形成签名数据;
(8)信息封装:将加密算法、加密基本单元长度、签名数据等相关信息组成文件说明信息,将文件说明信息合并到文件头部或者尾部。出于安全的考虑,文件说明信息也可不封装于文件中,而通过其它的方式告知解密方。
加密文件的解密过程,如图2,具体流程如下:
(1)读数据请求:应用程序需要读取文件内容,发出读取数据请求;
(2)解析文件说明信息:程序首先解析文件说明信息,该部分信息可能在文件头部,也可能在文件尾部;
(3)签名验证:首先解析出数字签名,并对文件进行数字签名的验证;
(4)解析解密算法:从文件说明信息中,确定采用什么加密算法,从而确定采用什么解密算法;
(5)确定基本解密单元的长度:基本解密单元的长度在加密结束时封装在文件说明信息中;基本解密单元的长度可根据基本加密单元的长度确定的,或者是根据加密算法确定;
(6)读地址转换:加密后的文件的数据的地址,和原始文件有了微小的变化,因此需要进行一定的转换。比如,原来的数据地址是在0x0008,由于添加了在文件头部增加了文件说明信息,假设该部分长度为0x0034,则现在应该读取的数据地址为0x0008+0x0034=0x003C;
(7)确定数据包加密地址:由于读取数据的地址,相对于加密数据的起始位置,不一定是刚好是加密单元的边界起始点,因此需要进行起始位置的调整。假设加密数据的起始地址为0x0034,数据长度为0x0086-0x0034=0x0052,十进制为82,如果加密基本单元的长度为16,则81不是16的整数倍,将其读取数据的范围微量扩大,将读取开始指针向前调2个地址,为0x0084,则数据长度为0x0084-0x0034=0x0050,十进制为80,刚好为16的整数倍;
(8)确定数据包解密结束地址或者实际读取长度:由于读取数据的长度也不一定刚好是基本解密单元的整数倍,则同样将读取数据的长度进行微量扩张,使数据结束的地址恰好在解密基本单元整数倍之前一个地址。读取长度最后需要加上步骤(7)所增加的数据长度;
(9)读取需解密数据:按照步骤(7)、(8)确定的数据地址、数据长度,读取需要解密的数据包;
(10)解密:解密数据包;
(11)返回解密后的数据:根据应用程序的读取请求,从解析的数据包中返回应用程序需要的数据,由于解密的数据包的数据可能大于程序需要的数据,需要根据步骤(7)、(8)的变动,返回变动前地址数据内容,删除不需要的数据;
(12)解密至最后一个数据包,则需要在解密后去除填充数据,需要去掉的字节数就是解密数据最后字节表示的值。

Claims (8)

1.一种文件加密方法,其特征在于,包括以下步骤:
a、加密方确定加密算法;
b、加密方根据加密算法确定基本加密单元的长度;
c、加密方以基本加密单元的长度将文件划分为多个数据包;
d、加密方按照顺序对数据包进行加密;
e、加密方判断当前数据包是否为最后一个数据包,如是,进入步骤f;如否,回到步骤d;
f、加密方进行数据填充,填充后的文件长度为基本加密单元长度的整数倍,对填充的数据进行加密;所述数据填充的具体步骤为:如最后一个数据包的长度为一个基本加密单元的长度,则增加一个基本加密单元;否则,直接对该数据包进行填充,使填充后的数据包的长度为一个基本加密单元的长度。
2.如权利要求1所述一种文件加密方法,其特征在于,步骤f后还包括步骤g1;
g1、加密方在文件中添加文件说明信息,再对文件进行封装;所述文件说明信息包括加密算法、基本加密单元的长度。
3.如权利要求2所述一种文件加密方法,其特征在于,在步骤f之后、步骤g1之前还对文件进行数字签名操作;步骤g1中所述文件说明信息中还包括数字签名信息。
4.如权利要求1所述一种文件加密方法,其特征在于,步骤f后还包括步骤g2;
g2、加密方将文件说明信息加密后发送至解密方;所述文件说明信息包括加密算法、基本加密单元的长度。
5.如权利要求4所述一种文件加密方法,其特征在于,在步骤f之后、步骤g2之前还对文件进行数字签名操作;步骤g2中所述文件说明信息中还包括数字签名信息。
6.一种文件解密方法,其特征在于,包括以下步骤:
a、解密方通过解析文件说明信息得到加密算法、基本加密单元的长度;
b、解密方根据加密算法来确定解密算法,根据加密单元的长度或者加密算法来确定基本解密单元的长度;
c、解密方根据基本解密单元的长度确定每一次读取的数据长度,对加密数据包进行解密并返回解密后的数据包;所述每一次读取的数据长度为基本解密单元的长度的整数倍;
d、解密方完成最后一个数据包解密后,删除填充数据。
7.如权利要求6所述一种文件解密方法,其特征在于,步骤a中还包括,根据文件说明信息中的数字签名信息对稳健性进行数字签名验证的步骤。
8.如权利要求7所述一种文件解密方法,其特征在于,步骤c中,在读取数据时,如需要读取的加密数据包的相对起始地址不是基本加密单元的整数倍,则需要向前调整到相对起始地址刚好为基本加密单元整数倍处。
CN2009103004906A 2009-02-20 2009-02-20 一种文件加密、解密方法 Expired - Fee Related CN101488860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009103004906A CN101488860B (zh) 2009-02-20 2009-02-20 一种文件加密、解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009103004906A CN101488860B (zh) 2009-02-20 2009-02-20 一种文件加密、解密方法

Publications (2)

Publication Number Publication Date
CN101488860A CN101488860A (zh) 2009-07-22
CN101488860B true CN101488860B (zh) 2011-07-27

Family

ID=40891551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009103004906A Expired - Fee Related CN101488860B (zh) 2009-02-20 2009-02-20 一种文件加密、解密方法

Country Status (1)

Country Link
CN (1) CN101488860B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110768786A (zh) * 2019-10-29 2020-02-07 上海交通大学 基于aes算法的信息分割加密及解密合并系统和方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847427A (zh) * 2010-03-08 2010-09-29 深圳市同洲电子股份有限公司 录音机及其加密、解密单元,录音文件加密、解密方法
CN101980239A (zh) * 2010-11-12 2011-02-23 四川长虹电器股份有限公司 软件代码加密方法
CN102622561A (zh) * 2011-01-27 2012-08-01 赛酷特(北京)信息技术有限公司 一种软件中调用数据的加密及解密方法
CN102594549B (zh) * 2012-03-22 2015-02-11 山东泰信电子股份有限公司 一种数据多级加密、解密方法
CN102594548B (zh) * 2012-03-22 2015-06-10 山东泰信电子股份有限公司 一种实现数据分段加密、解密的方法
CN102546151A (zh) * 2012-03-22 2012-07-04 山东泰信电子有限公司 一种数据加密、解密方法
CN104298926B (zh) * 2013-07-19 2017-11-10 腾讯科技(深圳)有限公司 一种运行加密文件的方法和装置
CN103488914B (zh) * 2013-09-16 2016-08-17 博隆科技有限公司 一种高效自适应模块化数据加密方法及其系统
CN104239544B (zh) * 2014-09-23 2017-08-25 深圳市九洲电器有限公司 一种HDCP Key管理方法及系统
CN105763315A (zh) * 2014-12-16 2016-07-13 展讯通信(深圳)有限公司 数据加密和解密的方法、装置以及通信系统
CN105790925A (zh) * 2014-12-24 2016-07-20 北京奇虎科技有限公司 数据加密解密方法和装置
CN105791243A (zh) * 2014-12-24 2016-07-20 北京奇虎科技有限公司 多媒体文件加密传输、解密播放方法和装置
CN104602209A (zh) * 2015-02-27 2015-05-06 中国科学院大学 一种基于rsa和流密码算法的联合信源短信加密解密方法
CN105100820B (zh) * 2015-08-18 2019-05-03 杭州士兰微电子股份有限公司 数字媒体文件的编码方法、解码方法、编码装置及解码装置
CN107180199A (zh) * 2016-03-11 2017-09-19 杭州与云网络有限公司 一种医疗影像互联网加密存储方法
CN107493150B (zh) * 2016-06-13 2019-07-02 中国联合网络通信集团有限公司 一种数据加密传输方法及装置
CN106060604A (zh) * 2016-06-28 2016-10-26 暴风集团股份有限公司 基于bhd文件实现数字权限管理播放的方法及系统
CN108076457A (zh) * 2017-12-15 2018-05-25 北京国电通网络技术有限公司 一种基于Linux系统的智慧安全型电网专用无线通信模块
CN109561345B (zh) * 2018-12-14 2021-08-03 上海文广科技(集团)有限公司 基于avs+编码格式的数字电影打包方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
CN1997146A (zh) * 2006-12-20 2007-07-11 四川长虹电器股份有限公司 一种mp4格式多媒体数据内容加密方法
CN101222624A (zh) * 2007-12-07 2008-07-16 四川长虹电器股份有限公司 基于avi格式的多媒体数据加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
CN1997146A (zh) * 2006-12-20 2007-07-11 四川长虹电器股份有限公司 一种mp4格式多媒体数据内容加密方法
CN101222624A (zh) * 2007-12-07 2008-07-16 四川长虹电器股份有限公司 基于avi格式的多媒体数据加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张全林 等.AES加密机制在IPSec协议中的应用研究.《计算机工程》.2006,第32卷(第2期),156-158. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110768786A (zh) * 2019-10-29 2020-02-07 上海交通大学 基于aes算法的信息分割加密及解密合并系统和方法

Also Published As

Publication number Publication date
CN101488860A (zh) 2009-07-22

Similar Documents

Publication Publication Date Title
CN101488860B (zh) 一种文件加密、解密方法
CN102819716B (zh) 一种加密图片、解密图片的方法、装置及系统
KR101369748B1 (ko) 데이터 암호화 방법 및 그 장치
CN102333236B (zh) 视频内容的加解密系统
CN102184351B (zh) 一种内容阅读系统和方法
CN104298932B (zh) 一种so文件的调用方法及装置
US20140143553A1 (en) Method and Apparatus for Encapsulating and Encrypting Files in Computer Device
CN103294961A (zh) 一种文件加/解密方法以及文件加/解密装置
US20130185569A1 (en) Data protection system and method based on cloud storage
US8145895B2 (en) Information transmission apparatus and method, information reception apparatus and method, and information-providing system
CN102609667A (zh) 基于过滤驱动程序的文件自动加解密系统和方法
CN109495459A (zh) 媒体数据加密方法、系统、设备及存储介质
CN110474767A (zh) 一种离线状态下的芯片密钥烧录方法及系统
CN103345453A (zh) 支持sata接口的硬盘数据加密卡及加解密方法
CN101916350B (zh) 终端阅读内容的保护方法及系统
US8737622B2 (en) Method for importing rights object and rights issuer
CN101859360A (zh) 一种文件保密处理方法和相应软件及解密阅读装置
CN109168085B (zh) 一种设备客户端视频流硬件保护方法
CN108173906A (zh) 安装包下载方法、装置、存储介质及电子设备
CN103491384B (zh) 一种视频的加密方法和装置及解密方法和装置
CN104866738A (zh) 一种程序代码保护方法及装置
CN101325486B (zh) 域许可密钥的转移方法及设备
CN101141814B (zh) 用于移动终端下载drm文件到可移动存储介质的系统及方法
CN105635149A (zh) 流媒体加密方法、装置和系统
CN102622561A (zh) 一种软件中调用数据的加密及解密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110727

CF01 Termination of patent right due to non-payment of annual fee