掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链与IPFS的文件加密传输方法、介质以及设备

文献发布时间:2024-04-18 20:01:30


一种基于区块链与IPFS的文件加密传输方法、介质以及设备

技术领域

本发明涉及文件传输领域,具体涉及一种基于区块链与IPFS的文件加密传输方法、介质以及设备。

背景技术

区块链技术的去中心化特点能够兼顾数据传输过程中的数据安全以及个体的用户隐私,但由于区块链特点在区块链平台上写入数据需要产生交易,根据数据的容量大小计算需要相应的手续费。如果数据过多还可能因为交易产生的手续费超过平台的手续费限制,从而导致交易回滚。因此,区块链上不适合存储大文件,只适合存储小的信息。基于IPFS网络的分布式文件传输能够存储大容量的文件信息,但对于每一文件需要进行分片后存储,分片文件的存储均对应于一个IPFS的命名,这一方式不便于用户单独取用与记忆。

发明内容

鉴于上述问题,本发明提供了一种基于区块链与IPFS的文件加密传输方法、介质以及设备,解决了现有的区块链不适合存储大文件,以及IPFS网络中大文件的分片不便于取用与记忆的问题。

为实现上述目的,在第一方面,本发明提供了一种基于区块链与IPFS的文件加密传输方法,适用于第一用户端;方法包括:

对待传输文件进行分片,获得根分片文件以及剩余分片文件;

将剩余分片文件上传至IPFS网络;以及

将根分片文件按照第一加密形式进行加密,获得第一加密密钥以及第一加密文件;

将第一加密文件上传至IPFS网络;以及

将第一加密密钥按照第二加密形式进行加密,获得第二加密文件,将第二加密文件上链并存储。

在一些实施例中,方法还包括:

生成第一标识信息,第一标识信息包括第一加密文件的标识信息;

将第一加密密钥按照第二加密形式进行加密,获得第二加密文件,将第二加密文件上链并存储还包括:

将第二加密文件与第一标识信息上链并存储。

在一些实施例中,根分片文件包括第二标识信息组,第二标识信息组包括按照预设顺序排布的多个第二标识信息,每一第二标识信息对应一个剩余分片文件的标识信息,预设顺序为剩余分片文件的分片顺序。

在一些实施例中,将剩余分片文件上传至IPFS网络还包括:

将第二标识信息与剩余分片文件映射存储并上传至IPFS网络。

在一些实施例中,第一加密形式为对称式加密,第二加密形式为非对称式加密。

在第二方面,本发明还提供一种基于区块链与IPFS的文件加密传输方法,适用于第二用户端;方法包括:

获取链上存储的第二加密文件,并对第二加密文件解密,获得第一加密密钥;以及

获取IPFS网络上存储的第一加密文件,根据第一加密密钥对第一加密文件进行解密,获得根分片文件;

解析根分片文件,根据根分片文件获取IPFS网络上存储的剩余分片文件;

根据根分片文件对剩余分片文件进行拼接,获得待传输文件。

在一些实施例中,方法还包括:

接收文件下载指令,文件下载指令包括第三标识信息,第三标识信息包括待下载文件的标识信息;

获取链上存储的第二加密文件还包括:

获取第二加密文件对应的第一标识信息,判断第一标识信息与第三标识信息是否匹配,若是,则获取第二加密文件。

在一些实施例中,根分片文件包括第二标识信息组,第二标识信息组包括按照预设顺序排布的多个第二标识信息,每一第二标识信息对应一个剩余分片文件,预设顺序为剩余分片文件的分片顺序;

解析根分片文件包括:

获取根分片文件的第二标识信息组;

根据第二标识信息组中的多个第二标识信息,对应下载IPFS网络中的剩余分片文件;

根据根分片文件对剩余分片文件进行拼接包括:

将剩余分片文件按照第二标识信息组中的预设顺序进行拼接。

在第三方面,本发明还提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现在第一方面所述的方法。

在第四方面,本发明还提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现在第一方面所述的方法。

区别于现有技术,上述技术方案中,通过将第一用户端与第二用户端均与区块链以及IPFS网络建立通信连接,第一用户端作为待传输文件的发出端,先将待传输文件分片形成根分片文件以及剩余分片文件,将剩余分片文件上传至IPFS网络中,将根分片文件按照第一加密形式加密后生成第一加密文件以及第一加密密钥,将第一加密文件也上传至IPFS网络中,并将第一加密密钥按照第二加密形式进行加密生成第二加密文件,将第二加密文件上传至区块链中并存储;第二用户端作为待传输文件传输后的下载端,可以在区块链上获取第二加密文件,再对第二加密文件进行解密后生成第一加密密钥,并对应下载IPFS网络中的第一加密文件,利用第一加密密钥对第一加密文件进行解密,获得根分片文件,根据根分片文件在IPFS网络中对应下载剩余分片文件,再拼接形成待传输文件,从而完成文件的下载过程。本技术方案充分利用了区块链的去中心化特点,保证了第二加密文件传输过程中的安全性,同时利用IPFS网络的大文件存储优势,将根分片文件与剩余分片文件存储在IPFS网络中,便于第二用户端的获取,同时,本技术方案只需要对根分片文件进行加密,降低了文件加密传输过程中的加密成本,同时,剩余分片文件的未加密状态能够保留文件在IPFS网络中的文件去重功能,提高文件存储与传输效率。

