CN114021734A - 用于联邦学习和隐私计算的参数计算装置、系统及方法 - Google Patents
用于联邦学习和隐私计算的参数计算装置、系统及方法 Download PDFInfo
- Publication number
- CN114021734A CN114021734A CN202111198522.3A CN202111198522A CN114021734A CN 114021734 A CN114021734 A CN 114021734A CN 202111198522 A CN202111198522 A CN 202111198522A CN 114021734 A CN114021734 A CN 114021734A
- Authority
- CN
- China
- Prior art keywords
- parameter
- calculation
- operator mode
- bit width
- current operator
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/602—Providing cryptographic facilities or services
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/728—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种用于联邦学习和隐私计算的参数计算装置、系统及方法。参数计算装置包括:参数组计算单元,被配置为可被调用以便根据与当前算子模式相对应的密钥生成中间参数,以及根据中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数,中间参数根据密钥确定;控制单元,被配置为根据当前算子模式确定参数组计算单元的调用次数并调用该次数的参数组计算单元得到输出参数;和输出选择器,被配置为根据当前算子模式将输出参数发送给相对于参数计算装置的多个下级模块中的一个或者多个下级模块,从而协同完成当前算子模式。如此提供良好的计算速度和资源利用效率。
Description
技术领域
本申请涉及数据安全和隐私保护技术领域,具体涉及一种用于联邦学习和隐私计算的参数计算装置、系统及方法。
背景技术
随着人工智能和大数据挖掘分析等应用领域的发展,对数据量的需求越来越大。例如训练人工智能的应用模型需要使用大量带有合适的数据标签或者特征数值的训练数据。高质量的数据往往来源于经营活动中产生和积累的应用数据。但是应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。随着数据所有权的重要性、用户隐私和数据安全等受到更多重视,也随着法律法规对数据收集处理提出更严格的约束和要求,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。联邦学习指的是拥有数据的各个参与方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。其中,联邦学习根据训练数据在不同参与方之间的数据特征空间和样本空间的分布情况,可以划分为在数据特征空间重叠较大而在样本空间重叠较小的横向联邦学习,在数据特征空间重叠较小而在样本空间重叠较大的纵向联邦学习,以及在数据特征空间和样本空间均重叠较小的联邦迁移学习。
在联邦学习和隐私计算的各种应用场景中,涉及到通过各种算法实现不同的需求如加密后数据的联合训练或者密钥安全分配等,为此往往需要对大量的大位宽数据进行各种算子模式下的运算,这些算子模式包括例如密态乘法、密态加法、Diffie-Hellman(DH)算法、Paillier加密、Paillier解密、密态矩阵乘法、RSA交集以及DSA算法和ElGama算法等。不同的算子模式各自有不同的数学表达式来体现其中输入数据和参数之间的数学关系。这些给用于联邦学习和隐私计算的硬件和装置的计算性能提出了很大的挑战。为此,需要一种用于联邦学习和隐私计算的参数计算装置、系统及方法,不仅能够应对联邦学习和隐私计算的各种应用场景中各种算子模式的复杂多变的需求,而且具有良好的计算速度和资源利用效率。
发明内容
第一方面,本申请实施例提供了一种处理系统,用于隐私计算。所述处理系统包括:模幂计算模块,其中,所述模幂计算模块包括多个模幂计算引擎用于进行并行化模幂计算;参数分发模块,与所述模幂计算模块连接并且被配置为将用于模幂计算的参数分发给所述多个模幂计算引擎;数据聚合模块,与所述模幂计算模块连接并且被配置为对所述多个模幂计算引擎各自的输出进行聚合处理得到模幂计算结果;前处理模块,被配置生成前处理结果;加密后处理模块,与所述前处理模块和所述数据聚合模块连接,并且被配置为根据所述前处理结果和所述模幂计算结果生成加密结果;解密后处理模块,与所述数据聚合模块连接并且被配置为根据所述模幂计算结果生成解密结果;模乘计算模块,与所述数据聚合模块连接并且被配置为根据所述模幂计算结果生成密态运算结果;和参数计算装置,其中,所述参数计算装置分别与所述参数分发模块、所述前处理模块、所述加密后处理模块、所述解密后处理模块以及所述模乘计算模块连接,所述参数计算装置被配置为根据当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,所述参数计算装置每次执行参数组计算包括分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数。其中,所述参数计算装置还被配置为根据所述当前算子模式选择性地将所述输出参数发送给所述参数分发模块、所述前处理模块、所述加密后处理模块、所述解密后处理模块以及所述模乘计算模块中的一个或者多个。
第一方面所描述的技术方案,在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,所述参数计算装置被配置为执行一次参数组计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:当所述当前算子模式是RSA交集或者Paillier加密,所述参数计算装置被配置为执行一次参数组计算;当所述当前算子模式是Paillier解密,所述参数计算装置被配置为执行六次参数组计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述密态乘法包括:一维向量形式的明文数据和一维向量形式的密文数据的乘法,一维向量形式的明文数据和二维矩阵形式的密文数据的乘法,二维矩阵形式的明文数据和二维矩阵形式的密文数据的点乘,或者二维矩阵形式的明文数据和二维矩阵形式的密文数据的叉乘。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述密态加法包括:均是一维向量形式或二维矩阵形式的两个密文数据相加,或者一维向量形式的密文数据和二维矩阵形式的密文数据相加。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述前处理模块被配置生成所述前处理结果,包括;所述前处理模块被配置为,根据所述当前算子模式,执行多种预设运算操作中的一种预设运算操作从而生成所述前处理结果。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置每次执行参数组计算包括并行执行所述第一参数、所述第二参数以及所述第三参数各自的计算过程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式和所述当前算子模式的参数计算方式是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式相所对应的密钥的位宽和所述当前算子模式相对应的密钥的位宽是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式相对应的密钥的数值和所述当前算子模式相对应的密钥的数值是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式,所述在前算子模式相所对应的密钥的位宽,所述在前算子模式相对应的密钥的数值是否分别和所述当前算子模式的参数计算方式,所述当前算子模式相对应的密钥的位宽,所述当前算子模式相对应的密钥的数值相同,如果相同则判断可以复用与所述在前算子模式相对应的输出参数。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较与所述在前算子模式相对应的第三参数和与所述当前算子模式相对应的第三参数是否相同,如果相同则判断所述在前算子模式的参数计算方式和所述当前算子模式的参数计算方式相同。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置每次执行参数组计算包括,根据与所述当前算子模式相对应的密钥生成中间参数,以及根据所述中间参数分别生成所述第一参数、所述第二参数以及所述第三参数,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置基于所述中间参数的位宽和所述中间参数的有效位宽来生成所述第一参数和所述第二参数,其中,所述中间参数的有效位宽从所述中间参数的最高非零比特位开始。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一参数是RR,所述参数计算装置执行所述第一参数RR的计算过程,包括:将用于计算所述RR的数据分割成等长的多个区块,在所述多个区块的每一个区块上分别同时进行RRx2和RRx2–N的计算过程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置还被配置为根据与所述当前算子模式相对应的密钥生成中间参数,根据所述中间参数生成位宽拓展后中间参数,以及根据所述位宽拓展后中间参数生成用于降低位宽的输出参数,并且所述参数计算装置还被配置为将所述用于降低位宽的输出参数发送给所述参数分发模块,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算装置还被配置为根据所述中间参数生成所述位宽拓展后中间参数,包括:比较所述中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽,如果相同则将所述中间参数作为所述位宽拓展后中间参数,如果不相同则对所述中间参数进行高位补零以得到所述位宽拓展后中间参数。
第二方面,本申请实施例提供了一种参数计算装置,用于隐私计算。所述参数计算装置包括:参数组计算单元,其中,所述参数组计算单元被配置为可被调用以便根据与当前算子模式相对应的密钥生成中间参数,以及根据所述中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定;控制单元,被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到输出参数;和输出选择器,被配置为根据所述当前算子模式将所述输出参数发送给相对于所述参数计算装置的多个下级模块中的一个或者多个下级模块,从而使得所述一个或者多个下级模块协同完成所述当前算子模式。
第二方面所描述的技术方案,在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,相对于所述参数计算装置的所述多个下级模块包括模幂计算模块、前处理模块、加密后处理模块、解密后处理模块以及模乘计算模块。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述模幂计算模块包括多个模幂计算引擎用于进行并行化模幂计算并得到模幂计算结果,所述前处理模块被配置为根据所述当前算子模式执行多种预设运算操作中的一种预设运算操作从而生成前处理结果,所述加密后处理模块被配置为根据所述前处理结果和所述模幂计算结果生成加密结果,所述解密后处理模块被配置为根据所述模幂计算结果生成解密结果,所述模乘计算模块被配置为根据所述模幂计算结果生成密态运算结果。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,所述参数组计算单元的调用次数是一次。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:当所述当前算子模式是RSA交集或者Paillier加密,所述参数组计算单元的调用次数是一次;当所述当前算子模式是Paillier解密,所述参数组计算单元的调用次数是六次。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:所述控制单元被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式和所述当前算子模式的参数计算方式是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:所述控制单元被配置为比较相对于所述当前算子模式的在前算子模式相所对应的密钥的位宽和所述当前算子模式相对应的密钥的位宽是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:所述控制单元被配置为比较相对于所述当前算子模式的在前算子模式相对应的密钥的数值和所述当前算子模式相对应的密钥的数值是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:所述控制单元被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式,所述在前算子模式相所对应的密钥的位宽,所述在前算子模式相对应的密钥的数值是否分别和所述当前算子模式的参数计算方式,所述当前算子模式相对应的密钥的位宽,所述当前算子模式相对应的密钥的数值相同,如果相同则判断可以复用与所述在前算子模式相对应的输出参数。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数组计算单元基于所述中间参数的位宽和所述中间参数的有效位宽来生成所述第一参数和所述第二参数,其中,所述中间参数的有效位宽从所述中间参数的最高非零比特位开始。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一参数是RR,所述参数组计算单元执行所述第一参数RR的计算过程,包括:将用于计算所述RR的数据分割成等长的多个区块,在所述多个区块的每一个区块上分别同时进行RRx2和RRx2–N的计算过程。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元还被配置为根据所述中间参数生成位宽拓展后中间参数,以及调用所述参数组计算单元从而根据所述位宽拓展后中间参数生成用于降低位宽的输出参数,其中,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致,所述用于降低位宽的输出参数至少可用于所述当前算子模式的计算过程中的模幂计算。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述控制单元还被配置为根据所述中间参数生成所述位宽拓展后中间参数,包括:比较所述中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽,如果相同则将所述中间参数作为所述位宽拓展后中间参数,如果不相同则对所述中间参数进行高位补零以得到所述位宽拓展后中间参数。
第三方面,本申请实施例提供了一种参数计算方法,用于隐私计算。所述参数计算方法包括:根据当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,其中,每次执行参数组计算包括根据与所述当前算子模式相对应的密钥生成中间参数以及根据所述中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数;和根据所述当前算子模式将所述输出参数发送给多个下级模块中的一个或者多个下级模块,从而使得所述一个或者多个下级模块协同完成所述当前算子模式。其中,所述多个下级模块至少包括模幂计算模块、前处理模块、加密后处理模块、解密后处理模块以及模乘计算模块。
第三方面所描述的技术方案,在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,包括:当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,执行一次参数组计算。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,包括:当所述当前算子模式是RSA交集或者Paillier加密,执行一次参数组计算;当所述当前算子模式是Paillier解密,执行六次参数组计算。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参数计算方法还包括:根据所述中间参数生成位宽拓展后中间参数,以及根据所述位宽拓展后中间参数生成用于降低位宽的输出参数,其中,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致,所述用于降低位宽的输出参数至少可用于所述当前算子模式的计算过程中的模幂计算。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的一种实施方式的用于联邦学习和隐私计算的参数计算模块的结构示意图。
图2示出了本申请实施例提供的另一种实施方式的用于联邦学习和隐私计算的参数计算模块的结构示意图。
图3示出了本申请实施例提供的用于联邦学习和隐私计算的处理系统的框图。
图4示出了本申请实施例提供的用于联邦学习和隐私计算的参数计算方法的流程示意图。
具体实施方式
本申请实施例为了解决,如何在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率,这样的技术难题,通过提供了一种用于联邦学习和隐私计算的参数计算装置、系统及方法,从而实现了不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
本申请实施例可用于以下应用场景,包括但是不限于,多方安全计算、与联邦学习有关的机器学习模型训练、数据安全、隐私保护或者应用隐私计算框架或算法的其它应用场景等。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种实施方式的用于联邦学习和隐私计算的参数计算模块的结构示意图。如图1所示,参数计算装置110包括输入缓存器120、控制单元122、参数组计算单元130、参数缓存器140以及输出选择器150。其中,输入缓存器120用于从相对于参数计算装置110而言的外部接收密钥k,例如按照每次接收一个密钥k的方式连续地接收多个密钥k,或者例如按照一次性接收至少两个密钥k的方式接收多个密钥k,或者按照任意可能的方式接收一个或者多个密钥k。输入缓存器120将所接收的密钥k存入输入缓存器120内的用于存储数据的元件,例如寄存器或任何其他形式的合适存储介质。输入缓存器120将用于参数计算的密钥k发送给参数组计算单元130,不同的密钥k对应不同的参数计算需求。参数组计算单元130包括第一参数RR计算单元132、第二参数U0计算单元134以及第三参数NP计算单元136。针对每一个密钥k,参数组计算单元130根据该密钥k计算一组参数,也就是与该密钥k对应的第一参数RR、与该密钥k对应的第二参数U0以及与该密钥k对应的第三参数NP。具体地,第一参数RR计算单元132用于根据该密钥k来计算与该密钥k对应的第一参数RR,第二参数U0计算单元134用于根据该密钥k来计算与该密钥k对应的第二参数U0,第三参数NP计算单元136用于根据该密钥k来计算与该密钥k对应的第三参数NP。这里,针对每一个密钥k,参数组计算单元130根据该密钥k计算得到的一组参数可以理解为包括三个参数的三元组或者说参数组,这三个参数或者说参数组是分别与该密钥k对应的第一参数RR、第二参数U0以及第三参数NP。参数组计算单元130将计算得到的参数组发送给参数缓存器140。参数缓存器140可以包括三个不同的缓存单元用于分别存储参数组中的三个参数也就是第一参数RR、第二参数U0以及第三参数NP,或者,参数缓存器140可以将归属于同一个参数组的参数存储在一起如按照三元组的数据格式存储,或者可以通过任意合适的方式存储参数组。参数缓存器140将所存储的参数组发送给输出选择器150。输出选择器150用于选择性地将输出参数P发送给一个或者多个下级模块,这些下级模块是用于实现各种算子模式。例如,当算子模式是密态乘法时,则输出选择器150将输出参数P发送给模幂计算模块用于模幂计算;又例如当算子模式是Paillier解密时,则输出选择器将输出参数P发送给模幂计算模块和解密后处理模块。输出参数P根据具体算子模式决定,并且可以通过例如密钥k和参数组计算单元130所计算得到的参数组确定,下面详细说明。
请继续参阅图1,控制单元122与参数组计算单元130、参数缓存器140以及输出选择器150分别通信连接并分别进行控制操作。控制单元122根据当前需要参数计算的算子模式来进行控制,包括状态控制和数据传输控制,从而使得参数计算装置110能够根据不同算子模式提供对应的参数。下面结合公式(1)至公式(4)来说明控制单元122的运行原理以及参数计算装置110的参数计算机制。
在公式(1)中,k是密钥,N是中间参数,公式(1)示出了中间参数N是根据密钥k确定,f(k)表示基于密钥k的函数,例如在Paillier加密的场景下f(k)表示为密钥k的平方。在公式(2)中,N是中间参数,n是中间参数N的位宽,RR是与该密钥k对应的第一参数RR,第一参数RR是用于蒙哥马利化运算或者说将数据转化到蒙哥化域的参数。公式(1)和公式(2)一起示意性说明了如何根据密钥k得到与密钥k对应的第一参数RR,该第一参数RR用于蒙哥马利化运算。在公式(3)中,N是中间参数,n是中间参数N的位宽,U0是与该密钥k对应的第二参数U0,第二参数U0是用于平方乘计算的初始参数,可应用于通过蒙哥马利化算法和平方乘算法来实现模幂计算和/或模乘计算。公式(1)和公式(3)一起示意性说明了如何根据密钥k得到与该密钥k对应的第二参数U0,该第二参数U0用于平方乘计算。在公式(4)中,N是中间参数,n是中间参数N的位宽,N-1是模逆计算或者说是对中间参数N求逆元,r是输入数据,NP是与该密钥k对应的第三参数NP,第三参数NP是用于蒙哥马利化模乘计算的参数。输入数据r可以表示成2的幂次,且幂指数可以是能配置的整数例如64,也就是说输入数据r可以是2的64次幂。一般情况下可以将输入数据r看做固定的数值也就是2的64次幂。公式(1)和公式(4)一起示意性说明了如何根据密钥k得到与该密钥k对应的第三参数NP,第三参数NP用于蒙哥马利化模乘计算。从公式(2)和公式(3)可知,求解第一参数RR的过程与求解第二参数U0的过程相似,因此满足计算资源上复用性,这一点下面会详细说明。
如此,通过上述公式(1)至公式(4),可以根据密钥k分别得到与该密钥k对应的第一参数RR、与该密钥k对应的第二参数U0以及与该密钥k对应的第三参数NP。与同一个密钥k对应的三个参数也就是第一参数RR、第二参数U0以及第三参数NP,一起称之为与密钥k对应的参数组。在联邦学习和隐私计算的各种应用场景中,可以根据上述公式(1)至公式(4)而得到可用于各种算子模式的参数。具体地,当算子模式是密态乘法、密态加法等,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块用于模幂计算;当算子模式是密态矩阵乘法时,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块、模乘计算模块以及相应后处理单元等;当算子模式是RSA交集、Paillier加密等,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块或者前处理模块、加密后处理模块;当算子模式是Paillier解密,根据Paillier解密的需要输入四个数据并计算共计6个参数组,然后将6个参数组作为输出参数P发送给模幂计算模块和解密后处理模块。因此,根据当前需要参数计算的算子模式,可以在上述公式(1)至公式(4)的基础上,通过密钥k和中间参数N来计算参数组,进而得到不同算子模式所需要的参数。而且,因为参数组的计算方式是相对固定的,或者说第一参数RR、第二参数U0以及第三参数NP各自的计算方式是相对固定的,这意味着可以通过模块化处理和并行处理等技术实现硬件加速。应当理解的是,本申请实施例所提及的当算子模式是Paillier加密的情况,既包括可以表达成p=(1+me)remodN的运算形式,也包括可以表达成p=(1+me)modN的运算形式。并且,当算子模式是RSA交集时,会用到DH算法、哈希算法以及混淆加密等。
请继续参阅图1,上面提到,控制单元122根据当前需要参数计算的算子模式来进行控制,包括状态控制和数据传输控制,从而使得参数计算装置110能够根据不同算子模式提供对应的参数。控制单元122与参数组计算单元130通信连接并且控制参数组计算单元130来根据当前需要参数计算的算子模式进行参数组的计算,例如当算子模式是Paillier解密时控制参数组计算单元130来计算共计6个参数组。控制单元122还与参数缓存器140通信连接并且控制参数缓存器140将相应参数组发送给输出选择器150。控制单元122还与输出选择器150通信连接并且控制输出选择器150将输出参数P发送给相应的下级模块,例如当算子模式是RSA交集、Paillier加密时控制输出选择器150将输出参数P发送给模幂计算模块或者前处理模块、加密后处理模块。并且,中间参数N是根据密钥k确定,中间参数N的计算可以通过控制单元122来完成,控制单元122将计算得到的中间参数N发送给参数组计算单元130;或者,中间参数N的计算可以通过参数组计算单元130或者任意另行提供的参数计算装置110的部件来完成。控制单元122可以根据当前需要参数计算的算子模式来选择是否让输出参数P包括中间参数N,例如当算子模式是密态乘法、密态加法时,控制单元122可以选择让输出参数P包括中间参数N。可以理解的是,当算子模式是其它算法或者任意适合用于联邦学习和隐私计算的算法,均可以通过控制单元122进行状态控制和数据传输控制,通过控制参数组计算单元130所需要进行计算的次数,或者说所需要计算的参数组的次数,从而得到相应的参数。并且,本申请实施例所适用的联邦学习和隐私计算的算法,包括在本申请提交或公布之后随着联邦学习和隐私计算的概念的演变而被包括在联邦学习和隐私计算的概念相关理解中的相关算法。如此,通过控制单元122根据当前需要参数计算的算子模式来进行控制,包括状态控制和数据传输控制,从而实现了根据当前需要参数计算的算子模式,在上述公式(1)至公式(4)的基础上,通过密钥k和中间参数N来计算参数组,进而得到不同算子模式所需要的参数。并且,应当理解的是,本申请实施例所提及的根据当前需要参数计算的算子模式进行参数组的计算,适用于当算子模式是密态乘法的情况,还适用于当算子模式是密态加法的情况。进一步地,考虑到可以将同态加密密态下的密文运算式拆分后得到若干种基本形式包括一维向量形式和/或二维矩阵形式的乘加运算,包括但不限于,均是一维向量形式或二维矩阵形式的两个密文数据相加,一维向量形式的密文数据和二维矩阵形式的密文数据相加,一维向量形式的明文数据和二维矩阵形式的密文数据的乘法;二维矩阵形式的明文数据和二维矩阵形式的密文数据的点乘或者叫做内积;二维矩阵形式的明文数据和二维矩阵形式的密文数据的叉乘或者叫做外积。因此,上述这些基本形式的各种可能的组合也可以作为被拆分后的基本形式,从而覆盖各种可能的密文运算式的具体表达形式。而这些基本形式可以进一步拆分成基础的密文乘法运算和基础的密文加法运算的组合,或者说密态乘法和密态加法的组合运算。如此,本申请实施例所适用的算子模式包括了各种基础形态和复杂形态的密态乘法、密态加法,因此参数计算装置110能够根据不同算子模式提供对应的参数也应理解为覆盖了各种基础形态和复杂形态的密态乘法、密态加法。以操作数K1、K2、C1和C2作为例子,根据当前需要参数计算的算子模式进行参数组的计算,包括当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算时执行一次参数组计算,其中,密态乘法表示为K1*C1,密态加法表示为C1+C2,而密态乘法和密态加法的组合运算可以表示为例如K1*C1+C2的密态乘法,或者例如K1*C1+ K2*C2的累乘,或者例如矩阵乘法。另外,当前算子模式是密态乘法,该密态乘法包括:一维向量形式的明文数据和一维向量形式的密文数据的乘法,一维向量形式的明文数据和二维矩阵形式的密文数据的乘法,二维矩阵形式的明文数据和二维矩阵形式的密文数据的点乘,或者二维矩阵形式的明文数据和二维矩阵形式的密文数据的叉乘。当算子模式是密态加法,该密态加法包括:均是一维向量形式或二维矩阵形式的两个密文数据相加,或者一维向量形式的密文数据和二维矩阵形式的密文数据相加。
应当理解的是,控制单元122获悉当前需要参数计算的算子模式的方式可以是任意合适的技术手段。例如,控制单元122可以从相对于参数计算装置110而言的外部接收指令,该指令指示了当前需要参数计算的算子模式。再例如,控制单元122可以通过编程的方式而实施控制操作。再例如,密钥k可以跟包含当前需要参数计算的算子模式的信息一起被发送给参数计算装置110,然后包含当前需要参数计算的算子模式的信息被发送给控制单元122,从而让控制单元122可以实时获悉当前需要参数计算的算子模式。再例如,联邦学习和隐私计算的特定任务可以被拆分成一系列的算子模式的组合,进而得到指示了算子模式的控制流信息以及相应的数据流信息,用于参数计算的数据可以被流水式地发送给参数计算装置110,参数计算装置110则可以根据控制流信息而连续地计算参数同时将已经计算好的参数发送给相应的下级模块,每次计算好的参数所对应的下级模块也是可以通过对任务的拆分和控制流信息确定。如此,实现了参数的计算和已计算参数的发送是流水式进行,也实现了用于参数计算的数据被流水式地接收,从而提高了整体计算效率。并且,因为参数计算装置110可以通过对参数组计算单元130及其他部件的控制来得到不同算子模式所需要的参数,因此具有适应不同算子模式的通用性。
请继续参阅图1,在一种可能的实施方式中,控制单元122与输入缓存器120通信连接(未示出)并且可以读取在输入缓存器120中存储的之前接收的密钥k,从而将之前接收的密钥k与当前接收的密钥k进行比较。如上所述,特别是结合公式(1)至公式(4)可知,不同的密钥k对应不同的参数计算需求,而相同的密钥k则意味着公式(1)至公式(3)的计算结果是一致的,也就是说,相同的密钥k意味着相同的中间参数N、第一参数RR和第二参数U0。并且,密钥k可以更一般性地被理解为用于参数计算的数据,而参数计算装置110被配置为根据需要进行参数计算的算子模式的有关信息,根据用于参数计算的数据进行计算得出该算子模式所需要的参数。具体地,用于参数计算的数据(如密钥k)被连续地(例如,流水式地)发送给参数计算装置110,控制单元122可以将在前接收的密钥和在后接收的密钥进行比较,并判断位宽或称数据宽度是否相同;如果位宽相同,则再判断数值是否相同;如果数值相同,则在参数计算方式也相同的情况下可以复用根据在前接收的密钥计算得到的参数,作为与在后接收的密钥相对应的参数。相对的,如果位宽不相同,则不可以复用根据在前接收的密钥计算得到的参数,从而有利于快速判断。例如,设在先接收的密钥与在后接收的密钥在数据宽度和数值上相同,则意味着中间参数N、第一参数RR和第二参数U0均相同。再设输入数据r可以采用同一个固定数值例如2的64次幂,则意味着第三参数NP也相同。另外,除了比较密钥的数据宽度和数值,还可以比较在前的算子模式和在后的算子模式,并判断二者是否适用相同的参数计算方式。例如,密态乘法的算子模式与密态加法的算子模式,适用相同的参数计算方式,并且输出参数也会被发送给相同的下级模块也就是模幂计算模块。因此,控制单元122通过从输入缓存器120获取相对于当前要进行参数计算的算子模式而言的在前接收的算子模式所对应的用于参数计算的数据如密钥,可以比较在前接收的算子模式的参数计算方式和当前要进行参数计算的算子模式的参数计算方式,或者可以比较与在前接收的算子模式对应的密钥的数值宽度和当前算子模式的密钥的数值宽度,或者可以比较与在前接收的算子模式对应的密钥的数值和当前算子模式的密钥的数值,从而判断是否可以复用与在前接收的算子模式对应的参数组和/或输出参数,有利于模块复用和参数复用,提高整体计算性能和资源利用效率。因此,只有当算子模式的参数计算方式一致、密钥数值宽度或称密钥位宽一致并且密钥数值也一致,才可以复用与在前接收的算子模式对应的参数组和/或输出参数。而为了达到快速判断的目的,可以优先比较在前接收的算子模式和当前要进行参数计算的算子模式是否有相同的参数计算方式,如果不相同则不复用参数;还可以优先比较与在前接收的算子模式对应的密钥和当前算子模式的密钥的位宽或者数值宽度,如果不相同则不复用参数。在一些示例性实施例中,考虑到参数组中三个参数的计算速度是不一致的,设三个参数也就是第一参数RR、第二参数U0以及第三参数NP同时开始进行计算(这意味着第一参数RR计算单元132、第二参数U0计算单元134以及第三参数NP计算单元136同时开始启动计算),则一般情况下,第三参数NP先计算完成,然后是第二参数U0,最后计算完成的是第一参数RR。因此可以根据当前算子模式的密钥开始参数计算,在第三参数NP计算完成后,比较当前算子模式的第三参数NP和在前接收的算子模式的第三参数,如果相同,则可以推测出第一参数RR和第二参数U0应该也相同,从而可以提前终止还没有完成的第一参数RR的计算和第二参数U0的计算。如此,可以利用参数组中三个参数彼此的计算完成所需时间不一致,可以通过先计算完成的参数进行是否可以复用参数的判断,从而可能提前终止尚未完成的参数计算。应当理解的是,根据在前接收的密钥计算得到的参数可以存储在参数缓存器140中。参数缓存器140可以采用任意合适的存储技术来保存根据在前接收的密钥计算得到的参数,从而使得后续可以复用参数。例如,参数缓存器140可以通过查表式或者先进先出(first in first out,FIFO)存储器来保存与在前接收的多个算子模式及相应密钥相对应的参数。
请继续参阅图1,上面提到了,密钥k可以被理解为用于参数计算的数据,参数计算装置110被配置为根据需要进行参数计算的算子模式的有关信息来判断需要计算多少轮,每一轮中根据用于参数计算的数据进行计算得出该算子模式所需要的参数也就是参数组(第一参数RR、第二参数U0以及第三参数NP),最后还根据需要进行参数计算的算子模式的有关信息来选择性地将输出参数发送给相应的下级模块。为了提高计算速度,可以通过判断是否可以复用与在前接收的算子模式对应的参数组和/或输出参数(例如,比较在前接收的算子模式和当前要进行参数计算的算子模式,又例如,比较与在前接收的算子模式对应的密钥和当前算子模式的密钥的数值宽度和/或数值),从而利用模块复用和参数复用来提高整体计算性能和资源利用效率。在一种可能的实施方式中,结合上述公式(1)至公式(4)所示出的参数组中三个参数,也就是第一参数RR、第二参数U0以及第三参数NP之间的数学关系,可以利用第一参数RR的过程与求解第二参数U0的过程之间的相似性。具体地,可以通过复用电路资源来提高并行计算第一参数RR和第二参数U0的速度。例如,可以通过第一参数RR计算单元132和第二参数U0计算单元134之间复用计算资源,如通过同一个FPGA硬件平台来实现第一参数RR和第二参数U0的计算,从而提高资源利用效率。在一种可能的实施方式中,可以对第一参数RR和第二参数U0的计算进行优化。在公式(2)和公式(3)中,均是采用中间参数N的位宽n。考虑到中间参数N是根据密钥k确定,而中间参数N的位宽可能不等于中间参数N的有效位宽(从中间参数N的最高非零比特位开始计算,或者说从二进制化的中间参数N的最高位的1开始直到最低位)。因此,可以利用中间参数N的有效位宽,设中间参数N的有效位宽是m,可以将公式(2)和公式(3)进行优化,从而得到公式(5)和公式(6)如下。
在公式(5)中,N是中间参数,n是中间参数N的位宽,m是中间参数N的有效位宽,RR是与该密钥k对应的第一参数RR,第一参数RR是用于蒙哥马利化运算或者说将数据转化到蒙哥化域的参数。公式(1)和公式(5)一起示意性说明了如何根据密钥k得到与密钥k对应的第一参数RR,该第一参数RR用于蒙哥马利化运算。在公式(6)中,N是中间参数,n是中间参数N的位宽,m是中间参数N的有效位宽,U0是与该密钥k对应的第二参数U0,第二参数U0是用于平方乘计算的初始参数,可应用于通过蒙哥马利化算法和平方乘算法来实现模幂计算和/或模乘计算。公式(1)和公式(6)一起示意性说明了如何根据密钥k得到与该密钥k对应的第二参数U0,该第二参数U0用于平方乘计算。如此,基于公式(5)所示出的数学关系,计算第一参数RR时需要执行2n-m+1次的移位加法操作;基于公式(6)所示出的数学关系,计算第二参数U0时需要执行n-m+1次的移位加法操作。通过引入中间参数N的有效位宽m,可以减少固定计算的轮次也就是减少移位加法操作的执行次数,从而缩短了计算时间,特别是当中间参数N的有效位宽m较小时对提高整体计算性能有显著的效果。其中,控制单元122或者参数组计算单元130可以配置为确定中间参数N的有效位宽m以及根据中间参数N的有效位宽m来进行优化后的第一参数RR和第二参数U0的计算。
请继续参阅图1,对第一参数RR的计算,也就是第一参数RR计算单元132的计算,可以通过同时计算RRx2 和RRx2–N来实现加速,从而用并行计算来替代顺序计算,减少循环时间。具体地,可以将被计算的RR拆分成多个等长的区块或者字段,在每个区块或者字段上同时进行x2和x2-N的计算,这样可以有效节省整体计算时间。第一参数RR计算单元132的内部结构可以采用任意合适的电路拓扑结构或者架构,只要能实现同时计算RRx2和RRx2–N。在一些示例性实施例中,第一参数RR计算单元132可以包括两个并行的计算单元,分别用于计算RRx2和RRx2–N。
如此,密钥k可以被理解为用于参数计算的数据,参数计算装置110被配置为根据需要进行参数计算的算子模式的有关信息来判断需要计算多少轮,每一轮中根据用于参数计算的数据进行计算得出该算子模式所需要的参数也就是参数组(第一参数RR、第二参数U0以及第三参数NP),最后还根据需要进行参数计算的算子模式的有关信息来选择性地将输出参数发送给相应的下级模块。为了提高计算速度,可以通过判断是否可以复用与在前接收的算子模式对应的参数组和/或输出参数(例如,比较在前接收的算子模式和当前要进行参数计算的算子模式,又例如,比较与在前接收的算子模式对应的密钥和当前算子模式的密钥的数值宽度和/或数值),从而利用模块复用和参数复用来提高整体计算性能和资源利用效率。并且,通过利用中间参数N的有效位宽m实现了减少迭代计算的次数和整体运算量,通过同时计算RRx2和RRx2–N,实现了节省计算时间。因此,本申请实施例提供的参数计算装置110在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
图2示出了本申请实施例提供的另一种实施方式的用于联邦学习和隐私计算的参数计算模块的结构示意图。如图2所示,图2所示的参数计算装置210包括输入缓存器220、控制单元222、参数组计算单元230、参数缓存器240以及输出选择器250。图2所示的参数计算装置210与图1所示的参数计算装置110具有相似的结构,并且,图2所示的参数计算装置210所包括的输入缓存器220、控制单元222、参数组计算单元230、参数缓存器240以及输出选择器250分别与图1所示的参数计算装置110所包括的输入缓存器120、控制单元122、参数组计算单元130、参数缓存器140以及输出选择器150,分别具有相似的结构和功能,在此不再赘述。因此,图2所示的参数计算装置210被配置为根据需要进行参数计算的算子模式的有关信息来判断需要计算多少轮,每一轮中根据用于参数计算的数据(如密钥k)进行计算得出该算子模式所需要的参数也就是参数组(第一参数RR、第二参数U0以及第三参数NP),最后还根据需要进行参数计算的算子模式的有关信息来选择性地将输出参数发送给相应的下级模块。在联邦学习和隐私计算的各种应用场景中,有时候需要考虑下级模块在位宽降低方面的需求,例如通过降低数据位宽可以为模幂计算节约一半左右的计算时间。而位宽降低方面的需求可以通过在参数计算方面的优化实现,下面进行详细说明。
请参阅图2,参数计算装置210还包括位宽匹配模块260,位宽匹配模块260与控制单元222通信连接并且从相对于参数计算装置210的外部接收输入数据r。结合上述公式(4)和第三参数NP的计算可知,第三参数NP是用于蒙哥马利化模乘计算的参数而第三参数NP的计算需要以输入数据r作为模数。一般情况下,可以将输入数据r看做固定的数值例如2的64次幂。输入数据r可以表示成2的幂次,且幂指数可以是能配置的整数。这里,当输入数据r的位宽较大时,就可以通过参数计算方面的优化,从而使得下级模块可以通过处理降低过位宽的输入数据而等效于处理原位宽的输入数据。具体地,位宽匹配模块260还接收密钥k,并对中间参数N(根据密钥k确定)的位宽和输入数据r的位宽进行比较,判断二者是否匹配。多数情况下,输入数据r的位宽要远大于中间参数N的位宽,所以位宽匹配模块260在判断中间参数N的位宽和输入数据r的位宽不一致后,可以通过高位补零的方式,也就是在中间参数N的高位补零的方式,从而得到高位补零后的中间参数N,也称作位宽拓展后中间参数NR。位宽拓展后中间参数NR的位宽与输入数据r的位宽一致。应当理解的是,位宽匹配模块260还可以从控制单元222获得中间参数N,而控制单元222用于根据密钥k计算得到中间参数N;或者,位宽匹配模块260还可以从控制单元222获得中间参数N,而控制单元222从参数组计算单元230获得中间参数N,而参数组计算单元230用于根据密钥k计算得到中间参数N。在一些示例性实施例中,中间参数N的计算可以通过控制单元222来完成,或者,中间参数N的计算可以通过参数组计算单元230或者任意另行提供的参数计算装置210的部件来完成。总之,位宽匹配模块260可以不接收密钥k而是从其它部件获得中间参数N,图2中所示出的位宽匹配模块260接收密钥k仅仅只是一种可能的实施方式并非限制性。并且,位宽匹配模块260可以与控制单元222视为一个整体,例如位宽匹配模块260可以作为控制单元222的一部分或者附加部分,这些可以根据实际应用场景和需求进行调整,在此不做具体限定。
请继续参阅图2,根据输入数据r和密钥k,可以确定位宽拓展后中间参数NR,位宽拓展后中间参数NR是对中间参数N也即密钥k进行高位补零后得到,位宽拓展后中间参数NR的位宽与输入数据r的位宽一致。接着,位宽拓展后中间参数NR被发送给参数组计算单元230,参数组计算单元230包括第一参数RR计算单元232、第二参数U0计算单元234以及第三参数NP计算单元236。参数组计算单元230根据位宽拓展后中间参数NR计算新的参数组,也就是使得第一参数RR计算单元232根据位宽拓展后中间参数NR来计算与位宽拓展后中间参数NR对应的第一参数RR,第二参数U0计算单元234根据位宽拓展后中间参数NR来计算与位宽拓展后中间参数NR对应的第二参数U0,第三参数NP计算单元236根据位宽拓展后中间参数NR来计算与位宽拓展后中间参数NR对应的第三参数NP。这样得到的与位宽拓展后中间参数NR对应的参数组,可以与位宽拓展后中间参数NR一起被发送给需要降低位宽的下级模块。这些需要降低位宽的模块根据位宽拓展后中间参数NR以及与位宽拓展后中间参数NR对应的参数组(根据位宽拓展后中间参数NR计算得到的第一参数RR、第二参数U0以及第三参数NP),可以在计算中有效地降低位宽,从而大幅节省计算时间。例如,可以将位宽拓展后中间参数NR以及与位宽拓展后中间参数NR对应的参数组发送给模幂计算模块从而降低模幂计算的时间。
应当理解的是,参数计算装置210被配置为根据需要进行参数计算的算子模式的有关信息来判断需要计算多少轮,每一轮中根据用于参数计算的数据进行计算得出该算子模式所需要的参数也就是参数组(第一参数RR、第二参数U0以及第三参数NP),最后还根据需要进行参数计算的算子模式的有关信息来选择性地将输出参数发送给相应的下级模块。并且,参数计算装置210还可以通过位宽匹配和高位补零操作,从而生成用于降低位宽的参数组,并且将用于降低位宽的参数组发送给有降低位宽需求的下级模块,从而通过降低位宽来节省计算时间。当输入数据的位宽与中间参数的位宽一致时,或者说位宽匹配结果是肯定的,则不需要额外生成用于降低位宽的参数组;当输入数据的位宽与中间参数的位宽不一致时,或者说位宽匹配结果是否定的,则在计算出该算子模式所需要的参数后可能还需要额外生成用于降低位宽的参数组。只要是有降低位宽需求的下级模块,或者说可以通过降低位宽来节省计算时间的下级模块,均可以通过额外生成的用于降低位宽的参数组来实现节省计算时间的效果。例如,当算子模式是密态乘法、密态加法等,下级模块包括了模幂计算模块,则可以通过额外生成的用于降低位宽的参数组来降低密态乘法、密态加法等的计算时间。再例如,当算子模式是Paillier解密,下级模块包括了模幂计算模块,则可以通过额外生成的用于降低位宽的参数组来降低Paillier解密的计算时间。考虑到模幂计算模块或者说模幂计算在联邦学习和隐私计算的各种应用场景中的广泛应用,因此应对各种算子模式的复杂多变的需求,大体上都可以通过图2所示的参数计算装置210在参数计算方面的优化,包括但是不限于,位宽匹配和高位补零操作以及额外生成的用于降低位宽的参数组,从而实现降低计算时间和提升整体计算性能。
图3示出了本申请实施例提供的用于联邦学习和隐私计算的处理系统的框图。如图3所示,处理系统300包括输入接口302、控制模块304、参数计算装置310、参数分发模块312、数据分发模块314、模幂计算模块320、前处理模块330、加密后处理模块332、数据聚合模块340、解密后处理模块342、模乘计算模块344以及输出接口350。其中,输入接口302用于与相对于处理系统300而言的外部通信并接收待处理数据。输入接口302与控制模块304连接,并将所接收的待处理数据发送给控制模块304。控制模块304分别与数据分发模块314、参数计算装置310以及前处理模块330通信连接。数据分发模块314与模幂计算模块320通信连接。参数计算装置310与参数分发模块312通信链接,参数分发模块312与模幂计算模块320通信连接。模幂计算模块320包括多个模幂计算引擎,用于针对模幂计算进行并行加速处理。控制模块304将用于模幂计算的数据发送给数据分发模块314,数据分发模块314将用于模幂计算的数据分发给模幂计算模块320中的模幂计算引擎。参数计算装置310将用于模幂计算的参数发送给参数分发模块312,参数分发模块312将用于模幂计算的参数分发给模幂计算模块320中的模幂计算引擎。如此,通过数据分发模块314和参数分发模块312实现了分发用于模幂计算的数据及参数给模幂计算模块320中的模幂计算引擎,从而有利于对模幂计算进行并行化加速处理。模幂计算模块320中的模幂计算引擎的输出结果被发送给数据聚合模块340进行整合,从而得到模幂计算结果。
请继续参阅图3,控制模块304还与前处理模块330通信连接,前处理模块330与加密后处理模块332通信地连接,加密后处理模块332与数据聚合模块340通信连接。前处理模块330用于根据处理系统300当前要处理的任务而提供相应的运算操作,前处理模块330所提供的运算操作可以是多种预设运算操作中的一种。例如,设处理系统300当前要处理的任务与Paillier同态加密算法有关,则前处理模块330提供与固定函数操作相关的运算,并包括大数乘法操作和大数加法操作以及对整个数据的蒙哥马利化运算。加密后处理模块332配置为根据前处理模块330的运算结果以及模幂计算模块320所提供的模幂计算结果,提供其他运算操作例如进行蒙哥马利化域下模乘计算再进行去蒙哥马利化运算,从而得到加密结果。如此,通过前处理模块330和加密后处理模块332的协同合作,再通过模幂计算模块320所提供的模幂计算结果,可以实现诸如Paillier同态加密算法等算子模式。类似地,数据聚合模块340与解密后处理模块342通信连接,解密后处理模块342配置为根据模幂计算模块320所提供的模幂计算结果提供其他运算操作从而得到解密结果。类似地,数据聚合模块340与模乘计算模块344通信连接。模乘计算模块344配置为根据模幂计算模块320所提供的模幂计算结果而提供模乘计算,从而完成例如密态运算等可以基于模幂计算和模乘计算实现的算子模式。其中,参数计算装置310分别与参数分发模块312、前处理模块330、加密后处理模块332、解密后处理模块342以及模乘计算模块344通信地连接,并配置为向这些下级模块选择性地发送输出参数以完成相应的运算。
请继续参阅图3,在一种可能的实施方式中,参数计算装置310与图1所示的参数计算装置110具有相似的结构,在此不再赘述。因此,联邦学习和隐私计算的特定任务可以被拆分成一系列的算子模式的组合,进而得到指示了算子模式的控制流信息以及相应的数据流信息,用于参数计算的数据可以被流水式地发送给参数计算装置310,参数计算装置310则可以根据控制流信息而连续地计算参数同时将已经计算好的参数发送给相应的下级模块,每次计算好的参数所对应的下级模块也是可以通过对任务的拆分和控制流信息确定,从而具有适应不同算子模式的通用性。当算子模式是任意适合用于联邦学习和隐私计算的算法,均可以通过参数计算装置310得到相应的参数并将输出参数发送给相应下级模块。请参考上述关于图1所示的参数计算装置110的运行原理,例如当算子模式是密态乘法、密态加法等,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块320用于模幂计算(通过参数分发模块312)。再例如,当算子模式是密态矩阵乘法时,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块320、模乘计算模块344以及后处理单元(例如加密后处理模块332、解密后处理模块342)。再例如,当算子模式是RSA交集、Paillier加密等,需要根据密钥k计算出中间参数N,再根据中间参数N计算出参数组(第一参数RR、第二参数U0以及第三参数NP),然后将中间参数N和参数组一起作为输出参数P发送给模幂计算模块320或者前处理模块330、加密后处理模块332。再例如,当算子模式是Paillier解密,需要根据Paillier解密的需要输入四个数据并计算共计6个参数组,然后将6个参数组作为输出参数P发送给模幂计算模块320和解密后处理模块342。因此,参数计算装置310根据指示了算子模式的控制流信息,可以确定相应的参数计算方式以及相应的下级模块也就是接受计算好的参数的模块。例如,当控制流信息指示算子模式是密态乘法、密态加法等,相应的下级模块是模幂计算模块320;当控制流信息指示算子模式是密态矩阵乘法,相应的下级模块是模幂计算模块320、模乘计算模块344以及后处理单元(例如加密后处理模块332、解密后处理模块342);当控制流信息指示算子模式是RSA交集、Paillier加密,相应的下级模块是模幂计算模块320或者前处理模块330、加密后处理模块332;当控制流信息指示算子模式是Paillier解密,相应的下级模块是模幂计算模块320和解密后处理模块342。因此,参数计算装置310可以通过内部的输出选择器来根据当前需要参数计算的算子模式的信息来选择性地将输出参数P发送给一个或者多个下级模块。
如此,图3所示的处理系统300可以适用于联邦学习和隐私计算相关的各种应用场景,包括加密算法、解密算法或者密态运算等各种复杂算子模式,通过控制模块304来协调控制各个模块从而提供相应的输出结果,最后通过输出接口350将相应的输出结果输出到外部,有利于复用计算资源以及提高整体计算性能和节省功耗。另外,处理系统300的参数计算装置310被配置为根据需要进行参数计算的算子模式的有关信息来判断需要计算多少轮,每一轮中根据用于参数计算的数据进行计算得出该算子模式所需要的参数也就是参数组(第一参数RR、第二参数U0以及第三参数NP),最后还根据需要进行参数计算的算子模式的有关信息来选择性地将输出参数发送给相应的下级模块。为了提高计算速度,可以通过判断是否可以复用与在前接收的算子模式对应的参数组和/或输出参数(例如,比较在前接收的算子模式和当前要进行参数计算的算子模式,又例如,比较与在前接收的算子模式对应的密钥和当前算子模式的密钥的数值宽度和/或数值),从而利用模块复用和参数复用来提高整体计算性能和资源利用效率。并且,通过利用中间参数N的有效位宽m实现了减少迭代计算的次数和整体运算量,通过同时计算RRx2和RRx2–N,实现了节省计算时间。因此,本申请实施例提供的处理系统300的参数计算装置310在联邦学习和隐私计算的各种应用场景中不仅能够应对各种算子模式的复杂多变的需求而且具有良好的计算速度和资源利用效率。
请参阅图2和图3,在一种可能的实施方式中,处理系统300的参数计算装置310还具有与图2所示的参数计算装置210相似的结构。因此,处理系统300的参数计算装置310可以通过位宽匹配和高位补零操作,从而生成用于降低位宽的参数组,并且将用于降低位宽的参数组发送给有降低位宽需求的下级模块,从而通过降低位宽来节省计算时间。当输入数据的位宽与中间参数的位宽一致时,或者说位宽匹配结果是肯定的,则不需要额外生成用于降低位宽的参数组;当输入数据的位宽与中间参数的位宽不一致时,或者说位宽匹配结果是否定的,则在计算出该算子模式所需要的参数后可能还需要额外生成用于降低位宽的参数组。只要是有降低位宽需求的下级模块,或者说可以通过降低位宽来节省计算时间的下级模块,均可以通过额外生成的用于降低位宽的参数组来实现节省计算时间的效果。例如,当算子模式是密态乘法、密态加法等,下级模块包括了模幂计算模块320,则可以通过额外生成的用于降低位宽的参数组来降低密态乘法、密态加法等的计算时间。再例如,当算子模式是Paillier解密,下级模块包括了模幂计算模块320,则可以通过额外生成的用于降低位宽的参数组来降低Paillier解密的计算时间。考虑到模幂计算模块320或者说模幂计算在联邦学习和隐私计算的各种应用场景中的广泛应用,因此应对各种算子模式的复杂多变的需求,大体上都可以通过图3所示的参数计算装置310在参数计算方面的优化,包括但是不限于,位宽匹配和高位补零操作以及额外生成的用于降低位宽的参数组,从而实现降低计算时间和提升整体计算性能。
应当理解的是,图3所示的处理系统300只是示例性说明了一种实施方式,将加密算法、解密算法或者密态运算等各种复杂算子模式通过处理系统300来执行,并且通过能适应不同算子模式的参数计算装置310实现了相应的参数计算以及向相应下级模块发送计算好的参数,从而达到了良好的计算速度和资源利用效率。在另一些示例性实施例中,处理系统300还可能具有其他不同的架构,例如通过替换、增加或者删除等方式对图3所示的处理系统300的架构进行调整,例如使得处理系统300具有更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本申请实施例提供的参数计算装置310可以适用于不同架构或者设计的处理系统,只要根据具体架构或者设计而确定不同算子模式所对应的下级模块,从而可以利用参数计算装置310适应不同算子模式的通用性,实现对联邦学习和隐私计算的各种应用场景下各种算子模式或者算法的支持,并且具有良好的计算速度和资源利用效率。另外,不同架构或者设计的处理系统下,模幂计算一般都得到广泛应用,因此可以通过参数计算装置310在参数计算方面的优化,包括但是不限于,位宽匹配和高位补零操作以及额外生成的用于降低位宽的参数组,从而实现降低计算时间和提升整体计算性能。
图4示出了本申请实施例提供的用于联邦学习和隐私计算的参数计算方法的流程示意图。如图4所示,参数计算方法400包括以下步骤。
S402:根据当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数。
其中,每次执行参数组计算包括根据与所述当前算子模式相对应的密钥生成中间参数以及根据所述中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数。根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,包括:当所述当前算子模式是密态乘法、密态加法,执行一次参数组计算;当所述当前算子模式是密态矩阵乘法,执行一次参数组计算;当所述当前算子模式是RSA交集或者Paillier加密,执行一次参数组计算;当所述当前算子模式是Paillier解密,执行六次参数组计算。
S404:根据所述当前算子模式将所述输出参数发送给多个下级模块中的一个或者多个下级模块,从而使得所述一个或者多个下级模块协同完成所述当前算子模式。
其中,所述多个下级模块至少包括模幂计算模块、前处理模块、加密后处理模块、解密后处理模块以及模乘计算模块。
S406:根据所述中间参数生成位宽拓展后中间参数,以及根据所述位宽拓展后中间参数生成用于降低位宽的输出参数。
其中,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致,所述用于降低位宽的输出参数至少可用于所述当前算子模式的计算过程中的模幂计算。
如此,图4所示的参数计算方法400可以适用于联邦学习和隐私计算相关的各种应用场景,包括加密算法、解密算法或者密态运算等各种复杂算子模式,通过下级模块协同完成所述当前算子模式,以及利用模块复用和参数复用来提高整体计算性能和资源利用效率,并且通过用于降低位宽的输出参数实现了降低计算时间和提升整体计算性能。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (29)
1.一种处理系统,用于隐私计算,其特征在于,所述处理系统包括:
模幂计算模块,其中,所述模幂计算模块包括多个模幂计算引擎用于进行并行化模幂计算;
参数分发模块,与所述模幂计算模块连接并且被配置为将用于模幂计算的参数分发给所述多个模幂计算引擎;
数据聚合模块,与所述模幂计算模块连接并且被配置为对所述多个模幂计算引擎各自的输出进行聚合处理得到模幂计算结果;
前处理模块,被配置生成前处理结果;
加密后处理模块,与所述前处理模块和所述数据聚合模块连接,并且被配置为根据所述前处理结果和所述模幂计算结果生成加密结果;
解密后处理模块,与所述数据聚合模块连接并且被配置为根据所述模幂计算结果生成解密结果;
模乘计算模块,与所述数据聚合模块连接并且被配置为根据所述模幂计算结果生成密态运算结果;和
参数计算装置,其中,所述参数计算装置分别与所述参数分发模块、所述前处理模块、所述加密后处理模块、所述解密后处理模块以及所述模乘计算模块连接,所述参数计算装置被配置为根据当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,所述参数计算装置每次执行参数组计算包括分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数,
其中,所述参数计算装置还被配置为根据所述当前算子模式选择性地将所述输出参数发送给所述参数分发模块、所述前处理模块、所述加密后处理模块、所述解密后处理模块以及所述模乘计算模块中的一个或者多个。
2.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:
当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,所述参数计算装置被配置为执行一次参数组计算。
3.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:
当所述当前算子模式是RSA交集或者Paillier加密,所述参数计算装置被配置为执行一次参数组计算;
当所述当前算子模式是Paillier解密,所述参数计算装置被配置为执行六次参数组计算。
4.根据权利要求2所述的处理系统,其特征在于,所述密态乘法包括:一维向量形式的明文数据和一维向量形式的密文数据的乘法,一维向量形式的明文数据和二维矩阵形式的密文数据的乘法,二维矩阵形式的明文数据和二维矩阵形式的密文数据的点乘,或者二维矩阵形式的明文数据和二维矩阵形式的密文数据的叉乘。
5.根据权利要求2所述的处理系统,其特征在于,所述密态加法包括:均是一维向量形式或二维矩阵形式的两个密文数据相加,或者一维向量形式的密文数据和二维矩阵形式的密文数据相加。
6.根据权利要求1所述的处理系统,其特征在于,所述前处理模块被配置生成所述前处理结果,包括;所述前处理模块被配置为,根据所述当前算子模式,执行多种预设运算操作中的一种预设运算操作从而生成所述前处理结果。
7.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置每次执行参数组计算包括并行执行所述第一参数、所述第二参数以及所述第三参数各自的计算过程。
8.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式和所述当前算子模式的参数计算方式是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
9.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式相所对应的密钥的位宽和所述当前算子模式相对应的密钥的位宽是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
10.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式相对应的密钥的数值和所述当前算子模式相对应的密钥的数值是否相同,并且如果不相同则判断不可以复用与所述在前算子模式相对应的输出参数。
11.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置被配置为根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到所述输出参数,包括:所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式,所述在前算子模式相所对应的密钥的位宽,所述在前算子模式相对应的密钥的数值是否分别和所述当前算子模式的参数计算方式,所述当前算子模式相对应的密钥的位宽,所述当前算子模式相对应的密钥的数值相同,如果相同则判断可以复用与所述在前算子模式相对应的输出参数。
12.根据权利要求8所述的处理系统,其特征在于,所述参数计算装置被配置为比较相对于所述当前算子模式的在前算子模式的参数计算方式和所述当前算子模式的参数计算方式是否相同,包括:所述参数计算装置被配置为比较与所述在前算子模式相对应的第三参数和与所述当前算子模式相对应的第三参数是否相同,如果相同则判断所述在前算子模式的参数计算方式和所述当前算子模式的参数计算方式相同。
13.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置每次执行参数组计算包括,根据与所述当前算子模式相对应的密钥生成中间参数,以及根据所述中间参数分别生成所述第一参数、所述第二参数以及所述第三参数,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定。
14.根据权利要求13所述的处理系统,其特征在于,所述参数计算装置基于所述中间参数的位宽和所述中间参数的有效位宽来生成所述第一参数和所述第二参数,其中,所述中间参数的有效位宽从所述中间参数的最高非零比特位开始。
15.根据权利要求13或14所述的处理系统,其特征在于,所述第一参数是RR,所述参数计算装置执行所述第一参数RR的计算过程,包括:将用于计算所述RR的数据分割成等长的多个区块,在所述多个区块的每一个区块上分别同时进行RRx2和RRx2–N的计算过程。
16.根据权利要求1所述的处理系统,其特征在于,所述参数计算装置还被配置为根据与所述当前算子模式相对应的密钥生成中间参数,根据所述中间参数生成位宽拓展后中间参数,以及根据所述位宽拓展后中间参数生成用于降低位宽的输出参数,并且所述参数计算装置还被配置为将所述用于降低位宽的输出参数发送给所述参数分发模块,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致。
17.根据权利要求16所述的处理系统,其特征在于,所述参数计算装置还被配置为根据所述中间参数生成所述位宽拓展后中间参数,包括:比较所述中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽,如果相同则将所述中间参数作为所述位宽拓展后中间参数,如果不相同则对所述中间参数进行高位补零以得到所述位宽拓展后中间参数。
18.一种参数计算装置,用于隐私计算,其特征在于,所述参数计算装置包括:
参数组计算单元,其中,所述参数组计算单元被配置为可被调用以便根据与当前算子模式相对应的密钥生成中间参数,以及根据所述中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数,其中,所述中间参数根据与所述当前算子模式相对应的密钥确定;
控制单元,被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到输出参数;和
输出选择器,被配置为根据所述当前算子模式将所述输出参数发送给相对于所述参数计算装置的多个下级模块中的一个或者多个下级模块,从而使得所述一个或者多个下级模块协同完成所述当前算子模式。
19.根据权利要求18所述的参数计算装置,其特征在于,相对于所述参数计算装置的所述多个下级模块包括模幂计算模块、前处理模块、加密后处理模块、解密后处理模块以及模乘计算模块。
20.根据权利要求19所述的参数计算装置,其特征在于,所述模幂计算模块包括多个模幂计算引擎用于进行并行化模幂计算并得到模幂计算结果,所述前处理模块被配置为根据所述当前算子模式执行多种预设运算操作中的一种预设运算操作从而生成前处理结果,所述加密后处理模块被配置为根据所述前处理结果和所述模幂计算结果生成加密结果,所述解密后处理模块被配置为根据所述模幂计算结果生成解密结果,所述模乘计算模块被配置为根据所述模幂计算结果生成密态运算结果。
21.根据权利要求18所述的参数计算装置,其特征在于,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:
当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,所述参数组计算单元的调用次数是一次。
22.根据权利要求18所述的参数计算装置,其特征在于,所述控制单元被配置为根据所述当前算子模式确定所述参数组计算单元的调用次数并调用该次数的所述参数组计算单元得到所述输出参数,包括:
当所述当前算子模式是RSA交集或者Paillier加密,所述参数组计算单元的调用次数是一次;
当所述当前算子模式是Paillier解密,所述参数组计算单元的调用次数是六次。
23.根据权利要求18所述的参数计算装置,其特征在于,所述参数组计算单元基于所述中间参数的位宽和所述中间参数的有效位宽来生成所述第一参数和所述第二参数,其中,所述中间参数的有效位宽从所述中间参数的最高非零比特位开始。
24.根据权利要求18所述的参数计算装置,其特征在于,所述第一参数是RR,所述参数组计算单元执行所述第一参数RR的计算过程,包括:将用于计算所述RR的数据分割成等长的多个区块,在所述多个区块的每一个区块上分别同时进行RRx2和RRx2–N的计算过程。
25.根据权利要求18所述的参数计算装置,其特征在于,所述控制单元还被配置为根据所述中间参数生成位宽拓展后中间参数,以及调用所述参数组计算单元从而根据所述位宽拓展后中间参数生成用于降低位宽的输出参数,其中,所述位宽拓展后中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽一致,所述用于降低位宽的输出参数至少可用于所述当前算子模式的计算过程中的模幂计算。
26.根据权利要求25所述的参数计算装置,其特征在于,所述控制单元还被配置为根据所述中间参数生成所述位宽拓展后中间参数,包括:比较所述中间参数的位宽和与所述当前算子模式相对应的输入数据的位宽,如果相同则将所述中间参数作为所述位宽拓展后中间参数,如果不相同则对所述中间参数进行高位补零以得到所述位宽拓展后中间参数。
27.一种参数计算方法,用于隐私计算,其特征在于,所述参数计算方法包括:
根据当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,其中,每次执行参数组计算包括根据与所述当前算子模式相对应的密钥生成中间参数以及根据所述中间参数分别生成用于蒙哥马利化运算的第一参数、用于平方乘计算的第二参数以及用于蒙哥马利化模乘计算的第三参数;和
根据所述当前算子模式将所述输出参数发送给多个下级模块中的一个或者多个下级模块,从而使得所述一个或者多个下级模块协同完成所述当前算子模式,
其中,所述多个下级模块至少包括模幂计算模块、前处理模块、加密后处理模块、解密后处理模块以及模乘计算模块。
28.根据权利要求27所述的参数计算方法,其特征在于,根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,包括:
当所述当前算子模式是密态乘法、密态加法或者密态乘法和密态加法的组合运算,执行一次参数组计算。
29.根据权利要求27所述的参数计算方法,其特征在于,根据所述当前算子模式确定参数组计算的次数并执行该次数的参数组计算得到输出参数,包括:
当所述当前算子模式是RSA交集或者Paillier加密,执行一次参数组计算;
当所述当前算子模式是Paillier解密,执行六次参数组计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198522.3A CN114021734B (zh) | 2021-10-14 | 2021-10-14 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198522.3A CN114021734B (zh) | 2021-10-14 | 2021-10-14 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114021734A true CN114021734A (zh) | 2022-02-08 |
CN114021734B CN114021734B (zh) | 2022-04-12 |
Family
ID=80056279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111198522.3A Active CN114021734B (zh) | 2021-10-14 | 2021-10-14 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114021734B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546527A (zh) * | 2022-02-22 | 2022-05-27 | 复旦大学 | 一种纵向多方数据聚合计算解决方案系统 |
CN114793155A (zh) * | 2022-04-12 | 2022-07-26 | 支付宝(杭州)信息技术有限公司 | 多方安全计算的方法及装置 |
CN117251805A (zh) * | 2023-11-20 | 2023-12-19 | 杭州金智塔科技有限公司 | 基于广度优先算法的联邦梯度提升决策树模型更新系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160034255A1 (en) * | 2014-08-04 | 2016-02-04 | Samsung Electronics Co., Ltd. | Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN110943832A (zh) * | 2019-11-19 | 2020-03-31 | 江苏恒宝智能系统技术有限公司 | 一种数据加密传输方法 |
CN111832050A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的基于FPGA芯片实现的Paillier加密方案 |
CN112070222A (zh) * | 2020-11-10 | 2020-12-11 | 深圳致星科技有限公司 | 用于联邦学习的处理架构、加速器及方法 |
CN112100673A (zh) * | 2020-09-29 | 2020-12-18 | 深圳致星科技有限公司 | 用于隐私计算的联邦学习加速器和rsa交集计算方法 |
US20210004718A1 (en) * | 2019-07-03 | 2021-01-07 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for training a model based on federated learning |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN112988237A (zh) * | 2021-04-21 | 2021-06-18 | 深圳致星科技有限公司 | 一种Paillier解密系统、芯片和方法 |
CN113282960A (zh) * | 2021-06-11 | 2021-08-20 | 北京邮电大学 | 一种基于联邦学习的隐私计算方法、装置、系统及设备 |
-
2021
- 2021-10-14 CN CN202111198522.3A patent/CN114021734B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160034255A1 (en) * | 2014-08-04 | 2016-02-04 | Samsung Electronics Co., Ltd. | Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof |
US20210004718A1 (en) * | 2019-07-03 | 2021-01-07 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for training a model based on federated learning |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN110943832A (zh) * | 2019-11-19 | 2020-03-31 | 江苏恒宝智能系统技术有限公司 | 一种数据加密传输方法 |
CN111832050A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的基于FPGA芯片实现的Paillier加密方案 |
CN112100673A (zh) * | 2020-09-29 | 2020-12-18 | 深圳致星科技有限公司 | 用于隐私计算的联邦学习加速器和rsa交集计算方法 |
CN112070222A (zh) * | 2020-11-10 | 2020-12-11 | 深圳致星科技有限公司 | 用于联邦学习的处理架构、加速器及方法 |
CN112988237A (zh) * | 2021-04-21 | 2021-06-18 | 深圳致星科技有限公司 | 一种Paillier解密系统、芯片和方法 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN113282960A (zh) * | 2021-06-11 | 2021-08-20 | 北京邮电大学 | 一种基于联邦学习的隐私计算方法、装置、系统及设备 |
Non-Patent Citations (1)
Title |
---|
华国新: "一种改进的水下无线传感器网络聚合签名方案", 《水下无人系统学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546527A (zh) * | 2022-02-22 | 2022-05-27 | 复旦大学 | 一种纵向多方数据聚合计算解决方案系统 |
CN114546527B (zh) * | 2022-02-22 | 2023-10-03 | 复旦大学 | 一种纵向多方数据聚合计算解决方案系统 |
CN114793155A (zh) * | 2022-04-12 | 2022-07-26 | 支付宝(杭州)信息技术有限公司 | 多方安全计算的方法及装置 |
CN117251805A (zh) * | 2023-11-20 | 2023-12-19 | 杭州金智塔科技有限公司 | 基于广度优先算法的联邦梯度提升决策树模型更新系统 |
CN117251805B (zh) * | 2023-11-20 | 2024-04-16 | 杭州金智塔科技有限公司 | 基于广度优先算法的联邦梯度提升决策树模型更新系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114021734B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114021734B (zh) | 用于联邦学习和隐私计算的参数计算装置、系统及方法 | |
CN112865954B (zh) | 用于Paillier解密的加速器、芯片及系统 | |
CN112988237B (zh) | 一种Paillier解密系统、芯片和方法 | |
CN112070222B (zh) | 用于联邦学习的处理装置、加速器及方法 | |
CN111966324B (zh) | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 | |
CN110555525B (zh) | 模型参数确定方法、装置和电子设备 | |
CN111475854A (zh) | 保护两方数据隐私的协同计算方法及系统 | |
CN112883408B (zh) | 用于隐私计算的加解密系统和芯片 | |
CN113407979B (zh) | 用于纵向联邦逻辑回归学习的异构加速方法、装置及系统 | |
CN112148437A (zh) | 用于联邦学习的计算任务加速处理方法、装置及设备 | |
CN110580410A (zh) | 模型参数确定方法、装置和电子设备 | |
CN112733161A (zh) | 用于联邦学习密文运算的装置及方法 | |
CN108875416B (zh) | 椭圆曲线多倍点运算方法和装置 | |
CN113761563A (zh) | 数据交集计算方法、装置及电子设备 | |
CN113946846B (zh) | 用于联邦学习和隐私计算的密文计算装置及方法 | |
Pu et al. | Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture | |
CN113761469B (zh) | 一种保护数据隐私的最高位进位计算方法 | |
Zhang et al. | {FLASH}: Towards a high-performance hardware acceleration architecture for cross-silo federated learning | |
CN111079934B (zh) | 应用于环域上误差学习加密算法的数论变换单元和方法 | |
Chen et al. | SHOSVD: Secure outsourcing of high-order singular value decomposition | |
CN113656823B (zh) | 用于联邦学习和隐私计算的密态加法计算装置及系统 | |
CN113900828B (zh) | 联邦学习专用处理器、联邦学习处理芯片及芯片 | |
Ge et al. | Practical two-party privacy-preserving neural network based on secret sharing | |
CN106126193A (zh) | 基于Zynq的椭圆曲线点加运算加速器及加速方法 | |
CN112989420B (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 |