一种基于非对称密码算法的数据存储和访问控制方法与流程

文档序号:12493506阅读:261来源:国知局
一种基于非对称密码算法的数据存储和访问控制方法与流程

本发明涉及云数据存储技术领域,尤其涉及一种基于非对称密码算法的数据存储和访问控制方法。



背景技术:

目前,在云存储环境中,出于经济以及便利的考虑,用户将自己的数据外包到云服务器中,为了保护用户数据的机密性和隐私性,访问控制是不可缺少的保护手段。然而由于用户并不能够完全的信任云服务器提供商,因此传统的访问控制手段并不能够很好的应用到云存储环境中。为了解决这一问题,基于属性的加密方案(ABE)被引入到云存储中,ABE使得数据拥有者能够直接对自己的数据进行访问控制,是一种有效的用户侧访问控制手段。其中,策略与密文相关的基于属性的加密方案(CP-ABE)被认为是最适合在云存储中实现访问控制的手段之一。

然而由于缺乏相应的可兼容的云端访问控制策略,CP-ABE还是很难被直接部署到实际的公有云环境中。在目前的云端访问控制方案中,云服务器总是被假设为完全可信的,因此这些方案很难做到与CP-ABE方案相互兼容。由于缺乏相应的云端访问控制,在基于CP-ABE的访问控制方案中,云服务器始终暴露在多种安全威胁当中,其中最重要的安全威胁之一就是拒绝服务攻击(DoS/DDoS),恶意的用户可以无限制的下载云服务器上其他用户共享的文件,从而消耗云服务器上的各种资源,使得云服务器不能够正常的工作;除此之外,由于缺乏云端访问控制,恶意的用户通过下载大量的文件,可以进行有关密文分析的攻击,威胁用户数据的机密性。



技术实现要素:

本发明的目的是提供一种基于非对称密码算法的数据存储和访问控制方法,利用该方法,云服务器可以有效的对特定用户的访问权限进行判断,避免恶意用户对云存储文件的非法下载,有效保证了云服务器自身及所存储数据的安全性,同时非对称密码体制内嵌的签名功能能够有效支持数据拥有者审计云服务器的资源消耗,以保障云存储系统的正常运行。

一种基于非对称密码算法的数据存储和访问控制方法,所述方法包括:

步骤1、数据拥有者根据所要上传文件M的访问权限需求生成进行属性加密所需的属性集合{A1,A2,...,An}和访问策略A;

步骤2、所述数据拥有者生成随机会话密钥K以及一对公私钥对(PK,SK),采用对称加密算法对文件M和私钥SK进行加密处理,根据所述访问策略A采用属性加密方法对随机会话密钥K进行加密处理,并将所得的密文记为:

CT={EK(M),EA(K),EK(SK),PK};

步骤3、所述数据拥有者上传密文CT到云服务器进行存储,并在本地存储公钥PK用作资源审计操作;

步骤4、所述云服务器生成N个随机字符串{S1,S2,...,SN},采用公钥加密算法利用公钥PK加密该N个随机字符串得到{Si,EPK(Si)}(i∈[1,N]),并更新密文为:

步骤5、当其他用户需要获取所述云服务器存储的文件M时,所述云服务器和该提出请求的用户完成挑战-应答过程,在所述用户获取文件M之前验证该用户对文件的访问权限;

步骤6、所述云服务器将所述用户所请求文件M对应密文CT中的数据密文EK(M)发送给所述用户;

步骤7、所述用户采用随机会话密钥K解密EK(M),得到所需要的文件M;

步骤8、所述数据拥有者对所述云服务器提供的资源消耗记录进行审计,以验证所述云服务器为该数据拥有者消耗的资源量。

由上述本发明提供的技术方案可以看出,利用上述方法可以有效的对特定用户的访问权限进行判断,避免恶意用户对云存储文件的非法下载,有效保证了云服务器自身及所存储数据的安全性,同时非对称密码体制内嵌的签名功能能够有效支持数据拥有者审计云服务器的资源消耗,以保障云存储系统的正常运行。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例所提供的基于非对称密码算法的数据存储和访问控制方法流程示意图;

