Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FILE ENCRYPTION AND DECRYPTION METHOD, DEVICE AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2013/020446
Kind Code:
A1
Abstract:
Disclosed are a method, device and system for file encryption and decryption, related to the field of digital rights management and able to improve the efficiency of digital file encryption and decryption without requiring that the encryption device or decryption device has a large memory, able to present decrypted content during the process of digital file decryption, and to improve user experience. The method comprises: reading a starting length of file content from the beginning of an original file, and writing same into an encryption file; said starting length is the length from the beginning of the original file to the starting place where encrypted text and plain text is alternatingly encrypted; encrypting the file content after the starting length of the original file in a manner in which encrypted text and plain text alternate, and writing the encrypted file content into the encryption file. This solution is mainly used in processes of digital file encryption and decryption.

Inventors:
ZHANG JIAN (CN)
Application Number:
PCT/CN2012/079005
Publication Date:
February 14, 2013
Filing Date:
July 23, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
ZHANG JIAN (CN)
International Classes:
G06F21/10
Foreign References:
CN1774755A2006-05-17
CN101222624A2008-07-16
CN1717894A2006-01-04
CN102254127A2011-11-23
Download PDF:
Claims:
权利要求

1、 一种文件的加密方法, 其特征在于, 包括:

从原始文件的开头读取起始长度的文件内容, 写入加密文件中, 其中 所述起始长度为从所述原始文件的开头到密文和明文相交替进行加密的起 始位置之间的长度;

将所述原始文件起始长度之后的文件内容, 按照密文和明文相交替的 形式进行加密, 并将加密后的文件内容写入所述加密文件中。

2、 根据权利要求 1所述的文件的加密方法, 其特征在于, 所述将所述 原始文件起始长度之后的文件内容, 按照密文和明文相交替的形式进行加 密, 并将加密后的文件内容写入所述加密文件中包括:

读取加密长度的文件内容, 并对所述加密长度的文件内容进行加密, 将加密后的文件内容写入所述加密文件中; 在所述读取加密长度的文件内 容之后, 读取明文长度的文件内容写入所述加密文件中; 按照上述步骤重 复读取所述原始文件起始长度之后的文件内容直到将所述原始文件加密完 成; 或者

读取明文长度的文件内容写入所述加密文件中; 在所述读取明文长度 的文件内容之后, 读取加密长度的文件内容, 并对所述加密长度的文件内 容进行加密, 将加密后的文件内容写入所述加密文件中; 按照上述步骤重 复读取所述原始文件起始长度之后的文件内容直到将所述原始文件加密完 成。

3、 根据权利要求 2所述的文件的加密方法, 其特征在于, 所述按照上 述步骤重复读取所述原始文件起始长度之后的文件内容直到将所述原始文 件加密完成, 还包括:

判断所述原始文件中最后的文件内容是否应以密文的形式写入所述加 密文件;

若所述原始文件中最后的文件内容不应以密文的形式写入所述加密文 件, 则直接将所述原始文件中最后的文件内容以明文的形式写入所述加密 文件;

若所述原始文件中最后的文件内容应以密文的形式写入所述加密文 件, 则确定所述原始文件中最后的文件内容的长度是否达到基数值, 若所 述原始文件中最后的文件内容的长度未达到所述基数值, 则将所述最后的 文件内容进行补充, 使得最后的文件内容的长度达到所述基数值, 并对补 充后的文件内容进行加密并写入所述加密文件。

4、 根据权利要求 1-3任一项所述的文件的加密方法, 其特征在于, 在 所述从原始文件的开头读取起始长度的文件内容, 写入所述加密文件中之 前, 还包括:

根据所述原始文件的大小, 确定所述起始长度、 所述加密长度以及所 述明文长度;

将所述起始长度、 所述加密长度、 所述明文长度以及加密规则发送给 文件的解密装置。

5、 根据权利要求 1-3任一项所述的文件的加密方法, 其特征在于, 所 述将所述原始文件起始长度之后的文件内容, 按照密文和明文相交替的形 式进行加密还包括: 在按照密文和明文相交替的形式进行加密的过程中, 按照预定加密规则计算所述加密长度和所述明文长度, 得到动态变化的加 密长度和明文长度。

6、 根据权利要求 4所述的文件的加密方法, 其特征在于, 所述将所述 起始长度、 所述加密长度、 所述明文长度以及加密规则发送给文件的解密 装置包括:

在所述加密文件的开头添加文件头, 并将所述起始长度、 所述加密长 度、 所述明文长度以及加密规则写入到所述加密文件的文件头中发送给所 述文件的解密装置; 或者

将所述起始长度、 所述加密长度、 所述明文长度以及加密规则封装到 信元中发送给所述文件的解密装置。

7、 一种文件的解密方法, 其特征在于, 包括: 从加密文件的开头读取起始长度的文件内容, 写入解密文件中, 其中 所述初始长度为从所述加密文件的开头到密文和明文相交替进行解密的起 始位置之间的长度;

将所述加密文件起始长度之后的文件内容, 按照密文和明文相交替的 形式进行解密, 并将解密后的文件内容写入所述解密文件中。

8、 根据权利要求 7所述的文件的解密方法, 其特征在于, 所述将所述 加密文件起始长度之后的文件内容, 按照密文和明文相交替的形式进行解 密, 并将解密后的文件内容写入所述解密文件中包括:

当加密规则采用的是先密文后明文相交替的形式时, 读取加密长度的 文件内容, 并对所述加密长度的文件内容进行解密, 将解密后的文件内容 写入所述解密文件中; 在所述读取加密长度的文件内容之后, 读取明文长 度的文件内容, 写入所述解密文件中; 按照上述步骤重复读取所述加密文 件起始长度之后的文件内容直到将所述加密文件的当前解密区域解密完 成;

