一种基于公共密钥池的云存储安全控制方法和系统与流程

文档序号:16244928发布日期:2018-12-11 23:29阅读:203来源:国知局
一种基于公共密钥池的云存储安全控制方法和系统与流程

本发明涉及云存储领域,尤其涉及一种基于公共密钥池的云存储安全控制方法和系统。

背景技术

随着科技的发展,云存储已经越来越成为一种趋势,各种云存储技术层出不穷,为了保证云存储数据的安全,通常会利用各种加密方法来保证数据的安全性,例如,可以通过非对称密钥加密来保证数据的安全性,非对称密钥加密需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公钥,另一个由用户自己秘密保存,即私钥。信息发送者用公钥去加密,而信息接收者用私钥去解密。

由于云存储中多采用共享存储,这使得服务商需要对私钥进行控制,导致私钥的安全性较低。公开号为cn103236934a,发明名称为“一种云存储安全控制的方法”的发明专利文献,公开了一种用于解决私钥安全性较低的问题的方法。该发明使用两种不同的加密方式对用户的私钥进行加密并分别存储。

当前企业或事业单位有时有数据上云的需求,而公有云一般不容易受这些单位信任,被认为信息安全可能有问题,或者密钥容易被黑客所获得并破解,因此造成了公有云客户对数据上云有后顾之忧。

现有技术存在的问题:

(1)在云服务端上进行密钥存储有一定的危险性。公有云客户对数据上云有后顾之忧。

(2)文件密钥如果是伪随机密钥,则无法实现密钥的真随机性,可能被预测,安全性不足。

(3)用户端加密程序执行环境不够安全,如有病毒木马则内存中的密钥可能被监控。



技术实现要素:

基于此,有必要针对上述问题,提供一种基于公共密钥池的云存储安全控制方法和系统。

一种基于公共密钥池的云存储安全控制方法,包括用户端将利用文件密钥加密的数据文件上传至服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用量子密钥卡所产生的真随机数与密钥池装置结合生成,且用户端将所述真随机数上传至服务器。

当前有很多存储云服务,其中包括很多公有云。本发明中,存储云的服务器简称为服务器。

本发明中所述用户端为接入存储云的设备,可为移动终端,或为固定终端。终端均配备有量子密钥卡ukey,ukey中还带有真随机数发生器,真随机数发生器产生真随机数与密钥池装置结合生成文件密钥。利用量子密钥卡内的真随机数生成文件密钥,保证文件密钥的真随机性,大大提高文件密钥的安全性,同时量子密钥卡为独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低,真随机数上传至服务器,而非文件密钥存储,解决了密钥存储在服务器上被窃取的危险性。

可选地,所述用户端有一个或多个,所述密钥池装置内存储有供各用户端访问的公共密钥池,所述用户端与所述密钥池装置通信连接,上传数据文件的用户端利用所述公共密钥池提取存储密钥并相应生成文件密钥以加密数据文件,下载数据文件的用户端利用所述公共密钥池结合来自服务器的真随机数相应生成文件密钥以解密出数据文件。

本发明中,属于一个云客户端群组的各个云客户端所匹配的ukey颁发方为ukey的主管方,一般为某企业或事业单位的管理部门;ukey被颁发方为ukey的主管方所管理的成员,一般为某企业或事业单位的各级员工,其使用存储云客户端进行云端数据存取,下文统称成员所使用的存储云客户端为用户端。用户端首先到ukey的主管方申请开户。当用户端进行注册登记获批后,将得到ukey(具有唯一的id)。ukey存储了客户的公钥和私钥,客户的注册登记信息,还内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。

各用户端拥有存储在所述密钥池装置内的公共密钥池,可实现多个用户端文件共享,同时密钥池的设定,使得下载数据文件的用户端需利用来自服务器的真随机数结合所述公共密钥池相应生成文件密钥,在没有得到密钥池的情况下,即使得到真随机数也无法得到加密文件的文件密钥,进一步提高文件密钥的安全性。

可选地,所述文件密钥生成方法包括:将真随机数结合密钥池装置内指定的密钥选择算法得到指针,利用该指针从所述密钥池装置中提取对应的加密密钥以及加密的kkp,所述kkp为所述密钥池装置生成的真随机数,用于解密所述加密密钥得到存储密钥,该存储密钥结合密钥生成算法得到所述文件密钥。

文件密钥根据存储密钥计算所得,组织内不同部门所用计算方法不同,无法获得并解密其他部门的云存储信息,实现了部门间的信息隔离。

