目录

代理重加密

传统公钥PRE算法流程

代理重加密的应用


参考:

https://blog.csdn.net/qq_38232598/article/details/108929661?

https://blog.csdn.net/Black_BearB/article/details/81228030?-密文云数据动态共享

https://blog.csdn.net/guoyihaoguoyihao/article/details/103447089?-NuCypher

https://blog.csdn.net/zhuiyunzhugang/article/details/107719357?-算法步骤

https://blog.csdn.net/qq_32938957/article/details/95731383?-算法步骤

https://blog.csdn.net/WXblockchain1/article/details/110240032?-PlatONE

https://blog.csdn.net/jingzi123456789/article/details/104851189?-动图、流程

https://blog.csdn.net/ffhyy/article/details/105255591?-golang源码

https://blog.csdn.net/shangsongwww/article/details/90210210?-Umbral

https://blog.csdn.net/qq_26816591/article/details/83656988?

代理重加密

代理重加密 ( 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 技术已广泛应用于云计算环境下的众多领域之中,如访问控制 、分布式文件系统 、加密邮件转发系统 、垃圾邮件过滤系统等 。

注:仅作资料整理!

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

隐私计算--代理重加密相关推荐

  1. 代理重加密和大火的NuCypher

    近来,很多人问起我知不知道代理重加密,或知不知道NuCypher(音:妞塞福呃),在朋友圈也看到有朋友分享或评论相关内容.彭博社的一篇文章把NuCypher和PolkaDot.Cosmos以及Nerv ...

  2. 代理重加密与非对称加密方案对比-NuCypher

    背景 上个月写了一篇<代理重加密和大火的NuCypher>,引发了一些讨论. https://bihu.com/article/1754593817 朱立老师对此做出了回应,经过数轮辩论, ...

  3. 使用代理重加密+PlatONE,来保证数据可信、安全地共享

    在制造.医药等行业中,有着大量沉睡的数据.利用这些数据,将有潜力推动技术创新或解密生命科学.但同时,这些数据中涉及商业机密和用户隐私保护,在不可信环境下实现安全的数据共享一直是一个难题,传统中心化方案 ...

  4. 代理重加密(Proxy Re-encryption)

    代理重加密就是委托可信第三方或是半诚实代理商将自己公钥加密的密文转化为可用另一方私钥解开的密文从而实现密码共享 现实世界中绝大多数提供云计算服务的公司没有什么诚信可言,你不能保证它会用你的数据做什么, ...

  5. 代理重加密 Proxy Re-Encryption

    好久没来了,把前段时间写的都贴上来... 1.研究背景 作用:密文云数据动态共享 基于用户数据隐私性考虑,用户存放在云端的数据都是加密形式存在的.而云环境中存在着大量数据共享的场景.由于数据拥有者对云 ...

  6. 代理重加密-入门学习笔记(四)

    代理重加密(PRE)(重密码学!) 原文: https://blog.csdn.net/Black_BearB/article/details/81228030 1.基本思想-流程结算 在云计算中,云 ...

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

    欢迎关注公众号:区块链之美, 致力于区块链技术研究,传播区块链技术和解决方案.区块链应用落地.区块链行业动态等. 1. 代理重加秘的应用介绍 由于大部分的云服务供应商并不能完全值得信任,云服务供应商可 ...

  8. Umbral:新型分散式密钥管理系统的代理重加密方案

    前言 现在,我们非常高兴地宣布,我们在定义( https://github.com/nucypher/umbral-doc/blob/master/umbral-doc.pdf )和实现( https ...

  9. 基于代理重加密技术的安全云盘

    介绍 代理重加密(proxy re encrytion) Proxy re-encryption (PRE) is a type of public-key encryption (PKE) that ...

最新文章

  1. 一首考研人不得不看的立志诗!!!!!!
  2. JStorm/Storm源码解读(二)--启动篇
  3. asp.net mvc4三层架构搭建
  4. 在Hue中创建一个Oozie工作流
  5. Android监听安装卸载
  6. 3520a新板做内存测试
  7. 你一定要知道的敏捷规划工具:影响地图
  8. android开发app初始化,Android 的 Application 初始化
  9. Vue.js如何在一个页面调用另一个同级页面的方法
  10. Maximum Submatrix Largest Rectangle
  11. centos 6.0 rpm 包编译环境的搭建
  12. ICPC North Central NA Contest 2017 E - Is-A? Has-A? Who Knowz-A?
  13. Oracle11g64位安装
  14. MySQL Left Join,Right Join
  15. 手机变速齿轮_变速齿轮手机版下载-变速齿轮手机版安卓下载v1.2
  16. pandas学习-task2
  17. Kotlin读书总结之面向对象
  18. java 动态表单设计
  19. Incremental Graph Convolutional Network for Collaborative Filtering(阅读论文笔记)
  20. word标题4降级标题5无法显示

热门文章

  1. 机房安防系统常见故障原因及处理方法
  2. Py之pandas:对dataframe型数据排序相关的问题总结之按照多个字段的多个条件进行排序(先打乱再排序)
  3. Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略
  4. 成功解决pycharm 没有菜单栏
  5. Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题
  6. ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码)
  7. Python语言学习:Python随机生成那些事之随机生成使用方法、案例应用之详细攻略
  8. Algorithm之PGM之BNet:贝叶斯网络BNet的相关论文、过程原理、关键步骤等相关配图
  9. Python语言学习:Python常用自带库(imageio、pickle)简介、使用方法之详细攻略
  10. DL框架之AutoKeras框架:深度学习框架AutoKeras框架的简介、特点、安装、使用方法详细攻略