云存储数据的关键词密文生成方法及装置与流程

文档序号:18737258发布日期:2019-09-21 01:20阅读:222来源:国知局
云存储数据的关键词密文生成方法及装置与流程

本申请涉及数据加密领域,具体而言,涉及一种云存储数据的关键词密文生成方法及装置、云存储抗量子计算的公钥可搜索加密方法、云存储系统、存储介质及电子设备。



背景技术:

随着大容量、低成本、高可用性的云储存业务的发展,许多团体和个人选择将数据存放到云储存中,并在需要的时候按照需求取回它们。在对脱离了用户实际控制的存储在云服务器上的数据,通常采用加密的方式保障数据隐私性,通过安全地选择密钥和加密算法,数据经过加密后得到密文,将密文存储在云端即可避免信息被非法获取。然而,信息加密后,对于没有密钥的云服务器而言,加密后的密文变得毫无意义,传统的数据搜索方法不再适用。将一组数据以特定的关键词来标识,利用关键词实现数据检索是一种前景非常乐观的搜索方法,例如,带关键词的公钥可搜索加密算法,可以有效实现云端数据的高效检索。但是在较低熵值的关键词空间下,可能存在云服务器关键词猜测攻击的问题,因此,如何使用一种安全而实用的加密方式对关键词进行加密,以保障用户的数据安全,是数据加密领域当前的主要问题之一。



技术实现要素:

本申请实施例的目的在于提供一种更为安全实用的加密方式,即一种云存储数据的关键词密文生成方法及装置、云存储抗量子计算的公钥可搜索加密方法、云存储系统、存储介质及电子设备,以保障用户数据的安全。

为了实现上述目的,本申请的实施例通过如下方式实现:

第一方面,本申请的实施例提供一种云存储数据的关键词密文生成方法,应用于云存储系统中的代理者,所述方法包括:从数据拥有者上传的数据中获取关键词信息w,其中,所述关键词信息w为比特串;以及,确定出一个随机比特串τ;对所述关键词信息w进行比特串加密,确定出关键词密文的第一分量ξ;对所述随机比特串τ进行比特串加密,确定出所述关键词密文的第二分量ζ;获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro,并根据所述关键词密文的第一分量ξ,以及所述代理授权公钥Apro和所述代理授权密钥Tpro,确定出所述关键词密文的第三分量θ;基于所述关键词密文的第一分量ξ、所述关键词密文的第二分量ζ和所述关键词密文的第三分量θ,确定出所述关键词密文。

通过采用比特串加密的方式,可以实现对关键词信息的二进制比特串进行加密,提高数据的安全性,而比特串加密的方式,具有更强的实际应用优势,有更强的实用性。

结合第一方面,在第一方面的第一种可能的实现方式中,所述云存储系统还包括数据接收者,所述对所述关键词信息w进行比特串加密,确定出关键词密文的第一分量ξ,包括:获取所述代理者的身份标识idp、所述数据接收者的身份标识idr和公开的所述数据接收者的用户公钥确定出一个均匀矩阵F和一个噪声矩阵S;根据所述代理者的身份标识idp、所述数据接收者的身份标识idr和所述关键词信息w,利用密码哈希函数确定出一个中间变量γ;根据所述中间变量γ,以及所述数据接收者的用户公钥所述均匀矩阵F和所述噪声矩阵S,确定出所述关键词密文的第一分量ξ。

使用身份标识、均匀矩阵和噪声矩阵等实现对关键词信息进行比特串加密,确定出关键词密文的第一分量,可以使得加密方式具有更强的安全性和实用性,而通过将加密方式构建在轻量的基于身份的密码学之上,在成本上和性能上,也都具有明显的优势。

结合第一方面,在第一方面的第二种可能的实现方式中,所述对所述随机比特串τ进行比特串加密,确定出所述关键词密文的第二分量ζ,包括:获取随机向量v和随机噪声向量η;根据所述随机向量v、所述随机噪声向量η、所述均匀矩阵F和所述随机比特串τ,确定出所述关键词密文的第二分量ζ。

通过随机向量v、随机噪声向量η、均匀矩阵F和随机比特串τ确定出关键词密文的第二分量,实现对关键词密文的比特串加密,使得本方法具有更强的安全性和实用性。

结合第一方面,在第一方面的第三种可能的实现方式中,所述根据所述关键词密文的第一分量ξ,以及所述代理授权公钥Apro和所述代理授权密钥Tpro,确定出所述关键词密文的第三分量θ,包括:获取高斯参数δ;根据所述随机比特串τ和所述关键词密文的第一分量ξ,利用密码哈希函数确定出中间变量h;基于所述代理授权公钥Apro、所述代理授权密钥Tpro、所述中间变量h和所述高斯参数δ,运行格基原像抽样算法,确定出所述关键词密文的第三分量θ。

通过结合随机比特串τ、关键词密文的第一分量、代理授权公钥Apro和代理授权密钥Tpro、高斯参数δ计算关键词密文的第三分量θ,实现对关键词密文的第三分量θ的比特串加密,生成的关键词密文具有更高的安全性和实用性,从而可以保障用户数据的安全。

结合第一方面,或者结合第一方面的第一种至第三种可能的实现方式中任一实现方式,在第一方面的第四种可能的实现方式中,在所述从数据拥有者上传的数据中获取关键词信息w之前,所述方法还包括:获取所述数据拥有者发送的电子授权书W和对应的数字签名;根据所述电子授权书W和所述数字签名,确定出所述代理授权公钥Apro和所述代理授权密钥Tpro,从而与所述数据拥有者建立授权关系。

通过在数据拥有者和代理者之间提供一种代理授权机制,使数据拥有者可将文件上传托管给指定的代理来完成,更加方便,具有更强的实用性。

