CN116846588A - 文件加密方法、文件解密方法及文件加密传输系统 - Google Patents
文件加密方法、文件解密方法及文件加密传输系统 Download PDFInfo
- Publication number
- CN116846588A CN116846588A CN202310567035.2A CN202310567035A CN116846588A CN 116846588 A CN116846588 A CN 116846588A CN 202310567035 A CN202310567035 A CN 202310567035A CN 116846588 A CN116846588 A CN 116846588A
- Authority
- CN
- China
- Prior art keywords
- file
- encryption
- original file
- original
- encrypted
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000005540 biological transmission Effects 0.000 title claims abstract description 25
- 239000012634 fragment Substances 0.000 claims description 77
- 230000006835 compression Effects 0.000 claims description 48
- 238000007906 compression Methods 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 28
- 238000013467 fragmentation Methods 0.000 claims description 15
- 238000006062 fragmentation reaction Methods 0.000 claims description 15
- 230000006837 decompression Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000013478 data encryption standard Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本说明书一个或多个实施例提供一种文件加密方法、文件解密方法及文件加密传输系统。所述文件加密传输系统包括加密方和解密方;所述加密方按照自身确定的加密方式,对原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据;所述加密方将所述加密文件传输给所述解密方;所述解密方根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密,得到所述原始文件。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种文件加密方法、装置、电子设备及机器可读存储介质,还涉及一种文件解密方法、装置、电子设备及机器可读存储介质,还涉及一种文件加密传输系统。
背景技术
在隐私计算场景或大数据计算场景中,为了保证数据安全性,避免在数据传输、存储等阶段出现原始数据泄露的情况,可以先对明文形式的原始数据进行加密,再对加密得到的密文数据进行传输、存储、计算等数据处理。
在数据加密传输的过程中,加密方与解密方通常需要事先约定针对原始文件的加密方式;后续,加密方通常需要按照事先约定好的加密方式对原始文件进行加密,得到对应的加密文件,并可以将与原始文件对应的加密文件传输给解密方,以使解密方可以按照与事先约定好的加密方式对应的解密方式,对获得的加密文件进行解密,恢复出原始文件。
如果加密方临时调整了加密方式,并按照新的加密方式对原始文件进行加密,会导致解密方无法按照与之前约定好的加密方式对应的解密方式,对获得的加密文件成功解密,进而也无法成功恢复出原始文件,给加密方和解密方带来不便。
发明内容
本申请提供一种文件加密方法,所述方法包括:
确定针对原始文件的加密方式;
按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
本申请还提供一种文件解密方法,所述方法包括:
获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据;
根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
本申请还提供一种文件加密传输系统,所述系统包括加密方和解密方;
所述加密方按照自身确定的加密方式,对原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据;
所述加密方将所述加密文件传输给所述解密方;
所述解密方根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密,得到所述原始文件。
本申请还提供一种文件加密装置,所述装置包括:
第一确定单元,用于确定针对原始文件的加密方式;
加密单元,用于按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
本申请还提供一种文件解密装置,所述装置包括:
获取单元,用于获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据;
解密单元,用于根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述文件加密方法或文件解密方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述文件加密方法或文件解密方法。
通过以上实施例,一方面,通过在加密文件中添加用于描述针对原始文件的加密方式的元数据,实现了一种支持自解释的加密文件格式,使得加密方可以采用任意加密方式对原始文件进行加密,无需与解密方事先约定加密方式,而解密方仍然可以根据获取到的加密文件中的元数据对加密文件中的密文数据成功解密,成功恢复出原始文件,从而提高了文件加密的灵活性,也改善了加密方和解密方的用户体验。
另一方面,由于解密方可以根据获取到的加密文件中的元数据,确定针对原始文件的加密方式,并可以按照与确定出的加密方式对应的解密方式,对获取到的加密文件中的密文数据进行解密,因此解密方基于这种支持自解释的加密文件格式,无需与加密方事先约定加密方式,就可以对采用不同加密方式得到的加密文件成功解密,成功恢复出原始文件,从而提高了文件解密的灵活性,也改善了加密方和解密方的用户体验。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一示例性的实施例示出的一种加密文件的示意图;
图2是一示例性的实施例示出的一种文件加密方法的流程图;
图3是一示例性的实施例示出的一种文件解密方法的流程图;
图4是一示例性的实施例示出的一种文件处理流程的示意图;
图5是一示例性的实施例示出的一种文件加密装置或文件解密装置所在电子设备的结构示意图;
图6是一示例性的实施例示出的一种文件加密装置的框图;
图7是一示例性的实施例示出的一种文件解密装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在隐私计算场景或大数据计算场景中,为了保证数据安全性,避免在数据传输、存储等阶段出现原始数据泄露的情况,可以先对明文形式的原始数据进行加密,再对加密得到的密文数据进行传输、存储、计算等数据处理。
在数据加密传输的过程中,加密方与解密方通常需要事先约定针对原始文件的加密方式;后续,加密方通常需要按照事先约定好的加密方式对原始文件进行加密,得到对应的加密文件,并可以将与原始文件对应的加密文件传输给解密方,以使解密方可以按照与事先约定好的加密方式对应的解密方式,对获得的加密文件进行解密,恢复出原始文件。
由此可见,在以上示出的实施例中,如果加密方临时调整了加密方式,而并未与解密方进行约定,并按照新的加密方式对原始文件进行加密,会导致解密方无法按照与之前约定好的加密方式对应的解密方式,对获得的加密文件成功解密,进而也无法成功恢复出原始文件,给加密方和解密方带来不便。
有鉴于此,本说明书旨在提出一种支持自解释的加密文件格式,使得加密方与解密方无需事先约定加密方式,解密方就可以根据获取到的加密文件直接恢复出原始文件。
首先,加密方可以按照支持自解释的加密文件格式,对原始文件进行加密。在实现时,可以确定针对原始文件的加密方式,并可以按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件可以包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
例如,原始文件可以为“plain.txt”,也即,原始文件的文件名称为“plain”,原始文件的文件格式为txt。加密方可以确定针对原始文件的加密方式为AES-GCM(AdvancedEncryption Standard-Galois/Counter Mode)算法;进一步地,加密方可以按照自身确定的AES-GCM算法,基于自身持有的加密密钥,对原始文件“plain.txt”进行加密,得到与其对应的加密文件“File Object”。
请参见图1,图1是一示例性的实施例示出的一种加密文件的示意图。如图1所示,加密文件“File Object”可以包括密文数据(cipher_data)和元数据(metadata);其中,密文数据(cipher_data)可以是对原始文件“plain.txt”的文件内容进行加密而得到的;元数据(metadata)至少可以用于描述针对原始文件“plain.txt”的加密方式为AES-GCM算法。
需要说明的是,在相关技术中,加密文件的元数据通常只用于描述加密文件的文件标识、加密文件的文件大小、修改时间戳等描述信息,并不会用于描述针对原始文件的加密方式。
进一步地,加密方可以将与所述原始文件对应的加密文件传输给解密方;解密方在获取到所述加密文件之后,可以根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
例如,如图1所示,解密方在获取到与原始文件“plain.txt”对应的加密文件“FileObject”之后,根据加密文件“File Object”中包括的元数据(metadata),可以确定针对原始文件“plain.txt”的加密方式为AES-GCM算法,并可以按照与AES-GCM算法对应的解密方式,对加密文件“File Object”中包括的密文数据(cipher_data)进行解密,以得到原始文件“plain.txt”的文件内容,进而可以恢复出原始文件“plain.txt”。
由此可见,在本说明书中的技术方案中,一方面,通过在加密文件中添加用于描述针对原始文件的加密方式的元数据,实现了一种支持自解释的加密文件格式,使得加密方可以采用任意加密方式对原始文件进行加密,无需与解密方事先约定加密方式,而解密方仍然可以根据获取到的加密文件中的元数据对加密文件中的密文数据成功解密,成功恢复出原始文件,从而提高了文件加密的灵活性,也改善了加密方和解密方的用户体验。
另一方面,由于解密方可以根据获取到的加密文件中的元数据,确定针对原始文件的加密方式,并可以按照与确定出的加密方式对应的解密方式,对获取到的加密文件中的密文数据进行解密,因此解密方基于这种支持自解释的加密文件格式,无需与加密方事先约定加密方式,就可以对采用不同加密方式得到的加密文件成功解密,成功恢复出原始文件,从而提高了文件解密的灵活性,也改善了加密方和解密方的用户体验。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图2,图2是一示例性的实施例示出的一种文件加密方法的流程图。
在本说明书中,所述文件加密方法可以应用于加密方。例如,在隐私计算场景中,可以由与加密方对应的隐私计算节点执行本说明书中的文件加密方法。又例如,在大数据计算场景中,可以由与加密方对应的计算节点执行本说明书中的文件加密方法。
在一些可能的实施例中,为了提高文件数据的安全性,避免在文件加密的过程中出现原始数据泄露的情况,可以由运行在可信执行环境(TEE,Trusted ExecutionEnvironment)中的文件加密应用程序执行本说明书中的文件加密方法。
如图2所示,所述文件加密方法可以执行以下步骤:
步骤202:确定针对原始文件的加密方式。
例如,原始文件可以为“plain.txt”,也即,原始文件的文件名称为“plain”,原始文件的文件格式为txt。加密方可以确定针对原始文件的加密方式为AES-GCM(AdvancedEncryption Standard-Galois/Counter Mode)算法。需要说明的是,在所述步骤202中,针对原始文件的加密方式可以完全由加密方自主确定,而无需与解密方事先进行约定。
其中,在所述步骤202中,所述加密方式具体可以为任意文件加密算法,本说明书不做限定。例如,针对原始文件的加密方式可以为AES(Advanced Encryption Standard,高级加密标准)、DES(Data Encryption Standard,数据加密标准)、RSA算法、ECC(椭圆加密算法)等。
其中,在所述步骤202中,关于所述原始文件的文件格式,本说明书中也不做特别限定。例如,原始文件的文件格式具体可以包括但不限于txt、csv、bin等。
步骤204:按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
例如,加密方可以按照自身确定的AES-GCM算法,基于自身持有的加密密钥,对原始文件“plain.txt”进行加密,得到与其对应的加密文件“File Object”。如图1所示,加密文件“File Object”可以包括密文数据(cipher_data)和元数据(metadata);其中,密文数据(cipher_data)可以是对原始文件“plain.txt”的文件内容进行加密而得到的;元数据(metadata)中的“encryption:aesgcm”字段,可以用于描述针对原始文件“plain.txt”的加密方式为AES-GCM算法。
在示出的一种实施方式中,由于部分加密方式能够支持的文件数据量是有上限的,因此在所述原始文件的数据量较大的情况下,可以先对所述原始文件进行分片处理,再对得到的各个文件分片进行加密,从而实现针对任意文件大小、任意文件格式的原始文件可以支持自解释的加密文件格式。
在这种情况下,在所述步骤204之前,所述方法还可以包括:确定针对所述原始文件进行分片处理所采用的分片阈值;按照所述分片阈值,对所述原始文件进行分片处理,得到与所述原始文件对应的若干文件分片。
在这种情况下,所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,具体可以包括:按照所述加密方式,分别对与所述原始文件对应的各个文件分片进行加密,得到加密后的各个文件分片,并基于加密后的各个文件分片生成与所述原始文件对应的加密文件;其中,所述加密文件包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述所述加密方式和所述原始文件的文件格式的元数据。
例如,原始文件“plain.txt”的文件大小可以为1GB。加密方可以确定针对原始文件“plain.txt”进行分片处理所采用的分片阈值(fixed_size)为8MB,并可以按照分片阈值(fixed_size)对原始文件“plain.txt”进行分片处理,得到与原始文件对应的若干文件分片(不少于1024/8=128个文件分片),如:文件分片chunk_0、文件分片chunk_1、……、文件分片chunk_n(n≥127,n为正整数);进一步地,加密方可以按照自身确定的AES-GCM算法,基于自身持有的加密密钥,分别对与原始文件“plain.txt”对应的各个文件分片进行加密,得到加密后的各个文件分片,如:加密后的文件分片cipher_chunk_0、加密后的文件分片cipher_chunk_1、......、加密后的文件分片cipher_chunk_n;进一步地,加密方可以基于加密后的各个文件分片生成与原始文件“plain.txt”对应的加密文件“File Object”。其中,如图1所示,加密文件“File Object”中包括的密文数据(cipher_data)可以包括加密后的各个文件分片;元数据(metadata)中的“format:txt”字段,可以用于描述原始文件“plain.txt”的文件格式为txt。
在以上示出的实施方式中,各个文件分片的分片标识,可以用于指示各个文件分片在所述原始文件中的位置顺序;使得在文件解密阶段,解密方可以根据各个文件分片的分片标识,对各个文件分片进行分片合并处理,还可以对获取到的加密文件进行完整性校验,从而及时确定加密文件在传输过程中是否出现文件分片传错的情况。
在一些可能的实施例中,所述加密文件中包括的元数据还可以用于描述与所述原始文件对应的若干文件分片的数量。例如,元数据(metadata)中的“chunk_num:n+1”字段,可以用于描述与原始文件“plain.txt”对应的若干文件分片的数量为n+1。在文件解密阶段,解密方可以根据元数据(metadata)中的“chunk_num:n+1”字段对获取到的加密文件进行完整性校验,从而及时确定加密文件在传输过程中是否出现文件分片丢失的情况。
在以上示出的实施方式中,与所述原始文件对应的若干文件分片可以保持所述原始文件的数据结构;所述各个文件分片的分片大小可以不相等。也即,在相关技术中,通常是按照预设的分片规格,将原始文件划分为分片大小相等且分片大小均等于所述分片规格的若干个文件分片,这可能会导致原始文件的数据结构被破坏。而在本说明书的技术方案中,各个文件分片的分片大小可以不相等,在对原始文件进行分片处理的过程中可以灵活调整,只要各个文件分片的分片大小均不超过所述分片阈值即可,使得各个文件分片可以保持原始文件的数据结构。
例如,csv是一种以纯文本形式存储表格数据的文件格式,csv文件可以由任意数目的记录组成,记录之间以换行符分隔。在相关技术中,通常是按照预设的分片规格(如8MB),将原始文件划分为若干个分片大小均等于8MB的文件分片,这可能会导致csv文件中的某一条记录被划分至两个文件分片中,导致原始文件的数据结构被破坏。而在本说明书的技术方案中,可以将一条完整的记录划分至同一个文件分片中,从而避免原始文件的数据结构被破坏,因此在以上示出的实施例中,原始文件的文件大小为1GB、分片阈值为8MB时,对原始文件进行分片处理得到的文件分片的数量可能会大于128个。
在实际应用中,加密方通常可以先按照事先约定好的文件编码方式对原始文件的文本内容进行编码,再对编码后的原始文件进行加密;由此可见,如果加密方临时调整了文本编码方式,而并未与解密方进行约定,并按照新的文件编码方式对原始文件的文本内容进行编码,会导致解密方无法按照与之前约定好的文本编码方式对应的文本解码方式,对解密后的文本内容成功解码,进而也无法成功恢复出原始文件。
在示出的一种实施方式中,可以实现一种支持自解释的文本编码与文件加密的文件格式,使得加密方与解密方无需事先约定文本编码方式和加密方式,解密方就可以根据获取到的加密文件中包括的元数据,对加密文件中包括的密文数据成功解密、成功解码,进而成功恢复出原始文件,从而提高了文件加密的灵活性,也改善了加密方和解密方的用户体验。
在这种情况下,在所述步骤204之前,所述方法还可以包括:确定针对所述原始文件的文本内容进行编码所采用的文本编码方式;按照所述文本编码方式,对所述原始文件的文本内容进行编码。
在这种情况下,所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,具体可以包括:按照所述加密方式,对编码后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文本编码方式的元数据。
例如,加密方可以确定针对原始文件“plain.txt”的文本编码方式为utf-8编码,并可以按照utf-8编码,对原始文件“plain.txt”的文本内容进行编码,也即,可以将原始文件“plain.txt”的文本内容由utf-8字符转换为ASCII码;进一步地,加密方可以按照自身确定的AES-GCM算法,基于自身持有的加密密钥,对编码后的原始文件进行加密,得到与原始文件“plain.txt”对应的加密文件“File Object”。其中,如图1所示,加密文件“FileObject”中包括的密文数据(cipher_data)可以为针对编码后的原始文件进行加密而得到的密文数据;元数据(metadata)中的“encoding:utf-8”字段,可以用于描述原始文件“plain.txt”的文本编码方式为utf-8编码。
其中,所述文本编码方式具体可以为任意文本编码方式,本说明书不做限定。例如,针对原始文件的文本编码方式可以为utf-8(Unicode Transformation Format-8)编码、utf-16编码、GBK(Chinese Internal Code Specification)编码、GB2312编码等。
在实际应用中,为了减小文件加密或文件传输的数据量,加密方可以先按照事先约定好的文件压缩方式对原始文件进行压缩,再对压缩后的原始文件进行加密;由此可见,如果加密方临时调整了文件压缩方式,而并未与解密方进行约定,并按照新的文件压缩方式对原始文件进行压缩,会导致解密方无法按照与之前约定好的文件压缩方式对应的文件解压缩方式,对解密后的文件数据成功解压缩,进而也无法成功恢复出原始文件。
在示出的一种实施方式中,可以实现一种支持自解释的文件压缩与文件加密的文件格式,使得加密方与解密方无需事先约定文件压缩方式和加密方式,解密方就可以根据获取到的加密文件中包括的元数据,对加密文件中包括的密文数据成功解压缩、成功解码,进而成功恢复出原始文件,从而提高了文件加密的灵活性,也改善了加密方和解密方的用户体验。
在这种情况下,在所述步骤204之前,所述方法还可以包括:确定针对所述原始文件进行压缩所采用的文件压缩方式;按照所述文件压缩方式,对所述原始文件进行压缩。
在这种情况下,所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,具体可以包括:按照所述加密方式,对压缩后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文件压缩方式的元数据。
例如,加密方可以确定针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法,并可以按照snappy压缩算法,对原始文件“plain.txt”进行压缩;进一步地,加密方可以按照自身确定的AES-GCM算法,基于自身持有的加密密钥,对压缩后的原始文件进行加密,得到与原始文件“plain.txt”对应的加密文件“File Object”。其中,如图1所示,加密文件“File Object”中包括的密文数据(cipher_data)可以为针对编码后的原始文件进行加密而得到的密文数据;元数据(metadata)中的“compression:snappy”字段,可以用于描述针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法。
其中,所述文件压缩方式具体可以为任意文件压缩方式,本说明书不做限定。例如,针对原始文件的文本编码方式可以为snappy压缩算法、lz4算法、lz77算法等。
在一些可能的实施例中,所述加密文件中包括的元数据还可以用于描述所述原始文件的文件大小。例如,元数据(metadata)中的“uncompressed_size:1GB”字段,可以用于描述原始文件“plain.txt”的文件大小为1GB。在文件解密、解压缩阶段,解密方可以根据元数据(metadata)中的“uncompressed_size:1GB”字段,可以确定对加密文件对应的恢复结果进行完整性校验,从而及时确定加密文件在传输过程中是否出现文件数据丢失的情况。
需要说明的是,在如图1所示的实施例中,通过加密文件所包括的元数据中的不同字段,来描述加密方针对原始文件所采用的加密方式、文本编码方式、文件压缩方式,仅仅是一种示例性的实施例。
在另一些可能的实施例中,所述加密文件中包括的元数据可以用于描述针对所述原始文件的文件处理方式;其中,所述文件处理方式可以包括针对原始文件的加密方式、针对原始文件的文本内容的文本编码方式、针对原始文件的文件压缩方式、原始文件的文件格式、与原始文件对应的若干文件分片的数量、原始文件的文件大小中的一项或多项。
例如,可以在加密文件所包括的元数据(metadata)中添加“type:chunk@1.0”字段,该字段可以用于表示针对原始文件“plain.txt”的文件处理方式为“chunk@1.0”,这种文件处理方式可以表示:原始文件“plain.txt”的文件格式为txt,原始文件“plain.txt”经过分片处理,针对原始文件的文本编码方式为utf-8编码,针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法,以及针对原始文件“plain.txt”的加密方式为AES-GCM算法。
在以上示出的实施例中,加密方和解密方可以事先约定不同的文件处理方式,并可以在加密文件所包括的元数据中描述实际针对原始文件采用的文件处理方式,从而在提高文件加密的灵活性的同时,保证了加密文件的安全性,避免除了加密方和解密方之外的其他用户根据加密文件中包括的元数据获知针对原始文件的加密方式,对加密文件的安全性增加风险。
需要说明的是,在本说明书中的一个或多个实施例中,由于通常只有加密方与解密方可以持有用于文件加密的加密密钥、用于文件解密的解密密钥,因此除了加密方和解密方之外的其他用户虽然有可能根据加密文件中包括的元数据获知针对原始文件的加密方式,但是其他用户并未持有解密密钥,也就无法对加密文件进行解密,从而保证了加密文件的安全性。
通过以上技术方案可知,通过在加密文件中添加用于描述针对原始文件的加密方式的元数据,实现了一种支持自解释的加密文件格式,使得加密方可以采用任意加密方式对原始文件进行加密,无需与解密方事先约定加密方式,而解密方仍然可以根据获取到的加密文件中的元数据对加密文件中的密文数据成功解密,成功恢复出原始文件,从而提高了文件加密的灵活性,也改善了加密方和解密方的用户体验。
请参见图3,图3是一示例性的实施例示出的一种文件解密方法的流程图。所述文件解密方法可以应用于解密方。
在一些可能的实施例中,为了提高文件数据的安全性,避免在文件解密的过程中出现原始数据泄露的情况,可以由运行在可信执行环境中的文件解密应用程序执行本说明书中的文件解密方法。其中,所述文件解密应用程序与所述文件加密应用程序可以为同一个应用程序,也可以为不同的应用程序,本说明书中对此不作特别限定。
如图3所示,所述文件解密方法可以执行以下步骤:
步骤302:获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据。
例如,解密方可以获取与原始文件可以为“plain.txt”对应的加密文件“FileObject”。如图1所示,加密文件“File Object”可以包括密文数据(cipher_data)和元数据(metadata);其中,密文数据(cipher_data)可以是对原始文件“plain.txt”的文件内容进行加密而得到的;元数据(metadata)中的“encryption:aesgcm”字段,可以用于描述针对原始文件“plain.txt”的加密方式为AES-GCM算法。
步骤304:根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
例如,如图1所示,在获得加密文件“File Object”之后,解密方根据元数据(metadata)中的“encryption:aesgcm”字段,可以确定针对原始文件“plain.txt”的加密方式为AES-GCM算法,并可以按照与AES-GCM算法对应的解密方式,对加密文件“File Object”中包括的密文数据(cipher_data)进行解密,以得到原始文件“plain.txt”的文件内容,进而可以恢复出原始文件“plain.txt”。
在示出的一种实施方式中,如果加密方先对原始文件进行了分片处理,再对得到的各个文件分片进行解密,则解密方可以先对加密文件进行解密,再对解密得到的各个文件分片进行分片合并处理,以恢复出原始文件。
在这种情况下,所述加密文件可以包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式和所述原始文件的文件格式的元数据;其中,所述各个文件分片为按照分片阈值对所述原始文件进行分片处理而得到的。所述根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密,具体可以包括:根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式和所述原始文件的文件格式,并按照与所述加密方式对应的解密方式,对加密后的各个文件分片进行解密,再根据所述原始文件的文件格式,对解密后的各个文件分片进行合并处理。
例如,如图1所示,在获得加密文件“File Object”之后,解密方根据元数据(metadata)中的“encryption:aesgcm”字段、“format:txt”字段,可以确定针对原始文件“plain.txt”的加密方式为AES-GCM算法,以及原始文件的文件格式为txt;进一步地,解密方可以按照与AES-GCM算法对应的解密方式,对加密文件“File Object”所包括的密文数据(cipher_data)中加密后的各个文件分片,也即加密后的文件分片cipher_chunk_0、加密后的文件分片cipher_chunk_1、......、加密后的文件分片cipher_chunk_n进行解密,得到文件分片chunk_0、文件分片chunk_1、......、文件分片chunk_n;进一步地,解密方可以按照txt文件格式,对解密得到的各个文件分片进行合并处理,得到原始文件“plain.txt”。
其中,在一些可能的实施例中,在加密文件中的元数据还可以用于描述与原始文件对应的文件分片的数量的情况下,在对加密后的各个文件分片进行解密之前,或者在对解密得到的各个文件分片进行合并处理之前,解密方还可以按照与原始文件对应的文件分片的数量,对获取到的加密文件进行完整性校验。例如,解密方根据元数据(metadata)中的“chunk_num:n+1”字段,可以确定与原始文件“plain.txt”对应的文件分片的数量为n+1;如果密文数据(cipher_data)中加密后的各个文件分片的数量为n+1,则解密方可以通过针对获取到的加密文件“File Object”的完整性校验;如果密文数据(cipher_data)中加密后的各个文件分片的数量小于n+1,说明在文件加密传输过程中可能出现了漏传的情况,需要重新获取该加密文件。
在示出的一种实施方式中,如果加密方先对原始文件的文本内容进行编码,再对编码后的原始文件进行加密,则解密方可以先对加密文件进行解密,再对解密后的文件数据进行解码,以恢复出原始文件。
在这种情况下,所述加密文件可以包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件的文本内容进行编码所采用的文本编码方式的元数据。所述方法还可以包括:根据所述加密文件中包括的元数据,确定针对所述原始文件的文本内容进行编码所采用的文本编码方式,并按照与所述文本编码方式对应的文本解码方式,对解密后的密文数据中的文本内容进行解码,得到所述原始文件的文本内容。
例如,如图1所示,在获得加密文件“File Object”之后,解密方根据元数据(metadata)中的“encryption:aesgcm”字段、“encoding:utf-8”字段,可以确定针对原始文件“plain.txt”的加密方式为AES-GCM算法,以及原始文件“plain.txt”的文本编码方式为utf-8编码;进一步地,解密方可以按照与AES-GCM算法对应的解密方式,对加密文件“FileObject”中包括的密文数据(cipher_data)进行解密,以得到编码后的原始文件“plain.txt”;进一步地,解密方可以按照与utf-8编码对应的文本解码方式,对编码后的原始文件“plain.txt”(也即解密后的密文数据中的文本内容)进行解码,得到原始文件“plain.txt”的文本内容,进而可以恢复出原始文件“plain.txt”。
在示出的一种实施方式中,如果加密方先对原始文件的文本内容进行编码,再对编码后的原始文件进行加密,则解密方可以先对加密文件进行解密,再对解密后的文件数据进行解码,以恢复出原始文件。
在这种情况下,所述加密文件可以包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件进行压缩所采用的文件压缩方式的元数据。所述方法还可以包括:根据所述加密文件中包括的元数据,确定针对所述原始文件进行压缩所采用的文件压缩方式,并按照与所述文件压缩方式对应的文件解压缩方式,对解密后的密文数据进行解压缩,得到所述原始文件。
例如,如图1所示,在获得加密文件“File Object”之后,解密方根据元数据(metadata)中的“encryption:aesgcm”字段、“compression:snappy”字段,可以确定针对原始文件“plain.txt”的加密方式为AES-GCM算法,以及针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法;进一步地,解密方可以按照与AES-GCM算法对应的解密方式,对加密文件“File Object”中包括的密文数据(cipher_data)进行解密,以得到压缩后的原始文件“plain.txt”;进一步地,解密方可以按照与snappy压缩算法对应的文件解压缩方式,对压缩后的原始文件“plain.txt”(也即解密后的密文数据)进行解压缩,得到原始文件“plain.txt”。
其中,在一些可能的实施例中,在在加密文件中的元数据还可以用于描述原始文件的文件大小的情况下,在对解密后的密文数据进行解压缩之后,解密方还可以根据原始文件的文件大小,对解压缩得到的原始文件进行完整性校验。例如,解密方根据元数据(metadata)中的“uncompressed_size:1GB”字段原始文件“plain.txt”的文件大小为1GB;如果解压缩得到的原始文件的文件大小也为1GB,则可以通过针对加密文件的恢复结果的完整性校验。
通过以上技术方案可知,由于解密方可以根据获取到的加密文件中的元数据,确定针对原始文件的加密方式,并可以按照与确定出的加密方式对应的解密方式,对获取到的加密文件中的密文数据进行解密,因此解密方基于这种支持自解释的加密文件格式,无需与加密方事先约定加密方式,就可以对采用不同加密方式得到的加密文件成功解密,成功恢复出原始文件,从而提高了文件解密的灵活性,也改善了加密方和解密方的用户体验。
需要说明的是,本说明书中提供的文件加密方法与文件解密方法,不仅对文件传输、文件存储的过程友好,同时也可以支持并行计算,从而缩短文件加密与文件解密的耗时,提高文件加密与文件解密的执行效率。
例如,可以结合spark、hadoop等MapReduce框架,先对原始文件进行文件分片,再由各个工作线程分别读取与原始文件对应的各个文件分片,以进行文本编码、文件压缩、文件加密等处理,也可以先分别读取加密文件所包括的密文数据中的各个加密后的文件分片,以进行文件解密、文件解压缩、文本解码等处理,再对处理完毕的各个文件分片进行合并处理,以恢复出原始文件。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面结合如图4所示的文件处理流程的示意图,对本说明书中的实施例进行说明。请参见图4,图4是一示例性的实施例示出的一种文件处理流程的示意图。
如图4所示,原始文件可以为“plain.txt”,原始文件的文件大小可以为1GB。加密方可以确定针对原始文件的加密方式为AES-GCM算法,针对原始文件“plain.txt”的文本编码方式为utf-8编码,针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法,针对原始文件“plain.txt”进行分片处理所采用的分片阈值(fixed_size)为8MB。
加密方可以按照8MB的分片阈值对原始文件“plain.txt”进行分片处理,得到与原始文件对应的文件分片chunk_0、文件分片chunk_1、......、文件分片chunk_n(n≥127,n为正整数)。
进一步地,加密方可以针对与原始文件“plain.txt”对应的各个文件分片进行并行化流处理。例如,加密方可以先按照utf-8编码,针对文件分片chunk_0的文本内容进行编码,再按照snappy压缩算法,对编码后的文件分片chunk_0进行压缩处理;进一步地,加密方可以按照AES-GCM算法,基于自身持有的加密密钥,对编码与压缩后的文件分片chunk_0进行加密,得到加密后的文件分片cipher_chunk_0。基于类似的文件分片处理过程,加密方也可以得到加密后的文件分片cipher_chunk_1、……、加密后的文件分片cipher_chunk_n,在此不再赘述。
在得到与各个文件分片对应的密文数据之后,加密方可以在与原始文件“plain.txt”对应的加密文件“File Object”中添加用于描述相关文件处理方式的元数据(metadata)。
相应地,基于如图4所示的文件处理流程的逆操作,解密方在获取到与原始文件“plain.txt”对应的加密文件“File Object”之后,可以根据加密文件“File Object”所包括的元数据(metadata)中各个字段,确定针对原始文件的加密方式为AES-GCM算法,针对原始文件“plain.txt”的文本编码方式为utf-8编码,针对原始文件“plain.txt”的文件压缩方式为snappy压缩算法。
进一步地,解密方可以针对加密文件所包括的密文数据(cipher_data)中的各个加密后的文件分片进行并行化流处理。例如,解密方可以先按照与AES-GCM算法对应的解密算法,基于自身持有的解密密钥,对加密后的文件分片cipher_chunk_0进行解密,再按照与snappy压缩算法对应的文件解压缩方式,对解密后的文件分片cipher_chunk_0进行解压缩,再按照与utf-8编码对应的文本解码方式,对解密后的文件分片cipher_chunk_0进行解码,得到原始文件分片chunk_0。基于类似的文件分片处理过程,加密方也可以得到原始文件分片chunk_1、......、原始文件分片chunk_n,在此不再赘述。
在得到与原始文件“plain.txt”对应的各个原始文件分片之后,解密方可以对各个原始文件分片进行合并处理,以得到原始文件“plain.txt”。
与上述文件加密方法与文件解密方法的实施例对应的,本说明书还提供了一种文件加密传输系统、一种文件加密装置、以及一种文件解密装置的实施例。
在本说明书中,所述文件加密传输系统可以包括加密方和解密方;所述加密方可以执行所述步骤202-步骤204,并可以将与原始文件对应的加密文件传输给所述解密方,以及,所述解密方可以执行所述步骤302-304,以实现本说明书的技术方案。
请参见图5,图5是一示例性的实施例示出的一种文件加密装置或文件解密装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图6,图6是一示例性的实施例示出的一种文件加密装置的框图。该文件加密装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。其中,所述文件加密装置可以包括:
第一确定单元602,用于确定针对原始文件的加密方式;
加密单元604,用于按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
在本实施例中,所述装置还包括:
第二确定单元,用于确定针对所述原始文件进行分片处理所采用的分片阈值;
分片单元,用于按照所述分片阈值,对所述原始文件进行分片处理,得到与所述原始文件对应的若干文件分片;
所述加密单元604,具体用于:
按照所述加密方式,分别对与所述原始文件对应的各个文件分片进行加密,得到加密后的各个文件分片,并基于加密后的各个文件分片生成与所述原始文件对应的加密文件;其中,所述加密文件包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述所述加密方式和所述原始文件的文件格式的元数据。
在本实施例中,所述装置还包括:
第三确定单元用于确定针对所述原始文件的文本内容进行编码所采用的文本编码方式;
编码单元,用于按照所述文本编码方式,对所述原始文件的文本内容进行编码;
所述加密单元604,具体用于:
按照所述加密方式,对编码后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文本编码方式的元数据。
在本实施例中,所述装置还包括:
第四确定单元,用于确定针对所述原始文件进行压缩所采用的文件压缩方式;
压缩单元,用于按照所述文件压缩方式,对所述原始文件进行压缩;
所述加密单元604,具体用于:
按照所述加密方式,对压缩后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文件压缩方式的元数据。
请参见图7,图7是一示例性的实施例示出的一种文件解密装置的框图。该文件解密装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。其中,所述文件解密装置可以包括:
获取单元702,用于获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据;
解密单元704,用于根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
在本实施例中,所述加密文件包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式和所述原始文件的文件格式的元数据;其中,所述各个文件分片为按照分片阈值对所述原始文件进行分片处理而得到的;
所述解密单元704,具体用于:
根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式和所述原始文件的文件格式,并按照与所述加密方式对应的解密方式,对加密后的各个文件分片进行解密,再根据所述原始文件的文件格式,对解密后的各个文件分片进行合并处理。
在本实施例中,所述加密文件包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件的文本内容进行编码所采用的文本编码方式的元数据;
所述装置还包括:
解码单元,用于根据所述加密文件中包括的元数据,确定针对所述原始文件的文本内容进行编码所采用的文本编码方式,并按照与所述文本编码方式对应的文本解码方式,对解密后的密文数据中的文本内容进行解码,得到所述原始文件的文本内容。
在本实施例中,所述加密文件包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件进行压缩所采用的文件压缩方式的元数据;
所述装置还包括:
解压缩单元,用于根据所述加密文件中包括的元数据,确定针对所述原始文件进行压缩所采用的文件压缩方式,并按照与所述文件压缩方式对应的文件解压缩方式,对解密后的密文数据进行解压缩,得到所述原始文件。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在......时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (16)
1.一种文件加密方法,所述方法包括:
确定针对原始文件的加密方式;
按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
2.根据权利要求1所述的方法,按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件之前,所述方法还包括:
确定针对所述原始文件进行分片处理所采用的分片阈值;
按照所述分片阈值,对所述原始文件进行分片处理,得到与所述原始文件对应的若干文件分片;
所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,包括:
按照所述加密方式,分别对与所述原始文件对应的各个文件分片进行加密,得到加密后的各个文件分片,并基于加密后的各个文件分片生成与所述原始文件对应的加密文件;其中,所述加密文件包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述所述加密方式和所述原始文件的文件格式的元数据。
3.根据权利要求1所述的方法,按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件之前,所述方法还包括:
确定针对所述原始文件的文本内容进行编码所采用的文本编码方式;
按照所述文本编码方式,对所述原始文件的文本内容进行编码;
所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,包括:
按照所述加密方式,对编码后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文本编码方式的元数据。
4.根据权利要求1所述的方法,按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件之前,所述方法还包括:
确定针对所述原始文件进行压缩所采用的文件压缩方式;
按照所述文件压缩方式,对所述原始文件进行压缩;
所述按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件,包括:
按照所述加密方式,对压缩后的原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和所述文件压缩方式的元数据。
5.根据权利要求2所述的方法,与所述原始文件对应的若干文件分片保持所述原始文件的数据结构。
6.根据权利要求1所述的方法,所述方法应用于隐私计算节点。
7.根据权利要求1所述的方法,所述方法由运行在可信执行环境中的文件加密应用程序执行。
8.一种文件解密方法,所述方法包括:
获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据;
根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
9.根据权利要求8所述的方法,所述加密文件包括对与所述原始文件对应的各个文件分片进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式和所述原始文件的文件格式的元数据;其中,所述各个文件分片为按照分片阈值对所述原始文件进行分片处理而得到的;
所述根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密,包括:
根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式和所述原始文件的文件格式,并按照与所述加密方式对应的解密方式,对加密后的各个文件分片进行解密,再根据所述原始文件的文件格式,对解密后的各个文件分片进行合并处理。
10.根据权利要求8所述的方法,所述加密文件包括对编码后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件的文本内容进行编码所采用的文本编码方式的元数据;
所述方法还包括:
根据所述加密文件中包括的元数据,确定针对所述原始文件的文本内容进行编码所采用的文本编码方式,并按照与所述文本编码方式对应的文本解码方式,对解密后的密文数据中的文本内容进行解码,得到所述原始文件的文本内容。
11.根据权利要求8所述的方法,所述加密文件包括对压缩后的原始文件进行加密而得到的密文数据,以及用于描述所述加密方式和针对所述原始文件进行压缩所采用的文件压缩方式的元数据;
所述方法还包括:
根据所述加密文件中包括的元数据,确定针对所述原始文件进行压缩所采用的文件压缩方式,并按照与所述文件压缩方式对应的文件解压缩方式,对解密后的密文数据进行解压缩,得到所述原始文件。
12.一种文件加密传输系统,所述系统包括加密方和解密方;
所述加密方按照自身确定的加密方式,对原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据;
所述加密方将所述加密文件传输给所述解密方;
所述解密方根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密,得到所述原始文件。
13.一种文件加密装置,所述装置包括:
第一确定单元,用于确定针对原始文件的加密方式;
加密单元,用于按照所述加密方式,对所述原始文件进行加密,得到与所述原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述所述加密方式的元数据。
14.一种文件解密装置,所述装置包括:
获取单元,用于获取与原始文件对应的加密文件;其中,所述加密文件包括对所述原始文件的文件内容进行加密而得到的密文数据,以及用于描述针对所述原始文件的加密方式的元数据;
解密单元,用于根据所述加密文件中包括的元数据,确定针对所述原始文件的加密方式,并按照与所述加密方式对应的解密方式,对所述加密文件中包括的密文数据进行解密。
15.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1-7或8-11中任一项所述的方法。
16.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-7或8-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310567035.2A CN116846588A (zh) | 2023-05-18 | 2023-05-18 | 文件加密方法、文件解密方法及文件加密传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310567035.2A CN116846588A (zh) | 2023-05-18 | 2023-05-18 | 文件加密方法、文件解密方法及文件加密传输系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116846588A true CN116846588A (zh) | 2023-10-03 |
Family
ID=88167847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310567035.2A Pending CN116846588A (zh) | 2023-05-18 | 2023-05-18 | 文件加密方法、文件解密方法及文件加密传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116846588A (zh) |
-
2023
- 2023-05-18 CN CN202310567035.2A patent/CN116846588A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290252B2 (en) | Compression and homomorphic encryption in secure query and analytics | |
RU2638639C1 (ru) | Кодер, декодер и способ кодирования и шифрования входных данных | |
US10608813B1 (en) | Layered encryption for long-lived data | |
US10476663B1 (en) | Layered encryption of short-lived data | |
CN112491832B (zh) | 一种文件传输方法及装置 | |
CN108737353B (zh) | 一种基于数据分析系统的数据加密方法及装置 | |
US10476661B2 (en) | Polynomial-based homomorphic encryption | |
KR102418090B1 (ko) | 원본 파일을 여러개로 분할하고 분할된 파일들을 암호화하고 암호화된 파일들을 복호화하여 원본 파일을 복원하는 컴퓨터 프로그램과 그 방법 | |
US11356254B1 (en) | Encryption using indexed data from large data pads | |
US20230267217A1 (en) | Method and system for differential deduplication in untrusted storage | |
JP2015114771A (ja) | データ暗号化装置、データ復元装置、データ暗号化方法、データ復元方法、データ暗号化プログラムおよびデータ復元プログラム | |
CN110971581B (zh) | 加密数据处理方法和装置 | |
CN116846588A (zh) | 文件加密方法、文件解密方法及文件加密传输系统 | |
CN113704206B (zh) | 一种元数据的处理方法、装置、电子设备及存储介质 | |
CN116405482A (zh) | 一种日志文件的传输方法、系统、终端及存储介质 | |
JP6796716B2 (ja) | 暗号化オペレーションの回数を減らした上でデータをセキュア化するための効率的暗号化方法 | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
CN114995949A (zh) | 容器镜像构建方法及装置 | |
Masram et al. | Efficient Selection of Compression-Encryption Algorithms for Securing Data Based on Various Parameters | |
CN114521260A (zh) | 在不可信存储系统中进行数据去重和压缩的方法和系统 | |
CN106570410B (zh) | 一种数据的加密方法、解密方法、装置和系统 | |
CN115563638B (zh) | 数据处理方法、系统、设备及存储介质 | |
US9547777B2 (en) | Validating compressed archive keys | |
CN115758434B (zh) | 一种数据高效编码加密方法 | |
US11989325B1 (en) | Protecting membership in a secure multi-party computation and/or communication |
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 |