abenc_bsw07 在 charm crypto 中的复杂策略

Complex policies for abenc_bsw07 in 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) 实现的事情。属性有值,策略可以包含相等或 larger/smaller 关系。

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

其他政策功能

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

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

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

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

魅力特色

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

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

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