第二方面,本申请的实施例提供一种云存储抗量子计算的公钥可搜索加密方法,应用于云存储系统,所述云存储系统包括:数据拥有者、代理者、数据接收者和云服务器,所述方法包括:通过所述代理者获取包含密码哈希函数的公共参数Γ,以及,获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro;通过所述代理者从所述数据拥有者上传的数据中获取关键词信息w,结合所述公共参数Γ、所述代理授权公钥Apro和所述代理授权密钥Tpro,对所述关键词信息w进行比特串加密,生成关键词密文并上传至所述云服务器;通过所述数据接收者获取所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥以及待检索关键词信息u;所述数据接收者根据所述待检索关键词信息u、所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥生成对应的搜索陷门并上传至所述云服务器;通过所述云服务器根据所述公共参数Γ、所述代理授权公钥Apro、所述关键词密文和所述搜索陷门,验证对应所述关键词密文和所述搜索陷门的测试方程是否成立,以确定所述数据拥有者上传的数据中是否存在与所述待检索关键词匹配的关键词,从而判断所述数据拥有者上传的数据是否与所述待检索关键词匹配。

通过对关键词进行比特串加密,而搜索陷门也进行相应的改进,可以提高加密方法的安全性和实用性。而利用云服务器对关键词密文和搜索陷门进行匹配,使本方法具有抗服务器内部关键词猜测的特性,在云服务提供商受信程度未知的情况下,可有效抵御云服务器发起的内部关键词猜测攻击,为整个方法的安全程度提供更进一步的保障。

结合第二方面,在第二方面的第一种可能的实现方式中,所述获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro,包括:获取所述数据拥有者创建的电子授权书W和所述数据拥有者基于其用户密钥生成的数字签名;根据所述电子授权书W和所述数字签名,建立所述代理者与所述数据拥有者之间的授权关系,并生成所述代理授权公钥Apro和所述代理授权密钥Tpro。

通过利用电子授权书W和数字签名建立数据拥有者和代理者之间的授权关系,可以使得建立的授权关系稳定而安全。而通过提供数据拥有者和代理者之间的代理授权机制,使数据拥有者可将文件上传托管给指定的代理来完成。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在所述代理者获取包含密码哈希函数的公共参数Γ之前,以及,在所述数据接收者获取所述公共参数Γ之前,所述方法还包括:通过所述云服务器生成所述公共参数Γ,基于LWE问题确定出主公钥Mpk和对应的主密钥Msk,公开所述公共参数Γ和所述主公钥Mpk,保密所述主密钥Msk;所述云服务器获取所述数据拥有者的身份标识id0、所述代理者的身份标识idp、所述数据接收者的身份标识idr,结合所述公共参数Γ、所述主公钥Mpk和所述主密钥Msk,生成对应所述数据拥有者的身份标识id0的用户公钥与用户密钥对应所述代理者的身份标识idp的用户公钥与用户密钥对应所述数据接收者的身份标识idr的用户公钥与用户密钥

本方法基于LWE问题框架进行构建,能有效抵抗量子计算机的攻击,赋予了上层应用后量子环境下安全检索数据的能力。而且本方法构建在轻量的基于身份的密码学之上,整体来说,在成本上和性能上,都具有明显的优势。

结合第二方面,在第二方面的第三种可能的实现方式中,所述通过所述数据接收者根据待检索关键词信息u、所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥生成对应的搜索陷门并上传至所述云服务器,包括:获取所述代理者的身份标识idp和所述数据接收者的身份标识idr;根据所述代理者的身份标识idp、所述数据接收者的身份标识idr和所述待检索关键词信息u,利用密码哈希函数确定出一个中间变量α;基于所述数据接收者的用户公钥所述数据接收者的用户密钥所述中间变量α和所述公共参数Γ中的高斯参数σ,运行格基代理生成算法,确定出随机短格基Du;基于所述随机短格基Du、所述中间变量α、所述数据接收者的用户公钥所述公共参数Γ中的随机向量v和所述公共参数Γ中的高斯参数δ,运行格基原像抽样算法,生成所述搜索陷门并上传至所述云服务器。

通过这种方式确定出待检索关键词的搜索陷门,配合关键词密文对二进制比特串的加密,能够保证基于云端数据的检索过程的安全性,也拥有广泛的应用空间和很高的实用价值。

第三方面,本申请的实施例提供一种云存储系统,包括:数据拥有者、代理者、数据接收者和云服务器,所述云服务器的密钥生成中心确定出包含密码哈希函数的公共参数Γ,以及,基于LWE问题确定出主公钥Mpk和对应的主密钥Msk,公开所述公共参数Γ和所述主公钥Mpk,保密所述主密钥Msk;以及,所述密钥生成中心获取所述数据拥有者的身份标识id0、所述代理者的身份标识idp、所述数据接收者的身份标识idr,结合所述公共参数Γ、所述主公钥Mpk和所述主密钥Msk,生成对应所述数据拥有者的身份标识id0的用户公钥与用户密钥对应所述代理者的身份标识idp的用户公钥与用户密钥对应所述数据接收者的身份标识idr的用户公钥与用户密钥并公开所述用户公钥所述用户公钥和所述用户公钥将所述用户密钥发送至所述数据拥有者,将所述用户密钥发送至所述代理者,将所述用户密钥发送至所述数据接收者;所述数据拥有者创建电子授权书W并利用所述用户密钥进行数字签名,将所述电子授权书W和所述数字签名发送给所述代理者;所述代理者基于所述电子授权书W和所述数字签名,建立所述代理者与所述数据拥有者之间的授权关系,并生成代理授权公钥Apro和代理授权密钥Tpro;所述代理者从所述数据拥有者上传的数据中获取关键词信息w,结合所述公共参数Γ、所述代理授权公钥Apro和所述代理授权密钥Tpro,对所述关键词信息w进行比特串加密,生成关键词密文并发送至所述云服务器;所述数据接收者获取待检索关键词信息u,结合所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥生成对应的搜索陷门并发送至所述云服务器;所述云服务器根据所述公共参数Γ、所述代理授权公钥Apro、所述关键词密文和所述搜索陷门,验证对应所述关键词密文和所述搜索陷门的测试方程是否成立,以确定所述数据拥有者上传的数据中是否存在与所述待检索关键词匹配的关键词,从而判断所述数据拥有者上传的数据是否与所述待检索关键词匹配。

