Update README.md

This commit is contained in:
p87059431 2024-01-20 14:44:25 +08:00
parent ab50a39002
commit 8e23ea1c80
1 changed files with 11 additions and 11 deletions

View File

@ -1,13 +1,13 @@
## 概述 ## 概述
NKDBsec是一个基于[Rosetta](https://github.com/LatticeX-Foundation/Rosetta)改造而成的安全多方计算框架。NKDBsec主要由[南开大学数据与智能系统安全教育部重点实验室](https://cyber.nankai.edu.cn/)和[北京安华金和有限公司](https://www.dbsec.cn/)进行开发和维护。原版本Rosetta框架是一个基于tensorflow开发的安全多方计算框架主要用于隐私保护机器学习。但是由于其底层使用的tensor结构大量的张量计算不太适用于大数据下的数据联合分析和其他隐私计算算法的开发。 NKDBSec是一个基于[Rosetta](https://github.com/LatticeX-Foundation/Rosetta)改造而成的安全多方计算框架。NKDBSec主要由[南开大学数据与智能系统安全教育部重点实验室](https://cyber.nankai.edu.cn/)和[北京安华金和有限公司](https://www.dbsec.cn/)进行开发和维护。原版本Rosetta框架是一个基于tensorflow开发的安全多方计算框架主要用于隐私保护机器学习。但是由于其底层使用的tensor结构大量的张量计算不太适用于大数据下的数据联合分析和其他隐私计算算法的开发。
基于这个现状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 |
@ -27,7 +27,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
@ -35,7 +35,7 @@ import dbsecmpc
## 使用样例 ## 使用样例
对于NKDBsec框架我们支持两种使用方式一种是单机多线程模拟另一种是多机交互。我们分别给出两个使用样例 对于NKDBSec框架我们支持两种使用方式一种是单机多线程模拟另一种是多机交互。我们分别给出两个使用样例
#### 1、单机多线程模拟 #### 1、单机多线程模拟
```python ```python
@ -185,7 +185,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)
``` ```
@ -203,7 +203,7 @@ python3 test3.py
``` ```
## 接口说明 ## 接口说明
目前NKDBsec提供如下基本运算接口用户可以在此之上调用接口实现相应的MPC任务。 目前NKDBSec提供如下基本运算接口用户可以在此之上调用接口实现相应的MPC任务。
| **操作类型** | **运算符** | **调用方式** | | **操作类型** | **运算符** | **调用方式** |
| :-------: | :-------: | :-------: | | :-------: | :-------: | :-------: |
| 加法操作 | OP_ADD | dbsecmpc.opvector(rtx, rty, dbsecmpc.OP_ADD) | | 加法操作 | OP_ADD | dbsecmpc.opvector(rtx, rty, dbsecmpc.OP_ADD) |
@ -225,13 +225,13 @@ python3 test3.py
## 引用方式 ## 引用方式
如果需要引用我们的项目,可以参考如下引用格式。 如果需要引用我们的项目,可以参考如下引用格式。
``` ```
@misc{NKDBsec, @misc{NKDBSec,
author = {Junjian Shi, Zheli Liu, Hao Yang, Xiaotao Liu, Yun Pan, 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](https://www.osredm.com/nankaicyber/NKDBsec/tree/master/COPYING.LESSER)许可证开放使用。 NKDBSec代码库基于[GNU Lesser General Public License v3.0]()许可证开放使用。