CN103400064B - 用于文件加密和解密的方法和设备 - Google Patents
用于文件加密和解密的方法和设备 Download PDFInfo
- Publication number
- CN103400064B CN103400064B CN201310364201.5A CN201310364201A CN103400064B CN 103400064 B CN103400064 B CN 103400064B CN 201310364201 A CN201310364201 A CN 201310364201A CN 103400064 B CN103400064 B CN 103400064B
- Authority
- CN
- China
- Prior art keywords
- file
- encryption
- field
- header
- file header
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了用于对文件加密和解密的方法和设备。用于对文件加密的方法包括:根据所述文件,生成新文件头;使用所述新文件头来替换从所述文件的头部开始的与所述新文件头相同大小的数据块;使用加密密钥对被替换的所述数据块进行加密;以及将加密后的所述数据块附加到所述文件的尾部,以生成加密文件。用于对文件解密的方法包括:根据所述加密文件的文件头,确定在所述加密文件的尾部处的加密数据块的大小;根据所述加密数据块的大小,截取所述加密数据块;使用解密密钥对截取的所述数据块进行解密;以及用解密后的所述数据块来替换所述文件头,以生成解密文件。
Description
技术领域
本发明总体上涉及数据加密领域,更具体地涉及用于对文件加密和解密的方法和设备。
背景技术
随着互联网的日益流行,信息安全受到了越来越多的关注。在互联网上传递重要的机密文件之前,一般会对该文件进行加密。然而随着移动设备的流行,也就不可避免的需要在处理能力(CPU、存储器等方面)受限的移动设备上对文件进行加密和解密。
传统的文件加密通常可被分为两类:全文件加密以及部分文件加密。顾名思义,全文件加密是针对整个文件进行处理,其缺点在于加密效率较低、速度慢,并消耗了大量的系统资源,因此非常不适合在移动设备(例如,个人数字助理(PDA)、智能手机、平板电脑等)上使用。而部分文件加密通常是针对文件(特别是媒体文件,例如,视频、图像等)的一部分进行处理。其利用了视频、图像等的编码特性,对其中富含关键编码信息的少量数据进行加密。相对于全文件加密来说,其消耗的系统资源相对较少且速度快,但其相对于全文件加密的缺点也相当明显:安全性相对低。
发明内容
因此,本发明提供了一种用于对文件加密的方法和设备以及对数据解密的方法和设备。
根据本发明的第一方面,提供了一种用于对文件加密的方法。所述方法包括:根据所述文件,生成新文件头;使用所述新文件头来替换从所述文件的头部开始的与所述新文件头相同大小的数据块;使用加密密钥对被替换的所述数据块进行加密;以及将加密后的所述数据块附加到所述文件的尾部,以生成加密文件。
在一些实施例中,所述新文件头包括用于指示加密版本的第一字段。
在一些实施例中,所述新文件头包括用于指示所述文件的文件类型的第二字段。
在一些实施例中,所述文件类型包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果所述文件类型是图像文件,则所述新文件头还包括用于指定图像分辨率的第三字段;如果所述文件类型是视频文件,则所述新文件头还包括用于指定视频时长的第三字段;以及如果所述文件类型是其它文件,则所述新文件头还包括空的第三字段。
在一些实施例中,如果所述文件类型是图像文件或视频文件,则所述新文件头还包括用于指定缩略图的第四字段;以及如果所述文件类型是其它文件,则所述新文件头还包括空的第四字段。
在一些实施例中,所述新文件头包括用于指示所述文件的原始长度的第五字段。
在一些实施例中,所述新文件头包括用于指示所述文件在云端是否被备份过的第六字段。
在一些实施例中,所述新文件头包括用于指示所述文件的数字摘要的第七字段。
在一些实施例中,所述数字摘要是MD5值。
在一些实施例中,所述新文件头包括用于指示所述文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述文件的路径。
在一些实施例中,所述加密是对称加密。
在一些实施例中,所述对称加密是高级加密标准(AES)加密。
根据本发明的第二方面,提供了一种用于对加密文件解密的方法。该方法包括:根据所述加密文件的文件头,确定在所述加密文件的尾部处的加密数据块的大小;根据所述加密数据块的大小,截取所述加密数据块;使用解密密钥对截取的所述数据块进行解密;以及用解密后的所述数据块来替换所述文件头,以生成解密文件。
在一些实施例中,所述文件头包括用于指示加密版本的第一字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的文件类型的第二字段。
在一些实施例中,所述文件类型包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果所述文件类型是图像文件,则所述文件头还包括用于指定图像分辨率的第三字段;如果所述文件类型是视频文件,则所述文件头还包括用于指定视频时长的第三字段;以及如果所述文件类型是其它文件,则所述文件头还包括空的第三字段。
在一些实施例中,如果所述文件类型是图像文件或视频文件,则所述文件头还包括用于指定缩略图的第四字段;以及如果所述文件类型是其它文件,则所述文件头还包括空的第四字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的长度的第五字段。
在一些实施例中,根据所述加密文件的文件头确定在所述加密文件的尾部处的加密数据块的大小的步骤还包括:根据所述加密文件的长度和所述第五字段指示的所述解密文件的长度,确定在所述加密文件的尾部处的加密数据块的大小。
在一些实施例中,根据所述加密文件的文件头确定在所述加密文件的尾部处的加密数据块的大小的步骤还包括:如果所述加密文件的文件头指示其执行的加密操作是等长加密操作,则根据所述加密文件的文件头的长度,确定在所述加密文件的尾部处的加密数据块的大小。
在一些实施例中,所述等长加密操作包括:等长加密算法的操作和/或非等长加密算法的针对具有分块大小整数倍的长度的截取数据块的操作。
在一些实施例中,所述文件头包括用于指示所述解密文件在云端是否被备份过的第六字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的数字摘要的第七字段。
在一些实施例中,所述数字摘要是MD5值。
在一些实施例中,所述文件头包括用于指示所述解密文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述解密文件的路径。
在一些实施例中,所述加密是对称加密。
在一些实施例中,所述对称加密是高级加密标准(AES)加密。
根据本发明的第三方面,提供了一种用于对文件加密的设备。该设备包括:生成单元,用于根据所述文件,生成新文件头;替换单元,用于使用所述新文件头来替换从所述文件的头部开始的与所述新文件头相同大小的数据块;加密单元,用于使用加密密钥对被替换的所述数据块进行加密;以及附加单元,用于将加密后的所述数据块附加到所述文件的尾部,以生成加密文件。
在一些实施例中,所述新文件头包括用于指示加密版本的第一字段。
在一些实施例中,所述新文件头包括用于指示所述文件的文件类型的第二字段。
在一些实施例中,所述文件类型包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果所述文件类型是图像文件,则所述新文件头还包括用于指定图像分辨率的第三字段;如果所述文件类型是视频文件,则所述新文件头还包括用于指定视频时长的第三字段;以及如果所述文件类型是其它文件,则所述新文件头还包括空的第三字段。
在一些实施例中,如果所述文件类型是图像文件或视频文件,则所述新文件头还包括用于指定缩略图的第四字段;以及如果所述文件类型是其它文件,则所述新文件头还包括空的第四字段。
在一些实施例中,所述新文件头包括用于指示所述文件的原始长度的第五字段。
在一些实施例中,所述新文件头包括用于指示所述文件在云端是否被备份过的第六字段。
在一些实施例中,所述新文件头包括用于指示所述文件的数字摘要的第七字段。
在一些实施例中,所述数字摘要是MD5值。
在一些实施例中,所述新文件头包括用于指示所述文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述文件的路径。
在一些实施例中,所述加密是对称加密。
在一些实施例中,所述对称加密是高级加密标准(AES)加密。
根据本发明的第四方面,提供了一种用于对加密文件解密的设备。该设备包括:确定单元,用于根据所述加密文件的文件头,确定在所述加密文件的尾部处的加密数据块的大小;截取单元,用于根据所述加密数据块的大小,截取所述加密数据块;解密单元,用于使用解密密钥对截取的所述数据块进行解密;以及替换单元,用于用解密后的所述数据块来替换所述文件头,以生成解密文件。
在一些实施例中,所述文件头包括用于指示加密版本的第一字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的文件类型的第二字段。
在一些实施例中,所述文件类型包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果所述文件类型是图像文件,则所述文件头还包括用于指定图像分辨率的第三字段;如果所述文件类型是视频文件,则所述文件头还包括用于指定视频时长的第三字段;以及如果所述文件类型是其它文件,则所述文件头还包括空的第三字段。
在一些实施例中,如果所述文件类型是图像文件或视频文件,则所述文件头还包括用于指定缩略图的第四字段;以及如果所述文件类型是其它文件,则所述文件头还包括空的第四字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的长度的第五字段。
在一些实施例中,所述确定单元还用于:根据所述加密文件的长度和所述第五字段指示的所述解密文件的长度,确定在所述加密文件的尾部处的加密数据块的大小。
在一些实施例中,所述确定单元还用于:如果所述加密文件的文件头指示其执行的加密操作是等长加密操作,则根据所述加密文件的文件头的长度,确定在所述加密文件的尾部处的加密数据块的大小。
在一些实施例中,所述等长加密操作包括:等长加密算法的操作和/或非等长加密算法的针对具有分块大小整数倍的长度的截取数据块的操作。
在一些实施例中,所述文件头包括用于指示所述解密文件在云端是否被备份过的第六字段。
在一些实施例中,所述文件头包括用于指示所述解密文件的数字摘要的第七字段。
在一些实施例中,所述数字摘要是MD5值。
在一些实施例中,所述文件头包括用于指示所述解密文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述解密文件的路径。
在一些实施例中,所述加密是对称加密。
在一些实施例中,所述对称加密是高级加密标准(AES)加密。
使用根据本发明的文件加密方案,可以在处理能力受限的移动设备上进行文件快速加密/解密。由于处理过程中避免了对文件大小的处理,从而解决了由于处理器、存储器等处理能力较低而导致的加密大文件时速度过慢的问题。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
图1是示出了根据本发明的通信系统的示例应用场景的示意图。
图2示出了根据本发明的示例实施例的加密文件的示例文件头。
图3示出了根据本发明的示例实施例的用于对文件加密的方法的示例流程图;
图4示出了根据本发明的示例实施例的用于对文件解密的方法的示例流程图;
图5示出了根据本发明的示例实施例的用于执行图3所示加密方法的加密设备的配置的示例框图;以及
图6示出了根据本发明的示例实施例的用于执行图4所示解密方法的解密设备的配置的示例框图。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)iOS、Windows Mobile、Symbian、Android等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
图1是示出了根据本发明的通信系统1000的示例应用场景的示意图。如图1所示,通信系统1000可以包括:移动终端100以及服务器200。下文中,。为了清楚起见,图中仅示出了1个移动终端100,但本发明并不局限于此,可以包括2个或更多数目的移动终端等等。
移动终端100可以通过各种有线或无线连接与服务器200直接或间接相连并与之进行通信。有线连接的示例可以包括(但不限于):通用串行总线(USB)连接、串口连接、并口连接、以太网连接、火线(IEEE1394)连接等等。无线连接的示例可以包括(但不限于):红外(IrDA)连接、蓝牙连接、WLAN连接、2G、3G、4G、5G接入技术连接。此外,移动终端100与服务器200还可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。在一个实施例中,移动终端100可以向服务器200备份移动终端100中的文件。
移动终端100包括安装在其中的用于加密和/或解密的客户端150。客户端150可以由用户以软件的形式自行安装在移动终端100中,或者可以由终端生产厂商以硬件或固件的形式安装在移动终端100中。在一些实施例中,客户端150可以是例如在用户购买了移动终端100之后从例如安卓应用商店、苹果应用商店中下载的专门用于加密和/或解密的应用软件。在另一些实施例中,客户端150可以是例如由终端生产厂商以固件或硬件形式预先安装在移动终端100中的应用程序。在又一些实施例中,客户端150可以是网页浏览器,如IE、Firefox等等,其通过加密和/或解密页面(如实现了本发明的加密/解密方案的页面)进行认证。在另外一些实施例中,客户端150可以是机顶盒中的嵌入式模块(其可以是硬件、固件或软件),其在机顶盒中对文件进行加密和/或解密。
此外,根据本发明的加密/解密方法可以由不同的加密客户端150a和解密客户端150b来分别执行。它们可以分别安装在不同的移动终端100a和100b上,也可以安装在统一移动终端100中。本发明不限于上述这些安装方式。下面,将主要以移动终端100中安装的既支持加密也支持解密的客户端150作为示例来说明本发明的构思。
加密过程
在本发明的一些实施例中,当想要在移动终端100上对指定文件(下文中,称为“原文件”)进行加密时,用户可以启用客户端150(或专门用于加密的客户端150a)。客户端150首先根据待加密的文件(原文件)的内容以及各种属性,生成加密文件的文件头(下文中称为“新文件头”,以与原文件的文件头相区别)。稍后将参考附图图2来进一步详细说明新文件头的格式及其各字段的定义。
原文件 |
根据原文件生成新文件头
新文件头 |
接下来,客户端150根据新文件头的长度,从原文件的头部开始截取相同长度的数据块,并用新文件头来填充截取该数据块之后留下的空白。换言之,客户端150使用新文件头来替换原文件的头部处同等大小的数据块。该数据块可以包括全部或部分原文件的文件头,以及还可能包括部分的有效载荷数据。
截取部分 | 剩余部分 |
将截取部分替换为新文件头
新文件头 | 剩余部分 |
此时,请注意:由于新文件头与截取部分等长,因此如此生成的文件与原文件等长。
在替换之后,使用由用户提供的加密密钥,对被替换(截取)的数据块进行加密。此处,可以根据实现本发明的方案的具体应用来选取加密方式。例如,当想要在网络上安全传输文件时,可以选用对称加密方式,例如DES、AES等。然而,考虑到移动终端的有限处理资源以及加密算法强度等,优选地使用AES加密算法。此外,在其他实施例中,也可以使用非对称加密方式来实现相同目的。例如,使用接收方发布的公钥对上述截取的数据块进行加密,从而接收方可以使用自己持有的私钥对该数据块进行相应解密。
最后,将加密后的数据块添加(附加)在具有新文件头的文件的结尾处,从而形成了作为加密结果的加密文件。
新文件头 | 剩余部分 | 加密部分 |
加密文件
此时得到的加密文件的长度应当等于原文件长度加上加密部分的长度。取决于使用的加密算法,当使用的加密算法是等长加密算法时,加密部分的长度可以等于截取部分的长度,进而等于新文件头的长度。当使用的加密算法不是等长加密算法时,如果新文件头的长度是加密算法的分块大小的整数倍,则无需对截取部分(其长度等于新文件头的长度)填充空白数据,进而得到与加密前相等长度的加密部分,则此时加密部分的长度应当等于截取部分的长度,进而等于新文件头的长度。该长度在解密时起到关键作用,下文中将进一步详细描述。
解密过程
相对地,当用户想要在移动终端100上对指定文件进行解密时,用户可以启用客户端150(或专门用于解密的客户端150b)。客户端150首先对加密文件进行读取并根据下文中参考图2所描述的文件头格式来确定文件头的大小。
文件头 | 剩余部分 |
接下来,为了方便说明,在本实施例中,假定加密部分与加密前的部分等长,即加密部分的长度和加密前的截取数据块的长度相等(由于在本实施例中采用的是AES加密方式,因此通常是在截取数据块的长度(即,新文件头的长度)是16字节(即,缺省分块大小)的整数倍的时候加密前和加密后的长度相等)。稍后将详细描述在不等长的情况下的处理过程。客户端150从加密文件的末尾开始,截取与文件头的大小相同的部分。
文件头 | 截取加密部分之后的剩余部分 |
以及
加密部分 |
接下来,客户端150使用与上述加密密钥相对应的解密密钥(在本实施例中,由于AES是对称加密算法,因此这两个密钥相同)对加密部分解密,得到原文件头。然后,客户端150使用原文件头来替换加密文件的文件头,并根据加密文件的文件头中的各字段执行相应处理(具体处理内容请参见图2相关描述),最终得到解密文件(原文件)。
原文件头 | 截取加密部分之后的剩余部分 |
解密文件
接下来,如果在加密文件的文件头中包括原文件数字摘要字段,则可以使用其中的原文件的数字摘要值来确定是否对加密文件进行了正确解密。在一个实施例中,可以例如对解密文件进行数字摘要计算,得到解密文件的数字摘要值,并将其与原文件的数字摘要值进行比对,如果相同,则确定对加密文件进行了正确解密,否则,向用户提示解密失败或执行纠错处理等。
此外,如上所述,由于AES是分块加密算法,因此当作为其输入的数据块的大小不是其分块大小(在本实施例中,假定分块大小为16字节)的整数倍时,其通常会使用一些缺省(例如,空白)数据将该数据块补充到其分块大小(16字节)的整数倍,并在进行AES加密之后,得到具有与补充后长度相同的长度的加密数据块。因此,在根据本发明的实施例中,在对加密文件解密过程的上述截取步骤中,所截取的数据块的长度有可能不是加密文件的文件头的长度。因此需要根据加密文件的文件头中的字段来确定需要截取的数据块的长度。在如结合图2所描述的一个实施例中,加密文件的文件头中包括指示原文件的长度的字段。假定原文件的长度为m,加密文件的总长度为n,因此可以得到需要截取的数据块的长度为n-m:
加密文件头 | 剩余部分 | 待截取部分 |
如上面表格所示,三个部分(加密文件头、剩余部分、以及待截取部分)的总长度为n,而加密文件头长度+剩余部分长度=原文件中被替换部分长度+剩余部分长度=原文件长度=m。因此,待截取部分长度=加密文件长度-原文件长度=n-m。
因此,在一般情况下,在解密过程的截取数据块的步骤中,可以从加密文件的末尾截取n-m字节长度的数据块,作为加密部分。当然,如果能够根据加密文件的文件头的长度判断出其为AES加密算法的分块大小的整数倍,或判断出其使用的是等长加密操作,则也可以直接从加密文件的末尾截取该加密文件的文件头长度的数据作为加密部分。即,如果例如能够使得加密文件文件头的长度为非等长加密算法的分块大小的整数倍,或使用等长加密算法,则加密文件的文件头可以不包括指示原文件长度的字段。下面,将参考附图图2来详细说明加密文件的文件头的格式。
图2示出了根据本发明的示例实施例的加密文件的示例文件头。在图2所示的实施文件头中,可以包括两大部分:固定长度部分和可变长度部分。固定长度部分可以至少包括以下各字段:标识字段、版本字段、类型字段、原文件长度字段、备份字段、以及数字摘要字段。可变长度部分可以至少包括以下各字段:缩略图字段、媒体属性字段、以及原文件路径字段。这三个可变长度字段又可以各自细分为三个小字段:各可变长度字段的ID字段、各可变长度字段的长度字段、以及各可变长度字段的有效载荷(实际内容)字段。接下来,将参照附图2来逐一说明各字段的定义以及用途。如图2所示,第一行0~7表示同一行中的第1~8个字节,第一列0x00、0x08、0xl0、...表示每一行第一个字节的地址,其中,以“0x”为前缀的数字表示十六进制数。
标识字段:该字段可以是4个字节长,其用于将根据本发明实施例加密的文件与其他类型文件加以区分。例如,在一个实施例中,可以使用ASCII字符串“NQDA”或“NQDT”作为该字段的内容。当然,该字段的内容不限于此,也可以使用能够将其与其他种类文件加以区分的任意数据。
版本字段:该字段可以是2个字节长,其用于区分不同版本的加密文件,即最大支持65536个不同版本。由于随着技术的发展,可能需要对文件头乃至整个加密方式进行改进,因此可以使用该字段来区分不同版本的加密文件,进而对它们进行区别处理。
类型字段:该字段可以是2个字节长,其用于区分原文件的类型。例如,0x00表示无类型文件,0x01表示图像文件、0x02表示mp3格式的音频文件、...、0x10表示mp4格式的视频文件、0x11表示avi格式的视频文件等等。当然,上述这些仅作为示例之用,并不表示本发明受限于此,当然还可以使用任何长度的数据来表示任何类型的文件。
原文件长度字段:该字段可以是8个字节长,其用于指示原文件的长度,具体使用方式如上文所述,此处不再赘述。
备份字段:该字段可以是24个字节长,其用于指示该文件的备份属性。在一个实施例中,当该字段有值(非零)时,表示该文件已经通过网络备份到了服务器端(例如,服务器200),此处存的值为服务器端为其生成的文件ID。客户端150可以提供用于在云端备份加密文件的功能,帮助客户将加密文件保存到服务器200,这样如果用户丢失移动终端100,其也不会丢失该加密文件。当该字段为空(或另一预先指定值)时,表示该文件未被备份。
数字摘要字段:该字段可以是16个字节长,其用于存储原文件的数字摘要值。在一个实施例中,该数字摘要值可以是原文件的MD5值,用于在对加密文件解密之后,将解密文件的MD5值与原文件的MD5值进行比对,以确定对加密文件进行了正确解密。在其他实施例中,也可以使用任意长度的该字段以及使用任意其他数字摘要值来确定加密文件被正确解密。
缩略图字段:该字段为可变长度字段,其包括三个子字段:ID字段(例如,4字节)、长度字段(例如,4字节)、以及有效载荷(实际内容)字段(可变长)。由于该可变长度字段可以是可选字段,因此ID字段可以用于标识该字段,以与其他可变长度字段相区分。例如,可以使用“0x00”(不限于此)来表示该缩略图字段。长度字段可以用于指示该可变长度字段的有效载荷字段的长度。而有效载荷字段中存放的是该文件的缩略图。例如,对于移动终端来说,生成图像或视频的缩略图是非常耗时的操作,但是在文件浏览时常常会使用到缩略图,所以把原文件的缩略图保存在文件头中以提高查看效率。由于不用对整个文件进行解密操作就可以查看缩略图,因此可以大大提高了移动终端的处理速度和响应时间。
媒体属性字段:该字段为可变长度字段,其包括三个子字段:ID字段(例如,4字节)、长度字段(例如,4字节)、以及有效载荷(实际内容)字段(可变长)。由于该可变长度字段可以是可选字段,因此ID字段可以用于标识该字段,以与其他可变长度字段相区分。例如,可以使用“0x01”(不限于此)来表示该媒体属性字段。长度字段可以用于指示该可变长度字段的有效载荷字段的长度。而有效载荷字段中可以存放原文件的媒体属性。例如,当类型字段指示该文件为图像文件时,媒体属性字段的有效载荷字段中可以存储该图像文件的分辨率;当类型字段指示该文件为音频、视频文件时,媒体属性字段的有效载荷字段中可以存储该音频、视频文件的时间长度;以及当类型字段指示该文件为其他类型时,可以存储该文件的其他相关媒体属性(甚至是非媒体属性,例如指示压缩文件的压缩算法的指示符等等)。上述类型字段的定义仅为示例之用,本发明不限于此。
原文件路径字段:该字段为可变长度字段,其包括三个子字段:ID字段(例如,4字节)、长度字段(例如,4字节)、以及有效载荷(实际内容)字段(可变长)。由于该可变长度字段可以是可选字段,因此ID字段可以用于标识该字段,以与其他可变长度字段相区分。例如,可以使用“0x02”(不限于此)来表示该原文件路径字段。长度字段可以用于指示该可变长度字段的有效载荷字段的长度。而有效载荷字段中可以存放原文件的原始存放路径。例如,如果原文件在加密前存放在“/usr/lib”目录下,则在对其进行解密时,可以根据该字段的内容,将解密文件直接放入“/usr/lib”目录下,而无需用户手动操作。此外,在其他实施例中,存放的路径也可以是相对路径,例如“../usr/lib”,而不是上述绝对路径。此外,路径也不限于是Unix/Linux路径,也可以是其他操作系统所支持的各种路径名称,例如Windows下的“C:\My Documents”、“..\”之类的路径名称。
此外,在本发明的一些实施例中,上述三个可变长度字段各自的有效载荷(实际内容)字段通常可以是4字节对齐的。即,如果不能4字节对齐,则使用填充数据(例如,0x00等)将其补齐。当然,本发明不限于此,也可以使用任何其他填充数据,或其他类型字节对齐(8字节对齐、16字节对齐等),甚至不对齐。
图3和图4是分别示出了根据本发明实施例的用于对文件加密和解密的示例方法400和500的流程图。如图3所示,方法400可以包括步骤S410、S420、S430和S440,其中,部分步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。如图4所示,方法500可以包括步骤S510、S520、S530和S540,其中,部分步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图4所示的具体操作顺序。在一些实施例中,方法400和500可以分别由图5和图6所示的设备100a、100b或安装在设备100a、100b中的客户端150a、150b来执行。在另一些实施例中,方法400和500也可以由图1所示的移动终端100或安装在移动终端100中的客户端150来执行。
图5是示出了根据本发明实施例的用于对文件加密的设备100a的框图。如图5所示,设备100a可以包括:生成单元110、替换单元120、加密单元130、以及附加单元140。
生成单元110用于根据原文件,生成新文件头。在一些实施例中,生成单元110可以是设备100a的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100a的存储设备(例如、硬盘、软盘、光盘、磁带等)等相配合,读取原文件,并根据原文件生成新文件头。其也可以与设备100a的通信设备(例如,无线收发信机、USB端口等)等相配合,从另一设备接收原文件,并根据原文件生成新文件头。
替换单元120用于使用该新文件头来替换从原文件的头部开始的与该新文件头相同大小的数据块。在一些实施例中,替换单元120可以是设备100a的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100a的存储器(例如,RAM等)等相配合,将存储器中存储的原文件的头部开始的数据块替换为新文件头。
加密单元130用于使用加密密钥对被替换的数据块进行加密。在一些实施例中,加密单元130可以是设备100a的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100a的输入设备(例如,键盘、鼠标等)等相配合,使用从输入设备接收到的加密密钥,对被替换的数据块进行加密。在另一些实施例中,其可以与设备100a的通信设备(例如,无线收发信机、USB端口等)等相配合,使用从通信设备接收到的加密密钥,对被替换的数据块进行加密。在又一些实施例中,其可以与设备100a的存储设备(例如,硬盘、软盘、光盘、磁带等)等相配合,使用在存储设备中存储的加密密钥,对被替换的数据块进行加密。本发明不限于上述各种获取加密密钥的方式。
附加单元140用于将加密后的数据块附加到具有新文件头的文件的尾部,以最终生成加密文件。附加单元140可以是设备100a的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100a的存储设备(例如,硬盘、软盘、光盘、磁带等)等相配合,将加密后的数据块附加到具有新文件头的文件的尾部,生成加密文件并存储到存储设备中。在另一些实施例中,其也可以与设备100a的输出设备/通信设备(例如,显示器、无线收发信机、USB端口等)等相配合,将加密后的数据块附加到具有新文件头的文件的尾部,生成加密文件并向用户或其他设备输出。
图6是示出了根据本发明实施例的用于对文件解密的设备100b的框图。如图6所示,设备100b可以包括:确定单元160、截取单元170、解密单元180、以及替换单元190。
确定单元160用于根据加密文件的文件头,确定在加密文件的尾部处的加密数据块的大小。在一些实施例中,确定单元160可以是设备100b的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100b的存储设备(例如、硬盘、软盘、光盘、磁带等)等相配合,读取加密文件,并根据加密文件的文件头,确定在加密文件的尾部处的加密数据块的大小。其也可以与设备100b的通信设备(例如,无线收发信机、USB端口等)等相配合,从另一设备接收加密文件,并根据加密文件的文件头,确定在加密文件的尾部处的加密数据块的大小。
截取单元170用于根据加密数据块的大小,截取加密数据块。在一些实施例中,截取单元170可以是设备100b的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100b的存储器(例如,RAM等)等相配合,根据加密数据块的大小,将存储器中存储的加密数据块从加密文件中截取下来。
解密单元180用于使用解密密钥对截取的数据块进行解密。在一些实施例中,解密单元180可以是设备100b的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100b的输入设备(例如,键盘、鼠标等)等相配合,使用从输入设备接收到的解密密钥,对截取的数据块进行解密。在另一些实施例中,其可以与设备100b的通信设备(例如,无线收发信机、USB端口等)等相配合,使用从通信设备接收到的解密密钥,对截取的数据块进行解密。在又一些实施例中,其可以与设备100b的存储设备(例如,硬盘、软盘、光盘、磁带等)等相配合,使用在存储设备中存储的解密密钥,对截取的数据块进行解密。本发明不限于上述各种获取解密密钥的方式。
替换单元190用于使用解密后的数据块来替换其文件头,以生成解密文件。替换单元190可以是设备100b的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100b的存储设备(例如,硬盘、软盘、光盘、磁带等)等相配合,用解密后的数据块来替换文件头,以生成解密文件并存储到存储设备中。在另一些实施例中,其也可以与设备100b的输出设备/通信设备(例如,显示器、无线收发信机、USB端口等)等相配合,用解密后的数据块来替换文件头,以生成解密文件并向用户或其他设备输出。
以下将结合图3和图5,对根据本发明实施例的用于对文件加密的方法400和设备100a进行详细的描述。
在步骤S410中,可以由设备100a的生成单元110根据原文件,生成新文件头。
在步骤S420中,可以由设备100a的替换单元120使用该新文件头来替换从原文件的头部开始的与该新文件头相同大小的数据块。
在步骤S430中,可以由设备100a的加密单元130使用加密密钥对被替换的数据块进行加密。
在步骤S430中,可以由设备100a的附加单元140将加密后的数据块附加到具有新文件头的文件的尾部,以生成加密文件。
在一些实施例中,该新文件头可以包括用于指示加密版本的第一字段。
在一些实施例中,该新文件头可以包括用于指示原文件的文件类型的第二字段。
在一些实施例中,文件类型可以包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果文件类型是图像文件,则新文件头还可以包括用于指定图像分辨率的第三字段;如果文件类型是视频文件,则新文件头还可以包括用于指定视频时长的第三字段;以及如果文件类型是其它文件,则新文件头还可以包括空的第三字段。
在一些实施例中,如果文件类型是图像文件或视频文件,则新文件头还可以包括用于指定缩略图的第四字段;以及如果文件类型是其它文件,则新文件头还可以包括空的第四字段。
在一些实施例中,该新文件头可以包括用于指示原文件的原始长度的第五字段。
在一些实施例中,该新文件头可以包括用于指示原文件在云端是否被备份过的第六字段。
在一些实施例中,该新文件头可以包括用于指示原文件的数字摘要的第七字段。
在一些实施例中,数字摘要可以是MD5值。
在一些实施例中,该新文件头可以包括用于指示原文件的原始路径的第八字段,该原始路径用于指示在解密之后放置原文件的路径。
在一些实施例中,加密可以是对称加密。
在一些实施例中,对称加密可以是高级加密标准(AES)加密。
以下将结合图4和图6,对根据本发明实施例的用于对文件解密的方法500和设备100b进行详细的描述。
在步骤S510中,可以由设备100b的确定单元160根据加密文件的文件头,确定在加密文件的尾部处的加密数据块的大小。
在步骤S520中,可以由设备100b的截取单元170根据加密数据块的大小,截取加密数据块。
在步骤S530中,可以由设备100b的解密单元180使用解密密钥对截取的数据块进行解密;以及
在步骤S540中,可以由设备100b的替换单元190用解密后的数据块来替换文件头,以生成解密文件。
在一些实施例中,文件头可以包括用于指示加密版本的第一字段。
在一些实施例中,文件头可以包括用于指示解密文件的文件类型的第二字段。
在一些实施例中,文件类型可以包括:图像文件、视频文件、以及其它文件。
在一些实施例中,如果文件类型是图像文件,则文件头还可以包括用于指定图像分辨率的第三字段;如果文件类型是视频文件,则文件头还可以包括用于指定视频时长的第三字段;以及如果文件类型是其它文件,则文件头还可以包括空的第三字段。
在一些实施例中,如果文件类型是图像文件或视频文件,则文件头还可以包括用于指定缩略图的第四字段;以及如果文件类型是其它文件,则文件头还可以包括空的第四字段。
在一些实施例中,文件头可以包括用于指示解密文件的长度的第五字段。
在一些实施例中,步骤S510还可以包括:根据加密文件的长度和第五字段指示的解密文件的长度,确定在加密文件的尾部处的加密数据块的大小。
在一些实施例中,步骤S510还可以包括:如果所述加密文件的文件头指示其执行的加密操作是等长加密操作,则根据所述加密文件的文件头的长度,确定在所述加密文件的尾部处的加密数据块的大小。
在一些实施例中,等长加密操作包括:等长加密算法的操作和/或非等长加密算法的针对具有分块大小整数倍的长度的截取数据块的操作。
在一些实施例中,文件头可以包括用于指示解密文件在云端是否被备份过的第六字段。
在一些实施例中,文件头可以包括用于指示解密文件的数字摘要的第七字段。
在一些实施例中,数字摘要可以是MD5值。
在一些实施例中,文件头可以包括用于指示解密文件的原始路径的第八字段,原始路径用于指示在解密之后放置解密文件的路径。
在一些实施例中,加密可以是对称加密。
在一些实施例中,对称加密可以是高级加密标准(AES)加密。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
Claims (20)
1.一种用于对文件加密的方法,包括:
根据所述文件,生成新文件头;
使用所述新文件头来替换从所述文件的头部开始的与所述新文件头相同大小的数据块;
使用加密密钥对被替换的所述数据块进行加密;以及
将加密后的所述数据块附加到所述文件的尾部,以生成加密文件,
其中,所述新文件头包括用于指示所述文件的原始长度的第五字段,
其中,所述新文件头与加密后的所述数据块不等长。
2.根据权利要求1所述的方法,其中,所述新文件头包括用于指示所述文件的文件类型的第二字段。
3.根据权利要求2所述的方法,其中,所述文件类型包括:图像文件、视频文件、以及其它文件。
4.根据权利要求3所述的方法,其中,
如果所述文件类型是图像文件,则所述新文件头还包括用于指定图像分辨率的第三字段;
如果所述文件类型是视频文件,则所述新文件头还包括用于指定视频时长的第三字段;以及
如果所述文件类型是其它文件,则所述新文件头还包括空的第三字段。
5.根据权利要求3所述的方法,其中,
如果所述文件类型是图像文件或视频文件,则所述新文件头还包括用于指定缩略图的第四字段;以及
如果所述文件类型是其它文件,则所述新文件头还包括空的第四字段。
6.根据权利要求1所述的方法,其中,所述新文件头包括用于指示所述文件在云端是否被备份过的第六字段。
7.根据权利要求1所述的方法,其中,所述新文件头包括用于指示所述文件的数字摘要的第七字段。
8.根据权利要求1所述的方法,其中,所述新文件头包括用于指示所述文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述文件的路径。
9.根据权利要求1所述的方法,其中,所述加密是对称加密。
10.一种用于对加密文件解密的方法,包括:
根据所述加密文件的文件头,确定在所述加密文件的尾部处的加密数据块的大小;
根据所述加密数据块的大小,截取所述加密数据块;
使用解密密钥对截取的所述数据块进行解密;以及
用解密后的所述数据块来替换所述文件头,以生成解密文件,
其中,所述文件头包括用于指示所述解密文件的长度的第五字段,
其中,所述文件头与所述加密数据块不等长。
11.根据权利要求10所述的方法,其中,所述文件头包括用于指示所述解密文件的文件类型的第二字段。
12.根据权利要求11所述的方法,其中,所述文件类型包括:图像文件、视频文件、以及其它文件。
13.根据权利要求12所述的方法,其中,
如果所述文件类型是图像文件,则所述文件头还包括用于指定图像分辨率的第三字段;
如果所述文件类型是视频文件,则所述文件头还包括用于指定视频时长的第三字段;以及
如果所述文件类型是其它文件,则所述文件头还包括空的第三字段。
14.根据权利要求12所述的方法,其中,
如果所述文件类型是图像文件或视频文件,则所述文件头还包括用于指定缩略图的第四字段;以及
如果所述文件类型是其它文件,则所述文件头还包括空的第四字段。
15.根据权利要求10所述的方法,其中,根据所述加密文件的文件头确定在所述加密文件的尾部处的加密数据块的大小的步骤还包括:根据所述加密文件的长度和所述第五字段指示的所述解密文件的长度,确定在所述加密文件的尾部处的加密数据块的大小。
16.根据权利要求10所述的方法,其中,根据所述加密文件的文件头确定在所述加密文件的尾部处的加密数据块的大小的步骤还包括:如果所述加密文件的文件头指示其执行的加密操作是等长加密操作,则根据所述加密文件的文件头的长度,确定在所述加密文件的尾部处的加密数据块的大小。
17.根据权利要求10所述的方法,其中,所述文件头包括用于指示所述解密文件的数字摘要的第七字段。
18.根据权利要求10所述的方法,其中,所述文件头包括用于指示所述解密文件的原始路径的第八字段,所述原始路径用于指示在解密之后放置所述解密文件的路径。
19.一种用于对文件加密的设备,包括:
生成单元,用于根据所述文件,生成新文件头;
替换单元,用于使用所述新文件头来替换从所述文件的头部开始的与所述新文件头相同大小的数据块;
加密单元,用于使用加密密钥对被替换的所述数据块进行加密;以及
附加单元,用于将加密后的所述数据块附加到所述文件的尾部,以生成加密文件,
其中,所述新文件头包括用于指示所述文件的原始长度的第五字段,
其中,所述新文件头与加密后的所述数据块不等长。
20.一种用于对加密文件解密的设备,包括:
确定单元,用于根据所述加密文件的文件头,确定在所述加密文件的尾部处的加密数据块的大小;
截取单元,用于根据所述加密数据块的大小,截取所述加密数据块;
解密单元,用于使用解密密钥对截取的所述数据块进行解密;以及
替换单元,用于用解密后的所述数据块来替换所述文件头,以生成解密文件,
其中,所述文件头包括用于指示所述解密文件的长度的第五字段,
其中,所述文件头与所述加密数据块不等长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364201.5A CN103400064B (zh) | 2013-08-20 | 2013-08-20 | 用于文件加密和解密的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364201.5A CN103400064B (zh) | 2013-08-20 | 2013-08-20 | 用于文件加密和解密的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103400064A CN103400064A (zh) | 2013-11-20 |
CN103400064B true CN103400064B (zh) | 2016-08-24 |
Family
ID=49563688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310364201.5A Expired - Fee Related CN103400064B (zh) | 2013-08-20 | 2013-08-20 | 用于文件加密和解密的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103400064B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104680078B (zh) * | 2015-01-20 | 2021-09-03 | 中兴通讯股份有限公司 | 一种拍摄照片的方法、查看图片的方法、系统和终端 |
CN104615917A (zh) * | 2015-01-20 | 2015-05-13 | 中兴通讯股份有限公司 | 一种伪装图片的方法、查看图片的方法、系统和终端 |
CN104680077B (zh) | 2015-01-20 | 2021-10-12 | 中兴通讯股份有限公司 | 一种加密图片的方法、查看图片的方法、系统和终端 |
CN104952467B (zh) * | 2015-05-22 | 2019-07-12 | 上海斐讯数据通信技术有限公司 | 一种移动终端及其播放音频文件的方法 |
US10511668B2 (en) * | 2016-10-07 | 2019-12-17 | Hyundai Motor Company | Method of transmitting and receiving data in vehicle network and apparatus for the same |
CN106454409A (zh) * | 2016-12-12 | 2017-02-22 | Tcl集团股份有限公司 | 多媒体文件的加密方法及装置 |
CN109286484A (zh) * | 2018-09-28 | 2019-01-29 | 哈尔滨百香果科技有限公司 | 一种提高数据加解密速度的快速数据处理方法 |
CN109409143B (zh) * | 2018-12-21 | 2022-05-17 | 北京思源理想控股集团有限公司 | 一种安全键盘系统及其方法 |
CN110443032A (zh) * | 2019-08-14 | 2019-11-12 | 重庆蓝岸通讯技术有限公司 | 一种针对UBI文件系统在fastboot模式下烧录的加密保护方法 |
CN111767529A (zh) * | 2020-05-18 | 2020-10-13 | 广州视源电子科技股份有限公司 | 文件加密方法、文件解密方法、存储介质和电子设备 |
CN113179161B (zh) * | 2021-04-22 | 2022-11-08 | 平安消费金融有限公司 | 一种秘钥更换的方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770051A (zh) * | 2004-11-04 | 2006-05-10 | 华为技术有限公司 | 一种文件安全检测方法 |
CN101350047A (zh) * | 2008-08-12 | 2009-01-21 | 无敌科技(西安)有限公司 | 嵌入式多媒体文件加密及解密的方法 |
CN102334124A (zh) * | 2011-08-15 | 2012-01-25 | 华为终端有限公司 | 文件的保护方法及装置 |
CN102811383A (zh) * | 2012-07-06 | 2012-12-05 | 深圳市同洲电子股份有限公司 | 一种基于机顶盒的视频文件播放方法及装置 |
-
2013
- 2013-08-20 CN CN201310364201.5A patent/CN103400064B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770051A (zh) * | 2004-11-04 | 2006-05-10 | 华为技术有限公司 | 一种文件安全检测方法 |
CN101350047A (zh) * | 2008-08-12 | 2009-01-21 | 无敌科技(西安)有限公司 | 嵌入式多媒体文件加密及解密的方法 |
CN102334124A (zh) * | 2011-08-15 | 2012-01-25 | 华为终端有限公司 | 文件的保护方法及装置 |
CN102811383A (zh) * | 2012-07-06 | 2012-12-05 | 深圳市同洲电子股份有限公司 | 一种基于机顶盒的视频文件播放方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103400064A (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103400064B (zh) | 用于文件加密和解密的方法和设备 | |
WO2022252632A1 (zh) | 一种数据加密处理方法、装置、计算机设备及存储介质 | |
CN109150499B (zh) | 动态加密数据的方法、装置、计算机设备和存储介质 | |
AU2010338446B2 (en) | Secure kerberized access of encrypted file system | |
US20150365385A1 (en) | Method and apparatus for securing sensitive data in a cloud storage system | |
US8621189B2 (en) | System and method for hardware strengthened passwords | |
EP3082123B1 (en) | File storage system, file storage apparatus, and user terminal | |
CN107306254B (zh) | 基于双层加密的数字版权保护方法及系统 | |
CN104579689A (zh) | 一种软密钥系统及实现方法 | |
CN107733904A (zh) | 一种虚拟机数据加密和解密的方法、装置及平台 | |
CN106557707A (zh) | 一种处理文档数据的方法及系统 | |
CN103731423A (zh) | 一种安全的重复数据删除方法 | |
CN1941694A (zh) | 生成用于检测在处理期间加密数据的虚假改造的数据的设备及方法 | |
CN107733936B (zh) | 一种移动数据的加密方法 | |
CN105554038A (zh) | 一种在线系统和离线系统数据交互时数据安全的管控方法 | |
CN113704794B (zh) | 电子招投标系统中的投标文件处理方法及装置 | |
CN113507482B (zh) | 数据安全传输方法、安全交易方法、系统、介质和设备 | |
US20130283363A1 (en) | Secure data transfer over an arbitrary public or private transport | |
CN105162595B (zh) | 安全传输非压缩文件的加密以及解密方法 | |
CN115442164B (zh) | 多用户日志加解密方法、装置、设备及存储介质 | |
TWI649661B (zh) | 合成文件存取技術 | |
US8755521B2 (en) | Security method and system for media playback devices | |
CN103186719B (zh) | 一种面向移动终端的数字版权保护方法及系统 | |
CN106161366A (zh) | 一种减少ssl占用空间的方法及系统 | |
CN111294388B (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: 20160824 Termination date: 20190820 |
|
CF01 | Termination of patent right due to non-payment of annual fee |