CN113987557A - 一种文件加密处理方法、系统、电子设备和存储介质 - Google Patents

一种文件加密处理方法、系统、电子设备和存储介质 Download PDF

Info

Publication number
CN113987557A
CN113987557A CN202111594362.4A CN202111594362A CN113987557A CN 113987557 A CN113987557 A CN 113987557A CN 202111594362 A CN202111594362 A CN 202111594362A CN 113987557 A CN113987557 A CN 113987557A
Authority
CN
China
Prior art keywords
data
file
target
symmetric key
target file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111594362.4A
Other languages
English (en)
Inventor
施建龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yici Netlink Hangzhou Technology Co ltd
Original Assignee
Yici Netlink Hangzhou Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yici Netlink Hangzhou Technology Co ltd filed Critical Yici Netlink Hangzhou Technology Co ltd
Priority to CN202111594362.4A priority Critical patent/CN113987557A/zh
Publication of CN113987557A publication Critical patent/CN113987557A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种文件加密处理方法,其中,该方法包括:根据目标文件的类型确定对称密钥,以对称密钥将应用端传入的分片数据加密并写入目标文件,其中,目标文件在磁盘中以分片形式存储;接收应用端发送的检索信息,根据检索信息在磁盘中读取目标分片数据,其中,检索信息是明文形式且包含目标文件中的关键词;依据对称密钥解密目标分片数据得到明文数据,返回明文数据至应用端。通过本申请,由于应用侧不感知加密及解密流程,其并不需要执行运算量庞大的解密步骤,因此可以提升检索效率,为其他高速响应业务提供有效支持。

Description

