您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 基于代理重加密的云数据共享机制的研究与实现
第39卷第1期2015年2月南京理工大学学报JournalofNanjingUniversityofScienceandTechnologyVol.39No.1Feb.2015、 收稿日期:2014-07-11 修回日期:2014-12-12 基金项目:中央高校基本科研业务费专项资金资助(YZDJ1201,2013) 作者简介:庞岩梅(1978-),女,讲师,主要研究方向:信息安全,E-mail:pym@besti.edu.cn。 引文格式:庞岩梅,李晓东,叶思水.基于代理重加密的云数据共享机制的研究与实现[J].南京理工大学学报,2015,39(1):84-88. 投稿网址:基于代理重加密的云数据共享机制的研究与实现庞岩梅,李晓东,叶思水(北京电子科技学院计算机学院,北京100070)摘 要:为了使得云端数据能灵活安全地进行共享,该文对基于代理重加密的共享机制进行了研究。该文利用代理重加密实现代理授权,设计了一种云端数据授权共享方案。代理重加密算法使用了双线性对,其安全性基于判定双线性Diffie-Hellman(DecisionalbilinearDiffie-Hellman,DBDH)假设。在该方案基础上,实现了一个基于Hadoop云存储平台的云端数据共享原型系统,对其进行了测试和分析。该系统的数据共享具有高效性和安全性。该文工作对代理重加密在云端数据共享中的应用具有借鉴价值。关键词:代理重加密;云存储;数据授权;数据共享;双线性对;判定双线性Diffie-Hellman;Ha-doop中图分类号:TH16 文章编号:1005-9830(2015)01-0084-05DOI:10.14177/j.cnki.32-1397n.2015.39.01.014Researchandimplementationofclouddatasharingmechanismbasedonproxyre-encryptionPangYanmei,LiXiaodong,YeSishui(SchoolofComputer,BeijingElectronicScienceandTechnologyInstitute,Beijing100070)Abstract:Toimprovetheflexibilityandsecurityofclouddatasharing,aproxyre-encryptionbasedschemeisresearched.Aclouddataauthorizationandsharingsolutionisdesignedonproxyofdataauthorizationthroughproxyre-encryption.Theproxyre-encryptionalgorithmusesbilinearparing.ThesecurityisbasedonDecisionalBilinearDiffie-Hellman(DBDH)hypothesis.AclouddatasharingprototypesystemisimplementedonaHadoopcloudplatform.Thetestandanalysisshowthedatasharingiseffectiveandsecure.Theworkisvaluableinapplicationofproxyre-encryptioninclouddatasharing.Keywords:proxyre-encryption;cloudstorage;dataauthorization;datasharing;bilinearparing;decisionalbilinearDiffie-Hellman;Hadoop总第200期庞岩梅 李晓东 叶思水 基于代理重加密的云数据共享机制的研究与实现 海量存储的需求对存储容量、访问性能和成本等提出了前所未有的挑战,云存储由于具有超强的可扩展性,成为满足存储需求的理想方式。云存储大多采用分布式存储的方式,具有易扩展、高可用等特点,给数据的大规模数据存储以很大方便,同时也是云计算的基础和支撑。但是,云存储安全性面临的挑战给它的推广形成很大阻碍。由于云存储中的数据的所有权与管理权的分离,只有使用技术手段使得隐私数据不被泄露而且很好地实现共享,才能从根本上解决用户对云存储的信任问题。解决上述问题最原始的方法是将数据加密上传到云存储平台,使用时下载到本地再解密,这样不仅给用户的使用带了不便,也使得数据的共享变得困难。代理重加密的提出使得云数据的代理授权变得容易,从而有助于实现灵活安全的云端数据共享。文献[1]首次提出了代理重加密这一概念,在代理重加密机制中,用户A可以通过一个半可信的代理方对密文数据进行再次加密,这样得到的重加密密文最后可以被授权用户B使用其私钥进行解密。在这一过程中,数据就安全地由用户A共享给用户B,而数据和任何一方的私钥都不会被泄露。这比传统的数据共享方法有很大的改进,给数据拥有者和被授权用户带来很大的方便,并且敏感数据及用户的私钥依然得到安全地保护。代理重加密目前已经被应用于电子邮件安全转发[1]、垃圾邮件的过滤[2]、分布式文件系统管理[3]、知识产权保护[4]等许多领域。本文介绍了一种代理重加密算法,提出了一个基于云平台的数据共享方案,以及方案设计的原型系统,并对原型系统和方案进行了安全性分析。1 代理重加密本文根据数据共享的特点以及实现效率的考虑,提出了一种可抗选择密文攻击的分类代理重加密算法。该算法在文献[5]的基础上进行了进一步完善。为了在确保安全性的情况下提高效率和可操作性,将原有方案的校验部分作了改进。本算法的安全性基于双线性(Diffie-Hellman,DBDH)假设[5]。1.1 代理重加密方案Setup(1k):算法在输入安全参数k后,输出一双线性映射(q,g,G1,GT,e),H:{0,1}∗→{0,1}k为一密码学上单向、抗碰撞的哈希函数,使用SHA-256等实例化。令g1为G1中不同于g的生成元,得到公开参数Param=(q,g,G1,GT,e,g1,H)。KegGen(param)→(pk,sk):输入系统公开参数param,该算法在Z∗q中选择一个随机数x,并将这体的公钥设置成pk=gx,私钥设置成sk=x。Enc(param,pki)→Ci:输入公开参数param,实体公钥和明文m得到首次加密后的密文,加密过程如下:在Z∗q中选择一个随机数ri;计算实体pki的一级可重加密密文Ci=(C1,C2,C3);C1=gri,C2=me(g1,pki)ri,C3=H(H(C1)‖H(C1‖C2));然后输出密文Ci。ReKeyGen(param,ski,pkj)→rki→j:该算法生成从实体pki到实体pkj的代理重加密密钥。使用所生成的代理重加密密钥,一个受委托的半可信任代理可以将pki的密文转化为pkj下的密文。从而,实体pkj可以使用自己的私钥解开原本为pki加密的密文。重加密钥密钥生成过程如下:在Z∗q中选择一个随机数rj;rki→j=(rk1,rk2,rk3);rk1=grj,rk2=g-ski1pkrjj,rk3=H(H(rk1)‖H(rk1‖rk2));然后输出重加密密钥rki→j。ReEnc(param,Ci,rki→j)→{Cj,⊥}:若要将实体pki的一个一级可重加密密文Ci重加密为实体pkj的密文,此过程由云服务商(即半可信代理)完成,重加密过程如下:验证以下两个等式C3=H(H(C1)‖H(C1‖C2))和rk3=H(H(rk1)‖H(rk1‖rk2))。如果上面等式有之一不成立,则不进行重加密操作,直接输出⊥,如果成立则继续下面操作: Cj=(C′1,C′2,C′′3,C′4) C′1=C1,C′2=C2·e(C1,rk2),C′3=rk1 C′4=H(H(C′1)‖H(C′1‖C′2)‖H(C′2‖C′3))Dec(param,ski,Ci)→{m,⊥}:将密文结合公开参数param及实体的私钥ski解密为明文。首先,如果被解密的密文Ci是一个可重加密的一级密文,首先验证等式 C3=H(H(C1)‖H(C1‖C2))是否成立。如果不成立,则返回⊥。否则,通过下面计算并输出消息明文 m←C2/e(C1,gski1)58南京理工大学学报第39卷第1期对于一个重加密后的密文Cj,首先验证等式 C′4=H(H(C′1)‖H(C′1‖C′2)‖H(C′2‖C′3))是否成立。如果不成立,则返因⊥。否则,通过下面计算并输出消息明文 m←C′2/e(C′1,C′3)ski1.2 方案一致性验证与安全性分析算法的一致性检验如下:一级可重加密密文Ci=(C1,C2,C3);C1=gri,C2=me(g1,pki)ri,C3=H(H(C1)‖H(C1‖C2)),于是有 m=C2e(C1,g1ski)由此可知,对于一个可重加密的一级密文是一致的。对于重加密后的密文Cj=(C′1,C′2,C′3,C′4),且 C′1=C1,C′2=C2·e(C1,rk2),C′3=rk1 C′4=H(H(C′1)‖H(C′1‖C′2)‖H(C′2‖C′3))于是有 m=C′2e(C′1,C′3)ski由此可知,重加密后的密文是一致的。通过上面二项验证可以知道,方案的一致性验证通过。本方案的安全性是基于DBDH假设,由文献[5]的安全性证明可知,并在标准模型下IND-PRE-CCA2安全的。2 云存储平台数据共享机制本方案的部署架构如图1所示。在这个体系中,实体包括客户端、服务器,后端数据库以及Hadoop集群。客户端指的是与服务器通过Web-Service[6]通信的客户端软件,服务器连接着后端数据库服务器、Hadoop集群与客户端软件。Hadoop提供安全存储功能,后端数据库为服务器提供业上的关系型数据存储支持。服务器处理重加密等操作,相关数据存储在关系型数据库(如MySQL等)中;客户端通过WebService与服务器进行数据传输和其它交互操作。系统实现包含以下几个主要过程:服务器初始化过程:服务器初始化重加密相关信息,生成公开参数与服务器自身公钥和私钥的过程。根据安全参数k,初始化双线性对(q,g,G1,GT,e),选定Hash函数,确定公开参数Param=(q,g,G1,GT,e,g1,H)。用户注册过程:用户向服务器注册时,用户向服务器发送公共参数请求,服务器返回序例化后公开参数包含服务器公钥,然后客户端依此生成配置文件以备以后操作时使用;用户检查两个参数的安全性(检查比特长度)后,生成本地密钥及公钥;用户将注册信息及公钥提交给服务器用户文档上传过程:用户生成会话密钥,使用会话密钥和AES算法加密选择的文档;然后将密文文档,文档信息提交给服务器。用户文档分享过程:用户选择分享用户,并向服务器请求共享用户的公钥,然后结合自身公钥、公开参数及共享用户的公钥生成重加密密钥。将重加加密请求、重加密密钥提交给服务。用户接收分享文档过程:用户接到文件共享通知后将重加密密文下载到本地,结合自己私钥进行解密图1 平台部署结构3 基于代理重加密云数据共享原型系统实现3.1 原型系统实现方法机制采用Java实现,环境部署在虚拟机环境下。Hadoop采用五台虚拟机,一台作为NameNode,一台作为SecondaryNode,和三台作为DataNode;MySQL使用两台虚拟机,采用主从部署;服务器采用一台虚拟机;存储环境使用Hadoop[7],WebService采用Axis2[8-9]框架;客户端采用Swing开发。原型系统总体结构如图2所示。68总第200期庞岩梅 李晓东 叶思水 基于代理重加密的云数据共享机制的研究与实现 图2 原型系统总体结构 用户1与用户2均是客户端,服务器作为服务端。在客户端中,密钥生成模块用于连接服务器时生成本地私钥,加解密模块用于实现数据的加解密,WebService接口模块实现
本文标题:基于代理重加密的云数据共享机制的研究与实现
链接地址:https://www.777doc.com/doc-4351869 .html