通用密态数据安全计算方法技术

技术编号:38141056 阅读:9 留言:0更新日期:2023-07-08 09:55
本发明专利技术提供了一种通用密态数据安全计算方法,通过密态数据安全计算库中各种组件的组合可以将各种机器学习算法外包至云服务器进行隐私保护的计算,在保护数据隐私和模型安全的同时,提高机器学习算法的外包计算效率和计算精度。本发明专利技术的通用密态数据安全计算库中各个组件基于各自的协议完成计算过程,这些协议均为隐私保护外包计算协议,在确保机器学习算法精度和计算高效性等前提下,可以实现半诚实威胁模型下的可证明安全,即用户和模型所有者的任何隐私信息都不会泄露给云服务器。此外,通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数,可以提高运算的效率。算的效率。算的效率。

【技术实现步骤摘要】
通用密态数据安全计算方法


[0001]本专利技术属于网络安全
,具体涉及一种通用密态数据安全计算方法。

技术介绍

[0002]机器学习在各领域的应用取得巨大成功,例如深度神经网络被广泛应用于风险评估、语音识别、图像分类以及自动驾驶等领域。但是,机器学习需要消耗大量存储和计算资源,用户由于数据匮乏、计算资源受限等原因难以在本地完成机器学习相关的计算任务。因此,越来越多的用户将数据和机器学习任务外包至云服务器,由云服务器将机器学习算法作为一种外包服务提供给普通用户,给用户带来了极大便利。然而,用户数据可能包含医疗记录、地理信息、金融信息等敏感信息,而将数据外包给云服务器则剥夺了用户对数据的控制权。这种云外包提供服务的方式使得用户的隐私信息得不到有效的保护,严重阻碍了云计算技术的推广。
[0003]密态数据安全计算技术为解决上述问题提供了可行途径。常见的密态数据安全计算方案的工作流程为用户将数据先加密再上传至云服务器,然后云服务器在密态数据上执行指定的机器学习外包计算任务。现有面向机器学习的密态数据安全计算方案主要包括以下几种:
[0004](1)基于全同态加密的机器学习密态数据安全计算方案
[0005]同态加密(Homomorphic Encryption,HE)的基本思想为对密态数据进行某种特定的代数运算可以等价于对明文进行相同的代数运算。同态加密按照功能性进行划分主要包括两大类:全同态加密(Fully Homomorphic Encryption,FHE)和部分同态加密(Partially Homomorphic Encryption,PHE)。文章“Cryptonets:Applying neural networks to encrypted data with high throughput and accuracy”翻译为Cryptonets:高吞吐量、高准确率的密态数据神经网络计算,是典型的基于全同态加密的机器学习密态数据安全计算方案。其中的关键技术为CryptoNets用多项式激活替换了ReLU激活,解决了FHE无法处理神经网络中常见的非多项式激活的问题。
[0006](2)基于安全多方计算的机器学习密态数据安全计算方案
[0007]安全多方计算(Secure Multi

Party Computation,SMC)用于解决一组互不信任的计算参与方各自持有秘密分享数据,协同计算一个既定函数的问题。混淆电路(Garbled Circuits,GC)是一种通用的安全多方计算工具,将安全计算函数编译成布尔电路的形式,并将相应的真值表加密打乱,然后结合不经意传输(Oblivious Transfer,OT)协议在两个计算参与方之间运行混淆电路协议,最后在不泄露计算参与方的私有信息前提下输出正确结果。此后,研究者们将上述混淆电路与秘密分享技术进行结合,陆续提出了BGW、SPDZ、ABY等通用的混合式安全多方计算框架,逐步将安全多方计算的效率提升到了实用级别。文章“SecureML:A system for scalable privacy preserving machine learning”翻译为SecureML:可扩展的隐私保护机器学习系统,是典型的基于安全多方计算的机器学习密态数据安全计算方案。SecureML使用基于安全两方计算的混合式协议来评估神经网络,并引
入对安全两方计算更加友好的激活函数来提高计算的效率和准确性。
[0008](3)基于可信硬件的机器学习密态数据安全计算方案
[0009]可信执行环境(Trusted Execution Environments,TEE)是位于主处理器里的一个安全区域,该环境可以保证完成不被常规操作系统干扰的计算。TEE通过创建一个在TrustZone中独立运行的安全操作系统实现对外围硬件资源的硬件级别的保护和安全隔离。文章“DarkneTZ:towards model privacy at the edge using trusted execution environments”翻译为DarkneTZ:使用可信执行环境在边缘设备实现模型隐私保护。DarkneTZ架构使用具有TEE的边缘设备结合模型划分来限制针对深度神经网络的隐私推理攻击。具体设计是:将深度神经网络划分为两个部分,分别部署到边缘设备的一般执行环境和TEE中。其中模型的第1至L层在一般执行环境中运行(推理或微调),而L+1至输出层在TEE中运行。这种部署规则是因为模型的最后几层包含更多的隐私信息,在TEE的保护下,该架构可以抵御多种隐私推断攻击。
[0010]上述方案存在以下缺陷:
[0011](1)全同态加密协议的开销非常大,基于全同态加密的机器学习密态数据安全计算方案通常需要几十分钟才能实现安全推理,不适合资源受限的设备。CryptoNets等方案虽然使用了多项式拟合的方法来近似计算激活函数,提高了计算效率,但是相应也降低了模型的推理准确性,使得该系统只适用于小型神经网络,无法应用在实际的大规模神经网络模型当中。(2)基于安全多方计算的方案虽然拥有较小的计算开销,但是大多数方案所使用的不经意传输协议仍然具有很高的通信开销,其计算效率依赖于部署环境的网络传输速度。对于非线性函数计算,目前较为先进的基于安全多方计算方案Delphi仍然要使用大量的混淆电路来进行评估,使得计算效率低下,难以满足大规模神经网络模型的计算需求。(3)基于可信硬件的机器学习密态数据安全计算方案的安全性依赖于可信硬件供应商,并且近年来有大量研究工作证明了这些可信硬件存在严重的安全漏洞,容易遭受侧信道攻击从而泄露隐私。

