CN116388954B - 通用密态数据安全计算方法 - Google Patents

通用密态数据安全计算方法 Download PDF

Info

Publication number
CN116388954B
CN116388954B CN202310159080.4A CN202310159080A CN116388954B CN 116388954 B CN116388954 B CN 116388954B CN 202310159080 A CN202310159080 A CN 202310159080A CN 116388954 B CN116388954 B CN 116388954B
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.)
Active
Application number
CN202310159080.4A
Other languages
English (en)
Other versions
CN116388954A (zh
Inventor
沈玉龙
程珂
张志为
祝幸辉
刘新
付家瑄
宋安霄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202310159080.4A priority Critical patent/CN116388954B/zh
Publication of CN116388954A publication Critical patent/CN116388954A/zh
Application granted granted Critical
Publication of CN116388954B publication Critical patent/CN116388954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/50Oblivious transfer
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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中的通用密态数据安全计算库还包括:
安全卷积计算组件,用于对服务器内每个份额数据利用秘密分享的卷积核进行卷积,得到卷积结果的加法秘密分享;
安全全连接计算组件,用于对服务器内每个份额数据与秘密分享的权重点乘,得到全连接计算结果的加法秘密分享。
值得注意的是,全连接层和卷积层是神经网络中最常见的单元,本质上执行矩阵乘法运算。神经网络中每个神经元的目标函数可以表示为:
其中是n维的向量矩阵,/>是n维的权重向量,bais为每个神经单元的常量。
所述安全的全连接计算组件的计算具体步骤如下:
步骤一:参与安全的全连接操作的张量有输入张量权重张量/>和阈值张量<bias>linear。其中,服务器S0拥有加法秘密分享的输入张量/>加法秘密分享的权重张量/>加法秘密分享的阈值张量<bias>0 linear,服务器S1拥有加法秘密分享的输入张量/>加法秘密分享的权重张量/>加法秘密分享的阈值张量<bias>1 linear,其中→表示矩阵符号,括号外所有数值的上标linear均表示此数值仅作用于安全的全连接组件当中。
步骤二:服务器S0调用基础安全乘法组件计算服务器S1调用基础安全乘法组件计算/>
步骤三:服务器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技术的展开方法是将每一个输入特征子矩阵展开成一行,生成新的输入特征矩阵,其行数和输入特征子矩阵的个数相同。同时将卷积核中的权重矩阵展开成一列,多个权重矩阵可以排列成多列。
步骤二:服务器S0将秘密分享权重张量转换为一维列矩阵/>服务器S1将秘密分享权重张量/>转换为列向量/>
步骤三:服务器S0和服务器S1调用本发明辅助参数生成组件生成第二辅助参数
步骤四:服务器S0计算和/>服务器S1计算/>和/>
步骤六:服务器S0与服务器S1调用重构算法生成和/>
步骤七:服务器S0计算服务器S1计算其中,服务器S0持有/>服务器S1持有/> 为服务器S0持有的卷积组件计算结果/>的加法秘密分享,/>为服务器S1持有的卷积组件计算结果/>的加法秘密分享。
实施例四
在一种具体的实施例中,当所述辅助参数生成组件基于辅助参数生成协议生成多种运算方式的辅助参数,得到多种运算方式的辅助参数的加法秘密分享;
所述辅助参数生成协议的具体步骤包括:
S11,二进制n元与运算辅助参数生成:(1)根据参与运算的秘密分享<x>0和<x>1所在环的大小,确定生成任一n元与运算辅助参数的个数;(2)利用同态加密方式生成对应个数的n元与运算的第一辅助参数;
下面说明二进制n元与运算辅助参数的生成过程。
对于给定的正整数n,令B={0,1}作为随机数生成的空间。令S为一类集合I的集合,其中并且|I|≥1。令ANDi∈I<ai)和XORi∈I(ai)表示所有布尔数ai(i∈I)的连续与运算和异或运算。在线性同态加密中,被服务器S0和服务器S1的公钥加密的数据x分别用和/>表示,服务器S0和服务器S1的私钥分别用s0和s1表示。
过程1:对所有i=1,2,......,n,服务器S0和服务器S1分别随机选取[ai]0∈B和[ai]1∈B,两者构成ai的秘密分享,即对每一个集合I∈S,服务器S0发送给服务器S1
过程2:服务器S1使用S0的公钥计算:
服务器S1接着计算:
过程3:服务器S1随机选取[aI]1∈B,计算:
并将其发送给服务器S0。服务器S0用自己的私钥解密后得到[aI]0。其中
上述过程中生成的秘密分享组合{[a1],[a2],...,[an],{[aI](I∈S)}}即为二进制n元与运算辅助参数,也称为第一辅助参数。
S12,十进制乘法辅助参数生成:利用同态加密方式生成用于辅助计算两个十进制数乘法的第二辅助参数;
下面说明十进制乘法辅助参数的生成过程。
服务器S0和S1可以使用同态加密和不经意传输两种方法生成十进制乘法辅助参数。本发明总的所有操作都是在环中进行的,l代表的单个数字的表示位数,在本发明中,若无特殊说明,l=32。
使用同态加密生成十进制乘法辅助参数{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在本地计算。混合项a0bl和a1b0的计算如下:在本发明中只详细说明a0b1的计算,因为a1b0的计算为a0b1的对称计算。需要注意的是,如果由一方得到明文上a0b1的结果那么将会泄漏数据隐私,因此应该安全计算u=a0b1,使得S0持有u0,S1持有u1。服务器S0、S1共同参与协议C-OTl l,其中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表示。
过程一:对所有i=1,2,......,n,服务器S0和服务器S1分别随机选取两者构成ai的秘密分享,即ai=<ai>0+<ai>1
过程二:对每一个集合I∈S,服务器S0发送给服务器S1。服务器S1使用S0的公钥算得:/>服务器S1接着计算:
过程三:服务器S1随机选取计算:并将其发送给服务器S0。服务器S0用自己的私钥解密后得到<aI>0,/>
上述过程中生成的秘密分享组合{<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组不同的辅助参数。
(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个叶子结点,从左到右依次为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]}由如下公式计算:计算过程由第一辅助参数辅助完成,其中异或运算可在本地进行,关键的连续与运算具体计算步骤如下:
过程1:设参与与运算的比特数量为n,将参与的比特分别表示为[B1],[B2],...,[Bn]。服务器S0和服务器S1从二进制n元与运算辅助参数中取出1组{[a1],[a2],...,[an],{[aI](I∈S)}};
过程2:对于j=1,2,......,l-1,服务器S0计算并发送给服务器S1,服务器S1计算/>并发送给服务器S0
过程3:对于j=1,2,......,l-1,服务器S0和服务器S1在本地重构
过程4:服务器S0计算服务器S1计算/>其中/>为连续与操作的结果。
(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>的加法秘密分享。
实施例八
在本发明一种具体的实施例中,安全正弦函数计算组件,基于安全正弦函数计算协议计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
所述安全正弦函数计算协议具体步骤包括:
(1)参与正弦函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1从十进制乘法辅助参数中取出1组{a,b,c};
(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函数计算协议当中;
(2)服务器S0<β″>0=0;服务器S1令<β>1=[MSBR]1、<β′>1=0、<β″>1=[MSBR]1,其中括号内β的上标′和″用于区分不同的β,逻辑符号表示非;/>
(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,{<a1>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+<a1>1(I={1,4})、<t>1=uvw+uv<a3>1+vw<a1>1+uw<a2>1+u<aI>1(I={2,3})+v<aI>1(I={1,3})+w<aI>1(I={1,2})+<aI>1(I={1,2,3})
过程四:服务器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函数计算协议具体步骤包括:
(1)参与Tanh函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用基础安全乘法组件计算<2x>=2·<x>;
(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;服务器S0h>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-8700 CPU@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 (12)

1.一种通用密态数据安全计算方法,应用于两个服务器,其特征在于,包括:
步骤1,通过加法秘密分享方式接收来源于服务提供方用于评估数据的模型信息以及来源于服务评估方的评估数据;
步骤2,根据模型信息在已构建的通用密态数据安全计算库中确定即将调用的目标组件,以组成与所述模型信息相匹配的模型计算图;
步骤3,在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,通过单次生成方式为需要辅助参数的目标组件生成其所需的辅助参数或通过并行生成方式在目标组件运行计算过程中生成未运行的目标组件的辅助参数;
其中,单次生成方式为在主进程中一次性生成所有目标组件所需的辅助参数;所述并行生成方式为在主进程中为部分目标组件生成辅助参数直至共享内存无剩余,在所述共享内存的辅助参数被调用使得所述共享内存有所剩余,则调用辅助进程生成辅助参数使得所述共享内存无剩余;
步骤4,按照所述模型计算图中的目标组件的顺序调用所述目标组件,并将所述评估数据作用于第一个目标组件,以使当前目标组件根据自身的辅助参数以及上一个目标组件的运算结果进行运算,并将自己的运算结果传递至下一个目标组件,获得最后一个目标组件的运行结果;
步骤5,将所述运行结果发送至服务评估方;
通用密态数据安全计算库包括:
辅助参数生成组件,用于生成辅助参数,得到辅助参数的加法秘密分享;所述辅助参数生成组件基于辅助参数生成协议生成多种运算方式的辅助参数,得到多种运算方式的辅助参数的加法秘密分享;
安全基础操作组件,用于在服务器各自的份额数据上执行乘法和加法操作,得到乘法和加法操作结果的加法秘密分享;
安全最高有效位求解组件,用于在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;所述安全最高有效位求解组件,基于安全最高有效位提取协议在服务器各自的份额数据执行数据最高位求解,得到最高位求解结果的布尔秘密分享;
安全比较组件,用于比较服务器内不同份额数据的大小,得到比较结果的加法秘密分享;所述安全比较组件,基于安全比较协议针对份额数据进行比较操作,得到比较结果的加法秘密分享;
安全正弦函数计算组件,用于计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;所述安全正弦函数计算组件,基于安全正弦函数计算协议计算服务器内每个份额数据的正弦函数,得到正弦函数的计算结果的加法秘密分享;
安全ReLU函数计算组件,用于计算服务器内每个份额数据的ReLU函数,得到ReLU函数的计算结果的加法秘密分享;所述安全ReLU函数计算组件,基于安全ReLU函数计算协议计算服务器内每个份额数据的ReLU函数,得到ReLU函数计算结果的加法秘密分享;
安全Sigmoid函数计算组件,用于计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数的计算结果的加法秘密分享;所述安全Sigmoid函数计算组件,基于安全正弦函数计算组件的计算结果,根据安全Sigmoid函数计算协议计算服务器内每个份额数据的Sigmoid函数,得到Sigmoid函数计算结果的加法秘密分享;
安全Tanh函数计算组件,用于计算服务器内每个份额数据的Tanh函数,得到Tanh函数的计算结果的加法秘密分享;所述安全Tanh函数计算组件,基于安全Sigmoid函数计算组件的计算结果,根据安全Tanh函数计算协议计算服务器内每个份额数据的Tanh函数,得到Tanh函数计算结果的加法秘密分享;
安全最大池化函数计算组件,用于计算服务器内每个份额数据的最大池化函数,得到最大池化函数的计算结果的加法秘密分享;所述安全最大池化函数计算组件,调用所述安全最高有效位提取组件提取窗口内不同数差值的最高有效位,再调用最大池化函数计算协议计算服务器内每个份额数据的最大池化函数,得到最大池化函数计算结果的加法秘密分享;
安全卷积计算组件,用于对服务器内每个份额数据利用秘密分享的卷积核进行卷积,得到卷积结果的加法秘密分享;
安全全连接计算组件,用于对服务器内每个份额数据与秘密分享的权重点乘,得到全连接计算结果的加法秘密分享。
2.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述模型信息以及评估数据均通过加法秘密分享的方式发送给服务器;其中每个服务器所接收的模型数据份额之和为全部的模型信息,以及评估数据份额之和为全部评估数据;
其中,模型信息包括模型的内部参数、各层之间的连接关系以及模型结构。
3.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述辅助参数生成协议的具体步骤包括:
二进制n元与运算辅助参数生成:(1)根据参与运算的秘密分享<x>0和<x>1所在环的大小,确定生成任一n元与运算辅助参数的个数;(2)利用同态加密方式生成对应个数的n元与运算的第一辅助参数;
十进制乘法辅助参数生成:利用同态加密方式生成用于辅助计算两个十进制数乘法的第二辅助参数;
十进制n元乘法运算辅助参数生成:利用同态加密方式生成用于辅助计算n个十进制数连续乘法的第三辅助参数。
4.根据权利要求1所述的通用密态数据安全计算方法,其特征在于,所述步骤3包括:
在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为所有需要辅助参数的目标组件一次生成其所需的辅助参数;
在所述通用密态数据安全计算库中调用用于生成辅助参数的组件,在主进程中为需要辅助参数的部分目标组件生成所需的辅助参数直至主进程的共享内存无剩余空间;
如果目标组件运行时调用所述共享内存中的辅助参数使得共享内存有所剩余,则辅助进程将持续生成辅助参数存储至所述共享内存直至所述共享内存无剩余空间。
5.根据权利要求3所述的通用密态数据安全计算方法,其特征在于,所述安全最高有效位提取协议的具体步骤包括:
(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]};对于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组不同的辅助参数;
(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个叶子结点,从左到右依次为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个节点一组的方式分组,为每个分组生成一个父节点,组成第一层节点;其中,最后一组的节点个数小于或等于4;
设第一层节点的数量为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,计算过程由第一辅助参数辅助完成;
(10)通过(1)至(9)服务器S0和服务器S1能够以并行计算的方式为每一层的比特信号元组赋值,最终服务器S0计算服务器S1计算得到最高有效位MSB的布尔秘密分享;
其中,[MSB]0为服务器S0持有的最高有效位MSB的布尔秘密分享,[MSB]1为服务器S1持有的最高有效位MSB的布尔秘密分享。
6.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,所述安全比较协议具体步骤包括:
(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>的加法秘密分享。
7.根据权利要求3所述的通用密态数据安全计算方法,其特征在于,所述安全正弦函数计算协议具体步骤包括:
(1)参与正弦函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1;服务器S0和服务器S1从十进制乘法辅助参数中取出一组{a,b,c};
(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表示此数值仅作用于正弦函数计算协议当中。
8.根据权利要求1或5所述的通用密态数据安全计算方法,其特征在于,所述安全ReLU函数计算协议具体步骤包括:
(1)参与ReLU函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用安全最高有效位提取组件得到x最高有效位的布尔分享[MSBR],服务器S0持有[MSBR]0,服务器S1持有[MSBR]1;其中括号内所有数值的下标R均表示此数值仅作用于ReLU函数计算协议当中;
(2)服务器S0<β″>0=0;服务器S1令<β>1=[MSBR]1、<β′>1=0、<β″>1=[MSBR]1,其中括号内β的上标′和″用于区分不同的β,逻辑符号/>表示非;
(3)服务器S0和服务器S1计算<yR>=<β>·<x>-2<β′><β″><x>,计算过程由第三辅助参数辅助完成;
其中,服务器S0持有<yR>0,服务器S1持有<yR>1,<yR>0为服务器S0持有的ReLU函数计算结果<yR>的加法秘密分享,<yR>1为服务器S1持有的ReLU函数计算结果<yR>的加法秘密分享。
9.根据权利要求5或7所述的通用密态数据安全计算方法,其特征在于,所述安全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函数计算结果的加法秘密分享。
10.根据权利要求9所述的通用密态数据安全计算方法,其特征在于,所述安全Tanh函数计算协议具体步骤包括:
(1)参与Tanh函数计算的数为服务器S0持有<x>0,服务器S1持有<x>1,服务器S0和服务器S1调用基础安全乘法组件计算<2x>=2·<x>;
(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>的加法秘密分享。
11.根据权利要求5所述的通用密态数据安全计算方法,其特征在于,所述安全最大池化函数计算协议具体步骤包括:
(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>的加法秘密分享。
12.根据权利要求11所述的通用密态数据安全计算方法,其特征在于,根据[MSBmp]选择(<xk>,<xh>)中更大值包括:
(1)参与选择的数为<xk>,<xh>,服务器S0持有<xk>0,<xh>0,[MSBmp]0,服务器S1持有<xk>1,<xh>1,[MSBmp]1;服务器S0h>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<β′k><β″k><xk>+<βh>·<xh>-2<β′h><β″h><xh>,计算过程由第三辅助参数辅助完成,其中括号内y的下标max表示携带下标的值为更大值;服务器S0持有<ymax>0,服务器S1持有<ymax>1
CN202310159080.4A 2023-02-23 2023-02-23 通用密态数据安全计算方法 Active CN116388954B (zh)

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 CN116388954A (zh) 2023-07-04
CN116388954B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116938455B (zh) * 2023-09-15 2023-12-12 山东师范大学 基于秘密分享大小比较的数据处理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
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算法
CN114614983A (zh) * 2022-02-28 2022-06-10 北京理工大学 一种基于安全多方计算的特征融合隐私保护方法
CN115186831A (zh) * 2022-09-09 2022-10-14 之江实验室 一种高效隐私保护的深度学习方法
CN115632761A (zh) * 2022-08-29 2023-01-20 哈尔滨工业大学(深圳) 基于秘密共享的多用户分布式隐私保护回归方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019231481A1 (en) * 2018-05-29 2019-12-05 Visa International Service Association Privacy-preserving machine learning in the three-server model
IL277910A (en) * 2020-10-09 2022-05-01 Google Llc Privacy-preserving machine learning using a gradient stimulus
CN112016703B (zh) * 2020-10-15 2021-02-09 北京瑞莱智慧科技有限公司 一种机器学习算法的转换系统、方法及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (1)

* Cited by examiner, † Cited by third party
Title
双云外包模型下密态数据机器学习关键技术研究;程珂;西安电子科技大学博士学位论文;全文 *

Also Published As

Publication number Publication date
CN116388954A (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
Tan et al. CryptGPU: Fast privacy-preserving machine learning on the GPU
Liu et al. Oblivious neural network predictions via minionn transformations
Chaudhari et al. Trident: Efficient 4pc framework for privacy preserving machine learning
Wagh et al. SecureNN: 3-party secure computation for neural network training
Wagh et al. Securenn: Efficient and private neural network training
US11222138B2 (en) Privacy-preserving machine learning in the three-server model
Sanyal et al. TAPAS: Tricks to accelerate (encrypted) prediction as a service
US20220092216A1 (en) Privacy-preserving machine learning in the three-server model
Phuong Privacy-preserving deep learning via weight transmission
Rathee et al. Sirnn: A math library for secure rnn inference
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) 一种轻量级隐私保护生成对抗网络系统
Telem et al. A simple and robust gray image encryption scheme using chaotic logistic map and artificial neural network
CN114730389A (zh) 双重服务器隐私保护聚类
CN116388954B (zh) 通用密态数据安全计算方法
Yang et al. Lightweight privacy-preserving GAN framework for model training and image synthesis
Wang et al. Secgnn: Privacy-preserving graph neural network training and inference as a cloud service
Ibarrondo et al. Banners: Binarized neural networks with replicated secret sharing
Akimoto et al. Privformer: Privacy-preserving transformer with mpc
Zhu et al. Securebinn: 3-party secure computation for binarized neural network inference
Zhang et al. SecureTrain: An approximation-free and computationally efficient framework for privacy-preserved neural network training
CN116094686B (zh) 用于量子卷积计算的同态加密方法、系统、设备及终端
Hao et al. Fastsecnet: An efficient cryptographic framework for private neural network inference
Zhao et al. PPCNN: An efficient privacy‐preserving CNN training and inference framework

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