可选地,所述用户端与所述密钥池装置通信连接,用户端将真随机数加密后上传至所述密钥池装置,加密方式为使用公钥加密真随机数得到真随机数密文;所述密钥池装置使用私钥解密所述真随机数密文得到真随机数;密钥池装置利用所述真随机数提取并传递所述加密密钥和所述加密的kkp至所述用户端,所述用户端解密加密的kkp,进而得到存储密钥。

可选地,所述用户端将真随机数加密后上传至所述服务器,加密方式为使用公钥加密真随机数得到个人密钥,以及使用文件特征值加密真随机数得到数据密钥;所述用户端将所述个人密钥、所述数据密钥以及所述密钥选择算法的id以及所述密钥生成算法的id发送至所述服务器。

本发明采用非对称加密算法得到个人密钥,后续访问中,用户端只需要使用己有私钥对个人密钥进行解密,即可得到真随机数,并进一步得到文件密钥。

可选地,所述密钥生成算法包括:

初级密钥生成算法,用于结合所述存储密钥生成初级文件密钥;

自选密钥生成算法,用于结合所述初级文件密钥生成所述文件密钥;

且自选密钥生成算法id作为所述服务器是否进行去重判断的标识。

其中,自选密钥生成算法为私有函数,自选密钥生成算法id为ff0时,服务器需进行去重判断。去重判断,鉴别重复文件有效减轻存储压力。

一种基于公共密钥池的云存储安全控制方法,包括服务器接收并存储来自用户端利用文件密钥加密的数据文件,所服务器还接收并存储来自用户端的真随机数,该真随机数用于供用户端下载并生成供解密的文件密钥。

服务器存储真随机数而非文件密钥存储,解决了密钥存储在服务器上被窃取的危险性。

可选地,所述真随机数为密文形式,包括所述用户端使用公钥加密真随机数得到的个人密钥,以及所述用户端使用文件特征值加密真随机数得到的数据密钥。

可选地,所述服务器还接收并存储来自所述用户端的与生成所述文件密钥相关的算法id,其中一算法id作为服务器是否进行去重判断的指示标识;

当服务器依据所述指示标识进行去重判断时,所述服务器在接收所述用户端的所述数据文件前进行去重判断;

当服务器依据所述指示标识不进行去重判断时,接受存储来自所述用户端的与生成所述文件密钥相关的算法id。

一种基于公共密钥池的云存储系统,包括用户端、密钥池装置及服务器,用户端将利用文件密钥加密的数据文件上传至服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用量子密钥卡所产生的真随机数与密钥池装置结合生成,且用户端将所述真随机数上传至服务器;

服务器接收并存储来自用户端的数据文件和真随机数;

用户端下载真随机数以及利用文件密钥加密的数据文件,并利用所述真随机数与所述密钥池装置结合生成文件密钥,解密获得数据文件。

上述一种基于公共密钥池的云存储安全控制方法和系统,用户端将利用文件密钥加密的数据文件上传至服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用量子密钥卡所产生的真随机数与密钥池装置结合生成,且用户端将所述真随机数上传至服务器;服务器接收并存储来自用户端的数据文件和真随机数;用户端下载真随机数以及利用文件密钥加密的数据文件,并利用所述真随机数与所述密钥池装置结合生成文件密钥,解密获得数据文件。云存储过程中,服务器端无法接触到文件密钥以及解密后的数据文件,解决用户端对云存储数据安全性的担忧,利用量子密钥卡所产生的真随机数生成真随机性的文件密钥,提高密钥安全性的同时保证用户端加密程序执行环境的安全。

附图说明

图1为本发明实施例提供的存储系统的结构示意图;

图2为公共密钥池装置的结构示意图;

图3为随机数发生器产生的真随机数的加密方式示意图;

图4为本发明实施例提供的文件密钥生成流程图;

图5为本发明实施例提供的存储方法的时序图;

图6为本发明实施例提供的读取方法的时序图;

图7为本发明实施例1提供的存储方法的流程图;

图8为本发明实施例2提供的存储方法的流程图。

图9为本发明实施例3提供的读取方法的流程图。

具体实施方式

图1为本发明实施例提供的存储系统的结构示意图,云客户端群组cc与密钥池装置以及云存储cs分别网络连接。其中云客户端群组cc由多个云客户端组成。在本实施例中,存储云的服务器即云存储简称为服务器,云客户端简称为用户端。基于公共密钥池的云存储系统,包括用户端、密钥池装置及服务器,每个用户端都存有自己的私钥和公钥。图1中ka/kap即指a的私钥/公钥。用户端有量子密钥卡ukey,用来存储自己的私钥以及进行密码学计算,此外根据设计需要,ukey里面有真随机数发生器。

