我们先来设计几个基于存储网络的数据分享的原则:
1、数据分享过程中只有数据的接收者能看到明文。其他人,当然也要包括存储网络都看不到数据的明文章。这一点特别重要,中心化的分享方案一般情况下存储服务提供商都是可以看到信息明文的,并且可能进行一定的审查。这样你的信息就有被泄漏的风险。
2、数据的加密、传输尽量使用存储网络的运算能力及带宽。这也正是我们使用存储网络时行数据共享的意义所在。如果不使用有存储网络,而采用双方直接分享(如拷贝、点对点的文件直传)则不会有今天的讨论了。
上面两点显而易见,这里就不多作讨论。
公钥直接加密法
我们先来看看如果直接分享,我们有什么简单的方法安全的进行数据的分享。下面以Alice(数据拥有者)向Bob(数据接收者)分享一份文件为例,说明公钥直接加密法。
1、Alice使用Bob的公钥对文件进行加密。
2、将数据分享给Bob。
3、Bob解密文件,获取信息。
这个过程简单而直接,这就是公钥直接加密法。但如果面对使用存储网络进行数据分享的情况公钥直接加密法有没有优势呢?
由于数据存储在存储网络中,且自己的私钥不能泄漏,所以Alice需要先下载文件,解密、重新使用Bob的公钥加密再上传到存储网络中,然后Bob可以从存储网络中获取文件。
还有一个问题,如果Alice有一天又想把数据分享给Julia,那么他需要再重新将上面的操作进行一遍。
分析上面的问题,我们其实只使用了存储网络的存储功能,而没有使用存储网络的计算功能。所以“直接公钥加密”是一种非常笨拙的方法。
代理重加密
如果仔细分析上面的过程,我们会发现,其实这个过程很简单很简单。这个过程中,