forked from nankaicyber/NKDBsec
Update README.md
This commit is contained in:
parent
58326947dc
commit
ce66fd7c95
22
README.md
22
README.md
|
@ -1,15 +1,15 @@
|
||||||
## 概述
|
## 概述
|
||||||
NKDBSec是由[南开大学数据与智能系统安全教育部重点实验室](https://cyber.nankai.edu.cn/)和[北京安华金和有限公司](https://www.dbsec.cn/)联合推出的安全多方计算框架,主要用于大数据下的数据联合分析和其他隐私计算算法的开发,典型应用包括多方医疗机构数据联合诊断、多方银行联合征信、多方秘密共享数据库联合查询等等。
|
NKDBsec是由[南开大学数据与智能系统安全教育部重点实验室](https://cyber.nankai.edu.cn/)和[北京安华金和有限公司](https://www.dbsec.cn/)联合推出的安全多方计算框架,主要用于大数据下的数据联合分析和其他隐私计算算法的开发,典型应用包括多方医疗机构数据联合诊断、多方银行联合征信、多方秘密共享数据库联合查询等等。
|
||||||
|
|
||||||
NKDBSec是一个基于[Rosetta](https://github.com/LatticeX-Foundation/Rosetta)改造而成的安全多方计算框架。Rosetta是一个基于tensorflow开发的安全多方计算框架,主要用于隐私保护机器学习。但是由于其底层使用的tensor结构,大量的张量计算不太适用于大数据下的数据联合分析和其他隐私计算算法的开发。目前产业界也缺少针对秘密共享数据库、数据联合分析等应用的MPC框架。
|
NKDBsec是一个基于[Rosetta](https://github.com/LatticeX-Foundation/Rosetta)改造而成的安全多方计算框架。Rosetta是一个基于tensorflow开发的安全多方计算框架,主要用于隐私保护机器学习。但是由于其底层使用的tensor结构,大量的张量计算不太适用于大数据下的数据联合分析和其他隐私计算算法的开发。目前产业界也缺少针对秘密共享数据库、数据联合分析等应用的MPC框架。
|
||||||
|
|
||||||
基于这个现状,NKDBSec将原版Rosetta框架进行了底层改造,使之可以更加适用于数据联合分析与数据库操作等场景。改造后的框架基础算子性能得到了非常大的提升。NKDBSec将其基本算子进行了一个对比测试,测试结果详见下表:
|
基于这个现状,NKDBsec将原版Rosetta框架进行了底层改造,使之可以更加适用于数据联合分析与数据库操作等场景。改造后的框架基础算子性能得到了非常大的提升。NKDBsec将其基本算子进行了一个对比测试,测试结果详见下表:
|
||||||
|
|
||||||
测试硬件配置:Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz 20核 40线 1000M带宽
|
测试硬件配置:Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz 20核 40线 1000M带宽
|
||||||
|
|
||||||
测试数量级:10^7(基础运算千万级别)
|
测试数量级:10^7(基础运算千万级别)
|
||||||
|
|
||||||
| **测试算法** | **Rosetta** | **NKDBSec** |
|
| **测试算法** | **Rosetta** | **NKDBsec** |
|
||||||
| :-------: | :-------: | :-------: |
|
| :-------: | :-------: | :-------: |
|
||||||
| 加法操作 | 4min59s | 3.8s |
|
| 加法操作 | 4min59s | 3.8s |
|
||||||
| 减法操作 | 5min0s | 3.9s |
|
| 减法操作 | 5min0s | 3.9s |
|
||||||
|
@ -29,7 +29,7 @@ python版本:python3.6+
|
||||||
```bash
|
```bash
|
||||||
python3 setup.py install
|
python3 setup.py install
|
||||||
```
|
```
|
||||||
用户在使用框架进行开发的时候,只需要在文件中添加以下两行代码即可使用NKDBSec框架:
|
用户在使用框架进行开发的时候,只需要在文件中添加以下两行代码即可使用NKDBsec框架:
|
||||||
```python
|
```python
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import dbsecmpc
|
import dbsecmpc
|
||||||
|
@ -37,7 +37,7 @@ import dbsecmpc
|
||||||
|
|
||||||
## 使用样例
|
## 使用样例
|
||||||
|
|
||||||
对于NKDBSec框架,我们支持两种使用方式,一种是单机多线程模拟,另一种是多机交互。我们分别给出两个使用样例:
|
对于NKDBsec框架,我们支持两种使用方式,一种是单机多线程模拟,另一种是多机交互。我们分别给出两个使用样例:
|
||||||
#### 1、单机多线程模拟
|
#### 1、单机多线程模拟
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
@ -187,7 +187,7 @@ def main(parid):
|
||||||
print(res)
|
print(res)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# 此处需要注意,NKDBSec是三个参与方进行交互模拟,所以需要建立三个py文件,比如分别命名为test1.py, test2.py, test3.py
|
# 此处需要注意,NKDBsec是三个参与方进行交互模拟,所以需要建立三个py文件,比如分别命名为test1.py, test2.py, test3.py
|
||||||
# 对于test1.py文件此处为"main(0)", 其余两个文件main的参数分别为1和2,然后使用三个进程进行模拟即可运行此实例。
|
# 对于test1.py文件此处为"main(0)", 其余两个文件main的参数分别为1和2,然后使用三个进程进行模拟即可运行此实例。
|
||||||
main(0)
|
main(0)
|
||||||
```
|
```
|
||||||
|
@ -205,7 +205,7 @@ python3 test3.py
|
||||||
```
|
```
|
||||||
|
|
||||||
## 接口说明
|
## 接口说明
|
||||||
目前NKDBSec提供如下基本运算接口,用户可以在此之上调用接口,实现相应的MPC任务。
|
目前NKDBsec提供如下基本运算接口,用户可以在此之上调用接口,实现相应的MPC任务。
|
||||||
**1、操作类型:四则运算**
|
**1、操作类型:四则运算**
|
||||||
(1)加法运算:OP_ADD,调用方式:
|
(1)加法运算:OP_ADD,调用方式:
|
||||||
```python
|
```python
|
||||||
|
@ -273,13 +273,13 @@ dbsecmpc.opvector(rtx, dbsecmpc.OP_XOR)
|
||||||
## 引用方式
|
## 引用方式
|
||||||
如果需要引用我们的项目,可以参考如下引用格式。
|
如果需要引用我们的项目,可以参考如下引用格式。
|
||||||
```
|
```
|
||||||
@misc{NKDBSec,
|
@misc{NKDBsec,
|
||||||
author = {Junjian Shi, Zheli Liu, Xiaotao Liu, Yun Pan, Hao Yang, Jihong Guo},
|
author = {Junjian Shi, Zheli Liu, Xiaotao Liu, Yun Pan, Hao Yang, Jihong Guo},
|
||||||
title = {{NKDBSec: An MPC Framework Based on Rosetta}},
|
title = {{NKDBsec: An MPC Framework Based on Rosetta}},
|
||||||
howpublished = {\url{https://osredm.com/nankaicyber/NKDBsec}},
|
howpublished = {\url{https://osredm.com/nankaicyber/NKDBsec}},
|
||||||
year={2024}
|
year={2024}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 许可证
|
## 许可证
|
||||||
NKDBSec代码库基于[GNU Lesser General Public License v3.0]()许可证开放使用。
|
NKDBsec代码库基于[GNU Lesser General Public License v3.0]()许可证开放使用。
|
Loading…
Reference in New Issue