当加密规则采用的是先明文后密文相交替的形式时, 读取明文长度的 文件内容写入所述解密文件中; 在所述读取明文长度的文件内容之后, 读 取加密长度的文件内容, 并对所述加密长度的文件内容进行解密, 将解密 后的文件内容写入所述解密文件中; 按照上述步骤重复读取所述加密文件 起始长度之后的文件内容直到将所述加密文件的当前解密区域解密完成。

9、 根据权利要求 8所述的文件的解密方法, 其特征在于, 在所述从加 密文件的开头读取起始长度的文件内容, 写入解密文件中之前, 还包括: 获取所述起始长度、 所述加密长度、 所述明文长度以及加密规则。

10、 根据权利要求 8 所述的文件的解密方法, 其特征在于, 所述将所 述加密文件起始长度之后的文件内容, 按照密文和明文相交替的形式进行 解密还包括: 在按照密文和明文相交替的形式进行解密的过程中, 按照所 述加密规则计算所述加密长度和所述明文长度, 得到动态变化的加密长度 和明文长度。 11、 根据权利要求 7-10任一项所述的文件的解密方法, 其特征在于, 还包括: 将所述解密文件的内容进行显示。

12、 根据权利要求 11所述的文件的解密方法, 其特征在于, 还包括: 将所述解密文件中不属于当前解密区域的文件内容删除。

1 3、 一种文件的加密装置, 其特征在于, 包括:

起始加密单元, 用于从原始文件的开头读取起始长度的文件内容, 写 入加密文件中, 其中所述起始长度为从所述原始文件的开头到密文和明文 相交替进行加密的起始位置之间的长度; 密文和明文相交替的形式进行加密, 并将加密后的文件内容写入所述加密 文件中。

14、 根据权利要求 1 3所述的文件的加密装置, 其特征在于, 所述交替 加密单元包括:

密文写入模块, 用于读取加密长度的文件内容, 并对所述加密长度的 文件内容进行加密, 将加密后的文件内容写入所述加密文件中;

明文写入模块, 用于在所述密文写入模块读取加密长度的文件内容之 后, 读取明文长度的文件内容写入所述加密文件中;

第一重复模块, 用于重复交替启动所述密文写入模块和所述明文写入 模块, 直到将所述原始文件加密完成。

15、 根据权利要求 14所述的文件的加密装置, 其特征在于, 所述明文 写入模块还用于, 读取明文长度的文件内容写入所述加密文件中;

所述密文写入模块还用于, 在所述明文写入模块读取明文长度的文件 内容写入所述加密文件中之后, 读取加密长度的文件内容, 并对所述加密 长度的文件内容进行加密, 将加密后的文件内容写入所述加密文件中; 所述第一重复模块还用于, 重复交替启动所述明文写入模块和所述密 文写入模块, 直到将所述原始文件加密完成。

16、 根据权利要求 14所述的文件的加密装置, 其特征在于, 所述交替 加密单元还包括:

判断模块, 用于判断所述原始文件中最后的文件内容是否应以密文的 形式写入所述加密文件;

所述明文写入模块还用于, 在所述原始文件中最后的文件内容不应以 密文的形式写入所述加密文件时, 直接将所述原始文件中最后的文件内容 以明文的形式写入所述加密文件;

补充模块, 用于在所述原始文件中最后的文件内容应以密文的形式写 入所述加密文件时, 确定所述原始文件中最后的文件内容的长度是否达到 基数值, 若所述原始文件中最后的文件内容的长度未达到所述基数值, 则 将所述最后的文件内容进行补充 , 使得最后的文件内容的长度达到所述基 数值;

所述密文写入模块还用于, 对补充后的文件内容进行加密并写入所述 加密文件。

17、 根据权利要求 1 3-16任一项所述的文件的加密装置, 其特征在于, 还包括:

确定单元, 用于在所述起始加密单元从原始文件的开头读取起始长度 的文件内容, 写入所述加密文件中之前, 根据所述原始文件的大小, 确定 所述起始长度、 所述加密长度以及所述明文长度;

发送单元, 用于将所述起始长度、 所述加密长度、 所述明文长度以及 加密规则发送给文件的解密装置。

18、 根据权利要求 1 3-16任一项所述的文件的加密装置, 其特征在于, 所述交替加密单元还包括:

第一计算模块, 用于在按照密文和明文相交替的形式进行加密的过程 中, 按照预定加密规则计算所述加密长度和所述明文长度, 得到动态变化 的加密长度和明文长度。

19、 根据权利要求 17所述的文件的加密装置, 其特征在于, 所述发送 单元还用于, 在所述加密文件的开头添加文件头, 并将所述起始长度、 所 述加密长度以及所述明文长度的属性写入所述加密文件的文件头中; 所述发送单元还用于, 将所述起始长度、 所述加密长度、 所述明文长 度以及加密规则封装到信元中发送给所述文件的解密装置。

20、 一种文件的解密装置, 其特征在于, 包括:

起始解密单元, 用于从加密文件的开头读取起始长度的文件内容, 写 入解密文件中, 其中所述初始长度为从所述加密文件的开头到密文和明文 相交替进行解密的起始位置之间的长度;

交替解密单元, 用于将所述加密文件起始长度之后的文件内容, 按照 密文和明文相交替的形式进行解密, 并将解密后的文件内容写入所述解密 文件中。

21、 根据权利要求 20所述的文件的解密装置, 其特征在于, 所述交替 解密单元包括:

密文读取模块, 用于在加密规则采用的是先密文后明文相交替的形式 时, 读取加密长度的文件内容, 并对所述加密长度的文件内容进行解密, 将解密后的文件内容写入所述解密文件中;