技术实现思路

[0012]为了解决现有技术中存在的上述问题,本专利技术提供了一种通用密态数据安全计算方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0013]本专利技术提供了一种通用密态数据安全计算方法,应用于两个服务器包括:
[0014]步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;
[0015]步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;
[0016]步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;
[0017]步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标
组件的运行结果;
[0018]步骤5,将所述运行结果发送至服务评估方。
[0019]本专利技术提供了一种通用密态数据安全计算方法,通过通用密态数据安全计算库本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通用密态数据安全计算方法,应用于两个服务器,其特征在于,包括:步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标组件的运行结果;步骤5,将所述运行结果发送至服务评估方。2.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述模型信息以及评估数据均通过加法秘密分享的方式发送给服务器;其中每个服务器所接收的模型数据份额之和为全部的模型信息,以及评估数据份额之和为全部评估数据;其中,模型信息包括模型的内部参数、各层之间的连接关系以及模型结构。3.根据权利要求2所述的通用密态数据安全计算方法,其特征在于,所述步骤2中的通用密态数据安全计算库包括:辅助参数生成组件,用于生成辅助参数,得到辅助参数的加法秘密分享;安全基础操作组件,用于在服务器各自的份额数据上执行乘法和加法操作,得到乘法和加法操作结果的加法秘密分享;安全最高有效位求解组件,用于在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;安全比较组件,用于比较服务器内不同份额数据的大小,得到比较结果的加法秘密分享;安全正弦函数计算组件,用于计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;安全ReLU函数计算组件,用于计算服务器内每个份额数据的ReLU函数,得到ReLU函数的计算结果的加法秘密分享;安全Sigmoid函数计算组件,用于计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数的计算结果的加法秘密分享;安全Tanh函数计算组件,用于计算服务器内每个份额数据的Tanh函数,得到Tanh函数的计算结果的加法秘密分享;安全最大池化函数计算组件,用于计算服务器内每个份额数据的最大池化函数,得到最大池化函数的计算结果的加法秘密分享。4.根据权利要求3所述的通用密态数据安全计算方法,其特征在于,所述步骤2中的通用密态数据安全计算库还包括:安全卷积计算组件,用于对服务器内每个份额数据利用秘密分享的卷积核进行卷积,
得到卷积结果的加法秘密分享;安全全连接计算组件,用于对服务器内每个份额数据与秘密分享的权重点乘,得到全连接计算结果的加法秘密分享。5.根据权利要求3所述的通用密态数据安全计算方法,其特征在于,当所述辅助参数生成组件基于辅助参数生成协议生成多种运算方式的辅助参数,得到多种运算方式的辅助参数的加法秘密分享;所述辅助参数生成协议的具体步骤包括:二进制n元与运算辅助参数生成:(1)根据参与运算的秘密分享<x>0和<x>1所在环的大小,确定生成任一n元与运算辅助参数的个数;(2)利用同态加密方式生成对应个数的n元与运算的第一辅助参数;十进制乘法辅助参数生成:利用同态加密方式生成用于辅助计算两个十进制数乘法的第二辅助参数;十进制n元乘法运算辅助参数生成:利用同态加密方式生成用于辅助计算n个十进制数连续乘法的第三辅助参数。6.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述步骤3包括:步骤31,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为所有需要辅助参数的目标组件一次生成其所需的辅助参数;步骤32,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为需要辅助参数的部分目标组件生成所需的辅助参数直至主进程的共享内存无剩余空间;如果目标组件运行时调用所述共享内存中的辅助参数使得共享内存有所剩余,则辅助进程将持续生成辅助参数存储至所述共享内存直至所述共享内存无剩余空间。7.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,安全最高有效位求解组件,基于安全最高有效位提取协议在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;所述安全最高有效位提取协议的具体步骤包括:(1)参与最高有效位提取协议的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1分别将秘密分享<x>0和<x>1转化为二进制比特串<x>0={[x
l
]0,[x
l
‑1]0,......,[x1]0}和<x>1={[x
l
]1,[x
l
‑1]1,......,[x1]1},其中括号外的下标0和1为区分服务器S0和服务器S1的数据,中括号内x的下标{l,l

1,...,l}表示二进制比特串中对应位置的比特;(2)服务器S0生成新的比特串<x

