发明内容
基于现有技术存在的问题,本发明使用分布式密钥生成方案来解决权力集中、密钥泄露等问题,使用IPFS分布式存储系统解决恶意攻击系统问题,提升文件管理的安全性及健壮性。因此提供了一种分布式加密存储方法和系统、计算机设备和可读存储介质。
在本发明的第一方面,本发明提供了一种分布式加密存储方法,包括:
文件拥有者提出文件上传申请,基于所述上传申请确定出对应的文件参与者;
所述文件参与者选择一个t-1次多项式,并从所述t-1次多项式中选择出初始值作为该文件参与者的随机密钥值;
所述文件参与者从所述t-1次多项式中分别计算出t个文件参与者的随机密钥值,并分发给对应的文件参与者;
将每个文件参与者得到的随机密钥值划分成n份,并向其他n-1文件参与者共享秘密份额;
从t个及以上秘密份额中恢复出随机密钥值,利用该恢复出的随机密钥值采用SM4算法对文件拥有者上传的文件加密;
将加密后的文件上传IPFS系统中,并生成所述加密后的文件对应的哈希值。
在本发明的第二方面,本发明还提供了一种分布式加密存储系统,包括:
对象指定模块,用于在文件拥有者提出文件上传申请后,基于所述上传申请确定出对应的文件参与者;
分布式密钥生成模块,用于所述文件参与者选择一个t-1次多项式,并从所述t-1次多项式中选择出初始值作为该文件参与者的随机密钥值;所述文件参与者从所述t-1次多项式中分别计算出t个文件参与者的随机密钥值,并分发给对应的文件参与者;将每个文件参与者得到的随机密钥值划分成n份,并向其他n-1文件参与者共享秘密份额;从t个及以上秘密份额中恢复出随机密钥值;
加密模块,利用该恢复出的随机密钥值采用SM4算法对文件拥有者上传的文件加密;
IPFS系统,用于存储加密后的文件,并生成所述文件对应的哈希值。,
在本发明的第三方面,基于本发明的第一方面,本发明还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明第一方面所述的一种分布式加密存储方法。
在本发明的第四方面,基于本发明的第一方面,本发明还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的一种分布式加密存储方法。
本发明的有益效果:
本发明利用IPFS系统实现分布式存储,提升了文件的容灾能力和获取能力。通过SM4和分布式密钥生成实现对文件的加密和对密钥的管理。基于本发明可以为企业用户提供了多部门协同授权文件的管理和存储方案。并且本发明只需要经过最低份额数的部门授权,就可以通过IPFS分布式网络获取经过认证后的文件,极大的方便了企业用户的使用。本发明还基于文件属性和文件拥有者所特需的规则设定来对该文件划分出等级,按照该等级来确定出对应等级的文件参与者,能够保证文件在加密过程的可靠性和合法性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在具体说明本发明实施例之前,需要对本发明的一些概念进行说明,在本发明实施例中,可以包括多种节点,这些节点可以分别作为文件拥有者、文件参与者以及文件请求者等身份;可以理解的是,每个节点可以同时具有这三种身份,也就是说某节点可以既作为文件拥有者上传文件,也可以作为文件参与者来加密存储文件,还可以作为文件请求者来请求加密存储后的文件;这些节点可以是计算机、服务器、平板电脑、个人数字助理(英文:Personal Digital Assistant,缩写:PDA)、移动互联网设备(英文:Mobile InternetDevice,缩写:MID)等具备存储、运算处理能力的设备,还可以是安装应用软件且能够联网的设备,本发明对此不作任何限制。
图1是本发明实施例中的一种分布式加密存储方法流程图;如图1所示,所述方法包括:
101、文件拥有者提出文件上传申请,基于所述上传申请确定出对应的文件参与者;
在本发明实施例中,鉴于企业用户对文件更为强烈的保密需求,本发明按照文件拥有者上传的申请来确定出合适的文件参与者,一方面,该文件参与者具有更高级别的保密性能,另一方面,该文件参与者还能够提供更为强有力的计算能力。
基于此,所述文件拥有者根据其自身的规则设定和文件属性对需上传的文件分级,并将分级标识嵌入到上传申请中,按照所述上传申请中文件分级后的结果选择出对应等级的文件参与者范围。
在一些实施例中,对于部分企业用户的文件拥有者来说,其本身属于涉密单位,或者企业内部规定中要求文件不可使用、汇编、复制等;同时,其准备上传的文件也可能属于高级别的涉密文件,包括但不限于绝密文件、机密文件和秘密文件等,因此本发明需要根据文件拥有者自身的规则设定和文件属性对上传的文件进行分级,例如可以分为高级和低级;同时,文件参与者是一种能够参与传输、运算和存储的设备或者节点,诸如手机终端、计算机、服务器、平板电脑、个人数字助理(英文:Personal Digital Assistant,缩写:PDA)、移动互联网设备(英文:Mobile Internet Device,缩写:MID)等可以安装存储或/和处理文件的设备,本发明对此不作任何限制。这些设备节点可以位于不同区域,然而这些设备节点本身的可靠性可能略有不同,因此,本实施例同样对这些设备进行分级,将位于企业内部某些特定部门的设备节点设置为高级,位于企业内部一些普通部门的设备节点设置为低级;当文件拥有者发出上传申请后,可以计算出该上传申请对应的级别,假设对应的级别为高级,那么此时文件参与者的范围只能从某些特定部门的设备节点中进行选择,假设对应的级别为低级,那么此时文件参与者的范围可以从某些特定部门的设备节点也可以从一些普通部门的设备节点中进行选择。也就是说必须尽可能满足上传申请所对应的级别,这样才能保证在进行加密和解密计算的过程中确保密钥信息不容易泄露,增强数据安全性;举个例子,在某企业内部,其财务数据属于高级别的文件,因此,在对财务数据进行上传时,则需要财务部门或者更为机密的部门来作为文件参与者共享随机密钥值,从而保证财务数据在加密过程和解密过程以及存储阶段都不容易被泄露。
在一些实施例中,所述文件拥有者根据其自身的规则设定和文件属性对需上传的文件分级包括设置出融合函数,将内函数作为规则设定的第一权重函数Wi(x,θi),外函数作为文件属性的第二权重函数Wj(x,θj);所述融合函数表示为Wj(Wi(x,θi),θj);
x表示上传的文件;Wi表示规则设定权重模型函数;Wj表示文件属性权重模型参数;θi表示文件拥有者的第i个规则设定信息,θj表示为上传的文件的第j个文件属性信息。
其中,Wi用于刻画不同规则设定信息所带来的权重影响,例如某公司的内部规定中要求不允许复制文件,则表示对应的θi=1;Wi用于刻画不同文件属性信息所带来的权重影响,例如文件属于涉密文件,则表示对应的θj=1。其中,i和j的具体范围可以由规定设定的条数以及文件属性的个数来决定,本发明对具体的规则设定和文件属性不作限制,本领域技术人员能够结合实际情况基于上述实施例进行一些适应性的调整和变通。
在本实施例中,基于所述融合函数可以计算出每个上传申请所对应的函数值,经过多次试验,本领域技术人员可以将该函数值划分到不同区间,按照对应区间作为一个对应的级别;举个例子,假设融合函数的归一化值区间可以是[0,0.6)和[0.6,1],将[0,0.6)作为高级别,将[0.6,1]作为低级别,按照该等级进行对应划分。
103、所述文件参与者选择一个t-1次多项式,并从所述t-1次多项式中选择出初始值作为该文件参与者的随机密钥值;
在本发明实施例中,为了实现分布式密钥生成方案,文件参与者P
i会选择一个t-1次多项式
且P
i选择的随机密钥值为s
i=f
i(0)。
其中,ai,j∈Zp *,ai,j表示文件参与者Pi在第j个门限的私钥;x表示分布式密钥值。
105、所述文件参与者从所述t-1次多项式中分别计算出t个文件参与者的随机密钥值,并分发给对应的文件参与者;
文件参与者Pi在计算yi,j=fi(j)后将其安全地发送给其他文件参与者Pj。Pj收到所有yi,j(i=1,2,...,n)后,其中yj,j为文件参与者Pj自身构造所得。
在一些优选实施例中,由于不能保证文件参与者Pi都是诚实的,因此本发明实施例中加入了可验证部分。本发明需要对所述文件参与者进行验证,若验证通过,则将其随机密钥值划分出n份,否则舍弃该文件参与者。为了实现这个可验证过程:
文件参与者P
i需要广播
其中k=0,1,...,t-1,同时,文件参与者P
i计算y
i,j=f
i(j),随后将其安全地发送给文件参与者P
j。文件参与者P
j收到文件参与者P
i发送的y
i,j后,可验证其有效性:
若验证通过,即表示其有效,则可以计算最终的共享份额。
107、将每个文件参与者得到的随机密钥值划分成n份,并向其他n-1文件参与者共享秘密份额;
将所有文件参与者计算的得到的随机密钥值划分为n份,并计算最终的共享秘密份额yj=y1,j+y2,j+...+yn,jmodp,将每一份额的秘密共享给其他文件参与者。
109、从t个及以上秘密份额中恢复出随机密钥值,利用该恢复出的随机密钥值采用SM4算法对文件拥有者上传的文件加密;
在本发明实施例中,t个及以上秘密份额恢复出联合生成的随机密钥值s=s1+s2+...+sn,并对文件采用SM4算法进行加密。
SM4算法是一种国密加密算法,与DES和AES算法类似,SM4算法也是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。
本发明对文件拥有者上传的文件使用本发明生成的分布式密钥即恢复出的随机密钥值进行SM4加密。其中,SM4算法的加解密过程的算法相同但是轮密钥的使用顺序相反,解密过程中需要将模2加和循环移位作为基本运算。
111、将加密后的文件上传IPFS系统中,并生成所述加密后的文件对应的哈希值。
在本实施例中,在所述生成所述文件对应的哈希值之后还包括将所述文件对应的哈希值反馈给n个文件参与者,文件参与者将所述文件对应的哈希值作为索引,从IPFS系统中找到对应的文件,该文件参与者确定出其自身对应的秘密份额,当其他t-1个文件参与者提供出剩余的t-1个秘密份额后;利用这t个秘密份额重构出密钥,从IPFS系统中下载文件后利用所述密钥完成文件解密。
在文件上传后,本发明需要获取IPFS系统返回的文件的HASH值,也就是说需要将文件的HASH值返回给文件参与者,这样才能将所述文件对应的哈希值作为索引,从IPFS系统中找到对应的文件。
在需要获取文件的时候,文件请求者输入文件HASH并通知对应的份额拥有的n个文件参与者。经各文件参与者许可后根据提供的份额生成原始加密密钥并解密文件供用户下载。
图2是本发明实施例中的数据上传流程图,如图2所示,数据上传的流程主要包括:
确定出文件参与者,所述文件参与者即文件授权部门用来为加密存储过程生成分布式密钥;
使用确定出的文件授权部门来计算并分发随机密钥值;
对文件授权部门分发出的随机密钥值进行验证,如果验证通过,则生成共享秘密份额,否则继续计算并分发随机密钥值;
按照共享的秘密份额生成分布式随机密钥;
利用分布式随机密钥调用加密算法来加密文件;
加密文件后上传至IPFS系统中,生成该加密文件对应的哈希值,并向对应的文件授权部门反馈对应的哈希值。
图3是本发明实施例中的数据下载流程图,如图3所示,数据下载的流程主要包括:
文件请求者首先获取加密文件对应的哈希值;
利用该哈希值可以从IPFS系统中下载对应的加密文件;
文件请求者需要提供出其对应的密钥份额,对这些密钥份额重构,生成对应的密钥;利用该密钥来对下载的加密文件解密。
图4是本发明实施例中一种分布式加密存储系统架构图,如图4所示,包括:
401、对象指定模块,用于在文件拥有者提出文件上传申请后,基于所述上传申请确定出对应的文件参与者;
402、分布式密钥生成模块,用于所述文件参与者选择一个t-1次多项式,并从所述t-1次多项式中选择出初始值作为该文件参与者的随机密钥值;所述文件参与者从所述t-1次多项式中分别计算出t个文件参与者的随机密钥值,并分发给对应的文件参与者;将每个文件参与者得到的随机密钥值划分成n份,并向其他n-1文件参与者共享秘密份额;从t个及以上秘密份额中恢复出随机密钥值;
403、加密模块,利用该恢复出的随机密钥值采用SM4算法对文件拥有者上传的文件加密;
404、IPFS系统,用于存储加密后的文件,并生成所述文件对应的哈希值。
图5是本发明实施例中的一种计算机设备的结构图,如图5所示,所述计算机设备包括存储器530和处理器510,存储器530与处理器510之间通过总线520连接;该存储器530中存储有计算机程序,该处理器510被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
文件拥有者提出文件上传申请,基于所述上传申请确定出对应的文件参与者;
所述文件参与者选择一个t-1次多项式,并从所述t-1次多项式中选择出初始值作为该文件参与者的随机密钥值;
所述文件参与者从所述t-1次多项式中分别计算出t个文件参与者的随机密钥值,并分发给对应的文件参与者;
将每个文件参与者得到的随机密钥值划分成n份,并向其他n-1文件参与者共享秘密份额;
从t个及以上秘密份额中恢复出随机密钥值,利用该恢复出的随机密钥值采用SM4算法对文件拥有者上传的文件加密;
将加密后的文件上传IPFS系统中,并生成所述加密后的文件对应的哈希值。
可选地,本领域普通技术人员可以理解,图5所示的结构仅为示意,计算机设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图5其并不对上述电子装置计算机设备的结构造成限定。例如,计算机设备还可包括比图5中所示更多或者更少的组件(如网络接口等),或者具有与图5所示不同的配置。
其中,存储器530可用于存储软件程序以及模块,如本发明实施例中的一种分布式加密存储方法和系统对应的程序指令/模块,处理器510通过运行存储在存储器530内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种分布式加密存储方法。存储器530可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器530可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器530具体可以但不限于用于存储文件拥有者的文件,分布式密钥、IPFS的加密文件。
发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于一种分布式加密存储系统,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的一种分布式加密存储系统的方法所执行的操作。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于一种分布式加密存储系统,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的一种分布式加密存储系统的方法中一种分布式加密存储方法所执行的操作。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于网络设备,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的一种分布式加密存储方法中各个模块所执行的操作。
在本发明的描述中,需要理解的是,术语“同轴”、“底部”、“一端”、“顶部”、“中部”、“另一端”、“上”、“一侧”、“顶部”、“内”、“外”、“前部”、“中央”、“两端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋转”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。