基于属性加密的ABE算法的应用场景思考展望

ABE算法先前使用在云计算场景中,和区块链存在交叉应用场景,具体问题体现在

  • 数据的异地存储、云服务器提供商的不可信、管理员能否对自身数据拥有足够的控制能力以及如何保证数据的安全有效共享都是亟需解决的问题。

研究背景:

  • 云计算越来越普及,人们可以把照片、文档上传到云上,但由于个人数据是敏感的,因此在云上的数据会有安全问题,以此阻碍了云计算的发展。例如,云计算提供商CSP出于商业目的会监视用户数据。另外,人们若想共享加密数据。则必须向其他用户发送密码,这是非常麻烦的。即使将用户分组来简化权限管理,任然涉及到细粒度访问控制。因此密码管理是一个大问题。

主要贡献:

  • 这篇论文的主要贡献如下,(1)本文设计了一种基于基于属性的加密(ABE)方法的LDSS-CP-ABE算法,以提供对密钥解密的高效访问控制。(其特点是将访问控制策略嵌入到密文中,也就是说访问控制策略树会被嵌入到秘钥的密文中;) (2)由于移动端的计算资源有限,文中提到使用代理服务器进行加密和解密操作,极大地减少了计算开销。 (3)引入属性的延迟重加密和描述字段,以减少处理用户撤销问题时的撤销开销。

云计算的解决办法

  • 设计基于属性的访问控制方案,通过属性描述用户的身份,允许加密数据的主体指定其解密客体,具有较高的效率和更好的安全性。系统采用当今热门的Hadoop开源架构,实现了云环境下的存储、上传、下载等功能,该架构环境更利于进行部署与系统的实现。
  • 系统结合HDFS(Hadoop Distributed File System)技术部署于Hadoop云平台上,设计与实现了密文分享系统,主要包括密钥发布中心、用户端和Hadoop云端服务器三大功能模块。
  • 密钥发布中心负责为用户产生上传和下载文件所需的密钥,并且为了保证私钥的机密性,引入USB-KEY安全物理存储介质;
  • 用户端主要完成加密上传文件和解密下载文件(与先前的直接上传文件相比,需要将文件先进行加密再进行上传操作,文件以密文的形式存储在网络里面,因此没有秘钥的用户是无法看到文件里面的内容),同时具备了更新系统参数、制定访问规则以及用户申请私钥等功能
  • Hadoop云端服务器提供了文件存储和文件树访问等功能。
  • 系统采用CPABE加密方案的机制,系统还具备了防窃取、抗共谋攻击和抗木马攻击等安全性,且该系统还具有灵活性强、效率高和细粒度的访问控制的特点。

2.系统设计

系统整体框架

 

系统设计:

  • 系统设计由6部分组成,(1)数据所有者(DO):DO将数据上传到移动云并与朋友共享。 DO确定访问控制策略。 (2)数据用户(DU):DU从移动云中检索数据。 (3)信任机构(TA):TA负责生成和分发属性密钥。 (4)加密服务提供商(ESP):ESP为DO提供数据加密操作。 (5)解密服务提供商(DSP):DSP为DU提供数据解密操作。 (6)云服务提供商(CSP):CSP存储DO的数据。 它忠实地执行DO请求的操作,同时可以查看DO存储在云中的数据。
  • 论文对场景的假设是CSP、DSP、ESP三个服务器均为半可信的,也就是说他们不会恶意破坏用户数据,但是他们可能会偷看用户数据。TA表示安全可信服务器。

 图一

