利用0-1编码对CP-ABE中可比较属性的判断

最近看了一篇文章,如何对CP-ABE中的可比较属性进行快速判断,这里是利用的0-1编码,首先,先解释什么叫可比属性:我们处理的对象是这样的属性,它不是一个精确的值,而是一个连续值的范围,可以在ABE系统中进行比较匹配,如“Score > 75”,“Age < 25”。像Score和Age这种就叫做可比属性。

然后再解释一下什么叫0编码和1编码。

看起来这个定义很难理解,于是这里举一个例子。

 首先,0编码和1编码都是一个集合,这里举例,设x为11,y为6。

先说x,x的1编码就是从2进制串开始取,每取到'1'时,就把字符串加入到x的1编码集合中,如x的二进制是1011,取到第一个1,就是"1",取到第2个1,就是"101",取到第3个1,就是"1011",至此所有1编码全部取完,所以x的1编码集合就是{1,101,1011}.

 那么x的0编码呢,就是从2进制串开始取,每取到最后1个“0”,就把这个“0”翻转成“1”,然后字符串加入到0编码集合中。如x中,取到第1个0(也是最后1个0),就是“10”,然后将“0”翻转成“1”,于是0编码就为“11”,因为1011中只有1个0,所以0编码集合为{11}。

y与x一样,这里就不赘述。可以参考上面的table2.

那么我们如何判断x>y呢,可以由以下公式表达:

就是x的1编码与y的1编码集合中至少有一个元素相同,如11的1编码和6的0编码都有共同元素1.所以可以知道11>6.

利用0编码和1编码使这种属性适合CP-ABE构造。我们的程序是这样执行的:

 

 现在用一个例子来解释一下这些内容,假设系统要求接入用户属性为date>5月1日,那么系统中将有Setc0这个集合,如:5月1日我们定为121(也就是一年中的第121天),二进制为001111001,那么Setc0(date,121)这个集合为:

date||>x||1

date||>x||01

date||>x||0011111

date||>x||00111101

如果我要判断date>5月1日,那么我们就要用Setc0集合进行判断,如果数据消费者的属性为date=7月7日,那么用Setu1集合可以表示为Setu1(date,188),即一年中的188天,二进制位为:010111101,Setu1集合为:

date||>x||01

date||>x||0101

date||>x||01011

date||>x||010111

date||>x||0101111

date||>x||010111101

我们发现Setc0中和Setu1中有一项元素是一样的,即date||>x||01.

故7月7日满足访问结构。

原文:CABE: A New Comparable Attribute-Based Encryption Construction with 0-Encoding and 1-Encoding

链接:https://ieeexplore.ieee.org/abstract/document/7896558

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值