一种基于时间期限控制的数据文件加解密方法

文档序号:6505937阅读:165来源:国知局
一种基于时间期限控制的数据文件加解密方法
【专利摘要】本发明公开了一种基于时间期限控制的文件加解密方法,通过对数据文件进行散列转换,对存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,实现了双重散列转换,保证数据文件的防篡改性,加强数据文件的安全。在加密解密过程中,引入数据文件时间期限的控制机制,实现对加密数据文件的使用时间的控制,避免具有加密数据文件浏览权限的人员永远拥有此数据文件的权利。检测到数据文件使用时间已到期,自动调用销毁策略将数据文件销毁。销毁过程中无需用户介入,减少因人为原因造成的漏删、误删等风险,可靠性高,使用方便。
【专利说明】一种基于时间期限控制的数据文件加解密方法
【技术领域】
[0001]本发明提供一种基于时间期限控制的数据文件加解密方法,属于信息安全中的数据加密技术。
【背景技术】
[0002]随着互联网时代的来临,企业全面信息化时代也随之到来,人们越来越多地借助以计算机、互联网等先进技术,将企业的经营及管理流程在线实现,所有业务数据经由系统处理,快速形成管理层所需商业智能,以KPI (关键绩效指标)、图表以及可追溯的报表形式呈现,以及各类技术方案的交流也是以文档的方式进行。这些图表、报表、文档等都是以数据文件的形式存储在计算机或各类相关存储设备中。因此这些数据文件就成为企业信息的主要存储方式及企业内、外部之间进行信息交换的重要载体。
[0003]对于一个企业来说,一般都积累了很多重要的数据文件,比如说财务报表、技术档案、公司内部文件等,公司不希望这些数据文件离开企业的网络环境,甚至不允许在企业网络内部传递与交流。但是作为今天的企业,不能拒绝互联网的交互,不能将公司封闭在一个信息孤岛中。许多企业,例如:会计事务所、学校、政府、金融机构、高科技研究所等企事业单位,必需通过使用网络来协同工作,进行现代化办公。但使用者在这样的环境下,在随意上传下载和发行网络中的数据文件的同时,可能会无意中把企业的许多包含重要信息的数据文件扩散到网络外部,从而导致企业重要的知识产权受到严重侵害。知识产权的保护仅仅依靠法律和行政手段是不够的,使用必要的技术手段对文档进行加密,实现安全管理,从技术上杜绝机密信息的泄漏,才是解决问题的根本办法,才能防患于未然。
[0004]因此如何保护数据文件的安全问题,作为信息安全领域的一个重要内容,越来越受到重视。
[0005]对于企业中重要数据文件的保护,安全厂商提供了整套的安全解决方案,数据文件加密就是其中很重要的一个环节。
[0006]对于数据文件加密,目前主要存在2种加密体制:对称加密、非对称加密。
[0007]对称加密指加密和解密使用相同密钥的加密算法。在大多数的对称算法中,加密密钥和解密密钥是相同的。它要求发送方和接收方在安全通信前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的数据文件解密,所以密钥的保密性对通信性至关重要。对称加密算法的特点是算法公开、计算量小、力口密速度快、加密效率高,并且可以对不定长度的数据文件加密。其不足之处是,收发双方都使用同样密钥,安全性得不到保证。
[0008]非对称加密算法需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
[0009]非对称密码体制的特点:算法强度复杂,非对称密钥体制有两种密钥,安全性提高,由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快,加密大文件时效率低。
[0010]对于互联网时代,云计算的应用范围越来越广泛,数据文件类型具有多样性的特点,而且数据文件也越来越大,在这种情况下,完全使用对称加密存在着安全性不高的隐患,而完全采用非对称加密又导致加密效率不高。
[0011]针对这种情况,目前有研究提出用对称加密算法加密数据文件,然后用非对称加密算法加密对称密钥的混合加密方法。例如,在专利“一种基于文件属性的密钥加密方法”(申请号:201210090277.9)中,其提出的方法是:根据用户文件生成属性集合、访问结构树、主密钥和公钥,随机生成对称密钥,使用对称密钥和对称加密算法加密用户文件,以得到数据密文,使用公钥和访问结构树加密对称密钥,以生成密钥密文,使用主密钥和属性集合生成与属性集合相关联的私钥,将密钥密文和数据密文发送给服务器存储,用户从服务器获取密钥密文和数据密文,用户用私钥解密密钥密文,以判断与私钥相关联的属性集合是否满足访问结构树,若满足则解密对称密钥,用户使用对称密钥解密数据密文,以得到明文数据。本发明通过对称加密算法加密数据,并基于属性加密来保护对称密钥的安全,实现了加密数据的高效安全访问。
[0012]在实际应用中,一旦将数据文件分发出去后,接受方往往永远拥有此文档的所有权,随时可以使用这些数据文件,发送方无法对数据文件使用时间加以控制,这种情况非常不利于加密数据文件的安全,因此,控制数据文件的使用时间是文档安全管理重要的一部分,很有必要实现数据文件时间到期后的失效,例如员工离职后,文件使用到期,即使拥有此文件也不能用,或者是与合作伙伴协同工作完成后,合作伙伴无法将原有的数据文件用于其他项目。上述专利提出的方法中没有解决加密数据文件的时间期限控制问题,以及加密数据文件到期后的销毁问题,这样过期的数据文件会在存储介质中永久保存,对用户数据的安全存在着较大的隐患。

