一种云计算环境下的密文数据共享系统的制作方法

文档序号:12309659阅读:438来源:国知局
一种云计算环境下的密文数据共享系统的制作方法与工艺

本发明属于网络与信息安全技术领域,实现了一种云计算环境下的密文数据共享系统,可用于云计算环境下数据交换领域的信息共享。



背景技术:

随着互联网技术的飞速发展,用户开始参与信息的制造和编辑,使得用户个人数据量成指数增长,导致数据存储和管理的开销逐渐增加,当个人pc不足以支撑用户的业务要求时,云计算技术随之产生,云计算本身的逐步演化是继承了此前的网格计算、效用计算、软件即服务的一些研究成果而逐步发展而来。云计算是一种基于网络的计算模式,其核心是可以为用户提供可伸缩的虚拟化服务,它改变了传统信息产业的运作方式,用户不再需要将软件安装在个人电脑上,通过互联网就可以使用软件提供的服务,使得传统的软件提供商逐渐转变为云服务提供商。云计算处于快速发展阶段,通过为用户提供各种服务,可以用来解决大规模数据的存储和计算问题,成为各大厂商纷纷追逐的对象,比如亚马逊的aws提供了一套商业成熟的弹性云服务,用户只需关注自己的业务需求,按需定制,而无需关心设备的购买与维护,大大降低了企业开发成本;谷歌的appengine为程序员打造了一个无限的虚拟运行环境,使程序员无需担心系统因业务规模的扩大而需频繁重构的问题;此外还有微软的azure、facebook、国内的阿里云等等,都在各自的领域内发挥着重要的作用。由于其随时随地存取、大容量、按需服务以及低成本等优势,存储在云端的数据呈指数上涨趋势。

云端自身的安全性以及可信度问题,成为制约云计算技术进一步发展的主要瓶颈。传统的解决方法是利用密码学技术将数据在终端加密,再将加密后的数据存储在云端。这种方法在一定程度上增强了数据云端存储的安全性,但是却引入了云端密文数据安全共享困难的问题,即如何将这些密文信息安全的分享给授权用户,同时避免未授权用户的非法访问。

基于密文属性策略(ciphertext-policyattribute-basedencryption,cp-abe)的方法是解决云计算环境下的密文数据安全共享的主要技术之一,特别是在规模庞大且用户身份未知的情形下尤为适用,但对于数据拥有者的亲人、朋友等这类身份明确且数量有限的用户群而言,该技术在性能上并不具备优势,因此有必要针对这部分用户进行单独处理。同时基于cp-abe构造的密文数据共享系统涉及属性撤销问题,而该问题在很大程度上对整个系统的性能会造成影响。



技术实现要素:

本发明的目的在于克服上述现有技术存在的缺陷,提出了一种云计算环境下的密文数据共享系统,用于解决现有密文数据共享系统中存在的属性撤销代价大和用户数据共享效率低的技术问题。

为实现上述目的,本发明采取的技术方案为:

一种云计算环境下的密文数据共享系统,该系统包括授权模块、数据拥有者模块、用户模块和云服务提供商模块,所述授权模块,用于对数据拥有者模块、用户模块进行授权;所述数据拥有者模块,用于对待共享的数据进行加密并上传;所述用户模块,用于向授权模块申请授权,并向云服务提供商模块申请访问数据;所述云服务提供商模块,用于为数据拥有者模块和用户模块提供存储和计算服务,所述授权模块,包括多个属性权威模块,各属性权威模块之间采用层级或并列关系;所述数据拥有者模块,包括构建xacml访问策略模块,用于生成策略文件;所述用户模块,包括私钥解密模块和cp-abe解密模块,其中,私钥解密模块,用于私有域用户的aes密钥密文数据解密,cp-abe解密模块,用于公有域用户aes密钥密文数据的解密。

上述的一种云计算环境下的密文数据共享系统,所述授权模块,还包括认证权威模块,用于产生系统公钥和系统主私钥。

上述的一种云计算环境下的密文数据共享系统,所述属性权威模块,包括初始化模块、公私钥生成模块和属性授权模块,其中:初始化模块,用于对公私钥生成模块和属性授权模块进行初始化;公私钥生成模块,用于生成公私钥;属性授权模块,用于生成属性相关的密钥。

