Ubuntu下CP-ABE的使用

Ubuntu下CP-ABE的使用
在上篇中,已经完成了在Ubuntu下CP-ABE的安装,这篇简单记录一下使用方法。
本人参考的是这篇文章: https://blog.csdn.net/hlsdbd1990/article/details/48291359
大家也可以直接参考官网:http://acsc.cs.utexas.edu/cpabe/tutorial.html
如果小伙伴是按照我上篇分享的文章里的步骤来的话,libbswabe库就可以忽略啦,因为已经安装过啦~
后面的部分大家按照上述两个链接里的步骤来是没有问题的,但是我希望帮助一些小白,也借这个机会理解一下每个步骤的内容。

假设您在一家仅雇用了两名新员工Sara和Kevin的公司工作,而您将为其工作站创建私钥。

一、创建一个储存公私钥的文件夹

在这里插入图片描述
我的路径是/home/allen/ 也就是用户allen的文件夹啦。

二、生成master key和public key

进入cp-abe文件夹,通过cpabe-setup命令产生master key和public key,也就是系统主密钥和公钥。
在这里插入图片描述
然后,我们可以使用master_key来生成与各种属性集关联的私钥。

三、为具有属性值的用户产生私钥

我们可以使用cpabe-keygen命令为具有属性值的用户产生私钥,也就是您的员工Sara和Kevin。给出以下例子:

cpabe-keygen -o sara_priv_key pub_key master_key \
sysadmin it_department 'office = 1431' 'hire_date = '`date +%s`
cpabe-keygen -o kevin_priv_key pub_key master_key \
business_staff strategy_team 'executive_level = 7' \
'office = 2362' 'hire_date = '`date +%s`

这里为了方便,直接将命令写出来,需要注意的是:
(1)“=”两边需要有空格,不然会报错
(2)cp-keygen使用可以参照:http://acsc.cs.utexas.edu/cpabe/cpabe-keygen.html
(3)代码的末尾有一个“\”是因为这一行放不下了,想换行继续输命令。如果是自己手敲的话,可以忽略“\”。
(4)上例产生了两个私钥sara_priv_key和kevin_priv_key,分别是sara和kevin的私钥。

如示例中所看到的那样,我们为某些属性分配了一个值,而另一些属性只是简单地“具有”键而没有进一步的限定。
date命令用于将当前时间用作属性值。

四、在指定策略下对敏感文档进行加密

使用cpabe-enc在指定策略下即可进行加密。
事先新建一个文件security_report.pdf ,假设这个文件是要被加密的。
输入:

cpabe-enc pub_key security_report.pdf
(sysadmin and (hire_date < 946702800 or security_team)) or
(business_staff and 2 of (executive_level >= 5, audit_group, strategy_team))
^D

注意:
(1)第二行“or”后面一定要换行!!!
(2)最后^D为Ctrl+D,表示结束输入。
在这里插入图片描述
我们可以看到这个文件已经被cpabe进行加密了。

五、解密

使用cpabe-dec命令,可以用私钥对密文进行解密。

cpabe-dec pub_key kevin_priv_key security_report.pdf.cpabe

在这里插入图片描述
我们可以看到这个文件已经解密完成了。
如果我们输入:

cpabe-dec pub_key sara_priv_key security_report.pdf.cpabe

在这里插入图片描述
我们可以看到,并不能解密,因为在这个例子里设计的策略是kevin的属性满足,但是Sara的属性不满足。

最后,可以说CP-ABE的使用的流程已经十分清楚了,但是具体的细节部分,需要自己再消化消化,后期如果有机会再写一篇笔记吧~

CP-ABE(Ciphertext-Policy Attribute-Based Encryption)是一种基于属性的加密技术,它允许用户将访问控制策略与加密数据关联起来。这种技术能够实现细粒度的访问控制,提供更灵活的数据共享方式。 进行CP-ABE源码分析,主要分为以下几个方面: 1. 密钥生成:源码中应包含密钥生成的模块。密钥生成主要负责生成系统的主密钥和各个用户的访问密钥。在CP-ABE中,访问密钥由用户的属性和系统的主密钥生成。 2. 数据加密/解密:源码中应包含数据加密和解密的模块。数据加密时,需要定义访问策略,即控制文件被哪些用户访问的属性要求。数据解密时,需要验证用户的访问密钥是否符合数据的访问策略,如果符合,则可以解密数据。 3. 属性管理:源码中还应该包含属性管理的模块。属性管理主要负责属性的分配和撤销。当有新用户加入系统或者用户的属性发生了变化,系统需要进行相应的属性管理操作,以确保数据访问的有效性。 4. 策略解析:源码中应包含策略解析的模块。策略解析主要负责解析访问策略,将其转换为访问控制规则。这一步骤在数据加密和解密过程中都需要进行,以确定数据的访问权限。 5. 算法实现:CP-ABE的源码应包含相应的加密算法实现。CP-ABE技术一般使用属性矩阵和多线性映射等数学工具,通过算法来实现加密和解密的功能。 综上所述,CP-ABE的源码分析主要关注密钥生成、数据加密/解密、属性管理、策略解析和算法实现等方面。通过分析源码,可以更深入地了解CP-ABE技术的实现原理和操作流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值