密钥池装置p的结构示意图如图2所示,密钥池装置p包括:

根密钥区,用于取出根密钥kr;

随机数发生器,用于产生真随机数作为密钥的密钥,该密钥的密钥称为kkp,在本实施例中,随机数发生器优选为量子随机数发生器;

云客户端群组cc所拥有的公共密钥池kp。

其中,公共密钥池kp容量巨大,例如可以从1g~4096g不等,均为真随机数,优选为量子随机数。密钥池装置p可存储多个kp,图中p存储有1~m共m个kp区域。kp用密钥池装置中的随机数发生器产生的kkp加密,kkp的加密方式如图3所示,用kr以及各个云客户端a、b、……n的公钥kap、kbp、……knp分别加密。

文件密钥生成方法,如图4所示,将真随机数结合密钥池装置内指定的密钥选择算法fp得到指针kp,利用该指针kp从所述密钥池装置中提取对应的加密密钥以及加密的kkp,所述kkp为所述密钥池装置生成的真随机数,用于解密所述加密密钥得到存储密钥ks,该存储密钥ks结合密钥生成算法得到所述文件密钥kf。

具体地,所述用户端与所述密钥池装置通信连接,用户端将真随机数加密后上传至所述密钥池装置,加密方式为使用公钥加密真随机数得到真随机数密文;所述密钥池装置使用私钥解密所述真随机数密文得到真随机数;密钥池装置利用所述真随机数提取并传递所述加密密钥和所述加密的kkp至所述用户端,所述用户端解密加密的kkp,进而得到存储密钥ks。

其中密钥生成算法包括:

初级密钥生成算法fg,用于结合所述存储密钥ks生成初级文件密钥kg;

自选密钥生成算法ff,用于结合所述初级文件密钥kg生成所述文件密钥kf;

在本实施例中,属于一个云客户端群组的各个云客户端所匹配的ukey颁发方为ukey的主管方;ukey被颁发方为ukey的主管方所管理的成员,密钥选择算法fp和初级密钥生成算法fg为公共密钥池主管方定制,通常与云客户端群组客户端的主管方一致。主管方下属的不同部门或组织,其fp和fg至少有一者不同,以确保不同组织之间的云存储信息隔离。

指定的密钥选择算法fp为对真随机数进行某种数值变换后取模,例如fp(r)=(r+d)%s,

其中r为输入变量(此处为真随机数),d为偏移量,%为取模运算,s为密钥池总大小。当然根据设计需要,特定的密钥选择算法fp不限于此,只要能够实现密钥选择即可。

初级密钥生成算法fg为对输入数据进行某种数值变换后取模,例如fg(x)=(ax+b)%2len

其中x为输入变量,a、b为变换参数,%为取模运算,len为用户指定的密钥长度(单位:bit),当然根据设计需要,初级密钥生成算法fg的算法不限于此,只要能够实现存储密钥ks与初级密钥生成算法fg相结合生成初级文件密钥kg即可。

自选密钥生成算法ff为私有函数,所述自选密钥生成算法ff与初级密钥生成算法fg类似,且以初级密钥生成算法fg的输出作为输入,若不需要仅属于个人的隐私保密功能,可以设置ff(x)=x。

密钥选择算法fp、初级密钥生成算法fg、自选密钥生成算法ff三类函数均带有各自的id,所有id均互不相同;特别地,自选密钥生成算法id作为所述服务器是否进行去重判断的标识,当设置函数ff(x)=x的id为ff0为服务器需去重的判断标志,且为所有成员所知。

所述用户端将真随机数加密后上传至所述服务器,加密方式为使用公钥加密真随机数得到个人密钥,以及使用文件特征值加密真随机数得到数据密钥;所述用户端将所述个人密钥、所述数据密钥以及所述密钥选择算法的id以及所述密钥生成算法的id发送至所述服务器。当然根据设计需要,所述用户端可以直接将真随机数上传至服务器,在没有得到密钥池的情况下,即使窃取真随机数也无法得到加密文件的文件秘钥,以下实施例中,均以真随机数以加密的两种形式上传至服务器为例说明。

