代理重加密
关键词:密文云数据共享
代理重加密
主要是通过代理服务器将一个用户用自己公钥加密的密文转换为另一个用户可以用自己私钥解密的密文,且不泄露用户的私钥和明文信息,从而实现密码共享。
基于用户数据隐私性考虑,用户存放在云端的数据都是加密形式存在的。而云环境中存在着大量数据共享的场景。由于数据拥有者对云服务提供商并不完全信任,不能将解密密文的**发送给云端,由云端来解密并分享出去。数据拥有者自己下载密文解密后,再用数据接收方的公钥加密并分享,无疑给数据拥有者带来很大的麻烦,同时也失去了云端数据共享的意义。代理重加密可以在不泄漏数据拥有者解***的情况下,实现云端密文数据共享。
具体过程:
- A:将明文M用自己的公钥 P K A PK_A PKA加密,得到 C P K A = E n c ( P K A , M ) C_{PK_A}=E_{nc}(PK_A, M) CPKA=Enc(PKA,M),其中的M就是A想要给B的明文内容。
- A:将 C P K A C_{PK_A} CPKA发给半诚实代理商,并为其生成转化**,它是由A为代理商计算好的生成** R K A → B RK_{A→B} RKA→B;
- Proxy:用A生成的**
R
K
A
→
B
RK_{A→B}
RKA→B将密文
C
P
K
A
C_{PK_A}
CPKA转化为B的私钥能够解密的密文
C
P
K
B
C_{PK_B}
CPKB
,其中Proxy只是提供计算转化服务,无法获取明文; - Proxy:将生成好的 C P K B C_{PK_B} CPKB发给B;
- B:解密获得A想要**共享的明文M;
该过程主要解放了A,A只需生成代理**,具体文件的传输,文件的转化,文件的存放都是半诚实代理商完成的。
详情见图片:
参考:https://blog.****.net/Black_BearB/article/details/81228030