1.引言

基于属性的加密(Attribute-Based Encryption)被提出后,CP-ABE(Ciphertext Policy Attribute-Based Encryption,密文策略基于属性加密)和KP-ABE(Key Policy Attribute-Based Encryption,密钥策略基于属性加密)都相继被提出,但是绝大多数CP-ABE方案都是CPA(选择明文攻击)安全的,或者sCPA(selective-CPA)安全的,并且只能实现单调的访问结构(即AND,OR)。

而下面说的这篇文章实现了CCA(选择密文攻击)安全,并且实现了关系“非”(NOT)的操作。

CP-ABE的具体概念可以参照博客:https://blog.csdn.net/ping802363/article/details/65639016

2.方案构造

2.1定义

令属性集N={1,2,3...n},称属性i和¬i为"文字"(literals)。在这节中考虑的访问结构全部为由AND门连接的这些"文字",可以表示为,其中表示文字(即i或¬i)。

2.2 CPA方案构造

  • Setup

一个素数阶p的双线性群G,和一个双线性映射.随机元素和群G的生成元g.

,其中.得到.

那么需要注意的是,代表i出现的三种情况,分别是正(Positive),负(negative),不在乎(don't care).正和负很好理解,那么don't care表示未出现在AND门中的属性i.

  • Encrypt

给定明文M,AND门的一个访问结构,随机选择,并令.接着计算,计算过程如下:

  1. ,则.
  2. ¬,则.
  3. ,则.

密文最终为:.

  • KeyGen

令S表示输入属性集合.每个表示为负(negative)属性,首先,对于每个,选择一个随机数,记.令.接着计算,计算过程如下:

  1. 对于:1);2).
  2. 对于:.

私钥最终为:.

  • Decrypt

假设密文为,其中.令S表示输入属性集,私钥.

对于每个,计算.

  1. 如果,则.
  2. ¬,则.
  3. ,则.

最终计算明文:,其中.

接下来,举一个实例:

假设整个属性集N为:1,2,3,4,5.

W=2 AND ¬3 AND 4,则可得到I={2,3,4}.设用户属性集为S={2,4}

在加密阶段得到的部分密文为:

.

在密钥生成阶段得到的部分密钥为:

解密:

1.如果,满足这个条件的分别是2,4.

所以计算:.

2.¬,满足这个条件的为¬3.

所以计算:.

3.,满足这个条件的为1,5.

所以计算:

故根据公式即可解得密文.

2.3 CCA方案构造

这节主要使用了强存在不可伪造签名来实现CCA安全.假设是长度为m的比特串,令中第i个比特.令表示{1,...,m}.

  • Setup

此阶段继承了前面的构造,除此之外,增加了一些子项.随机选择,对于每个,定义.最终得到公钥和主密钥分别为:.

  • Encrypt

给定明文M,AND门的一个访问结构.在运行SigKeygen算法后生成的密钥对.随机选择,利用之前构造方法得到,对于每个,如果1),则.2)否则.

利用签名密钥运行签名算法(Sign)得到上的签名,最终得到的密文为:.

  • KeyGen

与之前构造相同,对于每个,选择一个随机数,定义.除此之外,对于每个每个,选择一个随机数.此时定义.令.对于每个,令.得到私钥为.

  • Decrypt

给定密文,首先运行,,上的验证算法.如果

合法,则继续进行解密,否则停止解密.

假定密钥的形式为S集合上.与之前解密方式一样,对于每个,计算,对于每个,计算.假设S满足W,对于每个,则可恢复.

对于每个对于每个,若计算:.若计算:.最后计算密文最终计算明文:,其中.

  • 2.4 优化

  • 首先考虑对属性的优化,在这里将属性分为多个层次,加密/解密的复杂性以n为单位线性增长,因为必须处理每个才能恢复r。密文开销也是如此。这对于少量的AND门来说是不高效的:如果W中出现的"文字"的数量很少,那么大部分的计算都涉及到"不在乎(don't care)"元素。那么作者给出的方式如下:

假设系统中有n=8个属性,组织这样的一棵树,若加密器只关心属性1和4,然后在密文中提供三个"不在乎"元素.而原来的方式需要.

  • 文章中只实现了AND门,而未实现任意阈值门(包括OR门),作者的解决办法与访问树中秘密值s分发类似.举例来说明:

根处的阈值门是2 / 3,因此选择一个随机的1阶多项式p,使p(0) = s。对于i = 1,2,3,令si= p(i)。然后,给定s1,s2和s3中的任意两个值,就可以恢复s。然后对于下面的三个子树,就可以用文中提出的方案进行处理.但是这样处理并不安全,因为s1,s2和s3都没有绑定一个随机值,例如:用户具有属性¬1, 2, 3, 4,¬5,他只满足中间这颗子树,所以不应该被解密.但是由于在第一颗子树中,属性5是一个"不在乎"属性,那么他可以恢复,由于s1和s2是一阶多项式上的两个不同的点,因此可以通过插值恢复.此外,用户有属性3和4,在最后一颗子树上,属性1和2为"不在乎"属性,对于i = 1,2,3,4,他可以(合法地)获得。通过插值将这些数据与结合起来,用户现在可以恢复,得到了,通过插值就可以解得,所以这是不安全的.

作者针对这个问题,对消息M本身执行秘密共享过程,而不是对消息的随机值s执行秘密共享过程。在上面的示例中,获得M的份额M1,M2和M3,然后分别使用独立的随机指数s1,s2和s3对这些共享进行加密。攻击者不就能再利用"不关心"属性和多项式插值进行解密了。

3 总结

相比BSW方案Water方案,此文章虽实现了CCA安全,但牺牲了灵活性.比如在最后优化访问结构时会出现漏洞,虽然作者给出了折中的解决办法,但未证明其安全性,并且在树结构很复杂时,其加密开销其实并不低.

附上文章信息:

L. Cheung and C. Newport, “Provably secure ciphertext-policy ABE,” in IACR Cryptology ePrint Archive, vol. 2007, 01 2007, pp. 456–465.

参考文献

[1]Sahai A, Waters B R. Fuzzy identity-based encryption[A]. Ronald Cramer. Proceedings of the 24th Annual International Conference on Theory and Applications of Cryptographic Techniques[C]. Berlin: Springer, 2004. 457-473.

[2]Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[A]. IEEE Symposium on Security and Privacy[C]. Washington: IEEE Computer Society, 2007. 321-334.

[3]B.Waters. Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization[A]. Edinburgh :Proceedings of the 14th International Conference on Practice and Theory in Public Key Cryptography[C],2011.53–70.

