1.一种基于区块链的文件存储方法,其特征在于,所述方法包括:
第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
所述第一客户端将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应,包括:所述证书颁发中心随机生成所述第二加密密钥,根据所述第一客户端发送的定向分享策略,确定至少一个目标属性,若所述第二客户端具有所述目标属性,则所述证书颁发中心生成与所述第二客户端对应的第二解密密钥;
所述证书颁发中心将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;根据所述目标属性建立每个所述第二客户端对应的第二客户端凭证,并根据所述第二客户端凭证建立第二客户端集合,其中,所述第二客户端集合包括由第二客户端代码以及所述第二客户端凭证组成的键值对;根据所述至少一个目标属性建立属性集合,其中,所述属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
所述第一客户端利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
所述第二客户端在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二客户端凭证以及所述属性撤销标识,验证所述第二客户端的权限是否被撤销;若被撤销,则解密结束,否则利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
所述第二客户端根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件。
2.根据权利要求1所述的文件存储方法,其特征在于,所述第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件,具体包括:所述第一客户端随机生成所述第一解密密钥;
所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件。
3.根据权利要求1所述的文件存储方法,其特征在于,所述方法还包括:所述证书颁发中心解析撤销指令,得到待撤销第二客户端;
所述证书颁发中心在所述第二客户端集合中查找所述待撤销第二客户端对应的待撤销第二客户端凭证;
所述证书颁发中心在所述属性集合中查找所述待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
根据所述待撤销第二客户端凭证更新所述待撤销目标属性对应的属性撤销标识。
4.根据权利要求2所述的文件存储方法,其特征在于,所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥,具体包括:在椭圆上确定基点G,并生成与所述第一解密密钥k对应的所述第一加密密钥K,其中K=kG;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件,具体包括:利用随机数r、所述基点G以及所述第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
所述利用所述第一解密密钥解密所述加密后的共享文件,具体包括:
利用所述加密后的共享文件C,根据M=C1‑kC2,得到所述编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
5.根据权利要求1所述的文件存储方法,其特征在于,所述文件路径为所述文件在所述网络存储中的哈希地址。
6.一种基于区块链的文件存储系统,其特征在于,所述系统包括:
第一加密模块,用于第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
第一上传模块,用于将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
密钥生成模块,用于证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应;
第二上传模块,用于将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;
第二加密模块,用于利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
第一解密模块,用于在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
第二解密模块,用于根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件;
所述密钥生成模块,具体用于:所述证书颁发中心根据所述第一客户端发送的定向分享策略,确定至少一个目标属性;若所述第二客户端具有所述目标属性,则所述证书颁发中心生成与所述第二客户端对应的第二解密密钥;
所述密钥生成模块,还用于:所述证书颁发中心根据所述目标属性建立每个所述第二客户端对应的第二客户端凭证,并根据所述第二客户端凭证建立第二客户端集合,其中,所述第二客户端集合包括由第二客户端代码以及所述第二客户端凭证组成的键值对;所述证书颁发中心根据所述至少一个目标属性建立属性集合,其中,所述属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
所述第一解密模块,还用于:所述第二客户端利用所述第二客户端凭证以及所述属性撤销标识,验证所述第二客户端的权限是否被撤销;若被撤销,则解密结束。
7.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至5中任一项所述的文件存储方法的步骤。
8.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5中任一项所述的文件存储方法。