明文读取模块, 用于在所述密文读取模块读取加密长度的文件内容之 后, 读取明文长度的文件内容, 写入所述解密文件中;

第二重复模块, 用于重复启动所述密文读取模块和所述明文读取模块, 直到将所述加密文件的当前解密区域解密完成。

22、 根据权利要求 21所述的文件的解密装置, 其特征在于, 所述明文 读取模块还用于, 在加密规则采用的是先明文后密文相交替的形式时, 读 取明文长度的文件内容, 写入所述解密文件中;

所述密文读取模块还用于, 在所述明文读取模块读取明文长度的文件 内容之后, 读取加密长度的文件内容, 并对所述加密长度的文件内容进行 解密, 将解密后的文件内容写入所述解密文件中;

所述第二重复模块还用于, 重复启动所述明文读取模块和所述密文读 取模块, 直到将所述加密文件的当前解密区域解密完成。 23、 根据权利要求 21所述的文件的解密装置, 其特征在于, 还包括: 获取单元, 用于在所述起始解密单元从加密文件的开头读取起始长度 的文件内容, 写入解密文件中之前, 获取所述起始长度、 所述加密长度、 所述明文长度以及加密规则。

24、 根据权利要求 20-23任一项所述的文件的解密装置, 其特征在于, 所述交替解密单元还包括:

第二计算模块, 用于在按照密文和明文相交替的形式进行解密的过程 中, 按照所述加密规则计算所述加密长度和所述明文长度, 得到动态变化 的加密长度和明文长度。

25、 根据权利要求 20-23任一项所述的文件的解密装置, 其特征在于, 还包括:

显示单元, 用于将所述解密文件的内容进行显示。

26、 根据权利要求 25所述的文件的解密装置, 其特征在于, 还包括: 删除单元, 用于将所述解密文件中不属于当前解密区域的文件内容删 除。

27、一种文件的加密和解密系统,其特征在于, 包括:如权利要求 13-19 中任一项所述的加密装置和如权利要求 20-26中任一项所述的解密装置。

Description:
文件的加密和解密方法、 装置及系统 本申请要求于 2011 年 8 月 11 日提交中国专利局、 申请号为 201110230148. 0 , 发明名称为 "文件的加密和解密方法、 装置及系统" 的 中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域

本发明涉及数字版权管理领域, 尤其涉及一种文件的加密和解密方法、 装置及系统。 背景技术

随着网络和移动通讯技术的发展, 数字文件的传播速度得到了大大的 提高, 用户获得数字文件的途径也变得简单而多样。 但是, 如果缺乏有效 的版权保护, 数字文件将很容易遭到盗版, 数字文件的版权所有者也会失 去应得的利益。因此,数字文件的网络传播需 要通过数字版权管理(Dig i ta l Right s Management , DRM )进行有效的保护。 DRM的基本工作原理为: 在数 字文件的授权中心, 即在 DRM 服务器上, 对数字文件进行高级加密标准 (Advanced Encrypt ion Standard, AES)力口密并压缩; 当用户在终端上阅读 数字文件时, 需要连接到相应的授权中心, 并通过授权中心的验证授权后, 再对数字文件进行 AES解密和阅读。

目前, 通常采用的 DRM技术为: 在 DRM服务器上, 将数字文件的内容 整体读入到内存中, 然后进行 AES加密并保存。 在终端进行阅读时, 从服 务器上获取加密的数字文件, 然后将加密的数字文件的内容整体读入到内 存中, 进行 AES解密。

在实现上述文件的加密和解密的过程中, 发明人发现现有技术中至少 存在如下问题: 由于需要将数字文件的内容整体读入到内存中 进行加密和 解密, 对 DRM服务器和终端设备的内存要求较高。 并且, 需要对整个数字 文件中的每个字节都进行加密和解密, 消耗的时间较长, 而且数字文件的 体积越大, 加密和解密所消耗的时间就越长。 发明内容

本发明的实施例提供一种文件的加密和解密方 法、 装置及系统, 能够 提高数字文件加密和解密的效率, 并且不需要加密装置或解密装置具备较 大的内存, 能在数字文件解密的过程中将已解密的内容呈 现, 提高用户体 验感。

为达到上述目的, 本发明的实施例采用如下技术方案:

一种文件的加密方法, 包括:

从原始文件的开头读取起始长度的文件内容, 写入加密文件中, 其中 起始长度为从原始文件的开头到密文和明文相 交替进行加密的起始位置之 间的长度;

将原始文件起始长度之后的文件内容, 按照密文和明文相交替的形式 进行加密, 并将加密后的文件内容写入加密文件中。

一种文件的解密方法, 包括:

从加密文件的开头读取起始长度的文件内容, 写入解密文件中, 其中 初始长度为从加密文件的开头到密文和明文相 交替进行解密的起始位置之 间的长度;

将加密文件起始长度之后的文件内容, 按照密文和明文相交替的形式 进行解密, 并将解密后的文件内容写入解密文件中。

一种文件的加密装置, 包括:

起始加密单元, 用于从原始文件的开头读取起始长度的文件内 容, 写 入加密文件中, 其中起始长度为从原始文件的开头到密文和明 文相交替进 行加密的起始位置之间的长度;

交替加密单元, 用于将原始文件起始长度之后的文件内容, 按照密文 和明文相交替的形式进行加密, 并将加密后的文件内容写入加密文件中。

一种文件的解密装置, 包括:

起始解密单元, 用于从加密文件的开头读取起始长度的文件内 容, 写 入解密文件中, 其中初始长度为从加密文件的开头到密文和明 文相交替进 行解密的起始位置之间的长度;

交替解密单元, 用于将加密文件起始长度之后的文件内容, 按照密文 和明文相交替的形式进行解密, 并将解密后的文件内容写入解密文件中。