上述发明内容相关记载仅是本发明技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本发明的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本发明的上述目的及其它目的、特征和优点能够更易于理解,以下结合本发明的具体实施方式及附图进行说明。

附图说明

附图仅用于示出本发明具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本发明的限制。

在说明书附图中:

图1为本发明第一示例性实施例所述文件加密传输方法的步骤图;

图2为本发明第二示例性实施例所述文件加密传输方法的步骤图;

图3为本发明一具体实施例所述文件加密传输方法的流程图;

图4为本发明一具体实施例所述IPFS分片原理示意图;

图5为本发明一具体实施方式所述用于执行文件加密传输方法的电子设备示意图。

上述各附图中涉及的附图标记说明如下:

1、电子设备;

11、存储器;

12、处理器。

具体实施方式

为详细说明本发明可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本发明中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。

除非另有定义,本文所使用的技术术语的含义与本发明所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本发明。

在本发明的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。

在本发明中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。

在没有更多限制的情况下,在本发明中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的开放式表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。

与《审查指南》中的理解相同,在本发明中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本发明实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。

请参阅图1、图3与图4,在第一方面,本实施例提供了一种基于区块链与IPFS的文件加密传输方法,适用于第一用户端;方法包括:

S11、对待传输文件进行分片,获得根分片文件以及剩余分片文件;

S12、将剩余分片文件上传至IPFS网络,将根分片文件按照第一加密形式进行加密,获得第一加密密钥以及第一加密文件;

S13、将第一加密文件上传至IPFS网络,将第一加密密钥按照第二加密形式进行加密,获得第二加密文件;

S14、将第二加密文件上链并存储。

需要说明的是,第一用户端指代上传待传输文件的用户端,第二用户端指代下载待传输文件的用户端,例如,在企业A将文件传输给企业B,则将文件进行上传的企业A即第一用户端,将文件进行下载的企业B即第二用户端。后文关于第二用户端的表述以此为准。基于此,本实施例所示的文件加密传输方法适用于第一用户端,也即负责将文件进行上传的用户端。

具体的,第一用户端在上传待传输文件之前,可以预先利用IFPS系统对待传输文件进行分片,获得根分片文件以及多个剩余分片文件,其中,根分片文件中存储有剩余分片文件的标识信息;具体可以结合图4理解:IPFS(Inter Planetary File System即星际文件系统)是一种基于内容寻址、版本化、点对点的超媒体传输协议,允许网络中的参与者互相存储、索取和传输可验证的数据。在IPFS协议中,一个文件可以被切分为多个文件片,分别存储在多个不同文件存储节点上。文件拥有者通过自身的IPFS节点将文件分片,保留ROOT分片,其余分片上传到IPFS网络中。通过IPFS协议,分片会被分散到各个IPFS节点中,所有人都可以下载,但因为不存在ROOT分片,用户不知道分片数据意义也无法收集到对应分片。具体的,将一个待传输文件的全部分片文件组成一个DAG(有向无环图),可以分为多层,即多个剩余分片文件之间还可以具有层级关系,其中,根分片文件为DAG中的最顶层文件,其保存着指向下一层的剩余分片文件的连接,以此类推。

本实施例中,将剩余分片文件上传至IPFS网络进行存储,这一过程可以选择将剩余分片文件进行加密,也可以选择直接将剩余分片文件直接上传,优选直接将剩余分片文件进行上传,这一方式能够保留IPFS的文件去重功能,同时,剩余分片文件不是根分片文件,无法直接通过下载剩余分片文件生成待传输文件,依然能够保持文件在传输过程中的安全性。

需要说明的是,加密形式包括对称加密以及非对称加密,本实施例对根分片文件需要执行两次加密处理,为便于区分,将第一次加密处理记为按照第一加密形式进行加密,将第二次加密处理记为按照第二加密形式进行加密。第一加密形式与第二加密形式可以相同,也可以不同;优选的,本实施例所示第一加密形式为对称加密,第二加密形式为非对称加密。

