有人可以解释什么是基于属性的加密吗?

我正在搜索一本书或在这方面有帮助的书,但到目前为止我还没有找到。除了这些论文,Google几乎什么也没有返回。

评论

检出gleamly.com/article/introduction-attribute-based-encryption-abe

#1 楼

我尝试提供一个简短的介绍。

ABE

基于属性的加密(ABE)是一种相对较新的方法,它重新考虑了公共密钥密码学的概念。在传统的公共密钥密码术中,使用接收者的公共密钥为特定接收者加密消息。通过允许公钥为任意字符串(例如接收者的电子邮件地址),基于身份的密码学,尤其是基于身份的加密(IBE)改变了对公钥密码学的传统理解。 ABE进一步走了一步,将身份(不是身份)定义为原子属性,而是将其定义为一组属性,例如角色,并且可以针对属性子集(密钥策略ABE-KP-ABE)或在一组属性上定义的策略对消息进行加密属性(密文策略ABE-CP-ABE)。关键问题是,如果某人拥有“匹配属性”的密钥(在下文中有更多内容),则该用户只能解密密文,在该属性中,用户密钥始终由某个受信任的方颁发。

密文-政策ABE

在基于密文策略的基于属性的加密(CP-ABE)中,用户的私钥与一组属性相关联,并且密文指定了系统中已定义属性范围内的访问策略。当且仅当用户的属性满足相应密文的策略时,该用户才可以解密密文。可以使用合取,析取和$(k,n)$阈值门为属性定义策略,即,必须存在$ n $属性中的$ k $(也可能存在带有其他否定性的非单调访问策略同时也有定义为任意电路的策略构造。例如,让我们假设属性的Universe被定义为$ \ {A,B,C,D \} $,并且用户1接收到属性$ \ {A,B \} $的密钥,而用户2接收到属性$ \ {D \} $。如果根据策略$(A \ wedge C)\ vee D $对密文进行加密,则用户2将能够解密,而用户1将无法解密。

CP因此-ABE允许实现隐式授权,即授权已包含在加密数据中,只有满足相关策略的人员才能解密数据。另一个不错的功能是,在根据策略对数据进行加密之后,用户可以获取其私钥。因此,可以在不知道能够解密的实际用户集合的情况下对数据进行加密,而仅指定允许解密的策略。将来将获得关于属性的密钥以便可以满足该策略的任何将来的用户都将能够解密数据。

密钥策略ABE

从访问策略被编码到用户秘密密钥(例如$(A \ wedge C)\ vee D $),并且相对于一组属性,例如$ \ {A,B \} $。在该示例中,用户将无法解密密文,但是例如将能够针对$ \ {A,C \} $解密密文。

CP-和KP-ABE都必须达到的重要性能被称为抗串扰。从根本上讲,这意味着不同的用户不可能“合并”他们的秘密密钥,以便他们可以一起解密他们都不可以自行解密的密文(这是通过独立地随机化用户的秘密密钥来实现的)。

超越ABE

ABE只是功能性加密(FE)的更一般概念中的一种,涵盖了IBE,ABE和许多其他概念,例如内部乘积或隐藏矢量加密(例如,可搜索的加密)等。这是一个非常活跃和年轻的研究领域,具有许多有趣的应用程序(特别是在云计算领域)。

评论


$ \ begingroup $
到目前为止,这是我得到的最好的解释。非常感谢您抽出宝贵的时间来详细解释这一点。老实说,我相信您应该将此解释添加到ABE的维基百科文章中,因为许多其他人都可以从中受益。再次非常感谢。
$ \ endgroup $
–马克
14年6月25日在21:54

$ \ begingroup $
很好奇对称ABE方案中是否有任何工作
$ \ endgroup $
– sashank
2014年6月26日下午4:47

$ \ begingroup $
@sashank我不知道对称ABE的任何工作。朴素的CP-ABE可能是:您具有为每个属性分配不同密钥的权限。如果您有策略,则只需构建访问树并应用递归秘密共享(就像在不使用线性秘密共享的所有构造中所做的那样),并使用相应的属性密钥对属性叶处的相应共享进行加密。使用您已在树上共享的随机根秘密作为密钥来加密数据。然而,这将不是抗勾结的,这在对称设置中可能很难甚至不可能实现。
$ \ endgroup $
– DrLecter
2014年6月26日6:30



$ \ begingroup $
@sashank我很感兴趣。您对对称ABE了解什么?如果您的想法太长,无法发表评论,可以提出一个问题。
$ \ endgroup $
– Artjom B.
2014年6月26日14:53

$ \ begingroup $
@ sashank,ABE的一大好处是属性是公共的,如果拥有该属性,则可以获取与其关联的私钥。因此,任何人都可以使用属性进行加密,但是只有拥有属性的人才能解密。对称ABE会说,只有拥有属性的人才能使用它们进行加密。如果这是您需要的功能,则可以使用基于属性的签密方案来实现。
$ \ endgroup $
–mikeazo
14-6-26在16:58