一种文件的加密和解密系统, 包括: 加密装置和解密装置。

本发明实施例提供的文件的加密和解密方法、 装置及系统, 在加密时 按照预定的明文长度和密文长度将原始文件分 段读取到内存中进行加密处 理, 与现有技术中将原始文件整体读入内存进行加 密的方法相比, 对加密 装置的内存要求较低。 并且, 通过密文与明文相互间隔的形式进行加密和 解密, 与现有技术中将原始文件中的每一个字节都进 行加密和解密的方法 相比, 减少了需要进行加密和解密的数据量, 能够提高加密和解密的效率。 并且, 采用不连续的加密和解密形式, 与现有技术中将原始文件作为一个 整体加密和解密的方法相比, 可以在解密的过程中将已解密的内容呈现, 实现了边解密边阅读, 从而减少了用户等待响应的时间, 提高了用户体验 感。 附图说明

为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作 简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本领域普通技术人员 来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附 图。

图 1为本发明实施例 1中文件的加密方法流程图;

图 2为本发明实施例 1中文件的解密方法流程图;

图 3为本发明实施例 2中文件的加密方法流程图;

图 4为本发明实施例 2中文件的解密方法流程图;

图 5为本发明实施例 3中一种文件的加密装置的组成示意图; 图 6为本发明实施例 3中另一种文件的加密装置的组成示意图; 图 7为本发明实施例 3中另一种文件的加密装置的组成示意图; 图 8为本发明实施例 3中另一种文件的加密装置的组成示意图; 图 9为本发明实施例 3中另一种文件的加密装置的组成示意图; 图 10为本发明实施例 3中一种文件的解密装置的组成示意图; 图 11为本发明实施例 3中另一种文件的解密装置的组成示意图; 图 12为本发明实施例 3中另一种文件的解密装置的组成示意图; 图 1 3为本发明实施例 3中另一种文件的解密装置的组成示意图; 图 14为本发明实施例 3中一种文件的加密和解密系统的组成示意图 具体实施方式

下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进 行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没 有作出创造性劳动前提下所获得的所有其他实 施例, 都属于本发明保护的 范围。

实施例 1

本发明实施例提供一种文件的加密方法, 如图 1所示, 包括:

101、 加密装置从原始文件的开头读取起始长度的文 件内容, 写入加密 文件中, 其中起始长度为从原始文件的开头到密文和明 文相交替进行加密 的起始位置之间的长度。

其中, 根据预定的起始长度值, 从原始文件的开头读取起始长度的文 件内容, 以明文的形式写入加密文件, 以便识别密文和明文相交替进行加 密的起始位置。 其中起始长度为从原始文件的开头到密文和明 文相交替进 行加密的起始位置之间的长度。 原始文件起始长度之后的文件内容, 即起 始位置之后的内容, 是按照密文和明文相交替的形式进行加密的。

102、 加密装置将原始文件起始长度之后的文件内容 , 按照密文和明文 相交替的形式进行加密, 并将加密后的文件内容写入加密文件中。

其中, 将原始文件起始长度之后的文件内容, 按照密文和明文相交替 的形式进行加密, 并将加密后的文件内容写入加密文件中的方法 可以为先 密文后明文的形式, 还可以为先明文后密文的形式, 具体的本发明实施例 对此不进行限制。

当采用先密文后明文的形式时, 该方法具体为: 读取加密长度的文件 内容, 并对加密长度的文件内容进行加密, 将加密后的文件内容写入加密 文件中; 在读取加密长度的文件内容之后, 读取明文长度的文件内容写入 加密文件中; 按照上述步骤重复读取原始文件起始长度之后 的文件内容直 到将原始文件加密完成。

当采用先明文后密文的形式时, 该方法具体为: 读取明文长度的文件 内容写入加密文件中; 在读取明文长度的文件内容之后, 读取加密长度的 文件内容, 并对加密长度的文件内容进行加密, 将加密后的文件内容写入 加密文件中; 按照上述步骤重复读取原始文件起始长度之后 的文件内容直 到将原始文件加密完成。

本发明实施例提供一种文件的解密方法, 如图 2所示, 包括:

201、 解密装置从加密文件的开头读取起始长度的文 件内容, 写入解密 文件中, 其中初始长度为从加密文件的开头到密文和明 文相交替进行解密 的起始位置之间的长度。

其中, 加密文件的开头为不包括文件头等其他参数信 息的文件内容, 若在原始文件的加密中添加了文件头, 则在解密开始前需要在去掉文件头 后, 根据预定的起始长度值, 从加密文件的正式内容起读取起始长度的文 件内容写入解密文件中, 以便识别密文和明文相交替进行解密的起始位 置。 起始位置之前的内容, 即读取到的起始长度的文件内容, 是明文形式的, 不需要进行解密操作即可写入解密文件中。 需要说明的是, 解密文件只在 内存中存取, 而不会在解密装置的磁盘上生成对应的解密文 件, 使得解密 得到的原始文件内容能够得到有效的版权保护 。

202、 解密装置将加密文件起始长度之后的文件内容 , 按照密文和明文 相交替的形式进行解密, 并将解密后的文件内容写入解密文件中。

其中, 根据加密规则的不同, 解密时采用的读取加密文件的方式也不 同, 将加密文件起始长度之后的文件内容, 按照密文和明文相交替的形式 进行解密, 并将解密后的文件内容写入解密文件中的方法 具体为:

当加密规则采用的是先密文后明文相交替的形 式时, 在解密时也对应 的先读取加密长度的文件内容, 并对加密长度的文件内容进行解密, 将解 密后的文件内容写入解密文件中; 在读取加密长度的文件内容之后, 读取 明文长度的文件内容, 写入解密文件中; 按照上述步骤重复读取加密文件 起始长度之后的文件内容直到将加密文件的当 前解密区域解密完成。

