CN112070222A - 用于联邦学习的处理架构、加速器及方法 - Google Patents
用于联邦学习的处理架构、加速器及方法 Download PDFInfo
- Publication number
- CN112070222A CN112070222A CN202011250232.4A CN202011250232A CN112070222A CN 112070222 A CN112070222 A CN 112070222A CN 202011250232 A CN202011250232 A CN 202011250232A CN 112070222 A CN112070222 A CN 112070222A
- Authority
- CN
- China
- Prior art keywords
- module
- calculation
- modular
- montgomery
- modular exponentiation
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/722—Modular multiplication
-
- 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/723—Modular exponentiation
-
- 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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本申请涉及一种用于联邦学习的处理架构。所述处理架构包括:模幂计算模块,所述模幂计算模块包括至少一个模幂计算引擎;前处理模块,所述前处理模块配置成提供与多个算子模式对应的运算;蒙哥马利化模块,所述蒙哥马利化模块配置成提供蒙哥马利化运算;混淆计算模块,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算;去蒙哥马利化模块,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算;和控制器。所述控制器用于:根据输入算子模式判断是否调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中的一个或多个,从而与所述模幂计算模块协同完成所述输入算子模式。
Description
技术领域
本申请涉及数据处理及隐私保护技术领域,具体涉及一种用于联邦学习的处理架构、加速器及方法。
背景技术
随着大数据分析和人工智能技术的发展,对高质量标签数据的需求越来越大。例如,对神经网络进行训练以及进行数据挖掘都需要用到海量带有标签的数据。而这些带标签的数据往往来源于日常生活经营活动而产生和积累的应用数据。应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。另外跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。出于保护自身商业利益的目的,也基于数据安全、用户隐私保护以及各行业的政策法规标准不一等考量,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。联邦学习指的是拥有数据的各个参与方,在无需共享数据资源且数据不出本地的前提下,通过加密的方式进行加密后数据的联合训练从而协同优化共享机器学习模型而实现多赢合作。
联邦学习涉及两个重要技术指标,分别是隐私安全和计算性能。关于隐私安全方面,横向联邦学习的秘钥协商阶段一般采用Diffie-Hellman(DH)算法实现秘钥的安全配送,且采用同态加密技术例如Paillier加密算法对本地数据进行加密后共享。纵向联邦学习通常采用RSA加密算法结合混淆运算实现等来获取参与者数据的交集。在根据共享数据进行网络模型的联合训练过程中,损失函数和权重等参数均通过同态加密技术处理后参与计算和更新。
为此,联邦学习的隐私安全方面的需求引入了隐私计算,并涉及RSA加密算法、Paillier加密算法、DH算法,以及DSA算法和ElGama算法等。这些算法主要基于模幂运算,而且考虑到联邦学习的参与者拥有的海量数据,因此联邦学习需要用到大量的大整数模乘运算,且相关模数往往有较大的比特位宽,例如2048比特。这些给用于联邦学习的硬件和处理装置的计算性能提出了很大的挑战,因此需要能高效处理复杂运算的用于联邦学习的处理架构、加速器及方法。
发明内容
本申请的目的在于一种用于联邦学习的处理架构、加速器及方法。所述处理架构包括:模幂计算模块,其中,所述模幂计算模块包括至少一个模幂计算引擎;前处理模块,其中,所述前处理模块配置成提供与多个算子模式对应的运算;蒙哥马利化模块,其中,所述蒙哥马利化模块配置成提供蒙哥马利化运算;混淆计算模块,其中,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算;去蒙哥马利化模块,其中,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算;和控制器。所述控制器用于:根据输入算子模式判断是否调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中的一个或多个,从而与所述模幂计算模块的所述至少一个模幂计算引擎协同完成所述输入算子模式。其中,所述输入算子模式是所述多个算子模式中的一个;通过所述模幂计算模块进行模幂计算包括,从二进制化后的幂指数的最高位的非零比特位开始向最低比特位逐位位移,所述模幂计算模块在非零比特位进行两次模乘计算和在零比特位进行一次模乘计算。如此,通过根据所需要进行的算子模式而调用不同的模块及组合,从而与带有多个并行模幂计算引擎的模幂计算模块协同实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子模式,并且具有较高的计算性能和系统效率。并且,通过选择从最高为1的有效位开始可以有效提高计算效率,而且通过根据二进制化后的幂指数的移位后的比特位是否为1来判断是否执行第二次模乘计算,有利于实现了将模幂计算转换成多次模乘计算。
第一方面,本申请实施例提供了一种处理架构。所述处理架构包括:模幂计算模块,其中,所述模幂计算模块包括至少一个模幂计算引擎;前处理模块,其中,所述前处理模块配置成提供与多个算子模式对应的运算;蒙哥马利化模块,其中,所述蒙哥马利化模块配置成提供蒙哥马利化运算;混淆计算模块,其中,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算;去蒙哥马利化模块,其中,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算;和控制器。所述控制器用于:根据输入算子模式判断是否调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中的一个或多个,从而与所述模幂计算模块协同完成所述输入算子模式。其中,所述输入算子模式是所述多个算子模式中的一个;通过所述模幂计算模块进行模幂计算包括,从二进制化后的幂指数的最高位的非零比特位开始向最低比特位逐位位移;通过所述模幂计算模块进行模幂计算还包括,在非零比特位进行两次模乘计算,在零比特位进行一次模乘计算。
第一方面所描述的技术方案,通过根据输入算子模式而调用不同的模块及组合,从而与带有多个并行模幂计算引擎的模幂计算模块协同实现了根据输入算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子模式,并且具有较高的计算性能和系统效率。并且,通过选择从最高为1的有效位开始可以有效提高计算效率,而且通过根据二进制化后的幂指数的移位后的比特位是否为1来判断是否执行第二次模乘计算,有利于实现了将模幂计算转换成多次模乘计算。
根据第一方面,在一种可能的实现方式中,所述两次模乘计算包括第一模乘计算和第二模乘计算,其中,所述第一模乘计算是对第一蒙哥马利化域的模乘结果和模数进行模乘计算得到第二蒙哥马利化域的模乘结果,所述第二模乘计算是对所述第二蒙哥马利化域的模乘结果和蒙哥马利化的幂底数进行模乘计算得到第三蒙哥马利化域的模乘结果。如此,有利于实现了将模幂计算转换成多次模乘计算。
根据第一方面,在一种可能的实现方式中,当所述输入算子模式是RSA算法相关运算时,所述控制器判断不调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块或者所述去蒙哥马利化模块。如此,通过针对RSA算法相关运算的算子模式而仅调用必须的模块,从而有利于提高运算性能和系统效率。
根据第一方面,在一种可能的实现方式中,完成所述输入算子模式包括通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算。如此,实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子类型。
根据第一方面,在一种可能的实现方式中,当所述输入算子模式是Paillier加密算法相关运算时,所述控制器判断调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。如此,通过针对Paillier加密算法相关运算的算子模式而仅调用必须的模块,从而有利于提高运算性能和系统效率。
根据第一方面,在一种可能的实现方式中,完成所述输入算子模式包括,通过所述前处理模块优化Paillier加密表达式,通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算,通过所述蒙哥马利化模块对所述前处理模块输出的优化结果进行蒙哥马利化,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果和所述蒙哥马利化模块输出的蒙哥马利化的所述优化结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。如此,实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子类型。
根据第一方面,在一种可能的实现方式中,当所述输入算子模式是Paillier加密密态下向量点积时,所述控制器判断调用所述混淆计算模块和所述去蒙哥马利化模块。如此,通过针对Paillier加密密态下向量点积的算子模式而仅调用必须的模块,从而有利于提高运算性能和系统效率。
根据第一方面,在一种可能的实现方式中,完成所述输入算子模式包括,通过所述模幂计算模块对两个向量元素一一对应进行模幂计算,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果进行累乘,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的累乘结果进行去蒙哥马利化。如此,实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子类型。
根据第一方面,在一种可能的实现方式中,当所述输入算子模式是Paillier加密密态下乘加运算时,所述控制器判断调用所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。如此,通过针对Paillier加密密态下乘加运算的算子模式而仅调用必须的模块,从而有利于提高运算性能和系统效率。
根据第一方面,在一种可能的实现方式中,完成所述输入算子模式包括,通过所述蒙哥马利化模块对第一参数进行蒙哥马利化,通过所述模幂计算模块的所述多个并行模幂计算引擎进行以第二参数为幂底数的模幂计算,通过所述混淆计算模块对所述蒙哥马利化模块输出的蒙哥马利化的第一参数和所述模幂计算模块输出的模幂计算结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。如此,实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子类型。
根据第一方面,在一种可能的实现方式中,所述蒙哥马利化模块,所述混淆计算模块,以及所述去蒙哥马利化模块各自包括模乘控制单元和模乘计算单元用于将各自对应的蒙哥马利化运算、模乘运算以及去蒙哥马利化运算分别通过单次模乘计算完成。如此,通过模乘控制单元和模乘计算单元将对应运算转换成单次模乘计算。
根据第一方面,在一种可能的实现方式中,所述控制器还用于,对所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中未调用的模块进行旁路化处理。如此,通过设置旁路功能,有利于支持更多的算子类型。
根据第一方面,在一种可能的实现方式中,一种用于联邦学习相关的隐私计算的加速器,包括上述的处理架构。如此,实现了具有较高的计算性能和系统效率的用于联邦学习的加速器。
第二方面,本申请实施例提供了一种用于处理联邦学习相关的计算任务的方法。所述方法包括:确定与所述计算任务对应的输入算子模式;和根据所述输入算子模式而调用前处理模块,蒙哥马利化模块,混淆计算模块以及去蒙哥马利化模块中的一个或多个,从而与模幂计算模块协同完成所述输入算子模式。其中,所述模幂计算模块包括至少一个模幂计算引擎。所述前处理模块配置成提供与多个算子模式对应的运算,所述输入算子模式是所述多个算子模式中的一个。所述蒙哥马利化模块配置成提供蒙哥马利化运算。所述混淆计算模块配置成提供蒙哥马利化域的模乘运算。所述去蒙哥马利化模块配置成提供去蒙哥马利化运算。通过所述模幂计算模块进行模幂计算包括,从二进制化后的幂指数的最高位的非零比特位开始向最低比特位逐位位移。通过所述模幂计算模块进行模幂计算还包括,在非零比特位进行两次模乘计算,在零比特位进行一次模乘计算。
第二方面所描述的技术方案,通过根据输入算子模式而调用不同的模块及组合,从而与带有多个并行模幂计算引擎的模幂计算模块协同实现了根据输入算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子模式,并且具有较高的计算性能和系统效率。并且,通过选择从最高为1的有效位开始可以有效提高计算效率,而且通过根据二进制化后的幂指数的移位后的比特位是否为1来判断是否执行第二次模乘计算,有利于实现了将模幂计算转换成多次模乘计算。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1 示出了本申请实施例提供的用于联邦学习的多算子并行处理架构的框图。
图2 示出了本申请实施例提供的图1所示的多算子并行处理架构中的模幂计算模块的结构框图。
图3示出了本申请实施例提供的图2所示的模幂计算模块中的模幂计算引擎的结构框图。
图4示出了本申请实施例提供的图3所示的模幂计算引擎进行模幂计算的流程示意图。
图5示出了本申请实施例提供的图1所示的多算子并行处理架构中的混淆计算模块的结构框图。
具体实施方式
本申请实施例提供了一种用于联邦学习的处理架构、加速器及方法。所述处理架构包括:模幂计算模块,其中,所述模幂计算模块包括多个并行模幂计算引擎;前处理模块,其中,所述前处理模块配置成提供与多个算子模式对应的运算;蒙哥马利化模块,其中,所述蒙哥马利化模块配置成提供蒙哥马利化运算;混淆计算模块,其中,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算;去蒙哥马利化模块,其中,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算;和控制器。所述控制器用于:根据输入算子模式判断是否调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中的一个或多个,从而与所述模幂计算模块协同完成所述输入算子模式。如此,通过根据所需要进行的算子模式而调用不同的模块及组合,从而与带有多个并行模幂计算引擎的模幂计算模块协同实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子模式,并且具有较高的计算性能和系统效率。
本申请实施例可用于以下应用场景:联邦学习,隐私计算,与联邦学习的隐私计算相关的RSA加密算法、Paillier加密算法、DH算法,以及DSA算法和ElGama算法,需要用到大量的大整数模乘运算和较大比特位宽的模数的其它应用场景等。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
请参阅图1,图1 示出了本申请实施例提供的用于联邦学习的多算子并行处理架构的框图。如图1所示,多算子并行处理架构100包括多个计算模块来分别执行对应的计算任务。图1所示的多算子并行处理架构100包括模幂计算模块102,前处理模块104,蒙哥马利化模块106,混淆计算模块108,去蒙哥马利化模块110。另外,多算子并行处理架构100还包括输入接口120和输出接口130。图1还通过带有箭头的连线表示了各个模块之间的数据传递关系。其中,输入接口120配置成接收输入数据并将输入数据根据具体情况分配到与输入接口120连接的模幂计算模块102,前处理模块104以及蒙哥马利化模块106的其中一个或多个。模幂计算模块102接收输入数据进行处理后可以直接输出到输出接口130,也可以将处理后数据传递到下一级的混淆计算模块108。前处理模块104接收输入数据进行处理后将处理后数据传递到下一级的蒙哥马利化模块106。蒙哥马利化模块106可以从前处理模块104接收上一级数据,也可以直接从输入接口120接收数据进行处理,并将处理后的数据传递到下一级的混淆计算模块108。混淆计算模块108将接收到的数据进行处理后传递到下一级的去蒙哥马利化模块110。输出接口130与模幂计算模块102,混淆计算模块108和去蒙哥马利化模块110连接,可以根据具体情况选择性地将这些模块处理后的数据作为输出结果。其中,模幂计算模块102内有多个并行的模幂计算引擎(未示出),用于提供并行加速处理运算。前处理模块104用于根据不同算子模式提供对应的功能性运算。蒙哥马利化模块106用于对前处理模块104的处理结果进行蒙哥马利化处理。混淆计算模块108用于将模幂计算模块102输出的模幂计算结果和蒙哥马利化模块106输出的蒙哥马利化的前处理模块104的处理结果,进行蒙哥马利化域的模乘计算。去蒙哥马利化模块110用于对混淆计算模块108的输出结果进行去蒙哥马利化处理。如此,图1所示的各个模块对应不同的算子及相应的运算操作,通过彼此之间的连接关系,实现了多算子并行处理架构,并且通过蒙哥马利算法实现了取模运算有利于提升计算机运算性能。
请继续参阅图1,下面结合联邦学习应用中的特定算子模式说明多算子并行处理架构100的运作机制。联邦学习涉及的隐私计算中有很多相关算法,例如RSA算法、Paillier加密算法、密态运算、DH算法、DSA算法、ElGama算法等,都需要用到公式(1)所示的运算形式或者算子模式。
在公式(1)中,h(m)表示与特定算子模式对应的运算,remodN表示模幂计算,p是运算结果。其中r是幂底数,e是幂指数,N是模数,modN表示以模数N做取模计算。根据特定算子模式,h(m)有不同的表达形式。一方面,对于仅包括模幂计算本身的算法,h(m)表示为常数1,例如下面公式(4)所示的进行RSA算法相关的运算。另一方面,对于通过RSA计算数据交集的场景,h(m)表示对数据m进行哈希计算。对于Paillier加密算法,h(m)表示对Paillier加密表达式进行优化,例如表示为1+me,也即提供大整数的乘法。公式(1)可以基于数学上的拆分得到公式(2)。
在公式(2)中,h(m)表示与特定算子模式对应的运算,remodN表示模幂计算,p是运算结果,*表示蒙哥马利化域的模乘计算。其中r是幂底数,e是幂指数,N是模数,modN表示以模数N做取模计算。结合公式(1)和(2)可知,模幂计算部分是必须的,而根据h(m)的具体表达形式,可以有不同的运算需求也因此有不同的对应配置。出于有限的硬件资源的考量,前处理模块104配置成支持联邦学习下常见的一些h(m)的硬件实现。
请继续参阅图1,公式(1)和(2)中的模幂计算部分,也就是remodN通过模幂计算模块102的多个并行的模幂计算引擎进行高速并行处理。其中,幂指数e和模数N在多组并行处理运算中是共享的,而幂底数r则均匀分发到各个模幂计算引擎。根据h(m)的具体表达形式以及具体算法需求,可以选择性地调用多算子并行处理架构100中的模块同时选择性地将没有调用的模块设置为旁路状态,从而根据具体算法需求灵活地配置模块和组合,有利于支持联邦学习下的多种基于模幂运算的算子模式。下面结合具体运算需求说明如何灵活配置模块和组合。
例如,当需要进行Paillier加密算法相关的运算,具体运算需求参考公式(3)所示的运算形式。
在公式(3)中,remodN表示模幂计算,p是运算结果。公式(3)的运算需要调用多算子并行处理架构100中的所有模块。具体地,需要调用前处理模块104对Paillier加密表达式进行优化,也需要调用模幂计算模块102进行模幂计算,也需要调用混淆计算模块108进行蒙哥马利化域的模乘计算,最后还需要调用去蒙哥马利化模块110用于对混淆计算模块108的输出结果进行去蒙哥马利化处理。可以通过输入接口120分别将各自需要的输入数据传递到前处理模块104和模幂计算模块102。也就是说,调用了模幂计算模块102、前处理模块104、蒙哥马利化模块106、混淆计算模模块108和去蒙哥马利化模块110。
再例如,当需要进行RSA算法相关的运算,具体运算需求参考公式(4)所示的运算形式。
在公式(4)中,公式(2)中的h(m)等于常数1因此不出现在公式(4)中,remodN表示模幂计算,p是运算结果。公式(4)的运算的算子数据仅在模幂计算模块102中执行模幂计算,而计算的结果直接输出并旁路处理混淆计算模块108和去蒙哥马利化模块110,而前处理模块104和蒙哥马利化模块106没有数据输入。可以通过输入接口120选择性地仅将输入数据传递到模幂计算模块102,同时旁路处理混淆计算模块108和去蒙哥马利化模块110,也即仅调用模幂计算模块102。
再例如,当需要进行Paillier加密密态下向量点积,具体运算需求通过将两个向量元素一一对应在模幂计算模块102做模幂计算,而模幂计算的结果再在混淆计算模模块108做累乘,然后再在去蒙哥马利化模块110做去蒙哥马利化处理。而前处理模块104和蒙哥马利化模块106没有数据输入。可以通过输入接口120选择性地仅将输入数据传递到模幂计算模块102,然后依次经过混淆计算模块108和去蒙哥马利化模块110,也就是调用了模幂计算模块102、混淆计算模模块108和去蒙哥马利化模块110。
再例如,当需要进行Paillier加密密态下乘加运算,具体运算需求参考公式(5)所示的运算形式。
在公式(5)中,通过模幂计算模块102执行模幂计算部分也即r2 emodN的相关运算,同时旁路处理前处理模块104。通过蒙哥马利化模块106对参数r1进行蒙哥马利化处理。然后在混淆计算模块108将模幂计算模块102输出的一路数据和蒙哥马利化模块106输出的另一路数据,这两路数据进行模乘运算,最后再通过去蒙哥马利化模块110进行去蒙哥马利化处理。可以通过输入接口120选择性地仅将输入数据传递到模幂计算模块102和蒙哥马利化模块106,共调用了模幂计算模块102、蒙哥马利化模块106、混淆计算模模块108和去蒙哥马利化模块110。
请参阅图1并结合公式(1)至公式(5),多算子并行处理架构100的运行机制可以根据所需要进行的运算需求或者算子模式而通过输入接口120选择性地将输入数据传递到对应的模块进行处理,并通过调用不同的模块而完成后续的运算,同时旁路处理未调用的模块,从而实现了根据算子模式灵活执行不同的模块,有利于实现在单一电路上支持联邦学习下的多种基于模幂运算的算子模式。应当理解的是,图1所示的多算子并行处理架构100,也可以理解成为联邦学习系统设计的支持多种基于模幂算子的并行加速电路,也可以理解成联邦学习专用加速器。另外,输入接口120和输出接口130可以是图1所示的多算子并行处理架构100的内在组成部分,也可以另外配置也即多算子并行处理架构100可以不包括输入接口120和输出接口130。
请参阅图2,图2示出了本申请实施例提供的图1所示的多算子并行处理架构中的模幂计算模块的结构框图。图2所示的模幂计算模块202对应图1所示的多算子并行处理架构100的模幂计算模块102。其中,模幂计算模块202包括多个并行的模幂计算引擎,编号为模幂计算引擎1、模幂计算引擎2…模幂计算引擎N。模幂计算模块202利用平方乘和蒙哥马利算法实现模幂计算,也即通过多个并行的模幂计算引擎来计算remodN。其中,幂指数e和模数N在多组并行处理运算中是共享的,而幂底数r则均匀分发到各个模幂计算引擎。
请参阅图3,图3示出了本申请实施例提供的图2所示的模幂计算模块中的模幂计算引擎的结构框图。图3所示的模幂计算引擎300对应图2的模幂计算模块202中的多个并行模幂计算引擎的任一个。其中,模幂计算引擎300包括模幂控制单元310和模乘计算单元320。模幂控制单元310包括模数N存储器311用于存储模数N,R存储器312用于存储参数R,幂底数r存储器313用于存储幂底数r,蒙哥马利化幂底数r’存储器314用于存储蒙哥马利化的幂底数r’,还有蒙哥马利模乘结果u存储器315用于存储蒙哥马利模乘结果u,也就是蒙哥马利化域的模乘结果。下面结合图3所示的模幂计算引擎300的结构框图说明如何实现多组模幂并行计算,即remodN。
首先通过模数N和公式(6)计算参数u0和公式(7)计算参数R。
在公式(6)和(7)中,u0是平方乘算法迭代过程中蒙哥马利模乘结果u的初始值,而R则是用于计算幂底数r的蒙哥马利化时需要用到的参数。计算得到的u0,R还有共有的幂指数e和模数N都共享到各个并行的模幂计算引擎。
模幂计算引擎300还包括参数x选择器330和参数y选择器340。其中,参数x选择器330从模幂控制单元310接收三个参数:幂底数r存储器313所存储的幂底数r,蒙哥马利模乘结果u存储器315所存储的蒙哥马利模乘结果u,还有正整数1。参数y选择器340从模幂控制单元310接收三个参数:R存储器312所存储的参数R,蒙哥马利模乘结果u存储器315所存储的蒙哥马利模乘结果u,还有蒙哥马利化幂底数r’存储器314所存储的蒙哥马利化的幂底数r’。模幂计算引擎300通过控制参数x选择器330和参数y选择器340来选择性地接收不同的输入作为参数x和参数y,并将参数x和参数y输入到模乘计算单元320。模乘计算单元320根据接收的参数x和参数y和公式(8)计算模乘计算结果c。
在公式(8)中,参数x是参数x选择器330选择接收的输入,参数y是参数y选择器340选择接收的输入,N是模数,c是模乘计算单元320进行一次模乘计算的结果。模幂控制单元310将模数N传递到模乘计算单元320,而模乘计算单元320将计算结果c传递到模幂控制单元310。如此,通过设置参数x选择器330和参数y选择器340来分别对不同的参数组合进行接收和选择,从而有利于提高运算效率和灵活性。下面结合图4说明控制过程。
请参阅图3和图4,图4示出了本申请实施例提供的图3所示的模幂计算引擎进行模幂计算的流程示意图。其中,图4所示的方法包括以下步骤。
步骤S400:接收同批次计算的幂指数e和模数N,并计算初始参数u0和参数R,将共有的初始参数u0、参数R、幂指数e和模数N共享到各个并行的模幂计算引擎,以及将幂底数r均匀地分发到各个模幂计算引擎。
其中,初始参数u0和参数R的计算参考上述公式(6)和(7)。对于同批次计算的各个参数,也就是用于并行处理remodN的各个参数,其中初始参数u0、参数R、幂指数e和模数N是共享的,而幂底数r可以不同,将幂底数r均匀地分发到各个模幂计算引擎。
步骤S402:根据幂底数r、参数R以及模数N进行模乘计算并将模乘计算结果作为蒙哥马利化的幂底数r’。
其中,图3所示的参数x选择器330选择接收幂底数r存储器313所存储的幂底数r作为参数x,图3所示的参数y选择器340选择接收R存储器312所存储的参数R,将选择的幂底数r和参数R传递到模乘计算单元320并参考公式(8)计算模乘计算结果c,将模乘计算结果c传递到模幂控制单元310并且写入到蒙哥马利化幂底数r’存储器314来更新所存储的蒙哥马利化的幂底数r’。
步骤S404:从二进制化的幂指数e的最高位的1开始向最低位的每一个比特位,均根据蒙哥马利模乘结果u和模数N计算及更新蒙哥马利模乘结果u。
其中,将幂指数e转换成二进制,从二进制化的幂指数e的最高位的1开始向最低位逐位移位,在每一个比特位循环进行步骤S404至步骤S408。二进制化后的幂指数e可以表示成由0和1组成的一串数列,其中最高位的1为最高有效位。通过选择从最高为1的有效位开始,可以有效提高计算效率。在从最高位的1开始向最低位逐位移位的每一次循环计算中,总是进行一次模乘计算,将蒙哥马利模乘结果u作为参数x和参数y传递到模乘计算单元320并参考公式(8)计算模乘计算结果c,将模乘计算结果c传递到模幂控制单元310并且写入到蒙哥马利模乘结果u存储器315来更新所存储的蒙哥马利模乘结果u。在循环计算的第一轮,也就是在最高为1的有效位,将初始参数u0作为参数x和参数y来计算模乘计算结果c。
步骤S406:判断二进制化的幂指数e的当前比特位是否为1。如果当前所在的比特位为1则执行步骤S408,如果当前的比特位为0则执行步骤S410。
其中,根据二进制化后的幂指数e的移位后的比特位是否为1来判断是否执行第二次模乘计算,如果当前所在的比特位为1则执行步骤S408,如果当前的比特位为0则执行步骤S410。
步骤S408:根据蒙哥马利模乘结果u和蒙哥马利化的幂底数r’计算及更新蒙哥马利模乘结果u。
其中,蒙哥马利模乘结果u作为参数x,蒙哥马利化的幂底数r’作为参数y,分别传递到模乘计算单元320并参考公式(8)计算模乘计算结果c,将模乘计算结果c传递到模幂控制单元310并写入到蒙哥马利模乘结果u存储器315来更新所存储的蒙哥马利模乘结果u。
步骤S410:将二进制化的幂指数e向着最低比特位位移一位。
其中,从二进制化的幂指数e的最高位的1开始向最低位逐位移位,在每一个比特位执行一次模乘计算并更新蒙哥马利模乘结果u,根据比特位是否为1判断是否执行第二次模乘计算并再次更新蒙哥马利模乘结果u。
步骤S412:判断二进制化的幂指数e的所有比特位是否都已经移位。如果所有比特位都已经移位则执行步骤S414,如果还有比特位没有移位则执行步骤S404。
如此,通过循环进行步骤S404至步骤S412,可以逐位移位二进制化的幂指数e,直到所有比特位都已经移位,也就是已经移位到最低位。另外,在每一个比特位根据其值是1或0来分别进行两次或者一次模乘计算,也就是判断是否要在步骤S406之后执行步骤S408再执行步骤S410还是跳过步骤S408来执行步骤S410。
步骤S414:根据当前的算子模式判断是否需要去蒙哥马利化,如果需要则根据正整数1和根据蒙哥马利模乘结果u计算及更新蒙哥马利模乘结果u。
其中,正整数1作为参数x,蒙哥马利模乘结果u作为参数y,传递到模幂控制单元310并且写入到蒙哥马利模乘结果u存储器315来更新所存储的蒙哥马利模乘结果u。
结合步骤S402和步骤S414,对幂底数r进行蒙哥马利化计算和对蒙哥马利模乘结果u进行去蒙哥马利化,均可以通过一次模乘来实现。当模幂计算引擎300的计算结束后,可以计算下一次的模幂,而模幂计算引擎300输出的计算结果汇合后串行输出到模幂计算模块。如此,通过平方乘和蒙哥马利算法,将模幂运算转换成多次模乘运算,通过从二进制化的幂指数e的最高位的1开始向最低位逐位移位,并在每一个比特位根据其值是1或0来分别进行两次或者一次模乘计算,以及通过对每一次模乘计算的输入参数x和参数y的选择性控制,以及利用模乘计算结果更新蒙哥马利模乘结果u,从而实现了通过多个并行的模幂计算引擎进行高效的模幂计算。进一步地,模幂计算可以采用基于蒙哥马利化域的平方乘计算和基于蒙哥马利化域的大数模乘计算实现,从而可以利用FPGA的高并行计算和流水特性来提高整体算力。另外,可以避开直接对大整数取模运算,而以乘法、加法和移位运算代替,从而减少运算复杂度和提高计算效率。另外,在使用基于蒙哥马利化域的大数模乘计算实现时,可以对位宽、流水级数和/或循环次数进行配置,从而可以在考虑FPGA资源、器件等级、流水级数及主频因素的情况下,对位宽大小、流水级数和/或循环次数进行调整,由此实现最佳的性能提升比。
请参阅图5,图5示出了本申请实施例提供的图1所示的多算子并行处理架构中的混淆计算模块的结构框图。其中,图5所示的混淆计算模块500对应图1所示的多算子并行处理架构100中的混淆计算模块108。混淆计算模块500包括模乘控制单元510和模乘计算单元520。模乘控制单元510将参数x1和参数y1以及模数N输入到模乘计算单元520来计算模乘计算结果c。其中,模乘控制单元510包括蒙哥马利化结果存储器、模幂计算结果存储器、模数N存储器和混淆计算结果存储器。参数x1固定的为模幂计算结果存储器所存储的模幂计算结果。参数y1则根据算子模式的不同,可以是对应蒙哥马利化结果存储器所存储的蒙哥马利化结果,也可以是模幂计算结果存储器所存储的模幂计算结果。例如,当算子模式是基于RSA的交集处理,则参数y1对应蒙哥马利化结果存储器。又例如,当算子模式是Paillier密态下计算向量点积,则参数y1对应模幂计算结果存储器。模乘计算单元520计算得到的模乘计算结果c传递到模乘控制单元510并写入混淆计算结果存储器。混淆计算模块500还包括旁路设置电路(未示出),可以用于旁路处理。例如,当算子模式是ElGama算法,则可以通过旁路设置电路对混淆计算模块500进行旁路处理。
请参阅图1和图5,在一些示例性实施例中,图1所示的多算子并行处理架构100中的蒙哥马利化模块106也可以将蒙哥马利化转换成一次模乘计算并通过与图5所示的混淆计算模块500的类似结构来实现。具体地,可以将参数x1设置为通过公式(7)计算的参数R,将参数y1设置为与具体算子模式对应的h(m)。而蒙哥马利化模块106包括模乘控制单元和模乘计算单元,模乘控制单元内部包含h(m)存储器、R存储器、N存储器和结果存储器。通过控制选择参数x1为R,参数y1为h(m),并控制从R存储器中读取参数R,从h(m)存储器读取h(m),分别传递到到模乘计算单元的x1和y1接口;最后将模乘计算单元返回的结果写入到结果存储器。
请参阅图1和图5,在一些示例性实施例中,图1所示的多算子并行处理架构100中的去蒙哥马利化模块110也可以将蒙哥马利化转换成一次模乘计算并通过与图5所示的混淆计算模块500的类似结构来实现。具体地,可以将参数x1设置为蒙哥马利模乘结果u,将参数y1设置为正整数1。而去蒙哥马利化模块110包含混淆计算结果存储器、模数N存储器和结果存储器。通过控制选择参数x1为混淆计算结果,参数y1为1,并控制从混淆计算结果存储器取出数据送到模乘计算单元的x1,发送常数1到模乘计算单元的x1;最后将模乘计算单元返回的结果写入到结果存储器。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (25)
1.一种用于联邦学习的处理架构,其特征在于,所述处理架构包括:
模幂计算模块,其中,所述模幂计算模块包括至少一个模幂计算引擎;
前处理模块,其中,所述前处理模块配置成提供与多个算子模式对应的运算;
蒙哥马利化模块,其中,所述蒙哥马利化模块配置成提供蒙哥马利化运算;
混淆计算模块,其中,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算;
去蒙哥马利化模块,其中,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算;和
控制器,其中,所述控制器用于:
根据输入算子模式判断是否调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中的一个或多个,从而与所述模幂计算模块的所述至少一个模幂计算引擎协同完成所述输入算子模式,
其中,所述输入算子模式是所述多个算子模式中的一个,
其中,通过所述模幂计算模块进行模幂计算包括,从二进制化后的幂指数的最高位的非零比特位开始向最低比特位逐位位移,并且所述模幂计算模块在非零比特位进行两次模乘计算和在零比特位进行一次模乘计算。
2.根据权利要求1所述的处理架构,其特征在于,所述两次模乘计算包括第一模乘计算和第二模乘计算,其中,所述第一模乘计算是对第一蒙哥马利化域的模乘结果和模数进行模乘计算得到第二蒙哥马利化域的模乘结果,所述第二模乘计算是对所述第二蒙哥马利化域的模乘结果和蒙哥马利化的幂底数进行模乘计算得到第三蒙哥马利化域的模乘结果。
3.根据权利要求1所述的处理架构,其特征在于,当所述输入算子模式是RSA算法相关运算时,所述控制器判断不调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块或者所述去蒙哥马利化模块。
4.根据权利要求3所述的处理架构,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算。
5.根据权利要求1所述的处理架构,其特征在于,当所述输入算子模式是Paillier加密算法相关运算时,所述控制器判断调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。
6.根据权利要求5所述的处理架构,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括,通过所述前处理模块优化Paillier加密表达式,通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算,通过所述蒙哥马利化模块对所述前处理模块输出的优化结果进行蒙哥马利化,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果和所述蒙哥马利化模块输出的蒙哥马利化的所述优化结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。
7.根据权利要求1所述的处理架构,其特征在于,当所述输入算子模式是Paillier加密密态下向量点积时,所述控制器判断调用所述混淆计算模块和所述去蒙哥马利化模块。
8.根据权利要求7所述的处理架构,其特征在于,完成所述输入算子模式包括,通过所述模幂计算模块对两个向量元素一一对应进行模幂计算,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果进行累乘,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的累乘结果进行去蒙哥马利化。
9.根据权利要求1所述的处理架构,其特征在于,当所述输入算子模式是Paillier加密密态下乘加运算时,所述控制器判断调用所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。
10.根据权利要求9所述的处理架构,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括,通过所述蒙哥马利化模块对第一参数进行蒙哥马利化,通过所述模幂计算模块的所述多个并行模幂计算引擎进行以第二参数为幂底数的模幂计算,通过所述混淆计算模块对所述蒙哥马利化模块输出的蒙哥马利化的第一参数和所述模幂计算模块输出的模幂计算结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。
11.根据权利要求1-10任一项所述的处理架构,其特征在于,所述蒙哥马利化模块,所述混淆计算模块,以及所述去蒙哥马利化模块各自包括模乘控制单元和模乘计算单元用于将各自对应的蒙哥马利化运算、模乘运算以及去蒙哥马利化运算分别通过单次模乘计算完成。
12.根据权利要求1-10任一项所述的处理架构,其特征在于,所述控制器还用于,对所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中未调用的模块进行旁路化处理。
13.一种用于联邦学习相关的隐私计算的加速器,其特征在于,所述加速器包括权利要求1-10中任一项所述的处理架构。
14.一种用于处理联邦学习相关的计算任务的方法,其特征在于,所述方法包括:
确定与所述计算任务对应的输入算子模式;和
根据所述输入算子模式而调用前处理模块,蒙哥马利化模块,混淆计算模块以及去蒙哥马利化模块中的一个或多个,从而与模幂计算模块协同完成所述输入算子模式,
其中,所述模幂计算模块包括至少一个模幂计算引擎,
其中,所述前处理模块配置成提供与多个算子模式对应的运算,所述输入算子模式是所述多个算子模式中的一个,
其中,所述蒙哥马利化模块配置成提供蒙哥马利化运算,
其中,所述混淆计算模块配置成提供蒙哥马利化域的模乘运算,
其中,所述去蒙哥马利化模块配置成提供去蒙哥马利化运算,
其中,通过所述模幂计算模块进行模幂计算包括,从二进制化后的幂指数的最高位的非零比特位开始向最低比特位逐位位移,并且所述模幂计算模块在非零比特位进行两次模乘计算,在零比特位进行一次模乘计算。
15.根据权利要求14所述的方法,其特征在于,所述两次模乘计算包括第一模乘计算和第二模乘计算,其中,所述第一模乘计算是对第一蒙哥马利化域的模乘结果和模数进行模乘计算得到第二蒙哥马利化域的模乘结果,所述第二模乘计算是对所述第二蒙哥马利化域的模乘结果和蒙哥马利化的幂底数进行模乘计算得到第三蒙哥马利化域的模乘结果。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括,当所述输入算子模式是RSA算法相关运算时,不调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块或者所述去蒙哥马利化模块。
17.根据权利要求16所述的方法,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算。
18.根据权利要求14所述的方法,其特征在于,所述方法还包括,当所述输入算子模式是Paillier加密算法相关运算时,调用所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。
19.根据权利要求18所述的方法,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括,通过所述前处理模块优化Paillier加密表达式,通过所述模幂计算模块的所述多个并行模幂计算引擎进行模幂计算,通过所述蒙哥马利化模块对所述前处理模块输出的优化结果进行蒙哥马利化,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果和所述蒙哥马利化模块输出的蒙哥马利化的所述优化结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。
20.根据权利要求14所述的方法,其特征在于,所述方法还包括,当所述输入算子模式是Paillier加密密态下向量点积时,调用所述混淆计算模块和所述去蒙哥马利化模块。
21.根据权利要求20所述的方法,其特征在于,完成所述输入算子模式包括,通过所述模幂计算模块对两个向量元素一一对应进行模幂计算,通过所述混淆计算模块对所述模幂计算模块输出的模幂计算结果进行累乘,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的累乘结果进行去蒙哥马利化。
22.根据权利要求14所述的方法,其特征在于,所述方法还包括,当所述输入算子模式是Paillier加密密态下乘加运算时,调用所述蒙哥马利化模块,所述混淆计算模块和所述去蒙哥马利化模块。
23.根据权利要求22所述的方法,其特征在于,所述至少一个模幂计算引擎包括多个并行模幂计算引擎,完成所述输入算子模式包括,通过所述蒙哥马利化模块对第一参数进行蒙哥马利化,通过所述模幂计算模块的所述多个并行模幂计算引擎进行以第二参数为幂底数的模幂计算,通过所述混淆计算模块对所述蒙哥马利化模块输出的蒙哥马利化的第一参数和所述模幂计算模块输出的模幂计算结果进行模乘计算,以及通过所述去蒙哥马利化模块对所述混淆计算模块输出的模乘计算结果进行去蒙哥马利化。
24.根据权利要求14-23任一项所述的方法,其特征在于,所述蒙哥马利化模块,所述混淆计算模块,以及所述去蒙哥马利化模块各自包括模乘控制单元和模乘计算单元用于将各自对应的蒙哥马利化运算、模乘运算以及去蒙哥马利化运算分别通过单次模乘计算完成。
25.根据权利要求14-23任一项所述的方法,其特征在于,所述方法还包括,对所述前处理模块,所述蒙哥马利化模块,所述混淆计算模块以及所述去蒙哥马利化模块中未调用的模块进行旁路化处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011250232.4A CN112070222B (zh) | 2020-11-10 | 2020-11-10 | 用于联邦学习的处理装置、加速器及方法 |
US17/514,669 US11521129B2 (en) | 2020-11-10 | 2021-10-29 | Processing device, accelerator, and method for federated learning |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011250232.4A CN112070222B (zh) | 2020-11-10 | 2020-11-10 | 用于联邦学习的处理装置、加速器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112070222A true CN112070222A (zh) | 2020-12-11 |
CN112070222B CN112070222B (zh) | 2021-01-29 |
Family
ID=73655693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011250232.4A Active CN112070222B (zh) | 2020-11-10 | 2020-11-10 | 用于联邦学习的处理装置、加速器及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11521129B2 (zh) |
CN (1) | CN112070222B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733161A (zh) * | 2020-12-30 | 2021-04-30 | 深圳致星科技有限公司 | 用于联邦学习密文运算的装置及方法 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN112883408A (zh) * | 2021-04-29 | 2021-06-01 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN113656823A (zh) * | 2021-10-14 | 2021-11-16 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密态加法计算装置及系统 |
CN113946846A (zh) * | 2021-10-14 | 2022-01-18 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密文计算装置及方法 |
CN114021734A (zh) * | 2021-10-14 | 2022-02-08 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
CN114327370A (zh) * | 2022-03-10 | 2022-04-12 | 湖北芯擎科技有限公司 | 计算蒙哥马利模乘算法中mr值的方法及电路 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164187A (zh) * | 2011-12-09 | 2013-06-19 | 深圳市证通电子股份有限公司 | Rsa模幂电路及rsa安全加密芯片 |
CN108509970A (zh) * | 2017-02-27 | 2018-09-07 | 意法半导体股份有限公司 | 学习方法、对应的系统、设备和计算机程序产品 |
CN106681691B (zh) * | 2015-11-07 | 2019-01-29 | 上海复旦微电子集团股份有限公司 | 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置 |
CN110351087A (zh) * | 2019-09-06 | 2019-10-18 | 南京秉速科技有限公司 | 流水线型的蒙哥马利模乘运算方法及计算装置 |
CN110865794A (zh) * | 2019-10-22 | 2020-03-06 | 天津津航计算技术研究所 | 用于数据安全通信的并行模乘方法 |
CN111832050A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的基于FPGA芯片实现的Paillier加密方案 |
-
2020
- 2020-11-10 CN CN202011250232.4A patent/CN112070222B/zh active Active
-
2021
- 2021-10-29 US US17/514,669 patent/US11521129B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164187A (zh) * | 2011-12-09 | 2013-06-19 | 深圳市证通电子股份有限公司 | Rsa模幂电路及rsa安全加密芯片 |
CN106681691B (zh) * | 2015-11-07 | 2019-01-29 | 上海复旦微电子集团股份有限公司 | 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置 |
CN108509970A (zh) * | 2017-02-27 | 2018-09-07 | 意法半导体股份有限公司 | 学习方法、对应的系统、设备和计算机程序产品 |
CN110351087A (zh) * | 2019-09-06 | 2019-10-18 | 南京秉速科技有限公司 | 流水线型的蒙哥马利模乘运算方法及计算装置 |
CN110865794A (zh) * | 2019-10-22 | 2020-03-06 | 天津津航计算技术研究所 | 用于数据安全通信的并行模乘方法 |
CN111832050A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的基于FPGA芯片实现的Paillier加密方案 |
Non-Patent Citations (1)
Title |
---|
周俊等: "联邦学习安全与隐私保护研究综述", 《西华大学学报(自然科学版)》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733161A (zh) * | 2020-12-30 | 2021-04-30 | 深圳致星科技有限公司 | 用于联邦学习密文运算的装置及方法 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN112883408A (zh) * | 2021-04-29 | 2021-06-01 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN112883408B (zh) * | 2021-04-29 | 2021-07-16 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN113656823A (zh) * | 2021-10-14 | 2021-11-16 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密态加法计算装置及系统 |
CN113946846A (zh) * | 2021-10-14 | 2022-01-18 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密文计算装置及方法 |
CN113656823B (zh) * | 2021-10-14 | 2022-02-08 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密态加法计算装置及系统 |
CN114021734A (zh) * | 2021-10-14 | 2022-02-08 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
CN114021734B (zh) * | 2021-10-14 | 2022-04-12 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
CN113946846B (zh) * | 2021-10-14 | 2022-07-12 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密文计算装置及方法 |
CN114327370A (zh) * | 2022-03-10 | 2022-04-12 | 湖北芯擎科技有限公司 | 计算蒙哥马利模乘算法中mr值的方法及电路 |
CN114327370B (zh) * | 2022-03-10 | 2022-06-21 | 湖北芯擎科技有限公司 | 计算蒙哥马利模乘算法中mr值的方法及电路 |
Also Published As
Publication number | Publication date |
---|---|
US20220147873A1 (en) | 2022-05-12 |
US11521129B2 (en) | 2022-12-06 |
CN112070222B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112070222B (zh) | 用于联邦学习的处理装置、加速器及方法 | |
CN112865954B (zh) | 用于Paillier解密的加速器、芯片及系统 | |
CN112988237B (zh) | 一种Paillier解密系统、芯片和方法 | |
CN111475854B (zh) | 保护两方数据隐私的协同计算方法及系统 | |
CN110555525B (zh) | 模型参数确定方法、装置和电子设备 | |
CN112883408B (zh) | 用于隐私计算的加解密系统和芯片 | |
CN110569227B (zh) | 模型参数确定方法、装置和电子设备 | |
CN110580409B (zh) | 模型参数确定方法、装置和电子设备 | |
CN114021734B (zh) | 用于联邦学习和隐私计算的参数计算装置、系统及方法 | |
JPH09274560A (ja) | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 | |
CN112733161A (zh) | 用于联邦学习密文运算的装置及方法 | |
CN110580410A (zh) | 模型参数确定方法、装置和电子设备 | |
CN112148437A (zh) | 用于联邦学习的计算任务加速处理方法、装置及设备 | |
CN113031920B (zh) | 一种芯片和用于芯片的批量模运算方法 | |
US20230179395A1 (en) | Using cryptographic blinding for efficient use of montgomery multiplication | |
CN113946846B (zh) | 用于联邦学习和隐私计算的密文计算装置及方法 | |
Pu et al. | Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
WO2023236899A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
JP7173170B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
CN113656823B (zh) | 用于联邦学习和隐私计算的密态加法计算装置及系统 | |
WO2021027598A1 (zh) | 模型参数确定方法、装置和电子设备 | |
CN112487448B (zh) | 一种加密信息处理装置、方法及计算机设备 | |
Zhang et al. | Secure Outsourcing Evaluation for Sparse Decision Trees | |
KR20210067961A (ko) | 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법 |
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 |