代理重加密_代理重加密BBS方案

代理重加密_代理重加密BBS方案云计算中的数据机密性风险极大地阻碍了云计算的应用,而在用户端加密的模式对于数据共享来说非常不便,用户频繁的获取和释放授权将使得用户增效据加解密工作繁重。因此代理重加密技术在云端进行数据的密文转换,减轻了用户端的负担,同时加强了云端数据的保密性。一、代理重加密代理重加密是密文间的一种密钥转换机制,是由Blaze等人在1998年的欧洲密码学年会上提出的,并由Ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。在代理重加密中

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

云计算中的数据机密性风险极大地阻碍了云计算的应用,而在用户端加密的模式对于数据共享来说非常不便,用户频繁的获取和释放授权将使得用户增效据加解密工作繁重。因此代理重加密技术在云端进行数据的密文转换,减轻了用户端的负担,同时加强了云端数据的保密性。

一、代理重加密

代理重加密是密文间的一种密钥转换机制,是由Blaze等人在1998年的欧洲密码学年会上提出的,并由Ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。

在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥Rk把用授权人Alice的公钥Pa加密的密文转化为用被授权人(Delegatee)Bob的公钥Pb加密的密文,在这个过程中,代理人得不到数据的明文信息,从而降低了数据泄露风险。而这两个密文所对应的明文是一样的,使Alice和Bob之间实现了数据共享。所谓的半可信,指的是只需相信这个代理者Proxy -定会按方案来进行密文的转换。根据密文转换次数,代理重加密可以分为单跳代理重加密和多跳代理重加密,单跳代理重加密只允许密文被转换一次,多跳代理重加密则允许密文被转换多次。根据密文转换方向,代理重加密也可以分为双向代理重加密和单向代理重加密。双向代理重加密是指代理者既可以将Alice的密文转换成Bob的密文,也可以将Bob的密文转换成Alice的密文。单向代理重加密指代理者只能将Alice的密文转换成Bob的密文。当然,任何单向代理重加密方案都可以很容易地变成双向代理重加密方案。

而双向代理重加密,和个单向代理重加密方案只能满足选择明文攻击安全,而实际应用通常要求密码组件能够抵抗选择密文攻击安全。为此,Calletti等人在2007年的ACM CCS会议上提出了首个能在标准模型下证明的CCA安全双向代理重加密方案。在2008年的公钥密码学会议上,Libert等人提出了一个无需借助随机预言机的单向代理重加密方案,该方案可以在非自适应攻陷模型下达到选择密文安全。

二、云计算中代理重加密的应用

1、云计算中代理重加密的应用模式

在云计算中,云计算服务提供商作为代理人,用户A不能完全相信云计算服务提供商,因此将自己需要存储的数据在本地用自己的公钥Pa加密后再传送至云中存储,这样,云计算服务商就无法得到其数据的明文信息,而该数据只有用户A使用自己的私钥Sa才能解密口当用户A需要把该数据与用户B共享时,他可以根据自己的一些信息(如私钥)及用户B的公钥Pb计算一个转换密钥Rk,由云计算服务商使用转换密钥Rk,将针对用户A的密文重加密得到针对用户B的密文,这样,用户B可以容易地从云中下载该密文数据,使用自己的私钥Sb即可解密,过程如图1所示。
这样,数据在云中的整个生命周期完全以密文形式存储,而云计算服务商也无法得知用户A和用户B的私钥,因此,云计算服务商无法获得数据明文。用户A无需对云计算服务商有很大程度的信任,就可以放心地将自己的数据存储在云中。

这样一个代理重加密方案一般包含以下几个部分:

1) PRE.Setup。初始设定函数,根据安全参数设置工作环境。

2)PRE.KeyGen。密钥生成函数,为授权人和被授权人分别产生自己的公私钥对。

3)PRE.ReKeyGeno转换密钥生成函数,授权人利用自己的用户信息及被授权人的公钥产生一个代理重加密的转换密钥Rk,并将这个转换密钥通过安全的信道传递给云计算服务提供商。

4)PRE.Enco加密函数,授权人使用自己的公钥对数据进行加密,所得到的密文称为原始密文。

5)PRE.ReEnco重加密函数,云计算服务商利用转换密钥对原始密文进行再次加密,所得到的密文称为重加密密文。该密文实际上等同于用被授权人的公钥加密的明文。

  1. PRE.Deco解密函数,被授权人使用自己的私钥对重加密密文进行解密,得到相应的明文;或授权人使用自己的私钥对原始密文进行解密,得到相应的明文。

这样的代理重加密算法应该具有以下几个特征:

1)透明性,代理人(云计算服务商)对于授权人A或被授权人B来说都是透明的。

2)单向性,一个从用户A到用户B的授权,不能用于构造一个从用户B到用户A的授权。

3)非交互性,授权人A生成从A到B的转换函数RkA_B.不需要被授权人B的参与。

