/sunPytools

Useful tools for differential privacy

Primary LanguagePython

Introduction

微信公众号

本开源代码可用于科学研究,本项目主要包含以下部分:

  • basis.sunDP: 包含和DP相关的内容
  • basis.sunLDP: 以前叫做sunDP,里面包含和LDP相关的内容;
  • basis.sunCrypt: 包含一些密码学的算法基本流程,可用于对一些密码算法流程的了解,实现效率低;

sunDP

sunLDP

The ldplib provides basic randomized functions.

kvlib

Some basic encoding terms:

  • kv: a kv pair denoted as $\langle k, v\rangle$, where $k\in {0,1}, v\in[-1,1]$.
  • kvl: a list of key-value pairs, denoted by $[\langle k_1, v_1\rangle,\langle k_2, v_2\rangle...]$. The kvl is used to represent the $i-$th key-value or to represent a list of key-value pairs of one user.
  • kvt: a $n\times d$ key-value table. A kvt is used to represent the kvl from $n$ users.

The kvlib main contains the following perturbation and analysis algorithms:

heavy_hitters

mean_solutions

sunCrypt

sunCrypt包含一些常见的密码算法,实现效率低下但可读性高,主要包含:

  • Paillier: 公钥密码算法
  • RSA: 公钥密码算法