一种文件加密处理方法、系统、电子设备和存储介质
技术领域
本申请涉及安全存储技术领域,特别是涉及一种文件加密处理方法、系统、电子设备和存储介质。
背景技术
现有加密存储方式,用于检索的元数据和初始数据都由应用层进行加密及解密。应用层在检索数据时,需要先将整个文件解密得到明文数据,之后在明文数据中进行检索。但是,由于应用层解密整个文件所需的时间过长,会严重影响到搜索效率,因此,无法满足响应速度要求较高的数据分析(如人工智能)业务。
图1是现有技术中文件加密处理方法的交互流程示意图,如图1所示,各个文件以对称密钥加密并保存在磁盘中。当应用层需要在文件中检索时,如检索关键词“天空”,首先需要从磁盘获取整个文件,再通过该对称密钥将整个文件解密之后方可进行检索。因此,导致了一个问题:由于需要解密整个文件才能进行检索,对于一些响应速度较高的数据分析业务(如人工智能),现有技术的方式将严重影响其搜索效率。
目前,针对现有加密存储方法检索速度较差的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种文件加密处理方法、系统电子设备和存储介质,以至少解决相关技术中加密存储方法检索速度较差的问题。
第一方面,本申请实施例提供了一种文件加密处理方法,基于操作系统内核实现,所述方法包括:
根据目标文件的类型确定对称密钥,以所述对称密钥将应用端传入的分片数据加密并写入目标文件,其中,所述目标文件在磁盘中以分片形式存储;
接收所述应用端发送的检索信息,根据所述检索信息在磁盘中读取目标分片数据,其中,所述检索信息是明文形式且包含所述目标文件中的关键词;
依据所述对称密钥,解密所述目标分片数据得到目标明文数据,并返回所述目标明文数据至所述应用端。
通过上述实施例,在应用端不感知的情况下实现了数据的落盘加密,另外,应用端可以在不感知的情况下在落盘数据中进行检索。相比较于现有技术需要在应用层解密全部文件之后进行检索的方法,本申请技术方案能够节省算力且响应速度更快。
在其中一些实施例中,所述根据所述检索信息在磁盘中读取目标分片数据包括:
获取所述检索信息中的明文数据;
以所述对称密钥加密所述明文数据得到检索密文数据,将所述检索密文数据在所述目标文件的所有密文数据中进行匹配,确定起始位置和长度范围;
根据所述起始位置和所述长度范围读取所述目标分片数据。
通过上述实施例,应用端可以直接以明文的形式进行检索,由操作系统内核负责具体的数据读取流程,检索时无需应用层处理任何加密及解密流程,从而进一步的提升了数据存储安全性。
在其中一些实施例中,所述根据目标文件的类型确定对称密钥包括:
通过系统内核识别所述目标文件的文件类型,并创建用于保存密钥的结构体;
在所述目标文件是空文件的情况下,随机生成所述对称密钥,并保存在所述结构体中;
在所述目标文件是非空文件的情况下,从所述目标文件头部获取预设长度的目标字节数据,并通过用户密钥解密所述目标字节数据得到所述对称密钥,并保存在所述结构体中,其中,所述用户密钥是所述预设在系统内核的密钥。
通过上述实施例,用于加密及解密的对称密钥被封装在操作系统内核中,由操作系统内核处理具体检索流程,对于应用端来说,其并不感知对称密钥的存在,因此可以解决相关技术中难以妥善保存密钥的问题。
在其中一些实施例中,通过所述目标文件头部的预设标识符确定所述预设长度,并获取所述预设长度的目标字节数据。
在其中一些实施例中,在所述目标文件是空文件的情况下,将应用端传入的数据加密并写入目标文件包括:
获取所述用户密钥,以所述用户密钥加密所述对称密钥得到头部字节数据;
获取所述应用端传入的分片数据,并以所述对称密钥加密所述分片数据;
通过将所述分片数据加密的结果添加在所述头部字节数据之后,将传入的数据写入所述目标文件。
通过上述实施例,针对于空文件,通过将对称密钥的加密结果添加在写入文件的头部,可以实现文件的起始位置偏移。
在其中一些实施例中,在所述目标文件是非空文件的情况下,将应用端传入的分片数据加密并写入目标文件包括:
在写入分片数据之前,执行预处理流程获取所述目标文件的尾部明文数据;
接收所述应用端传入的分片数据,将其拼接在所述尾部明文数据的后面,并获取所述拼接之后分片数据的字节长度;
判断所述字节长度是否满足分块加密要求,若是,通过所述对称密钥将所述分片数据加密并写入所述目标文件,若否,
获取满足分块加密要求的分块数据,通过所述对称密钥将所述分块数据加密并写入所述目标文件,以及,获取不满足分块加密要求的剩余数据,填充所述剩余数据之后,通过所述对称密钥将其加密并写入所述目标文件。
通过上述实施例,针对于非空文件,可以采用上述方式实现已写入数据与待写入数据的准确连接,并保证应用端传入的数据的完全写入。
在其中一些实施例中,所述预处理流程包括:
在所述目标文件尾部的第一预设范围获取第一字节数据,并以所述对称密钥解密所述第一字节数据;
基于所述第一字节数据的解密结果,进行冗余剔除之后得到所述尾部明文数据。
通过上述实施例,能够在写入数据之前,获取用于目标文件的尾部明文数据,为后续的新写入数据与当前数据的准确连接提供必要支持。
在其中一些实施例中,在加密算法是AES算法的情况下,所述依据所述对称密钥解密所述分片数据得到明文数据包括:
获取所述检索信息对应的目标检索字节和关联向量;
基于所述关联向量,以所述对称密钥解密所述目标分片数据,得到分片明文数据;
在所述分片明文数据中,获取所述目标检索字节对应的数据,得到所述明文数据。
通过上述实施例,对于特定加密算法AES算法,针对性提供了解密目标分片数据的方法,从而在采用AES算法实现本申请技术方案时,也能够保证分片数据的有效解密。
在其中一些实施例中,对文件位置函数添加对称密钥长度处理,以适配写入数据添加在所述头部字节数据之后导致的文件位置偏移。
第二方面,本申请实施例提供了一种文件加密处理系统,基于操作系统内核实现,所述系统包括:文件打开模块、写入模块、读取模块和解密模块,其中;
所述文件打开模块用于根据目标文件的类型确定对称密钥;
所述写入模块用于以所述对称密钥将应用端传入的分片数据加密并写入目标文件,其中,所述目标文件在磁盘中以分片形式存储;
所述读取模块用于接收所述应用端发送的检索信息,根据所述检索信息在磁盘中读取目标分片数据,其中,所述检索信息是明文形式且包含所述目标文件中的关键词;
所述解密模块用于依据所述对称密钥,解密所述目标分片数据得到目标明文数据,并返回所述目标明文数据至所述应用端。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种文件加密处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种文件加密处理方法。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是现有技术中文件加密处理方法的交互流程示意图;
图2是根据本申请实施例的文件加密处理方法的应用环境示意图;
图3是根据本申请实施例的一种文件加密处理方法的流程图;
图4是根据本申请实施例的一种根据检索信息读取目标分片数据的流程图;
图5是根据本申请实施例的一种基于AES算法读取数据的示意图;
图6是根据本申请实施例的一种文件加密处理系统的结构框图;
图7是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
本申请提供的文件加密处理方法可以应用在可信通信场景下,其中,应用端可以是安装在移动设备或PC设备上的APP,系统内核可以是位于可信通信场景定制的个人私有云硬件设备,也可以位于常规计算机设备上,本申请中对此不作具体限定。
图2是根据本申请实施例的文件加密处理方法的应用环境示意图,如图2所示,应用端20发送检索信息至系统内核21,系统内核21解密该检索信息并将解密结果在文件中进行匹配。进一步的,读取匹配的结果并经解密之后,将解密的明文数据返回至应用端20。本实施例中,应用端20通过调用接口及发送明文检索信息即可实现检索,具体的加密/解密流程其并不参与。对于应用端20来说,其并不感知加密/解密流程,因此节省了算力的同时也提升了安全性。
图3是根据本申请实施例的一种文件加密处理方法的流程图,如图3所示,该流程包括如下步骤:
S301,根据目标文件的类型确定对称密钥,以对称密钥将应用端传入的分片数据加密并写入目标文件,其中,目标文件在磁盘中以分片形式存储;
应用端向目标文件写入数据时,会判断文件的大小以确定目标文件的类型。其中,目标文件的类型可以是新建文件和现有文件,而现有文件又包括现有空文件和现有非空文件,由于新建文件和现有空文件中都未缓存数据,本申请中对新建文件和现有空文件,采用相同方式确定对称密钥;而对于现有非空文件,由于其中已按照预设规则保存部分数据,因此可以根据预设规则,反向解密部分数据得到对称密钥。
进一步的,得到对称密钥之后,应用端即可传入分片数据,其通过调用系统内核的虚拟文件系统,将该分片数据进行加密并按照预设规则写入目标文件。需要说明的是,应用层传入的数据同样采用分片上传的形式,由于本申请的核心发明点在于应用侧无感知情况下实现高效检索,至于前期如何将原文件进行分片,其对本申请核心发明点并无影响,因此,在本实施例中不再赘述。
需要说明的是,当打开一个目标文件时,内核会生成一个专门用于加密解密目标文件所需的第一结构体,同时会将对称密钥保存在与该第一结构体存在映射关系的第二结构体中。
S302,接收应用端发送的检索信息,根据检索信息在磁盘中读取目标分片数据,其中,检索信息是明文形式且包含目标文件中的关键词;
用户在检索时发送明文形式的检索信息,系统内核通过上述对称密钥加密该检索信息得到检索密文数据,进一步的,将该检索密文数据放入目标文件中进行匹配,以获取用户需要读取的起始位置和文件大小情况。
需要说明的是,目标文件采用分片存储是实现本申请方案的前置条件。若采用全文加密存储,即使一篇明文文章中的相同关键词,其在不同位置的加密结果也是不一样的,因此将很难做到匹配检索。而本申请中,将整个文件拆分为多个很小的分片数据,在检索时即可通过将关键词与各分片数据进行匹配,以确定用户要读取数据所在的目标分片。
S303,依据对称密钥,解密目标分片数据得到目标明文数据,并返回目标明文数据至应用端。
经步骤S302在磁盘中读取到目标分片数据之后,由于落盘的分片数据同样采用上述对称密钥进行加密。因此,可以用相同的对称密钥解密该目标分片数据,得到用于返回至应用层的明文数据。例如,在用户检索信息的关键词是“天空”时,返回至用户端的明文数据可以是:文本“蔚蓝色的天空”、“天空上的风筝”等。
通过上述步骤S301至S303,相比较于相关技术中需要在应用侧进行解密的检索方法,本申请实施例通过将加密、匹配和解密流程封装在系统层,由系统内核处理上述流程。对于应用侧来说,其只需调用内核的接口发送检索信息即可实现检索。由于应用侧不感知加密及解密流程,其并不需要执行运算量庞大的解密步骤,因此可以提升检索效率,为其他高速响应业务提供有效支持。
在其中一些实施例中,图4是根据本申请实施例的一种根据检索信息读取目标分片数据的流程图,如图4所示,该流程包括如下步骤:
S401,获取检索信息中的明文数据;该文明数据可以是关键词,其次,检索信息中应包括其序列号,以及指定需要检索的目标文件等。
S402,以对称密钥加密明文数据得到检索密文数据,将检索密文数据在目标文件的所有密文数据中进行匹配,确定起始位置和长度范围;
S403,根据起始位置和长度范围读取目标分片数据。
例如,用户发送检索信息为关键词“天空”,此后,内核采用对称密钥将关键词“天空”加密得到加密字符“ahjafhlk”。进一步的,将该加密字符“ahjafhlk”放入目标文件中进行匹配,由于目标文件中的数据采用相同的加密方式且以分片的形式存储,因此,在分片大小设计合理的情况下,可以通过在文件中搜索与“ahjafhlk”相同的加密字符,实现用户检索信息的快速匹配,进一步的,再确定匹配结果所在的目标分片数据,该目标分片数据即包括用户需要读取的字节数据。需要说明的是,在分片大小与检索密文大小差距较大且采用偏移加密算法实现的情况下,需对分片数据进行偏移加密处理,方可使用检索密文进行准确匹配。
在其中一些实施例中,根据目标文件的类型确定对称密钥包括:通过系统内核识别目标文件的文件类型,并创建用于保存密钥的结构体;在目标文件是空文件的情况下,随机生成对称密钥并保存在第二结构体中;
在目标文件是非空文件的情况下,从目标文件头部获取预设长度的目标字节数据,并通过用户密钥解密目标字节数据得到对称密钥,并保存在第二结构体中,其中,用户密钥是通过其他逻辑预设在系统内核中的密钥。
需要说明的是,现有应用层加密方法普遍存在无法有效保存密钥的问题。对于一个加密文件来说,得到密钥即可获取其全部信息,若密钥不安全即整个文件不安全,因此,可以说加密的核心在于如何保存密钥。
相关技术中,如果由应用层解密,则应用层就必须知道用于解密的对称密钥,随之而来的,对称密钥又应该如何保存才能确保数据安全。现有方法通常采用一些隐藏处理或者再次加密的方式保存该对称密钥,但是这样实质上还是不能保证密钥安全的。
本申请中,对称密钥的保存以及加密和解密流程都封装在系统层,应用端在检索时,其并不感知对称密钥的存在,也无需其执行任何涉及到密钥的处理流程。因此,通过上述实施例,可以解决相关技术中难以妥善保存对称密钥的问题,进一步的提升了文件安全性。
需要说明的是,上述对称密钥针对不同文件类型将有不同的生成形式,在目标文件是空文件时,由于其并未包含任何数据,因此,可以通过一些常见的算法随机生成满足强度需求的对称密钥。而对于非空文件,由于其已经按照预设格式写入了一部分数据,因此,可以根据已写入的数据,通过反向工程获取该对称密钥。
进一步的,可以通过设定特定标识符的方式确定上述预设长度,也可以通过设置固定值的方式确定预设长度。
在其中一些实施例中,在目标文件是空文件的情况下,将应用端传入的数据加密并写入目标文件包括:
获取用户密钥,以用户密钥加密对称密钥得到头部字节数据;
获取应用端传入的分片数据,并以对称密钥加密分片数据;
通过将分片数据加密的结果添加在头部字节数据之后,将传入的数据写入目标文件。
需要说明的是,本实施例中将应用端传入的数据加密之后添加在上述头部字节数据之后,该头部字节数据即为系统内核自动添加的用于加密、解密的格式字节。对于应用层来说,并不感知这个过程,其写入的数据以去掉头部字节数据的位置作为正式起始位置。
在其中一些实施例中,在目标文件是非空文件的情况下,将应用端传入的分片数据加密并写入目标文件包括:
在写入分片数据之前,执行预处理流程获取目标文件的尾部明文数据;其中,预处理流程包括:在目标文件尾部的第一预设范围获取第一字节数据,并以对称密钥解密第一字节数据;基于第一字节数据的解密结果,进行执行冗余剔除之后获取尾部明文数据。
需要说明的是,本实施例中的冗余剔除步骤的目的是:基于一定预设算法规则,将新写入数据字节与已写入数据字节准确且无遗漏的拼接起来,保证写入数据的完整性。具体怎样设置预设规则以及怎样剔除冗余,本领域技术人员可以结合具体算法和业务情况灵活设置。执行冗余剔除可以将已写入数据中的添加的,用于加密算法实现的格式字符删除,例如,剔除用于满足分块加密要求的末尾填充数据,或者剔除用于避免误删字节所添加的多个0字节。
进一步的,接收应用端传入的分片数据,将其拼接在尾部明文数据的后面,并获取拼接之后分片数据的字节长度;
判断字节长度是否满足分块加密要求,若是,通过对称密钥将分片数据加密并写入目标文件,若否,获取满足分块加密要求的分块数据,通过对称密钥将分块数据加密并写入目标文件,以及,获取不满足分块加密要求的剩余数据,填充剩余数据之后,通过对称密钥将其加密并写入目标文件。
需要说明的是,对称加密一般是块加密,明文长度必须是满足块长度的整数倍才能全部加密。上述处理流程的目的在于满足块加密的要求,并实现传入数据的完整加密写入。
在其中一些实施例中,本申请技术方案在采用AES算法实现的情况下,在解密目标分片数据时,还应获取该分片数据的关联向量(IV向量);
进一步的,在解密目标分片数据时,需要获取检索信息对应的目标检索字节,之后再基于关联向量,以对称密钥解密目标分片数据,得到分片明文数据。最后,在分片明文数据中,获取目标检索字节对应的字节数据,得到用于返回至应用端的明文数据。
具体的,本申请技术方案可以基于AES算法的CBC模式实现,其中,一个具体实现步骤如下:
步骤一:打开文件
应用层通过系统调用open函数打开一个文件时(同时生成一个保存加密解密数据所需的结构体),判断该文件打开的行为,如果是新创建的文件或现有空文件,则由系统随机产生一个满足强度的对称密钥A,并保存与在上述结构体存在映射关系的结构体中;如果是已存在非空文件,则自动读取文件头部若干字节,并通过其他方式创建在内核中的已知用户密钥a,解密该部分数据得到对称密钥A,并采用上述方式保存;
步骤二:写入文件
空文件写入:应用层通过文件write函数向文件写入数据时,判断文件大小:如果文件大小为0,则说明为空文件,此时首先将上述对称密钥A通过用户密钥a加密后得到的数据写入文件的头部,然后将应用层传入的数据进行加密写入文件。
非空文件写入:AES算法要求的加密块大小为16字节,明文长度必须是16的整数倍才能全部加密。如果本次写入文件不是空文件且为第一次写入时,由于目标文件中已经按照预设格式要求写入一部分加密数据,要将已写入数据与待写入数据准确拼接,需要先进行如下步骤:读取文件最后32字节,并以倒数第32-16字节为IV数据、对称密钥A为密钥,解密最后16字节得到已写入的数据的尾部字节。进一步的,采用PKCS7填充算法剔除该尾部字节中的填充字节,并将文件长度减小16字节之后得到实际的尾部明文数据,之后将该尾部明文数据放入到上述对称密钥A所在的结构体中,同时将倒数32-16字节的IV数据存储上述结构体中的IV向量中。
相应的,传入用户数据后,先要判断上述对称密钥A所在的结构体中是否存在尾部明文数据,存在则需要将该尾部明文数据拼接到传入字节的开头,然后传输字节长度也相应的增加该尾部明文数据的字节长度,得到处理后的长度值。进一步的,用该长度值先除以块长度,如果不存在余数,则直接加密该部分的数据,其中,加密时需要基于上述IV向量;如果存在余数,则加密该部分数据中满足块长度倍数的部分数据,同时把末尾的余数部分字节放入上述对称密钥A所在的结构体中;
需要说明的是,每次进行write时需要保存最后的加密结果,即上述加密数据的最后16字节长度到上述对称密钥A所在的结构体中的IV向量,用于下一次加密写入。
步骤三:读取数据
应用层通过文件read函数向文件读取数据时,根据用户密文检索信息在目标文件的所有分片数据中进行匹配,判断用户需要读取的起始位置和文件大小情况,进而分析实际读取的数据内容:
图5是根据本申请实施例的一种基于AES算法读取数据的示意图,如图5所示,当用户需要读取第63-497字节的数据时,由于起始位置63除以16存在余数15,第63字节属于第4块,即需要解密全部的第四块数据才能拿到第63个字节的数据,所以读取数据从48字节开始。进一步的,由于采用AES算法的特性,相应的还需获取第三块数据作为IV向量,还需在第48字节之前再读取16字节,如图5中黑色部分。
相应的读取的文件起始位置加上文件大小即读取文件的长度,如图5所示,读取的字节结尾为第497字节,但是497除以16有余数1,则要读取第497个字节,就必须解密第497-512字节的数据,因此要读取至第512字节。
通过上述方式要获取第63-497字节的数据,需要先行读取第32-512字节的数据,并以第32-48字节的数据为IV向量,以对称密钥A为密钥,解密第48-512字节的数据得到明文数据,此后,在其中选择第63-497字节的明文数据返回给应用层;
步骤四:关闭文件
当上述读取和写入数据完成后,应用层调用close函数关闭文件,为保证文件完整性,还需要进行判断:
由于应用端在调用write函数时,可能写入的字节数不足16字节,因此在步骤2中,write函数会把余数部分放入对称密钥A所在的结构体中。在关闭时,会判断上述结构体是否有遗留待加密数据,如果有,则将该部分数据取出并通过PKCS7进行填充,之后再进行加密后并写入文件后才能关闭文件;如果结构体中不存在待加密数据,由于AES算法的特性,为避免删除有效数据,需要通过PKCS7填充16个0x16的字节,并取出IV向量和对称密钥A之后进行加密才能关闭文件。
需要说明的是,关闭文件时需要释放因为额外的加密解密而申请的映射结构体。另外,由于文件操作函数涉及很多文件位置的处理,必须针对这些文件位置函数加入前面的文件头加密密钥长度的处理,以适配写入数据添加在头部字节数据之后导致的文件位置偏移,保持用户侧不感知文件开头位置的不一致。
本实施例还提供了一种文件加密处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的一种文件加密处理系统的结构框图,该系统基于操作系统内核实现,包括:文件打开模块60、写入模块61、读取模块62和解密模块63,其中;
文件打开模块60用于根据目标文件的类型确定对称密钥;
写入模块61用于以对称密钥将应用端传入的分片数据加密并写入目标文件,其中,目标文件在磁盘中以分片形式存储;
读取模块62用于接收应用端发送的检索信息,根据检索信息在磁盘中读取目标分片数据,其中,检索信息是明文形式且包含目标文件中的关键词;
解密模块63用于依据对称密钥,解密目标分片数据得到目标明文数据,并返回目标明文数据至应用端。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件加密处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图7是根据本申请实施例的电子设备的内部结构示意图,如图7所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图7所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种文件加密处理方法,数据库用于存储数据。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