当加密规则采用的是先明文后密文相交替的形 式时, 在解密时也对应 的先读取明文长度的文件内容写入解密文件中 ; 在读取明文长度的文件内 容之后, 读取加密长度的文件内容, 并对加密长度的文件内容进行解密, 将解密后的文件内容写入解密文件中; 按照上述步骤重复读取加密文件起 始长度之后的文件内容直到将加密文件的当前 解密区域解密完成。

本发明实施例提供的文件的加密和解密方法, 在加密时按照预定的明 文长度和密文长度将原始文件分段读取到内存 中进行加密处理, 与现有技 术中将原始文件整体读入内存进行加密的方法 相比, 对加密装置的内存要 求较低。 并且, 通过密文与明文相互间隔的形式进行加密和解 密, 与现有 技术中将原始文件中的每一个字节都进行加密 和解密的方法相比, 减少了 需要进行加密和解密的数据量, 能够提高加密和解密的效率。 并且, 采用 不连续的加密和解密形式, 与现有技术中将原始文件作为一个整体加密和 解密的方法相比, 可以在解密的过程中将已解密的内容呈现, 实现了边解 密边阅读, 从而减少了用户等待响应的时间, 提高了用户体验感。

实施例 2

本发明实施例提供一种文件的加密和解密方法 , 在加密装置上将数字 文件进行间隔加密, 得到能够有效保护数字文件版权的加密文件; 当在解 密装置向加密装置发出获取加密文件的请求时 , 加密装置将加密文件发送 给解密装置; 再由解密装置进行对应的间隔解密, 并将解密后的数字文件 显示。 具体的, 文件的加密方法如图 3所示, 包括:

301、 根据原始文件的大小, 加密装置确定起始长度、 加密长度以及明 文长度。

其中, 起始长度、 加密长度以及明文长度是预先定义的属性值, 可以 根据需要设定大小。 根据原始文件的大小, 确定起始长度、 加密长度以及 明文长度, 以便调整加密文件中密文和明文的相对比例, 控制加密的效率。 例如, 当原始文件小于 512Kbytes时, 将明文长度确定为 0字节, 使密文 比例为 100%; 当原始文件大小介于 512Kbytes和 1024Kbytes之间时, 将明 文长度确定为 16 个字节, 使密文比例在 50%左右; 当原始文件大于 1024Kbytes时, 将明文长度确定为 16x9个字节, 使密文比例在 1 0%左右。

需要说明的是, 起始长度、 加密长度以及明文长度也可以采用其他预 定规则。 例如, 将密文长度设定为依次递增的形式, 将明文长度设定为依 次递减的形式, 在加密过程中得到动态变化的长度值。 若明文长度和密文 长度为根据预定规则计算得出时, 需要在加密规则中描述各长度值的计算 规则, 以便解密装置在解密时得到相应的明文长度和 密文长度。

其中, 在一些加密算法中对待加密内容的长度是有固 定要求的, 因此 加密长度必须是加密算法中加密基数值的倍数 。 例如, 在 AES 128-CBC算法 中, 每次加密时加密块的长度固定为 128b i t s , 即 16个字节, 因此在定义 加密长度时, 加密长度必须是 16字节的倍数, 以便满足 AES128-CBC加密 算法。 本发明实施例采用的加密算法包括但不局限于 上述算法, 还可以为 AES192-CBC、 AES256-CBC等其他对称加密算法。

302、 加密装置将起始长度、 加密长度、 明文长度以及加密规则发送给 文件的解密装置。

其中, 加密装置将起始长度、 加密长度、 明文长度以及加密规则发送 给文件的解密装置的方法可以为: 加密装置在加密文件的开头添加文件头, 并将起始长度、 加密长度、 明文长度以及加密规则以 name-va lue的形式写 入到加密文件的文件头中, 以便上述加密信息随加密文件一起发送给文件 的解密装置。 加密装置将起始长度、 加密长度、 明文长度以及加密规则发 送给文件的解密装置的方法也可以为: 加密装置将起始长度、 加密长度、 明文长度以及加密规则封装到信元中发送给文 件的解密装置。

需要说明的是, 当起始长度、 加密长度以及明文长度按照预定规则计 算得出时, 一个加密文件中的加密长度和明文长度并不是 固定不变的, 因 此需要在加密规则中描述起始长度、 加密长度以及明文长度的计算规则, 以便解密装置在解密时得到对应的长度值。

另外, 若加密装置和解密装置已经预先约定了起始长 度、 加密长度、 明文长度以及加密规则, 则加密装置可以不需要将这些加密信息再次发 送 给解密装置。

303、 加密装置从原始文件的开头读取起始长度的文 件内容, 写入加密 文件中。

其中, 起始长度为从原始文件的开头到密文和明文相 交替进行加密的 起始位置之间的长度, 根据预定的起始长度值, 从原始文件的开头读取起 始长度的文件内容, 以明文的形式写入加密文件, 以便加密装置和解密装 置识别密文和明文相交替进行加密的起始位置 。 原始文件起始长度之后的 文件内容, 即起始位置之后的内容, 是按照密文和明文相交替的形式进行 加密的。

304、 加密装置读取加密长度的文件内容, 并对加密长度的文件内容进 行加密, 将加密后的文件内容写入加密文件中。

其中, 在步骤 303 中加密装置得到密文和明文相交替进行加密的 起始 位置, 遂从起始位置顺序读取加密长度的文件内容进 行加密, 并将加密后 的文件内容写入加密文件中。

另外, 在密文和明文相交替进行加密的过程中, 采用先明文或是先密 文的形式均可, 在本实施例中不作限定。 当采用先明文后密文的形式进行 交替加密时, 将步骤 304和步骤 305调换顺序, 并将加密规则写入文件头, 或以信元透传给解密装置。 305、 加密装置读取明文长度的文件内容写入加密文 件中。

