论文部分内容阅读
随着网络空间中数据量的爆炸式增长以及云计算技术的稳步发展,越来越多的机构和个人用户摒弃了硬件设备成本高昂的传统本地存储模式,转而选择云存储作为新的数据存储方式。然而,云存储会导致数据的所有权与管理权分离的情况,而直接运用传统的加密技术进行数据机密性保护会使云存储面临着数据安全性与数据共享灵活性之间的矛盾。因此,作为解决此类问题的常用方法,属性基加密(Attribute-Based Encryption,ABE)等基于密码学的访问控制方案目前已经得到了广泛的研究。针对云存储环境中的一些特定应用场景而言,构建面向用户分层的密码学访问控制机制具有十分重要的实用意义。在这些场景中,用户被分为若干个以等级结构组织的用户组,所在组别和等级不同的用户被赋予不同的访问权限,较高级别用户组中的用户有权访问其下属用户组的数据,而底层用户组中的用户则无权访问其上级用户组及其他用户组的数据。基于密码学的分层访问控制(Hierarchical Access Control,HAC)技术是用于解决该场景下一般问题的基本方法。然而,由于缺乏可伸缩数据共享、用户撤销更新、委托重加密等功能,大多数现有分层访问控制解决方案在云存储场景中并不够实用。本论文主要对云存储环境下支持可伸缩数据共享的分层访问控制方案构造进行了研究,主要工作与贡献如下:1.基于密钥聚合加密(Key-Aggregate Cryptosystem,KAC)方法,本文提出了一种面向云存储环境的分层访问控制基础方案,支持可伸缩的数据安全共享,允许用户向任意用户组共享数据。在该基础方案中,不同用户的密钥长度是恒定的,而与分层用户结构的规模无关。此外,该基础方案无需现有分层密钥分配(Hierarchical Key Assignment,HKA)方案中广泛存在的密钥推导过程,提高了密钥管理的便利性。安全性分析的结果表明,该基础方案满足正确性、紧凑性、数据机密性和抗共谋性等要求。2.面向用户访问权限与分层结构动态变化的云存储应用场景,本文对上述基础方案在动态更新方面的局限性进行改进,提出了一种支持用户撤销更新的动态分层访问控制方案。该改进方案通过引入动态公开矩阵和委托重加密,支持了较为高效的用户撤销和懒惰重加密(Lazy Re-Encryption,LRE)功能,减少了更新所需的计算和通信开销。与基础方案相比,该改进方案还满足前向安全性的要求。3.本文在Ubuntu操作系统中基于Java语言和jPBC密码学库分别对上述两个方案进行了仿真实验与性能分析。同时,本文应用上述基础方案,基于Python语言和Django框架开发了一套浏览器/服务器(Browser/Server,B/S)架构下支持分层访问控制的云数据安全共享原型系统。系统测试结果表明,本文提出的分层访问控制方案在现实应用中具有高可行性。