Claims (12)

1.一种文件加密处理方法,其特征在于,基于操作系统内核实现,所述方法包括:
根据目标文件的类型确定对称密钥,以所述对称密钥将应用端传入的分片数据加密并写入目标文件,其中,所述目标文件在磁盘中以分片形式存储;
接收所述应用端发送的检索信息,根据所述检索信息在磁盘中读取目标分片数据,其中,所述检索信息是明文形式且包含所述目标文件中的关键词;
依据所述对称密钥,解密所述目标分片数据得到目标明文数据,并返回所述目标明文数据至所述应用端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述检索信息在磁盘中读取目标分片数据包括:
获取所述检索信息中的明文数据;
以所述对称密钥加密所述明文数据得到检索密文数据,将所述检索密文数据在所述目标文件的所有密文数据中进行匹配,确定起始位置和长度范围;
根据所述起始位置和所述长度范围读取所述目标分片数据。
3.根据权利要求1所述的方法,其特征在于,所述根据目标文件的类型确定对称密钥包括:
通过系统内核识别所述目标文件的文件类型,并创建用于保存所述对称密钥的结构体;
在所述目标文件是空文件的情况下,随机生成所述对称密钥并保存在所述结构体中;
在所述目标文件是非空文件的情况下,从所述目标文件头部获取预设长度的目标字节数据,并通过用户密钥解密所述目标字节数据得到所述对称密钥,并保存在所述结构体中,其中,所述用户密钥是预设在系统内核的密钥。
4.根据权利要求3所述的方法,其特征在于,通过所述目标文件头部的预设标识符确定所述预设长度,获取所述预设长度的目标字节数据。
5.根据权利要求3所述的方法,其特征在于,在所述目标文件是空文件的情况下,将应用端传入的数据加密并写入目标文件包括:
获取所述用户密钥,以所述用户密钥加密所述对称密钥得到头部字节数据;
获取所述应用端传入的分片数据,并以所述对称密钥加密所述分片数据;
通过将所述分片数据加密的结果添加在所述头部字节数据之后,将传入的数据写入所述目标文件。
6.根据权利要求3所述的方法,其特征在于,在所述目标文件是非空文件的情况下,将应用端传入的分片数据加密并写入目标文件包括:
在写入分片数据之前,执行预处理流程获取所述目标文件的尾部明文数据;
接收所述应用端传入的分片数据,将其拼接在所述尾部明文数据的后面,并获取所述拼接之后分片数据的字节长度;
判断所述字节长度是否满足分块加密要求,若是,通过所述对称密钥将所述分片数据加密并写入所述目标文件,若否,
获取满足分块加密要求的分块数据,通过所述对称密钥将所述分块数据加密并写入所述目标文件,以及,获取不满足分块加密要求的剩余数据,填充所述剩余数据之后,通过所述对称密钥将其加密并写入所述目标文件。
7.根据权利要求6所述的方法,其特征在于,所述预处理流程包括:
在所述目标文件尾部的第一预设范围获取第一字节数据,并以所述对称密钥解密所述第一字节数据;
基于所述第一字节数据的解密结果,进行冗余剔除之后得到所述尾部明文数据。
8.根据权利要求5至7中任意一项所述的方法,其特征在于,在采用AES加密算法的情况下,依据所述对称密钥解密所述目标分片数据得到目标明文数据包括:
获取所述检索信息对应的目标检索字节,以及获取所述目标分片数据对应的关联向量;
基于所述关联向量,以所述对称密钥解密所述目标分片数据,得到分片明文数据;
在所述分片明文数据中,获取所述目标检索字节对应的字节数据,得到所述目标明文数据。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:对文件位置函数添加对称密钥长度处理,以适配写入数据添加在所述头部字节数据之后导致的文件位置偏移。
10.一种文件加密处理系统,其特征在于,基于操作系统内核实现,所述系统包括:文件打开模块、写入模块、读取模块和解密模块,其中;
所述文件打开模块用于根据目标文件的类型确定对称密钥;
所述写入模块用于以所述对称密钥将应用端传入的分片数据加密并写入目标文件,其中,所述目标文件在磁盘中以分片形式存储;
所述读取模块用于接收所述应用端发送的检索信息,根据所述检索信息在磁盘中读取目标分片数据,其中,所述检索信息是明文形式且包含所述目标文件中的关键词;
所述解密模块用于依据所述对称密钥,解密所述目标分片数据得到目标明文数据,并返回所述目标明文数据至所述应用端。
11.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9中任一项所述的一种文件加密处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至9中任一项所述的一种文件加密处理方法。
CN202111594362.4A 2021-12-24 2021-12-24 一种文件加密处理方法、系统、电子设备和存储介质 Pending CN113987557A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111594362.4A CN113987557A (zh) 2021-12-24 2021-12-24 一种文件加密处理方法、系统、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111594362.4A CN113987557A (zh) 2021-12-24 2021-12-24 一种文件加密处理方法、系统、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113987557A true CN113987557A (zh) 2022-01-28