所述用户端有一个或多个,所述密钥池装置内存储有供各用户端访问的公共密钥池,所述用户端与所述密钥池装置通信连接,上传数据文件的用户端利用所述公共密钥池提取存储密钥并相应生成文件密钥以加密数据文件,下载数据文件的用户端利用所述公共密钥池结合来自服务器的真随机数相应生成文件密钥以解密出数据文件。可以共享文件的群组(例如同一个部门)带有相同的fp和fg;群组与群组之间(例如部门之间),fp和fg至少一者不同;每一个用户端的ff均不同;特殊策略下,某些特权用户端可以同时隶属于不同群组(例如同时拥有不同部门的权限),表现为该用户端拥有多套fp和fg的组合。

实施例1

图5为本发明实施例提供的存储方法的时序图。图7为本发明实施例提供的一种存储方法的流程图,一种基于公共密钥池的云存储安全控制方法的具体步骤如下:

步骤1.1用户端将数据文件的hash值和各个算法id上传至服务器:用户端上传数据文件之前,先计算出数据文件的hash值,并将该hash值上传至服务器。同时上传的还有各个算法的id(包括密钥选择算法fp、初级密钥生成算法fg以及自选密钥生成算法ff,下文同理)。其中,自选密钥生成算法ff可以选择用户端特有的,也可以选择ff0。本实施例假设选择ff0,即选择ff(x)=x,也就意味着不使用仅属于个人的隐私保密功能。服务器为了减轻存储压力,将对选择ff0的文件进行密文去重,即鉴别重复文件。

步骤1.2服务器鉴别重复文件:服务器根据ff0的信息,对文件的hash值以及各个算法id进行综合考虑来鉴别重复文件,即如果两份文件具有相同的hash值且fp、fg、ff的id分别相同则认为有相同的数据文件需要去重。若服务器判断不需要去重,服务器保存收到的这个hash值以及各个算法id,并执行步骤1.3。若需要去重,服务器执行步骤1.4。步骤1.4与步骤1.3的不同之处在于如果服务器存在与当前用户端想要上传的文件一致的文件,用户可利用自己的数据文件的文件特征值解密服务器提供的数据密钥得到真随机数r,使用公钥加密r可得到该用户的个人密钥并将该个人密钥上传至服务器保存。后续访问时,用户只需使用自己的私钥对个人密钥进行解密就能得到真随机数r并进一步得到文件密钥,利用该文件密钥得到该数据明文。文件读取的具体流程见实施例3。这样,既实现了防止数据文件在云端的重复存储,也能保证云储存服务商自己(内部员工)不能获取数据内容的明文。

本领域技术人员可以理解,在某些情况下,同一用户可能会先后上传同一数据文件,那么在该用户期待再次以相同fp、fg、ff上传已上传数据文件时,服务器端如果判断该数据文件来源于同一用户,将不执行任何操作。

步骤1.3.若服务器不需要去重:

步骤1.3.1服务器通知用户端生成真随机数:服务器保存收到的hash值和算法id后,将服务器不存在具有相同数据文件的信息发送给用户端。

步骤1.3.2用户端处理信息:用户端使用随机数发生器生成真随机数r,并使用密钥池装置p的公钥加密真随机数r然后发送给密钥池装置p。

步骤1.3.3密钥池装置解密文件:密钥池装置p使用自己的私钥解密得到真随机数r,使用真随机数r结合特定的密钥选择算法fp得到指针kp并从密钥池中提取出相应的加密密钥和加密的kkp,将这两部分发送至用户端。

步骤1.3.4客户端得到文件密钥:客户端收到加密密钥和加密的kkp后,使用自己的私钥得到kkp,再使用kkp解密加密密钥得到存储密钥ks;然后根据ks,结合初级密钥生成算法fg生成初级文件密钥kg;然后根据kg,结合自选密钥生成算法ff生成文件密钥kf。本实施例中ff(x)=x。

得到文件密钥kf后,用户端使用文件密钥加密数据文件得到密文m2,加密算法可为对称加密算法;

用户端使用公钥加密真随机数r得到个人密钥;

用户端生成文件特征值,并使用文件特征值加密真随机数r得到数据密钥;文件特征值的计算方法为预定义的算法,可以是但不限于hash计算、文件压缩或其他文件特征计算算法;

用户端将密文m2、算法id、个人密钥以及数据密钥发送至云服务端。

步骤1.3.5云服务端保存相应信息:云服务端将收到的密文、算法id、个人密钥以及数据密钥进行保存。

步骤1.4若云服务端需要去重:

步骤1.4.1云服务端向密钥池装置发送数据密钥:云服务端将该文件的数据密钥发送给用户端。

