搜索结果: JR/T 0196-2020, JR/T0196-2020, JRT 0196-2020, JRT0196-2020
| 标准编号 | JR/T 0196-2020 (JR/T0196-2020) | | 中文名称 | 多方安全计算金融应用技术规范 | | 英文名称 | (Multi-party secure computing financial application technical specifications) | | 行业 | 金融行业标准 (推荐) | | 中标分类 | A11 | | 字数估计 | 18,18 | | 发布日期 | 2020-11-24 | | 实施日期 | 2020-11-24 | | 标准依据 | 金融标准全文公开系统(2020.11.26) | | 发布机构 | 中国人民银行 |
JR/T 0196-2020: 多方安全计算金融应用技术规范
JR/T 0196-2020 英文名称: (Multi-party secure computing financial application technical specifications)
中 华 人 民 共 和 国 金 融 行 业 标 准
多方安全计算金融应用技术规范
中国人民银行 发 布
1 范围
本文件规定了多方安全计算技术金融应用的基础要求、安全要求、性能要求等。
本文件适用于金融机构开展多方安全计算金融应用的产品设计、软件开发。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,
仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本
文件。
5.1.1 MPC参与方
MPC参与方说明如下:
a) 任务发起方:触发MPC任务,在任务执行前完成任务资源配置,并对资源到位情况进行核实。
b) 调度方:配置计算任务,管理和协调其他参与方执行任务。
c) 算法提供方:为MPC提供计算逻辑和算法参数,当算法参数有保护要求时,应将该算法参数视
为隐私数据,该算法提供方视为数据提供方。
d) 数据提供方:为MPC提供所需隐私数据,通过MPC数据输入处理将隐私数据转化为输入因子并发
送给计算方。一个MPC计算任务中数据提供方的数量大于等于2。
e) 计算方:为MPC提供算力支持,计算方接收数据提供方的输入因子并进行计算,计算结束后将
输出因子发送给结果使用方。一个MPC计算任务中计算方的数量应大于等于2,并不能由同一实
体承担多个计算方角色。
f) 结果使用方:接收MPC计算结果,一个MPC计算任务的结果使用方可以有1个或多个。
5.1.2 工作时序
MPC任务工作时序包括任务创建、任务分配、数据输入、任务计算、结果解析等步骤,见图1。MPC
任务工作时序具体说明如下:
a) 任务创建:
1)任务发起方配置、核实MPC任务计算所需资源,发起计算任务。
2) 数据提供方对所有的数据使用进行授权,任务发起方和数据提供方为同一实体的情况除外。
数据提供方可委托调度方对数据进行使用授权,也可在任务创建前对数据进行预授权。数
据使用授权和后续任务分配阶段可合并执行。
b) 任务分配:
1)调度方验证任务请求信息的合法性,包括身份验证和数据授权的合法性。
2)验证通过后生成任务配置信息,发送给数据提供方、计算方和结果使用方。
3)数据提供方、计算方和结果使用方收到任务配置信息后进行验证。
4)各参与方保存收发的任务配置信息。
c) 数据输入:
1)数据提供方从数据源读取数据并生成输入因子,通过安全通道发送给指定计算方。
2)数据提供方保存任务配置信息,并对发送的输入因子进行存证。
d) 任务计算:
1)计算节点接收各数据提供方的输入因子,按照MPC协议进行协同计算生成输出因子。
2)将输出因子发送至结果使用方。
e) 结果解析:
1)结果使用方对输出因子进行解析得到计算结果。
2)对结果进行存证。
图 1 MPC工作时序图
5.2 应用目标
MPC应满足数据隐私性、数据合法性、计算结果正确性、计算性能可接受性等要求,具体要求如下:
a) 各参与方的隐私数据不应被其他参与方获取或推知,结果使用方可从计算结果推导出的信息除
外。
b) 计算过程中不应出现其他参与方的隐私数据原文。
c) 各参与方应按照计算任务约定的角色参与MPC计算。
d) 计算任务所使用的隐私数据应事先得到相应数据提供方的授权。
e) 计算结果应满足正确性要求,并只被结果使用方获取。
f) 计算性能应满足具体应用需求。
5.3 总体要求
MPC金融应用总体要求包括基础要求、安全要求和性能要求三部分,见图2。
基础要求包括数据输入、算法输入、协同计算、结果输出及调度管理等要求,分别主要针对数据提
供方、算法提供方、计算方、结果使用方、调度方。
安全要求包括协议安全、隐私数据安全、认证授权、密码安全、通信安全、存证与日志等要求。
性能要求对MPC金融应用提出了计算延时、吞吐量、计算精度等性能指标要求。
6 基础要求
6.1 数据输入
数据提供方数据输入具体要求如下:
a) 数据提供方应将隐私数据转化为输入因子,提供给指定计算节点,并确保在设定的安全模型下
无法通过输入因子推算出输入数据。
b) 数据提供方应对数据源、数据集、元数据等进行统一管理:
1)数据源管理:
--应支持不同类型的数据源接入,包括但不限于数据库和文件,数据库类型如关系型数
据库、列式数据库、数据仓库等,文件类型如 txt、csv、xml、key-value等;
--可扩展支持新的数据类型。
2)数据集管理:
--应支持对数据集的添加、删除操作;
--应支持指定数据集的使用方、用途和用量;
--应支持数据集接入状态查询功能,展示所有数据集接入任务的状态;
--应支持监控数据集参与计算状态的功能,如正在参与计算、使用完毕等。
3)元数据管理:
--应支持使用元数据描述数据集;
--应支持元数据查询功能,包括名称、标记、描述、大小、样例、类型等信息;
--应支持向数据需求方提供数据集的元数据信息。
c) 应具备数据存储格式转换、数据预处理等功能。
d) 可在任务执行前取消数据的使用授权。
e) 应对发送数据进行存证。
6.2 算法输入
算法输入为金融应用提供算法逻辑和输入方式,并对算法逻辑进行管理,具体要求如下:
a) 算法逻辑类型:
1)应支持常见的查询操作,如 Select、Sort、Join等。
2)应支持常见的统计分析算法,如均值、方差、中位数等。
3)应支持常用的机器学习算法,如线性回归、逻辑回归、神经网络、K-Means、PCA、决策树、
XGB oost等。
4)应支持梯度下降等常见的机器学习模型优化算法。
b) 算法输入方式:
1)应支持以一种或多种常用的算法逻辑语言输入,如 C/C++、Python、Java等。
2)应支持将算法中的重要参数作为数据进行输入,如查询条件、机器学习中的模型参数等。
3)应支持常见输入交互方式,如 Web网页、命令行、OpenAPI等。
4)应支持算法在线编写、修改、调试、提交等。
c) 算法逻辑管理:
1)将算法逻辑进行处理后应交给 MPC引擎进行运算。
2)对输入的算法逻辑应能够进行列表显示、运行状态查看、删除等操作。
通用MPC能够满足上述所有要求。专用MPC根据金融应用需求选择满足部分要求。
不同MPC金融应用类型应符合附录A的要求;MPC典型应用场景见附录B;通用MPC系统参考架构见附
录C。
6.3 协同计算
应由多个MPC计算节点组成MPC计算引擎,协同计算实现MPC协议。MPC计算节点提供基础运算,并能
够通过基础运算组合实现复杂运算,具体要求如下:
a) 基础运算:
1)应覆盖加、乘、比较等常见运算。
2)应支持常见数值计算。
3)应保证运算结果与相同数据明文计算的结果一致。
4)宜支持整数、小数、常见字符、字符串在内的一种或多种基本数据类型。
5)宜支持标量、矢量、矩阵、多维数组在内的一种或多种基本数据单元。
b) MPC计算节点:
1)应确保每个计算节点均处于不同的管理域。
2)应能根据数据提供方提供的输入因子,匹配算法逻辑并执行计算任务。
3)应保证直接在计算因子上完成运算,得到输出因子。
4)应能清除计算过程缓存的计算因子。
5)应能接收调度方的任务调度。
6)应能并发处理不同的计算任务。
7)应能将输出因子发送给结果使用方进行解析。
6.4 结果输出
结果输出的具体要求如下:
a) 应能接收计算方输出因子。
b) 应对接收数据进行存证。
c) 应保证输出结果的正确性。
6.5 调度管理
调度管理的具体要求如下:
a) 应对 MPC参与方进行管理。
b) 应能统一管理接入的计算节点以及数据提供方接入的数据源,如新加入、撤销、上下线等。
c) 应支持与用户交互创建任务,生成任务配置信息。
d) 应能将具体任务配置信息分发给数据提供方、计算方、结果使用方。
e) 应对多任务执行进行统一调度,包括任务排队、负载以及优先级调度等。
f) 应能监控、管理任务执行过程。
g) 应保存任务执行结果等。
h) 宜支持基于计算节点动态发现、任务动态分配。
i) 宜支持任务量动态变化。
7 安全要求
7.1 协议安全
7.1.1 基本安全要求
MPC协议基本安全要求如下:
a) 应保证除计算结果及其可推导出的信息之外,不泄漏各方隐私数据。
b) 应保证除异常终止外输出计算结果的正确性。
c) 宜保证协议的公平性,仅当诚实的参与方获得计算输出时,不诚实的参与方才能获得计算输出。
d) 宜保证输入数据的独立性,多个数据提供方在构建输入数据时相互独立。
7.1.2 安全模型和安全参数要求
在MPC应用中应根据相应的安全模型选择和管理各参与主体。MPC协议的安全模型和安全参数的具体
要求如下:
a) 应保证半诚实模型下 MPC协议的使用场景中相应参与方均为半诚实。
b) 应保证恶意攻击模型下 MPC协议的不诚实门限不小于实际应用场景中可能合谋的参与方数量。
c) 统计安全参数(l)应不低于 30。
d) 计算安全参数(k)应不低于 112。
7.2 隐私数据安全
MPC隐私数据安全的具体要求如下:
a) 应保证每个计算节点在整个计算过程中无法获取或推知其他参与方的任何隐私数据,最终输出
结果也不应出现在计算节点内,确保应用过程的隐私性。
b) 应保证计算过程中不出现其他参与方的隐私数据。
c) 应保证数据提供方的隐私数据不被其他参与方获取或推知,结果使用方从结果信息推导出的信
息除外。
d) 应保证计算结果只被结果使用方获取,而不会被其他参与方知晓,保障结果隐私性。
e) 应采取措施加强每个节点的隐私保护能力,不应因单点出现故障而泄露任何一方相关信息。
f) 应能将算法参数、模型参数作为隐私数据来保证算法和模型的安全。
MPC金融应用所涉及的其他数据应符合国家法律法规与行业主管部门有关规定要求。
7.3 认证授权
MPC认证授权的具体要求如下:
a) 应对任务计算过程中的关键环节进行身份认证,保证操作行为的合法性和抗抵赖性:
1)各参与方之间通信时应进行身份认证。
2)应具备对接入系统用户的身份鉴别能力。
3)应能对各参与方进行相应的权限设置和控制,避免出现信息泄露或操作风险。
4)宜采用两种或两种以上组合的认证方式实现用户身份认证。
b) 应对数据提供方的数据使用进行严格控制,数据使用方应被授权:
1)调度方应对未被授权的计算请求协调发起数据使用授权申请,申请内容应包含数据使用方
证书、数据使用范围、数据使用期限等。数据提供方同意后应向使用方发送授权,用于后
续计算时的权限认证。
2)调度方应对每个任务请求验证其数据使用授权的合法性,包括授权是否有效、数据使用范
围和使用期限是否合理等。
3)数据提供方应能取消数据使用授权。
7.4 密码安全
采用的密码算法、密钥长度及密钥管理方式等应符合国家密码管理部门与行业主管部门要求。
7.5 通信安全
MPC各参与方在信息传输时应保护传输通道与数据的安全,具体要求如下:
a) 各参与方之间进行通信时应建立安全通道,在通信节点建立连接之前应使用符合国家密码标准
的密钥交换技术以产生双方共享的认证密钥,并进行双向身份认证,确保通信节点为信息的真
实授权方。
b) 应使用符合国家密码标准的技术来建立安全通信通道,避免因传输协议受......
|