通过提供一种云存储系统,在数据拥有者上传数据存储到系统时,可为数据拥有者和代理者之间提供一种代理授权机制,使数据拥有者可将文件上传托管给指定的代理来完成。并且,本系统具有抗服务器内部关键词猜测的特性,在云服务提供商受信程度未知的情况下,可有效抵御云服务器发起的内部关键词猜测攻击,为整个方法的安全程度提供更进一步的保障。以及,本系统基于LWE问题框架进行构建,能有效抵抗量子计算机的攻击,赋予了上层应用后量子环境下安全检索数据的能力。另外,本系统的加密机制构建在轻量的基于身份的密码学之上,整体来说,在成本上和性能上,都具有明显的优势。

第四方面,本申请的实施例提供一种云存储数据的关键词密文生成装置,包括:关键词信息获取单元,用于从数据拥有者上传的数据中获取关键词信息w,其中,所述关键词信息w为比特串;随机比特串确定单元,用于确定出一个随机比特串τ;第一分量计算单元,用于对所述关键词信息w进行比特串加密,确定出关键词密文的第一分量ξ;第二分量计算单元,用于对所述随机比特串τ进行比特串加密,确定出所述关键词密文的第二分量ζ;第三分量计算单元,用于获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro,并根据所述关键词密文的第一分量ξ,以及所述代理授权公钥Apro和所述代理授权密钥Tpro,确定出所述关键词密文的第三分量θ;关键词密文生成单元,用于基于所述关键词密文的第一分量ξ、所述关键词密文的第二分量ζ和所述关键词密文的第三分量θ,确定出所述关键词密文。

第五方面,本申请的实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第一方面的第一种至第四种可能的实现方式中任一所述的云存储数据的关键词密文生成方法。

第六方面,本申请的实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现第一方面或第一方面的第一种至第四种可能的实现方式中任一所述的云存储数据的关键词密文生成方法的步骤。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种云存储系统的示意图。

图2为本申请实施例提供的一种电子设备的结构框图。

图3为本申请实施例提供的一种云存储系统的运行流程图。

图4为本申请实施例提供的一种云存储数据的关键词密文生成方法的流程图。

图5为本申请实施例提供的一种云存储抗量子计算的公钥可搜索加密方法的流程图。

图6为本申请实施例提供的一种云存储数据的关键词密文生成装置的结构示意图。

图标:10-云存储系统;11-数据拥有者;12-云服务器;13-代理者;14-数据接收者;20-电子设备;21-存储器;22-通信接口;23-总线;24-处理器;30-云存储数据的关键词密文生成装置;31-关键词信息获取单元;32-随机比特串获取单元;33-第一分量计算单元;34-第二分量计算单元;35-第三分量计算单元;36-关键词密文生成单元;37-代理授权单元。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

随着大容量、低成本、高可用性的云储存业务的发展,许多团体和个人选择将数据存放到云储存中,并在需要的时候按照需求取回它们。由于储存在云服务器上的数据脱离了用户的实际控制,如何保障云上数据的安全便成了一个棘手的问题。加密是保障数据隐私性的主流方法,通过安全地选择密钥和加密算法,数据经过加密后得到密文,将密文存储在云端即可避免信息被非法获取。然而,信息加密后,对于没有密钥的云服务器而言,加密后的密文变得毫无意义,传统的数据搜索方法不再适用。将一组数据以特定的关键词来标识,利用关键词实现数据检索是一种前景非常乐观的搜索方法,例如,带关键词的公钥可搜索加密算法,可以有效实现云端数据的高效检索。但是在较低熵值的关键词空间下,可能存在云服务器关键词猜测攻击的问题,因此,如何使用一种安全实用的加密方式对关键词进行加密,以保障用户的数据安全,是数据加密领域当前的主要问题之一。

而随着量子计算机相关研究越发深入,人们发现现阶段广泛应用的密码学可能会受到来自量子计算机的威胁。现阶段的云上密文搜索方案的困难性都是构建在传统的数学困难问题之上,这类困难问题在量子计算机面前可被轻松破解。因此,这些方案在量子计算机前面都是不安全的。随着研究的进行,研究者发现,量子计算机并不是在所有的困难问题上都具有优势,在某些问题上,优势非常不明显,例如,适当假设下的LWE(Learning With Errors,噪声学习,要区分有小量的随机“噪音”扰动的线性方程组和均衡干扰的问题)问题、worst-case格问题(一种密码学问题)等。

基于此,本申请的发明人提供一种云存储数据的关键词密文生成方法、基于云存储数据的关键词密文生成方法而确立的云存储抗量子计算的公钥可搜索加密方法,以及运行云存储数据的关键词密文生成方法和云存储抗量子计算的公钥可搜索加密方法的云存储系统,以在保证云端数据的高效检索的同时,进一步提高对云端数据的安全保证。

在本申请提供的实施例中,云存储系统的运行过程中可以包含本申请的实施例提供的云存储抗量子计算的公钥可搜索加密方法和云存储数据的关键词密文生成方法的执行步骤,因此,本实施例将对云存储系统的运行过程进行详细的介绍。在此之前,本实施例先对云存储系统的结构进行介绍。

请参阅图1,图1示出了本申请实施例提供的一种云存储系统10,可以包括:数据拥有者11、云服务器12、代理者13和数据接收者14。

