数字文件的加密方法、数字文件的解密方法、数字文件的处理装置以及加密格式的转换装置的制作方法

文档序号:6479241阅读:128来源:国知局
专利名称:数字文件的加密方法、数字文件的解密方法、数字文件的处理装置以及加密格式的转换装置的制作方法
技术领域
本发明涉及数字文件的加密方法、数字文件的解密方法、数字文件的处理装置以 及加密格式的转换装置,更具体地,涉及数字文件的加密方法及其相关技术,其在对文件进 行加密时,将已加密文件的加密信息存储在由文件系统提供的流中。
背景技术
一般而言,数字信息由于可以被无限制地复制而不丢失信息,因此易于遭受非法 复制和非法使用。对于数字信息服务来说,必须支持可以安全地保护数字信息不被非法复 制和使用的数字信息安全技术。数字版权管理(Data Rights Management,DRM)是一种全面的数字信息安全技术, 其可以防止数据信息的非法复制和使用,并且只允许具有合法版权的用户使用数字信息。 这种DRM着重于从根本上防止数字信息的非法复制和使用。例如,在DRM中,利用加密技术 将数字信息转换为加密数据。因此,即使个别的用户偶然地获得了数字信息,该用户在未经 过合法性验证过程的情况下,也不能使用相应的数字信息。下面将描述传统的数据加密方法。传统上,利用特定的加密信息来对原始数据文 件进行加密,并且将相应的加密信息插入加密数据的前部或后部,作为头部或尾部。然而, 在此情况下,由于文件的整体大小被改变,因此当随后的应用程序使用加密数据文件时,待 处理的部分增加。图1是示出传统的数字数据加密方法的示例性示意图。如图1所示,传统上,对原始数据文件(例如,A. txt)进行加密,由此原始数据文 件被转换成加密数据,并且相应的加密信息被插入加密数据中,作为头部22或尾部24。因 此,已加密文件(例如,A_Enc. txt)的长度变得比原始数据文件的长度长头部22或尾部24 的长度。因此,当使用已加密文件时,应用程序必须进行特定的处理,例如,对已加密文件 的长度和偏移的修正处理,从而使得对于已加密文件的文件输入/输出(I/O)与对于原始 数据的文件I/O相同。然而,由于当对已加密文件的长度和偏移进行修正处理时,稳定性视 应用程序的情况而显著降低,因此会产生问题。例如,如果将头部插入加密数据的前部,那么,由于当使用已加密文件时应用程序 必须考虑到被头部推后的初始文件部分,因而会增加待处理的操作。换言之,当读取加密数 据时,应用程序必须在考虑到头部的长度的情况下来读取加密数据的头部的后部,并且,当 新写入数据时,应用程序必须通过将加密数据推后头部的长度来写入数据。然而,当利用应用程序界面(API)钩挂或过滤驱动技术来实施这种技术时,依据 操作系统和使用的应用程序的情况会发生许多状况,实际上,相应地增加了发生故障的可 能性。