上述的一种云计算环境下的密文数据共享系统,所述数据拥有者模块,还包括aes对称加密模块、cp-abe加密模块、公钥加密模块和数据上传模块,其中:aes对称加密模块,用于对数据拥有者模块所共享的数据明文进行加密;cp-abe加密模块,用于对公有域用户使用的aes密钥进行加密;公钥加密模块,用于对私有域用户使用的aes密钥进行加密;数据上传模块,用于将aes对称加密模块、cp-abe加密模块和公钥加密模块生成的数据组合上传到云服务提供商模块。

上述的一种云计算环境下的密文数据共享系统,所述云服务提供商模块,包括策略执行模块、上下文处理器模块、策略决策模块、策略管理库模块、策略信息模块、管理属性库模块、云存储模块、代理重加密模块和数据下载模块,其中:策略执行模块,用于执行策略决策模块返回的响应;上下文处理器模块,用于将xacml格式的请求/响应和非xacml格式的请求/响应的相互转换,并将此消息发送到策略决策模块;策略决策模块,用于从策略管理库模块中选取对应的策略,并根据策略作出相应的决策响应,并将此响应消息发送到上下文处理器模块;策略管理库模块,采用mysql数据库服务器,对系统中的xacml策略进行管理;策略信息模块,用于管理对应的主体、资源和环境的属性信息;管理属性库模块,用于管理用户属性集;云存储模块,采用openstackswift开源云存储,对数据拥有者上传到云服务提供商的所有数据进行存储;代理重加密模块,用于将私有域用户访问的数据密文进行重加密处理;数据下载模块,用于将用户所访问的所有数据下载到用户的客户端。

上述的一种云计算环境下的密文数据共享系统,所述用户模块,还包括aes解密模块,用于数据拥有者模块上传的数据密文的解密处理。

本发明与现有技术相比,具有如下优点:

1)本发明由于在用户模块中对用户群进行了分域处理,增加了私钥解密模块和cp-abe解密模块,其中,私钥解密模块用于私有域用户的解密操作,cp-abe解密模块用于公有域用户的解密操作,使得本发明对不同的用户群更有针对性,提高了数据共享的效率。

2)本发明由于在授权模块中增加多个属性权威模块,各属性权威模块之间采用层级或并列关系,并且分别管理一部分用户,当用户规模增大时,不会造成单授权模型的系统瓶颈问题,使得系统整体的可扩展性得到增强,更好的适应了云计算的环境要求。

3)本发明由于在数据拥有者模块中增加构建xacml访问策略模块,用于生成策略文件,数据拥有者通过选择将一些经常需要更新的属性(比如“时间”属性),定义在xacml策略文件中,而不是定义在cp-abe的访问控制结构中,当这些属性需要撤销时,数据拥有者可以简单的更新xacml访问控制文件,而避免撤销cp-abe属性所需的一系列操作,可以有效的降低数据拥有者撤销这些属性所需的代价,从而提高了系统性能。

附图说明

图1是本发明的整体结构示意图;

图2是本发明的授权模块的结构示意图;

图3是本发明的数据拥有者模块的结构示意图;

图4是本发明的云服务提供商模块的结构示意图;

图5是本发明的用户模块的结构示意图。

具体实施方式

以下参照附图和实施例,对本发明作进一步详细说明:

参照图1,本发明包括授权模块、数据拥有者模块、用户模块和云服务提供商模块,其中,授权模块的结构示意图如图2所示,授权模块与数据拥有者模块和用户模块相互通信;数据拥有者模块的结构示意图如图3所示,数据拥有者模块与授权模块和云服务提供商模块相互通信;云服务提供商模块的结构示意图如图4所示,云服务提供商模块与数据拥有者模块和用户模块相互通信;用户模块的结构示意图如图5所示,用户模块与云服务提供商模块和授权模块相互通信。

系统工作时,数据拥有者模块和用户模块向授权模块申请所需密钥,授权模块产生相关密钥并通过安全套接层分别发送到数据拥有者模块和用户模块;数据拥有者模块加密共享数据,并将该密文上传到云服务提供商模块;用户模块向云服务提供商模块申请访问共享数据,云服务提供商模块根据用户合法性决定是否将密文发送给用户模块;用户模块下载共享数据密文,根据不同用户域进行分别处理。

