CN116388954A - 通用密态数据安全计算方法 - Google Patents
通用密态数据安全计算方法 Download PDFInfo
- Publication number
- CN116388954A CN116388954A CN202310159080.4A CN202310159080A CN116388954A CN 116388954 A CN116388954 A CN 116388954A CN 202310159080 A CN202310159080 A CN 202310159080A CN 116388954 A CN116388954 A CN 116388954A
- Authority
- CN
- China
- Prior art keywords
- server
- hold
- calculation
- component
- msb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 claims abstract description 114
- 230000008569 process Effects 0.000 claims abstract description 61
- 230000006870 function Effects 0.000 claims description 153
- 238000011176 pooling Methods 0.000 claims description 36
- 238000000605 extraction Methods 0.000 claims description 17
- 239000000654 additive Substances 0.000 claims description 12
- 230000000996 additive effect Effects 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000012821 model calculation Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 3
- 230000004069 differentiation Effects 0.000 claims description 2
- 238000010801 machine learning Methods 0.000 abstract description 22
- 238000004422 calculation algorithm Methods 0.000 abstract description 19
- 238000012946 outsourcing Methods 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 238000002474 experimental method Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000013175 transesophageal echocardiography Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- SLXKOJJOQWFEFD-UHFFFAOYSA-N 6-aminohexanoic acid Chemical compound NCCCCCC(O)=O SLXKOJJOQWFEFD-UHFFFAOYSA-N 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000499489 Castor canadensis Species 0.000 description 2
- 235000011779 Menyanthes trifoliata Nutrition 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 101150043283 ccdA gene Proteins 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种通用密态数据安全计算方法,通过密态数据安全计算库中各种组件的组合可以将各种机器学习算法外包至云服务器进行隐私保护的计算,在保护数据隐私和模型安全的同时,提高机器学习算法的外包计算效率和计算精度。本发明的通用密态数据安全计算库中各个组件基于各自的协议完成计算过程,这些协议均为隐私保护外包计算协议,在确保机器学习算法精度和计算高效性等前提下,可以实现半诚实威胁模型下的可证明安全,即用户和模型所有者的任何隐私信息都不会泄露给云服务器。此外,通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数,可以提高运算的效率。
Description
技术领域
本发明属于网络安全技术领域,具体涉及一种通用密态数据安全计算方法。
背景技术
机器学习在各领域的应用取得巨大成功,例如深度神经网络被广泛应用于风险评估、语音识别、图像分类以及自动驾驶等领域。但是,机器学习需要消耗大量存储和计算资源,用户由于数据匮乏、计算资源受限等原因难以在本地完成机器学习相关的计算任务。因此,越来越多的用户将数据和机器学习任务外包至云服务器,由云服务器将机器学习算法作为一种外包服务提供给普通用户,给用户带来了极大便利。然而,用户数据可能包含医疗记录、地理信息、金融信息等敏感信息,而将数据外包给云服务器则剥夺了用户对数据的控制权。这种云外包提供服务的方式使得用户的隐私信息得不到有效的保护,严重阻碍了云计算技术的推广。
密态数据安全计算技术为解决上述问题提供了可行途径。常见的密态数据安全计算方案的工作流程为用户将数据先加密再上传至云服务器,然后云服务器在密态数据上执行指定的机器学习外包计算任务。现有面向机器学习的密态数据安全计算方案主要包括以下几种:
(1)基于全同态加密的机器学习密态数据安全计算方案
同态加密(Homomorphic Encryption,HE)的基本思想为对密态数据进行某种特定的代数运算可以等价于对明文进行相同的代数运算。同态加密按照功能性进行划分主要包括两大类:全同态加密(Fully Homomorphic Encryption,FHE)和部分同态加密(PartiallyHomomorphic Encryption,PHE)。文章“Cryptonets:Applying neural networks toencrypted data with high throughput and accuracy”翻译为Cryptonets:高吞吐量、高准确率的密态数据神经网络计算,是典型的基于全同态加密的机器学习密态数据安全计算方案。其中的关键技术为CryptoNets用多项式激活替换了ReLU激活,解决了FHE无法处理神经网络中常见的非多项式激活的问题。
(2)基于安全多方计算的机器学习密态数据安全计算方案
安全多方计算(Secure Multi-Party Computation,SMC)用于解决一组互不信任的计算参与方各自持有秘密分享数据,协同计算一个既定函数的问题。混淆电路(GarbledCircuits,GC)是一种通用的安全多方计算工具,将安全计算函数编译成布尔电路的形式,并将相应的真值表加密打乱,然后结合不经意传输(Oblivious Transfer,OT)协议在两个计算参与方之间运行混淆电路协议,最后在不泄露计算参与方的私有信息前提下输出正确结果。此后,研究者们将上述混淆电路与秘密分享技术进行结合,陆续提出了BGW、SPDZ、ABY等通用的混合式安全多方计算框架,逐步将安全多方计算的效率提升到了实用级别。文章“SecureML:A system for scalable privacy preserving machine learning”翻译为SecureML:可扩展的隐私保护机器学习系统,是典型的基于安全多方计算的机器学习密态数据安全计算方案。SecureML使用基于安全两方计算的混合式协议来评估神经网络,并引入对安全两方计算更加友好的激活函数来提高计算的效率和准确性。
(3)基于可信硬件的机器学习密态数据安全计算方案
可信执行环境(Trusted Execution Environments,TEE)是位于主处理器里的一个安全区域,该环境可以保证完成不被常规操作系统干扰的计算。TEE通过创建一个在TrustZone中独立运行的安全操作系统实现对外围硬件资源的硬件级别的保护和安全隔离。文章“DarkneTZ:towards model privacy at the edge using trusted executionenvironments”翻译为DarkneTZ:使用可信执行环境在边缘设备实现模型隐私保护。DarkneTZ架构使用具有TEE的边缘设备结合模型划分来限制针对深度神经网络的隐私推理攻击。具体设计是:将深度神经网络划分为两个部分,分别部署到边缘设备的一般执行环境和TEE中。其中模型的第1至L层在一般执行环境中运行(推理或微调),而L+1至输出层在TEE中运行。这种部署规则是因为模型的最后几层包含更多的隐私信息,在TEE的保护下,该架构可以抵御多种隐私推断攻击。
上述方案存在以下缺陷:
(1)全同态加密协议的开销非常大,基于全同态加密的机器学习密态数据安全计算方案通常需要几十分钟才能实现安全推理,不适合资源受限的设备。CryptoNets等方案虽然使用了多项式拟合的方法来近似计算激活函数,提高了计算效率,但是相应也降低了模型的推理准确性,使得该系统只适用于小型神经网络,无法应用在实际的大规模神经网络模型当中。(2)基于安全多方计算的方案虽然拥有较小的计算开销,但是大多数方案所使用的不经意传输协议仍然具有很高的通信开销,其计算效率依赖于部署环境的网络传输速度。对于非线性函数计算,目前较为先进的基于安全多方计算方案Delphi仍然要使用大量的混淆电路来进行评估,使得计算效率低下,难以满足大规模神经网络模型的计算需求。(3)基于可信硬件的机器学习密态数据安全计算方案的安全性依赖于可信硬件供应商,并且近年来有大量研究工作证明了这些可信硬件存在严重的安全漏洞,容易遭受侧信道攻击从而泄露隐私。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种通用密态数据安全计算方法。本发明要解决的技术问题通过以下技术方案实现:
本发明提供了一种通用密态数据安全计算方法,应用于两个服务器包括:
步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;
步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;
步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;
步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标组件的运行结果;
步骤5,将所述运行结果发送至服务评估方。
本发明提供了一种通用密态数据安全计算方法,通过通用密态数据安全计算库中各种组件的组合可以将各种机器学习算法外包至云服务器进行隐私保护的计算,在保护数据隐私和模型安全的同时,提高机器学习算法的外包计算效率和计算精度。本发明的通用密态数据安全计算库中各个组件基于各自的协议完成计算过程,这些协议均为隐私保护外包计算协议,在确保机器学习算法精度和计算高效性等前提下,可以实现半诚实威胁模型下的可证明安全,即用户和模型所有者的任何隐私信息都不会泄露给云服务器。此外,通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数,可以提高运算的效率。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明提供的一种通用密态数据安全计算方法的流程示意图;
图2是本发明实验中Model-1和Model-2调用不同组件的说明示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
本发明中,被加法秘密分享的数值用符号<·>表示,被布尔秘密分享的数值用符号[·]表示。
实施例一
本发明提供了一种通用密态数据安全计算方法,应用于两个服务器,如图1所示,本发明的一种通用密态数据安全计算方法包括:
步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;
步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;
所述模型信息以及评估数据均通过加法秘密分享的方式发送给服务器;其中每个服务器所接收的模型数据份额之和为全部的模型信息,以及评估数据份额之和为全部评估数据;模型信息包括模型的内部参数、各层之间的连接关系以及模型结构。
步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;
步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标组件的运行结果;
步骤5,将所述运行结果发送至服务评估方。
本发明根据用户输入的网络模型和模型参数,构建出在明文上的神经网络模型,为参与方,即两个服务器S0,S1分别构建一个空的密态数据上的神经网络模型,然后将所述的网络模型输入到自动部署的方法中。通过判断明文上神经网络结构,将其每一层首先加入到参与方S0,S1的网络模型中,并且提取该层的相关参数进行处理。
以卷积层的权重weight为例,首先将提取出来的参数由浮点数转变为定点数,并且在此系统中保留的小数的位数为l。因此首先让weight'=weight·2l将浮点数转化为整数,其中weight的上标'用于表示定点数。然后将整数化后的参数进行加法秘密分享,服务器S0得到weight'0,服务器S1得到weight'1。神经网络的不同层所提取参数如下所示:
卷积层(Conv2d):权重(weight)、偏置(bias)
最大池化层(MaxPool2D):池化核大小(kernel_size)、步长(stride)
平均池化层(AvgPool2D):池化核大小(kernel_size)、步长(stride)
线性层(Linear):权重(weight)、偏置(bias)
批标准池化层(BatchNormalization):gamma、beta
ReLU层:无。
将明文中全部网络结构加入到服务器S0,S1的神经网络模型后,需要进行推理的数据传入到服务器S0,S1的网络结构中,即可得到推理后的结果,然后发送给服务评估方。
实施例二
在一种具体的实施例中,所述步骤2中的通用密态数据安全计算库包括:
辅助参数生成组件,用于生成辅助参数,得到辅助参数的加法秘密分享;
安全基础操作组件,用于在服务器各自的份额数据上执行乘法和加法操作,得到乘法和加法操作结果的加法秘密分享;
安全基础组件操作过程中涉及到以下算法:
(1)加法秘密分享算法
秘密发布者O将待分享的秘密值x随机分成2份分享份额<x>0,<x>1,所述2份分享份额<x>0,<x>1满足:x=<x>0+<x>1。所述秘密发布者O将所述2份分享份额<x>0,<x>1分别发送给对应的两个服务器S0,S1。
(2)加法秘密分享重构算法
服务器S0,S1分别将各自持有的分享份额<x>0,<x>1发送给另一方服务器或者秘密发布者O,随后两方服务器或者秘密发布者O执行x=<x>0+<x>1恢复秘密值x。
(3)安全加法算法
安全加法算法的目标函数是f(x,y)=x+y。每个服务器Si(i=0,1)分别在本地执行<f>i=<x>i+<y>i(i=0,1),期间两个服务器无需交互任何变量,并且每个服务器Si分别输出<f>i。显然,可以从安全计算的两方获取f(x,y)=<f>0+<f>1。除此以外,如果安全加法算法的计算目标为f(x,c)=x+c且c为一个公开常数时,每个服务器Si分别在本地执行<f>i=<x>i+i×c并且分别输出<f>i即可完成,该操作记为:<x+c>i。
(4)安全乘法算法
安全乘法算法的目标为在不泄露隐私的条件下及计算f(x,y)=x×y。该算法中首先采用本发明的辅助参数生成组件生成十进制乘法所需的第二辅助参数a=<a>0+<a>1,b=<b>0+<b>1,c=a×b=<c>0+<c>1。其次,服务器Si分别生成具有隐私保护的掩码:<u>i=<x>i-<a>i,<e>i=<y>i-<b>i。再次,两个服务器执行加性秘密分享重构算法,恢复秘密u=<u>0+<u>1和e=<e>0+<e>1。最后每个服务器计算并输出:<f>i=i×e×u+e×<a>i+u×<b>i+<c>i,该操记为<xy>i。如果计算目标为f(x,c)=cx且c为一个公开常数时,每个服务器Si分别在本地执行<f>i=c<x>i并且分别输出<f>i,该操作记为:<cx>i。
安全最高有效位求解组件,用于在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;
安全比较组件,用于比较服务器内不同份额数据的大小,得到比较结果的加法秘密分享;
安全正弦函数计算组件,用于计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
安全ReLU函数计算组件,用于计算服务器内每个份额数据的ReLU函数,得到ReLU函数的计算结果的加法秘密分享;
安全Sigmoid函数计算组件,用于计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数的计算结果的加法秘密分享;
安全Tanh函数计算组件,用于计算服务器内每个份额数据的Tanh函数,得到Tanh函数的计算结果的加法秘密分享;
安全最大池化函数计算组件,用于计算服务器内每个份额数据的最大池化函数,得到最大池化函数的计算结果的加法秘密分享。
实施例三
在一种具体的实施例中,所述步骤2中的通用密态数据安全计算库还包括:
安全卷积计算组件,用于对服务器内每个份额数据利用秘密分享的卷积核进行卷积,得到卷积结果的加法秘密分享;
安全全连接计算组件,用于对服务器内每个份额数据与秘密分享的权重点乘,得到全连接计算结果的加法秘密分享。
值得注意的是,全连接层和卷积层是神经网络中最常见的单元,本质上执行矩阵乘法运算。神经网络中每个神经元的目标函数可以表示为:
所述安全的全连接计算组件的计算具体步骤如下:
步骤一:参与安全的全连接操作的张量有输入张量权重张量/>和阈值张量<bias>linear。其中,服务器S0拥有加法秘密分享的输入张量/>加法秘密分享的权重张量/>加法秘密分享的阈值张量<bias>0 linear,服务器S1拥有加法秘密分享的输入张量/>加法秘密分享的权重张量/>加法秘密分享的阈值张量<bias>1 linear,其中→表示矩阵符号,括号外所有数值的上标linear均表示此数值仅作用于安全的全连接组件当中。
步骤三:服务器S0调用基础安全加法组件服务器S1调用基础安全加法组件/>其中,服务器S0持有<y>0 linear,服务器S1持有<y>1 linear,<y>0 linear为服务器S0持有的全连接组件计算结果<y>linear的加法秘密分享,<y>1 linear为服务器S1持有的全连接组件计算结果<y>linear的加法秘密分享。
所述安全的卷积组件的卷积具体步骤如下:
步骤一:参与安全的全连接操作的张量有输入张量和权重张量/>服务器S0拥有加法秘密分享的输入张量/>服务器S1拥有加法秘密分享的输入矩阵/>其中→表示矩阵符号,括号外所有数值的上标conv均表示此数值仅作用于安全的卷积组件当中。
步骤二:服务器S0在本地采用img2col技术将转换为一个矩阵/>服务器S1在本地采用img2col技术将/>转换为一个矩阵/>所述img2col技术的展开方法是将每一个输入特征子矩阵展开成一行,生成新的输入特征矩阵,其行数和输入特征子矩阵的个数相同。同时将卷积核中的权重矩阵展开成一列,多个权重矩阵可以排列成多列。
实施例四
在一种具体的实施例中,当所述辅助参数生成组件基于辅助参数生成协议生成多种运算方式的辅助参数,得到多种运算方式的辅助参数的加法秘密分享;
所述辅助参数生成协议的具体步骤包括:
下面说明二进制n元与运算辅助参数的生成过程。
对于给定的正整数n,令Β={0,1}作为随机数生成的空间。令S为一类集合I的集合,其中并且|I|≥1。令ANDi∈I(ai)和XORi∈I(ai)表示所有布尔数ai(i∈I)的连续与运算和异或运算。在线性同态加密中,被服务器S0和服务器S1的公钥加密的数据x分别用和/>表示,服务器S0和服务器S1的私钥分别用s0和s1表示。
上述过程中生成的秘密分享组合{[a1],[a2],...,[an],{[aI](I∈S)}}即为二进制n元与运算辅助参数,也称为第一辅助参数。
S12,十进制乘法辅助参数生成:利用同态加密方式生成用于辅助计算两个十进制数乘法的第二辅助参数;
下面说明十进制乘法辅助参数的生成过程。
使用同态加密生成十进制乘法辅助参数{a,b,c}。对于同态加密,本发明使用Paillier密码系统,具体生成辅助参数的过程如算法1所示。最终服务器S0将得到的{a0,b0,c0}放入到共享内存中的三个队列中,服务器S1将得到的{a1,b1,c1}放入到共享内存中的三个队列中。
使用不经意传输(OT)生成十进制乘法辅助参数。为了生成十进制乘法辅助参数{a,b,c},根据关系a·b=(a0+a1)·(b0+b1)=a0b0+a0b1+a1b0+a1b1,S0随机生成同时S1随机生成/>关系中的a0b0和a1b1可以分别由S0和S1在本地计算。混合项a0b1和a1b0的计算如下:在本发明中只详细说明a0b1的计算,因为a1b0的计算为a0b1的对称计算。需要注意的是,如果由一方得到明文上a0b1的结果那么将会泄露数据隐私,因此应该安全计算u=a0b1,使得S0持有u0,S1持有u1。服务器S0、S1共同参与协议/>其中S0为发送者,S1为接收者。在第i轮C-OT中,S1输入b1[i]作为选择比特,S0输入相关函数第i轮C-OT的输出为:S0得到/>其中S1得到/>随后S0使/>S1使/>与上述步骤相同,S0和S1可以共同计算v=a1b0。最终,Si(i=0,1)计算得到ci=aibi+ui+vi。上述过程中生成的秘密分享组合{a,b,c}即为十进制乘法辅助参数,也称为第二辅助参数。
S13,十进制n元乘法运算辅助参数生成:利用同态加密方式生成用于辅助计算n个十进制数连续乘法的第三辅助参数。
下面说明十进制n元乘法运算辅助参数的生成过程。
对于给定的正整数n,令作为随机数生成的空间。令S为一类集合I的集合,其中并且|I|≥1。令/>和/>表示所有数ai(i∈I)的连续乘法和加法运算。在线性同态加密中,被服务器S0和服务器S1的公钥加密的数据x分别用/>和/>表示,服务器S0和服务器S1的私钥分别用s0和s1表示。
上述过程中生成的秘密分享组合{<a1>,<a2>,...,<an>,{<aI>(I∈S)}}即为十进制n元与运算辅助参数,也称为第三辅助参数。
实施例五
在一种具体的实施例中,所述步骤3包括:
步骤31,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为所有需要辅助参数的目标组件一次生成其所需的辅助参数;
步骤32,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为需要辅助参数的部分目标组件生成所需的辅助参数直至主进程的共享内存无剩余空间;
如果目标组件运行时调用所述共享内存中的辅助参数使得共享内存有所剩余,则辅助进程将持续生成辅助参数存储至所述共享内存直至所述共享内存无剩余空间。
服务器S0,S1首先在主线程之外开启另一个子线程,在子线程中使用共享内存的方法初始化三个队列,用于保存辅助参数份额。
一般来说,进程被限制只能访问属于自己进程空间的内存,但是共享内存允许跨进程共享数据,从而避免通过进程间发送消息的形式传递数据。相比通过磁盘、套接字或者其他要求序列化、反序列化和复制数据的共享形式,直接通过内存共享数据拥有更出色性能。共享内存可以在内存中开辟一块带有名称的内存空间用于保存数据,每个共享内存块都被指定了一个全局唯一的名称。通过这种方式,进程可以使用一个特定的名字创建共享内存区块,然后其他进程使用同样的名字连接到这个共享内存块。
实施例六
在一种具体的实施例中,安全最高有效位求解组件,基于安全最高有效位提取协议在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;
所述安全最高有效位提取协议的具体步骤包括:
(1)参与最高有效位提取协议的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1分别将秘密分享<x>0和<x>1转化为二进制比特串<x>0={[xl]0,[xl-1]0,......,[x1]0}和<x>1={[xl]1,[xl-1]1,......,[x1]1},其中括号外的下标0和1为区分服务器S0和服务器S1的数据,中括号内x的下标{l,l-1,...,1}表示二进制比特串中对应位置的比特;
(2)服务器S0生成新的比特串<x′>0={[xl-1′]0,[xl-2′]0,...,[x1′]0},<x″>0={[xl-1″]0,[xl-2″]0,...,[x1″]0},其中括号内x的上标'和”用于区分两个新的比特串;对于j=1,2,......,l-1,使其对应的比特位[x′j]0=[xj]0,[x″j]0=0;服务器S1生成新的比特串<x′>1={[xl-1′]1,[xl-2′]1,...,[x1′]1},<x″>1={[xl-1″]1,[xl-2″]1,...,[x1″]1},对于j=1,2,......,l-1,使其对应的比特位[x′j]1=0,[x″j]1=[xj]1;
(3)服务器S0和服务器S1各自调用第一辅助参数计算第0层的信号元组{<G0>,<P0>},括号内G和P的上标表示信号元组所在层;<G0>和<P0>的比特串形式分别为<G0>={[Gl-1 0],[Gl-2 0],[Gl-3 0],...,[G1 0]}、<P0>={[Pl-1 0],[Pl-2 0],[Pl-3 0],...,[P1 0]};
(4)对于j=1,2,......,l-1,服务器S0和服务器S1从二进制n元与运算辅助参数中取出l-1组二进制2元与运算辅助参数,服务器S0获取{[a1 j]0,[a2 j]0,{[aI j]0(I∈{1,2})}},服务器S1获取{[a1 j]1,[a2 j]1,{[aI j]1(I∈{1,2})}},其中括号内a的上标j用于区分l-1组不同的辅助参数。
(7)服务器S0和服务器S1各自构造第0层的l-1个叶子结点,从左到右依次为nodel-1 0,nodel-2 0,…,node1 0,其中上标表示节点所在的层,下标为区分同层不同的节点;对于j=1,2,......,l-1,服务器S0和服务器S1将比特信号元组{[Gj 0],[Pj 0]}分配给对应的叶子节点nodej 0;
(8)服务器S0和服务器S1各自由第0层节点生成第一层节点,生成规则为:
将第0层节点从左到右按优先级从大到小为4/3/2/1个节点一组的方式分组,为每个分组生成一个父节点,组成第一层节点;
设第一层节点的数量为n,从左到右分别为noden 1,noden-1 1,…,node1 1;对于j=1,2,......,n,服务器S0和服务器S1均为第一层的节点nodej 1分配一组空的比特信号元组{[Gj 1],[Pj 1]};
服务器S0和服务器S1按照以上生成规则依次由第一层生成第二层,第二层生成第三层,直到第h层只存在一个节点node1 h为止,node1 h节点为根节点,此时服务器S0和服务器S1得到了整个计算的树型结构;
(9)服务器S0和服务器S1均根据树型结构从第一层开始依次为后续层的比特信号元组赋值,直到根节点node1 h的空比特信号元组{[G1 h],[P1 h]}被赋值为止,在赋值过程中同一层节点的赋值计算并行运行,赋值计算的规则为:
若当前父节点拥有t个子节点,从左到右依次为nodet,nodet-1,…,node1,下标用于区分当前父节点的不同子节点,并且子节点分别有赋值的比特信号元组{[Gt],[Pt]},{[Gt-1],[Pt-1]},…,{[G1],[P1]},括号内部的下标表示此信号元组被赋予拥有相应下标的节点,则父节点的比特信号元组{[G],[P]}由如下公式计算:P=Pt·Pt-1·...·P1,计算过程由第一辅助参数辅助完成,其中异或运算可在本地进行,关键的连续与运算具体计算步骤如下:
过程1:设参与与运算的比特数量为n,将参与的比特分别表示为[B1],[B2],…,[Bn]。服务器S0和服务器S1从二进制n元与运算辅助参数中取出1组{[a1],[a2],...,[an],{[aI](I∈S)}};
(10)通过上述计算规则和协议,服务器S0和服务器S1能够以并行计算的方式为每一层的比特信号元组赋值。最终服务器S0计算服务器S1计算由此得到了最高有效位MSB的布尔秘密分享。其中,[MSB]0为服务器S0持有的最高有效位MSB的布尔秘密分享,[MSB]1为服务器S1持有的最高有效位MSB的布尔秘密分享。
实施例七
在本发明一种具体的实施例中,安全比较组件,基于安全比较协议针对份额数据进行比较操作,得到比较结果的加法秘密分享;
所述安全比较协议具体步骤包括:
(1)参与比较的数分别为和/>服务器S0持有<xA>0,<xB>0,服务器S1持有<xA>1和<xB>1,其中括号内x的上标用于区分不同的输入数值;服务器S0和服务器S1通过计算得到两个数差值的秘密分享<xA-xB>;
(2)服务器S0和服务器S1各自调用最高有效位提取组件得到xA-xB最高有效位的布尔分享[MSBcp],其中所有数值的下标cp均表示此数值仅作用于比较协议当中;
(3)服务器S0设<acp>0=[MSBcp]0,<bcp>0=0,服务器S1设<acp>1=0,<bcp>1=[MSBcp]1;
(4)服务器S0和服务器S1各自计算比较结果的秘密分享:<ycp>=<acp>+<bcp>-2<acp>·<bcp>,计算过程由第二辅助参数辅助完成,其中加法减法可在本地直接进行,<acp>·<bcp>计算过程如下:
过程一:服务器S0和服务器S1从十进制乘法辅助参数中取出1组{a,b,c};
过程二:服务器S0计算E0=a0+<acp>0,F0=b0+<bcp>0并将其发送给S1。服务器S1计算E1=a1+<acp>1,F1=b1+<bcp>1并将其发送给S0。
过程三:服务器S0和服务器S1均在本地重构得到E=<E>0+<E>1,F=<F>0+<F>1。随后,服务器S0计算y0=E·<bcp>0+F·<acp>0-c0,服务器S1计算y1=EF+E·<bcp>1+F·<acp>1-c1。由此得到了<acp>·<bcp>结果的加法秘密分享。其中,y0为服务器S0持有的<acp>·<bcp>结果的加法秘密分享,y1为服务器S1持有的<acp>·<bcp>结果的加法秘密分享。
(5)最终,服务器S0持有<ycp>0,服务器S1持有<ycp>1;其中,<ycp>0为服务器S0持有的比较结果<ycp>的加法秘密分享,<ycp>1为服务器S1持有的比较结果<ycp>的加法秘密分享。
实施例八
在本发明一种具体的实施例中,安全正弦函数计算组件,基于安全正弦函数计算协议计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
所述安全正弦函数计算协议具体步骤包括:
(2)服务器S0计算<usin>0=sin(<x>0)-a0,<ecos>0=cos(<x>0)-b0,服务器S1计算<usin>1=sin(<x>1)-a1,<ecos>1=cos(<x>1)-b1;其中括号内e和u的上标sin和上标cos分别表示正弦函数和余弦函数的计算中间值;
(3)服务器S0发送<usin>0和<ecos>0到服务器S1,服务器S1发送<usin>1和<ecos>1到服务器S0;
(4)服务器S0计算usin=<usin>0+<usin>1和ecos=<ecos>0+<ecos>1,服务器S1计算usin=<usin>0+<usin>1和ecos=<ecos>0+<ecos>1;
(5)服务器S0计算<fsin>0=ecos<a>0+usin<b>0+c0-sin(<x>0)cos(<x>0),服务器S1计算<fsin>1=ecosusin+ecos<a>1+usin<b>1+c1-sin(<x>1)cos(<x>1);
其中,<fsin>0为服务器S0持有的正弦函数计算结果<f>的加法秘密分享,<fsin>1为服务器S1持有的正弦函数计算结果<f>的加法秘密分享;括号内f的上标sin表示此数值仅作用于正弦函数计算协议当中。
实施例九
在本发明一种具体的实施例中,安全ReLU函数计算组件,基于安全ReLU函数计算协议计算服务器内每个份额数据的ReLU函数,得到ReLU函数计算结果的加法秘密分享;
所述安全ReLU函数计算协议具体步骤包括:
(1)参与ReLU函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用安全最高有效位提取组件得到x最高有效位的布尔分享[MSBR],服务器S0持有[MSBR]0,服务器S1持有[MSBR]1;其中括号内所有数值的下标R均表示此数值仅作用于ReLU函数计算协议当中;
(3)服务器S0和服务器S1计算<yR>=<β>·<x>-2<β′><β″><x>,计算过程由第三辅助参数辅助完成,具体计算步骤如下:
过程一:服务器S0和服务器S1从十进制n元乘法运算辅助参数中取出1组,服务器S0获取{<a1>0,<a2>0,<a3>0,<a4>0,{<aI>0(I∈{1,2,3,4})}},服务器S1获取{<a1>1,<a2>1,<a3>1,<a4>1,{<aI>1(I∈{1,2,3,4})}}。
过程二:服务器S0计算<x>0-<a1>0、<β′>0-a2、<β>0-<a4>0;服务器S1计算<x>1-<a1>1、<β″>0-a3、<β>1-<a4>1。双方将计算的结果发给对方后重构得到u=x-a1、v=β′-a2、w=β″-a3、z=β-a4。
过程三:服务器S0计算<s>0=u<a4>0+z<a1>0+<aI>0(I={1,4})、<t>0=uv<a3>0+vw<a1>0+uw<a2>0+u<aI>0(I={2,3})+v<aI>0(I={1,3})+w<aI>0(I={1,2})+<aI>0(I={1,2,3})
服务器S1计算<s>1=uz+u<a4>1+z<a1>1+<aI>1(I={1,4})、
过程四:服务器S0计算得到<yR>0=<s>0-2<t>0;服务器S1计算得到<yR>1=<s>1-2<t>1。
(4)最终,服务器S0持有<yR>0,服务器S1持有<yR>1,<yR>0为服务器S0持有的ReLU函数计算结果<yR>的加法秘密分享,<yR>1为服务器S1持有的ReLU函数计算结果<yR>的加法秘密分享。
实施例十
在本发明一种具体的实施例中,安全Sigmoid函数计算组件,基于安全正弦函数计算组件的计算结果,根据安全Sigmoid函数计算协议计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数计算结果的加法秘密分享;
所述安全Sigmoid函数计算协议具体步骤包括:
(1)参与Sigmoid函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用安全最高有效位提取组件,计算得到x+5和x-5最高有效位的秘密分享[MSBx+5]和[MSBx-5],其中括号内MSB的下标x+5和x-5用于区分两不同数值的最高有效位;
(2)服务器S0和服务器S1调用所述安全正弦函数计算组件计算得到<zS>0=<0.1x+0.5>0-<0.1828sin(0.652x+3.142)>0+<0.01953sin(1.428x-3.142)>0,<zS>1=<0.1x+0.5>1-<0.1828sin(0.652x+3.142)>1+<0.01953sin(1.428x-3.142)>1;其中括号内所有数值的上标S表示此数值仅作用于Sigmoid函数计算协议当中;
(3)服务器S0和服务器S1调用所述安全基础操作组件计算得到:<fS>0=[MSBx+5]0[MSBx-5]0<z>0+<1-MSBx-5>0,<fS>1=[MSBx+5]1[MSBx-5]1<z>1+<1-MSBx-5>1;
其中,服务器S0持有<fS>0,服务器S1持有<fS>1,<fS>0为服务器S0持有的Sigmoid函数计算结果的加法秘密分享,<fS>1为服务器S1持有的Sigmoid函数计算结果的加法秘密分享。
实施例十一
在本发明一种具体的实施例中,安全Tanh函数计算组件,基于安全Sigmoid函数计算组件的计算结果,根据安全Tanh函数计算协议计算服务器内每个份额数据的Tanh函数,得到Tanh函数计算结果的加法秘密分享;
所述安全Tanh函数计算协议具体步骤包括:
(2)服务器S0和服务器S1调用安全Sigmoid函数计算组件对<2x>进行计算得到结果<Sigmoid(2x)>;
(3)服务器S0和服务器S1调用基础安全组件计算得到<fT>0=<2Sigmoid(2x)>0-1,<fT>1=<2Sigmoid(2x)>1-1,其中括号内f的上标T表示此数值仅作用于Tanh函数计算协议当中;服务器S0持有<fT>0,服务器S1持有<fT>1,<fT>0表示服务器S0持有的Tanh函数计算结果<fT>的加法秘密分享,<fT>1表示服务器S0持有的Tanh函数计算结果<fT>的加法秘密分享。
实施例十二
在本发明一种具体的实施例中,安全最大池化函数计算组件,调用所述安全最高有效位提取组件提取窗口内不同数差值的最高有效位,再调用最大池化函数计算协议计算服务器内每个份额数据的最大池化函数,得到最大池化函数计算结果的加法秘密分享;
所述安全最大池化函数计算协议具体步骤包括:
(1)参与最大池化函数计算的窗口内数值为(<x1>,<x2>,......,<xn>),服务器S0持有(<x1>0,<x2>0,......,<xn>0),服务器S1持有(<x1>1,<x2>1,......,<xn>1),其中括号内x的下标用于区分窗口内n个不同的数值;
(2)服务器S0和服务器S1均形成一颗叶子节点数为n的二叉树,叶子节点包括nodes1 0,nodes2 0,…,nodesn 0,其中nodes的上标用于表示节点所处层次,nodes的下标用于区分不同的节点,叶子节点层为树型结构的第0层;对于j=1,2,......,n,给每一个叶子节点nodesj 0赋予窗口内的一个数值<xj>;
(3)从第0层开始,对本层中的每一对兄弟节点(<xk>,<xh>),先调用安全最高有效位提取组件得到xk-xh的最高有效位[MSBmp],再根据[MSBmp]的值选择出(<xk>,<xh>)中更大的值<ymax>,随后将此值赋予给父亲节点;其中,括号内x的下标k和h分别用于表示兄节点和弟节点;括号内所有数值的下标mp均表示此数值仅作用于最大池化函数计算协议当中;根据[MSBmp]选择(<xk>,<xh>)中更大值具体步骤如下:
过程一:参与选择的数为<xk>,<xh>,服务器S0持有<xk>0,<xh>0,[MSBmp]0,服务器S1持有<xk>1,<xh>1,[MSBmp]1;服务器S0设<βh>0=<β′h>0=[MSBmp]0;服务器S1设<βk>1=<βh>1=<β″k>=<β″h>=[MSBmp]1,其中括号内β的上标′和″用于区分不同的βk和βh,下标k,h用于区分不同的参数;逻辑符号/>表示非;
过程二:对于i∈{k,h},服务器S0从十进制n元乘法辅助参数中取出<a1 i>0、a2 i、<aI i>0(I={1,2})、<a4 i>0、<aI i>0(I={2,3})、<aI i>0(I={1,3})、<aI i>0(I={2,3})、<aI i>0(I={1,4})、<aI i>0(I={1,2,3});服务器S1从十进制n元乘法辅助参数中取出<a1 i>1、a3 i、<aI i>1(I={1,2})、<a4 i>1、<aI i>1(I={2,3})、<aI i>1(I={1,3})、<aI i>1(I={2,3})、<aI i>1(I={1,4})、<aI i>1(I={1,2,3})。括号内a的上标i为了区分不同下标k,h对应的辅助参数。
过程三:服务器S0计算<xk>0-<a1 k>0、<xh>0-<a1 h>0、<β′k>0-a2 k、<β′h>0-a2 h、<βk>0-<a4 k>0、<βh>0-<a4 h>0;服务器S1计算<xk>1-<a1 k>1、<xh>1-<a1 h>1、<β″k>1-a3 k、<β″h>1-a3 h、<βk>1-<a4 k>1、<βh>1-<a4 h>1。随后分别将计算的参数发送给对方。
过程四:服务器S0和S1使用接收的参数重构uk=xk-a1 k、uh=xh-a1 h、vk=β′k-a2 k、vh=β′h-a2 h、wk=β″k-a3 k、wh=β″h-a3 h、zk=βk-a4 k、zh=βh-a4 h。
过程五:服务器S0计算:
<sk>0=uk<a4 k>0+zk<a1 k>0+<aI k>0(I={1,4})
<sh>0=uh<a2 h>0+zj<a1 h>0+<aI h>0(I={1,2})
<tk>0=ukvkwk+ukvk<a3 k>0+vkwk<a1 k>0+ukwk<a2 k>0+uk<aI k>0(I={2,3})+vk<aI k>0(I={1,3})+wk<aI k>0(I={1,2})+<aI k>0(I={1,2,3})
服务器S1计算:
<sk>1=uk<a4 k>1+zk<a1 k>1+<aI k>1(I={1,4})
<sh>1=uh<a2 h>1+zh<a1 h>1+<aI h>1(I={1,2})
<tk>1=ukvk<a3 k>1+vkwk<a1 k>1+ukwk<a2 k>1+uk<aI k>1(I={2,3})+vk<aI k>1(I={1,3})+wk<aI k>1(I={1,2})+<aI k>1(I={1,2,3})
<th>1=uhvh<a3 h>1+vhwh<a1 h>1+uhwh<a2 h>1+uh<aI h>1(I={2,3})+vh<aI h>1(I={1,3})+wh<aI h>1(I={1,2})+<aI h>1(I={1,2,3})
过程六:服务器S0设<ymax>0=(<sk>0+<sh>0)-2(<tk>0+<th>0)
服务器S1设<ymax>1=(<sk>1+<sh>1)-2(<tk>1+<th>1)。其中括号内y的下标max表示更大值;服务器S0持有<ymax>0,服务器S1持有<ymax>1。
(3)当第0层赋值操作完成之后,其所有父节点均被赋值;随后重复过程(2)的操作为第二层赋值,并对后续的被赋值层均进行过程(2)的赋值操作直到为根节点赋值<ymp>;其中服务器S0持有<ymp>0,服务器S1持有<ymp>1,<ymp>0为服务器S0持有的窗口内最大池化函数计算结果<ymp>的加法秘密分享,<ymp>1服务器S1持有的窗口内最大池化函数计算结果<ymp>的加法秘密分享。
下面通过实际运行和仿真方式去说明本发明的实施原理、实施效果。
(1)环境说明
本发明在PyTorch中基于本发明所述的密态数据安全计算库实现了一个安全神经网络推理系统。本发明的安全协议评估在两台使用Ubuntu 18.04并配备Intel(R)Core(TM)i7-8700CPU@3.20GHz,32G RAM的docker服务器上执行,其中通信协议是两台服务器之间局域网(LAN)中的TCP协议。每台服务器的上传和下载带宽限制为2Gbps。
(2)实验1
用目前求解最大池化函数最常用的解决方案作为对照方,在环的大小为的情况下,对最常见的两种窗口尺寸设置多组不同数量级的输入尺寸对比计算时间、通信时间和数据传输量。其中第一组窗口尺寸为2*2,输入尺寸采用的维度分别为2*2、32*32、256*256、1024*1024。第二组窗口尺寸为3*3,输入尺寸采用的维度分别为3*3、27*27、227*227。对照的结果如下表1中所示:
表1本发明与现有安全最大池化函数计算方法的效果对照表
当最大池化窗口增大时,由于本发明安全最大池化函数计算组件的二叉树设计,总开销相较于常规方案会进一步降低。本发明安全最大池化函数计算组件在通信轮次、通信时间和数据传输量上显著低于常用的求解方法。
(3)实验2:
为验证本发明的安全最高有效位求解组件的有效性和优越性,设置了仿真实验和对比实验,所有对比实验均在相同的设备上进行。
用目前最高效的基于前缀并行加法器的安全最高有效位求解方法作为本发明安全最高有效位求解组件的对照方,在环的大小分别为和/>情况下,设置四组不同数量级的输入尺寸对比计算时间、通信时间和数据传输量。其中四组输入尺寸采用的维度分别为1*1、32*32、256*256、1024*1024。对照的结果如下表2中所示:
表2本发明与现有安全最高有效位求解方法的效果对照表
在现实网络环境中,计算最高有效位的通信开销是远高于计算开销的。在不同的输入尺寸之下,本发明的安全最高有效位求解组件在通信时间、通信轮次和数据传输量上相对于目前最高效的求解方法有着显著的提升。
(4)实验3:
用目前安全ReLU函数计算最常用的解决方案作为对照方,在环的大小分别为和/>情况下,设置四组不同数量级的输入尺寸对比计算时间、通信时间和数据传输量。其中四组输入尺寸采用的维度分别为1*1、32*32、256*256、1024*1024。对照的结果如下表3中所示:
表3本发明与现有安全ReLU函数计算方法的效果对照表
实验结果表明本发明的安全ReLU函数计算组件相比常用的求解方法将通信轮次减少了一倍,通信时间以及数据传输量都减少了接近一半,更适用于现实的网络环境。
(5)实验4:
为验证本发明在真实数据集(MNIST,CIFAR-10)和神经网络模型(CNN神经网络模型,ResNet-32神经网络)上的高性能,本发明将计算时间和通信带宽与目前最先进的安全神经网络推理系统(MiniONN、EzPC、Sonic)进行了比较。下面设置了仿真实验和对比实验。
MNIST是一个流行的数据集,包括28×28灰度图像,其中测试数据集有10000个示例,训练数据集有60000个示例。本发明的实验采用了Sonic中规定的模型架构Model-1和模型架构Model-2。
CIFAR-10是一个复杂的数据集,包括32×32的RGB图像,其中测试数据集有10000个图像,训练数据集有50000个图像。本发明的实验采用DELPHI中指定的ResNet-18模型架构(Model-3)。
本发明以实验中的模型Model-1和Model-2为例详细说明本发明的实际应用以及工作流程。
如图2所示Model-1使用的子组件包括安全卷积计算组件(SCONV)、安全基础操作组件中的乘法操作(SMUL)、安全ReLU函数计算组件(SRELU),以及安全全连接计算组件(SFC)。Model-2使用的子组件包括安全卷积计算组件(SCONV)、安全基础操作组件中的乘法操作(SMUL)、安全ReLU函数计算组件(SRELU),安全最大池化函数计算组件(SMP),以及安全全连接计算组件(SFC)。Model-1的输入是维度1*748的张量,第一层SFC层的参数是维度748*128的张量。输入张量与第一层SFC层参数进行安全的矩阵向量乘法,通过BeaverTriples的矩阵扩展实现,第一层SFC层的输出张量维度为1*128。随后,第一层SFC层输出张量与第一层BN层参数执行简单的安全乘法与安全加法协议,通过Beaver Triples实现,第一层SBN层输出的张量维度为1*128。之后此输出在第一层SReLU层进行激活,激活函数为ReLU(x)=x(x>=0)/ReLU(x)=0(x<0),安全的激活函数通过本发明所述安全ReLU函数计算组件完成,第一层SReLU层输出张量维度为1*128。Model-1第二层和第三层的结构同第一层相同,执行的安全协议也相同,区别在于第二层和第三层的SFC层参数维度分别为128*128和128*10。其中后一层的输入均为前一层的输出,第三层的输出即为Model-1的最终输出结果。
Model-2的输入是维度为1*28*28的张量,第一层SCONV层的卷积核维度为1*16*5*5。
输入张量与第一层SCONV层参数进行安全的矩阵向量乘法,通过Beaver Triples的矩阵扩展实现,第一层SCONV层输出的张量维度为16*24*24。随后,第一层SBN层的参数张量与第一层SReLU层的输出张量进行的操作与Model-1中相同,最终第一层的输出为维度为16*24*24的张量。随后,第一层的输出在第二层SMP层进行安全最大池化操作,其中第二层SMP层的窗口维度为16*2*2,具体操作为对窗口内的数值进行大小比较,输出对应窗口中最大的值。安全的最大池化操作通过本发明所述安全最大池化函数计算组件完成,最终第二层SMP层输出的张量维度为16*12*12。第三层的结构与第一层相同,区别在于第三层SCONV层的卷积核维度为16*16*5*5,最终第三层的输出为维度为16*8*8的张量。第四层SMP层的窗口维度为16*2*2,在第三层的输出张量上执行与第二层SMP层相同的操作。与第二层不同的是第四层还拥有SBN以及SReLU层,第四层最终的输出维度为16*4*4的张量。第五层结构与Model-1第一层的结构相同,区别在于SFC层的参数维度为256*100,最终的输出维度为1*100。第六层与第五层的区别为没有SReLU层并且SFC层的参数维度为100*10,第六层的输出即为Model-2的最终输出结果。
为了证明本发明各组件的高效性,本发明将计算时间和通信带宽与目前最先进的安全神经网络推理系统(MiniONN、EzPC、Sonic)进行了比较,表4总结了MNIST和CIFAR-10数据集上不同神经网络模型上的计算时间和通信带宽开销。
表4本发明与先进神经网络推理系统性能对比
如表4所示,本发明在MNIST数据集和model-1上测试了整体开销,与MiniONN相比可节省15倍带宽、14倍运行时间;与EzPC相比,节省约68倍带宽、45倍运行时间;与Sonic相比,可节省1.79倍带宽、7.5倍运行时间。本发明在MNIST数据集和Model-2上测试了整体开销,与MiniONN相比,可节省86.5倍带宽、17.2倍运行时间;与EzPC相比,可节省约65倍带宽、53倍运行时间;与Sonic相比,可节省1.4倍带宽、26倍运行时间。除此以外,本发明测试了在CAFIR-10数据集和ResNet-18上的计算和通信开销,结果表明本发明相比于DELPHI减少了5倍带宽和2.94倍运行时间。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (14)
1.一种通用密态数据安全计算方法,应用于两个服务器,其特征在于,包括:
步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;
步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;
步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;
步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标组件的运行结果;
步骤5,将所述运行结果发送至服务评估方。
2.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述模型信息以及评估数据均通过加法秘密分享的方式发送给服务器;其中每个服务器所接收的模型数据份额之和为全部的模型信息,以及评估数据份额之和为全部评估数据;
其中,模型信息包括模型的内部参数、各层之间的连接关系以及模型结构。
3.根据权利要求2所述的通用密态数据安全计算方法,其特征在于,所述步骤2中的通用密态数据安全计算库包括:
辅助参数生成组件,用于生成辅助参数,得到辅助参数的加法秘密分享;
安全基础操作组件,用于在服务器各自的份额数据上执行乘法和加法操作,得到乘法和加法操作结果的加法秘密分享;
安全最高有效位求解组件,用于在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;
安全比较组件,用于比较服务器内不同份额数据的大小,得到比较结果的加法秘密分享;
安全正弦函数计算组件,用于计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
安全ReLU函数计算组件,用于计算服务器内每个份额数据的ReLU函数,得到ReLU函数的计算结果的加法秘密分享;
安全Sigmoid函数计算组件,用于计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数的计算结果的加法秘密分享;
安全Tanh函数计算组件,用于计算服务器内每个份额数据的Tanh函数,得到Tanh函数的计算结果的加法秘密分享;
安全最大池化函数计算组件,用于计算服务器内每个份额数据的最大池化函数,得到最大池化函数的计算结果的加法秘密分享。
4.根据权利要求3所述的通用密态数据安全计算方法,其特征在于,所述步骤2中的通用密态数据安全计算库还包括:
安全卷积计算组件,用于对服务器内每个份额数据利用秘密分享的卷积核进行卷积,得到卷积结果的加法秘密分享;
安全全连接计算组件,用于对服务器内每个份额数据与秘密分享的权重点乘,得到全连接计算结果的加法秘密分享。
6.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述步骤3包括:
步骤31,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为所有需要辅助参数的目标组件一次生成其所需的辅助参数;
步骤32,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为需要辅助参数的部分目标组件生成所需的辅助参数直至主进程的共享内存无剩余空间;
如果目标组件运行时调用所述共享内存中的辅助参数使得共享内存有所剩余,则辅助进程将持续生成辅助参数存储至所述共享内存直至所述共享内存无剩余空间。
7.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,安全最高有效位求解组件,基于安全最高有效位提取协议在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;
所述安全最高有效位提取协议的具体步骤包括:
(1)参与最高有效位提取协议的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1分别将秘密分享<x>0和<x>1转化为二进制比特串<x>0={[xl]0,[xl-1]0,......,[x1]0}和<x>1={[xl]1,[xl-1]1,......,[x1]1},其中括号外的下标0和1为区分服务器S0和服务器S1的数据,中括号内x的下标{l,l-1,...,l}表示二进制比特串中对应位置的比特;
(2)服务器S0生成新的比特串<x′>0={[xl-1′]0,[xl-2′]0,...,[x1′]0},<x″>0={[xl-1″]0,[xl-2″]0,...,[x1″]0},其中括号内x的上标′和″用于区分两个新的比特串;对于j=1,2,......,l-1,使其对应的比特位[x′j]0=[xj]0,[x″j]0=0;服务器S1生成新的比特串<x′>1={[xl-1′]1,[xl-2′]1,...,[x1′]1},<x″>1={[xl-1″]1,[xl-2″]1,...,[x1″]1},对于j=1,2,......,l-1,使其对应的比特位[x′j]1=0,[x″j]1=[xj]1;
(3)服务器S0和服务器S1各自调用第一辅助参数计算第0层的信号元组{<G0>,<P0>},括号内G和P的上标表示信号元组所在层;<G0>和<P0>的比特串形式分别为<G0>={[Gl-1 0],[Gl-2 0],[Gl-3 0],...,[G1 0]}、<P0>={[Pl-1 0],[Pl-2 0],[Pl-3 0],...,[P1 0]};对于j=1,2,......,l-1,对应比特位的计算为[Gj 0]=[xj]0·[xj]1,服务器S0持有<G0>0和<P0>0,服务器S1持有<G0>1和<P0>1;
(4)对于j=1,2,......,l-1,服务器S0和服务器S1从二进制n元与运算辅助参数中取出l-1组二进制2元与运算辅助参数,服务器S0获取{[a1 j]0,[a2 j]0,{[aI j]0(I∈{1,2})}},服务器s1获取{[a1 j]1,[a2 j]1,{[aI j]1(I∈{1,2})}},其中括号内a的上标j用于区分l-1组不同的辅助参数;
(7)服务器S0和服务器S1各自构造第0层的l-1个叶子结点,从左到右依次为nodel-1 0,nodel-2 0,...,node1 0,其中上标表示节点所在的层,下标为区分同层不同的节点;对于j=1,2,......,l-1,服务器S0和服务器S1将比特信号元组{[Gj 0],[Pj 0]}分配给对应的叶子节点nodej 0;
(8)服务器S0和服务器S1各自由第0层节点生成第一层节点,生成规则为:
将第0层节点从左到右按优先级从大到小为4/3/2/1个节点一组的方式分组,为每个分组生成一个父节点,组成第一层节点;
设第一层节点的数量为n,从左到右分别为noden 1,noden-1 1,...,node1 1;对于j=1,2,......,n,服务器S0和服务器S1均为第一层的节点nodej 1分配一组空的比特信号元组{[Gj 1],[Pj 1]};
服务器S0和服务器S1按照以上生成规则依次由第一层生成第二层,第二层生成第三层,直到第h层只存在一个节点node1 h为止,node1 h节点为根节点,此时服务器S0和服务器S1得到了整个计算的树型结构;
(9)服务器S0和服务器S1均根据树型结构从第一层开始依次为后续层的比特信号元组赋值,直到根节点node1 h的空比特信号元组{[G1 h],[P1 h]}被赋值为止,在赋值过程中同一层节点的赋值计算并行运行,赋值计算的规则为:
若当前父节点拥有t个子节点,从左到右依次为nodet,nodet-1,...,node1,下标用于区分当前父节点的不同子节点,并且子节点分别有赋值的比特信号元组{[Gt],[Pt]},{[Gt-1],[Pt-1]},...,{[G1],[P1]},括号内部的下标表示此信号元组被赋予拥有相应下标的节点,则父节点的比特信号元组{[G],[P]}由如下公式计算:P=Pt·Pt-1·...·P1,计算过程由第一辅助参数辅助完成;
其中,[MSB]0为服务器S0持有的最高有效位MSB的布尔秘密分享,[MSB]1为服务器S1持有的最高有效位MSB的布尔秘密分享。
8.根据权利要求7所述的通用密态数据安全计算方法,其特征在于,
安全比较组件,基于安全比较协议针对份额数据进行比较操作,得到比较结果的加法秘密分享;
所述安全比较协议具体步骤包括:
(1)参与比较的数分别为和/>服务器S0持有<xA>0,<xB>0,服务器S1持有<xA>1和<xB>1,其中括号内x的上标用于区分不同的输入数值;服务器S0和服务器S1通过计算得到两个数差值的秘密分享<xA-xB>;
(2)服务器S0和服务器S1各自调用最高有效位提取组件得到xA-xB最高有效位的布尔分享[MSBcp],其中所有数值的下标cp均表示此数值仅作用于比较协议当中;
(3)服务器S0设<Acp>0=[MSBcp]0,<bcp>0=0,服务器S1设<Acp>1=0,<bcp>1=[MSBcp]1;
(4)服务器S0和服务器S1各自计算比较结果的秘密分享<ycp>=<acp>+<bcp>-2<acp>·<bcp>,计算过程由第二辅助参数辅助完成;服务器S0持有<ycp>0,服务器S1持有<ycp>1;
其中,<ycp>0为服务器S0持有的比较结果<ycp>的加法秘密分享,<ycp>1为服务器S1持有的比较结果<ycp>的加法秘密分享。
9.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,安全正弦函数计算组件,基于安全正弦函数计算协议计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
所述安全正弦函数计算协议具体步骤包括:
(2)服务器S0计算<usin>0=sin(<x>0)-a0,<ecos>0=cos(<x>0)-b0,服务器S1计算<usin>1=sin(<x>1)-A1,<ecos>1=cos(<x>1)-b1;其中括号内e和u的上标sin和上标cos分别表示正弦函数和余弦函数的计算中间值;
(3)服务器S0发送<usin>0和<wcos>0到服务器S1,服务器S1发送<usin>1和<ecos>1到服务器S0;
(4)服务器S0计算usin=<usin>0+<usin>1和ecos=<ecos>0+<ecos>1,服务器S1计算usin=<usin>0+<usin>1和ecos=<ecos>0+<ecos>1;
(5)服务器S0计算<fsin>0=ecos<a>0+usin<b>0+c0-sin(<x>0)cos(<x>0),服务器S1计算<fsin>1=ecosusin+ecos<a>1+usin<b>1+c1-sin(<x>1>cos(<x>1);
其中,<fsin>0为服务器S0持有的正弦函数计算结果<f>的加法秘密分享,<fsin>1为服务器S1持有的正弦函数计算结果<f>的加法秘密分享;括号内f的上标sin表示此数值仅作用于正弦函数计算协议当中。
10.根据权利要求3或7所述的通用密态数据安全计算方法,其特征在于,
安全ReLU函数计算组件,基于安全ReLU函数计算协议计算服务器内每个份额数据的ReLU函数,得到ReLU函数计算结果的加法秘密分享;
所述安全ReLU函数计算协议具体步骤包括:
(1)参与ReLU函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用安全最高有效位提取组件得到x最高有效位的布尔分享[MSBR],服务器S0持有[MSBR]0,服务器S1持有[MSBR]1;其中括号内所有数值的下标R均表示此数值仅作用于ReLU函数计算协议当中;
(3)服务器S0和服务器S1计算<yR>=<β>·<x>-2<β′><β″><x>,计算过程由第三辅助参数辅助完成;
其中,服务器S0持有<yR>0,服务器S1持有<yR>1,<yR>0为服务器S0持有的ReLU函数计算结果<yR>的加法秘密分享,<yR>1为服务器S1持有的ReLU函数计算结果<yR>的加法秘密分享。
11.根据权利要求7或9所述的通用密态数据安全计算方法,其特征在于,
安全Sigmoid函数计算组件,基于安全正弦函数计算组件的计算结果,根据安全Sigmoid函数计算协议计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数计算结果的加法秘密分享;
所述安全Sigmoid函数计算协议具体步骤包括:
(1)参与Sigmoid函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用安全最高有效位提取组件,计算得到x+5和x-5最高有效位的秘密分享[MSBx+5]和[MSBx-5],其中括号内MSB的下标x+5和x-5用于区分两不同数值的最高有效位;
(2)服务器S0和服务器S1调用所述安全正弦函数计算组件计算得到
<zS>0=<0.1x+0.5>0-<0.652×0.1828sin(0.652x)>0+<0.01953×1.428sin(1428x)>0,
<zS>1=<0.1x+0.5>1-<0.652×0.1828sin(0.652x)>1+<0.01953×1.428sin(1428x)>1;其中括号内所有数值的上标S表示此数值仅作用于Sigmoid函数计算协议当中;
(3)服务器S0和服务器S1调用所述安全基础操作组件计算得到:
<fs>0=[MSBx+5]0[MSBx-5]0<z>0+<1-MSBx-5>0,
<fS>1=[MSBx+5]1[MSBx-5]1<z>1+<1-MSBx-5>1;
其中,服务器S0持有<fS>0,服务器S1持有<fS>1,<fS>0为服务器S0持有的Sigmoid函数计算结果的加法秘密分享,<fS>1为服务器S1持有的Sigmoid函数计算结果的加法秘密分享。
12.根据权利要求11所述的通用密态数据安全计算方法,其特征在于,安全Tanh函数计算组件,基于安全Sigmoid函数计算组件的计算结果,根据安全Tanh函数计算协议计算服务器内每个份额数据的Tanh函数,得到Tanh函数计算结果的加法秘密分享;
所述安全Tanh函数计算协议具体步骤包括:
(2)服务器S0和服务器S1调用安全Sigmoid函数计算组件对<2x>进行计算得到结果<Sigmoid(2x)>;
(3)服务器S0和服务器S1调用基础安全组件计算得到<fT>0=<2Sigmoid(2x)>0-1,<fT>1=<2Sigmoid(2x)>1-1,其中括号内f的上标T表示此数值仅作用于Tanh函数计算协议当中;服务器S0持有<fT>0,服务器S1持有<fT>1,<fT>0表示服务器S0持有的Tanh函数计算结果<fT>的加法秘密分享,<fT>1表示服务器S0持有的Tanh函数计算结果<fT>的加法秘密分享。
13.根据权利要求7所述的通用密态数据安全计算方法,其特征在于,
安全最大池化函数计算组件,调用所述安全最高有效位提取组件提取窗口内不同数差值的最高有效位,再调用最大池化函数计算协议计算服务器内每个份额数据的最大池化函数,得到最大池化函数计算结果的加法秘密分享;
所述安全最大池化函数计算协议具体步骤包括:
(1)参与最大池化函数计算的窗口内数值为(<x1>,<x2>,......,<xn>),服务器S0持有(<x1>0,<x2>0,......,<xn>0),服务器S1持有(<x1>1,<x2>1,......,<xn>1),其中括号内x的下标用于区分窗口内n个不同的数值;
(2)服务器S0和服务器S1均形成一颗叶子节点数为n的二叉树,叶子节点包括nodes1 0,nodes2 0,...,nodesn 0,其中nodes的上标用于表示节点所处层次,nodes的下标用于区分不同的节点,叶子节点层为树型结构的第0层;对于j=1,2,......,n,给每一个叶子节点nodesj 0赋予窗口内的一个数值<xj>;
(3)从第0层开始,对本层中的每一对兄弟节点(<xk>,<xh>),先调用安全最高有效位提取组件得到xk-xh的最高有效位[MSBmp],再根据[MSBmp]的值选择出(<xk>,<xh>)中更大的值,随后将此值赋予给父亲节点;
其中,括号内x的下标k和h分别用于表示兄节点和弟节点;括号内所有数值的下标mp均表示此数值仅作用于最大池化函数计算协议当中;
(4)当第0层赋值操作完成之后,其所有父节点均被赋值;随后重复过程(2)的操作为第二层赋值,并对后续的被赋值层均进行过程(2)的赋值操作直到为根节点赋值<ymp>;其中服务器S0持有<ymp>0,服务器S1持有<ymp>1,<ymp>0为服务器S0持有的窗口内最大池化函数计算结果<ymp>的加法秘密分享,<ymp>1服务器S1持有的窗口内最大池化函数计算结果<ymp>的加法秘密分享。
14.根据权利要求13所述的通用密态数据安全计算方法,其特征在于,根据[MSBmp]选择(<xk>,<xh>)中更大值包括:
(1)参与选择的数为<xk>,<xh>,服务器S0持有<xk>0,<xh>0,[MSBmp]0,服务器S1持有<xk>1,<xh>1,[MSBmp]1;服务器S0设<βh>0=<β′h>0=[MSBmp]0;服务器S1设<βk>1=<βh>1=<β″k>=<β″h>=[MSBmp]1,其中括号内β的上标′和″用于区分不同的βk和βh,下标k,h用于区分不同的参数;逻辑符号/>表示非;
(2)服务器S0和服务器S1各自计算,并持有<xk>,<xh>两者之间的更大值<ymax>=<βk>·<xk>-2<β′h><β″k><xk>+<βh>·<xh>-2<β′h><β″h><xh>,计算过程由第三辅助参数辅助完成,其中括号内y的下标max表示携带下标的值为更大值;服务器S0持有<ymax>0,服务器S1持有<ymax>1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159080.4A CN116388954B (zh) | 2023-02-23 | 2023-02-23 | 通用密态数据安全计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159080.4A CN116388954B (zh) | 2023-02-23 | 2023-02-23 | 通用密态数据安全计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116388954A true CN116388954A (zh) | 2023-07-04 |
CN116388954B CN116388954B (zh) | 2023-09-01 |
Family
ID=86979629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310159080.4A Active CN116388954B (zh) | 2023-02-23 | 2023-02-23 | 通用密态数据安全计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116388954B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938455A (zh) * | 2023-09-15 | 2023-10-24 | 山东师范大学 | 基于秘密分享大小比较的数据处理方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098840A (zh) * | 2021-02-25 | 2021-07-09 | 鹏城实验室 | 基于加法秘密分享技术的高效安全线性整流函数运算方法 |
CN114118368A (zh) * | 2021-11-22 | 2022-03-01 | 上海交通大学 | 基于Shamir安全多方计算的隐私保护多方强化学习系统及方法 |
CN114154554A (zh) * | 2021-10-28 | 2022-03-08 | 上海海洋大学 | 一种基于非共谋双云服务器的隐私保护外包数据knn算法 |
US20220092216A1 (en) * | 2018-05-29 | 2022-03-24 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
US20220121775A1 (en) * | 2020-10-15 | 2022-04-21 | Beijing Realai Technology Co., Ltd. | System and method for converting machine learning algorithm, and electronic device |
CN114614983A (zh) * | 2022-02-28 | 2022-06-10 | 北京理工大学 | 一种基于安全多方计算的特征融合隐私保护方法 |
CN115186831A (zh) * | 2022-09-09 | 2022-10-14 | 之江实验室 | 一种高效隐私保护的深度学习方法 |
CN115632761A (zh) * | 2022-08-29 | 2023-01-20 | 哈尔滨工业大学(深圳) | 基于秘密共享的多用户分布式隐私保护回归方法及装置 |
US20230034384A1 (en) * | 2020-10-09 | 2023-02-02 | Google Llc | Privacy preserving machine learning via gradient boosting |
-
2023
- 2023-02-23 CN CN202310159080.4A patent/CN116388954B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220092216A1 (en) * | 2018-05-29 | 2022-03-24 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
US20230034384A1 (en) * | 2020-10-09 | 2023-02-02 | Google Llc | Privacy preserving machine learning via gradient boosting |
US20220121775A1 (en) * | 2020-10-15 | 2022-04-21 | Beijing Realai Technology Co., Ltd. | System and method for converting machine learning algorithm, and electronic device |
CN113098840A (zh) * | 2021-02-25 | 2021-07-09 | 鹏城实验室 | 基于加法秘密分享技术的高效安全线性整流函数运算方法 |
CN114154554A (zh) * | 2021-10-28 | 2022-03-08 | 上海海洋大学 | 一种基于非共谋双云服务器的隐私保护外包数据knn算法 |
CN114118368A (zh) * | 2021-11-22 | 2022-03-01 | 上海交通大学 | 基于Shamir安全多方计算的隐私保护多方强化学习系统及方法 |
CN114614983A (zh) * | 2022-02-28 | 2022-06-10 | 北京理工大学 | 一种基于安全多方计算的特征融合隐私保护方法 |
CN115632761A (zh) * | 2022-08-29 | 2023-01-20 | 哈尔滨工业大学(深圳) | 基于秘密共享的多用户分布式隐私保护回归方法及装置 |
CN115186831A (zh) * | 2022-09-09 | 2022-10-14 | 之江实验室 | 一种高效隐私保护的深度学习方法 |
Non-Patent Citations (4)
Title |
---|
PHAN NH 等: "Adaptive Laplace mechanism:differential privacy preservation in deep learning", IEEE * |
程珂: "双云外包模型下密态数据机器学习关键技术研究", 西安电子科技大学博士学位论文 * |
蒋瀚;刘怡然;宋祥福;王皓;郑志华;徐秋亮;: "隐私保护机器学习的密码学方法", 电子与信息学报, no. 05 * |
谭作文;张连福;: "机器学习隐私保护研究综述", 软件学报, no. 07 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938455A (zh) * | 2023-09-15 | 2023-10-24 | 山东师范大学 | 基于秘密分享大小比较的数据处理方法及系统 |
CN116938455B (zh) * | 2023-09-15 | 2023-12-12 | 山东师范大学 | 基于秘密分享大小比较的数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116388954B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | CryptGPU: Fast privacy-preserving machine learning on the GPU | |
Chaudhari et al. | Trident: Efficient 4pc framework for privacy preserving machine learning | |
Liu et al. | Oblivious neural network predictions via minionn transformations | |
Patra et al. | BLAZE: blazing fast privacy-preserving machine learning | |
Wagh et al. | Falcon: Honest-majority maliciously secure framework for private deep learning | |
Wagh et al. | SecureNN: 3-party secure computation for neural network training | |
Wagh et al. | Securenn: Efficient and private neural network training | |
Sanyal et al. | TAPAS: Tricks to accelerate (encrypted) prediction as a service | |
US11222138B2 (en) | Privacy-preserving machine learning in the three-server model | |
Phuong | Privacy-preserving deep learning via weight transmission | |
US20220092216A1 (en) | Privacy-preserving machine learning in the three-server model | |
Xie et al. | BAYHENN: Combining Bayesian deep learning and homomorphic encryption for secure DNN inference | |
Keller et al. | Secure quantized training for deep learning | |
CN111242290B (zh) | 一种轻量级隐私保护生成对抗网络系统 | |
CN110537191A (zh) | 隐私保护机器学习 | |
CN111428887A (zh) | 一种基于多个计算节点的模型训练控制方法、装置及系统 | |
CN116388954B (zh) | 通用密态数据安全计算方法 | |
Yang et al. | Lightweight privacy-preserving GAN framework for model training and image synthesis | |
Akimoto et al. | Privformer: Privacy-preserving transformer with mpc | |
Zhu et al. | Securebinn: 3-party secure computation for binarized neural network inference | |
Hao et al. | Fastsecnet: An efficient cryptographic framework for private neural network inference | |
Zhang et al. | SecureTrain: An approximation-free and computationally efficient framework for privacy-preserved neural network training | |
Chen et al. | Mp-clf: An effective model-preserving collaborative deep learning framework for mitigating data leakage under the gan | |
Li et al. | FPCNN: A fast privacy-preserving outsourced convolutional neural network with low-bandwidth | |
CN116094686B (zh) | 用于量子卷积计算的同态加密方法、系统、设备及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |