Skip to content

SecureProtocol

Chen edited this page Mar 24, 2020 · 1 revision

此处会列出算法中关于加密算法的常见问题以及相应的注意事项和解决方案。

常见问题

  1. Q: 请问现在框架里隐私保护协议都用的是同态加密吗,能更换成其他协议吗
    A: 不都是同态,也有rsa,secretshare等后续我们会支持dh,dp等一些协议。

  2. Q: 请问有没有去掉同态加密技术的版本?我对安全性不是那么的在意?对性能倒是较为在意。
    A: FATE本身定位为一种安全的计算框架,我们会根据不同场景,不同算法设计不同加密机制,同一个算法也会支持不同等级的加密机制供用户选择。但是完全不加密的方式,目前FATE还不提供。这里面牵扯东西很多,未来计划会通过社区来同步进展。

  3. Q: 同态加密算法支持明文和密文混合运算?
    A: 因为加密的数持有公钥 安全可以做到对明文进行加密再进行两个密文的加法,表面上看起来就像是密文加明文,效果上是等价的但是过程稍微有点不同 好奇的话可以看下底层的实现。

  4. Q: 对于纵向来说,将双方数据同态加密后再传输给对方,在这个过程中,计算+加密+传输这几个环节的代码分别在哪里?
    A: 计算(会调用加密)都在federatedml/相关算法模块的python代码里面的,加密的具体实现代码在federatedml/secureprotol/下。

  5. Q: 横向联邦学习加密数据有用到差分隐私技术吗?
    A: 没有使用差分隐私。

  6. Q: 同态加密一般用来在不暴露明文的情况下做加减数乘运算,但发现当前fate实现中在做运算前都会先解密再计算。那么可否理解为当前的加密只是对传输过程的加密呢(对计算过程没有加密)?
    A: 这里的解密是在arbiter做的,而arbiter做完计算以后会再加密发送回去,所以对于横向host,拿到的始终是密文。横向算法的三方方案里面,会需要有一个第三中立方持有公私钥,并基于semi-honest的假设下完成建模。而在横向LR场景里,因为arbiter本身可以获得所有方的模型进行聚合,而其他方对他传输的也只是最终的模型,即使arbiter不中立,也无法联合其他方,获取到某一方的数据。 。

  7. Q: 纵向数据对齐的时候,为什么rsa的key要由 host保管,由host发给guest.而不是像同态加密key由A方保管,由A发给guest和host。 如果是guest生成rsa的key,下发给host,去做数据对齐,是否也是可行的?
    A: 如果这样做的话,相当于引入第三方,这个第三方是否可信会是一个问题。这里算法决定了RSA公私钥是在host产生,并且是host方确定自己数据安全的保障,不应该由另外一方产生。

Clone this wiki locally