图2为本发明实施例所述访问结构的示意图;

图3为本发明实施例所提供的云服务器执行更新过程的流程示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例所提供的基于非对称密码算法的数据存储和访问控制方法流程示意图,所述方法包括:

步骤1、数据拥有者根据所要上传文件M的访问权限需求生成进行属性加密所需的属性集合{A1,A2,...,An}和访问策略A;

在该步骤中,访问策略A为单调访问结构,可以表示为树形结构。

举例来说,如图2所示为本发明实施例所述访问结构的示意图,在图2中:访问策略A中对应的属性集合为{疾病:感冒,医院:A,年龄:儿童,年龄:老人}。

步骤2、所述数据拥有者生成随机会话密钥K以及一对公私钥对(PK,SK),采用对称加密算法对文件M和私钥SK进行加密处理,根据所述访问策略A采用属性加密方法对随机会话密钥K进行加密处理,并将所得的密文记为:

CT={EK(M),EA(K),EK(SK),PK};

在该步骤中,所述数据拥有者选取一种非对称密码学算法,如RSA,并生成对应的公私钥对(PK=(e,n),SK=d),同时生成随机会话密钥K,并采用对称加密算法例如利用AES等对文件M和私钥SK进行加密处理,得到相应的密文EK(M)和EK(SK);

然后根据访问策略A采用属性加密方法对K进行加密处理,得到对应的密钥密文EA(K);

最终将处理后的密文记为:

CT={EK(M),EA(K),EK(SK),PK}。

步骤3、所述数据拥有者上传密文CT到云服务器进行存储,并在本地存储公钥PK用作资源审计操作;

步骤4、所述云服务器生成N个随机字符串{S1,S2,...,SN},采用公钥加密算法利用公钥PK加密该N个随机字符串得到{Si,EPK(Si)}(i∈[1,N]),并更新密文为:

步骤5、当其他用户需要获取所述云服务器存储的文件M时,所述云服务器和该提出请求的用户完成挑战-应答过程,在所述用户获取文件M之前验证该用户对文件的访问权限;

在该步骤中,云服务器和该提出请求的用户完成挑战-应答过程的步骤具体包括:

所述云服务器从密文CT中随机选择一组未使用的{Si,EPK(Si)},并将EA(K),EK(SK)和EPK(Si)作为挑战发送给该提出请求的用户;

所述用户根据自身的属性解密EA(K)得到K′,使用K′解密EK(SK)得到私钥SK′,并利用公钥加密算法解密EPK(Si)得到S′i

所述用户利用所得到的私钥SK′对S′i进行签名得到Sign(SK′,Si′),并通过安全通道将(Si′,Sign(SK′,Si′))作为应答发送给所述云服务器;

具体实现中,若用户的属性能够满足访问策略A,如用户的属性为{疾病:感冒,年龄:儿童,医院:A},则用户能够解密EA(K)得到会话密钥K′;否则,用户不能解密密文,如当用户的属性为{疾病:感冒,年龄:儿童,医院:B}时,用户就不能得到会话密钥K′。满足访问策略的用户可以利用解密得到的会话密钥K′解密EK(SK)得到私钥SK′,并利用公钥加密算法解密EPK(Si)得到S′i。然后用户利用私钥SK′对S′i进行签名,签名除了包含用户解密得到的S′i以外,还应该包含一些辅助信息,如文件的名称FileName,访问时间对应的时间戳Timestamp等,最终签名的结果可以表示为Sign(Si′)=Sign(SK,Si′,FileName,Timestamp),然后用户通过安全通道将Si′及其签名Sign(Si′)作为应答发送给所述云服务器。需要说明的是,不满足访问结构的恶意用户也可以使用伪造的S′i和签名作为应答发送给云服务器,同时云服务器也可能会伪造这样的签名信息。

