代理重加密(Proxy Re-Encryption)技术原理和Java代码实现

代理重加密(PRE)技术解决了云服务中数据加密共享的问题,确保了云数据的安全访问与共享。PRE允许中间代理将用户A的加密数据转换为用户B可解密的形式,而不会泄露明文信息。本文介绍了PRE的概念、传统公钥PRE算法流程,并提供了基于随机预言机模型的Java实现参考。
摘要由CSDN通过智能技术生成

欢迎关注公众号:区块链之美, 致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。

1. 代理重加秘的应用介绍

由于大部分的云服务供应商并不能完全值得信任,云服务供应商可能会在未经用户允许的情况下,擅自泄露用户的隐私数据或重要文件。

解决这个问题最直接的方法是数据加密,对于涉及用户隐私或含有敏感信息的数据文件,将数据加密后上传是一种普遍的保证数据机密性的方法 ,这样数据上传者只需保管好解密密钥即可。但是云计算服务中存在大量的需要共享数据的应用需求,对于这种简单的数据加密上传方式,由于加密文件只能被用户自行解密,这样的数据加密文件并不能通过云服务器来分享给他人,为此这便需要一种密码方案,使得能对存储在云服务器上的密文进行安全有效的转换。

显然,传统的加密或数字签名方案并不具有密文转换功能,而代理重加密 ( P r o x y R e − E n c r y p t i o n , P R E ) (Proxy Re-Encryption,PRE) (ProxyReEncryptionPRE)技术是一种可以对密文进行安全转换的加密方法,PRE 技术可以将用户 A 用自己公钥加密上传的密文转换成另一种形式的密文,使得用户 B 可以用自己私钥对转换后的密文进行解密,并且在整个转换过程中不会泄露任何对应的明文信息,因此 PRE 对于云计算是天然的应用,可以保证云端数据的安全访问与共享。

由于 PRE 能对密文进行安全转换这一特性,PRE 技术被深入地研究以及在云环境中充分发挥着其实用价值。目前 PRE 技术已广泛应用于云计算环境下的众多领域之中,如访问控制 、分布式文件系统 、加密邮件转发系统 、垃圾邮件过滤系统等 。

2. 业务需求分析

基于数据分享场景,用户B想获取用户A在云上的加密数据,A不能与B直接通信,只能通过中间商云平台;A不能将加密数据的秘钥发给云平台,由云平台再转发给B,这样云平台就知道A的保密数据;要求不能像CP-ABE那样,而是要求通过“请求+确认”方式获取A的数据,即B在每次想获取A的数据时,要想A申请,只有A同意了以后B才能获取并查看数据。

3. PRE概念

PRE 是一种对密文进行安全转换的加密技术,在 1998 1998 1998 年欧密会上,Blaze 等首次提出了代理重加密的概念 。在代理重加密中,基于授权人(delegator)公钥加密的密文可以被转换为另一种密文,且保持对应明文不变,被转换后的密文可以由被授权人(delegate)的私钥进行解密。该密文转换过程由一个半可信的代理者(proxy)执行,在执行该过程前,代理者需要持有一个由授权人到被授权人的转换密钥,该转换密钥一般由授权人事先生成并交给代理者。同时在密文转换的整个过程中,代理者无法获取关于该密文对应明文的任何信息。

4.传统公钥PRE算法流程

在介绍之前,先解释一个概念多跳性 ( M u l t i − h o p ) (Multi-hop) (Multihop):多跳性是指一个密文可以被不同的转换密钥连续进行多次转换,并且对应的明文保持不变。与其相对的是单跳性,即原始密文只能被转换一次。

一个传统 PKI 环境下的单向多跳代理重加密方案包含下列算法 [ 1 ] ^{[1]} [1]

  • (1) 钥生成算法 K e y G e n ( p a r ) → ( p k ; s k ) KeyGen(par) \to (pk;sk) KeyGen(par)(pk;sk):输入系统公开参数 par,该算法输出 ( p k , s k ) (pk,sk) (pk,sk)作为一个用户的公私钥对。

  • (2) 加密算法 E n c ( p a r , M , p k ) → C ( 0 ) Enc(par, M , pk ) \to C _{(0)} Enc(par,M,pk)C(0) :输入系统公开参数 par,消息空间中的明文 M ,某一用户的公钥 pk ,该算法输出由公钥 pk 加密的密文 C ( 0 ) C_{ (0)} C(0) ,其中0 表示密文 C 未被重加密过, C ( 0 ) C_{ (0)} C

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值