1

我正在尝试使用Charm Crypto library的 cpabe 功能。具体来说,我使用的是abenc_bsw07方案。

有没有办法定义比示例中的更复杂的策略和属性:

attributes = ['ONE', 'TWO', 'THREE']

access_policy = '((four or three) and (three or one))'

我希望能够做类似于 cpabe ( http://acsc.cs.utexas.edu/cpabe/tutorial.html ) 实现的东西。属性有值,策略可以包含相等或更大/更小的关系。

如果它支持所需的功能,我也可以使用替代方案。

4

1 回答 1

0

其他保单功能

策略表达有多种选择。一些 ABE 方案仅支持纯 AND 策略或纯 OR 策略。有些仅支持特定形式的策略,例如 CNF 或 DNF。

Bethencourt 的 CP-ABE 支持具有阈值节点的策略树。可嵌套的阈值节点足以实现数字属性,如果您想要一个示例,您可以查看libbswabe

假设我们有四个属性AB和。阈值策略可能如下所示:这意味着只需具有列表中的 2 个或更多属性即可满足策略并能够解密密文。与门 ( ) 只不过是,或门 ( ) 只不过是。CD=52 of (A, B, C)A AND B2 of (A, B)A OR B1 of (A, B)

数值策略A AND D<=24在解析时会导致相当大的策略树,因为数值属性以二进制编码,然后为每个位位置生成许多掩码。这是一个非常昂贵的操作(即加密和解密)。

魅力特点

Charm 不支持阈值策略。策略解析器 ( charm.toolbox.policytree)稍微支持数字属性,但没有代码来处理属性集中的数字属性。也缺少创建位掩码属性的算法。

添加阈值门应该相当容易,但有必要将二叉树更改为具有任意数量子节点的树(请参阅 参考资料charm.toolbox.node)。

更改不会很复杂,但会有点太多。如果您有兴趣进行这些更改,您应该这样做。如果您设法在不破坏现有代码的情况下添加这些功能(运行魅力测试),您可以相当肯定这些更改将合并到 master.xml 中。

于 2017-06-25T12:40:47.163 回答