[发明专利]基于安全多方计算的键值对模型安全训练与推理方法有效
申请号: | 202110700523.7 | 申请日: | 2021-06-24 |
公开(公告)号: | CN113535808B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 韩伟力;吴豪奇;姜子丰;汪家璇 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F17/18;G06F21/62;G06K9/62 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 安全 多方 计算 键值 模型 训练 推理 方法 | ||
1.一种基于安全多方计算的键值对模型安全训练与推理方法,其特征在于,具体步骤为:
(1)对常用的两种非参数化键值对模型的训练和推理进行抽象,抽取并设计统一的键值对数据查询和计算原语;
(2)根据模型的训练和推理算法,设计更加高效的计算机制,并构建键值对模型的计算流图;
(3)结合键值对查询和计算原语,依据上述计算流图的拓扑排序结果进行驱动计算;
步骤(1)中所述进行安全训练和推理算法抽象的键值对模型,主要为决策树模型和基本数理模型:
(1)决策树模型:决策树模型是由决策点、策略点及结果构成的树形图,以最大收益期望值或最低期望成本作为决策准则,通过图解方式求解在不同条件下各类方案的效益值,然后通过比较,做出决策;对于一个已经训练好的决策树模型该模型的推理以数据x作为输入;根据决策树的结构,从根节点起,在当前节点上读取x指定属性fi对应的值vi以及结点对应一个阈值ti,并将两者进行比较;如果该值是连续的,则计算vi≤ti?0:1;如果该值为离散值,则计算vi==ti?1:0;根据比较结果,选择当前节点的相应子节点继续进行比较运算;重复这个过程直到到达决策树的某个叶子节点,该节点即对应决策树推理的输出结果;
(2)基本数理统计模型:
统计模型是指以概率论为基础,采用数学统计方法建立的模型;数理统计模型根据输入的键值对数据计算频率和均值等统计学变量;频率计算是具有特定键key的数据在所有键值对数据中的比例;均值计算中,对应特定键key的一组值vi,…,vn的平均值;公式如下:
其中,(k,v)代表键值对,D代表整个数据集合,freqj代表含有特定键值ki=j的数据在总数据集中的比例;meanj代表特定键值ki=j对应数值在数据集中的平均值;
该模型的训练首先由各方本地统计计算键值对数量,再将统计结果通过秘密共享协议进行加密并发送给其他参与方,各方将秘密共享形式对各方数据进行整合合并,对合并统计结果进行相应的密态计算,得到数理统计分析结果;
步骤(1)中所述根据对键值对模型抽象,抽取并设计统一的键值对数据查询和计算原语,该原语基于多项式秘密共享协议实现,使得参与方可以在不泄露、不获取他方隐私数据的情况下完成查询和计算的操作;在查询场景中,参与方可以在不知道明文查询属性的情况下,从所有的键值对集合中获取对应值;在计算场景中,参与方可以在不知道明文属性值的情况下,进行大小比较和常用数学运算,并得到相应,参与方不会从中间过程中获取任何关于初始值的信息;
抽取并设计统一的键值对数据查询和计算原语,具体如下:
(1)查询(GET)原语:
GET操作是键值对操作的基本原语:GET:其中,k是查询值对应的键,表示所有参与方的联合键值对集合;
考虑两种情况:1)请求的键是明文形式;2)请求的键是密文形式;
第一种情况下,直接通过P:获取对应值;
第二种情况下,使用SecGet协议:
给定密文键值对集合其中m表示键值对集合的大小,输入查询的键key,输出此键key对应的值val,满足其计算协议如下:
(1.1)对key进行独热编码,转换成一个m维的向量vector1*m,即key对应的下标处设为1,其它位置设为0;
(1.2)对此向量进行秘密共享加密,并发送给其他参与方[vector]←Encrypt(vector);
(1.3)计算的标量积,得到的加和结果即为val的秘密共享形式;
(2)计算原语:大小比较、加法和乘法:
针对上述查询得到的秘密共享形式的值,结合当前最新的秘密共享协议的优化,进行比较和线性计算;
对于比较运算,实现了LTZ和EQZ协议,通过判断两个值之差与0的大小关系,从而判断两个值之间的大小关系;
对于加法运算和常数乘法运算,由于多项式秘密共享的加性同态性质,该运算在每个参与方的本地完成;
对于乘法运算,核心部分有以下两个操作:根据BGW协议,进行降次操作;根据数据精度规范,进行截断操作;由Div2mP协议来完成这两个步骤,降次以及截去数据的末m位二进制位,即除以2m;
步骤(2)中所述利用以上抽象并统一设计的原语,构造键值对模型的计算流图,该计算流图表现为一个有向无环图,图上的每一个节点代表需要执行的操作,通过有向边连接节点,表示从输入开始的算法执行的流程;其中:
(1)构造决策树的计算流图:
首先从input节点以密文形式输入需要用于预测的数据;其次将密文形式的数据传入feature节点作为输入,得到此节点对应key的密文形式的value;之后将密文形式的value沿着决策树结构向下传递到对应的internal节点,internal节点将此value和密文形式的阈值进行比较决定之后的传递方向,通过反复地传递经过多组feature节点和internal节点并最终到达leaf节点,最后所有的leaf节点收束到一个res节点用于判别最终的类型值;
通过使用GET运算符和比较运算符实现在不知道明文的决策树每一个中间节点比较的属性值以及阈值的情况下,得到比较的结果;随后将比较的结果逐层传递,最终得到叶子节点中的输出值;
其中,提出一种预测模式,使得可以在不暴露明文输入数据的情况下遍历整个决策树,并且只有推理的结果是公开的,即从根节点到叶子节点的预测路径满足中间所有的内部节点的比较计算以及输入数据不能被参与方推测出来,同时决策树模型的参数也无法被推测;
针对决策树中的几种节点,使用如下的方案进行计算:
内部节点:对于每个内部节点,设计两种算子,一种是根据给出的键得到对应的值的特征节点(Opfeature),另一种是将输入值与阈值进行比较的中间节点(Opinternal);特征节点通过SecGet协议得到对应的以秘密共享形式加密的结果值,中间节点以秘密共享的形式执行节点定义的阈值和特征节点输出的值之间的比较计算,并输出0或者1,0代表不满足比较,1代表满足比较;即输入数据对应的预测路径上所有的中间节点的输出均为1;累积的测试结果存储在变量res中,表示目前是否位于输入数据的正确路径上;这里,分别使用等于0(EQZ)和小于0(LTZ)协议来处理不同的比较情况:连续值使用LTZ,离散值使用EQZ;
叶子节点:对于每个叶子节点,用Opleaf来实现f(res,C)→{C,0}的功能;该节点以累积的测试结果和分类标签作为输入,输出这个叶子节点是否在预测路径上,如果是,则输出当前叶子节点对应的类别标签,否则输出0;
结果节点:在决策树预测的最后,使用算子Opres将所有的叶子节点的输出进行加和从而获得分类预测结果C=C0*res1+C1*res2+C2*res3;
(2)构造基本数理统计的计算流图:
基本数理统计的计算流图有多个input节点,分别读取对应的密文形式的输入数据,通过一个addition节点进行密文形式的加和运算,并将结果传递到ConstDiv节点进行常数除法运算,得到最终的结果;
对于基本数理统计模型,使用加法和除法按照上述计算流图即可执行对应的计算流程;各方通过本地预计算的方式先对本地数据进行统计,在线阶段多方联合对局部统计的结果进行全局的合并,减少在线阶段的开销;
步骤(3)中所述结合键值对查询和计算原语,依据上述计算流图的拓扑排序结果进行驱动计算,是根据计算流图有向边的指向,对图上的节点进行拓扑排序,并按照拓扑排序的结果,按照递增的顺序逐个计算节点,直到输出最终的计算结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110700523.7/1.html,转载请声明来源钻瓜专利网。