在本实施例中,数据拥有者11可以表示拥有数据的用户将其数据上传至云服务器12所使用的用户设备,即数据拥有者11可以视为用户设备的身份。其中,用户设备通常为终端设备,例如个人电脑、智能手机、平板电脑等,也可以为服务器,例如个人或企业使用的数据服务器、网络服务器等,此处不作限定。

云服务器12用于提供云端数据存储的云端服务器,在本实施例中,云服务器12用于对代理者13上传的关键词密文与数据接收者14上传的关键词密文进行匹配,以及将匹配的数据发送给数据接收者14。以及,密钥生成中心在云服务器12中运行。云服务器12的类型可以为网络服务器、服务器集群、云端服务器等,此处不作限定。

在本实施例中,代理者13可以表示代理服务器,即代理者13可以视为代理服务器的身份,代理服务器可以为网络服务器、服务器集群、云端服务器等,此处不作限定。在本实施例中,代理者可以与数据拥有者建立授权关系,从而行使数据拥有者所授权的相应代理权限,例如,从数据拥有者上传的数据中获取关键词信息的权限、可以为数据拥有者加密敏感数据的权限、产生关键词密文的权限等。

在本实施例中,数据接收者14可以表示可以接收数据拥有者11上传的数据的数据接收设备,即数据接收者14可以视为数据接收设备的身份。数据接收设备可以为终端设备,例如智能手机、个人电脑、平板电脑等;也可以为服务器,例如网络服务器、服务器集群、云端服务器等,此处不作限定。

需要说明的是,在本实施例中,云服务器12上运行的密钥生成中心与对代理者13上传的关键词密文与数据接收者14上传的关键词密文进行匹配的执行者并未作严格的区分。但在一些实际的实施方式中,密钥生成中心运行的载体服务器,可以与对代理者13上传的关键词密文与数据接收者14上传的关键词密文进行匹配的载体服务器不同,可以分别执行各自的步骤,因此,此处不应视为对本申请的限定。而用户设备可以视为云存储系统10的客户端;一些情况下,数据接收设备也可以为云存储系统10的客户端,配合用户设备使用云存储系统10提供的数据存储、加密、搜索等服务,但此处不应视为对本申请的限定。

请参阅图2,在本实施例中,具有数据拥有者11身份的用户设备、云服务器12、具有代理者13身份的代理服务器、具有数据接收者14身份的数据接收设备都属于电子设备20,具有类似的结构。示例性的,电子设备20可以包括:通过网络与外界连接的通信接口22、用于执行程序指令的一个或多个处理器24、总线23和不同形式的存储器21,例如,磁盘、ROM(Read-Only Memory,只读存储器)、或RAM(Random Access Memory,随机存取存储器),或其任意组合。

示例性的,存储器21中存储有程序。处理器24可以从存储器21调用并运行这些程序,从而便可以通过运行程序而执行云存储数据的关键词密文生成方法、云存储抗量子计算的公钥可搜索加密方法、云存储系统10的运行流程。处理器24通过对云存储数据的关键词密文生成方法的执行,可以实现对关键词信息的二进制比特串进行加密,提高数据的安全性,具备更强的实用性,从而具有更强的实际应用优势。而处理器24通过对云存储抗量子计算的公钥可搜索加密方法的执行,可以在保证云端数据的检索效率的情况下进一步提升云端数据的安全性。

可以理解,其他实施例中,数据拥有者、代理者、数据接收者也可以是电子客户端。所述电子客户端能够借由其所在的电子设备实现相应的功能,例如与云服务器进行通信,对数据进行处理等,与服务器配合以实现云存储系统10的功能。

请参阅图3,本申请的实施例提供一种云存储系统10的运行流程。运行流程可以包括:步骤S10、步骤S20、步骤S30、步骤S40、步骤S50和步骤S60。

在本实施例中,数据拥有者11将要存储在云端的数据上传至云服务器12。而云存储系统10可执行步骤S10。

步骤S10:确定出包含密码哈希函数的公共参数Γ,以及,基于LWE问题确定出主公钥Mpk和对应的主密钥Msk,公开所述公共参数Γ和所述主公钥Mpk,保密所述主密钥Msk。

步骤S10可由在云服务器12上运行的密钥生成中心执行。

在本实施例中,云服务器12上运行的密钥生成中心可以进行初始化,以确定出云存储系统10运行的部分参数,使得云存储数据的关键词密文生成方法和云存储抗量子计算的公钥可搜索加密方法能够顺利运行。

密钥生成中心可以初始化一个云存储系统10的运行流程正常运行所需的安全参数κ,并根据安全参数κ,确定出密钥生成中心的主公钥Mpk和主密钥Msk。以及,可以根据安全参数κ、主公钥Mpk和主密钥Msk,确定出包含密码哈希函数的公共参数Γ。密钥生成中心可以将公共参数Γ输出,以及对主密钥Msk进行保密。

具体地,密钥生成中心可以进行初始化确定出安全参数κ,此处,安全参数κ可以为密钥生成中心设置的离散高斯分布χ,而高斯参数为σ,6。

确定出安全参数κ后,可以运行基于LWE问题而预设的格基陷门产生算法:TrapGen(q,κ),确定出主公钥以及,确定出与主公钥Mpk对应的主密钥其中,q是关于κ的多项式,LWE问题的参数m和n为正整数,代表n×m矩阵的矩阵空间,代表m×m矩阵的矩阵空间,矩阵每个元素取值为小于q的非负整数。

在本实施例中,密钥生成中心还可以从具有n个维度的向量的向量空间中确定出一个均匀随机向量其中,向量空间中每个维度取值为小于q的非负整数,其中,符号←可视为等于。

在本实施例中,密钥生成中心还可以确定出多个密码哈希函数。例如:

从中确定出H1:

确定出关于的H2:

确定出关于的H3:

确定出关于的H4:

确定出关于的H5:

其中,H1、H2、H3、H4、H5表示密码哈希函数,且H1、H3、H4分布在Dm×m中,{0,1}代表二进制的比特串,l、l1、l2、l3均代表比特串长度,符号→可视为等于,代表m×l矩阵的矩阵空间,Dm×m表示关于m×m的离散高斯噪声分布,m×m代表维数。

确定出以上参数后,密钥生成中心可以将包含参数A、v、H1、H2、H3、H4、H5、σ、δ的公共参数Γ输出,而对主密钥Msk的秘密参数TA进行保密。

密钥生成中心基于LWE问题而确定出的公共参数Γ、主密钥Msk的秘密参数TA等参数,可以有效抵抗量子计算机的攻击。

确定出公共参数Γ和秘密参数TA后,云存储系统10可以执行步骤S20。

步骤S20:获取所述数据拥有者的身份标识id0、所述代理者的身份标识idp、所述数据接收者的身份标识idr,结合所述公共参数Γ、所述主公钥Mpk和所述主密钥Msk,生成对应所述数据拥有者的身份标识id0的用户公钥与用户密钥对应所述代理者的身份标识idp的用户公钥与用户密钥对应所述数据接收者的身份标识idr的用户公钥与用户密钥并公开所述用户公钥所述用户公钥和所述用户公钥将所述用户密钥发送至所述数据拥有者,将所述用户密钥发送至所述代理者,将所述用户密钥发送至所述数据接收者。

步骤S20也可由密钥生成中心执行。

在本实施例中,密钥生成中心可以获取申请密钥的申请者的身份标识id,并结合公共参数Γ、密钥生成中心的主公钥Mpk和主密钥Msk,为申请者签发对应的用户公钥和用户密钥。其中,申请者的身份标识id可以包括:数据拥有者的身份标识id0,代理者的身份标识idp,数据接收者的身份标识idr。

具体地,密钥生成中心获取申请者的身份标识id后,可以根据密码哈希函数,确定出用户公钥的第一分量Rid。示例性的,用户公钥的第一分量Rid可通过Rid=H1(id)确定出来。

确定出用户公钥的第一分量Rid后,密钥生成中心可以基于用户公钥的第一分量Rid确定出用户公钥的第二分量Sid。示例性的,用户公钥的第二分量Sid可通过确定出来。

由此,密钥生成中心可以根据用户公钥的第一分量Rid和用户公钥的第二分量Sid确定出用户公钥Aid。

以及,密钥生成中心可以根据主公钥Mpk、主密钥Msk、用户公钥的第一分量Rid和高斯参数σ,通过预设的格基代理产生算法确定出用户密钥Tid。示例性的,可以运行格基代理产生算法NewBasisDel(A,Rid,TA,σ)生成一个上的随机短格基此短格基Tid即为用户密钥。其中,代表格,且满足条件mod表示取模运算。

在本实施例中,根据数据拥有者的身份标识id0确定出:用户公钥的第一分量第二分量用户公钥Aid、用户密钥根据代理者的身份标识idp确定出:用户公钥的第一分量第二分量用户公钥Aid、用户密钥根据数据接收者的身份标识idr确定出:用户公钥的第一分量第二分量用户公钥Aid、用户密钥

需要说明的是,本实施例中,对应不同类型的申请者的身份标识id,对应的用户公钥的第一分量Rid之间、第二分量Sid之间、用户公钥Aid、用户密钥Tid之间通常不同,但在一些特殊的实现方式中,不同身份标识id的申请者,也可能会有相同的用户公钥或者用户密钥,此处不作限定。

确定出用户公钥和用户密钥后,密钥生成中心可以将用户公钥公开,而将对应的用户密钥以安全的方式发送给申请者(即数据拥有者、代理者或数据接收者)。为了保证用户密钥的安全性,示例性的,密钥生成中心可以通过安全信道向申请者对应的设备发送与其身份标识id对应的用户密钥。

利用基于LWE问题确定出的密码哈希函数生成与申请者的身份标识id对应的用户公钥和用户密钥,可以有效抵抗量子计算机的攻击,从而提高数据的安全性。并且,通过基于身份标识进行加密,构建在轻量的基于身份的密码学之上,在成本上和性能上都具有明显的优势。

确定出用户公钥和用户密钥后,云存储系统10可以执行步骤S30。

步骤S30:创建电子授权书W并利用所述用户密钥进行数字签名,将所述电子授权书W和所述数字签名发送给所述代理者;所述代理者基于所述电子授权书W和所述数字签名,建立所述代理者与所述数据拥有者之间的授权关系,并生成代理授权公钥Apro和代理授权密钥Tpro。

步骤S30可通过数据拥有者11与代理者13配合执行。

在数据拥有者获得与其身份标识id0对应的用户公钥(即第一分量与第二分量)和用户密钥以及,代理者获得与其身份标识idp对应的用户公钥(即第一分量与第二分量)和用户密钥后,数据拥有者可以与代理者建立授权关系,从而使得代理者获得代理授权公钥和代理授权密钥。

具体地,数据拥有者11可以基于数据拥有者的操作创建一份电子授权书W,此电子授权书W中可包括:授权权限、授予关系、有效时间、备注信息等内容。示例性的,数据拥有者可以通过数据拥有者11根据被授权人的身份标识、授权范围、时间等元数据,创建一个电子授权书

数据拥有者11创建完电子授权书后,可以利用数据拥有者的用户密钥对电子授权书W进行数字签名。示例性的,数据拥有者11可从向量空间中确定出一个均匀随机向量并根据确定出的r,计算中间变量μ=H2(id0||idp||W||r),并运行格基原像抽样算法生成数字签名中的一个分量其中,符号←可视为等于,符号||代表连接操作,中间变量βW分布在δ(即,基于格δ的离散高斯噪声分布)中。计算完成后,数据拥有者11可将三元组(W,r,βW)发送给代理者13。此时,云存储系统10内的所有电子设备都可验证电子授权书的数字签名。

