代理重加密就是委托可信第三方或是半诚实代理商将自己公钥加密的密文转化为可用另一方私钥解开的密文从而实现密码共享

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

      半诚实代理商:提供云计算服务的公司 一定会执行我们的指定操作,不会篡改内容。


具体过程:

  1. A:将明文M用自己的公钥C_{PKa}加密C_{PKa}=Enc(PK_{A},M)  其中的M就是A想要给B的内容。
  2. A:将C_{PKa}发给半诚实代理商,并为其生成转化密钥,这个密钥是由A为代理商计算好生成的密钥RK_{A\rightarrow B}
  3. Proxy: 用A生成的密钥RK_{A\rightarrow B} 将密文C_{PKa}转化为B的私钥能够解密的密文C_{PKb},其中Proxy只是提供计算转化服务,无法获得明文。
  4. Proxy:将生成好的C_{PKb}发给B。
  5. B:解密获得A想要秘密共享的明文M。

该过程主要解放了A,A只需生成代理密钥,具体文件的传输,文件的转化,文件的存放都是半诚实代理商完成的


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

代理重加密


概念补充:

双向代理重加密(A的密文发给B解密,B的密文发给A解密)

单向代理重加密(只能完成A的密文发给B解密)

单跳密文转换(密文只允许转换一次)

多跳密文转换(可多次密文转换)

 

Logo

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

更多推荐