为移动云数据实现基于可撤销属性组的加密:多代理辅助方法

参考文献为2023年发表的Achieving Revocable Attribute Group-Based Encryption for Mobile Cloud Data: A Multi-Proxy Assisted Approach

动机

对于目前的代理辅助的可撤销基于属性加密来说,外包解密存一些缺点。当多个具有相同属性的用户请求外包转换时,代理服务器必须执行多次转换操作,这增加了代理服务器计算开销和用户请求时间。由于移动设备计算能力较小,所有才有了外包解密,将大部分计算开销让代理服务器计算,将小部分计算开销留给移动设备上的数据使用者。传统的代理服务器外包解密系统如下图所示,当数据使用者请求某一个云上的加密数据时,它需要先从云中下载密文,然后将密文和转换密钥一起发送给代理服务器解密后,代理服务器再将部分解密的密文发送给数据使用者,然后数据使用者在解密。我们可以看出,在基于属性的加密中,如果很多用户属性相同,并且他们都想要对应于该属性加密的密文,那么这个系统的通信开销就会很大,对于代理服务器来说计算开销也很大,因为每次都要对想用的密文进行一个部分解密。本篇论文的就是解决相同属性的用户解密时和代理服务器之间多次冗余的通信和计算开销。

知识补充

撤销机制

        撤销机制分为三类:直接撤销、间接撤销、服务器辅助撤销。在直接撤销中,数据使用者将撤销列表和密文一起发送,并且需要在撤销的时候更新;对于间接撤销需要为未撤销用户更新私钥以及更新密文。而服务器辅助撤销如上说所,将解密分为两个部分,对于被撤销的用户,服务器拒绝为其解密第一部分。对于直接撤销中,撤销列表和密文是如何嵌在一起的还是有点疑惑

群签名   

        论文底层使用了一个群签名的,可以参考上一篇博客内容群签名

结果

        代理服务器拥有属性集合,具有想用的属性集合的用户会被分配到该代理服务器中,这说明用户和代理服务对于一个密文具有想用的解密能力,实现细粒度访问控制(论文中说群签名实现细粒度访问控制,我对这一个说法有点不理解)。用户不在具有转换密钥,也不再直接云服务器交互,这些功能直接全部给了代理服务器从而减少了用户和云以及代理服务器的交互通信开销。当发生撤销时,无需更新密文和用户密钥,具体是通过让撤销用户恢复不出秘密值而解不了密。

方案构建

        系统中有五个实体存在:云服务、数据拥有者、中心权威机构、代理服务器、数据使用者。系统模型如下图:

方案有以下算法组成:

        初始化:

        转换密钥生成:对于每一个代理服务器(对于一个属性集合)分配一个转换密钥 

        用户密钥生成:对于一个代理服务器,在转换密钥生成阶段CA会为其分配一个z次的多项式。此时,CA会为群中的每一个用户都为其分配z对(x,y)用于帮助用户恢复秘密值k。

         加密:就是普通的ABE加密的方式

        申请访问:使用了上面提过的群签名方案,单纯就是应用没有任何的修改。这里用户作为证明者,证明自己拥有合法的私钥即SDH的知识。代理服务器在这里作为验证者,验证用户提交的知识签名是否有效。

        转换阶段:首先根据群签名的验证算法,验证收到的签名是否有效,如果有效则继续进行下一步。代理服务器查看自己的属性是否满足访问策略如果满足则进行下一步。 对于原始密文代理服务器会用转换密钥对其进行第一次解密,生成了一个含有k次的双线配对运算B。

        解密阶段:

         追踪阶段:也只是用了群签名的方案里面的特性。

         撤销阶段:首先CA更新秘密值k'=r'P(0),然后使用更新的k'去更新新的转换密钥,使用新的转换密钥就会是部分解密中带有新的秘密值k'。然后根据撤销表,对没有撤销的用户进行广播密钥更新的信息,这样子未撤销的用户还能通过插值恢复秘密值而被撤销的用户就无法恢复出新的秘密值。

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/594011.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整合Mybatis(Spring学习笔记十二)