其中, 加密装置读取到的明文长度的文件内容无需进 行加密处理, 以 明文的形式写入加密文件中, 通过明文内容将加密内容间隔开。

306、加密装置判断原始文件是否已被读取完; 若原始文件未被读取完, 则执行步骤 304; 若原始文件已被读取完, 则执行步骤 307。

其中, 在原始文件加密完成之前, 重复交替执行步骤 305和步骤 306 , 顺序读取原始文件直到将原始文件加密完成。

307、 加密装置判断原始文件中最后的文件内容是否 应以密文的形式写 入加密文件; 若原始文件中最后的文件内容不应以密文的形 式写入加密文 件, 则执行步骤 308; 若原始文件中最后的文件内容应以密文的形式 写入加 密文件, 则执行步骤 309。

其中, 因为原始文件的大小不同, 以及起始长度、 加密长度、 明文长 度以及加密规则不同, 导致原始文件中最后的文件内容可能是密文形 式, 也可能是明文形式。 具体的判断原始文件中最后的文件内容是否应 以密文 形式写入加密文件的方法可以为: 当读取到原始文件中最后的文件内容时, 根据当前内容的前一段文件内容是明文还是密 文判断当前文件内容写入加 密文件的形式。 若前一段文件内容是以明文形式写入加密文件 的, 则当前 内容应以密文形式写入加密文件; 若前一段文件内容是以密文形式写入加 密文件的, 则当前内容应以明文形式写入加密文件。

308、 加密装置直接将原始文件中最后的文件内容以 明文的形式写入加 密文件。

其中, 明文内容不需要进行加密处理, 对内容长度没有要求, 直接明 文的形式写入加密文件

309、 加密装置确定原始文件中最后的文件内容的长 度是否达到基数 值; 若原始文件中最后的文件内容的长度未达到基 数值, 则执行步骤 310; 若原始文件中最后的文件内容的长度达到基数 值则执行步骤 311。

其中, 在一些加密算法中对待加密内容的长度是有固 定要求的, 因此 待加密内容的长度, 即原始文件中最后的内容的长度必须达到加密 算法中 加密基数值, 或者是基数值的倍数。 例如, 在 AES128-CBC算法中, 每次加 密时加密块的长度固定为 128b i t s , 即 16个字节, 因此待加密内容的长度 必须是 16字节的倍数, 若最后的文件内容不足 16字节或不为 16字节的倍 数, 则需要将其补全到 16字节或 16字节的倍数, 以便满足 AES 128-CBC加 密算法。

31 0、 加密装置将最后的文件内容进行补充, 使得最后的文件内容的长 度达到基数值。

其中, 为了满足加密算法对待加密内容长度的要求, 将最后的文件内 容进行补充, 使得最后的文件内容的长度达到加密算法中加 密的基数值, 或基数值的倍数。 若在加密时对文件内容进行了补全, 则在解密时相应的 也要将补全的内容删除。

31 1、 加密装置将最后的文件内容或补充后的文件内 容进行加密并写入 加密文件。

本发明实施例提供一种文件的解密方法如图 4所示, 包括:

401、 解密装置获取起始长度、 加密长度、 明文长度以及加密规则。 其中, 解密装置获取起始长度、 加密长度、 明文长度以及加密规则方 法可以为: 解密装置从文件头中读取起始长度、 加密长度、 明文长度以及 加密规则; 或者接收加密装置发送过来的携带起始长度、 加密长度、 明文 长度以及加密规则的信元, 并从中解密获取起始长度、 加密长度、 明文长 度以及加密规则; 或者由加密和解密双方预先约定起始长度、 加密长度、 明文长度以及加密规则。

402、 解密装置从加密文件的开头读取起始长度的文 件内容, 写入解密 文件中。

其中, 根据预定的起始长度值, 从加密文件的开头读取起始长度的文 件内容写入解密文件, 以便识别密文和明文相交替进行解密的起始位 置。 需要说明的是, 解密文件只在内存中存取, 而不会在解密装置的磁盘上生 成对应的解密文件, 使得解密得到的原始文件内容能够得到有效的 版权保 护。

403、 解密装置读取加密长度的文件内容, 并对加密长度的文件内容进 行解密, 将解密后的文件内容写入解密文件中。

其中, 在步骤 402 中得到密文和明文相交替进行解密的起始位置 , 遂 从起始位置顺序读取加密长度的文件内容进行 解密, 并将解密后的文件内 容写入解密文件中。

其中, 根据步骤 304和步骤 305 中交替加密时, 密文和明文的先后顺 序的不同, 解密时采用的读取加密文件的方式也不同, 将加密文件起始长 度之后的文件内容, 按照密文和明文相交替的形式进行解密, 并将解密后 的文件内容写入解密文件中的方法具体可以为 : 当加密规则采用的是先密 文后明文相交替的形式时, 在解密时也对应的先执行步骤 403 ,后执行步骤 404。 当加密规则采用的是先明文后密文相交替的形 式时, 在解密时也对应 的先执行步骤 404 , 后执行步骤 403。

404、 解密装置读取明文长度的文件内容, 写入解密文件中。

其中, 读取到的明文长度的文件内容并未进行加密处 理, 可直接得到 原始文件中对应的文件内容, 遂直接写入解密文件中。

405、 解密装置判断加密文件的当前解密区域是否已 读取完成; 若加密 文件的当前解密区域未读取完成, 则执行步骤 403; 若加密文件的当前解密 区域已读取完成, 则执行步骤 406。