流程

  • DO将数据发送到云。由于云不可信,因此必须在上传数据之前对数据进行加密。 DO以数据文件的访问控制树的形式定义访问控制策略,以指定DU在访问某个数据文件时应获取的属性。在LDSS中,数据文件使用对称加密机制加密,数据加密的对称密钥也使用基于属性的加密(ABE)加密。访问控制策略嵌入在对称密钥的密文中。只有获得满足访问控制策略的属性密钥的DU才能解密密文并检索对称密钥。由于加密和解密都是计算密集型的,因此对移动用户来说是一个沉重的负担。为了减轻客户端移动设备上的开销,使用加密服务提供商(ESP)和解密服务提供商(DSP)。加密服务提供商和解密服务提供商都是半信任的。论文修改了传统的CP-ABE算法并设计LDSS-CP-ABE算法,以确保在将计算任务外包给ESP和DSP时的数据隐私。

相关知识

  • 双线性映射
  • shamir密钥共享方案
  • 访问控制树(x_i,y_i)
  • 参考链接

现实使用的进一步优化

问题

  • 在属性加密方案(ABE)中,由于群中的配对操作计算开销很大,所以一般来说在实际系统中会占据大量计算资源,而且会很慢甚至成为系统瓶颈

优化策略

  • 第一种是利用离线计算的方式,如果有一个移动设备上部署了ABE系统,那么在这个移动设备充电或者待机的时候(即离线时),系统在知道要加密的消息之前就自动完成Setup,生成密钥,加密这几个步骤,生成中间密文,当真正知道加密消息需要加密的时候,通过少量计算将中间密文转换成密文即可,这样在用户使用的感受上来看,ABE系统的加密效率是可以接受的。但是从总的计算开销上来看,该方案的计算开销有所增加,主要是增加了一个转换开销,以及在解密时至少多增加一个配对操作以及其他的求幂等。
  • 第二种是利用外包的方式将计算开销大的算法外包给代理,其中涉及到两个代理,允许加密者将加密策略的创建外包给代理(代理A),并根据给定的策略为用户加密消息,同时代理满足以下两个要求:(a)无法知道加密的消息(b)强制执行根据策略指定的属性来加密消息。通过允许代理根据用户的转换密钥属性验证策略,从而允许用户将策略验证外包给另一个半信任代理(代理 B),从而减少了解密工作负载。
  • 第三种是离线计算和外包融合的方案
  • 第一个方案主要减少开销的是在生成密钥以及加密时,第二个方案中主要减少的是加密以及解密的开销

参考链接

  • 面向云环境基于属性加密的密文分享系统——简介
  • 轻量级属性加密方案
  • 属性加密注解
  • 一种基于属性加密技术(ABE)的轻量级数据共享方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面经:设计模式

什么是接口隔离原则(Interface Segregation Principle) 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。概括的说就是:建立单一接口,不要建立臃肿庞大的接口。&…

区块链、密码和银行之间的衍生关系

银行场景中密码服务 设置密码 用户在注册的时候,如果使用弱密码,系统会检测出来。我的猜测是将弱密码的hash运算和用户输入的密码hash比对,如果一致,禁止用户注册。 1、不要设置简单密码,您设置的密码必须符合中信银…

AIgorand区块链中VRF随机函数的应用

VRF(Verifiable Random Function) 可验证随机函数可以看作是一个随机预言机,即可以通过任意的一个输入,获得一个随机数输出:输出的结果(Output)是一个随机数,其数值会均匀分布在值域…

C++学习笔记 简单部分

C 数据类型 使用变量来存储各种信息,变量保留的是它所存储的值的内存位置。这意味着,当创建一个变量时,就会在内存中保留一些空间。这段内存空间可以用于存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型…

terminate called after throwing an instance of ‘std::logic_error‘ what(): basic_string::_M_constr

terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_M_construct null not valid 用0初始化字符串 编译不报错

密钥协商(密钥交换)机制的讲解

国标文件涉及密钥协商算法的函数 生成密钥协商参数并输出计算会话密钥产生协商数据并且计算会话密钥 密钥协商(交换)算法及其原理 密钥交换/协商目的 “密钥协商机制”是:(在身份认证的前提下)规避【偷窥】的风险。…

基于ECC算法的秘钥协商