Family

ID=79734215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111594362.4A Pending CN113987557A (zh) 2021-12-24 2021-12-24 一种文件加密处理方法、系统、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113987557A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629644A (zh) * 2022-03-29 2022-06-14 贝壳找房网(北京)信息技术有限公司 数据加密方法、存储介质、计算机程序产品和电子设备
CN114943091A (zh) * 2022-07-27 2022-08-26 成都中科合迅科技有限公司 基于linux内核块设备加密功能的Elasticsearch加密搜索方法
CN115580474A (zh) * 2022-10-17 2023-01-06 南京网藤科技有限公司 一种密钥跟随的文件加密的方法及装置
CN116896444A (zh) * 2023-09-11 2023-10-17 武汉吧哒科技股份有限公司 文件包管理方法和装置
CN118093555A (zh) * 2024-04-28 2024-05-28 深圳昂楷科技有限公司 数据库管理方法、系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019592A2 (en) * 2000-08-26 2002-03-07 Park Tae Kyou Method of automatically encrypting and decrypting file in kernel mode, method of moving file pointer using the same, and computer readable recording medium on which programs of above methods are recorded
CN103049466A (zh) * 2012-05-14 2013-04-17 深圳市朗科科技股份有限公司 一种基于分布式密文存储的全文检索方法及系统
US20160344707A1 (en) * 2015-05-21 2016-11-24 Nili Philipp Encrypted query-based access to data
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN110347723A (zh) * 2019-07-12 2019-10-18 税友软件集团股份有限公司 一种数据查询方法、系统及电子设备和存储介质
CN110650191A (zh) * 2019-09-20 2020-01-03 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据读写方法
CN113221171A (zh) * 2021-05-21 2021-08-06 杭州弗兰科信息安全科技有限公司 一种加密文件读写方法、装置、电子设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019592A2 (en) * 2000-08-26 2002-03-07 Park Tae Kyou Method of automatically encrypting and decrypting file in kernel mode, method of moving file pointer using the same, and computer readable recording medium on which programs of above methods are recorded
CN103049466A (zh) * 2012-05-14 2013-04-17 深圳市朗科科技股份有限公司 一种基于分布式密文存储的全文检索方法及系统
US20160344707A1 (en) * 2015-05-21 2016-11-24 Nili Philipp Encrypted query-based access to data
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN110347723A (zh) * 2019-07-12 2019-10-18 税友软件集团股份有限公司 一种数据查询方法、系统及电子设备和存储介质
CN110650191A (zh) * 2019-09-20 2020-01-03 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据读写方法
CN113221171A (zh) * 2021-05-21 2021-08-06 杭州弗兰科信息安全科技有限公司 一种加密文件读写方法、装置、电子设备和存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629644A (zh) * 2022-03-29 2022-06-14 贝壳找房网(北京)信息技术有限公司 数据加密方法、存储介质、计算机程序产品和电子设备
CN114943091A (zh) * 2022-07-27 2022-08-26 成都中科合迅科技有限公司 基于linux内核块设备加密功能的Elasticsearch加密搜索方法
CN114943091B (zh) * 2022-07-27 2022-10-11 成都中科合迅科技有限公司 基于linux内核块设备加密功能的Elasticsearch加密搜索方法
CN115580474A (zh) * 2022-10-17 2023-01-06 南京网藤科技有限公司 一种密钥跟随的文件加密的方法及装置
CN115580474B (zh) * 2022-10-17 2023-10-31 南京网藤科技有限公司 一种密钥跟随的文件加密的方法及装置
CN116896444A (zh) * 2023-09-11 2023-10-17 武汉吧哒科技股份有限公司 文件包管理方法和装置
CN116896444B (zh) * 2023-09-11 2023-12-15 武汉吧哒科技股份有限公司 文件包管理方法和装置
CN118093555A (zh) * 2024-04-28 2024-05-28 深圳昂楷科技有限公司 数据库管理方法、系统及存储介质
CN118093555B (zh) * 2024-04-28 2024-08-27 深圳昂楷科技有限公司 数据库管理方法、系统及存储介质