步骤1.4.2用户端处理信息并将需要存储在云服务端上的内容发送给云服务端:用户端收到数据密钥后,根据数据文件生成文件特征值,并使用文件特征值解密数据密钥得到真随机数r。

用户端使用公钥加密真随机数r得到该用户的个人密钥并将个人密钥发送给云服务端。

步骤1.4.3云服务端保存相应信息:云服务端收到该个人密钥后进行保存。

实施例2

图8为本实施例提供的一种存储方法的流程图。本实施例的存储方法的时序图与实施例1一致,一种基于公共密钥池的云存储安全控制方法的具体步骤如下:

步骤2.1用户端将数据文件的hash值和各个算法id上传至云服务端:用户端上传数据文件之前,先计算出数据文件的hash值,并将该hash值上传至云服务端。同时上传的还有各个算法的id。其中,自选密钥生成算法ff选择用户端特有的,而不选择ff0,即选择ff(x)≠x,也就意味着使用仅属于个人的隐私保密功能,该文件为该用户独有,不参与密文去重。

步骤2.2云服务端保存该hash值以及各个算法id:云服务端根据ff的信息,将收到的hash值保存在与参与鉴别重复文件的文件hash值不同的地方。一并保存的还有各个算法id。

步骤2.3用户端产生真随机数并发送至密钥池装置:用户端使用随机数发生器生成的真随机数r,并使用密钥池装置p的公钥加密真随机数r然后发送给密钥池装置p。

步骤2.4密钥池装置解密文件:密钥池装置p使用自己的私钥解密得到真随机数r,使用真随机数r结合特定的密钥选择算法fp得到指针kp并从密钥池中提取出相应的加密密钥和加密的kkp,将这两部分发送至用户端。

步骤2.5用户端得到文件密钥并将需要存储在服务器上的内容发送给服务器:用户端收到加密密钥和加密的kkp后,使用自己的私钥得到kkp,再使用kkp解密加密密钥得到存储密钥ks;然后根据ks,结合初级密钥生成算法fg生成初级文件密钥kg;然后根据kg,结合自选密钥生成算法ff生成文件密钥kf。

得到文件密钥kf后,用户端使用文件密钥加密数据文件得到密文,加密算法可为对称加密算法;

用户端使用公钥加密真随机数r得到个人密钥;

用户端将密文和个人密钥发送至服务器。

步骤2.6服务器保存相应信息:服务器将收到的密文和个人密钥进行保存。

实施例3

图6为本发明实施例提供的存储方法的时序图。图9为本发明实施例提供的一种文件读取方法的流程图,基于公共密钥池的云存储安全控制方法,基于上述实施例,用户端读取文件的具体步骤如下:

步骤3.1用户端发起读取文件请求:用户端将想要读取的文件的hash值以及各个算法id发送至服务器。

步骤3.2服务器将相应信息发送至用户端:服务器收到文件hash值和算法id后,找到与该hash值和算法id对应的信息,将密文和个人密钥发送至用户端。

步骤3.3用户端得到文件密钥:用户端使用私钥解密个人密钥得到真随机数r。使用p的公钥加密真随机数r并发送给密钥池装置p,密钥池装置p使用自己的私钥解密得到真随机数r,使用真随机数r结合特定的密钥选择算法fp得到指针kp并从密钥池中提取出相应的加密密钥和加密的kkp,将这两部分发送至用户端。用户端使用自己的私钥得到kkp,并进一步得到文件密钥kf,具体步骤如图4所示。

步骤3.4用户端得到数据文件:用户端使用文件密钥解密从服务器得到的密文,得到数据文件,完成对服务器文件的读取。

本发明基于公共密钥池的云存储系统中,服务器端都无法接触到用户端私钥以及解密后的明文数据文件。不仅如此,服务器上存储的个人密钥与数据密钥为使用不同方法加密的真随机数r,该真随机数结合特定的密钥选择算法可得到一个指针。即使破解了个人密钥或数据密钥也无法得到加密文件的文件密钥。文件密钥根据存储密钥计算所得,组织内不同部门所用计算方法不同,无法获得并解密其他部门的云存储信息,实现了部门间的信息隔离。特别地,还可以设置自选密钥生成算法,实现云存储信息的完全私有。本发明使用的存储密钥为量子密钥,是根据量子特性所产生的真随机数,量子密钥的下一个比特是无法预知的,有效的克服了伪随机数的弊端。本发明使用ukey存储用户端密钥而不是用户端存储器,ukey是独立的硬件设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1