Ejemplo n.º 1
0
 def offline(self, input_mask):
     PhaseProtocolServer.offline(self)
     self.compute_core.encode_input_to_fhe_batch(input_mask)
     self.blob_input_cts.send(self.compute_core.input_cts)
     self.compute_core.output_cts = self.blob_output_cts.get_recv()
     self.output_c = self.compute_core.decode_output_from_fhe_batch().cuda(
     ).double()
Ejemplo n.º 2
0
 def offline(self, weight_tensor):
     PhaseProtocolServer.offline(self)
     self.compute_core.input_cts = self.blob_input_cts.get_recv()
     self.compute_core.compute_conv2d(weight_tensor)
     self.compute_core.masking_output()
     self.blob_output_cts.send(self.compute_core.output_cts)
     self.output_mask_s = self.compute_core.output_mask_s.cuda().double()
Ejemplo n.º 3
0
    def offline(self):
        PhaseProtocolServer.offline(self)
        self.u_s = self.generate_random().to(Config.device)
        self.v_s = self.generate_random().to(Config.device)
        self.z_s = self.generate_random().to(Config.device)

        fhe_u = self.blob_fhe_u.get_recv()
        fhe_u += self.fhe_builder.build_plain_from_torch(self.u_s)
        fhe_v = self.blob_fhe_v.get_recv()
        fhe_v += self.fhe_builder.build_plain_from_torch(self.v_s)
        fhe_z = fhe_u
        fhe_z *= fhe_v
        fhe_z_c = fhe_z
        fhe_z_c -= self.fhe_builder.build_plain_from_torch(self.z_s)
        self.blob_fhe_z_c.send(fhe_z_c)
        del fhe_u, fhe_v, fhe_z, fhe_z_c
Ejemplo n.º 4
0
 def offline(self):
     PhaseProtocolServer.offline(self)
Ejemplo n.º 5
0
 def offline(self):
     PhaseProtocolServer.offline(self)
     self.input_mask_s = generate_random_mask(
         self.modulus, self.num_elem).to(self.comp_device)