发明内容
技术问题因此,考虑到上述问题而提出本发明,并且本发明的一个目的是提供一种数字文 件加密方法,其将已加密文件的加密信息存储在由文件系统提供的流中。此外,本发明的另一个目的是提供一种数字文件解密方法,其能够对通过数字文 件加密方法而创建的已加密文件进行解密。此外,本发明的又一个目的是提供一种数字文件处理装置,其能够在利用存储在 流中的加密信息对文件进行加密以及对已加密文件进行解密时,将加密信息存储在流中。此外,本发明的再一个目的是提供一种加密格式转换装置,其能够将利用流的加 密格式转换成利用现有头部的加密格式,反之亦然。技术方案为了达到上述目的,本发明的一个方面提供一种数字文件加密方法。所述数字文 件加密方法可包括下述步骤利用特定的加密信息对文件进行加密,并且将已加密文件存 储在文件系统中;以及将加密信息存储在文件系统所提供的流中。此时,加密信息可包括: 用于对文件进行加密的数据加密/解密密钥;以及关于文件的策略信息。将已加密文件存储在文件系统中的步骤可包括下述步骤通过利用数据加密/解 密密钥对文件进行加密,从而将文件转换为已加密文件;以及将已加密文件存储在文件系 统中。将加密信息存储在流中的步骤可以包括下述步骤利用特定的加密密钥对加密信 息进行加密;以及将已加密的加密信息与已加密文件相关联地存储在所述流中。此时,加密 信息的名称可包括已加密文件的名称、特定的标识符号以及唯一名称。数字文件加密方法可以进一步包括下述步骤通过钩挂和过滤由应用程序产生的 文件I/O来获取特定的待处理文件输入/输出(I/O);以及分析所述获取的文件1/0,从而 判断相应的文件是否需要加密。同时,为了达到另一个目的,本发明的另一方面提供一种数字文件解密方法。数字 文件解密方法可以包括下述步骤获取存储在文件系统所提供的流中的加密信息,以便对 存储在文件系统中的已加密文件进行解密;以及利用包括在加密信息中的数据加密/解密 密钥来对已加密文件进行解密。获取加密信息的步骤可以包括下述步骤获取存储在所述流中的已加密的加密信 息;利用特定的解密密钥对已加密的加密信息进行解密;以及从已解密的加密信息中获取 数据加密/解密密钥。数字文件解密方法可以进一步包括下述步骤通过钩挂和过滤由应用程序产生的 文件I/O来获取特定的待处理的文件I/O ;以及分析所述获取的文件1/0,从而判断相应的 文件是否需要解密。同时,为了达到又一个目的,本发明的又一方面提供一种数字文件处理装置。所述 数字文件处理装置包括文件加密模块,所述文件加密模块用于使用特定的加密信息对请 求加密的文件进行加密,将已加密文件存储在文件系统中,以及将加密信息与已存储的已 加密文件相关联地存储在流中;以及文件解密模块,所述文件解密模块用于从所述流中获 取已加密文件的加密信息并且利用所获取的加密信息来对已加密文件进行解密。
文件加密模块可以利用由其自身产生或由外部提供的数据加密密钥来将特定的 文件转换成已加密文件,并且文件加密模块可以将包括数据加密密钥的加密信息存储在所 述流中。文件加密模块和文件解密模块中的至少一个可以钩挂和过滤由应用程序产生的文 件 I/O。数字文件处理装置可以进一步包括加密格式转换模块,所述加密格式转换模块用 于将第一加密格式转换成第二加密格式。此时,第一加密格式是其中已加密文件的加密信 息存储在流中的类型的加密格式,第二加密格式是其中已加密文件的加密信息作为所述已 加密文件的头部或尾部而被插入所述已加密文件中的类型的加密格式,在其中。加密格式转换模块可以进一步包括将第二加密格式转换成第一加密格式的功能。数字文件处理装置可以进一步包括过滤模块,所述过滤模块只允许经许可的应 用程序访问具有加密信息的所述流,并且所述过滤模块阻止未经许可的应用程序访问具有 加密信息的所述流。同时,为了达到再一个目的,本发明的再一方面提供一种加密格式转换装置。所述 加密格式转换装置可以包括第一模块,所述第一模块用于将利用第一加密格式进行加密 的文件转换为具有第二加密格式的文件;以及第二模块,所述第二模块用于将利用第二加 密格式进行加密的文件转换为具有第一加密格式的文件。第一加密格式是其中已加密文件 的加密信息存储在流中的类型的加密格式,第二加密格式是其中已加密文件的加密信息作 为已加密文件的头部或尾部而被插入已加密文件中的类型的加密格式。有益效果如上所述,根据本发明,当对数字文件进行加密时,已加密文件的加密信息被存储 在由文件系统提供的流中。因此,即使在加密之后,其它的信息也可以与已加密文件相关联 地存储而不会使文件的长度改变。因此,本方法比在加密后必须考虑文件的头部长度的传 统文件加密方法更加稳定。此外,能够容易地解密以这种方式存储的已加密文件,并且根据 本方法的加密格式可以被转换成现有文件的加密格式。因此,具有与支持流的文件系统兼 容的优点,并且方便。