参照图2,认证权威模块负责为系统中的属性权威模块授权,系统初始化时,认证权威模块负责产生系统公钥和系统主私钥,其中,系统公钥对整个系统公开,系统主私钥要安全保存。认证权威模块并不管理任何属性,也不产生任何与属性相关的用户私钥,它使用产生的系统公钥和系统主私钥对下层属性权威模块授权,下层属性权威模块得到初始化,产生一个授权密钥。为了消除单授权机构的授权模型所带来的系统瓶颈问题,提高数据共享效率,本发明在授权模块中增加了多个属性权威模块,同时将各属性权威模块之间设计成层级或并列关系,系统中位于上层的每个属性权威模块负责为其管辖范围内的下一层的属性权威模块、数据拥有者模块以及用户模块授权,多属性权威的授权模型分担了用户流量,使得系统整体的可扩展性得到增强,更好的适应了云计算的环境要求。属性权威模块包括初始化模块、公私钥生成模块和属性授权模块,其中初始化模块产生一个系统安全参数,该参数用于对公私钥生成模块和属性授权模块进行初始化;公私钥生成模块采用rsa公私钥生成算法生成一对公私钥;属性授权模块使用cp-abe密钥生成算法为其生成一个属性相关的密钥,然后将产生的公私钥和属性相关的密钥发送到数据拥有者模块。

参照图3,数据拥有者模块接收授权模块产生的公私钥和属性相关的密钥,aes对称加密模块运行aes密钥生成算法产生一个aes密钥,然后将要共享的数据明文m用aes密钥ck使用aes128bit算法加密,生成数据密文ct,数据拥有者模块通过使用aes算法加密数据明文提高了数据的加密效率;然后判定用户群,其中,针对私有域中的用户,公钥加密模块使用rsa公钥加密算法,对aes密钥加密生成密钥密文c2;针对公有域中的用户,cp-abe加密模块使用cp-abe加密算法,对aes密钥加密得到密钥密文c1;为了降低属性撤销的代价,数据拥有者模块通过构建xacml访问控制策略模块,通过xml编辑器,将一些更新频率较高的属性(比如“时间”属性),定义在xacml策略文件中,生成一个xml格式的策略文件,当这些属性需要撤销时,只需对xacml策略文件进行更新,可以有效的降低数据拥有者模块撤销这些属性所需的代价;最后数据拥有者模块将策略文件、数据密文ct、密钥密文c1和密钥密文c2经过数据上传模块上传到云服务提供商,上传模块使用java套接字实现。

参照图4,用户模块向云服务提供商模块发起访问共享数据的请求,策略执行模块接收到请求并将该请求转发给上下文处理器模块,上下文处理器模块接收到该请求,使用xml开发包将其重构为xacml格式的请求并发送到策略决策模块,策略决策模块首先经过策略管理模块向管理策略库模块中查询请求的策略,再从上下文处理器模块向策略信息模块从管理属性库模块中请求相关主体、资源、环境的属性值,策略决策模块运行xacml策略决策算法将决策响应经过上下文处理器模块发送给策略执行模块,其中上下文处理器模块将xacml的决策响应格式转换为原请求格式,策略执行模块根据响应信息判断决策结果,若为拒绝,则策略执行模块向用户模块发送拒绝响应信息;若为允许,则向云存储模块发送查询数据请求,云存储模块接收到该请求后,在其中找到对应的数据密文ct,然后通过判断用户群,若为私有域中的用户,则将密钥密文c2发送到代理重加密模块,通过代理重加密模块,使用代理重加密算法,将密钥密文c2重新加密为c3,使得该私有域用户可以用自己的私钥解密该密文;若为公有域中的用户,则在云存储模块中找到对应的密钥密文c1;最后云服务提供商模块将在云存储模块中找到的密文数据ct、c1或c3经过数据下载模块一并发送给用户模块。

参照图5,用户模块接收到云服务提供商模块的响应数据ct、c1或c3,首先判断用户群,如果是私有中的用户,则通过私钥解密模块,使用rsa解密算法将密钥密文c3解密,得到aes密钥ck;如果是公有域中的用户,则通过cp-abe解密模块,使用cp-abe解密算法将密钥密文c1解密,得到aes密钥ck。然后通过aes解密模块,使用aes解密算法,使用aes密钥ck解密数据密文ct得到数据明文m。

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