进一步的,所述云服务器比较所述用户返回的(Si′,Sign(SK′,Si′))中的S′i与所选择的{Si,EPK(Si)}中的Si,并利用公钥PK验证签名,如果签名验证不通过,则该返回结果不能作为资源消耗的凭证,所述云服务器终止操作;

若比较结果相等,则判断所述用户的属性满足所请求文件的访问策略,将{Si,EPK(Si)}标记为已使用,并存储对应的(Si,Sign(SK,Si))作为资源消耗的凭证,进行后继步骤6的操作;否则,判断所述用户的属性不能满足所请求文件的访问策略,所述云服务器终止操作。

步骤6、所述云服务器将所述用户所请求文件M对应密文CT中的数据密文EK(M)发送给所述用户;

步骤7、所述用户采用随机会话密钥K解密EK(M),得到所需要的文件M;

步骤8、所述数据拥有者对所述云服务器提供的资源消耗记录进行审计,以验证所述云服务器为该数据拥有者消耗的资源量。

在该步骤8中,随着时间的推移,云服务器会根据自己为数据拥有者消耗的资源向其收取一定的费用,当数据拥有者对云服务器提供的特定时间段内的资源消耗记录保持怀疑时,数据拥有者可以要求审计云服务器这段时间内的资源消耗记录,该过程具体为:

所述数据拥有者向所述云服务器申请特定时间段内的资源消耗记录;

所述云服务器向所述数据拥有者返回其申请时间段内的资源消耗凭证{St1,Sign(SK,St1),St2,Sign(SK,St2),...,Stj,Sign(SK,Stj)};

所述数据拥有者利用所述步骤3中存储的公钥PK验证所述云服务器返回的资源消耗凭证{St1,Sign(SK,St1),St2,Sign(SK,St2),...,Stj,Sign(SK,Stj)},以验证所述云服务器在特定时间段内的资源消耗量。

另外,随着云服务器端所存储的随机字符串及其密文的消耗,云服务器需要对其进行更新操作,该更新操作为周期性执行,或者当均被使用过时,由所述云服务器执行更新过程。

如图3所示为本发明实施例所提供的云服务器执行更新过程的流程示意图,该过程具体为:

步骤31:所述云服务器产生新的N个随机字符串{S′1,S′2,...,S′N};

步骤32:所述云服务器采用公钥加密算法和密文中存储的公钥PK加密该N个随机字符串得到{Si′,EPK(Si′)}(i∈[1,N]);

步骤33:所述云服务器使用新得到的{S′i,EPK(S′i)}(i∈[1,N])替换原有的{Si,EPK(Si)}(i∈[1,N]),完成更新过程。

综上所述,本发明实施例所提供的方法具有如下优点:

1)云服务器端安全性的增强:借助随机字符串及其加密内容{Si,EPK(Si)},云服务器只需要较小的通信开销就可以对用户的访问权限进行预判,这就减少了恶意用户申请下载云服务器端文件时云服务器侧的开销,使得云服务器能够有效的抵御消耗通信资源的DoS/DDoS攻击。

2)云服务器端存储数据安全性的增强:由于云端访问控制机制的存在,恶意用户很难从云服务器端进行任意文件的下载,这就防止了恶意用户针对密文分析的攻击。

3)与现有用户侧访问控制方案的高效兼容性:在传统的CP-ABE访问控制方案基础上,该方法只需要数据拥有者额外产生一对公私钥对,并将公钥和加密的私钥上传到云服务器即可,这就使得该方法能够高效的兼容现有的CP-ABE访问控制方案。

4)数据拥有者对云端资源消耗的审计:借助于非对称密码体系内嵌的签名机制,数据拥有者能够准确地审计用户返回的资源消耗凭证(Si,Sign(SK,Si)),这就保证了数据拥有者能够准确的对云端为其提供的资源进行审计,这种内嵌的审计机制增强了云存储系统的稳定性。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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