>0={[x
l
‑1′
]0,[x
l
‑2′
]0,...,[x1′
]0},<x

>0={[x
l
‑1″
]0,[x
l
‑2″
]0,...,[x1″
]0},其中括号内x的上标



用于区分两个新的比特串;对于j=1,2,......,l

1,使其对应的比特位[x

j
]0=[x
j
]0,[x

j
]0=0;服务器S1生成新的比特串<x

>1={[x
l
‑1′
]1,[x
l
‑2′
]1,...,[x1′
]1},<x

>1={[x
l
‑1″
]1,[x
l
‑2″
]1,...,[x1″
]1},对于j=1,2,......,l

1,使其对应的比特位[x

j
]1=0,[x

j
]1=[x
j
]1;(3)服务器S0和服务器S1各自调用第一辅助参数计算第0层的信号元组{<G0>,<P0>},括号内G和P的上标表示信号元组所在层;<G0>和<P0>的比特串形式分别为<G0>={[G
l

10
],
[G
l

20
],[G
l

30
],...,[G
10
]}、<P0>={[P
l

10
],[P
l

20
],[P
l

30
],...,[P
10
]};对于j=1,2,......,l

1,对应比特位的计算为[G
j0
]=[x
j
]0·
[x
j
]1,服务器S0持有<G0>0和<P0>0,服务器S1持有<G0>1和<P0>1;(4)对于j=1,2,......,l

1,服务器S0和服务器S1从二进制n元与运算辅助参数中取出l

1组二进制2元与运算辅助参数,服务器S0获取{[a
1j
]0,[a
2j
]0,{[a
Ij
]0(I∈{1,2})}},服务器s1获取{[a
1j
]1,[a
2j
]1,{[a
Ij
]1(I∈{1,2})}},其中括号内a的上标j用于区分l

1组不同的辅助参数;(5)服务器S0计算并将其发送给S1;服务器S1计算并将其发送给S0;(6)服务器S0和服务器S1均在本地重构得到随后,服务器S0计算服务器S1计算服务器S0设服务器S1设服务器S0持有<G0>0和<P0>0,服务器S1持有<G0>1和<P0>1;(7)服务器S0和服务器S1各自构造第0层的l

1个叶子结点,从左到右依次为node
l

10
,node
l

20
,...,node
10
,其中上标表示节点所在的层,下标为区分同层不同的节点;对于j=1,2,......,l

