psi

查看源文件
RunPSI(input_data, comm_role, peer_comm_role, bucket_id, thread_num)

密文求交函数。

说明

需要先通过 from mindspore_federated._mindspore_federated import RunPSI 导入该函数; 在调用本接口前,需要初始化纵向联邦通信实例,可参考 MindSpore federated ST

参数:
  • input_data (list[string]) - 己方的输入数据。

  • comm_role (string) - 该进程的通信角色,"server""client"

  • peer_comm_role (string) - 对方的通信角色,"server""client"

  • bucket_id (int) - 桶序号。双进程通信时,若双方该值不同,server 报错退出,client 阻塞等待。

  • thread_num (int) - 线程数目。0 表示使用机器最大可用线程数目减 5,其他值会限定在 1 到机器最大可使用值。

返回:
  • result (list[string]) - 交集结果。

异常:
  • TypeError - 输入 input_data 不是 list[string] 类型。

  • TypeError - 输入 bucket_id 不是大于等于0的整数类型,如负数或小数。

  • TypeError - 输入 thread_num 不是大于等于0的整数类型,如负数或小数。

样例:
>>> from mindspore_federated import VerticalFederatedCommunicator, ServerConfig
>>> from mindspore_federated._mindspore_federated import RunPSI
>>> http_server_config = ServerConfig(server_name='server', server_address="127.0.0.1:1086")
>>> remote_server_config = ServerConfig(server_name='client', server_address="127.0.0.1:1087")
>>> vertical_communicator = VerticalFederatedCommunicator(http_server_config=http_server_config,
...                                                       remote_server_config=remote_server_config)
>>> vertical_communicator.launch()
>>> result = RunPSI(['1', '2', '3'], 'server', 'client', 0, 0)
PlainIntersection(input_data, comm_role, peer_comm_role, bucket_id, thread_num)

明文求交函数。

说明

需要先通过 from mindspore_federated._mindspore_federated import PlainIntersection 导入该函数; 在调用本接口前,需要初始化纵向联邦通信实例,可参考 MindSpore federated ST

参数:
  • input_data (list[string]) - 己方的输入数据。

  • comm_role (string) - 该进程的通信角色,"server""client"

  • peer_comm_role (string) - 对方的通信角色,"server""client"

  • bucket_id (int) - 桶序号。双进程通信时,若双方该值不同,server 报错退出,client 阻塞等待。

  • thread_num (int) - 线程数目。0 表示使用机器最大可用线程数目减 5,其他值会限定在 1 到机器最大可使用值。

返回:
  • result (list[string]) - 交集结果。

异常:
  • TypeError - 输入 input_data 不是 list[string] 类型。

  • TypeError - 输入 bucket_id 不是大于等于0的整数类型,如负数或小数。

  • TypeError - 输入 thread_num 不是大于等于0的整数类型,如负数或小数。

样例:
>>> from mindspore_federated import VerticalFederatedCommunicator, ServerConfig
>>> from mindspore_federated._mindspore_federated import PlainIntersection
>>> http_server_config = ServerConfig(server_name='server', server_address="127.0.0.1:1086")
>>> remote_server_config = ServerConfig(server_name='client', server_address="127.0.0.1:1087")
>>> vertical_communicator = VerticalFederatedCommunicator(http_server_config=http_server_config,
...                                                       remote_server_config=remote_server_config)
>>> vertical_communicator.launch()
>>> result = PlainIntersection(['1', '2', '3'], 'server', 'client', 0, 0)