而代理者13在接收到电子授权书W和数字签名后,可以利用数据拥有者的用户公钥对电子授权书W进行验证。如果验证通过,则可利用电子授权书W、数字签名和代理者的用户密钥创建唯一一对代理授权公钥Apro和代理授权密钥Tpro。而若验证失败,代理者13拒绝电子授权书W和数字签名,并将错误信息发送给数据拥有者11。

示例性的,代理者13收到包含电子授权书W和数字签名的三元组(W,r,βW)后,可以对其进行验证,例如通过验证方程是否成立,以实现对电子授权书W和数字签名的验证。

若方程成立,代理者13可以确定出代理授权公钥的第一分量RW=H3(id0||idp||W||βW),并根据代理授权公钥的第一分量RW,执行格基代理产生算法以确定出唯一一对代理授权公钥和代理授权密钥(Apro,Tpro),其中,表示代理授权公钥的第二分量,进而可以确定出代理授权公钥Apro和代理授权密钥Tpro。代理者13可以将代理授权公钥Apro的第一分量RW和第二分量Spro进行公开,对代理授权密钥Tpro进行秘密保存。

若方程不成立,代理者13可立即拒绝此电子授权书W和数字签名,并将出错消息发送给数据拥有者11。

通过建立代理者与数据拥有者之间的授权关系,使数据拥有者可将数据上传托管给指定的代理者,有利于在云端数据间的检索高效地执行,且能够进一步提高数据的安全性。

而在代理者获得数据拥有者授予的代理权限后,云存储系统10可以执行步骤S40。

步骤S40:从所述数据拥有者上传的数据中获取关键词信息w,结合所述公共参数Γ、所述代理授权公钥Apro和所述代理授权密钥Tpro,对所述关键词信息w进行比特串加密,生成关键词密文并发送至所述云服务器。

在本实施例中,步骤S40可以由代理者13执行。

代理者13可以获取数据拥有者上传的数据中的关键词信息w,利用公开的数据接收者的用户公钥以及,代理者的一对代理授权公钥和代理授权密钥(Apro,Tpro),基于LWE问题的为框架的加密方法,即云存储数据的关键词密文生成方法,确定出关键词密文。具体地,代理者13可以根据密钥生成中心公开的公共参数Γ,代理授权公钥和代理授权密钥(Apro,Tpro),以及代理者13获取的关键词信息w,确定出关键词密文。在本实施例中,云存储系统10的运行流程中的步骤S40所包括的具体子步骤即为云存储数据的关键词密文生成方法的运行步骤。

请参阅图4,本实施例中,云存储系统10的运行流程中的步骤S40(即,云存储数据的关键词密文生成方法)可以包括步骤S101、步骤S102、步骤S103、步骤S104、步骤S105和步骤S106。

步骤S101:从数据拥有者上传的数据中获取关键词信息w,其中,所述关键词信息w为比特串。

在本实施例中,代理者可以从数据拥有者上传的数据中获取关键词信息w∈{0,1}l,其中,{0,1}l表示长度为l的二进制比特串。

步骤S102:以及,确定出一个随机比特串τ。

在本实施例中,示例性的,代理者13可从矩阵空间中确定出一个均匀矩阵以及,从比特串{0,1}l中确定出一个随机比特串τ=(τ1,τ2,τ3…,τl)∈{0,1}l,以及,从χl中取样一个随机噪声向量η=(η1,η2,η3…,ηl)←χl,从χm中取样l个随机噪声向量s1,s2,s3…,sl←χm。其中,符号←可视为等于。

代理者13可以基于取样的l个随机噪声向量s1,s2,s3…,sl,构建噪声矩阵

步骤103:对所述关键词信息w进行比特串加密,确定出关键词密文的第一分量ξ。

在本实施例中,代理者13可以根据数据接收者的用户公钥均匀矩阵F和噪声矩阵S,确定出关键词密文的第一分量ξ。示例性的,代理者13可以基于密码哈希函数H4,代理者的身份标识idp,数据接收者的身份标识idr,关键词信息w,确定出中间变量而关键词密文的第一分量ξ可以通过确定出来,其中,符号·表示转置。

步骤S104:对所述随机比特串τ进行比特串加密,确定出所述关键词密文的第二分量ζ。

在本实施例中,代理者13可以根据均匀随机向量v,均匀矩阵F,随机噪声向量η和随机比特串τ确定出关键词密文的第二分量ζ。示例性的,关键词密文的第二分量其中,表示与q/2最接近的正整数。

步骤S105:获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro,并根据所述关键词密文的第一分量ξ,以及所述代理授权公钥Apro和所述代理授权密钥Tpro,确定出所述关键词密文的第三分量θ。

确定出关键词密文的第一分量ξ后,代理者13可以根据关键词密文的第一分量ξ,密码哈希函数H5,以及获取的代理授权公钥和代理授权密钥(Apro,Tpro),高斯参数δ确定出关键词密文的第三分量θ。示例性的,代理者13可以计算中间变量h=H5(τ||ξ),以及,运行格基原像抽样算法SamplePre(Apro,Tpro,h,δ),从而计算出关键词密文的第三分量

步骤S106:基于所述关键词密文的第一分量ξ、所述关键词密文的第二分量ζ和所述关键词密文的第三分量θ,确定出所述关键词密文。

在本实施例中,确定出关键词密文的第一分量ξ、第二分量ζ和第三分量θ后,代理者13可将关键词密文C=(ξ,ζ,θ)上传至云服务器12。

通过这种方式计算数据的关键词密文,实现了对二进制比特串的加密,具有更高的安全性,也拥有更加广泛的应用空间和更高的实用价值。

