基于隐私保护的可追踪可撤销密文策略属性加密方案论文阅读

论文是2022年发表的A Traceable and Revocable Ciphertext-Policy Attribute-based Encryption Scheme Based on Privacy Protection

摘要

        本篇论文提出了一种具有用户撤销、白盒追踪、策略策略隐藏功能的CP-ABE方案。在该方案中密文被分为两个部分:第一个部分是和属性值加密的访问策略相关,第二个部分适合撤销信息相关(由用户相关的二叉树生成)

动机

        对于策略隐藏我们考虑如果有一个病人的病例需要拥有“神经病学”和“医生”两个属性的人才能查看,那么因为访问策略时所有人都可以访问的。对于恶意用户就可以通过策略猜测出病人是否患有神经病,这明显泄露了病人的隐私。因此,对于策略隐藏的实现还是很有必要的。策略隐藏分两类:部分隐藏和完全隐藏。部分隐藏将属性分为属性名称和属性值,提交密文的时候只将属性名称的访问策略结构随同加密数据一起上传,因此起到不会泄露属性信息。完全隐藏则不会携带任何属性相关。

        此外,因为在ABE用户的凭证其实就是属性私钥,只要拥有相同的属性,我们就区分不了用户。假设有两个相同属性的用户,如果有一个将自己的私钥给了别人,我们就不知道是谁。因此在ABE中实现追踪的效果也是很有必要性的。追踪的功能可以通过两种办法实现:白盒追踪和黑盒追踪。白盒追踪可以将解密私钥和用户身份绑定起来,然后实现对解密密钥的解析实现追踪。黑盒密钥读者还没有太多的了解,这里就不谈了。

        对于恶意泄露私钥的用户,我们需要将其撤销,使得该用户的私钥不再能够解密。撤销有两种形式:直接撤销和间接撤销。直接撤销需要可信机构管理一个撤销表,当有撤销发生时,撤销表需要更新,用户无需和可信机构交互。而间接撤销时,授权机构需要更新信息并与多用户进行沟通,如果用户数量较多,则成本就会更高。

        综上所述,需要一个即实现策略隐藏还能追踪撤销的CP-ABE方案。

预备知识

访问策略

        可以看到,访问策略不再包含数据的具体值,而是只包含属性名称。这代表着只要某个用户拥有这些属性名称就可以满足策略,但是解密的时候需要用到自己属性值和密文中属性值如果不一样还是解不密。

用户二叉树

        采用白盒可追溯性,通过给定格式良好的解密密钥绑定用户身份,可以追踪恶意用户。,用户的身份信息由系统中所有用户创建的二叉树的叶子节点值表示。然后叶节点值被加密并包含在解密密钥中。在解密密钥泄露的情况下,可以通过解密密钥泄露用户的身份。

        对于二叉树我们有几个操作:覆盖未撤销用户最小集合节点(以该节点为根,其叶子节点都是未撤销用户) 用cover(R)表示。例如如果用户1和用户4被撤销了,根据撤销表我们可以知道cover(R)=(2,8,9)。因为以2为根的树其叶子节点都是没有被撤销的,其余同理。叶节点路径用path(u),就是从根到叶节点从上到下的路径。还有一个就是对二者取交集,如果一个用户没有被撤销那么它的路径必定会有一个点是覆盖未撤销用户最小集合节点中的一个点。加密的时候就是使用这个点的值,解密的时候需要这个点的值和用户自身点的值,以及cover(R)path(u)的交集的点的值相结合求出解密部件

困难问题

方案构建 

        系统有四个实体:数据拥有者,权威机构,云和用户。

        方案主要由以下算法组成:

        设置阶段:权威机构运行算法并且输入安全参数和用户二叉树,输出公共参数和主私钥。

        加密阶段:输入公共参数、消息、访问策略和撤销列表。数据拥有者运行该算法,最后输出密文后将属性名称访问策略和密文一起上传给云。

        密钥生成阶段:输入用户身份和用户的属性集还有主私钥生成用户的解密私钥。

        解密阶段:输入密文和解密私钥,当且仅当用户解密私钥中的属性满足访问策略并且用户不是在撤销列表中才能解密成功。

        密钥正确性验:验证密钥是否是正确的。

        追踪:输入公钥和撤销列表以及私钥。首先,先检查密钥是否是正确的。之后对私钥中关于用户身份的部分进行解密查看用户身份进行追踪,之后将用户加入到撤销列表中进行撤销。

        撤销:输入密文、撤销列表以及每个用户都对应的值X,输出更新的密文。

具体算法分析

这里要注意的一个点是,权威机构为树中的每一个节点都选择了一个随机的值,实现值的节点的绑定。如果是叶子节点,那么该值实现了和用户身份的绑定。

可以看到C_{i,2}中包含了属性值,因此如果用户拥有的属性密钥中有相同的属性值那么就可以相互抵消。 

第一步算B,未撤销用户可以计算出来,如果一开始没有被撤销而后面被撤销了系统会更新T_j使得被撤销的用户利用之前掌握的信息计算不出来 B的结果。

对于更新算法这里提供了一个例子比较好理解。假设现在有四个用户,对于某个属性除用户一以外其余用户都拥有,他们可以解密相关的密文。后面,用户六被撤销了,我们可以看到由于之前用户六使用的T_2更新了导致了它不能计算B

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

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

相关文章

基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线商城系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本ONLY在线商城系统就是在这样的大环境下诞生,其可以帮助管理…

第六期丨酷雷曼无人机技能培训

第6期无人机技能提升培训 盼望着盼望着,第六期无人机技能提升培训会终于如期和大家见面了。 2024年1月1日,国务院、中央军事委员会颁布《无人驾驶航空器飞行管理暂行条例》,对民用无人机飞行活动实施更为严格的规范约束,越来越多…

