WwZzz / easyFL

An experimental platform for federated learning.
Apache License 2.0
543 stars 92 forks source link

梯度加密问题 #48

Open OnlyOneV1 opened 11 months ago

OnlyOneV1 commented 11 months ago

希望调用同态加密之类的密码学算法实现梯度加密,在这个框架的那部分进行修改能够实现?

WwZzz commented 11 months ago

希望调用同态加密之类的密码学算法实现梯度加密,在这个框架的那部分进行修改能够实现?

你好,需要修改Client.initialize初始化密钥,修改Client.pack加密上传的内容,修改Server.iterate处理接收到的内容的方式

OnlyOneV1 commented 11 months ago

好的 谢谢

OnlyOneV1 commented 7 months ago

希望调用同态加密之类的密码学算法实现梯度加密,在这个框架的那部分进行修改能够实现?

你好,需要修改Client.initialize初始化密钥,修改Client.pack加密上传的内容,修改Server.iterate处理接收到的内容的方式

您好 目前我存在一个疑惑就是对于梯度进行加密,但是如何获得您项目中训练模型的梯度,我发现您在对于梯度进行加减主要是使用fmodle中的函数,但是我直接输出梯度是一个tensor([[-1.1742e-06, -6.4992e-06, -6.2563e-05, ..., -5.5793e-05, 9.1988e-06, 1.5008e-05], [ 9.4393e-05, -6.7191e-05, 9.7635e-05, ..., -1.2369e-03, -5.2005e-04, -3.3128e-05], [ 0.0000e+00, 0.0000e+00, 0.0000e+00, ..., 0.0000e+00, 0.0000e+00, 0.0000e+00], 类似这样的数据,可能我有点表述不清,就是是可以直接在这样的数据上进行计算吗?因为我想要实现加密,就需要对具体数据进行操作,但是对于您的实现方式仍有困惑。然后我看到的现有的开源代码关于加密,是将模型训练的过程变成数学计算方式,所以我在此之间存在困惑