2017-06-25 9 views
1

チャーム暗号ライブラリのcpabe機能を使用しようとしています。具体的には、abenc_bsw07スキームを使用しています。チャーム暗号のabenc_bsw07の複雑なポリシー

より複雑なポリシーを定義する方法はありますし、例のものより属性:

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

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

私はcpabe(http://acsc.cs.utexas.edu/cpabe/tutorial.html)の実装に似たものを行うことができるようにしたいと思います。属性には値があり、ポリシーには等価関係や大小関係が含まれます。

希望の機能をサポートしている場合は、別の方法を使用することもできます。

答えて

0

追加ポリシー機能

ポリシーの表現性にはいくつかのオプションがあります。一部のABEスキームは、純粋なANDポリシーまたは純粋なORポリシーのみをサポートします。 CNFやDNFなど特定の形式のポリシーのみをサポートするものもあります。

BethencourtのCP-ABEは、しきい値ノードを持つポリシーツリーをサポートしています。ネスト可能なしきい値ノードで数値属性を取得するには十分であり、その例が必要な場合はlibbswabeを調べることができます。

A,B,CおよびD=5という4つの属性があるとします。しきい値ポリシーは次のようになります。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のような数値ポリシーでは、数値属性が2進数でエンコードされ、各ビット位置の多くのマスクが生成されるため、かなり大きなポリシーツリーが生成されます。これは非常に高価な操作(暗号化と復号化)です。

チャームは

チャームがしきい値ポリシーをサポートしていません。ポリシーパーサー(charm.toolbox.policytree少しは数値属性をサポートしていますが、属性セットの数値属性を処理するコードはありません。ビットマスク属性を作成するアルゴリズムも欠落しています。

しきい値ゲートを追加するのは簡単ですが、バイナリツリーを任意の数の子ノードを持つツリーに変更する必要があります(charm.toolbox.node参照)。

変更は複雑ではありませんが、多すぎるでしょう。あなたがこれらの変更を行うことに興味があるなら、あなたはすべきです。既存のコードを壊さずにこれらの機能を追加することができれば(魅力テストを実行する)、これらの変更がマスターにマージされることは間違いありません。

+0

こんにちは、フィードバックありがとうございます。我々は最終的にデフォルトのものの上に座るより高いレベルのポリシー表現を実装することを選択しました。それは実際に働いています。 –

関連する問題