图1是示出传统数字数据加密方法的示例性示意图;图2是方框图,示出了根据本发明的优选实施例的数字数据处理装置的构造;图3是示出由文件加密模块执行的文件加密过程的流程图;图4是示出通过文件加密模块而被加密的已加密文件和加密信息的示例性示意 图;图5是示出由文件解密模块执行的文件解密过程的流程图;图6是示出由加密格式转换模块执行的加密格式转换原理的示例性示意图;以及图7是图示由过滤模块执行的加密信息保护功能的原理的流程图。<附图中主要元件的附图标记的说明>10 应用程序20 文件系统100:数字文件处理装置
110文件加密模块
120文件解密模块
130加密格式转换模块
131第一模块
132第二模块
140过滤模块
具体实施例在下文中,将结合优选实施例、参照附图来详细描述本发明,从而使得本领域技术 人员可以实施本发明。在本发明的优选实施例中,为了使内容清楚而使用特定的专业术语。 但是,应该理解,本发明不限于特定选择的术语,并且每个特定的术语都包括以相同方式操 作从而完成相同目的的技术同义词。图2是方框图,示出了根据本发明优选实施例的用于实施数字文件加密方法和数 字文件解密方法的数字数据处理装置的构造。如图2所示,数字文件处理装置100可与应用程序10和文件系统20共同运作。此时,应用程序10可以是实体(entity),其使用(例如,打开、编辑和存储)数 字信息文件,例如,诸如Word、CAD、Worksheet、Photoshop以及电影或音源播放器(moving picture or sound source player)等程序。这种应用程序10产生关于内核区域的文件系 统20的各种文件1/0,从而使用文件。例如,应用程序10可产生用于文件的打开、读取、新 建、保存和写入等的文件1/0。文件系统20存储和管理文件。文件系统20可以是诸如支持流的NT文件系统 (NTFS)的一种文件系统。此时,术语“流”是特定的文件系统20所提供的功能之一,从而 属性(attribute)可以被进一步加入数字文件中。例如,出自Windows 2000的NTFS除了 具有诸如大容量文件的管理和压缩以及安全性之类的优点之外,还支持流。在NTFS中,不 是只给文件分配与用户所见的文件长度一样多的空间,而是还将被称作流的数据流(data flow)的一部分也分配给相应的文件。NTFS支持多数据流(data stream)。数字文件处理装置100可以对文件进行加密和解密,并且数字文件处理装置100 可以在应用程序10和文件系统20之间对文件的加密格式进行转换。数字文件处理装置 100可以包括文件加密模块110、文件解密模块120、加密格式转换模块130以及过滤模块 140。每个模块都可以以软件的形式被放置在用户区或内核区。例如,模块可以被设置在用 户区或内核区,并且其中一些模块可被设置在用户区,而其它模块可被设置在内核区。当应用程序10产生需要进行加密的文件的文件1/0时,文件加密模块110利用特 定的加密信息对相应的文件进行加密,并将所述文件存储在文件系统20中。加密信息与所 存储的加密数据相关联地被存储在流中。这里,加密信息可以包括对文件进行加密时所使用的数据加密/解密密钥;相应 文件的策略信息等。策略信息可以包括诸如用户打开、保存、编辑和打印文件的权限信息; 已加密文件的访问控制信息,诸如加密数据、访问周期、可访问文件的组、DRM信息以及用户 在离线时是否可访问文件;使用方法信息等。当应用程序10产生需要进行解密的文件的文件1/0时,数据解密模块120获取与相应的已加密文件相关联地存储在流中的加密信息,然后利用加密信息对存储在文件系统 20中的已加密文件进行解密。加密格式转换模块130执行将利用第一加密格式进行加密的文件转换成第二加 密格式的功能,或者执行将利用第二加密格式进行加密的文件转换成第一加密格式的功 能。此时,第一加密格式可以是其中加密文件的加密信息存储在流中的类型的加密格式,第 二加密格式可以是其中加密文件的加密信息以头部或尾部的形式被插入加密文件中的类 型的加密格式,即传统的加密格式。当将文件发送到不支持流的其它系统和从不支持流的 其它系统接收文件时,加密格式转换模块130工作。过滤模块140可执行只允许经许可的应用程序访问具有加密信息的流的功能,以 及阻止未经许可的应用程序访问具有加密信息的流的功能。就是说,过滤模块140执行保 护存储在流中的加密信息的功能。图3是示出由文件加密模块110执行的文件加密过程的流程图。如图3所示,首先,在步骤Si,文件加密模块110通过钩挂和过滤由应用程序10产 生的文件I/O而获取特定的待处理的文件I/O。接着,文件加密模块110在步骤S2分析所 获取的文件I/O的数据,然后在步骤S3判断相应的文件是否是需要加密的文件。例如,文 件加密模块110可以判断相应的文件是新建的文件还是需要加密的原始数据文件。此时,如果判断的结果是相应的文件是需要加密的文件,则文件加密模块110在 步骤S4利用数据加密/解密密钥对相应的文件进行加密,然后在步骤S5将已加密的文件 存储在文件系统20中。可以在文件加密模块中产生或从外部提供数据加密/解密密钥。接着,文件加密模块110在步骤S6产生包括数据加密/解密密钥和策略信息的加 密信息,然后在步骤S7将加密信息与已加密文件相关联地存储在流中。此时,文件加密模 块110可以对加密信息进行加密,然后将其存储在流中。在这种情况下,可以在文件加密模 块内产生或从外部提供加密信息的加密密钥。图4是示出通过文件加密模块110进行加密的已加密文件和加密信息的示例性示 意图。参照图4,文件加密模块110利用加密信息对原始数据文件进行加密,但是将加密 信息与已加密文件相关联地存储在流30中。此时,术语“与...相关联地”是指使得所述 加密信息能标识所述已加密文件的加密信息。例如,可以通过在相应的已加密文件的名称 后面插置标识符号“”并在所述标识符号的后面插置特定的流的名称来表示加密信息的 名称。例如,在对B. txt进行加密而得到的已加密文件B_Enc. txt的加密信息被存储在名 称为“ENCDATA”的流30中的情况下,加密信息可以用名称B_Enc. txt :ENCDATA被读取和写 入。因此,与传统方法(参见图1)不同,包含加密信息的头部或尾部未附在文件的前 部或后部。因此,原始文件B. txt的长度等于加密后的文件B_Enc.txt的长度。因此,由于 在使用已加密文件时,应用程序不需要对文件的长度和偏移进行修正,所以可以确保与原 始数据的文件I/O相同的稳定性。图5是示出由文件解密模块120执行的文件加密过程的流程图。如图5所示,首先,在步骤S11,文件解密模块120通过钩挂和过滤由应用程序10 产生的文件I/O而获取特定的待处理的文件I/O。接着,文件解密模块120在步骤S12分析所获取的文件I/O的数据,然后在步骤S13判断相应的文件是否是需要解密的文件。例如, 文件解密模块120可判断相应的文件是否是已加密文件。此时,如果判断的结果是相应的文件是需要解密的文件,则文件解密模块120在 步骤S14获取存储在流中的相应已加密文件的加密信息。此时,在加密信息被加密的情况 下,文件解密模块120利用加密信息的加密密钥对加密信息进行解密。接着,在步骤S15,文 件解密模块120可利用包括在所获取的加密信息中的数据加密/解密密钥来对已加密文件 进行解密。图6是示出由加密格式转换模块130执行的加密格式转换原理的示例性示意图。如图6所示,加密格式转换模块130可包括第一模块131,所述第一模块131用 于将利用第一加密格式进行加密的文件转换成第二加密格式;以及第二模块132,所述第 二模块132用于将利用第二加密格式进行加密的文件转换成第一加密格式。如上所述,第 一加密格式是其中已加密文件的加密信息存储在流中的类型的加密格式,第二加密格式是 其中加密文件的加密信息以头部(或尾部)的形式被插入加密文件中的类型的加密格式。当将文件发送到不支持流的其它系统(例如,FAT16、FAT32和⑶FS)或者从不支 持流的所述其它系统接收文件时,加密格式转换模块130工作,或者为了不支持流的应用 程序(例如,ALZip)的目的,而使加密格式转换模块130工作。例如,在使用第一加密格式存储的加密文件被传输到不支持流的其它系统(即, 只支持第二加密格式的文件系统)的情况下,需要将第一加密格式转换成第二加密格式的 转换处理。在这种情况下,加密格式转换模块130的第一模块131可响应来自诸如特定的 应用程序或用户等的请求来获取存储在流中的加密信息,并且将所述加密信息附在已加密 文件的前部或后部作为头部或尾部。然而,在从只支持第二加密格式的其它系统接收已加密文件的情况下,需要将第 二加密格式转换成第一加密格式的转换处理。在这种情况下,加密格式转换模块130的第 二模块132可剪切使用第二加密格式存储的已加密文件的头部(或尾部)部分,并且在存 储已加密文件时,将所剪切的头部(或尾部)部分与已加密文件相关联地存储在流中。同时,当用户或特定的应用程序请求格式转换时,加密格式转换模块130可被构 造为响应所述请求而进行格式转换的人工操作模块的形式,或者被构造为当应用程序10 使用已加密文件时,自动地进行格式转换的自动操作模块的形式。下面将描述加密格式转换模块130被构造为使用自动操作模块的例子。加密格式 转换模块130被构造为在内核区域的文件系统过滤器的形式,当应用程序使用已加密文件 时,加密格式转换模块130将加密格式转换成实时流加密形式。例如,在用户利用应用程序 运行存储在NTFS中的第二加密格式的已加密文件的情况下,文件系统过滤器可以自动地 将第二加密格式转换成第一加密格式,然后对所述已加密文件进行解密。图7是示出由过滤模块140执行的加密信息保护功能的原理的流程图。如图7所示,过滤模块140只将可以访问存储在流16中的加密信息的版权分配给 经许可的应用程序12,但是阻止一般的应用程序14访问流16。例如,在有特定的应用程序 请求访问存储在流中的加密信息的情况下,过滤器140可以判断相应的应用程序是否是经 许可的应用程序,并且,如果判断结果是相应的应用程序不是经许可的应用程序,则阻止相 应的应用程序访问加密信息。例如,在内核区域中,这种过滤模块可实现为文件系统过滤器或微型过滤器的形式。如上所述,已结合优选实施例描述了本发明。根据本发明,当对文件进行加密时, 不将文件的加密信息插入相应文件的前部或后部,而是将加密信息存储在文件系统支持的 流中。由于加密之前的文件长度等于加密之后的文件长度,因此,当使用已加密文件时,应 用程序不需要对文件的长度和偏移进行修正。这使得文件I/O稳定并且提高处理速度。同时,本领域技术人员应该理解,在不脱离所附的权利要求的精神和范围的情况 下,可以对本发明进行各种改进和变型。因此,今后对本发明实施例做出的改变不会偏离本 发明的技术。
权利要求
一种数字文件加密方法,包括下述步骤利用特定的加密信息对文件进行加密,并且将所述已加密文件存储在文件系统中;以及将所述加密信息存储在所述文件系统所提供的流中。
2.根据权利要求1所述的数字文件加密方法,其中,所述加密信息包括 用于对所述文件进行加密的数据加密/解密密钥;以及关于所述文件的策略信息。
3.根据权利要求2所述的数字文件加密方法,其中,将所述文件存储在所述文件系统 中的步骤包括下述步骤通过利用所述数据加密/解密密钥对所述文件进行加密,从而将所述文件转换为所述 已加密文件;以及将所述已加密文件存储在所述文件系统中。
4.根据权利要求3所述的数字文件加密方法,其中,将所述加密信息存储在所述流中 的步骤包括下述步骤利用特定的加密密钥对所述加密信息进行加密;以及 将所述已加密的加密信息与所述已加密文件相关联地存储在所述流中。
5.根据权利要求3所述的数字文件加密方法,其中,所述加密信息的名称包括所述已 加密文件的名称、特定的标识符号以及唯一名称。
6.根据权利要求1所述的数字文件加密方法,进一步包括下述步骤通过钩挂和过滤由应用程序产生的文件输入/输出(I/O)来获取特定的待处理的文件 I/O-MR分析所述获取的文件1/0,从而判断相应的文件是否需要加密。
7.一种数字文件解密方法,包括下述步骤获取存储在文件系统所提供的流中的加密信息,以便对存储在文件系统中的已加密文 件进行解密;以及利用包括在所述加密信息中的数据加密/解密密钥来对所述已加密文件进行解密。
8.根据权利要求7所述的数字文件解密方法,其中,获取所述加密信息的步骤包括下 述步骤获取存储在所述流中的已加密的加密信息;利用特定的加密密钥对所述已加密的加密信息进行解密;以及从所述已解密的加密信息中获取所述数据加密/解密密钥。
9.根据权利要求7所述的数字文件解密方法,进一步包括下述步骤通过钩挂和过滤由应用程序产生的文件I/O来获取特定的待处理的文件I/O ;以及 分析所述获取的文件1/0,从而判断相应的文件是否需要解密。
10.一种数字文件处理装置,包括文件加密模块,所述文件加密模块用于使用特定的加密信息对请求加密的文件进行加 密,将所述已加密文件存储在文件系统中,以及将所述加密信息与所述已存储的已加密文 件相关联地存储在流中;以及文件解密模块,所述文件解密模块用于从所述流中获取所述已加密文件的所述加密信息,并且利用所获取的加密信息来对所述已加密文件进行解密。
11.根据权利要求10所述的数字文件处理装置,其中,所述文件加密模块利用由其自 身产生或由外部提供的数据加密密钥来将所述特定的文件转换成所述已加密文件,并且所 述文件加密模块将包括所述数据加密密钥的所述加密信息存储在所述流中。
12.根据权利要求10所述的数字文件处理装置,其中,所述文件加密模块和所述文件 解密模块中的至少一个钩挂和过滤由应用程序产生的文件I/O。
13.根据权利要求10所述的数字文件处理装置,进一步包括加密格式转换模块,所述 加密格式转换模块用于将第一加密格式转换成第二加密格式,其中,所述第一加密格式是其中已加密文件的加密信息存储在流中的类型的加密格 式,所述第二加密格式是其中已加密文件的加密信息作为所述已加密文件的头部或尾部而 被插入所述已加密文件中的类型的加密格式。
14.根据权利要求13所述的数字文件处理装置,其中,所述加密格式转换模块进一步 包括将所述第二加密格式转换成所述第一加密格式的功能。
15.根据权利要求14所述的数字文件处理装置,其中,当使用已加密文件时,所述加密 格式转换模块实时地进行加密格式转换。
16.根据权利要求10所述的数字文件处理装置,进一步包括过滤模块,所述过滤模块只允许经许可的应用程序访问具有所述加密信息的所述流, 并且所述过滤模块阻止未经许可的应用程序访问具有所述加密信息的所述流。
17.一种加密格式转换装置,包括第一模块,所述第一模块用于将利用第一加密格式进行加密的文件转换为具有第二加 密格式的文件;以及第二模块,所述第二模块用于将利用所述第二加密格式进行加密的文件转换为具有所 述第一加密格式的文件,其中,所述第一加密格式是其中已加密文件的加密信息存储在流中的类型的加密格 式,所述第二加密格式是其中已加密文件的加密信息作为所述已加密文件的头部或尾部而 被插入所述已加密文件中的类型的加密格式。
全文摘要
本文公开了数字文件的加密方法、数字文件的解密方法、数字文件的处理装置以及加密格式的转换装置。数字文件加密方法包括下述步骤利用特定的加密信息对文件进行加密并且将所述已加密文件存储在文件系统中;以及将所述加密信息存储在文件系统所提供的流中。因此,由于加密之前和加密之后的文件长度彼此相同,因此,当使用已加密文件时,应用程序不需要考虑头部的长度或进行偏移修正。
文档编号G06F9/06GK101932995SQ200880121816
公开日2010年12月29日 申请日期2008年11月13日 优先权日2007年11月22日
发明者崔钟昱, 李东郁, 赵成元, 金钟荣 申请人:密刻爱你有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1