需要说明的是,在本实施例中,以数据的关键词信息作为指代该数据的标识,在其他一些可实现的方式中,也可以通过获取数据的其他信息作为指代该数据的标识,以实现云端数据检索的关键,例如,可以是数据的句段、摘要、标题、人工添加的标签等信息,而这些信息可以替换前述的关键词信息,并确定出对应的比特串,从而实现云端数据的检索。因此,此处不应视为对本申请的限定。

另外,需要说明的是,本实施例以建立数据拥有者与代理者之间的授权关系后,代理者通过获取数据拥有者上传的数据中的关键词信息,生成对应的关键词密文。在其他一些可实现的方式中,也可以不建立数据拥有者与代理者之间的授权关系,而依靠数据拥有者产生关键词密文上传至云服务器12,那么,此时的系统10中就可以不包括代理者13。因此,此处也不应视为对本申请的限定。

以上,云存储系统10运行流程中的步骤40,即为云存储数据的关键词密文生成方法的运行流程。

在确定出代理授权公钥和代理授权密钥后,云存储系统10还可以执行步骤S50。

步骤S50:获取待检索关键词信息u,结合所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥生成对应的搜索陷门并发送至所述云服务器。

步骤S50可以由数据接收者14执行。需要注意的是,由于云服务器12确定出代理授权公钥和代理授权密钥后,代理者13和数据接收者14可分别执行各自的步骤,不存在严格的先后顺序,因此,步骤S50与步骤S40不存在执行顺序上的限定。

在本实施例中,数据接收者14可以利用数据接收者的用户密钥代理授权公钥Apro以及待检索关键词信息u,确定出对应待检索关键词信息u的搜索陷门。

具体地,数据接收者14可以获取待检索关键词,并据此确定出待检索关键词信息

确定出待检索关键词信息u后,数据接收者14可以根据公共参数Γ、数据接收者的用户公钥和用户密钥确定出搜索陷门。示例性的,数据接收者14可以计算中间变量并据此执行格基代理生成算法生成上的随机短格基

数据接收者14可执行格基原像抽样算法生成搜索陷门其中,运行格基原像抽样算法产生的搜索陷门du需要满足条件且搜索陷门du分布于δ中,其中,δ表示基于格δ的离散高斯噪声分布。

确定出搜索陷门du后,数据接收者14可以将其发送给云服务器12。

通过这种方式确定出待检索关键词的搜索陷门,配合关键词密文对二进制比特串的加密,能够保证基于云端数据的检索过程的安全性,也拥有广泛的应用空间和很高的实用价值。

在云服务器12接收到代理者13发送的关键词密文C=(ξ,ζ,θ)和数据接收者14发送的搜索陷门du后,云存储系统10还可以执行步骤S60。

步骤S60:根据所述公共参数Γ、所述代理授权公钥Apro、所述关键词密文和所述搜索陷门,验证对应所述关键词密文和所述搜索陷门的测试方程是否成立,以确定所述数据拥有者上传的数据中是否存在与所述待检索关键词匹配的关键词,从而判断所述数据拥有者上传的数据是否与所述待检索关键词匹配。

步骤S60可由云服务器12执行。

在本实施例中,云服务器12可以对代理者发送的关键词密文C=(ξ,ζ,θ)和数据接收者发送的搜索陷门du进行测试匹配。

具体地,云服务器12可以根据公共参数Γ、代理授权公钥Apro、关键词密文C=(ξ,ζ,θ)和搜索陷门du,验证对应的测试方程是否成立。示例性的,云服务器12可以计算中间变量对每个j=1,2,3,…,l,将τj和看作中的整数,并比较τj与的近似程度。若足够接近,例如在整数环境中满足则令τj←1,否则,令τj←0。其中,符号←可视为等于。

计算完成后,云服务器12可以输出τ=(τ1,τ2,τ3,…,τl)∈{0,1}l

而后,云服务器12可以计算中间变量h=H5(τ||ξ),并验证方程Aproθ=h是否成立,其中,θ为关键词密文的第三分量,分布于δ中,其中,δ表示基于格δ的离散高斯噪声分布。若方程成立,说明关键词密文C=(ξ,ζ,θ)与搜索陷门du匹配,云服务器12可以返回1;若方程不成立,说明关键词密文C=(ξ,ζ,θ)与搜索陷门du不匹配,云服务器12可以返回0。

由此,可以实现基于云端数据的高效检索,且能够抵抗服务器内部关键词猜测的特性,在云服务提供商受信程度未知的情况下,可有效抵御云服务器发起的内部关键词猜测攻击,进一步保证数据的安全性。

本申请的实施例介绍的云存储系统10的运行流程,为数据拥有者和代理者之间提供一种代理授权机制,使数据拥有者可将文件上传托管给指定的代理来完成。并且,这种运行流程使得云存储系统10具有抗服务器内部关键词猜测的特性,在云服务提供商受信程度未知的情况下,可有效抵御云服务器发起的内部关键词猜测攻击,为整个云存储系统10的安全程度提供更进一步的保障。以及,云存储系统10基于LWE(噪声学习)困难问题框架进行构建,能有效抵抗量子计算机的攻击,赋予了上层应用后量子环境下安全检索数据的能力。另外,整个云存储系统10构建在轻量的基于身份的密码学之上,整体来说,在成本上和性能上,都具有明显的优势。

本实施例还提供一种云存储抗量子计算的公钥可搜索加密方法。请参阅图5,该云存储抗量子计算的公钥可搜索加密方法包括以下步骤。

步骤S201:获取包含密码哈希函数的公共参数Γ,以及,获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro。

步骤S201由代理者执行。其中,包含密码哈希函数的公共参数Γ,代理者的代理授权公钥Apro和代理授权密钥Tpro可由云存储系统10直接提供或通过云存储系统10运行过程的步骤S10至步骤S30获得,在此不再赘述。