其中, 在加密文件解密完成之前, 重复交替执行步骤 403和步骤 404 , 顺序读取加密文件直到将加密文件的解密区域 解密完成。 需要说明的是, 解密区域是在解密装置上的预定值, 可以根据解密装置的内存情况和实际 需要调整解密区域大小。 因此在内存中只解密得到当前解密区域对应的 文 件内容, 而不是将整个加密文件都进行解密, 可以有效降低对内存的消耗。 例如, 在解密电子图书时, 若解密装置内存充足, 则可以将解密区域设置 为整个文件内容, 将电子图书的部分内容显示同时, 将剩余的文件内容全 部解密。 若解密装置内存有限, 则可以将解密区域设置为当前页面的前三 页到当前页面的后三页, 在内存中就只解密得到当前解密区域中的文件 内 容。

406、 解密装置将解密文件的内容进行显示。

407、 解密装置将解密文件中不属于当前解密区域的 文件内容删除。 其中, 为了减少占用解密装置的内存, 可以将不属于当前解密区域的 文件内容删除。 例如, 在解密电子图书时, 4叚设加密区域为 7 页而当前页 面为第 4页, 若当前显示的页面移动到下一页 (第 5页), 则解密文件中第 1页的文件内容已经不属于当前解密区域, 遂将第 1页的文件内容删除。

本发明实施例提供的文件的加密和解密方法, 本发明实施例提供的文 件的加密和解密方法、 装置及系统, 在加密时按照预定的明文长度和密文 长度将原始文件分段读取到内存中进行加密处 理, 与现有技术中将原始文 件整体读入内存进行加密的方法相比, 对加密装置的内存要求较低。 并且, 通过密文与明文相互间隔的形式进行加密和解 密, 与现有技术中将原始文 件中的每一个字节都进行加密和解密的方法相 比, 减少了需要进行加密和 解密的数据量, 能够提高加密和解密的效率。 并且, 采用不连续的加密和 解密形式, 与现有技术中将原始文件作为一个整体加密和 解密的方法相比, 可以在解密的过程中将已解密的内容呈现, 实现了边解密边阅读, 从而减 少了用户等待响应的时间, 提高了用户体验感。 并且, 在解密时可以根据 需要设定解密区域的大小, 并及时删除不属于当前解密区域的文件内容, 与现有技术中将加密文件整体读入内存中并解 密, 在内存中得到整体的解 密文件相比, 能够有效的节省内存资源, 降低了对解密装置的内存要求。

实施例 3

本发明实施例提供一种文件的加密装置, 如图 5 所示, 包括: 起始加 密单元 51、 交替加密单元 52。

起始加密单元 51 , 用于从原始文件的开头读取起始长度的文件内 容, 写入加密文件中, 其中起始长度为从原始文件的开头到密文和明 文相交替 进行加密的起始位置之间的长度。

交替加密单元 52 , 用于将原始文件起始长度之后的文件内容, 按照密 文和明文相交替的形式进行加密, 并将加密后的文件内容写入加密文件中。

进一步的, 如图 6所示, 交替加密单元 52包括: 密文写入模块 521、 明文写入模块 522、 第一重复模块 523。

密文写入模块 521 , 用于读取加密长度的文件内容, 并对加密长度的文 件内容进行加密, 将加密后的文件内容写入加密文件中。

明文写入模块 522 ,用于在密文写入模块 521读取加密长度的文件内容 之后, 读取明文长度的文件内容写入加密文件中。

第一重复模块 523 ,用于重复交替启动密文写入模块 521和明文写入模 块 522 , 直到将原始文件加密完成。

明文写入模块 522还用于, 读取明文长度的文件内容写入加密文件中。 密文写入模块 521还用于, 在明文写入模块 522读取明文长度的文件 内容写入加密文件中之后, 读取加密长度的文件内容, 并对加密长度的文 件内容进行加密, 将加密后的文件内容写入加密文件中。

第一重复模块 523还用于, 重复交替启动明文写入模块 522和密文写 入模块 521 , 直到将原始文件加密完成。

进一步的, 如图 7所示, 交替加密单元 52还包括: 判断模块 524、 补 充模块 525。

判断模块 524 ,用于判断原始文件中最后的文件内容是否应 密文的形 式写入加密文件。

明文写入模块 522还用于, 在原始文件中最后的文件内容不应以密文 的形式写入加密文件时, 直接将原始文件中最后的文件内容以明文的形 式 写入加密文件。

补充模块 525 ,用于在原始文件中最后的文件内容应以密文 形式写入 加密文件时, 确定原始文件中最后的文件内容的长度是否达 到基数值, 若 原始文件中最后的文件内容的长度未达到基数 值, 则将最后的文件内容进 行补充, 使得最后的文件内容的长度达到基数值。

密文写入模块 521 还用于, 对补充后的文件内容进行加密并写入加密 文件。

进一步的, 如图 8所示, 该文件的加密装置还包括: 确定单元 53、 发 送单元 54。

确定单元 53 ,用于在起始加密单元 51从原始文件的开头读取起始长度 的文件内容, 写入加密文件中之前, 根据原始文件的大小, 确定起始长度、 加密长度以及明文长度。

发送单元 54 , 用于将起始长度、 加密长度、 明文长度以及加密规则发 送给文件的解密装置。

发送单元 54还用于, 在加密文件的开头添加文件头, 并将起始长度、 加密长度以及明文长度的属性写入加密文件的 文件头中。

发送单元 54还用于, 将起始长度、 加密长度、 明文长度以及加密规则 封装到信元中发送给文件的解密装置。

进一步的, 如图 9所示, 交替加密单元 52还包括: 第一计算模块 526。 第一计算模块 526 ,用于在按照密文和明文相交替的形式进行加 的过 程中, 按照预定加密规则计算加密长度和明文长度, 得到动态变化的加密 长度和明文长度。