Similar Documents

Publication Publication Date Title
CN113987557A (zh) 一种文件加密处理方法、系统、电子设备和存储介质
CN111709038B (zh) 文件加密解密方法、分布式存储系统、设备及存储介质
CN103294961A (zh) 一种文件加/解密方法以及文件加/解密装置
CN110289946B (zh) 一种区块链钱包本地化文件的生成方法及区块链节点设备
CN111897786B (zh) 日志读取方法、装置、计算机设备和存储介质
CN106682521B (zh) 基于驱动层的文件透明加解密系统及方法
US20240061790A1 (en) Locally-stored remote block data integrity
CN112434326B (zh) 一种基于数据流的可信计算方法及装置
CN112131595B (zh) 一种SQLite数据库文件安全存取方法及装置
CN111159757A (zh) 文件加密方法、解密方法及相应装置
CN108134673A (zh) 一种生成白盒库文件的方法及装置
CN108111622A (zh) 一种下载白盒库文件的方法、装置及系统
CN110650191A (zh) 一种分布式存储系统的数据读写方法
CN112088376A (zh) 一种文件存储方法、装置及存储介质
CN110113151B (zh) 一种对elf格式程序的非侵入式实时加解密方法
CN108064382A (zh) 一种基于Ukey的软件解密的方法及终端
CN114036003A (zh) 一种基于硬件密码设备的大文件备份与恢复安全方法
CN103516722B (zh) 一种用户级文件自动加解密方法及装置
CN111143879A (zh) 一种Android平台SD卡文件保护方法、终端设备及存储介质
CN111931222B (zh) 应用数据加密方法、装置、终端及存储介质
CN111512308A (zh) 一种存储控制器、文件处理方法、装置及系统
CN113806785A (zh) 一种用于对电子文档进行安全保护的方法及其系统
CN113672955A (zh) 一种数据处理方法、系统及装置
CN113360859B (zh) 基于Python解释器的加密文件安全控制方法和装置
CN110232261A (zh) 包文件的操作方法、文件处理设备及具有存储功能的设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20220128

RJ01 Rejection of invention patent application after publication