【发明内容】

[0013]针对上述的数据文件安全隐患,本发明提出了一种基于时间期限控制的文件加解密方法,用以解决加密数据文件的时间期限控制及过期销毁问题,进一步提高了加密数据文件的安全性。
[0014]本发明技术方案如下:一种基于时间期限控制的数据文件加解密方法,包括:
[0015]数据文件加密方法,其加密流程步骤为:
[0016](I)读取需要加密数据文件,采用Hash函数将其进行散列转换,得到数据文件哈希值。
[0017](2)此数据文件与其对应的哈希值合并成存储层数据。
[0018](3)通过伪随机数产生函数,随机产生一个字节数组,把该字节数组作为存储层密钥,使用对称加密算法加密存储层数据。
[0019](4)产生一个时间类型变量,用来保存用户设置的该数据文件使用的到期时间。
[0020](5)产生一个字符串类型变量,用来保存文件销毁标志,称为数据文件销毁策略。根据数据文件安全程度的高低,对于数据文件分为三种销毁方式:一次随机序列覆盖、三次覆盖和七次随机序列覆盖。
[0021](6)利用Hash函数对存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,得到控制参数哈希值。
[0022](7)将存储层密钥、数据文件到期时间、数据文件销毁策略与控制参数哈希值合并,形成控制层数据。
[0023](8)根据用户提供的私钥,使用非对称加密算法加密控制层数据。
[0024](9)加密后的存储层数据和控制层数据合并后,形成持久层数据。
[0025](10)将持久层数据写入文件系统,数据文件加密完成。
[0026]数据文件解密方法,其解密流程步骤为:
[0027](I)读取需解密的数据文件,即为持久层数据。
[0028](2)从持久层数据中获取加密控制层数据和加密存储层数据。
[0029](3)通过用户提供的公钥,使用非对称加密算法解密控制层数据。
[0030](4)对于控制层数据中的存储层密钥、数据文件到期时间、数据文件销毁策略,利用Hash函数对其进行散列转换,得到校验控制参数哈希值。
[0031 ] (5)比较校验控制参数哈希值和控制层数据中的控制参数哈希值,若两者不同,表明控制层数据可能被篡改,终止整个的数据文件解密过程;若两者相同,表明控制层数据正常,没有被篡改,继续进行后面的处理。
[0032](6)判断控制层数据中的数据文件到期时间是否大于当前时间。若不大于,说明该数据文件使用时间已到期,根据数据文件销毁策略,调用相应的方式将该数据文件销毁;若大于,说明该数据文件还可以使用。
[0033]其中,根据数据文件安全程度的高低,对于数据文件分为三种销毁方式:一次随机序列覆盖、二次覆盖和七次随机序列覆盖。
[0034]( 7 )通过控制层数据中的存储层密钥,使用对称加密算法解密存储层数据,获取数据文件和数据文件哈希值。
[0035](8)采用Hash函数对存储层数据中的数据文件进行散列转换,得到数据文件的校验哈希值。
[0036](9)对存储层数据中的数据文件哈希值和数据文件的校验哈希值进行比较,若比较结果不同,表明数据文件可能被篡改,终止整个的数据文件解密过程;若比较结果不同,则正常返回最后数据文件,文件解密步骤完成。
[0037]和现有的技术相比,本发明具有以下的有点和技术效果:
[0038](I)不仅对数据文件进行散列转换,而且对存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,实现了双重散列转换,进一步保证了数据文件的防篡改性,力口强了数据文件的安全。
[0039](2)在加密解密过程中,引入数据文件时间期限的控制机制,实现了对加密数据文件的使用时间的控制,避免了具有加密数据文件浏览权限的人员永远拥有此数据文件的权利。
[0040](3)检测到数据文件使用时间已到期,自动调用销毁策略将数据文件销毁,根据数据文件安全程度的高低,对于数据文件分为三种销毁方式:一次随机序列覆盖、三次覆盖和七次随机序列覆盖,降低了用户残留文件数据泄漏的风险。
[0041](4)销毁过程中无需用户介入,减少因人为原因造成的漏删、误删等风险,可靠性高,使用方便。
【专利附图】

