7、隐私计算--代理重加密

目录

代理重加密

传统公钥PRE算法流程

 代理重加密的应用


参考:

代理重加密_Antrn的博客-CSDN博客_代理重加密

代理重加密 Proxy Re-Encryption_Black_BearB的博客-CSDN博客_代理重加密-密文云数据动态共享

代理重加密和大火的NuCypher_Mr.Yi的博客-CSDN博客-NuCypher

代理重加密方法_辽宁大学的博客-CSDN博客_代理重加密算法-算法步骤

代理重加密-入门学习笔记(四)_qq_32938957的博客-CSDN博客-算法步骤

使用代理重加密+PlatONE,来保证数据可信、安全地共享_WXblockchain1的博客-CSDN博客-PlatONE

代理重加密(Proxy Re-Encryption)技术原理和Java代码实现_区块链之美的博客-CSDN博客_代理重加密算法实现-动图、流程

golang 实现代理重加密 源码_ffhyy的博客-CSDN博客_golang源码加密-golang源码

Umbral:新型分散式密钥管理系统的代理重加密方案_跨链技术践行者的博客-CSDN博客-Umbral

代理重加密(Proxy Re-encryption)_哎一入江湖岁月催的博客-CSDN博客_代理重加密

代理重加密

代理重加密 ( PRE,Proxy Re-Encryption)技术就是委托可信第三方或是半诚实代理商将自己公钥加密的密文转化为可用另一方私钥解开的密文从而实现密码共享。半诚实代理商是指提供云计算服务的公司,一定会执行我们的指定操作,不会篡改内容。

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

现实世界中绝大多数提供云计算服务的公司没有什么诚信可言,你不能保证它会用你的数据做什么,或是会不会出卖给其他公司,这样,唯一的解决办法是加密后放到云上,让其获得密文形式,而我们又想让我们愿意共享秘密的对方获得密文的明文内容,也就是原本我们公钥加密后的密文,只有我们的私钥才能解开,转化为对方私钥也能够解开。这个过程就是代理重加密。

1、概念补充

  • 双向代理重加密(A的密文发给B解密,B的密文发给A解密)
  • 单向代理重加密(只能完成A的密文发给B解密)
  • 单跳密文转换(密文只允许转换一次)
  • 多跳密文转换(可多次密文转换)

2、业务需求

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

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

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

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

3、代理重加密的具体过程:

  • A将明文M用自己的公钥加密;
  • A将加密后的密文C1发给半诚实代理商Proxy,并为其生成转化密钥K,密钥K是由A为Proxy计算生成的密钥;
  • Proxy用A生成的密钥K将密文C1转化为B的私钥能够解密的密文C2;(Proxy只提供计算转化服务,无法获得明文)
  • Proxy将生成好的密文C2发给B;
  • B使用自己的私钥解密C2,获得A想要秘密共享的明文M。

在这个过程中,主要解放了A,A只需生成代理密钥并将密文C1发送给Proxy;其余的步骤都是半诚实代理商完成的:具体文件的传输、文件的转化、文件的存放。

具体演示(点击下图进入全屏):

传统公钥PRE算法流程

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

一个传统 PKI 环境下的单向多跳代理重加密方案包含下列算法:

具体流程如下:

1)系统初始化

2)请求公私钥对

  • Alice向KGC请求生成自己的公私钥对。
  • KGC生成Alice的公私钥对并返回给Alice。
  • Bob向KGC请求生成自己的公私钥对。
  • KGC生成Bob的公私钥对并返回给Bob。

3)Alice生成密文文件

  • Alice利用AES算法加密数据M生成密文C1。
  • Alice根据第二层加密算法并利用自己的公钥加密AES的密钥生成密文C2
  • Alice把加密后的数据密文C1和C2,上传到服务器Server上

4)构建重加密密钥

  • Alice向KGC请求Bob的公钥。
  • KGC把Bob的公钥返回给Alice。
  • Alice利用Bob的公钥和自己的私钥生成重加密密钥K。
  • Alice把生成的重加密密钥K上传到服务器Server上。

5)代理重加密

服务器Server利用重加密密钥K和之前Alice上传的密文C2做代理重加密运算生成新的密文C3。重加密算法:给定针对公钥PKi和第二层密文CTi,该算法利用重加密密钥K生成一个针对公钥PKj的第一层密文CTj。

6)Bob请求数据

  • Bob向服务器Server请求解密数据M对应的密文G。
  • 服务器Server把重加密后生成的密文C3和C1发送给Bob。.
  • Bob用自己的私钥解密密文C3得到AES对称密钥,并用该对称密钥解密C1,得到原始的的明文数据M。

代理重加密的应用

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

注:仅作资料整理!

如有错误、侵权,请联系笔者更改删除!!!

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三九笔墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值