阿里云服务器安装Java开发环境最佳实践

服务器环境安装 环境依赖服务器配置配置SSH登录打开安全配置端口远程连接配置秘钥 Linux服务器常用指令向远程服务器传送文件systemctl 相关 安装MySql安装步骤step1 检查并清除以前的mysql相关文件step2 安装step3 MySQL参数配置step4 设置开机启动step5 初始化数据库step6配置…

ABAP开发中常用弹窗的应用详解

在ABAP程序设计中为提示和交互的需要会经常用到弹窗, 所谓弹窗就是弹出一个框,告诉用户什么事情、需要确认什么、或者让用户输入什么内容等等,它价值在于通过提示、提醒、警告,帮助用户顺利完成业务流程中的必要操作或给用户提供实…

【JS】打乱数组顺序,用作领域:随机播放音乐

思路 循环数组随机获取数组下标取值: 取当前随机下标数组取当前循环的下标数组 相互替换步骤3的数组 /*** 随机数组顺序* param {Array} arr 数组* returns Array*/ const shufArr arr > {for (let i arr.length - 1; i > 0; i--) {const j Math.floor(M…

中国智慧城管哪家做的好?

智慧城市管理综合执法系统建立全市统一的法律法规、裁量基准、执法事项、执法文书和基础信息库,实现从获取线索、立案、调查、处理到结案全过程的信息化和文书制作的智能化。全面支持移动执法办案,提高执法效率。 技术架构: 微服务javasprin…

中颖51芯片学习1. 系统时钟及IO口输出操作

中颖51芯片学习1. 系统时钟及IO口输出操作 一、芯片介绍1. 规格2. 资源3. 中断源:4. 方框图5. 封装(1)32脚LQFP封装(2)28脚SOP封装(3)20脚SOP封装 二、开发环境搭建1. 安装keil2. 安装中颖keil插…

安全测试重点思考(中)--如何防止漏洞XSS和CSRF漏洞

如何防止漏洞XSS和CSRF漏洞 XSS漏洞的预防springsecurity框架来预防xss漏洞的步骤将特殊字符进行实体转义使用类库和修改cookie属性使用安全的HTTP Only Cookie使用安全的Cookie使用CSP(内容安全策略)使用专门的XSS防护库输入验证和过滤 XSS的面试题你对…

4.2总结

了解了部分Api的使用并学习了接口的API API API包含了较多种类(System,Runtime等) System其实就是一个工具类,提供了一些与系统相关的方法 下面有一些常间的System方法 方法名说明public static void exit (int status)终止当前运行的ja…

深入浅出 -- 系统架构之微服务架构常见的六种设计模式

面向服务的架构(SOA) 面向服务的架构(SOA)是一种设计方法,也是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的…

HarmonyOS应用开发ArkUI(TS)电商项目实战

项目介绍 本项目基于 HarmonyOS 的ArkUI框架TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址:基于TS扩展的声明式开发范式, 工具版本: DevEco Studio 3.1 Canary1 SDK版本: 3.1.9.7(API V…

春招3月面试题的总结--南京,山东,西安,东莞四家公司总结。

1.南京某公司 1.Java的几种基本数据类型?分别是多少字节? byte,8bit 1字节 char,16bit 2字节 short,16bit 2字节 int,32bit 4字节 float,32bit 4字节 long,64bit 8字节 doubl…

睿尔曼-具身智能双臂主从手项目方案

具身智能双臂主从手项目方案 一、公司介绍 成立于2018年,是一家专注于超轻量仿人机械臂研发、生产及销售的国家级高新技术企业。总部位于北京石景山区首特产业园,工厂坐落于江苏省常州科教城智能数字产业园,团队的核心成员毕业于北京航空航…

前端验证码

一、基础验证码 gVerify.js: !(function (window, document) {function GVerify(options) { //创建一个图形验证码对象,接收options对象为参数this.options { //默认options参数值id: "", //容器IdcanvasId: "verifyCanvas", //ca…

c++11 标准模板(STL)本地化库 - 平面类别 - (std::ctype) 定义字符分类表(三)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字符分类表 std::ctype template< class CharT > clas…

【nc工具信息传输】

nc&#xff0c;全名叫 netcat&#xff0c;它可以用来完成很多的网络功能&#xff0c;譬如端口扫描、建立TCP/UDP连接&#xff0c;数据传输、网络调试等等&#xff0c;因此&#xff0c;它也常被称为网络工具的 瑞士军刀 。 nc [-46DdhklnrStUuvzC] [-i interval] [-p source_po…

Linux系统Docker搭建Wiki.Js应用程序并结合cpolar实现公网访问内网知识库

文章目录 1. 安装Docker2. 获取Wiki.js镜像3. 本地服务器打开Wiki.js并添加知识库内容4. 实现公网访问Wiki.js5. 固定Wiki.js公网地址 不管是在企业中还是在自己的个人知识整理上&#xff0c;我们都需要通过某种方式来有条理的组织相应的知识架构&#xff0c;那么一个好的知识整…

腾讯云4核8G12M服务器和标准型S5服务器配置价格表

2024年腾讯云4核8G服务器租用优惠价格&#xff1a;轻量应用服务器4核8G12M带宽646元15个月&#xff0c;CVM云服务器S5实例优惠价格1437.24元买一年送3个月&#xff0c;腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云4核8G服务器优惠价格 轻…

数据结构和算法:十大排序

排序算法 排序算法用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。 排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定&#xff0c;如数字大小、字符 ASCII…

基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用

基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用 摘要引言方法 Segmentation information with attention integration for classification of breast tumor in ultrasound image 摘要 乳腺癌是世界范围内女性最常见的癌症之一。基于超声成像的计算机辅助诊断&#x…