Exemplo n.º 1
0
 def __init__(
         self,
         trans_var: SecureAggregatorTransVar = SecureAggregatorTransVar(),
         enable_secure_aggregate=True):
     self._aggregator = aggregator.Server(
         trans_var=trans_var.aggregator_trans_var)
     self.enable_secure_aggregate = enable_secure_aggregate
     if enable_secure_aggregate:
         random_padding_cipher.Server(trans_var=trans_var.random_padding_cipher_trans_var) \
             .exchange_secret_keys()
Exemplo n.º 2
0
    def __init__(self, max_num_aggregation, eps=0.0, name="default"):
        super(PyTorchSAServerContext,
              self).__init__(max_num_aggregation=max_num_aggregation,
                             name=name)
        self.transfer_variable = SecureAggregatorTransVar()
        self.aggregator = aggregator.Server(
            self.transfer_variable.aggregator_trans_var)
        self.random_padding_cipher = random_padding_cipher.Server(
            self.transfer_variable.random_padding_cipher_trans_var)

        self._eps = eps
        self._loss = math.inf
Exemplo n.º 3
0
    def __init__(self, trans_var=LegacyAggregatorTransVar()):
        self._guest_parties = trans_var.get_parties(roles=[consts.GUEST])
        self._host_parties = trans_var.get_parties(roles=[consts.HOST])
        self._client_parties = trans_var.client_parties

        self._loss_sync = loss_scatter.Server(trans_var.loss_scatter)
        self._converge_sync = has_converged.Server(trans_var.has_converged)
        self._model_scatter = model_scatter.Server(trans_var.model_scatter)
        self._model_broadcaster = model_broadcaster.Server(
            trans_var.model_broadcaster)
        self._random_padding_cipher = random_padding_cipher.Server(
            trans_var.random_padding_cipher)
def sync_random_padding(job_id, role, ind, *args):
    if role == consts.ARBITER:
        rp_cipher = random_padding_cipher.Server()
        rp_cipher.exchange_secret_keys()
        return

    elif role == consts.HOST:
        rp_cipher = random_padding_cipher.Client()
        rp_cipher.create_cipher()
        return rp_cipher
    else:
        rp_cipher = random_padding_cipher.Client()
        rp_cipher.create_cipher()
        return rp_cipher