分布式laplace扰动算法的客户机/服务器

psi-dlpa的Python项目详细描述


GPLv3Release

提供分布式laplace的客户机和服务器应用程序 扰动算法(dlpa)。

dlpa由Vibhor RastogiSuman Nath 在“Differentially Private Aggregation of Distributed Time-Series with Transformation and Encryption”中,以及 发表于SIGMOD 2010

客户机

此包具有客户端类dlpa.DLPAClient。创建 实例中,构造函数有两个参数:

  • 主机:DLPA服务器的地址,
  • 端口:DLPA服务器的端口号。

尽管客户机类实现了在dlpa中定义的几个协议, get_keyencrypt_noisy_sum是用户可能使用的唯一方法 有兴趣。

get_key向服务器请求客户端密钥。需要一个 参数,客户端ID,并返回客户端密钥对象。

另一个方法encrypt_noisy_sum运行entryp noisy sum 协议,是dlpa的关键协议。它需要以下四个 参数:

  • CK:客户端密钥。
  • 客户ID:客户ID。
  • 值:通过加密和发送到服务器的标量或矢量 协议。
  • epsilon:产生拉普拉斯噪声的参数。

并在附加请求时返回一个时隙。

服务器

dlpa-server命令运行dlpa的服务器应用程序。以下 此命令的用法:

usage: dlpa-server [-h] --port PORT --clients NCLIENT
                   [--max-workers MAX_WORKERS] [--key-length M_LENGTH]
                   [--time-span SPAN]

optional arguments:
  -h, --help            show this help message and exit
  --port PORT           Listening port number.
  --clients NCLIENT     The number of clients.
  --max-workers MAX_WORKERS
                        The maximum number of workers (default: 10).
  --key-length M_LENGTH
                        Bit length of the secret key (default: 2048).
  --time-span SPAN      Second of one time slot.

请注意,端口号和客户端数是必需的 论据。

您还可以使用 dlpa.server函数。函数接受以下关键字 参数:

  • 端口:创建的服务器侦听的端口号。
  • 最大工人人数。
  • nclient:连接此服务器的客户端数。
  • m_length:密钥的位长度。

并返回一个服务器对象,该对象有一个方法stop(t)来停止 给定时间内的服务器t。打电话的人负责打电话 关闭服务器的方法。

安装

$ pip install --upgrade psi-dlpa

另外,如果您安装 gmpy2,计算时间为 减少。要在mac中安装gmpy2,还需要安装mpc、mpfr, 还有Libmp。这三个包裹有 Homebrew

许可证

本软件在GNU通用公共许可版本下发布 3,请参见COPYING了解更多详细信息。

函数powmod、invert和getprimeover,定义于 src/dlpa/util.py由data61 csiro生成,并在 GPLv3级。原始源代码是 here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jetty是否有请求缓存?   数组中的java 2值与我的数据帧中的2列对应   对象序列化期间的java DbUtils类型转换问题   java根面板中不显示所有单独的面板   java通过代理或SSH隧道连接Hbase API   java困惑:与经典MVC控制器相比,JSF2中bean的角色   java在我的Triangle类中“找不到符号错误”   java在Android中设置从路径到自定义按钮的图像   java不绕轨道旋转椭圆   AES在socket上搞砸了序列化/反序列化。无效的流标头。JAVA   java在数组中搜索term和if语句   线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:在索引0附近悬挂元字符“*”*   Websphere上的java Google反射无法打开url连接   java为什么inc/dec频道什么都不做?   java KeyListener无法访问keyPressed方法