代理重加密(PRE)(重密码学!)

原文:

https://blog.csdn.net/Black_BearB/article/details/81228030

1、基本思想-流程结算

在云计算中,云计算服务提供商作为代理人,用户A不能完全相信云计算服务提供商,因此需要将自己的数据在本地用自己的公钥加密后在云中存储,这样代理人无法得到数据的明文信息。当他要和用户B共享文件时,A根据自己的信息(如私钥)及用户B的公钥计算一个转换密钥Rk(重加密密钥),由代理人使用Rk将针对A的密文转换为针对B的密文。这样,B可以从云中下载该密文,只用自己的私钥即可解密。

 

2、算法描述

1:系统初始化

2:产生公私钥对

2.1:Alice向KGC请求生成自己的公私钥对。

2.2:KGC生成Alice的公私钥对并返回给Alice。

2.3:Bob向KGC请求生成自己的公私钥对。

2.4:KGC生成Bob的公私钥对并返回给Bob。

3:Alice生成密文文件

3.1:Alice利用AES算法加密数据M生成密文C1。

3.3:Alice根据第二层加密算法并利用自己的公钥加密AES的密钥生成密文C2

3.2:Alice把加密后的数据密文C1和C2,上传到服务器Server上

4:构建重加密密钥

4.1:Alice向KGC请求Bob的公钥。

4.2:KGC把Bob的公钥返回给Alice。

4.3:Alice利用Bob的公钥和自己的私钥生成重加密密钥KAàB。

4.4:Alice把生成的重加密密钥KAàB上传到服务器Server上。

5.代理重加密(ReEncryption)

重加密算法ReEnc(params,CT,rkiàj):给定针对公钥pki和第二层密文CTi,该算法利用重加密密钥rkiàk生成一个针对公钥pkj的第一层密文CTj。

服务器Server利用重加密密钥KAàB和之前Alice上传的密文C2做代理重加密运算生成新的密文C3。

6.Bob请求数据:

6.1:Bob向服务器Server请求解密数据M对应的密文G。

6.2:服务器Server把重加密后生成的密文C3和C1发送给Bob。.

6.3:Bob解密密文C,得到对称密钥,并用该对称密钥解密C,得到原始的的明文数据M。

3、密文共享

密文共享三种方法:

1.传统方法、代理重加密、属性加密

第一种:传统方法中,需要耗费大量的通信开销和运算代价,并且需要用户增加本地存储空间,这不符合用户通过云计算节省设备开销的初衷。

第二种:代理重加密方法中,主要是通过代理服务器将一个用户的密文转换为另一个用户可以解密的密文,且不泄露用户的私钥和明文信息。这种方法主要是端到端的。

第三种:属性加密方法中,数据拥有者可以利用属性加密,在数据加密的过程中定义一个访问策略只有满足这个访问策略的用户才能够解密,由此来实现密文的共享。这种方法主要是一对多

4、实际实例

医疗和保险,用户通过代理重加密对数据进行授权。数据分析公司用AI技术对模型进行训练然后基于MPC(安全多方计算)和下游企业如医院等,进行数据共享,形成一个良性经济生态。用户分享数据,也得到一定的利益。

征信和广告也类似,用不同的密码学技术对个人数据进行筛选处理,满足不同机构的需求,最后的收益要在链上进行记录和分发。各取所得,个人用户、机构等都有不同的利益分享,形成一个可持续的生态。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