CP-ABE的使用
参考:
http://acsc.cs.utexas.edu/cpabe/tutorial.html
http://acsc.cs.utexas.edu/cpabe/
事先先配置好cp-abe:http://www.cnblogs.com/rockorange/p/3757805.html
Using the cpabe Toolkit
First download, untar, compile, and install the most recent tarball of libbswabe, the support library. Next do the cpabe tarball. Each can be installed with the standard GNU build system commands.
1.安装cpabe toolkit
$ ./configure
$ make
$ make install
The "$" denotes your shell’s prompt. Note that the package requires thePBC library, so make sure you have that installed first.
Next, to set up the public key and master keys, run cpabe-setup.
2.通过cpabe-setup命令产生 public key and master key
$ cpabe-setup
$ ls
master_key pub_key
Now you can use the file master_key to produce private keys associated with various sets of attributes. Let’s say you work for a company that just hired two new employees,Sara and Kevin(后面就以这个为例子), and you are going to make private keys for their workstations.
3.使用master_key 和 pub_key 以及cpabe-keygen命令为具有属性值的用户产生私钥
To do so, you use cpabe-keygen to generate a key with the listed attributes using public key PUB_KEY and master secret key MASTER_KEY.
Output will be written to the file "sara_priv_key" unless the−o option is specified.
$ 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`
$ ls
master_key pub_key sara_priv_key kevin_priv_key
注意:
(1)cp-keygen使用参照:http://acsc.cs.utexas.edu/cpabe/cpabe-keygen.html
(2)第一行代码的末尾有一个“\”是因为第一行放不下了,想换行继续输命令。
(3)上例产生 了两个私钥sara_priv_key kevin_priv_key,分别是sara和kevin的。
4.使用cpabe-enc命令和pub_key和访问策略加密明文生成密文 (这里事先新建了一个文件security_report.pdf ,这个文件是要被加密的)
As you can see in those examples, some attributes are assigned a value, while others a key simply "has" without further qualification. Thedate command can be used to help use the current time as an attribute value.
Now suppose later someone wants to encrypt a sensitive document. All they need is the public key, then can usecpabe-enc to encrypt it under a specified policy.
$ ls
pub_key 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 //ctrl+D 表结束输入
$ ls
pub_key security_report.pdf.cpabe
(sysadmin and。。。)这个是访问策略
In this case, they typed the policy on stdin. Note that the attributes of Kevin’s key satisfy this policy, but the attributes of Sara’s key do not.
(在这个例子里,设计的策略是kevin满足,但是sara的不满足)
5.使用cpabe-dec命令,用私钥对密文进行解密。
If Kevin wants to decrypt the document, he can use cpabe-dec.
$ ls
pub_key kevin_priv_key security_report.pdf.cpabe
$ cpabe-dec pub_key kevin_priv_key security_report.pdf.cpabe
$ ls
pub_key kevin_priv_key security_report.pdf
If Sara were to try to decrypt it, an error would be reported.
(如果sara试图解密就会出错,因为sara的属性不符合密文的访问策略,kevin不会)
That’s all there is to using cpabe!
下面是CP-ABE的加解密机制
CP-ABE的使用的更多相关文章
- linux之cp/scp命令+scp命令详解
名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数 ...
- 写给自己:修改配置文件一定要cp一个.bak
写给自己:修改配置文件一定要cp一个.bak 毕竟不是每次的修改都一定对,而且很多时候是在服务器上直接修改原文件,修改后重启服务才知道是否修改正确,如果不加备份修改,造成服务器动荡,将会造成不可挽回的 ...
- mkdir,rmdir,cp,rm,mv,cat,touch用法
一.mkdir新建目录 1.进入tmp目录,查看该目录下面的子目录 [root@localhost ~]# cd /tmp[root@localhost tmp]# lshsperfdata_root ...
- CP
cp:copy files and directories,如果要拷贝目录,则使用-a或者-r参数,则能够拷贝目录, 如果源文件是多个,那目标文件在最后,且是目录. Cp [-aifpru] [源文件 ...
- 关于so文件cp覆盖导致调用者core的研究
先说cp好mv/rm的区别: cp from to,则被覆盖文件 to的inode依旧不变(属性也不变),内容变为from的: mv from to,则to的inode变为from的,相应的,to的属 ...
- Linux命令学习总结:cp命令
命令简介: cp命令用来复制文件或目录.指令英文原义:copy 指令所在路径:/bin/cp 命令语法: Usage: cp [OPTION]... [-T] SOURCE DEST or: cp [ ...
- Linux cp (复制)命令简介
\cp -rf source1 source2 source3 .... directory cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] ...
- Linux_用户级_常用命令(4):cp
Linux_用户级_常用命令之cp 开篇语:懒是人类进步的源动力 本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! Linux常用命令第二集包含命令:cp 格式 cp [-optio ...
- cp命令
[root@www ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination) [root@www ~]# cp [options] source1 sour ...
- 【初级】linux cp 命令详解及使用方法实战
cp:复制文件或者目录 前言: cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不 ...
随机推荐
- 【Python】【电子邮箱】
#[[电子邮件]]'''Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务. 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要 ...
- 利用angularjs完成注册表单
ng-init="username = 'first'"设置初始显示first字段 ng-class="{'error':signUpForm.username.$inv ...
- 改变input中的placeholder样式
1.input[placeholder]{ color:#d5d5d5; } 2.input::-moz-placeholder { color: #d5d5d5; } input:-ms-input ...
- linux系统下各类软件安装笔记
安装环境: linux版本:ubuntu 16.04 安装python3.6 sudo add-apt-repository ppa:jonathonf/python-3.6 ...
- netstat 在windows下和Linux下查看网络连接和端口占用
假设忽然起个服务,告诉我8080端口被占用了,OK,我要去看一下是什么服务正在占用着,能不能杀 先假设我是在Windows下: 第一列: Proto 协议 第二列: 本地地址[ip+端口] 第三列:远 ...
- 1.1.1 vue-cli脚手架工具
参考文档: windows下npm安装vue(以下教程大部分都是参考这篇博客的,按照着这篇博客自己实现了一遍) npm安装vue-cli脚手架 一.前言 npm:nodejs下的包管理器,安装好nod ...
- 设计模式(八)Proxy Parttern 代理模式
核心作用: 通过代理,控制对对象的访问 可以详细控制某个对象的方法,在调用这个方法做前置处理,调用这个方法后做后置处理(AOP的微观实现) AOP(Aspect Oriented Programmin ...
- NativeWindow_01_CreateWindow(Ex)_VC6
1. #include <windows.h> LRESULT CALLBACK ProcWindow(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA ...
- [原][unreal][UE][spark]分析unreal engine 虚幻引擎的粒子编辑器:Cascade
参考:https://www.raywenderlich.com/270-unreal-engine-4-particle-systems-tutorial (使用了一个飞机射击游戏的粒子来展示,全英 ...
- vue中的slot插槽
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题这里就点出来了,是显示不显示和怎样显示. 1.navigation ...