可证明安全的密文策略基于属性加密(Provably Secure Ciphertext Policy ABE)相关推荐

  1. cp abe java_CP-ABE基于密文策略的属性加密(JAVA源码)

    [实例简介] 这个软件是一个Java实现基于"ciphertext-policy属性加密"(CP-ABE). 使用该软件,您需要Java加密为基础的配对库(jPBC)安装(jpbc ...

  2. 基于属性加密方案(CP-ABE,KP-ABE)

    欢迎关注公众号:区块链之美 致力于区块链技术研究,传播区块链技术和解决方案.区块链应用落地.区块链行业动态等. 1.背景 区块链典型的一个应用场景是资源共享,而在实际应用中,很多参与者的数据很涉及机密 ...

  3. 基于属性加密方案的发展

    1.公钥加密体制: 与对称密码体制相比,公钥密码体制加密密钥(公钥)和解密密钥(私钥)是不一样的,加密密钥是可以公开的,并且不会危及密码算法的安全性.其过程可以简单的表示如下图所示: 如上图所示,其步 ...

  4. 基于属性加密的ABE算法的应用场景思考展望

    ABE算法先前使用在云计算场景中,和区块链存在交叉应用场景,具体问题体现在 数据的异地存储.云服务器提供商的不可信.管理员能否对自身数据拥有足够的控制能力以及如何保证数据的安全有效共享都是亟需解决的问 ...

  5. 面向云环境基于属性加密的密文分享系统——简介

    1.Abstract 随着互联网技术的发展,人们需要处理和存储的信息数据量也越来越大.云计算的来临,在满足人们对海量数据存储空间以及计算资源需求的同时,云存储本身带来的安全问题也不容忽视.数据的异地存 ...

  6. 一种基于属性加密技术(ABE)的轻量级数据共享方案

    A Lightweight Secure Data Sharing Scheme for Mobile Cloud Computing IEEE TRANSACTIONS ON CLOUD COMPU ...

  7. 属性加密技术及基于属性的ABE算法的访问控制技术介绍

    属性加密技术 基于身份的加密体制简介 基于身份的加密体制可以看作一种特殊的公钥加密,它有如下特点:系统中用户的公钥可以由任意的字符串组成.这些字符串可以是用户在现实中的身份信息,如:身份证号码.用户姓 ...

  8. 《A Traceable and Revocable Ciphertext-Policy Attribute-based Encryption Scheme Based》属性加密机制

    <基于隐私保护的可追溯性和可撤销的密文策略属性加密> 论文链接:A Traceable and Revocable Ciphertext-Policy Attribute-based En ...

  9. 密文策略属性基加密(CP-ABE)

    目录 密文策略属性基加密(CP-ABE) CP-ABE过程 参考文献 密文策略属性基加密(CP-ABE) 在之前的(KP-ABE)中,密文和属性相关联,私钥与访问策略相关联,可以决定能解密的密文,加密 ...

  10. 科学计算机撤销,云计算环境下基于属性的撤销方案-计算机科学.PDF

    云计算环境下基于属性的撤销方案-计算机科学.PDF 第 卷 第 期 计 算 机 科 学 45 8 Vol.45No.8 年 月 2018 8 COMPUTER SCIENCE Au.2018 g 云计 ...

最新文章

  1. jQuery 1.9+ ajaxStart事件无效,无法被触发的原因。
  2. TCPIP / MTU 和 MSS 的区别和联系
  3. X265源码解析1-Encode方法
  4. 1. 观察者模式总结(C++)
  5. 工业以太网交换机品牌排行榜,国产工业交换机哪个品牌好?
  6. 热门Ruby 库中存在严重的命令注入漏洞
  7. 浅淡个人学习嵌入式Linux过程
  8. xbox360自制系统服务器,没有想象那么难!XBOX360刷机详细教程
  9. 国务院:《促进大数据发展行动纲要》-全文
  10. [转]企业安全建设二——如何推动安全策略
  11. Make sure that the latest NVIDIA driver is installed and running.
  12. 计算机的发明人是约翰用英语,电脑发明者是谁:约翰·冯·诺依曼(发明于1946年)...
  13. nodejs 项目目录结构设计
  14. 搞数仓也得懂几个常用机器学习算法
  15. [精简]托福核心词汇29
  16. js制作点击会自动隐藏的导航栏(固定在在头部的)
  17. 2023四川大学图书情报档案专业考研初试介绍(2023.1.02已更新)
  18. 5G网络的关键技术及特点,面临的挑战!
  19. Bluetooth CSR部分笔记
  20. 如果想当程序员,高中开始接触编程知识是否来得及

热门文章

  1. python汇率换算程序_Python第五课 汇率兑换3.0
  2. Python3 插入排序
  3. android日期时间的获取与时差计算
  4. JavaEE Spring框架学习笔记(AOP Introductions介绍)
  5. ajax removeclass,Ajax成功后的jQuery addClass/removeClass
  6. (十三)jQuery addClass()和removeClass()方法
  7. java中xom是啥包?_XML问题,XOM Java XML API
  8. Webots学习笔记—距离传感器的介绍和四轮小车的避障
  9. unity LineRender结合多点触摸 实现拖拽 重复画线
  10. 深扒ASML 的玩法,对工控企业生态圈的思考