{ "info": { "author": "Junpei Kawamoto", "author_email": "kawamoto.junpei@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries" ], "description": "Distributed Laplace Perturbation Algorithm\n==========================================\n\n|GPLv3| |Release|\n\nClient and server applications providing Distributed Laplace\nPerturbation Algorithm (DLPA).\n\nThe DLPA has been introduced by `Vibhor\nRastogi `__ and\n`Suman Nath `__\nin \"`Differentially Private Aggregation of Distributed Time-Series with\nTransformation and\nEncryption `__,\" and\npublished in `SIGMOD 2010 `__.\n\nClient\n------\n\nThis package has client class ``dlpa.DLPAClient``. To create an\ninstance, the constructor takes two arguments:\n\n- host: Address of a DLPA server,\n- port: Port number of the DLPA server.\n\nAlthough the client class implements several protocols defined in DLPA,\n``get_key`` and ``encrypt_noisy_sum`` are the only method users might\nhave interest.\n\nThe ``get_key`` requests a client key to the server. It takes one\nargument, client ID, and returns a client key object.\n\nThe other method ``encrypt_noisy_sum`` runs the Entryp-Noisy-Sum\nprotocol, which is the key protocol of DLPA. It takes the following four\narguments:\n\n- ck: Client key.\n- client\\_id: Client ID.\n- value: Scalar or vector to be sent to the server by Encrypt-Sum\n protocol.\n- epsilon: Parameter to generate Laplace noises.\n\nand returns a time slot when the request is attached.\n\nServer\n------\n\n``dlpa-server`` command runs a server application of DLPA. The following\nis the usage of this command:\n\n::\n\n usage: dlpa-server [-h] --port PORT --clients NCLIENT\n [--max-workers MAX_WORKERS] [--key-length M_LENGTH]\n [--time-span SPAN]\n\n optional arguments:\n -h, --help show this help message and exit\n --port PORT Listening port number.\n --clients NCLIENT The number of clients.\n --max-workers MAX_WORKERS\n The maximum number of workers (default: 10).\n --key-length M_LENGTH\n Bit length of the secret key (default: 2048).\n --time-span SPAN Second of one time slot.\n\nNote that the port number and the number of clients are necessary\narguments.\n\nYou can also starts a server from another python script by using\n``dlpa.server`` function. The function takes the following keyword\narguments:\n\n- port: Port number the created server listen.\n- max\\_workers: The maximum number of workers.\n- nclient: The number of clients connecting this server.\n- m\\_length: Bit length of the secret key.\n\nand returns a server object, which has a method ``stop(t)`` to stop the\nserver within the given time ``t``. Callers are responsible for calling\nthe method to close the server.\n\nInstallation\n------------\n\n::\n\n $ pip install --upgrade psi-dlpa\n\nAdditionaly, if you install\n`gmpy2 `__, computation time will be\nreduced. To install gmpy2 in mac, you also need to install mpc, mpfr,\nand libmp. Those three packages are available in\n`Homebrew `__.\n\nLicense\n-------\n\nThis software is released under The GNU General Public License Version\n3, see `COPYING `__ for more detail.\n\nThe functions, powmod, invert, and getprimeover, defined in\n``src/dlpa/util.py`` are made by Data61 \\| CSIRO and released under the\nGPLv3. The original source code is\n`here `__.\n\n.. |GPLv3| image:: https://img.shields.io/badge/license-GPLv3-blue.svg\n :target: https://www.gnu.org/copyleft/gpl.html\n.. |Release| image:: https://img.shields.io/badge/release-0.3.0-brightgreen.svg\n :target: https://github.com/jkawamoto/psi-dlpa/releases/tag/0.3.0", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jkawamoto/psi-dlpa", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "psi-dlpa", "package_url": "https://pypi.org/project/psi-dlpa/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/psi-dlpa/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/jkawamoto/psi-dlpa" }, "release_url": "https://pypi.org/project/psi-dlpa/0.3.0/", "requires_dist": null, "requires_python": null, "summary": "Client/Server for Distributed Laplace Perturbation Algorithm", "version": "0.3.0" }, "last_serial": 2695078, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "7091ce8ed44e1e1d8fd60cc0834f76ce", "sha256": "1d187697200932c9c01808675d4fcdb2c00f1b0548ca23344b0cfde5ad45a334" }, "downloads": -1, "filename": "psi-dlpa-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7091ce8ed44e1e1d8fd60cc0834f76ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46878, "upload_time": "2017-03-09T20:27:09", "url": "https://files.pythonhosted.org/packages/34/19/80465f57889a1172f955eb57cfcf694b40ce916f3c45bb3281519a49f207/psi-dlpa-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7091ce8ed44e1e1d8fd60cc0834f76ce", "sha256": "1d187697200932c9c01808675d4fcdb2c00f1b0548ca23344b0cfde5ad45a334" }, "downloads": -1, "filename": "psi-dlpa-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7091ce8ed44e1e1d8fd60cc0834f76ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46878, "upload_time": "2017-03-09T20:27:09", "url": "https://files.pythonhosted.org/packages/34/19/80465f57889a1172f955eb57cfcf694b40ce916f3c45bb3281519a49f207/psi-dlpa-0.3.0.tar.gz" } ] }