需要说明的是, 本发明实施例中的部分功能模块的其他描述可 以参考 实施例 1和实施例 2中的对应内容, 本发明实施例这里将不再贅述。

本发明实施例提供一种文件的解密装置, 如图 10所示, 包括: 起始解 密单元 61、 交替解密单元 62。

起始解密单元 61 , 用于从加密文件的开头读取起始长度的文件内 容, 写入解密文件中, 其中初始长度为从加密文件的开头到密文和明 文相交替 进行解密的起始位置之间的长度。

交替解密单元 62 , 用于将加密文件起始长度之后的文件内容, 按照密 文和明文相交替的形式进行解密, 并将解密后的文件内容写入解密文件中。 进一步的, 如图 11所示, 交替解密单元 62包括: 密文读取模块 621、 明文读取模块 622、 第二重复模块 623。

密文读取模块 621 ,用于在加密规则采用的是先密文后明文相交 的形 式时, 读取加密长度的文件内容, 并对加密长度的文件内容进行解密, 将 解密后的文件内容写入解密文件中。

明文读取模块 622 ,用于在密文读取模块 621读取加密长度的文件内容 之后, 读取明文长度的文件内容, 写入解密文件中。

第二重复模块 623 , 用于重复启动密文读取模块 621 和明文读取模块 622 , 直到将加密文件的当前解密区域解密完成。

明文读取模块 622还用于, 在加密规则采用的是先明文后密文相交替 的形式时, 读取明文长度的文件内容, 写入解密文件中。

密文读取模块 621还用于, 在明文读取模块 622读取明文长度的文件 内容之后, 读取加密长度的文件内容, 并对加密长度的文件内容进行解密, 将解密后的文件内容写入解密文件中。

第二重复模块 623还用于, 重复启动明文读取模块 622和密文读取模 块 621 , 直到将加密文件的当前解密区域解密完成。

进一步的, 如图 12所示, 该文件的解密装置还包括: 获取单元 63、 显 示单元 64、 删除单元 65。

获取单元 63 ,用于在起始解密单元 61从加密文件的开头读取起始长度 的文件内容, 写入解密文件中之前, 获取起始长度、 加密长度、 明文长度 以及加密规则。

显示单元 64 , 用于将解密文件的内容进行显示。

删除单元 65 ,用于将解密文件中不属于当前解密区域的文 内容删除。 进一步的,如图 13所示,交替解密单元 62还包括:第二计算模块 624。 第二计算模块 624 ,用于在按照密文和明文相交替的形式进行解 的过 程中, 按照加密规则计算加密长度和明文长度, 得到动态变化的加密长度 和明文长度。 需要说明的是, 本发明实施例中的部分功能模块的其他描述可 以参考 实施例 1和实施例 2中的对应内容, 本发明实施例这里将不再贅述。

本发明实施例提供一种文件的加密和解密系统 , 如图 14所示, 包括: 加密装置 71和解密装置 72。

加密装置 71 , 用于从原始文件的开头读取起始长度的文件内 容, 写入 加密文件中; 并将原始文件起始长度之后的文件内容, 按照密文和明文相 交替的形式进行加密, 将加密后的文件内容写入加密文件中。

解密装置 72 , 用于从加密文件的开头读取起始长度的文件内 容, 写入 解密文件中; 并将加密文件起始长度之后的文件内容, 按照密文和明文相 交替的形式进行解密, 将解密后的文件内容写入解密文件中。

其中, 在加密装置 71上将数字文件进行间隔加密, 得到能够有效保护 数字文件版权的加密文件。 当在解密装置 72向加密装置 71发出获取加密 文件的请求时,加密装置 71将加密文件发送给解密装置 72 , 再由解密装置 72进行对应的间隔解密, 并将解密后的数字文件显示。

需要说明的是, 本发明实施例提供的文件的加密和解密系统所 包含功 能模块的其他描述, 可以参考实施例 1和实施例 2 以及实施例 3中对应装 置部分的描述, 本发明实施例此处将不再贅述。

本发明实施例提供的文件的加密和解密装置及 系统, 本发明实施例提 供的文件的加密和解密方法、 装置及系统, 在加密时按照预定的明文长度 和密文长度将原始文件分段读取到内存中进行 加密处理, 与现有技术中将 原始文件整体读入内存进行加密的方法相比, 对加密装置的内存要求较低。 并且, 通过密文与明文相互间隔的形式进行加密和解 密, 与现有技术中将 原始文件中的每一个字节都进行加密和解密的 方法相比, 减少了需要进行 加密和解密的数据量, 能够提高加密和解密的效率。 并且, 采用不连续的 加密和解密形式, 与现有技术中将原始文件作为一个整体加密和 解密的方 法相比, 可以在解密的过程中将已解密的内容呈现, 实现了边解密边阅读, 从而减少了用户等待响应的时间, 提高了用户体验感。 并且, 在解密时可 以根据需要设定解密区域的大小, 并及时删除不属于当前解密区域的文件 内容, 与现有技术中将加密文件整体读入内存中并解 密, 在内存中得到整 体的解密文件相比, 能够有效的节省内存资源, 降低了对解密装置的内存 要求。

通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了解到 本发明可借助软件加必需的通用硬件的方式来 实现, 当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。 基于这样的理解, 本发明的技术方 案本质上或者说对现有技术做出贡献的部分可 以以软件产品的形式体现出 来, 该计算机软件产品存储在可读取的存储介质中 , 如计算机的软盘, 硬 盘或光盘等, 包括若干指令用以使得一台计算机设备(可以 是个人计算机, 服务器, 或者网络设备等)执行本发明各个实施例提供 的方法。

以上内容, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可 轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明 的保护范围应以权利要求的保护范围为准。