基于ECC算法的衍生算法 ECDH(ECCDH)RSAECDHE(ECCDHE) ECDH密钥协商(ECCDH) 椭圆曲线密码学是属于非对称密码学的,其私钥的计算公式如下: 私钥是一个随机数d,取值范围在1……n-1,其中n是子群的阶公钥是点HdG&#xff…

C++11 多线程相关知识的学习

C多线程类Thread(C11) C11中std命名空间将Boost库中的Thread加入,Boost的多线程从准标准变为标准,这里将其用法整理复习,以demo的形式复习,还是喜欢看我自己写的东西,符合我的个人逻辑头文件为…

C++11 explicit关键字的作用

explicit 在C中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。因为无参构造函数和多参构造函数本身就是显示调用的。再加上explicit关键字也没有什么意义…

C++11学习 virtual(虚函数)的用法

Virtual虚函数 在面向对象的C语言中,虚函数(virtual function)是一个非常重要的概念。因为它充分体现了面向对象思想中的继承和多态性这两大特性,在C语言里应用极广。多态性:其含义就是多种形式;将具有继承…

c++ const

函数名称不单单是函数名 const 补充内容 还有 const 参数类型 函数后头const 只能在成员函数如果const对象 但是我没通过const成员函数 就会报错

手撕源码 alloc

怎么有效的手撕代码呢? gnu gcc 2.9 的 内存池 把代码跑起来把代码一个片段拿出来使用画出代码运行的流程图一行一行的搬运在看源码的情况下写出类似的demo 第三步: 第五步: // 这个头文件包含一个模板类 allocator,用于管理内存的分配、…

针对Algorand所使用的密码相关技术细节进行介绍

关键概念 VRF: 可验证随机函数。简单来说是:vrf,Proof VRF(sk,seed),sk为私钥,seed为随机种子;通过Verify(proof,pk,seed)验证vrf的合法性。cryptographic sorition: 根据用户本轮的VRF值,自身的权重以及公开的区块链…

对于Algorand的介绍

介绍 Algorand具有能耗低、效率高、民主化、分叉概率极低、可拓展性好等优点,旨在解决现有区块链项目存在的“不可能三角”(高度可扩展的、安全的、去中心化)问题。Algorand由MIT教授、图灵奖得主Silvio Micali发起,拥有MIT区块链…

C++学习 高级编程

C 文件和流 到目前为止,目前使用最为广泛的是 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。以下将介绍从文件读取流和向文件写入流。这就需要用到 C 中另一个标准库 fstream,它定义了三个新的数…

内存池中的嵌入式指针

嵌入式指针 可以union改struct 内存分配后 next指针就没用了 直接作为数据空间比较省内存 因为对指针指向的内存存储的时候 编译器是不管你是什么类型的 &#xff0c;这里有道练习题可以对指针的概念稍微理解一下&#xff1a; #include <iostream> using std::cout; us…

内存池的实现4 alloc内存池

alloc 内存池 优点: &#xff1a;本质是定长内存池的改进&#xff0c;分配和释放的效率高。可以解决一定长度内存分配的问题。 缺点 &#xff1a;存在内碎片的问题&#xff0c;且将一块大内存切小以后&#xff0c;申请大内存无法使用&#xff0c;别的FreeList挂了很多空闲的内存…

c语音的一些特殊关键字

PRETTY_FUNCTION C语言中获取函数名 C语言中的__LINE__用以指示本行语句在源文件中的位置信息

vim 不常见但好用的命令

● 跳跃 ○ 向前跳跃是 f ○ 向后跳跃是 F ● 继续 ○ 保持方向是 ; ○ 改变方向是 , ● 可以加上 [count] 来加速 ● ^ 是到本行第一个非空字符 ● 0 是到本行第一个字符&#xff0c;不管是不是空格 ● g_ 是到本行最后一个非空字符 ● 两个按键要依次按下 ● $ 跳到本行最后…