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

背景

上个月写了一篇《代理重加密和大火的NuCypher》,引发了一些讨论。

https://bihu.com/article/1754593817

朱立老师对此做出了回应,经过数轮辩论,得出了一些共识。

https://www.jianshu.com/p/4c96caf5a984

结合NuCypher的工程师John Pacific的AMA,澄清了部分事实。

https://www.chainnews.com/articles/093169046872.htm

本文补充一些上文中遗漏的部分,并重点对比代理重加密(PRE)和传统的非对称加密方案(PKE)在云端共享上的区别。

补充说明

1.NuCypher不提供存储层,允许应用开发者们将数据存储在任何他们想要存储的地方。

2.使用Schnnor零知识证明,以防止数据作假。成本约70w-100w gas。

3.其代币NKMS,会采用他们首创的work-load分发方式。https://blog.nucypher.com/the-worklock

与PKE对比

不考虑密钥分片,仅考虑单一代理。假设一个数据分享者A有N份文件需要分享(对应N个加密密钥),网络中有M个潜在的数据访问者(用户)。

传统方式的做法是,将每一份加密密钥,都使用每个用户的公钥进行加密。这样服务提供商可以根据需求提供文件(无需数据分享者再次访问网络)。

代理重加密的做法是,针对M个潜在数据访问者,生成M份重加密密钥。服务商在需要时按需转换。

假设文件平均命中率是x,即在一定周期内文件被平均请求的次数。

(1)不考虑文件增加和用户增加情况,静态情况下:

(2)增加1名用户的情况

(3)增加1份文件的情况

(4)更新文件加密密钥(周期性)

总结

在静态场景下,传统做法有一个较长的初始化过程。在实际运用中,重加密方法需要较大的计算需求,但节约了一部分存储,两种方式差距不是特别明显。

但一般情况下,文件系统的用户和内容都是动态的,此时重加密做法的优势明显。具体来说,在增加用户时,传统做法需要本地对已有的所有加密密钥进行加密,可能花费很长时间。在增加文件时,重加密做法下,数据分享者只需要使用自己的公钥去加密对称密钥即可,而传统做法需要做M次非对称加密。更新文件加密密钥时,重加密做法的数据分析者只需要使用自己的公钥去加密对称密钥即可(无需再次生成重加密密钥),而传统做法需则需要重新执行初始化过程。另外,服务端拥有更强的计算能力,重加密算法把这些计算过程让服务端更多承担,尽量减少客户端的计算,符合架构设计原理。最后,重加密算法的弹性更好,一般来说,x不会是一个太大的数,当文件访问稀疏时,在一开始就执行多次可能无用的加密是巨大的浪费。

总结,代理重加密提供了更好的密钥管理方案,我期待它的广泛应用及可支撑的更加保护隐私的数字世界。

原文地址:https://www.cnblogs.com/hzcya1995/p/13312752.html