CN114398656A - 文件加密、文件解密方法、装置、计算机设备和存储介质 - Google Patents
文件加密、文件解密方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114398656A CN114398656A CN202210064908.3A CN202210064908A CN114398656A CN 114398656 A CN114398656 A CN 114398656A CN 202210064908 A CN202210064908 A CN 202210064908A CN 114398656 A CN114398656 A CN 114398656A
- Authority
- CN
- China
- Prior art keywords
- file
- plaintext
- ciphertext
- data
- target
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims description 39
- 239000012634 fragment Substances 0.000 description 34
- 230000008569 process Effects 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000013506 data mapping Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File 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为一个实施例中文件加密方法的应用环境图;
图2为一个实施例中文件加密方法的流程示意图;
图3为一个实施例中生成用于加密的文件密钥的流程示意图;
图4为一个实施例中生成密文文件块偏移量的流程示意图;
图5为一个实施例中文件解密的流程示意图;
图6为一个实施例中用于解密的文件密钥的流程示意图;
图7为一个实施例中获取输入的目标偏移量的流程示意图;
图8为一个实施例中进行数据存储的流程示意图;
图9为一个实施例中对密文文件进行解密的流程示意图;
图10为一个实施例中生成文件密钥的示意图;
图11为一个实施例中明文数据单元加密的示意图;
图12为一个实施例中反序变换的示意图;
图13为一个实施例中文件加密装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的文件加密、文件解密方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102获取与待加密的明文文件相匹配的文件密钥;文件密钥用于对目标数据长度的数据单元进行加密;按照目标数据长度,将明文文件分组,得到明文数据单元序列;获取对明文数据单元序列划分得到的明文文件块,每个明文文件块包括多个在明文数据单元序列中相邻的明文数据单元;基于文件密钥,将每个明文文件块中的每个明文数据单元加密为对应的密文数据单元,得到与每个明文文件块分别对应的密文文件块。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种文件加密方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,获取与待加密的明文文件相匹配的文件密钥;文件密钥用于对目标数据长度的数据单元进行加密。
明文文件,其文件内容是由多比特的数据组成的,对这些数据进行加密时,需要将这些数据需要按照相应的数据长度进行分组后,对各组的数据进行加密,才可以得到相应的密文文件。
明文文件存在对应的文件属性,文件属性可以包括该文件的文件类型、文件所属账号、文件所对应的文件标识等一种或多种属性,其中,文件标识可以是文件的ID值、具体名称或者存储路径等信息。
可选地,获取与待加密的明文文件相匹配的文件密钥这一过程,可以是将文件属性与文件密钥属性进行匹配的过程;其中,文件密钥属性可以是文件密钥的密钥类型、密钥所属账号、密钥标识等一种或多种属性,其中,密钥标识可以是密钥的ID值或具体名称等信息。例如:可以基于文件标识与文件密钥标识之间的对应关系,确定与待加密的明文文件相匹配的文件密钥;可以基于文件所属账号与文件密钥所属账号之间的对应关系,确定与待加密的明文文件相匹配的文件密钥。
可选地,对于获取与待加密的明文文件相匹配的文件密钥这一过程,其也可以基于明文文件的某一个或某一些文件属性来进行一次或多次映射,以生成文件密钥的过程。例如:可以将文件标识与文件所属账号的账号数据的某些信息进行组合,并基于组合后的信息进行一次映射,基于第一次映射的映射结果进行第二次或多次映射,以生成与明文文件相匹配的文件密钥。可以理解,直接基于明文文件的文件属性生成文件密钥进行映射,无需用户多次某些信息,且可以实现用户安全。此外,不使用固定的文件密钥,文件密钥是难以被获取到的,可以在一定程度上保障文件的安全性。
步骤204,按照目标数据长度,将明文文件分组,得到明文数据单元序列。
目标数据长度,其是文件密钥能够加密的数据单元所对应的数据量,目标数据长度可以是取决于文件密钥的长度,也可以取决于文件密钥对应的某些规则。例如:目标数据长度可以与文件密钥的数据长度相同或相对应;又如:目标数据长度可以是国密的分组密码标准(SM4)或者AES算法等用于分组加密的规则所确定的文件密钥长度。
将明文文件分组的过程中,其可以是将明文文件的数据进行分组,得到多个明文数据单元,各明文数据单元包括目标数据长度的明文文件的数据。例如:目标数据长度可以是128的整数倍:128位的目标数据长度对应的一个明文数据单元包括128比特,256位的目标数据长度对应的一个明文数据单元包括256比特。
在明文文件分组后,各明文数据单元内的数据位置不变,因而明文数据单元相对于明文文件的位置是不变的,相邻的多个明文数据单元构成了明文数据单元序列。
步骤206,获取对明文数据单元序列划分得到的明文文件块,每个明文文件块包括多个在明文数据单元序列中相邻的明文数据单元。
在对明文数据单元序列进行划分时,可以直接将数量相同的明文数据单元划分为一个明文文件块,各个明文文件块可以对应于一个偏移量,通过获取该偏移量对应的文件块,以读取该偏移量对应的文件块中的文件内容。例如:明文文件先切分成多个固定大小的明文文件对象,再对各个明文文件对象进行加密,并记录下每个明文文件对象在该明文文件内的偏移位置;这些偏移位置,是在解密时的候选偏移位置,当这些候选偏移位置与用户输入的偏移量是对应的,则调取相应的密文文件对象。
在对明文数据单元序列进行划分时,也可以根据明文文件块的明文文件块标识进行划分。明文数据单元序列的长度可以用来确定明文文件块的数量,明文文件块的数量可以用来确定相应的明文文件块标识,明文文件块标识可以用来确定各个明文文件块相对于明文文件的位置信息。
在对明文数据单元序列进行划分时,还可以根据明文文件块标识对应的内容描述信息进行划分。例如:同一内容描述信息对应的明文数据单元可以划分到一个明文文件块;相关联的内容描述信息对应的明文数据单元可以划分到一个明文文件块。
在对明文数据单元序列进行划分后,就可以确定明文文件块中的明文数据单元,而在这一范围内的明文数据单元进行加密前后,明文文件块相对于明文文件的位置信息是不会产生变化的,因此,在明文数据单元进行加密的情况下,也可以通过这种相对的位置信息确定相应的密文文件块。
步骤208,基于文件密钥,将每个明文文件块中的每个明文数据单元加密为对应的密文数据单元,得到与每个明文文件块分别对应的密文文件块。
基于文件密钥对明文数据单元加密时,其是对明文数据单元内的各个数据进行加密,而根据不同文件密钥进行加密时,可能需要不同的运算。例如:文件密钥与明文数据单元内的数据可以进行异或运算,实现加密;文件密钥与明文数据单元内的数据可以进行位移,以实现加密。而为了进一步保障明文数据单元加密的安全性,还可以使用多个文件密钥按照预设密钥的加密钥序,对明文数据单元加密;相对应的,对于解密的过程,其可以是按照多个文件密钥按照加密钥序相反的解密钥序,使用多个文件密钥对明文数据单元解密。
在基于文件密钥对明文数据单元加密时,由于每个明文文件块的文件块位置并不改变,因而可以通过文件块位置确定每个明文文件块的分别对应的密文文件块。其中,每个密文文件块所包括的密文数据单元,与每个密文文件块对应的明文文件块所包括的明文数据单元一一对应。
在基于文件密钥对明文数据单元加密后,将各密文文件块拼接到一起的情况下,可以直接形成一个密文文件;当各密文文件块采用分布式存储的技术手段时,密文文件块的偏移量与各存储节点存储对应关系,可以用来确定密文文件块;明文文件块标识与各存储节点存储对应关系的对应关系,可以用来确定密文文件块;当内容描述信息包括各分布式存储的节点位置,也可以用来确定各密文文件块的位置。
上述文件加密方法中,对每个明文文件加密时,采用与明文文件相匹配的文件密钥,可以避免共用一个密钥加密明文文件时因密钥泄露而导致所有加密文件都存在安全风险的问题,提高了文件加密的安全性。加密时,将明文文件按照相同的目标数据长度分组后分别加密,且加密后的密文文件块的构成与加密前的明文文件块的构成一一对应,解密时就可以利用该一一对应的关系,定位所需的局部信息所对应的密文文件密钥进行独立解密,效率高。由此,在需要读取密文文件的局部信息时,只需要对密文文件块进行解密,即可以得到相应的局部明文文件,提高局部信息的读取效率。
在一个实施例中,如图3所示,所述获取与待加密的明文文件相匹配的文件密钥,包括:
步骤302,获取所述明文文件所属账号的账号数据。
账号数据,其是明文文件所属的至少一个账号的数据,其可以是账号密码、账号的某些个人信息或用户所输入的其他数据。在云存储平台中,属于同一账号的多个明文文件对应于相同的账号数据。
可选地,对于获取账号数据这一过程,其可以包括基于明文文件确定明文文件所属账号,再获取该账号的账号数据;该过程也可以是获取用于上传明文文件时的账号数据。
步骤304,获取明文文件的文件标识。
明文文件的文件标识,是文件的静态属性,其可以是明文文件的标识号,也可以是明文文件对应的存储路径。在云存储平台中,属于同一账号的多个明文文件对应于不同的存储路径。
步骤306,将账号数据与文件标识组合,获得组合字符串,将组合字符串映射为目标数据长度的文件密钥。
可选地,将账号数据与文件标识组合时,可以将账号数据中的至少部分数据与某一或某些文件标识进行组合,以增强安全性,且不同的组合方式还可以具有相应的其他效果。例如:账号数据是账号密码且将存储路径作为文件标识,这一组合包括至少两个方面的优势,一方面无需打扰用户,实现无感知加密,另一方面随着用户改变账号密码时,可以更新相应的文件密钥。
可选地,将账号数据与文件标识组合时,在账号数据与文件标识均是字符串的情况下,可以获得组合字符串;在账号数据与文件标识是整型、浮点型等数据格式的情况下,则需要进行格式转换,以得到组合字符串。
可选地,将账号数据与文件标识组合后,组合字符串可以进行哈希计算,生成组合信息的散列值,再将散列值分成多个散列值片段,基于多个散列值片段进行异或运算,生成文件密钥;其中,文件密钥可以是基于分组加密算法生成的,分组加密算法可以是SM4国密算法或DES算法。
本实施例中,通过组合账号密码等账号数据与文件目录路径等文件标识,将明文文件的动态数据与静态数据进行组合,再基于组合字符串生成的文件密钥,文件密钥是可以是针对于每个文件而生成的加密密钥,防止所有文件共用一个加密密钥时因密钥的泄露而导致所有文件数据都被泄露,提高了文件数据加密的安全性。
在一个实施例中,如图4所示,针对明文文件加密得到的密文文件块构成明文文件的密文文件;文件加密方法还包括:
步骤402,获取每个明文文件块相对于明文文件的明文文件块偏移量。
明文文件块偏移量,其是明文文件块与明文文件的相对位置。明文文件块偏移量可以是指该明文文件块在对应明文文件中的偏移量,该偏移量可以是指该明文文件块是所属明文文件的第几个文件块,该偏移量也可以是该明文文件块在所属明文文件中所占的位置百分比。例如:某一明文文件块偏移量表征偏移10%,则该明文文件块中的某一数据与明文文件的起始位置的数据之间,存在明文文件10%的文件内容。
可选地,明文文件块对应于内容描述数据,这些内容描述数据用于确定明文文件块偏移量,而内容描述数据一般会存储于线下,内容描述数据不会随着明文文件块进行加密。
步骤404,根据每个明文文件块的明文文件块偏移量,确定每个明文文件块对应的密文文件块的密文文件块偏移量;其中,密文文件块偏移量,用于对密文文件中对应的密文文件块进行定位。
可选地,明文文件块偏移量与密文文件块偏移量是相同的,或者,明文文件块偏移量与密文文件块偏移量存在线性的对应关系,因而,可以直接根据每个明文文件块的明文文件块偏移量,确定密文文件块偏移量。
本实施例中,通过明文文件块偏移量确定密文文件块偏移量,通过密文文件块偏移量确定密文文件块的位置,由此,无需解析密文文件块中的内容,即可准确地确定出密文文件块。
在一个实施例中,本申请还提供了一种文件解密的方法,其应用环境与文件解密方法是相同的,故不作赘述;如图5所示,文件解密的方法包括:
步骤502,获取输入的目标偏移量。
目标偏移量,是对应于待解密数据的位置信息,该位置信息可以用于确定待解密数据所在的文件块,进而确定密文文件中的偏移位置。目标偏移量可能是多种样式的,其可以是与密文文件块存在对应关系的文件块标识,其也可以是文件块在所属密文文件中所占的位置百分比。
步骤504,根据目标偏移量,从密文文件中确定具有与目标偏移量匹配的密文文件块偏移量的目标密文文件块。
可选地,将目标偏移量与各个密文文件块偏移量进行匹配的过程中,可以是目标偏移量与密文文件块偏移量一一比对的过程;该过程也可以将目标偏移量映射所得的结果与密文文件块偏移量进行比对。例如:当目标偏移量表征,密文文件的第几个文件块,或者在密文文件中所占的位置百分比的密文文件块,则目标偏移量与密文文件块偏移量是进行比对的;当目标偏移量表征待解密数据对应的元数据,则通过元数据中的内容描述信息确定目标偏移量的映射结果,将该映射结果与密文文件块偏移量进行比对。
步骤506,对目标密文文件块按目标数据长度进行分组,得到密文数据单元序列。
对目标密文文件块按目标数据长度进行分组,可以得到密文数据单元序列,密文数据单元序列包括目标密文文件块中的多个密文数据单元,多个密文数据单元构成了目标密文文件块的内容,这些内容是加密的。将目标密文文件块分组的过程中,其可以是将目标密文文件块的数据进行分组,得到密文数据单元序列,密文数据单元序列包括多个密文数据单元。其中,目标数据长度可以是128的整数倍:128位目标数据长度对应的一个密文数据单元包括128比特,256位目标数据长度对应的一个密文数据单元包括256比特。
步骤508,获取与密文文件相匹配的文件密钥,基于文件密钥对密文数据单元序列中每个目标数据长度的密文数据单元解密,得到对应的明文数据单元。
与密文文件相匹配的文件密钥,该文件密钥可以是生成密文文件时所采用的密钥,该文件密钥也可以是在解密过程中生成的;在解密过程中生成该文件密钥时,可以提高一定的安全性。
基于文件密钥对密文数据单元解密时,先获取多个文件密钥进行加密的顺序,得到加密钥序,通过加密钥序相反的使用顺序,将文件密钥对多组目标密文数据单元解密,得到明文数据单元。
步骤510,将解密得到的明文数据单元拼接,得到明文文件块。
每个明文数据单元分别表征明文文件块中的部分文件内容,而将解密得到的明文数据单元拼接后,就可以得到解密后的明文文件块。
上述文件解密方法,获取输入的目标偏移量;根据目标偏移量,从密文文件中确定具有与目标偏移量匹配的密文文件块偏移量的目标密文文件块;对目标密文文件块按目标数据长度进行分组,得到密文数据单元序列;获取与密文文件相匹配的文件密钥,基于文件密钥对密文数据单元序列中每个目标数据长度的密文数据单元解密,得到对应的明文数据单元;将解密得到的明文数据单元拼接,得到明文文件块。由此,在需要读取密文文件的局部信息时,只需要通过目标偏移量确定目标密文文件块,对目标密文文件块中的密文数据单元序列进行解密,即可以得到解密后的明文文件块,提高局部文件的读取效率。
在一个实施例中,如图6所示,文件解密方法还包括:
步骤602,获取密文文件所属账号的账号数据。
密文文件是原始文件加密而生成的,密文文件与原始文件对应的账号数据可以是相同或相对应的。例如:若密文文件与原始文件均属于同一个账号,则用于解密的账号数据与用于加密的账号数据是相同的;若密文文件与原始文件分别属于存在关联关系的两个账号,则用于解密的账号数据与用于加密的账号数据存在某种映射关系。
步骤604,获取密文文件的文件标识。
密文文件的文件标识,是文件的静态属性,其可以是密文文件标识,也可以是密文文件的存储路径。在云存储平台中,属于同一账号的多个密文文件具有不同的存储路径。
步骤606,将账号数据与文件标识组合,获得组合字符串,将组合字符串映射为目标数据长度的文件密钥。
本实施例中,在解密的过程中,通过组合账号数据与文件标识,将明文文件的动态数据与静态数据进行组合,再基于组合字符串生成的用于解密的文件密钥,由于该文件密钥是解密过程中生成的,文件密钥的安全性能够得以提高。
在一个实施例中,如图7所示,获取输入的目标偏移量,包括:
步骤702,获取待解密数据,确定待解密数据对应的内容描述数据,基于内容描述数据确定目标明文文件块标识。
待解密数据对应的内容描述数据,其可以是目标明文文件块标识相同的数据,也可以是某些内容的描述信息。例如:当内容描述数据是明文对象名称,在该明文对象名称与某一明文文件块标识相同时,则与明文对象名称相同的明文文件块标识为目标明文文件块标识;当内容描述数据是数据片段标识,该数据片段标识对应于某一明文文件块标识,则与数据片段标识对应的明文文件块标识为目标明文文件块标识。
步骤704,按照明文文件块标识和密文文件块标识的对应关系,确定目标明文文件块标识所对应的目标密文文件块标识。
明文文件块标识和密文文件块标识的对应关系,其属于一一对应关系,该对应关系的建立是依据明文文件块与密文文件块的位置而建立的;而目标明文文件块标识与目标密文文件块标识可以是相同的,也可以是相对应的。
可选地,在确定目标密文文件块标识的过程中,可以根据云平台下存储的明文文件块标识获取云平台中的目标密文文件块标识,也可以根据未加密的明文文件块标识获取加密的目标密文文件块标识。
步骤706,获取目标密文文件块标识所标识的目标密文文件块所对应的密文文件块偏移量,作为目标偏移量。
本实施例中,通过待解密数据这一局部信息,确定该局部信息对应的内容描述数据,基于内容描述数据确定目标明文文件块标识,以确定密文文件块偏移量。由此,通过内容描述数据确定目标偏移量,可以方便用户进行密文文件块的调取。
在一个可选地实施例中,本申请的应用环境包括云计算管理平台项目。其中,云计算管理平台项目可以是OpenStack,由几个主要的组件组合起来完成具体工作,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。其中,OpenStack的对象存储模块(Swift)是一个大容量、可扩展的、内置冗余和容错机制的对象存储系统,对象存储支持多种应用,比如复制和存档数据、图像或视频服务、存储次级静态数据、开发数据存储整合的新应用、存储容量难以估计的数据、为Web应用创建基于云的弹性存储等。
在一个可选地实施例中,对文件加密与解密的过程进行描述,其中,生成文件密钥、对文件进行加密与解密的算法可以是SM4分组加密算法,SM4分组密码算法是一种分组对称密码算法,它的明文分组为128位数据,密钥长度也是128位数据,采用32轮轮函数加密的方式,加密密钥与解密密钥是同一组密钥,加密算法与解密算法一致,在解密运算时使用倒序的轮密钥。
在一个可选地实施例中,对本方法在云存储平台进行数据存储的技术方案进行概述。对OpenStack的对象存储系统所存储的数据进行改进,通过引入SM4分组加密算法为OpenStack进行加密,通过用户的账户密码以及上传的文件的目录路径组成的字符串计算MD5值作为加密算法的密钥,对上传的文件进行加密处理,同时记录包括多组明文数据单元的明文文件块在整份明文文件中的位置,最后,将分组密文拼接成最终完整的密文并与文件元数据一起上传至Swift对象存储后端,其中,文件元数据包括明文文件块的内容描述、文件块标识、文件块位置等。相对应的,当用户需要下载文件时,通过相同的方法计算解密密钥进行解密,该过程对于用户使用OpenStack的对象存储系统上传下载文件时无感知,但能对于存储在云端的数据达到数据保密的作用。并且通过分组文件元数据提供用户对于视频等文件的分段随机获取或观看等功能。
在一个可选地实施例中,如图8所示,进行数据存储的步骤包括:根据用户账户密码、文件目录路径计算生成一个128位文件密钥。同时,将128位明文数据作为一个数据单元组,将明文文件进行分组。在遍历分组明文时,若遍历分组未完成,则继续遍历分组;当遍历分组完成时,客户端使用密钥、SM4算法对文件数据明文进行加密,得到分组密文;将分组密文进行拼接成最终密文上传至OpenStack的对象存储系统中。
其中,明文文件在上传时会按照明文文件块的固定大小先进行切分,这一步系统会生成每个明文文件块的元数据,明文文件块的元数据包括明文文件块名称、大小、映射到的密文文件节点位置等信息。在数据存储后,需要读取局部信息时,输入的偏移量可以用来判断这个偏移所确定的密文文件块的位置,再根据元数据取出对应块及其偏移之后的块来分组解密,其中,各密文文件块可以分别是进行存储的对象,也可以拼接成一个完整的密文文件对象进行存储。
在一个可选地实施例中,生成文件密钥的步骤包括:获取用户的账户密码与文件上传/下载的目录路径,将用户账户密码与文件目录路径拼接成字符串“密码:文件目录路径”,对拼接的字符串进行MD5散列函数计算得到128位的散列值,输出128位的散列值作为后续文件加密与解密的加密密钥。
由此,通过文件目录路径与账户密码,为每个文件单独生成一个加密密钥,该加密密钥可以作为文件密钥,防止所有文件共用一个加密密钥时因密钥的泄露而导致所有文件数据都被泄露,提高了文件数据加密的安全性。
在一个可选地实施例中,在生成加密密钥之后,还包括基于该加密密钥生成文件密钥。在对加密密钥进行分组后,得到加密密钥片段,各加密密钥片段分别与相应的系统参数进行异或运算,得到加密密钥分别对应的多个原始参数,在原始参数中的目标参数加密时,选取目标参数与目标参数对应的密钥生成参数进行异或运算,得到文件密钥。
在基于该加密密钥生成文件密钥的过程中,从原始参数中确定目标参数的方法可以包括:确定加密密钥片段相对于加密密钥的位置信息后,当原始参数均未与原始参数对应的密钥生成参数进行异或运算时,基于位置信息确定第一个加密密钥片段对应的原始参数为目标参数;在前一位置原始参数与对应的密钥生成参数进行异或运算后,确定当前位置原始参数为目标参数。在最后位置的原始参数与对应的密钥生成参数进行异或运算后,按照加密密钥片段相对于加密密钥的位置信息,使用各目标参数与对应的密钥生成参数分别所生成的最新文件密钥代替各目标参数,再按照位置信息的排列顺序,执行原始参数相同的加密步骤。
在基于该加密密钥生成文件密钥的过程中,目标参数对应的密钥生成参数的生成步骤包括:用于对目标参数加密的原始参数确定为加密参数,将各加密参数与固定参数的异或运算结果,将该加密参数异或运算结果进行非线性映射,得到加密参数异或运算结果的非线性映射结果,将该非线性映射结果中的数据进行位移,并将非线性映射结果与位移的非线性映射结果进行异或运算,得到密钥生成参数。其中,若某原始参数已生成文件密钥,则使用该原始参数最新生成的文件密钥代替这一原始参数以获得密钥生成参数。
在构建密钥生成参数的过程中,包括并行的非线性映射算法,可以将固定的8比特输入8比特输出的置换。非线性映射结果的生成步骤包括:将各加密参数与固定参数的异或运算结果充当某一数据映射表中的坐标,将坐标点对应的参数作为非线性映射结果。具体的,当异或运算结果对应于某一个字,通过该字在数据映射表中所表征的坐标,则将该坐标对应的值确定为非线性映射结果。例如:某一数据映射表采用十六进制的行列命名,该数据表包括16行与16列,当异或运算结果对应于‘EF’时,“EF”表征第15行第16列的位置,则将该位置的值确定为非线性映射结果。
在一个可选地实施例中,如图9所示,文件密钥是轮密钥,将128位的加密密钥MK分成4个加密密钥片段,每个32位加密密钥片段(Mk1,Mk2,Mk3,Mk4),一共进行32轮加密运算,得到32组轮密钥,轮密钥的生成公式如下:
其中,<<<i表示数据向左循环位移i位;其中,B表示加密参数异或运算结果的非线性映射结果。其中,四个加密密钥片段(Mk1,Mk2,Mk3,Mk4)分别对应的系统参数依次是FK0、FK1、FK2、FK3;其中,FK0=(A3B1BAC6),FK1=(55AA3350),FK2=(677D9197),FK3=(B27022DC)。其中,CKi为固定参数,取值方法为:设ck(i,j)为CKi的第j字节(i=0,1,……,31;j=0,1,2,3),即:CKi=(ck(i,0),ck(i,1),ck(i,2),ck(i,3)),其中,ck(i,j)=(4i+j)×7(mod256)。
在一个可选地实施例中,该方法还包括基于该文件密钥对明文文件数据单元进行加密的步骤,其中:在对一个明文文件数据单元进行片后,得到目标明文文件数据单元片段,将目标明文文件数据单元片段与数据单元加密参数进行异或运算,得到密文文件,其中,数据单元加密参数是文件密钥及其他明文文件数据单元片段生成的。
在基于该文件密钥对明文文件数据单元进行加密的过程中,从明文文件数据单元片段中确定目标明文文件数据单元片段的方法可以包括:确定明文文件数据单元片段相对于明文文件数据单元的位置信息后,当明文数据单元片段均未与明文数据单元片段对应的数据单元加密参数进行异或运算时,基于位置信息确定第一个明文数据单元片段为目标明文数据单元片段;在前一位置明文数据单元片段与对应的数据单元加密参数进行异或运算后,确定当前位置明文数据单元片段为目标明文数据单元片段。在最后位置的明文数据单元片段与对应的数据单元加密参数进行异或运算后,按照明文文件数据单元片段相对于明文文件数据单元的位置信息,使用各目标明文数据单元片段与对应的数据单元加密参数分别所生成的最新密文数据单元片段代替各目标明文数据单元片段,再按照位置信息的排列顺序,执行明文数据单元片段相同的加密步骤。
在基于该文件密钥对明文文件数据单元进行加密的过程中,数据单元加密参数的生成步骤包括:用于对目标明文数据单元片段加密的明文数据单元片段确定为数据单元加密参数,获得各数据单元加密参数与文件密钥的异或运算结果,将该数据单元加密参数异或运算结果进行非线性映射,得到数据单元加密参数异或运算结果的数据单元非线性映射结果,将该数据单元非线性映射结果中的数据进行位移,并将数据单元非线性映射结果与位移的数据单元非线性映射结果进行异或运算,得到密文文件数据单元。其中,若某明文数据单元片段已生成密文数据单元片段,则使用该明文数据单元片段最新生成的密文数据单元片段代替这一明文数据单元片段以获得进行加密。
在构建数据单元加密参数的过程中,包括并行的非线性映射算法,可以将固定的8比特输入8比特输出的置换。非线性映射结果的生成步骤包括:将各数据单元加密参数与文件密钥的异或运算结果充当某一数据映射表中的坐标,将坐标点对应的参数作为非线性映射结果。具体的,当异或运算结果对应于某一个字,通过该字在数据映射表中所表征的坐标,则将该坐标对应的值确定为非线性映射结果。例如:某一数据映射表采用十六进制的行列命名,该数据表包括16行与16列,当异或运算结果对应于‘EF’时,“EF”表征第15行第16列的位置,则将该位置的值确定为非线性映射结果。
在一可选地实施例中,如图10所示,明文数据单元片段是4个,各明文数据单元片段分别包括32比特,应用文件密钥进行加密的表达式为:
在基于该文件密钥对明文文件数据单元进行加密后,可以得到密文文件数据单元,各密文文件数据单元的位置还需要进行调整,可以将各密文文件数据单元反序排列。如图11所示,对于一个密文数据单元中的4个密文数据单元,需要先确定明文数据单元片段相对于明文数据单元的明文单元片段位置信息,按照与明文单元片段位置信息相反的密文单元片段位置信息,得到最终的密文文件数据单元。
在一个可选地实施例中,如图12所示,对密文文件进行解密的步骤,包括:
根据用户账户密码、文件目录路径计算生成一个128位数据的文件密钥。判断用户是否输入文件读取的目标偏移量,如否则全文件读取,如是则根据用户输入的文件偏移量从Swift存储中获取对应的密文文件块。在获取到全文文件时,按128位数据进行分组,得到密文数据单元序列;在获取到密文文件块时,将密文文件块按128位数据进行分组,得到密文数据单元序列。遍历分组完成后,使用密钥、SM4算法对密文数据单元序列进行逆序解密,得到解密后的明文文件块,将解密后的明文文件块进行拼接成最终明文显示给客户端。
由此,在数据存储后,需要读取局部信息时,输入的目标偏移量可以用来判断这个偏移所在的对象是哪一块数据,然后再根据元数据取出对应块及其偏移之后的块来分组解密,实现局部信息读取。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的文件加密、文件解密方法的文件加密、文件解密装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个文件加密、文件解密装置实施例中的具体限定可以参见上文中对于文件加密、文件解密方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种文件加密装置,所述装置包括:待加密数据获取模块1302、加密数据分组模块1304、文件块确定模块1306和文件加密模块1308;其中:
待加密数据获取模块1302,用于获取与待加密的明文文件相匹配的文件密钥;所述文件密钥用于对目标数据长度的数据单元进行加密;
加密数据分组模块1304,用于按照所述目标数据长度,将所述明文文件分组,得到明文数据单元序列;
文件块确定模块1306,用于获取对所述明文数据单元序列划分得到的明文文件块,每个所述明文文件块包括多个在所述明文数据单元序列中相邻的明文数据单元;
文件加密模块1308,用于基于所述文件密钥,将每个所述明文文件块中的每个明文数据单元加密为对应的密文数据单元,得到与每个所述明文文件块分别对应的密文文件块;其中,每个所述密文文件块所包括的密文数据单元,与每个所述密文文件块对应的明文文件块所包括的明文数据单元一一对应。
在其中一个实施例中,待加密数据获取模块1302,包括:
账号数据获取单元,用于获取所述明文文件所属账号的账号数据;
文件标识获取单元,用于获取所述明文文件的文件标识;
密钥生成单元,用于将所述账号数据与文件标识组合,获得组合字符串,将所述组合字符串映射为目标数据长度的所述文件密钥。
在其中一个实施例中,所述文件加密装置还包括:
明文偏移量获取模块,用于获取每个所述明文文件块相对于所述明文文件的明文文件块偏移量;
密文偏移量生成模块,用于根据每个所述明文文件块的所述明文文件块偏移量,确定每个所述明文文件块对应的密文文件块的密文文件块偏移量;其中,所述密文文件块偏移量,用于对所述密文文件中对应的密文文件块进行定位。
本申请还提供一种文件解密装置,包括:目标偏移量获取模块、密文文件块确定模块、文件块分组模块、解密模块及明文组合模块,其中:
目标偏移量获取模块,用于获取输入的目标偏移量;
密文文件块确定模块,用于根据所述目标偏移量,从密文文件中确定具有与所述目标偏移量匹配的密文文件块偏移量的目标密文文件块;
文件块分组模块,用于对所述目标密文文件块按目标数据长度进行分组,得到密文数据单元序列;
解密模块,用于获取与所述密文文件相匹配的文件密钥,基于所述文件密钥对所述密文数据单元序列中每个目标数据长度的数据单元解密,得到对应的明文数据单元;
明文组合模块,用于将解密得到的明文数据单元拼接,得到明文文件块。
在其中一个实施例中,文件解密装置还包括:
账号数据获取单元,用于获取所述密文文件所属账号的账号数据;
文件标识获取单元,用于获取所述密文文件的文件标识;
文件密钥生成单元,用于将所述账号数据与文件标识组合,获得组合字符串,将所述组合字符串映射为目标数据长度的所述文件密钥。
在其中一个实施例中,目标偏移量获取模块包括:
第一标识确定单元,用于获取待解密数据,确定所述待解密数据对应的内容描述数据,基于所述内容描述数据确定目标明文文件块标识;
第二标识确定单元,用于按照明文文件块标识和密文文件块标识的对应关系,确定所述目标明文文件块标识所对应的目标密文文件块标识;
目标偏移量确定单元,用于获取所述目标密文文件块标识所标识的目标密文文件块所对应的密文文件块偏移量,作为目标偏移量。
上述文件加密、文件解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文件加密、文件解密方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种文件加密方法,其特征在于,所述方法包括:
获取与待加密的明文文件相匹配的文件密钥;所述文件密钥用于对目标数据长度的数据单元进行加密;
按照所述目标数据长度,将所述明文文件分组,得到明文数据单元序列;
获取对所述明文数据单元序列划分得到的明文文件块,每个所述明文文件块包括多个在所述明文数据单元序列中相邻的明文数据单元;
基于所述文件密钥,将每个所述明文文件块中的每个明文数据单元加密为对应的密文数据单元,得到与每个所述明文文件块分别对应的密文文件块;
其中,每个所述密文文件块所包括的密文数据单元,与每个所述密文文件块对应的明文文件块所包括的明文数据单元一一对应。
2.根据权利要求1所述的方法,其特征在于,所述获取与待加密的明文文件相匹配的文件密钥,包括:
获取所述明文文件所属账号的账号数据;
获取所述明文文件的文件标识;
将所述账号数据与文件标识组合,获得组合字符串,将所述组合字符串映射为目标数据长度的所述文件密钥。
3.根据权利要求1所述的方法,其特征在于,针对所述明文文件加密得到的所述密文文件块构成所述明文文件的密文文件;所述方法还包括:
获取每个所述明文文件块相对于所述明文文件的明文文件块偏移量;
根据每个所述明文文件块的所述明文文件块偏移量,确定每个所述明文文件块对应的密文文件块的密文文件块偏移量;其中,所述密文文件块偏移量,用于对所述密文文件中对应的密文文件块进行定位。
4.一种文件解密的方法,其特征在于,包括:
获取输入的目标偏移量;
根据所述目标偏移量,从密文文件中确定具有与所述目标偏移量匹配的密文文件块偏移量的目标密文文件块;
对所述目标密文文件块按目标数据长度进行分组,得到密文数据单元序列;
获取与所述密文文件相匹配的文件密钥,基于所述文件密钥对所述密文数据单元序列中每个目标数据长度的密文数据单元解密,得到对应的明文数据单元;
将解密得到的明文数据单元拼接,得到明文文件块。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述密文文件所属账号的账号数据;
获取所述密文文件的文件标识;
将所述账号数据与文件标识组合,获得组合字符串,将所述组合字符串映射为目标数据长度的所述文件密钥。
6.根据权利要求4所述的方法,其特征在于,所述获取输入的目标偏移量,包括:
获取待解密数据,确定所述待解密数据对应的内容描述数据,基于所述内容描述数据确定目标明文文件块标识;
按照明文文件块标识和密文文件块标识的对应关系,确定所述目标明文文件块标识所对应的目标密文文件块标识;
获取所述目标密文文件块标识所标识的目标密文文件块所对应的密文文件块偏移量,作为目标偏移量。
7.一种文件加密装置,其特征在于,所述装置包括:
待加密数据获取模块,用于获取与待加密的明文文件相匹配的文件密钥;所述文件密钥用于对目标数据长度的数据单元进行加密;
加密数据分组模块,用于按照所述目标数据长度,将所述明文文件分组,得到明文数据单元序列;
文件块确定模块,用于获取对所述明文数据单元序列划分得到的明文文件块,每个所述明文文件块包括多个在所述明文数据单元序列中相邻的明文数据单元;
文件加密模块,用于基于所述文件密钥,将每个所述明文文件块中的每个明文数据单元加密为对应的密文数据单元,得到与每个所述明文文件块分别对应的密文文件块;其中,每个所述密文文件块所包括的密文数据单元,与每个所述密文文件块对应的明文文件块所包括的明文数据单元一一对应。
8.一种文件解密装置,其特征在于,包括:
目标偏移量获取模块,用于获取输入的目标偏移量;
密文文件块确定模块,用于根据所述目标偏移量,从密文文件中确定具有与所述目标偏移量匹配的密文文件块偏移量的目标密文文件块;
文件块分组模块,用于对所述目标密文文件块按目标数据长度进行分组,得到密文数据单元序列;
解密模块,用于获取与所述密文文件相匹配的文件密钥,基于所述文件密钥对所述密文数据单元序列中每个目标数据长度的数据单元解密,得到对应的明文数据单元;
明文组合模块,用于将解密得到的明文数据单元拼接,得到明文文件块。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210064908.3A CN114398656A (zh) | 2022-01-20 | 2022-01-20 | 文件加密、文件解密方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210064908.3A CN114398656A (zh) | 2022-01-20 | 2022-01-20 | 文件加密、文件解密方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398656A true CN114398656A (zh) | 2022-04-26 |
Family
ID=81233674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210064908.3A Withdrawn CN114398656A (zh) | 2022-01-20 | 2022-01-20 | 文件加密、文件解密方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398656A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251873A (zh) * | 2023-02-19 | 2023-12-19 | 桂林电子科技大学 | 一种基于区块链的地理信息数据云存储方法 |
WO2024087898A1 (zh) * | 2022-10-24 | 2024-05-02 | 深圳Tcl新技术有限公司 | 文件处理方法、装置、存储介质及计算机设备 |
CN118520483A (zh) * | 2024-07-17 | 2024-08-20 | 湖北芯擎科技有限公司 | 文件加解密方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-01-20 CN CN202210064908.3A patent/CN114398656A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087898A1 (zh) * | 2022-10-24 | 2024-05-02 | 深圳Tcl新技术有限公司 | 文件处理方法、装置、存储介质及计算机设备 |
CN117251873A (zh) * | 2023-02-19 | 2023-12-19 | 桂林电子科技大学 | 一种基于区块链的地理信息数据云存储方法 |
CN118520483A (zh) * | 2024-07-17 | 2024-08-20 | 湖北芯擎科技有限公司 | 文件加解密方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10476662B2 (en) | Method for operating a distributed key-value store | |
CN114398656A (zh) | 文件加密、文件解密方法、装置、计算机设备和存储介质 | |
Li et al. | A secure cloud storage system supporting privacy-preserving fuzzy deduplication | |
JP6177988B2 (ja) | 暗号化データのコミュニティベース重複排除 | |
US8175268B2 (en) | Generating and securing archive keys | |
US10608813B1 (en) | Layered encryption for long-lived data | |
US20210234666A1 (en) | Enhanced blockchain master node computing stack | |
TW202025032A (zh) | 區塊鏈資料處理方法、裝置及系統 | |
US9886448B2 (en) | Managing downloads of large data sets | |
CN114491637B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
US8694798B2 (en) | Generating and securing multiple archive keys | |
CN109474616B (zh) | 多平台数据共享方法和装置及计算机可读存储介质 | |
EP4020265A1 (en) | Method and device for storing encrypted data | |
CN109981551A (zh) | 一种基于区块链的数据传输系统、方法及相关设备 | |
CN104794243B (zh) | 基于文件名的第三方密文检索方法 | |
WO2023216987A1 (zh) | 容器镜像构建方法及装置 | |
US8494169B2 (en) | Validating encrypted archive keys | |
CN116132065A (zh) | 密钥确定方法、装置、计算机设备和存储介质 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
WO2024207647A1 (zh) | 信息检索方法、装置、计算机设备和存储介质 | |
CN115296808B (zh) | 秘钥更换方法、装置、计算机设备和存储介质 | |
CN118250099B (zh) | 基于密钥分配的u盘数据交换方法、装置和计算机设备 | |
CN117828680A (zh) | 数据访问方法、装置、计算机设备和存储介质 | |
CN117076406A (zh) | 文档存储方法、系统、装置、计算机设备和存储介质 | |
CN118264468A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220426 |