具体的,根分片文件按照第一加密形式进行加密,获得第一加密密钥以及第一加密文件,将第一加密文件上传至IPFS网络进行存储,并将第一加密密钥按照第二加密形式进行加密,获得第二加密文件,即第二加密文件中包含有第一加密密钥。

将第二加密文件上传至区块链。

这一方式能够利用区块链的存储优势,自动保存第二加密文件的下载记录,当待传输文件产生泄露风险时,可以通过追溯区块链中的下载记录进行风险排查,进一步提升文件传输过程中的安全性。

在一些实施例中,方法还包括:

生成第一标识信息,第一标识信息包括第一加密文件的标识信息;

将第一加密密钥按照第二加密形式进行加密,获得第二加密文件,将第二加密文件上链并存储还包括:

将第二加密文件与第一标识信息上链并存储。

本实施例中,第一标识信息包括第一加密文件的标识信息,将第二加密文件与第一标识信息上链存储,便于第二用户端在区块链中对待传输文件对应的第二加密文件进行区分与识别,提高识别效率。

可选地,将第一加密文件上传至IPFS网络还包括:将第一加密文件与第一标识信息上传至IPFS网络,这一方式便于第二用户端在下载时对第一加密文件进行识别。

在一些实施例中,根分片文件包括第二标识信息组,第二标识信息组包括按照预设顺序排布的多个第二标识信息,每一第二标识信息对应一个剩余分片文件的标识信息,预设顺序为剩余分片文件的分片顺序。

本实施例中,根分片文件包括第二标识信息组,第二标识信息组包括按照预设顺序排布的多个第二标识信息,第二标识信息对应一个剩余分片文件的标识信息。需要说明的是,本实施例所示分片顺序是指待传输文件在分片过程中的分片顺序,其可以作为剩余分片文件在拼接过程中的拼接顺序参考。

在一些实施例中,将剩余分片文件上传至IPFS网络还包括:

将第二标识信息与剩余分片文件映射存储并上传至IPFS网络。

这一方式便于第二用户端在获得根分片文件后,在IPFS网络中对待传输文件对应的剩余分片文件进行查找与识别,进而提升剩余分片文件在IPFS网络中的查询识别效率。

在一些实施例中,第一加密形式为对称式加密,第二加密形式为非对称式加密。优选的,第二加密形式为非对称加密时,第二加密文件对应的第二解密密钥预先存储于第二用户端中,这一方式能够提高第二加密文件在传输过程中的安全性。

请参阅图2与图3,在第二方面,本实施例还提供一种基于区块链与IPFS的文件加密传输方法,适用于第二用户端;方法包括:

S21、获取链上存储的第二加密文件,并对第二加密文件解密,获得第一加密密钥,获取IPFS网络上存储的第一加密文件,根据第一加密密钥对第一加密文件进行解密,获得根分片文件;

S22、解析根分片文件,根据根分片文件获取IPFS网络上存储的剩余分片文件;

S23、根据根分片文件对剩余分片文件进行拼接,获得待传输文件。

本实施例所示文件加密传输方法对应于第二用户端,也即负责将文件进行下载的用户端。

具体的,第二用户端通过第一标识信息在区块链中查询第二加密文件,并将对应的第二加密文件进行下载,利用预先存储在第二用户端中的第二解密密钥对第二加密文件进行解密,获得第一加密密钥。当第一加密形式为对称加密时,第一加密密钥也即第一解密密钥,则第二用户端在IPFS上利用第一标识信息查找出第一加密文件并下载后,可以通过第一加密密钥对第一加密文件进行解密,获得根分片文件。再通过根分片文件获取IPFS网络上对应的剩余分片文件,并下载至本地,通过对剩余分片文件进行拼接,获得待传输文件。

本实施例充分利用区块链的去中心化特点,保证了第二加密文件传输过程中的安全性,同时利用IPFS网络的大文件存储优势,将根分片文件与剩余分片文件存储在IPFS网络中,便于第二用户端的获取,合理利用非对称加密的优势,实现了区块链、第一用户端、第二用户端与IPFS网络中文件的点对点传输,保证数据传输安全性。

在一些实施例中,方法还包括:

接收文件下载指令,文件下载指令包括第三标识信息,第三标识信息包括待下载文件的标识信息;

获取链上存储的第二加密文件还包括:

获取第二加密文件对应的第一标识信息,判断第一标识信息与第三标识信息是否匹配,若是,则获取第二加密文件。

需要说明的是,待下载文件与前文所述待传输文件为同一文件的不同状态,后文表述以此为准。

第三标识信息包括待下载文件的标识信息,第一标识信息还包括待传输文件的标识信息,具体的,判断第三标识信息与第一标识信息是否匹配可以这样理解:判断待下载文件的标识信息是否与待传输文件的标识信息一致,若是,则对第一标识信息对应的第二加密文件进行下载。