1,服务器S0和服务器S1将比特信号元组{[G
j0
],[P
j0
]}分配给对应的叶子节点node
j0
;(8)服务器S0和服务器S1各自由第0层节点生成第一层节点,生成规则为:将第0层节点从左到右按优先级从大到小为4/3/2/1个节点一组的方式分组,为每个分组生成一个父节点,组成第一层节点;设第一层节点的数量为n,从左到右分别为node
n1
,node
n

11
,...,node
11
;对于j=1,2,......,n,服务器S0和服务器S1均为第一层的节点node
j1
分配一组空的比特信号元组{[G
j1
],[P
j1
]};服务器S0和服务器S1按照以上生成规则依次由第一层生成第二层,第二层生成第三层,直到第h层只存在一个节点node
1h
为止,node
1h
节点为根节点,此时服务器S0和服务器S1得到了整个计算的树型结构;(9)服务器S0和服务器S1均根据树型结构从第一层开始依次为后续层的比特信号元组赋值,直到根节点node
1h
的空比特信号元组{[G
1h
],[P
1h
]}被赋值为止,在赋值过程中同一层节点的赋值计算并行运行,赋值计算的规则为:若当前父节点拥有t个子节点,从左到右依次为node
t
,node
t
‑1,...,node1,下标用于区分当前父节点的不同子节点,并且子节点分别有赋值的比特信号元组{[G
t
],[P
t
]},{[G
t
‑1],[P
t
‑1]},...,{[G1],[P1]},括号内部的下标表示此信号元组被赋予拥有相应下标的节点,则父节点的比特信号元组{[G],[P]}由如下公式计算:P=P
t
·
P
t
‑1·
...
·
P1,计算过程由第一辅助参数辅助完成;(10)通过(1)至(9)服务器S0和服务器S1能够以并行计算的方式为每一层的比特信号元
组赋值,最终服务器S0计算服务器S1计算得到最高有效位MSB的布尔秘密分享;其中,[MSB]0为服务器S0持有的最高有效位MSB的布尔秘密分享,[MSB]1为服务器S1持有的最高有效位MSB的布尔秘密分享。8.根据权利要求7所述的通用密态数据安全计算方法,其特征在于,安全比较组件,基于安全比较协议针对份额数据进行比较操作,得到比较结果的加法秘密分享;所述安全比较协议具体步骤包括:(1)参与比较的数分别为和服务器S0持有<x
A
>0,<x
B
>0,服务器S1持有<x
A
>1和<x
B
>1,其中括号内x的上标用于区分不同的输入数值;服务器S0和服务器S1通过计算得到两个数差值的秘密分享<x
A

x
B
>;(2)服务器S0和服务器S1各自调用最高有效位提取组件得到x
A

x
B
最高有效位的布尔分享[MSB
cp
],其中所有数值的下标cp均表示此数值仅作用于比较协议当中;(3)服务器S0设<A
cp
>0=[MSB
cp
]0,<b
cp
>0=0,服务器S1设<A
cp
>1=0,<b
cp
>1=[MSB
cp
]1;(4)服务器S0和服务器S1各自计算比较结果的秘密分享<y
cp
>=<a
cp
>+<b
cp
>

2<a
cp
>
·
<b
cp
>,计算过程由第二辅助参数辅助完成;服务器S0持有<y
cp
>0,服务器S1持有<y
cp
>1;其中,<y
cp
>0为服务器S0持有的比较结果<y
cp
>的加法秘密分享,<y
cp
>1为服务器S1持有的比较结果<y
cp
>的加法秘密分享。9.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,安全正弦函数计算组件,基于安全正弦函数计算协议计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;所述安全正弦函数计算协议具体步骤包括:(1)参与正弦函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1从十进制乘法辅助参数中取出一组{a,b,c};(2)服务器S0计算<u
sin
>0=sin(<x>0)

a0,<e
cos
>0=cos(<x>0)

b0,服务器S1计算<u
sin
>1=sin(<x>1)

A1,<e
cos
>1=cos(<x>1)

b1;其中括号内e和u的上标sin和上标cos分别表示正弦函数和余弦函数的计算中间值;...

【专利技术属性】
技术研发人员:沈玉龙程珂张志为祝幸辉刘新付家瑄宋安霄
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1