步骤S202:从所述数据拥有者上传的数据中获取关键词信息w,结合所述公共参数Γ、所述代理授权公钥Apro和所述代理授权密钥Tpro,对所述关键词信息w进行比特串加密,生成关键词密文并上传至所述云服务器。

步骤S202可由代理者执行。其中,步骤S202的具体内容可参考云存储系统10运行流程中的步骤S40,在此不再赘述。

步骤S203:获取所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥以及待检索关键词信息u。

步骤S203可由数据接收者执行,其中,公共参数Γ,数据接收者的用户公钥和数据接收者的用户密钥可由云存储系统10直接提供或通过云存储系统10运行过程的步骤S10至步骤S30获得,在此不再赘述。而待检索关键词信息u则可由数据接收者14通过获取待检索关键词,并据此确定出待检索关键词信息

步骤S204:根据所述待检索关键词信息u、所述公共参数Γ、所述数据接收者的用户公钥和所述数据接收者的用户密钥生成对应的搜索陷门并上传至所述云服务器。

步骤S204可由数据接收者执行,而步骤S204的具体内容可参考云存储系统10运行流程中的步骤S50,在此不再赘述。

步骤S205:根据所述公共参数Γ、所述代理授权公钥Apro、所述关键词密文和所述搜索陷门,验证对应所述关键词密文和所述搜索陷门的测试方程是否成立,以确定所述数据拥有者上传的数据中是否存在与所述待检索关键词匹配的关键词,从而判断所述数据拥有者上传的数据是否与所述待检索关键词匹配。

步骤S205可由云服务器执行,而步骤S205的具体内容可参考云存储系统10运行流程中的步骤S60,在此不再赘述。

云存储系统10及其运行流程、云存储数据的关键词密文生成方法、云存储抗量子计算的公钥可搜索加密方法广泛适用于各类需要处理云上数据检索的社会团体,尤其适用于对安全性要求高、存有大量待检索数据、对检索效率有一定要求的政府机关、事业单位、国有企业等。

基于与云存储数据的关键词密文生成方法的同一发明构思,本申请实施例中还提供一种云存储数据的关键词密文生成装置30。

请参阅图6,云存储数据的关键词密文生成装置30包括:关键词信息获取单元31,用于从数据拥有者上传的数据中获取关键词信息w,其中,所述关键词信息w为比特串;随机比特串确定单元32,用于确定出一个随机比特串τ;第一分量计算单元33,用于对所述关键词信息w进行比特串加密,确定出关键词密文的第一分量ξ;第二分量计算单元34,用于对所述随机比特串τ进行比特串加密,确定出所述关键词密文的第二分量ζ;第三分量计算单元35,用于获取所述代理者与所述数据拥有者之间的代理授权公钥Apro和代理授权密钥Tpro,并根据所述关键词密文的第一分量ξ,以及所述代理授权公钥Apro和所述代理授权密钥Tpro,确定出所述关键词密文的第三分量θ;关键词密文生成单元36,用于基于所述关键词密文的第一分量ξ、所述关键词密文的第二分量ζ和所述关键词密文的第三分量θ,确定出所述关键词密文。

在本实施例中,所述第一分量计算单元33,还用于获取获取所述代理者的身份标识idp、所述数据接收者的身份标识idr和公开的所述数据接收者的用户公钥确定出一个均匀矩阵F和一个噪声矩阵S;根据所述代理者的身份标识idp、所述数据接收者的身份标识idr和所述关键词信息w,利用密码哈希函数确定出一个中间变量γ;根据所述中间变量γ,以及所述数据接收者的用户公钥所述均匀矩阵F和所述噪声矩阵S,确定出所述关键词密文的第一分量ξ。

在本实施例中,所述第二分量计算单元34,还用于获取随机向量v和随机噪声向量η;根据所述随机向量v、所述随机噪声向量η、所述均匀矩阵F和所述随机比特串τ,确定出所述关键词密文的第二分量ζ。

在本实施例中,所述第三分量计算单元35,还用于获取高斯参数δ;根据所述随机比特串τ和所述关键词密文的第一分量ξ,利用密码哈希函数确定出中间变量h;基于所述代理授权公钥Apro、所述代理授权密钥Tpro、所述中间变量h和所述高斯参数δ,运行格基原像抽样算法,确定出所述关键词密文的第三分量θ。

在本实施例中,所述云存储数据的关键词密文生成装置30还包括:代理授权单元37,用于在所述关键词信息获取单元31从数据拥有者上传的数据中获取关键词信息w之前,获取所述数据拥有者发送的电子授权书W和对应的数字签名;根据所述电子授权书W和所述数字签名,确定出所述代理授权公钥Apro和所述代理授权密钥Tpro,从而与所述数据拥有者建立授权关系。

在本申请的实施例中,还提供一种存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行本实施例中的云存储数据的关键词密文生成方法,或者执行本实施例中的云存储抗量子计算的公钥可搜索加密方法,或者执行本实施例中的云存储系统10的运行流程中的步骤。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

综上所述,本申请实施例提供一种云存储数据的关键词密文生成方法及装置、云存储抗量子计算的公钥可搜索加密方法、云存储系统、存储介质及电子设备,为数据拥有者和代理者之间提供一种代理授权机制,使数据拥有者可将文件上传托管给指定的代理来完成。并且具有抗服务器内部关键词猜测的特性,在云服务提供商受信程度未知的情况下,可有效抵御云服务器发起的内部关键词猜测攻击,为整个云存储系统的安全程度提供更进一步的保障。以及,基于LWE问题框架进行构建,能有效抵抗量子计算机的攻击,赋予了上层应用后量子环境下安全检索数据的能力。另外,构建在轻量的基于身份的密码学之上,整体来说,在成本上和性能上,都具有明显的优势。

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