【附图说明】
[0042]图1本发明实施例加密工作流程图。
[0043]图2本发明实施例解密工作流程图。
【具体实施方式】
[0044]为使本发明的实施例的目的、技术方案和优点更加清楚,下面对本发明实施例中涉及的一些术语做简单解释。
[0045]Hash函数:就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
[0046]哈希值:哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。
[0047]消息摘要算法第五版(Message-Digest Algorithm5):用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法)。
[0048]Rijndael算法:在高级加密标准(AES)中使用的基本密码算法。它可以使用128位,192位或者256位的密钥长度,使得它比56位的DES更健壮可靠。
[0049]RSA算法:目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
[0050]如图1所示,本发明实施例加密工作流程,具体包括以下步骤:
[0051]步骤101:读取需要加密的数据文件。
[0052]步骤102:通过Hash函数对数据文件进行散列转换,得到数据文件的哈希值。使用消息摘要算法第五版(Message-Digest Algorithm5)对数据文件进行散列转换。
[0053]步骤103:形成存储层数据。将得到的数据文件哈希值与数据文件合并,形成存储层数据。
[0054]步骤104:利用对称算法加密存储层数据。调用伪随机数产生函数,产生一个长度为32的随机数组,数组中每个元素为O到255之间的整数,在其值域上的概率分布为均匀分布。将该随机数组作为存储层密钥,使用Rijndael算法对存储层数据进行加密。
[0055]步骤105:设置文件使用到期时间和文件销毁策略。由用户设置数据文件使用到期时间和销毁策略,其中数据文件到期时间为Datetime类型且不得小于当前时间;销毁策略标识为字符串类型,有效值为“Single-pass”,“DoD”和“NSA”,分别代表一次随机序列覆盖、二次覆盖和七次随机序列覆盖。[0056]其中,Single-pass表示使用一个随机字节覆写文件数据所在每一地址。
[0057]DoD表示依次使用0x00、0xFF、一个随机字节,分三次覆写文件数据所在每一地址。
[0058]NSA表示依次使用0x00、0xFF、0x00、0xFF、一个随机字节、一个随机字节、一个随机字节,分七次覆写文件数据所在每一地址。
[0059]步骤106:通过Hash函数对数据文件到期时间、数据文件销毁策略、存储层密钥进行散列转换,得到控制参数哈希值。使用消息摘要算法第五版对数据文件使用到期时间、文件销毁策略和存储层密钥进行散列转换。
[0060]步骤107:形成控制层数据。将得到的控制参数哈希值、数据文件到期时间和存储层密钥合并为控制层数据。
[0061]步骤108:利用非对称加密算法加密控制层数据。根据用户提供的2048位私钥,程序使用RSA算法,根据该私钥对控制层数据进行加密。
[0062]步骤109:合并加密存储层数据和加密控制层数据,形成持久层数据。
[0063]步骤110:将持久层数据写入文件系统中,生成对应的加密文件。
[0064]如图2所示,本发明实施例解密工作流程,具体包括以下步骤:
[0065]步骤201:读取需解密的数据文件。
[0066]步骤202:从数据文件中获取加密控制层数据和加密存储层数据。
[0067]步骤203:通过用户提供的公钥,对加密控制层数据进行解密。用户提供解密所需的2048位公钥,据该公钥使用RSA算法根对控制层数据进行解密。
[0068]步骤204:对控制层数据中的存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,得到校验参数哈希值。使用消息摘要算法第五版对控制层数据中的存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换。
[0069]步骤205:比较由步骤106得到的控制参数哈希值和校验参数哈希值。如果两者相同,转到步骤206,如果两者不同,表明控制层数据可能被篡改,终止整个的数据文件解密过程,转到步骤212。
[0070]步骤206:数据文件到期时间与当前时间进行比较。如果数据文件到期时间大于当前时间,转到步骤207。如果数据文件到期时间小于当前时间,表示数据文件已经过期,转到步骤208。
[0071]步骤207:通过控制层中的存储层密钥解密存储层数据,转到步骤209。
[0072]步骤208:销毁数据文件,转到步骤212。根据销毁策略判断使用一次、三次或七次随机序列对数据文件进行覆盖式销毁,解密工作流程终止。
[0073]其中,销毁策略标识为字符串类型,有效值为“Single-pass”,“DoD”和“NSA”,分别代表一次随机序列覆盖、三次覆盖和七次随机序列覆盖。
[0074]Single-pass表示使用一个随机字节,覆写文件数据所在每一地址。
[0075]DoD表示依次使用0x00、0xFF、一个随机字节,分三次覆写文件数据所在每一地址。
[0076]NSA表示依次使用0x00、0xFF、0x00、0xFF、一个随机字节、一个随机字节、一个随机字节,分七次覆写文件数据所在每一地址。
[0077]步骤209:通过Hash函数对解密后存储层中的数据文件进行散列转换,得到数据文件的校验哈希值。使用消息摘要算法第五版对解密后存储层中的数据文件进行散列转换。
[0078]步骤210:比较由步骤102得到的数据文件哈希值与数据文件的校验哈希值。如果两者相同,转到步骤211。如果两者不同,表明该数据文件可能被篡改,转到步骤212。
[0079]步骤211:正常返回最后的数据文件。
[0080]步骤212:结束。
[0081]本领域技术人员可以对本发明的实施例进行各种改动和变型而不会脱离本发明的精神和范围。倘若本发明实施例中的这些修改和变型属于本发明权利要求及其等同的范围之内,则本发明中的实施例也包含这些改动和变型在内。
【权利要求】
1.一种基于时间期限控制的数据文件加密方法,其特征在于,通过对数据文件进行散列转换,而且对存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,实现双重散列转换;使用对称加密算法加密存储层数据,使用非对称加密算法加密控制层数据。
2.根据权利要求1所述的数据文件加密方法,其特征在于,具体实现步骤为: 步骤一、读取需要加密数据文件,采用Hash函数将其进行散列转换,得到数据文件哈希值; 步骤二、此数据文件与其对应的哈希值合并成存储层数据; 步骤三、通过伪随机数产生函数,随机产生一个字节数组,把该字节数组作为存储层密钥,使用对称加密算法加密存储层数据; 步骤四、产生一个时间类型变量,用来保存用户设置的该数据文件使用的到期时间;步骤五、产生一个字符串类型变量,用来保存文件销毁标志,称为数据文件销毁策略;步骤六、利用Hash函数对存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换,得到控制参数哈希值; 步骤七、将存储层密钥、数据文件到期时间、数据文件销毁策略与控制参数哈希值合并,形成控制层数据; 步骤八、根据用户提供的私钥,使用非对称加密算法加密控制层数据; 步骤九、加密后的存储层数据和控制层数据合并后,形成持久层数据; 步骤十、将持久层数据写入文件系统,数据文件加密完成。
3.根据权利要求2所述的数据文件加密方法,其特征在于:在步骤一中,使用消息摘要算法第五版(Message-Digest Algorithm5)对数据文件进行散列转换。
4.根据权利要求2所述的数据文件加密方法,其特征在于:在步骤三中,调用伪随机数产生函数,产生一个长度为32的随机数组,数组中每个元素为O到255之间的整数,在其值域上的概率分布为均匀分布;将该随机数组作为存储层密钥,使用Rijndael算法对存储层数据进行加密。
5.根据权利要求2所述的数据文件加密方法,其特征在于:在步骤五中,根据数据文件安全程度的高低,对于数据文件分为三种销毁方式:一次随机序列覆盖、三次覆盖和七次随机序列覆盖。
6.根据权利要求5所述的数据文件加密方法,其特征在于:由用户设置数据文件使用到期时间和销毁策略,其中数据文件到期时间为Datetime类型且不得小于当前时间;销毁策略标识为字符串类型,有效值为“Single-pass”,“DoD”和“NSA”,分别代表一次随机序列覆盖、二次覆盖和七次随机序列覆盖。
7.一种基于时间期限控制的数据文件解密方法,其特征在于,在加密过程中,引入数据文件时间期限的控制机制,实现对加密数据文件的使用时间的控制;使用非对称加密算法解密控制层数据,使用对称加密算法解密存储层数据;检测到数据文件使用时间已到期,自动调用销毁策略将数据文件销毁。
8.根据权利要求7所述的数据文件解密方法,其特征在于,具体实现步骤为: 步骤一、读取需解密的数据文件,即为持久层数据; 步骤二、从持久层数据中获取加密控制层数据和加密存储层数据; 步骤三、通过用户提供的公钥,使用非对称加密算法解密控制层数据;步骤四、对于控制层数据中的存储层密钥、数据文件到期时间、数据文件销毁策略,利用Hash函数对其进行散列转换,得到校验控制参数哈希值; 步骤五、比较校验控制参数哈希值和控制层数据中的控制参数哈希值,若两者不同,表明控制层数据可能被篡改,终止整个的数据文件解密过程;若两者相同,表明控制层数据正常,没有被篡改,继续进行后面的处理; 步骤六、判断控制层数据中的数据文件到期时间是否大于当前时间:若不大于,说明该数据文件使用时间已到期,根据数据文件销毁策略,调用相应的方式将该数据文件销毁;若大于,说明该数据文件还可以使用; 步骤七、通过控制层数据中的存储层密钥,使用对称加密算法解密存储层数据,获取数据文件和数据文件哈希值; 步骤八、采用Hash函数对存储层数据中的数据文件进行散列转换,得到数据文件的校验哈希值; 步骤九、对存储层数据中的数据文件哈希值和数据文件的校验哈希值进行比较,若比较结果不同,表明数据文件可能被篡改,终止整个的数据文件解密过程;若比较结果不同,则正常返回最后数据文件,文件解密步骤完成。
9.根据权利要求8所述的数据文件解密方法,其特征在于:在步骤四中,使用消息摘要算法第五版对控制层数据中的存储层密钥、数据文件到期时间、数据文件销毁策略进行散列转换。
10.根据权利要求8所述的数据文件解密方法,其特征在于:在步骤六中,根据数据文件安全程度的高低,对于数据文件分为三种销毁方式:一次随机序列覆盖、三次覆盖和七次随机序列覆盖。
【文档编号】G06F21/62GK103607273SQ201310300944
【公开日】2014年2月26日 申请日期:2013年7月18日 优先权日:2013年7月18日
【发明者】谢志超, 傅晓, 庄剑锋 申请人:焦点科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1