4)安全性,该代理方案应该是CCA安全的,并能够抵抗合谋攻击,即用户A与代理人的合谋不能得到用户B的私钥,用户B与代理人合谋也不能得到A的私钥。

5)非传递性,通过用户A对B的授权和B对C的授权,代理人不能产生A对C的授权。

2、云计算中使用代理重加密实现数据共事

由于非对称加密算法的效率限制,不适合用来给大型的数据文件加密,因此在云计算中暂不考虑将代理重加密直接用于加密数据文件。可以先使用对称加密算法加密数据文件得到数据密文,然后使用代理重加密算法加密该对称密钥得到密钥密文,用户欲访问数据文件时,可以先解密该密钥密文得到对称密钥,然后再用该对称密钥解密数据密文,得到数据文件的明文。

3、云计算中使用代理重加密实现授权管理

当云计算的用户需要为其他用户授权时,需要取得对方的公钥,针对每个用户生成对应的转换密钥,并通过安全的信道传递给云端。这样,云端对于每一个被授权的用户都生成一份重加密密文,对于未被授权用户没有对应的重加密密文。即使未被授权用户得到针对其他用户的重加密密文,也无法解密出明文。也可以将基于属性的加密(ABE,Attribute-based Encryption)理念应用于代理重加密,使用这样的代理重加密算法,可以一次为多个具有同样一组属性的用户授权。

4、云计算中使用代理重加密实现访问控制

用户请求访问数据文件时,云端通过对该用户的身份认证及权限认证,判断用户是否可以读取该数据文件,如果用户拥有这一权限,云端将根据用户公钥向其返回数据密文和对应的密钥密文,用户可以通过依次解密这两个密文文件得到数据的明文。如果云端没有对应于用户公钥的密钥密文,则用户没有被文件所有者授予访问这一数据文件的权限。

中国对于信息安全的要求正在逐渐增长,而云计算已经对数据加密提出了更高的要求,可以说云计算安全技术的提高已经制约了云计算的发展。因此,越来越多的研究者从事这方面的研究,在代理重加密方面的研究也已经趋于成熟,很多研究者都已经设计了具有CCA安全的双向或单向代理重加密方案。但目前,代理重加密在云计算方面的应用还未得到很好的尝试和开展,在以后的工作中会迸一步地研究和深入。

小知识之云计算

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195556.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • POJ2309 BST

    POJ2309 BST

    2022年2月21日
    41
  • pycharm运行tkinter结果窗口_pycharm运行py文件

    pycharm运行tkinter结果窗口_pycharm运行py文件对于3.x版本中运行thinter问题1:ModuleNotFoundError:Nomodulenamed‘Tkinter’引入的模块没有这个Tkinter这个名字出现的问题2:AttributeError:module‘tkinter’hasnoattribute‘TK’问题原因:调用的属性书写不正确正确的书写importthinter#都是小写的T…

    2022年8月27日
    4
  • class.getclassloader()_javaassist

    class.getclassloader()_javaassist全屏java.lang.Class.getClassLoader()方法返回的类加载器的类。一些实现可能使用null表示引导类加载器。如果这个类是由引导类加载器加载的方法在这样的实现将返回null。声明以下是java.lang.Class.getClassLoader()方法的声明publicClassLoadergetClassLoader()参数NA返回值此方法返回加载此对象所表示的类或接…

    2022年5月3日
    64
  • 申请CSDN博客专家的成功历程

    申请CSDN博客专家的成功历程简单说一下申请博客专家的时间、某时间段的具体数据与历程心得。(过于粗糙请见谅)本人申请博客专家的次数一共为8次,换句话说就是申请第八次才成功的。申请博客专家的时间为以下:2020.6.92020.6.152020.6.182020.7.32020.7.312020.8.212020.9.102020.9.18第八次申请终于成功了,贼开心也很激动。感谢平台的认可,我会继续努力,把最好的分享给大家。送给大家一句话、同样也是送给的自己的一句话:“一定别放弃,因为很多事情做着做着就成功了

    2022年7月15日
    15
  • 数据连接建立流程_数据对接方式

    数据连接建立流程_数据对接方式数据连接建立流程

    2022年4月20日
    42
  • SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法

    SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法引言 nbsp nbsp nbsp nbsp 现在在做项目 由于每个人是分模块的 所以大家的测试数据都不同步 导致好多时候会因为别人填的数据不同而调半天的错 所以我还是自己还原一个数据库 自己填自己的数据吧 nbsp nbsp 报错 nbsp nbsp nbsp nbsp nbsp 之前还原过很多个数据库都没什么问题 这次也是按照之前的步骤 先建立了一个目标数据库 之后选择源文件进行还原 最后报了这么一个错 解决方法 nbsp 1 nbsp 首先我们

    2025年6月20日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号