魅力加密中abenc_bsw07的复杂政策

时间:2017-06-25 09:54:23

标签: python cryptography charm-crypto

我正在尝试使用 Charm Crypto库的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)实现的内容。属性具有值,策略可以包含相等或更大/更小的关系。

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

1 个答案:

答案 0 :(得分:0)

其他政策功能

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

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

假设我们有四个属性ABCD=5。阈值策略可能如下所示:2 of (A, B, C)这意味着只需要列表中的2个或更多属性来实现策略并能够解密密文。 AND门(A AND B)只不过是2 of (A, B)而OR门(A OR B)只不过是1 of (A, B)

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

魅力特征

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

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

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