一、导入相关的包 junit 包 Mybatis包 mysql数据库包 Spring相关的包 Aop相关的包 Mybatis-Spring包(现在就来学这个) 提示jdk版本不一致的朋友记得 jdk8只支持spring到5.x 所以如果导入的spring(spring-we…

家具木材选择,橡胶木和松木哪个好?福州中宅装饰,福州装修

装修中,选择橡胶木和松木作为家具材料是一个常见的选择。然而,对于哪种木材更适合做家具这个问题,需要从多个方面进行分析和比较。 首先,让我们来看看 橡 胶 木。橡胶木通常被认为是一种坚硬和耐用的木材,这使得它非常…

【快速解决】python缺少了PyQt5模块的QtMultimedia子模块

目录 问题描述 问题原因 解决方法 成功示范 问题描述 Traceback (most recent call last): File "d:\桌面\python项目\DesktopWords-master\main.py", line 4, in <module> from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent ModuleNotFoundEr…

Jupyter IPython帮助文档及其魔法命令

1.IPython 的帮助文档 使用 help() 使用 ? 使用 &#xff1f;&#xff1f; tab 自动补全 shift tab 查看参数和函数说明 2.运行外部 Python 文件 使用下面命令运行外部 Python 文件&#xff08;默认是当前目录&#xff0c;也可以使用绝对路径&#xff09; %run *.py …

Spring-IoC 基于注解

基于xml方法见&#xff1a;http://t.csdnimg.cn/dir8j 注解是代码中的一种特殊标记&#xff0c;可以在编译、类加载和运行时被读取&#xff0c;执行相应的处理&#xff0c;简化 Spring的 XML配置。 格式&#xff1a;注解(属性1"属性值1",...) 可以加在类上…

Redis -- 缓存穿透问题解决思路

缓存穿透 &#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。 常见的解决方案有两种&#xff1a; 缓存空对象 优点&#xff1a;实现简单&#xff0c;维护方便 缺点&#xff1a; 额外…

00-JAVA基础-动态编译

动态编译 JAVA 6 引入了动态编译机制。Java 动态编译是指在运行时将Java源代码编译成可执行的字节码。这通常使用Java的内置编译器API javax.tools.JavaCompiler 来实现。 动态编译的应用场景 可以做一个浏览器编写java代码&#xff0c;上传服务器编译和运行的在线测评系统服…

【JavaSE】反射

Java代码的生命周期 Java代码在计算机中经历的阶段&#xff1a;Source源代码阶段、Class类对象阶段、RunTime运行时阶段。 Source源代码阶段: 这个阶段是由程序员编写生成源代码,再由Javac编译器生成class文件。 Class类对象阶段&#xff1a;由类加载器将class文件加载到JVM内…

动规训练3

一、按摩师 1、题目解析 简而言之就是&#xff0c;找到一个按摩师的预约总是长的最长方案&#xff0c;还有一个限制条件&#xff0c;选取的预约两两不相邻。 2、算法原理 a状态表示方程 小技巧&#xff1a;经验题目要求 dp[i]表示以这个节点为结尾&#xff0c;最长的预约时…

Calico IPIP和BGP TOR的数据包走向

IPIP Mesh全网互联 文字描述 APOD eth0 10.7.75.132 -----> APOD 网关 -----> A宿主机 cali76174826315网卡 -----> Atunl0 10.7.75.128 封装 ----> Aeth0 10.120.181.20 -----> 通过网关 10.120.181.254 -----> 下一跳 BNODE eth0 10.120.179.8 解封装 --…

哈佛大学商业评论 --- 第四篇:一家公司的AR经验

AR将全面融入公司发展战略&#xff01; AR将成为人类和机器之间的新接口&#xff01; AR将成为人类的关键技术之一&#xff01; 请将此文转发给您的老板&#xff01; --- 专题作者&#xff1a;Michael E.Porter和James E.Heppelmann 虽然物理世界是三维的&#xff0c;但大多…

LeetCode每日一题之专题一:双指针 ——快乐数

快乐数OJ链接&#xff1a;202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 题目分析: 为了房便叙述&#xff0c;将「对于⼀个正整数&#xff0c;每⼀次将该数替换为它每个位置上的数字的平方和」这⼀个 操作记为 x 操作&#xff1b; 题目告诉我们&#…