理论教育 代理重加密实现云数据共享

代理重加密实现云数据共享

时间:2023-10-28 理论教育 版权反馈
【摘要】:在一些云存储实际应用中,加密数据需要安全地共享给用户并保护用户的隐私。由于这些密文是使用Alice的公钥加密的,Bob无法解密这些密文。图10.10云计算中使用代理重加密示意图用户A使用代理者云计算服务商的公钥加密消息m,生成密文cA,并传输到云上。云计算服务商用代理重加密密钥rkA→B将A的密文cA转换成针对B的密文cB。

代理重加密实现云数据共享

在一些云存储实际应用中,加密数据需要安全地共享给用户并保护用户的隐私。如邮件转发系统中,发送者用Alice的公钥加密邮件,将密文发送给Alice并存储在邮件服务器中,然而Alice可能由于某些原因无法及时处理这些邮件,她希望邮件服务器能够将这些密文转发给秘书Bob来处理。由于这些密文是使用Alice的公钥加密的,Bob无法解密这些密文。一个直接的解决办法是Alice将她的私钥发送给邮件服务器,邮件服务器首先对这些邮件进行解密得到相关的明文信息,然后再用Bob的公钥来加密这些明文信息并将相应的密文转发给Bob,Bob就可以用自己的私钥来解开这些密文。然而,上述这种方法存在一定的缺陷,首先,用户Alice仅仅是希望邮件服务器将自己的密文转化成Bob的密文,并不希望邮件服务器能够获取相关的明文信息,尤其是当邮件服务器被攻击者捕获时,相应的明文信息就会被泄露;其次,将自己的私钥发送给邮件服务器会给Alice带来安全隐患,特别是当邮件服务器被攻击者捕获时,不仅仅明文信息会被泄露,同时用户Alice的私钥也将被泄密。因此如何能够将用户Alice的密文在不解密的基础上转化成Bob的密文,同时不泄露用户Alice的密钥和相应的明文成为一个很有挑战的问题。

代理重加密在传统的公钥加密体制中加入一个代理者,代理者能够在Alice授权的基础上,将Alice的密文在不解密的情况下转化成Bob的密文,并且代理者并不能够获取相应的明文信息。这样既保护了Alice的密钥信息,同时也保证了明文信息的安全性。

云计算中使用代理重加密的主要步骤(如图10.10所示)如下。

图10.10 云计算中使用代理重加密示意图

(1)用户A使用代理者云计算服务商的公钥加密消息m,生成密文cA,并传输到云上。

(2)A想与用户B共享数据,A获取用户B的公钥pkB

(3)A利用自己的公/私钥对(pkA,skA)和B的公钥pkB生成代理重加密密钥rkA→B并发送到云端。

(4)云计算服务商用代理重加密密钥rkA→B将A的密文cA转换成针对B的密文cB。(www.daowen.com)

(5)B从云端下载密文cB后使用私钥skB对密文解密获得明文m。

一个代理重加密(Proxy Re-Encryption,PRE)方案可由算法Key Gen、Re Key、Encrypt、ReEncrypt、Deceypt构成。

(1)Key Gen(1k)→(pki,ski):输入安全参数1k,密钥生成算法Key Gen为用户i输出一对公/私钥(pki,ski)。

(2)Re Key(pkA,skA,pkB)→rkA→B:输入Alice的公/私钥对(pkA,skA)和Bob的公钥pkB,代理重加密密钥生成算法Re Key输出一个代理重加密密钥rkA→B。这里,Alice为委托者,Bob为被委托者。

(3)Encrypt(pki,m)→ci:输入用户i公钥的pki和消息m,加密算法Encrypt输出消息m的密文ci

(4)ReEncrypt(rkA→B,cA)→cB:输入一个代理重加密密钥rkA→B和Alice的密文cA,代理重加密算法ReEncrypt输出针对Bob的重加密密文cB

(5)Deceypt(ski,ci)→m:输入用户i的私钥ski和密文ci,解密算法Deceypt输出消息m或表明密文ci不合法的错误符号。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