1.本发明涉及文件管理技术领域,尤其是一种文件加密方法、刻录方法、解密方法、装置与计算设备。
背景技术:
2.在现代操作系统中,存储介质中数据的组织及访问都需要通过文件系统来操作,而光盘介质中数据的组织及访问则是通过光盘文件系统来操作的,其中,光盘文件系统包括iso9660和udf(universal disc filesystem,通用光盘文件系统)这两种光盘文件系统。
3.在linux等操作系统平台,目前已存在一些用于磁盘加密的应用。例如uos(unity operating system,统一操作系统)文件管理器的保险箱,该应用就是通过将原始文件划分为多个区块,再针对区块进行加密,最后将这些区块通过诸如cryfs等加密文件系统挂载到该系统上,来完成文件的加密过程;此外,文件的解密过程亦在该加密文件系统中进行。然而,目前在linux等一些操作系统平台,尚未见对数据光盘进行加密的应用。
技术实现要素:
4.为此,本发明提供了一种文件加密方法、刻录方法、解密方法、装置与计算设备,以力图解决或者至少缓解上面存在的至少一个问题。
5.根据本发明的一个方面,提供了一种用于光盘刻录的文件加密方法,包括:获取第一用户密钥;针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;对所有加密文件进行打包,得到待刻录的加密数据包,其中,所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。
6.可选地,在根据本发明的文件加密方法中,在所述根据第一预定加密算法计算文件名摘要的步骤之前,还包括:对文件名加盐;所述盐根据所述第一用户密钥计算获得。
7.可选地,在根据本发明的文件加密方法中,所述加密数据包中各加密文件的文件名不加密。
8.可选地,在根据本发明的文件加密方法中,所述光盘文件系统的第一预设字段为光盘文件系统的第一个查询卷描述符关键指针的对应字段;所述光盘文件系统的一个或多个第二预设字段包括:光盘文件系统的第二个查询卷描述符关键指针和/或第三个查询卷描述符关键指针的对应字段。
9.根据本发明的另一方面,还提供了一种文件加密刻录方法,包括:利用如上所述的文件加密方法对待加密文件进行加密,以得到待刻录的加密数据包;以及将所述待刻录的加密数据包刻录至接入的光盘中。
10.根据本发明的另一方面,还提供了一种用于加密光盘的文件解密方法,所述加密
光盘为采用如上所述的文件加密刻录方法刻录而得,所述文件解密方法包括:响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥;判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。
11.可选地,在根据本发明的文件解密方法中,解密后的文件内容通过基于fuse实现的用户态文件系统呈现给用户;所述用户态文件系统用于映射所述加密光盘的光盘文件列表,通过内核虚拟文件系统模块转发输入/输出请求;响应于用户的文件读取请求,文件管理器通过url将所述文件读取请求对应的文件重定向至所述用户态文件系统,所述用户态文件系统在获取到所述文件读取请求对应的文件的url后,对所述加密光盘中对应的加密文件解密后转至应用程序以呈现。
12.根据本发明的另一方面,还提供了一种加密光盘文件处理方法,包括:响应于接收到的加密打包请求,利用如上所述的文件加密方法对待加密文件进行加密;响应于接收到的加密刻录请求,利用如上所述的文件加密刻录方法对待加密文件进行加密刻录;响应于接收到的光盘接入信号,利用如上所述的文件解密方法对接入的加密光盘进行数据解密及读取。
13.根据本发明的另一方面,还提供了一种用于光盘刻录的文件加密装置,包括:获取单元,用于获取第一用户密钥;加密单元,用于针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;以及打包单元,用于对所有加密文件进行打包,得到待刻录的加密数据包,并使得所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。
14.根据本发明的另一方面,还提供了一种文件加密刻录装置,包括:如上所述的文件加密装置,用于对待加密文件进行加密,以得到待刻录的加密数据包;以及刻录单元,用于将所述待刻录的加密数据包刻录至接入的光盘中。
15.根据本发明的另一方面,还提供了一种用于加密光盘的文件解密装置,所述加密光盘为采用如上所述的文件加密刻录装置刻录而得,所述文件解密装置包括:第一判断单元,用于响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;第二判断单元,在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥,并判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;解密单元,用于在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第
二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。
16.根据本发明的另一方面,还提供了一种加密光盘文件处理装置,包括如上所述的文件加密刻录装置以及如上所述的文件解密装置;其中,响应于接收到的加密打包请求,触发所述文件加密刻录装置执行操作以完成对待加密文件的加密处理;响应于接收到的加密刻录请求,触发所述文件加密刻录装置执行操作以完成对待加密文件的加密刻录处理;响应于接收到的光盘接入信号,触发所述文件解密装置执行操作以完成对接入的加密光盘的数据解密及读取处理。
17.根据本发明的又一方面,还提供了一种计算设备,包括:至少一个处理器和存储有程序指令的存储器;当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如上所述的文件加密方法、如上所述的文件加密刻录方法、如上所述的文件解密方法或如上所述的加密光盘文件处理方法。
18.根据本发明的再一方面,还提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的文件加密方法、如上所述的文件加密刻录方法、如上所述的文件解密方法或如上所述的加密光盘文件处理方法。
19.根据本发明的上述文件加密方法、文件加密刻录方法、文件解密方法、加密光盘文件处理方法、各装置与计算设备,能够实现至少以下有益效果之一:实现诸如linux等操作系统下的光盘数据加密和/或加密刻录;实现诸如linux等操作系统下的光盘数据解密;实现了完整闭环的数据加密解密过程,填补了linux系统中udf光盘文件系统加解密功能的空白。
附图说明
20.为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
21.图1示出了数据在光盘中的存储结构的示意图;图2示出了uos文件管理器保险箱的使用界面的示意图;图3示出了根据本发明实施例的用于光盘刻录的文件加密方法的一种应用场景示例的示意图;图4示出了根据本发明实施例的用于光盘刻录的文件加密方法的另一种应用场景示例的示意图;图5示出了根据本发明实施例的计算设备的示意图;图6示出了根据本发明实施例的用于光盘刻录的文件加密方法的一种示例性处理的流程图;图7示出了根据本发明实施例的文件加密刻录方法的一种示例性处理的流程图;图8示出了图7所示的文件加密刻录方法的另一种示例性处理的流程图;
图9示出了根据本发明实施例的用于加密光盘的文件解密方法的一种示例性处理的流程图;图10示出了一张光盘中同时包含加密区段和非加密区段的情况的示意图;图11示出了应用打开加密文件的过程的一个示例的流程示意图;图12示出了根据本发明实施例的文件加密装置的示例性结构的示意图;图13示出了根据本发明实施例的文件加密刻录装置的示例性结构的示意图;图14示出了根据本发明实施例的文件解密装置的示例性结构的示意图;图15示出了根据本发明实施例的加密光盘文件处理装置的示例性结构的示意图。
具体实施方式
22.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
23.在下文中,以linux操作系统为例来描述本发明的各个实施例,但应当理解,本发明的实施例并不限于此,同样适用于其他能够应用本发明实施例的方法/装置的其他操作系统,如统信uos等基于linux内核的操作系统,或其他非linux内核的操作系统等。
24.在现有技术中,例如在linux平台上,当向普通磁盘(如硬盘等)中写入数据时,只需通过系统调用write命令即可完成;而光盘在一定程度上算是只读设备,若要对光盘进行数据写入,则需通过刻录的方式来完成。
25.刻录,是指将数据从光盘外(如本地磁盘等)写入到光盘内的过程,该过程可以通过系统调用ioctl加上一系列的设备指令来完成,例如可使用write_10指令来将数据写入到光盘中。与向普通磁盘中写入数据的过程不同,当向光盘中刻录文件时,每次刻录都会在该光盘中创建一个叫做session(会话,用于记录光盘的每一次刻录信息的抽象结构)的数据结构,而每个session中都具备一个完整的光盘文件系统(如iso9660或udf)。这样,每一次刻录的一系列文件,都存放在这次刻录的session中,也就是说,进行了几次刻录,就会在光盘中创建几个session。同时,光盘中的session具有前后的引用关系,光盘中数据存储示意图如图1所示。
26.对于磁盘来说,文件加密例如可以通过修改硬盘分区表的信息(硬盘分区表是启动硬盘的必须元素,并且部分字段是完全固定的,通过修改这部分信息可以达到硬盘不被其他用户识别的目的),或者可以对硬盘启动添加口令(相当于需要用户先输入密码才能使用计算机,但可以拆卸硬盘到其他非加密计算机使用),或者也可以对硬盘实现用户加密管理(特定用户具有特定分区的访问权限),又或者可以对某个逻辑盘实现写保护(限制用户写入数据),或者还可以通过磁盘扇区数据加密(将数据先加密后再写入磁盘)等方式来实现。
27.例如,在linux平台中,当利用uos文件管理器中的保险箱对磁盘文件进行加密和解密时,该过程中通过cryfs映射了物理磁盘中的一个特定目录下的数据区段,如图2所示,当将保险箱解锁后,通过系统mount命令,可以看到系统新增了fuse.cryfs文件系统在某个路径上。mount是linux下的一个命令,它可以将分区挂接到linux系统的一个文件夹下,从
而将分区和该目录联系起来,因此访问这个文件夹就相当于访问该分区了。此外,mount亦不仅仅局限于linux系统,目前,在windows系统下mount的应用也越来越广。文件管理器的保险箱业务,将存放于保险箱中的文件分段加密后再存储到磁盘中的一个特定文件夹中,加密的特定文件夹以cryfs来组织文件结构,也称为加密文件系统。当用户访问保险箱的时候,系统中对cryfs进行挂载(cryfs也是基于fuse实现的文件系统),在挂载后,对加密区域内的数据进行解码重组,然后将数据呈现给上层应用。
28.然而,目前尚不存在适用于诸如linux等操作系统的光盘加密技术。针对该问题,本发明提供了一种用于光盘刻录的文件加密方法,图3给出了该文件加密方法的一种可能的应用场景。
29.如图3所示,当用户插入光盘后,可以选择待加密的文件。选择好要进行加密的文件后,采用本发明的文件加密方法对其进行加密,加密后得到一个加密数据包。然后,再将该加密数据包刻录到插入的光盘中,得到一张加密光盘。也就是说,在图3所示的场景中,可以将该场景对应的从选择待加密的文件进行加密到刻录的过程通过一个设备实现,这样的设备即相当于一个加密刻录设备,如下文中将描述的一种文件加密刻录装置。
30.当然,本发明的上述文件加密方法也可适用于其他应用场景,如图4所示,例如可以在一个设备(如图4所示的加密设备310,相当于下文中将要描述的一种用于光盘刻录的文件加密装置)上选择或接收待加密的文件,采用本发明的文件加密方法对其进行加密后,将得到的加密数据包发送给另一个设备(如图4所示的刻录设备320,相当于现有技术中的普通刻录设备,例如能够实现linux平台下udf刻录的设备)进行刻录,得到一张加密光盘。也就是说,在图4所示的场景中,可以将加密过程和刻录过程分开通过两个不同设备实现,这两个设备之间的通讯可以是有线的或无线的。
31.本发明的用于光盘刻录的文件加密方法包括:获取第一用户密钥;针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;对所有加密文件进行打包,得到待刻录的加密数据包,其中,所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。
32.由此,通过上述用于光盘刻录的文件加密方法,能够对待加密的文件进行加密,得到相应的加密数据包,实现适用于诸如linux等操作系统的光盘加密。
33.本发明的文件加密方法、文件加密刻录方法、文件解密方法以及加密光盘文件处理方法在计算设备中执行。计算设备可以是任意具有存储和计算能力的设备,其例如可以实现为服务器、工作站等,也可以实现为桌面计算机、笔记本计算机等个人配置的计算机,或者实现为手机、平板电脑、智能可穿戴设备、物联网设备等终端设备,但不限于此。
34.图5示出了根据本发明一个实施例的计算设备500的示意图。需要说明的是,图5所示的计算设备500仅为一个示例,在实践中,用于实施本发明的文件加密方法、文件加密刻录方法、文件解密方法以及加密光盘文件处理方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图5所示的计算设备500相同,也可以与图5所示的计算设备500不同。实践中用于实施本发明的文件加密方法、文件加密刻录方法、文件解密方法以及加密光盘文件处理方法的计算设备可以对图5所示的计算设备500的硬件组件进行增加或删减,本发
明对计算设备的具体硬件配置情况不做限制。
35.如图5所示,在基本配置502中,计算设备500典型地包括系统存储器506和一个或者多个处理器504。存储器总线508可以用于在处理器504和系统存储器506之间的通信。
36.取决于期望的配置,处理器504可以是任何类型的处理,包括但不限于:微处理器(
µ
p)、微控制器(
µ
c)、数字信息处理器(dsp)或者它们的任何组合。处理器504可以包括诸如一级高速缓存510和二级高速缓存512之类的一个或者多个级别的高速缓存、处理器核心514和寄存器516。示例的处理器核心514可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器518可以与处理器504一起使用,或者在一些实现中,存储器控制器518可以是处理器504的一个内部部分。
37.取决于期望的配置,系统存储器506可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器ram,磁盘中的数据需要加载至物理内存中才能够被处理器504读取。系统存储器506可以包括操作系统520、一个或者多个应用522以及程序数据524。在一些实施方式中,应用522可以布置为在操作系统上由一个或多个处理器504利用程序数据524执行指令。操作系统520例如可以是linux、windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用522包括用于实现各种用户期望的功能的程序指令,应用522例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境ide、编译器等)等,但不限于此。当应用522被安装到计算设备500中时,可以向操作系统520添加驱动模块。
38.在计算设备500启动运行时,处理器504会从系统存储器506中读取操作系统520的程序指令并执行。应用522运行在操作系统520之上,利用操作系统520以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用522时,应用522会加载至系统存储器506中,处理器504从系统存储器506中读取并执行应用522的程序指令。
39.计算设备500还包括储存设备532,储存设备532包括可移除储存器536和不可移除储存器538,可移除储存器536和不可移除储存器538均与储存接口总线534连接。
40.计算设备500还可以包括有助于从各种接口设备(例如,输出设备542、外设接口544和通信设备546)到基本配置502经由总线/接口控制器530的通信的接口总线540。示例的输出设备542包括图像处理单元548和音频处理单元550。它们可以被配置为有助于经由一个或者多个a/v端口552与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口544可以包括串行接口控制器554和并行接口控制器556,它们可以被配置为有助于经由一个或者多个i/o端口558和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备546可以包括网络控制器560,其可以被布置为便于经由一个或者多个通信端口564与一个或者多个其他计算设备562通过网络通信链路的通信。
41.网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外
(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
42.在根据本发明的计算设备500中,应用522包括用于执行本发明的文件加密方法、文件加密刻录方法、文件解密方法以及加密光盘文件处理方法的指令,该指令可以指示处理器504执行本发明的上述文件加密方法、文件加密刻录方法、文件解密方法以及加密光盘文件处理方法,以实现适用于诸如linux等操作系统的用于光盘刻录的文件加密、和/或加密光盘的解密、和/或光盘加密刻录等。
43.图6示出了根据本发明一个实施例的一种用于光盘刻录的文件加密方法600的流程图。文件加密方法600在计算设备(例如前述计算设备500)中执行,本发明的文件加密方法600,对待加密的文件进行加密,得到相应的加密数据包,实现适用于诸如linux等操作系统的光盘加密。如图6所示,文件加密方法600可以包括步骤s610至步骤s630。
44.在步骤s610中,获取第一用户密钥。需要说明的是,这里所说的第一用户密钥是用户在首次加密时输入的一个密钥,而下文中提到的第二用户密钥是后续用户(也可能是该用户,也可能是其他用户)在解密时输入的密钥。
45.例如,可以通过用户点击文件管理器刻录按钮时,弹框询问用户是否加密时获取该第一用户密钥,也即,若用户确认要加密,则通过用户此时输入的密钥作为该第一用户密钥。
46.接着,在步骤s620中,针对所有待加密文件中的每一个待加密文件:根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件。
47.然后,在步骤s630中,对所有加密文件进行打包,得到待刻录的加密数据包。
48.在对所有加密文件进行打包时,目的是要将所有文件打包为一个包含完整光盘文件系统(如udf格式的光盘文件系统,以下简称udf文件系统)的iso镜像(作为加密数据包的示例),该光盘文件系统的内部数据包含一个完整的session。也就是说,上述加密数据包中包含有对应的光盘文件系统。
49.在打包前,将预先设置的加密标识符存储在udf文件系统(作为光盘文件系统的示例)的第一预设字段,加密标识符例如可以是但不限于cryudf等自定义的字符串,此外,将获得的上述第一用户密钥存储在光盘文件系统的一个或多个第二预设字段。
50.在下文中,以udf文件系统作为光盘文件系统示例来描述本发明的实施例,但应当理解,本发明的实施例并不限于此,也可以是能够应用于本发明的其他类型光盘文件系统。
51.根据本发明的实施例,例如可以选取udf文件系统的第一个avdp(anchor volume descriptor pointer,查询卷描述符关键指针)的对应字段,作为上述第一预设字段,将udf文件系统的第二个avdp和/或第三个avdp的对应字段作为上述一个或多个第二预设字段。
52.avdp是一种元数据,是udf文件系统中的一种特殊结构,可以通过它获取一些udf文件系统的关键信息。在一个udf文件系统中,共有3个avdp结构。
53.例如,通过修改udf文件系统的第一个avdp,即在该avdp保留字段中扩展出一段数据用于存放预设的加密标识符,以标识该光盘为加密光盘。其中,保留字段是指文件系统中未曾使用的字段,其值在正常的文件系统解析过程中不会被使用。udf文件系统的第一个avdp,即每一个 session 的开头的第256个块开始的那个avdp。
54.在ecma-167规范文档中,avdp被定义为如下结构:/* anchor volume descriptor pointer (ecma 167r3 3/10.2) */struct anchorvoldescptr{
ꢀꢀꢀꢀ
tag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
desctag;
ꢀꢀꢀꢀ
extent_ad mainvoldescseqext; // 记录mvds所在扇区和长度
ꢀꢀꢀꢀ
extent_ad reservevoldescseqext;
ꢀꢀꢀꢀ
uint8_t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
reserved[480];};通过该结构能够发现,在三个字段之后存在一个保留字段reserved,因此可以在该保留字段中写入加密标识符,如cryudf字符串,以使得在下面描述的解密方法中能够通过识别该加密标识符来自动触发解密流程。
[0055]
这样,在本发明的实施例中,使用第一个avdp存储加密光盘的标识,即加密标识符,此外还可通过另外两个位置(第n和n-256块)开始的avdp(即第二个avdp和第三个avdp)来保存上述第一用户密钥,第一用户密钥例如可以通过混淆加密的方式存储在这两个位置,其加密过程对外不可见,仅在文件管理器内部中提供过程。其中,n为对应session的长度,比如若当前对应的session长度是500个块,则n=500;若当前对应的session长度是1000个块,则n=1000,等等。
[0056]
在文件系统中,文件名称和文件内容不是一个整体。在本发明的实施例中,在加密过程中例如可以不对文件名称进行加密,以便用户可以方便地看到整个文件列表。
[0057]
在步骤s620中,在计算每个待加密文件的公钥时,例如可以直接根据第一预定加密算法对该文件的文件名进行计算,得到相应的文件名摘要,作为该文件的公钥。
[0058]
或者,也可以先对文件名加盐,再通过步骤s620中的所述根据第一预定加密算法计算文件名摘要的步骤来计算得到上述文件名摘要,作为该文件的公钥。其中,所述盐可以根据第一用户密钥计算获得。
[0059]
例如,对于每个待加密文件,通过对该文件的文件名加盐后,以国密算法sm3(作为第一预定加密算法的示例)来计算文件名摘要,将该摘要作为该文件的公钥。
[0060]
例如,可以参考如下公式一来计算上述公钥。
[0061]
公式一:file_key = sm3(file_name + salt(user_password))在公式一中,file_key表示当前计算的这个待加密文件的公钥,file_name表示该待加密文件的文件名,user_password表示用户输入的第一用户密钥,salt(user_password)表示根据user_password计算的盐,sm3表示国密算法sm3。
[0062]
其中,所述盐例如可以根据第一用户密钥计算获得,计算盐值的具体过程例如可以采用现有的盐值计算方法来实现,这里不再赘述。举例来说,假设某一待加密文件的文件名为“file”,用户输入的第一用户密钥为“321”,而根据“321”计算盐值后所得到的字符串为abc,则该文件对应的输入到sm3算法中的参数(即file_name + salt(user_password)这个部分)为“fileabc”这个字符串(其中,字符串不包含引号)。
[0063]
应当理解的是,第一预定加密算法并不限于该例子中所说的国密算法sm3,也可以
是其他加密算法,这里不再赘述。
[0064]
此外,在步骤s620中,在计算出每个待加密文件的公钥后,针对每个待加密文件,可以对该文件的内容通过国密算法sm2和sm4结合公钥来进行分组加密,若数据长度不够则补0。应当理解的是,第二预定加密算法并不限于该例子中所说的国密算法sm2和sm4相结合后的算法,也可以是单独的其他国密系列算法(或其结合),这里不再赘述。
[0065]
当然,需要理解的是,其他非国密系列算法也可以为本发明的实施例所用,作为第一预定加密算法和/或第二预定加密算法的示例。
[0066]
这样,由于各个待加密文件的文件名不同,故而计算得到的每个待加密文件的公钥也不同,换句话说,任两个待加密文件的用于加密的公钥都是不同的,由此能够提升文件内容的安全性。比如,即使两张光盘都刻录了同一个文件名的文件(加密的),但由于各自输入的第一用户密钥不同,故而二者对应的公钥也不同。
[0067]
此外,通过本发明的实施例进行加密,同一个文件在加密前和加密后的长度几乎不变,因此不会影响文件在光盘中占用的空间大小。
[0068]
通过以上描述可知,采用本发明实施例的上述文件加密方法,能够获得一个包含加密标识、可读文件名以及加密文件内容的加密数据包,由此完成了对于用户光盘刻录的文件进行加密的过程。
[0069]
在获得了上述加密数据包后,可选地,还可以将其刻录到光盘。下面,结合图7来描述一种文件加密刻录方法。
[0070]
如图7所示,给出了根据本发明一个实施例的一种文件加密刻录方法700的流程图。文件加密刻录方法700在计算设备(例如前述计算设备500)中执行,本发明的文件加密刻录方法700,对待加密的文件进行加密,得到相应的加密数据包,继而将该数据包刻录到光盘中,能够实现适用于诸如linux等操作系统的光盘加密刻录。如图7所示,文件加密刻录方法700可以包括步骤s710至步骤s740。
[0071]
其中,步骤s710~s730可以执行与上文中结合图6所描述的步骤s610~s630相同的处理,并能够实现相类似的功能和效果,这里不再赘述。
[0072]
文件加密刻录方法700通过步骤s710~s730对待加密文件(可以包含一个或多个文件、和/或一个或多个文件夹)进行加密,得到的加密数据包作为待刻录的加密数据包,然后在步骤s740中,将上述待刻录的加密数据包刻录至接入的光盘中。
[0073]
在本发明的实施例中,将数据包(可以是上述加密数据包)刻录到光盘的过程例如可以通过统信uos 1040版本提供的libudfburn功能库完成,或者也可以通过现有的其他可为本发明所用的任一种刻录技术实现,这里不再赘述。
[0074]
由此,通过本发明实施例的文件加密刻录方法700,可以获得一张或多张加密的光盘,由此获得的加密光盘在普通计算机上也可识别,其文件列表显示正常,但文件内容显示为完全的乱码。
[0075]
此外,在本发明的实施例中,用于刻录的光盘可以是空白光盘(即空盘),也可以是非空盘,其中,非空盘例如是已经采用本发明实施例的上述文件加密刻录方法700进行了一次或多次加密刻录的光盘。
[0076]
在一个例子中,当用于刻录的光盘是空白光盘时,可以采用如图8所示的流程来完成刻录。如图8所示,接入的光盘是空白光盘,在步骤s811中用户开始刻录操作。接着,在步
骤s812中,文件管理器接收到上述开始刻录的信号后询问是否进行加密刻录,步骤s813弹框询问用户是否加密刻录,若用户选择加密刻录,则执行步骤s814,文件管理器继续提示用户输入密码(即第一用户密钥),接着在步骤s815中判断用户是否输入了密码,若用户输入了密码(相当于上述文件加密刻录方法700中的步骤s710),则文件管理器在步骤s816中对数据(即待加密文件)进行加密打包(相当于上述文件加密刻录方法700中的步骤s720、s730),然后在步骤s817中将打包好的数据(即待刻录的加密数据包)刻录到上述空白光盘,流程结束。此外,若步骤s813弹框询问用户是否加密刻录后,用户选择的是否(即不加密),则在步骤s818中文件管理直接进行普通刻录(非加密刻录),流程结束。
[0077]
在另一个例子中,当接入的光盘是已采用上述文件加密刻录方法700进行了一次或多次加密刻录的光盘时,在用户插入该光盘后,提示用户输入密码,当用户输入的密码正确(与之前加密刻录时的密码相同)时,挂载该光盘;若用户输入密码错误,则不允许挂载。在挂载后,当某时刻用户需要刻录时,可以从前会话中获取密码(即第一用户密钥)再进行加密刻录,这里的前会话可以是前面的任一次会话。在该例子中,由于是非空白光盘,因此进行的加密刻录是一种追加刻录,例如可以采用公开号为cn113741817a的专利文献“自动校验方法及装置、光盘刻录方法及装置与计算设备”中提及的追加刻录的技术来实现,或者,也可以通过现有的其他可为本发明所用的任一种追加刻录技术实现,这里不再赘述。
[0078]
此外,本发明的实施例还提供了一种用于加密光盘的文件解密方法,所述加密光盘为采用如上所述的文件加密刻录方法刻录而得,所述文件解密方法包括:响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥;判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。下面,结合图9来描述上述文件解密方法。
[0079]
如图9所示,给出了根据本发明一个实施例的一种用于加密光盘的文件解密方法900的流程图。文件解密方法900在计算设备(例如前述计算设备500)中执行,本发明的文件解密方法900,通过对加密光盘中的加密文件进行解密,将解密后的光盘数据呈现给用户。如图9所示,文件解密方法900可以包括步骤s910至步骤s940。
[0080]
如图9所示,在步骤s910中,响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于该第一预设字段的数据判断该光盘是否为加密光盘。这里,第一预设字段例如可以是上文中结合图6-8所描述的第一预设字段,这里不再赘述。
[0081]
在步骤s920中,若判断光盘为加密光盘,则提示用户输入第二用户密钥,并在步骤s930中判断该第二用户密钥与该光盘对应的第一用户密钥是否一致。
[0082]
其中,第一用户密钥可以根据光盘文件系统的一个或多个第二预设字段的数据获得。根据上文描述可知,在加密打包过程中,在一个或多个第二预设字段(如udf文件系统的
第二个avdp和/或第三个avdp对应字段)存有用户加密时输入的密码(即第一用户密钥)。
[0083]
在一个例子中,若验证通过,即用户输入的第二用户密钥与上述第一用户密钥相同,则允许挂载该光盘。若验证失败,即第二用户密钥与第一用户密钥不同,则不允许挂载该光盘。例如,可以通过文件管理器(如uos文件管理器)实现对数据光盘的挂载。
[0084]
在另一个例子中,也可以在验证失败时允许挂载,但此时用户打开光盘中的加密文件时显示均为乱码。
[0085]
当用户请求读取某个文件(如双击打开某个加密文件)时,在步骤s940中,响应于用户的文件读取请求,解密该文件。
[0086]
在步骤s940中,可以根据第一预定加密算法计算文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,计算公钥的方法与上文中在加密过程中描述的过程相似,这里不再赘述。需要注意的是,解密过程与加密过程的算法应当对应,比如,若加密过程计算公钥时未采用加盐的方式,则解密时也不需加盐;若加密过程计算公钥时采用加盐的方式计算,则解密时也需对应加盐计算,这里不再一一赘述。
[0087]
此外,根据第二预定加密算法、并利用文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。
[0088]
在根据本发明的实施例中,解密后的文件内容例如可以通过基于fuse(filesystem in userspace)实现的用户态文件系统(以下简称解密文件系统)呈现给用户;上述用户态文件系统用于映射加密光盘的光盘文件列表,通过内核虚拟文件系统模块转发输入/输出请求;响应于用户的文件读取请求,文件管理器通过url(uniform resource locator,统一资源定位器,也即网络地址)将上述文件读取请求对应的文件重定向至上述用户态文件系统,用户态文件系统在获取到上述文件读取请求对应的文件的url后,对加密光盘中对应的加密文件解密后转至对应的应用程序以呈现。对应的应用程序例如是操作系统上安装的用于打开上述解密后的文件类型的应用,例如,若加密文件是一个文本文件,则对应的应用程序可以是一个文本编辑器;又如,若加密文件是一个音频文件,则对应的应用程序可以是一个音频播放器;等等。
[0089]
其中,fuse表示用户态文件系统,它将文件系统的实现放在用户态,并通过内核vfs(virtual file system,虚拟文件系统)模块来转发i/o(输入/输出)请求;换句话说,在linux系统中,由于对文件的访问都是通过vfs层提供的内核接口进行的,如对文件的open或read等操作,因此基于fuse实现的文件系统也需要通过一个内核模块来转发。传统的文件系统的实现存在于内核层,其开发与调试都需在内核层进行,这对于开发者来说是门槛很高的工作,不同的文件系统以独立的模块.ko(kernel object)存在,其与用户态的so文件类似,都是为了进行模块化编程。相比之下,fuse的实现是在用户空间,这就能够很好地解决内核空间不易编码与调试的问题。fuse是一种内存文件系统,它不仅可以作为磁盘与计算机的数据传输桥梁,还可以将ftp、smb等网络文件传输协议通过fuse接入,而使用户可以直接访问远程设备上的文件。
[0090]
作为示例,例如可以通过如下方式来实现上述解密文件系统:令该解密文件系统映射光盘中文件列表并与光盘一对一绑定;当接收到用户点击光盘中加密文件的请求时,令文件管理器通过url将文件重定向到该解密文件系统,以使该解密文件系统获取到文件的url后,从光盘中读取对应的文件内容,将文件解密后的内容再转给应用程序,以此达到
光盘内文件解密的功能。该过程中,解密文件系统相当于代理的作用,用于对业务流程中所涉及的数据流做处理及转发。
[0091]
由此,通过本发明实施例的上述文件加密方法600和文件解密方法900,实现了udf文件系统(作为光盘文件系统的示例)的加解密的闭环,同时,该加解密过程为完全黑箱状态,外部几乎不能感知,因此具有较好的用户体验。
[0092]
作为示例,若光盘中的文件同时包含加密文件和非加密文件,则在解密时,还需获取文件的归属区段(会话)。这样的光盘可能是如下过程形成的:比如,用户对加密后的光盘追加刻录(例如在本操作系统或windows等其他操作系统下追加刻录),其追加刻录的文件是明文文件(即非加密文件),而原来的文件(即追加刻录前光盘上的文件)是密文文件(即加密文件),则此时相当于一张光盘中存在加密段与非加密段。对于位于加密区段的文件,解密文件系统从该区段中获取公钥,解密后将数据提供给应用;而对于位于非加密区段的文件,则解密文件系统直接将文件原始数据提供给调用应用。
[0093]
例如,在一张光盘中,可能存在如图10所示的加密区段(如图10所示的session1~session6)和非加密区段(如图10所示的session7),此时在解密时,需获取每个文件的归属区段,结合图1和图10,假设用户通过某应用调用的文件是图1所示的“操作系统.txt”这个文件,而通过获取该文件的归属区段可以判定出假设该文件属于加密区段session3,则解密文件系统需从session3中获取公钥,在利用该公钥按照上文所述方式解密,解密后将数据提供给调用应用。
[0094]
下面描述上述文件解密方法900的一种优选示例。在该优选示例中,当文件管理器通过例如libudisks2-qt5获得光盘接入的信号后,开始通过系统read方法寻找光盘中特定位置的描述符,在read的过程中需要解析光盘数据结构。完整的udf文件系统以一个特殊标识bea01开始,当识别到bea01标识符时,就读取到了光盘内文件系统的第16个块,也是udf的vrs结构的开始;再往后240个块,就能够读取到udf文件系统的第一个avdp的描述符(作为第一预设字段的示例),也即在上文描述的数据加密打包过程中存储加密描述符(即上文所述的加密标识符)的那个avdp。通过判断该第一个avdp的描述符中是否包含加密标识符(例如cryudf),则可判定该张光盘是否为加密光盘。
[0095]
当确实存在加密标识符时,文件管理器弹框提示用户输入光盘密钥。当用户输入了正确的密钥之后(通过读取另外两个avdp中的扩展数据来计算原始的第一用户密钥,并与用户当前输入的第二用户密钥进行对比),启动并挂载解密文件系统,在该优选示例中,例如可以将该解密文件系统称作fuse.cyrudffs文件系统(下文中简称cryudffs文件系统)。在该优选示例中,并未修改光盘中的文件系统,只是将光盘内文件加密,需一个程序来对光盘内文件进行解密。这个解密的程序需支持用户通过其打开文件,因此可以通过实现一个文件系统的方式来完成,在该优选示例中,通过实现fuse文件系统中的特定接口,进而可以将这个解密的程序以文件系统方式(如cryudffs文件系统,作为基于fuse实现的用户态文件系统的示例)挂载到当前计算机中。
[0096]
在该优选示例中,cryudffs文件系统与加密光盘直接绑定,为一对一的关系。在用户未使用光盘中的文件时,该文件系统只读取光盘中的文件列表;当用户真正双击文件打开文件时,此时该文件系统才从光盘中读取对应的文件的数据,并通过上文所述的解密算法将光盘内数据解密,最终通过cryudffs文件系统将数据告知给上层应用。
[0097]
图11给出了应用打开加密文件的过程的一个示例。在该示例中,apps表示请求数据的应用程序,dde-file-manager表示文件管理器(例如uos文件管理器),cryudffs表示光盘加密文件系统(相当于上文所述的解密文件系统),udffs表示光盘原始udf文件系统。
[0098]
如图11所示,apps通过dde-file-manager打开光盘内文件(如图11所示的“访问光盘文件”步骤),例如通过双击或右键方式打开,dde-file-manager接收到打开文件的请求,于是向 cryudffs请求文件的解密数据(如图11所示的“打开文件url”步骤),cryudffs接收到请求后,从 udffs请求光盘内的原始数据(如图11所示的“读取原始数据”步骤);然后,udffs将加密的原始数据返回给cryudffs(如图11所示的“返回加密的原始数据”步骤)并对其解密(如图11所示的“解密原始数据”步骤);接着,cryudffs将解密后的数据通过dde-file-manager暴露(如图11所示的从cryudffs出发至dde-file-manager的“返回解密数据”步骤),进而dde-file-manager将解密后的数据返回给apps(如图11所示的从dde-file-manager出发至apps的“返回解密数据”步骤)。至此,apps即请求数据的应用程序,得到了解密后的文件数据。
[0099]
根据本发明的另一方面,还提供了一种加密光盘文件处理方法,包括:响应于接收到的加密打包请求,利用如上所述的文件加密方法对待加密文件进行加密;响应于接收到的加密刻录请求,利用如上所述的文件加密刻录方法对待加密文件进行加密刻录;响应于接收到的光盘接入信号,利用如上所述的文件解密方法对接入的加密光盘进行数据解密及读取。这里不再详述。
[0100]
此外,本发明的实施例还提供了一种用于光盘刻录的文件加密装置,包括:获取单元,用于获取第一用户密钥;加密单元,用于针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;以及打包单元,用于对所有加密文件进行打包,得到待刻录的加密数据包,并使得所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。
[0101]
图12示出了该文件加密装置1200的一个示例性结构。如图12所示,文件加密装置1200包括获取单元1210、加密单元1220以及打包单元1230。
[0102]
其中,获取单元1210用于获取第一用户密钥。
[0103]
加密单元1220用于针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件。
[0104]
此外,打包单元1230用于对所有加密文件进行打包,得到待刻录的加密数据包,并使得加密数据包包含对应的光盘文件系统,光盘文件系统的第一预设字段存储有加密标识符,且光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。
[0105]
作为示例,加密单元1220可以通过对文件名加盐,根据第一预定加密算法,计算文件名摘要;所述盐根据第一用户密钥计算获得。
[0106]
作为示例,加密数据包中各加密文件的文件名可以不加密。
[0107]
作为示例,光盘文件系统的第一预设字段例如为光盘文件系统的第一个查询卷描述符关键指针的对应字段;光盘文件系统的一个或多个第二预设字段例如包括:光盘文件
系统的第二个查询卷描述符关键指针和/或第三个查询卷描述符关键指针的对应字段。
[0108]
该文件加密装置能够执行与上文结合图6所描述的文件加密方法相同的处理,并能够达到相类似的功能和技术效果,这里不再赘述。
[0109]
此外,本发明的实施例还提供了一种文件加密刻录装置,包括:如上所述的文件加密装置,用于对待加密文件进行加密,以得到待刻录的加密数据包;以及刻录单元,用于将所述待刻录的加密数据包刻录至接入的光盘中。
[0110]
图13示出了该文件加密刻录装置1300的一个示例性结构。如图13所示,文件加密刻录装置1300包括获取单元1310、加密单元1320、打包单元1330和刻录单元1340。其中,获取单元1310、加密单元1320以及打包单元1330例如可以分别执行与上文中结合图12所描述的文件加密装置1200中的获取单元1210、加密单元1220以及打包单元1230相同的处理,并能够达到相类似的功能和技术效果,这里不再赘述。
[0111]
在文件加密刻录装置1300中,通过获取单元1310、加密单元1320以及打包单元1330,完成对待加密文件的加密,得到待刻录的加密数据包,然后通过刻录单元1340将该待刻录的加密数据包刻录至接入的光盘中。
[0112]
该文件加密刻录装置能够执行与上文结合图7所描述的文件加密刻录方法相同的处理,并能够达到相类似的功能和技术效果,这里不再赘述。
[0113]
此外,本发明的实施例还提供了一种用于加密光盘的文件解密装置,所述加密光盘为采用如上所述的文件加密刻录装置刻录而得,所述文件解密装置包括:第一判断单元,用于响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;第二判断单元,在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥,并判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;解密单元,用于在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。
[0114]
图14示出了该文件解密装置1400的一个示例性结构。如图14所示,文件解密装置1400包括第一判断单元1410、第二判断单元1420以及解密单元1430。
[0115]
第一判断单元1410用于响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于第一预设字段的数据判断该光盘是否为加密光盘。
[0116]
第二判断单元1420,在判断光盘为加密光盘的情况下,提示用户输入第二用户密钥,并判断第二用户密钥与光盘对应的第一用户密钥是否一致,其中,第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得。
[0117]
解密单元1430,用于在判断第二用户密钥与第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算文件读取请求对应的文件名摘要,作为文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。
[0118]
作为示例,文件解密装置通过基于fuse实现的用户态文件系统将解密后的文件内
容呈现给用户;用户态文件系统用于映射所述加密光盘的光盘文件列表,通过内核虚拟文件系统模块转发输入/输出请求;响应于用户的文件读取请求,文件管理器通过url将该文件读取请求对应的文件重定向至所述用户态文件系统,用户态文件系统在获取到该文件读取请求对应的文件的url后,对加密光盘中对应的加密文件解密后转至应用程序以呈现。
[0119]
该文件解密装置能够执行与上文结合图9所描述的文件解密方法相同的处理,并能够达到相类似的功能和技术效果,这里不再赘述。
[0120]
此外,如图15所示,本发明的实施例还提供了一种加密光盘文件处理装置1500,包括如上所述的文件加密刻录装置1300以及如上所述的文件解密装置1400;其中,响应于接收到的加密打包请求,触发所述文件加密刻录装置1300执行操作以完成对待加密文件的加密处理;响应于接收到的加密刻录请求,触发所述文件加密刻录装置1300执行操作以完成对待加密文件的加密刻录处理;响应于接收到的光盘接入信号,触发所述文件解密装置1400执行操作以完成对接入的加密光盘的数据解密及读取处理。
[0121]
该加密光盘文件处理装置能够执行与上文所描述的加密光盘文件处理方法相同的处理,并能够达到相类似的功能和技术效果,这里不再赘述。
[0122]
此外,本发明的实施例还提供了一种计算设备,包括:至少一个处理器和存储有程序指令的存储器;当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如上所述的文件加密方法、如上所述的文件加密刻录方法、如上所述的文件解密方法或如上所述的加密光盘文件处理方法。
[0123]
此外,本发明的实施例还提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的文件加密方法、如上所述的文件加密刻录方法、如上所述的文件解密方法或如上所述的加密光盘文件处理方法。
[0124]
通过以上描述可知,本发明的上述文件加密方法、文件加密刻录方法、文件解密方法、加密光盘文件处理方法、文件加密装置、文件加密刻录装置、文件解密装置以及加密光盘文件处理装置,实现了对linux等操作平台下的光盘数据加密、刻录或解密,通过加密(或刻录)和解密,实现了完整闭环的数据加密解密过程,填补了linux系统中udf光盘文件系统加解密功能的空白。
[0125]
由此,通过完整的光盘内文件加解密方法,可以在诸如国产操作系统uos等基于linux内核操作系统或其他非linux内核操作系统上,实现udf数据光盘内文件的加解密操作,填补了国产操作平台上udf文件系统光盘加解密的空白,提升了使用udf光盘文件系统在uos系统之间进行数据转移的安全性。
[0126]
本发明的上述技术与传统磁盘加密方式相比,即与上文描述的磁盘扇区数据加密(将数据先加密后再写入磁盘)的方式相比,具有较大区别。
[0127]
一方面,磁盘数据加密需要有进程实时监听数据i/o,以实时地将数据加密后再存入硬盘;而本发明实施例中的光盘数据加密,只在刻录前对数据进行处理,并且不引入其他独立进程来参与加密工作,由于不需要实时监听i/o,因此降低了计算机的i/o负担。
[0128]
此外,同样由于磁盘加密需要实时监听数据,对于已修改的数据也需要重新执行加密,在多次的加密过程中无疑存在引入更多加密错误的风险;而本发明实施例的光盘加密仅在刻录前对数据进行一次完整加密,将加密出错的风险降到最低。
[0129]
另一方面,传统磁盘加密(比如windows的bitlocker,macos的filevault以及第三方的truecrypt等),由于磁盘的固定性(计算机内置),通常在驱动层进行设备加密,这将导致加密磁盘与特定硬件强绑定;又或者是对移动硬盘,在硬盘内置一个分区用于存储加解密软件;而对于光盘这类移动存储介质,在驱动层加密的可行性不高,因此,使用软件加密以保证在其他的计算机上,输入正确的密钥后,仍能够顺利读取到介质内信息,并且在光盘上不额外占用空间用于存储解密工具。
[0130]
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
[0131]
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的任一方法。
[0132]
以示例而非限制的方式,可读介质括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
[0133]
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的优选实施方式。
[0134]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0135]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。
[0136]
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0137]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0138]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
[0139]
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
[0140]
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0141]
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。
技术特征:
1.一种用于光盘刻录的文件加密方法,其特征在于,包括:获取第一用户密钥;针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;对所有加密文件进行打包,得到待刻录的加密数据包,其中,所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。2.如权利要求1所述的文件加密方法,其特征在于,在所述根据第一预定加密算法计算文件名摘要的步骤之前,还包括:对文件名加盐;所述盐根据所述第一用户密钥计算获得。3.如权利要求1或2所述的文件加密方法,其特征在于,所述加密数据包中各加密文件的文件名不加密。4.如权利要求1或2所述的文件加密方法,其特征在于:所述光盘文件系统的第一预设字段为光盘文件系统的第一个查询卷描述符关键指针的对应字段;所述光盘文件系统的一个或多个第二预设字段包括:光盘文件系统的第二个查询卷描述符关键指针和/或第三个查询卷描述符关键指针的对应字段。5.一种文件加密刻录方法,其特征在于,包括:利用如权利要求1-4中任一项所述的文件加密方法对待加密文件进行加密,以得到待刻录的加密数据包;以及将所述待刻录的加密数据包刻录至接入的光盘中。6.一种用于加密光盘的文件解密方法,其特征在于,所述加密光盘为采用如权利要求5所述的文件加密刻录方法刻录而得,所述文件解密方法包括:响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥;判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。7.如权利要求6所述的文件解密方法,其特征在于,解密后的文件内容通过基于fuse实现的用户态文件系统呈现给用户;所述用户态文件系统用于映射所述加密光盘的光盘文件列表,通过内核虚拟文件系统模块转发输入/输出请求;响应于用户的文件读取请求,文件管理器通过url将所述文件读取请求对应的文件重定向至所述用户态文件系统,所述用户态文件系统在获取到所述文件
读取请求对应的文件的url后,对所述加密光盘中对应的加密文件解密后转至应用程序以呈现。8.一种加密光盘文件处理方法,其特征在于,包括:响应于接收到的加密打包请求,利用如权利要求1-4中任一项所述的文件加密方法对待加密文件进行加密;响应于接收到的加密刻录请求,利用如权利要求5所述的文件加密刻录方法对待加密文件进行加密刻录;响应于接收到的光盘接入信号,利用如权利要求6或7所述的文件解密方法对接入的加密光盘进行数据解密及读取。9.一种用于光盘刻录的文件加密装置,其特征在于,包括:获取单元,用于获取第一用户密钥;加密单元,用于针对所有待加密文件中的每一个,根据第一预定加密算法计算文件名摘要,作为该待加密文件的公钥,以及利用该待加密文件的公钥、并根据第二预定加密算法,对该待加密文件加密,以获得对应的加密文件;以及打包单元,用于对所有加密文件进行打包,得到待刻录的加密数据包,并使得所述加密数据包包含对应的光盘文件系统,所述光盘文件系统的第一预设字段存储有加密标识符,且所述光盘文件系统的一个或多个第二预设字段存储有所述第一用户密钥。10.一种文件加密刻录装置,其特征在于,包括:如权利要求9所述的文件加密装置,用于对待加密文件进行加密,以得到待刻录的加密数据包;以及刻录单元,用于将所述待刻录的加密数据包刻录至接入的光盘中。11.一种用于加密光盘的文件解密装置,其特征在于,所述加密光盘为采用如权利要求10所述的文件加密刻录装置刻录而得,所述文件解密装置包括:第一判断单元,用于响应于接收到的光盘接入信号,读取接入光盘的光盘文件系统的第一预设字段的数据,基于所述第一预设字段的数据判断该光盘是否为加密光盘;第二判断单元,在判断所述光盘为加密光盘的情况下,提示用户输入第二用户密钥,并判断所述第二用户密钥与所述光盘对应的第一用户密钥是否一致,其中,所述第一用户密钥根据光盘文件系统的一个或多个第二预设字段的数据获得;解密单元,用于在判断所述第二用户密钥与所述第一用户密钥一致的情况下,响应于用户的文件读取请求,根据第一预定加密算法计算所述文件读取请求对应的文件名摘要,作为所述文件读取请求对应的加密文件的公钥,以及根据第二预定加密算法、并利用所述文件读取请求对应的加密文件的公钥,对该加密文件进行解密,以将解密后的文件内容呈现给用户。12.一种加密光盘文件处理装置,其特征在于,包括如权利要求10所述的文件加密刻录装置以及如权利要求11所述的文件解密装置;其中,响应于接收到的加密打包请求,触发所述文件加密刻录装置执行操作以完成对待加密文件的加密处理;响应于接收到的加密刻录请求,触发所述文件加密刻录装置执行操作以完成对待加密文件的加密刻录处理;
响应于接收到的光盘接入信号,触发所述文件解密装置执行操作以完成对接入的加密光盘的数据解密及读取处理。13.一种计算设备,其特征在于,包括:至少一个处理器和存储有程序指令的存储器;当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如权利要求1-4中任一项所述的文件加密方法、如权利要求5所述的文件加密刻录方法、如权利要求6或7所述的文件解密方法或如权利要求8所述的加密光盘文件处理方法。14.一种存储有程序指令的可读存储介质,其特征在于,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-4中任一项所述的文件加密方法、如权利要求5所述的文件加密刻录方法、如权利要求6或7所述的文件解密方法或如权利要求8所述的加密光盘文件处理方法。
技术总结
本发明公开了一种文件加密方法、刻录方法、解密方法、装置与计算设备。文件加密方法包括:获取第一用户密钥,对每个待加密文件,根据第一预定加密算法计算文件名摘要作为公钥,利用该公钥并根据第二预定加密算法对该文件加密,将所有加密文件打包得到待刻录的加密数据包,所述加密数据包包含对应的光盘文件系统,其第一预设字段存储有加密标识符,且一个或多个第二预设字段存储有第一用户密钥。刻录方法将待刻录的加密数据包刻录至光盘,通过所述解密方法将其解密。密方法将其解密。密方法将其解密。
技术研发人员:徐诗筒 张升 郑幼戈
受保护的技术使用者:成都统信软件技术有限公司
技术研发日:2022.02.08
技术公布日:2022/3/8