在一些实施例中,根分片文件包括第二标识信息组,第二标识信息组包括按照预设顺序排布的多个第二标识信息,每一第二标识信息对应一个剩余分片文件,预设顺序为剩余分片文件的分片顺序;

解析根分片文件包括:

获取根分片文件的第二标识信息组;

根据第二标识信息组中的多个第二标识信息,对应下载IPFS网络中的剩余分片文件;

根据根分片文件对剩余分片文件进行拼接包括:

将剩余分片文件按照第二标识信息组中的预设顺序进行拼接。

可以结合图3与图4,对待传输文件的传输过程进行理解:

需要说明的是,文件拥有者O即第一用户端,文件接受者T即第二用户端,文件F即待传输文件,其中,根分片文件即根分片Root(简称Root文件),剩余分片文件记为文件分片(简称为分片或其他分片),第一加密文件即Croot,第一加密密钥记为Key,第二加密文件记为Ckey,第二标识信息记为文件分片id。则图3示出了如下操作流程:

1)文件拥有者O将文件分片后,将除Root文件之外的其他分片都上传至IPFS网络

2)文件拥有者O做如下操作:

(1)生成对称密钥Key,用Key加密根分片Root,记为Croot;

(2)将Croot上传至IPFS网络;

(3)将Key用T的公钥加密,记为Ckey;

(4)将Ckey上传至区块链;

3)T做如下操作:

(1)从区块链上获取Ckey,从IPFS网络获取Croot;

(2)使用私钥解密Ckey,获得Key;

(3)使用Key解密Croot,获取原始Root;

(4)使用Root从IPFS网络获取该文件对应的各个分片id,并将其拼接为文件F。

上述实施例具有如下有益效果:

1)、分享的文件F只有T能拿到(只有T能解密Ckey);

2)、“文件被分享给T”这件事被记录到区块链上。因此后续如果文件F被泄露,则O和T是泄露的嫌疑人,只有O和T拥有该文件F。

3)、对比传统文件加密方案,传统加密方案会将文件切片全部加密,导致文件去重功能失效和加密成本过高,本实施例通过只加密根分片文件的方式可以有效降低加密成本,并且保留文件去重功能。

在第三方面,本实施例还提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现在第一方面所述的方法。

请参阅图5,在第四方面,本实施例还提供一种电子设备1,包括存储器11和处理器12,所述存储器11用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器12执行以实现在第一方面所述的方法。

所述存储介质/存储器11包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。所述处理器12包括但不限于CPU(中央处理器12)、GPU(图像处理器12)、MCU(微处理器12)等。

上述技术方案中,通过将第一用户端与第二用户端均与区块链以及IPFS网络建立通信连接,第一用户端作为待传输文件的发出端,先将待传输文件分片形成根分片文件以及剩余分片文件,将剩余分片文件上传至IPFS网络中,将根分片文件按照第一加密形式加密后生成第一加密文件以及第一加密密钥,将第一加密文件也上传至IPFS网络中,并将第一加密密钥按照第二加密形式进行加密生成第二加密文件,将第二加密文件上传至区块链中并存储;第二用户端作为待传输文件传输后的下载端,可以在区块链上获取第二加密文件,再对第二加密文件进行解密后生成第一加密密钥,并对应下载IPFS网络中的第一加密文件,利用第一加密密钥对第一加密文件进行解密,获得根分片文件,根据根分片文件在IPFS网络中对应下载剩余分片文件,再拼接形成待传输文件,从而完成文件的下载过程。本技术方案充分利用了区块链的去中心化特点,保证了第二加密文件传输过程中的安全性,同时利用IPFS网络的大文件存储优势,将根分片文件与剩余分片文件存储在IPFS网络中,便于第二用户端的获取,同时,本技术方案只需要对根分片文件进行加密,降低了文件加密传输过程中的加密成本,同时,剩余分片文件的未加密状态能够保留文件在IPFS网络中的文件去重功能,提高文件存储与传输效率。

最后需要说明的是,尽管在本发明的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本发明的专利保护范围。凡是基于本发明的实质理念,利用本发明说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本发明的专利保护范围之内。

相关技术
  • 一种具有宁夏地域风味特色的羊肉调味料的制备方法
  • 一种具有天然风味的抹茶香精及其制备方法
  • 一种用于改善米香型白酒风味的净化介质及其净化方法
  • 一种经济用香榧复合肥及其制备方法
  • 一种具有香榧风味白酒的制备方法
  • 一种具有咖啡风味的白酒及其制备方法
技术分类

06120116557914