专利名称:应用层文件透明加密中使用通用加密算法的方法
技术领域:
属于计算信息安全类的密码学、文件透明加密
背景技术:
在文件透明加密技术中,分为基于应用层的透明加密和基于驱动层的透明加密。 基于驱动层的透明加密技术,因为其读写文件都是的边界都是512的整数,并且其读写的 大小也是512的整数倍,即使文件大小不足512个字节,也会自动补全。在这种情况下,驱 动层的透明加密可以使用任何国际通用的算法和国内专用的算法。但是应用层的文件读写机制与驱动层完全不同。其文件读写的边界是随机的,其 文件读写的大小也是随机的。这就为如AES算法的使用带来了困难,因为AES要求从2的 整数倍的位置开始处理。所以通常的方式有两种1)不处理文件的读和写,转而处理文件的打开和关闭事件。即在文件打开前,将文 件全部解密成明文。在文件关闭后再重新全部加密成密文。2)使用自行设计的加密算法,进行按位(Bit)的加密。这两种方案均存在的严重的问题,方案一存在着大量的磁盘10,严重的影响了性 能,并且因为要将文件解密至硬盘,形成的明文落地,导致安全性隐患。方案二的问题则更明显,因为自行设计的按位运算的加密仅能实现一种最简单的 加密,其安全性完全得不到保障。
发明内容
本发明实现了一种新的方式,即在应用层的读写过程中,通过预读(PReReadFile) 和延迟写DelayWriteFile的技术,将边界随机、大小随机、位置不连续的数据转换为边界 固定,大小可被512整除、位置连续的数据。本发明的方案如下1)当读一个非加密时,不作处理,按Windows原有方式进行。2)当写一个非加密文件时,不作处理,按Windows原有方式进行。3)当读一个加密文件时,预读更多的数据,使其大小和边界为8的N倍。将数据进 行解密后,再向Windows返回其需要的数据量。4)当要写一个加密文件时,首先将其数据缓存起来,当最后需要关闭文件时,再将 文件进行加密后提交给Windows。
下面结合附图和实施例对发明专利进一步说明。 图1为读取文件时的处理流程,图2为写入文件时的处理流程。
具体实施例方式以AutoCAD的数据读写为例1)当读一个非加密时,不作处理,按Windows原有方式进行。2)当读一个加密文件时,如果读的边界正好是8的N次方,读的内容大小也为8的 N次时,不需要I^reReadFile。只需用相应的算法将这段内容在内存中进行解密,然后再提 交给Windows进行处理即可。3)当读一个加密文件时,如果读的边界正好是8的N次方,读的大小为非8的N次 方时,则从边界处开始读,在尾部多读一部分数据,使其大小为8的N次方。在用相应的算 法对此段内容进行解密后,将尾部多读的数据丢弃,然后再Windows提交其需要的数据。4)当读一个加密文件时,如果读的边界为非8的N次方,读的大小也为非8的N次 方时,则边界向前移至8的N次方处,然后开始读取数据,同时在其尾部多读一部分数据,使 其大小为8的N次方。在用相应算法对其进行解密后,将头部及尾部多读的数据丢弃,然后 再向Windows提交其需要的数据。5)当写一个非加密文件时,不作处理,按Windows原有方式进行。6)当写一个加密文件时,如果写的边界正好是8的N次方,写的大小也正好是8的 N次方时,不需要进行DelayWriteFile,只需用相应的算法将这段内容在内存中进行加密, 然后提交给Windows处理即可。7)当写一个加密文件时,如果写的边界正好是8的N次方,而写的大小为非8的N 次方时,将边界处开始的8的N次方的数据进行加密,提交给Windows系统,对于尾部剩下 的一部分数据,标明原位置和大小,将其缓存起来。如果在后续的写过程中,有覆盖此数据 动作,则缓存的数据丢弃。如果并未发生覆盖动作,则在文件关闭(CloseHandle)的时候, 重新读取此数据周围的数据,然后完整一个8的N次方为边界,大小为8的数据,加密后,将 相应的数据写入文件,同时丢弃在此过程中多读的数据。8)当写一个加密文件时,如果写的边界为非8的N次方,写的大小亦为非8的N 次方时,则以8的N次方为边界,加密大小为8的N次方的数据,然后将此部分数据提交给 Windows系统。对于头部和尾部多出的一部分数据,标明原位置和大小,将其缓存起来,如 果在后续的写的过程中,有覆盖些数据的动作,则缓存的数据丢弃。如果并未发生覆盖动 作,则在关闭文件(CloseHandle)的时候,重新读取此数据周围的数据。然后完整一个8的 N次方为边界,大小为8的数据,加密后,将相应的数据写入文件,同时丢弃在此过程中多读 的数据。
权利要求
1.一种在应用层读写文件时,应用国际通用或国密局指定的算法,进行透明加密的方 法,其特征是将位置随机、大小不确定的读写过程转化为位置有规律,大小固定的读写。
2.根据权利要求1,其特征是对于写文件时超出边界的部分数据进行缓存,在文件关 闭时再行处理。
全文摘要
一种在应用层文件透明加密中使用国际通过算法和国密局指定算法的方法。其主要通过预读(PreReadFile)、延迟写(DelayWriteFile)的技术。将位置随机、大小不确定的读写过程转化为位置有规律,大小固定的读写。并且将剩于的数据缓存,在文件关闭时再进行处理。通过此方法,使透明加密对于算法的特性要求大为降低,选择范围大大提高,令文件透明加密技术在最核心处满足国家相关规定。
文档编号G06F17/30GK102053996SQ200910233699
公开日2011年5月11日 申请日期2009年10月28日 优先权日2009年10月28日
发明者邱文乔 申请人:无锡安腾软件开发有限公司