CN112100673A - 用于隐私计算的联邦学习加速器和rsa交集计算方法 - Google Patents
用于隐私计算的联邦学习加速器和rsa交集计算方法 Download PDFInfo
- Publication number
- CN112100673A CN112100673A CN202011053384.5A CN202011053384A CN112100673A CN 112100673 A CN112100673 A CN 112100673A CN 202011053384 A CN202011053384 A CN 202011053384A CN 112100673 A CN112100673 A CN 112100673A
- Authority
- CN
- China
- Prior art keywords
- modular exponentiation
- data
- layer
- random number
- engines
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000013500 data storage Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 9
- 238000007596 consolidation process Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000003999 initiator Substances 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Abstract
本申请涉及一种用于隐私计算的联邦学习加速器和RSA交集计算方法。所述方法包括:从数据存储模块中读取用户数据;生成RSA公钥和RSA私钥;接收随机数YA;根据随机数YA和RSA私钥生成随机数ZA;根据用户数据和RSA私钥生成随机数ZB;和接收随机数DA和随机数ZB的RSA交集。加速器包括模乘计算单元和模幂计算单元,加速器根据输入数据的数据标签而选择性地调用模乘计算单元或者模幂计算单元。模幂计算单元包括多个并行连接的模幂计算引擎用于对输入数据进行并行模幂运算。
Description
技术领域
本申请涉及电子技术领域,具体涉及一种用于隐私计算的联邦学习加速器和RSA交集计算方法。
背景技术
随着大数据分析和人工智能技术的发展,对高质量标签数据的需求越来越大。例如,对神经网络进行训练以及进行数据挖掘都需要用到海量带有标签的数据。而这些带标签的数据往往来源于日常生活经营活动而产生和积累的应用数据。应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。另外跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。出于保护自身商业利益的目的,也基于数据安全、用户隐私保护以及各行业的政策法规标准不一等考量,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。
联邦学习指的是联合不同参与者进行机器学习建模的方法。联邦学习打破了数据孤岛的现象,保证了协同合作中数据的安全性、私密性和合法性。联邦学习的原理基于RSA加密算法和哈希(HASH)加密解密,使得参与者安全地获取私有数据交集,解决不同数据拥有方数据隐私保护和数据匹配的问题,从而帮助至少两方找到相同的用户id同时不会将一方所有的用户id泄漏给另一方,因此不同参与者可以获取相同用户id的信息进行训练而又不会暴露各自拥有的不同的用户id的信息。
现有技术中,由于联邦学习需要用到大量的RSA加密算法的相关运算,而实际应用场景又往往涉及非常多的参与者和各自拥有的海量数据,如此使得RSA运算相关的数据量达到数亿的数量级。通用型的处理器或者运算装置处理如此大量的数据往往耗时久,负载大,难以满足实际应用的需求。因此,需要一种技术方案来满足联邦学习下快速高效处理跟RSA加密算法相关的海量数据的要求。
另一方面,因为海量应用数据分散在不同行业不同企业和不同个体,现有技术中的隐私保护技术难以满足如此复杂的环境下数据分享和协同合作方面的隐私保护需求,因此需要适用于隐私计算框架下的联邦学习加速器,特别是能高效快速处理RSA交集计算需求的加速器。
发明内容
本申请的目的在于提供一种用于隐私计算的联邦学习加速器。所述加速器包括:模乘计算单元,其中,所述模乘计算单元用于运行模乘运算;模幂计算单元,其中,所述模幂计算单元用于运行模幂运算,所述模幂计算单元包括第一层数据分发模块,第一层数据合并模块和并行连接于所述第一层数据分发模块和所述第一层数据合并模块之间的多个第一层模幂计算引擎;和控制器。其中,所述控制器用于:根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元;当所述模幂计算单元被调用时,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个;根据所调用的第一层模幂计算引擎的个数,通过所述第一层数据分发模块,将所述输入数据转换成由多个第一层数据组成的第一层数据组,所述多个第一层数据的总数与所调用的第一层模幂计算引擎的总数相同;将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算;以及通过所述第一层数据合并模块,将所调用的第一层模幂计算引擎的输出合并后得到输出数据。如此,通过选择性地调用所述模乘计算单元或者所述模幂计算单元以及将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算,从而实现了将RSA有关的运算拆解成不同运算类型并针对性地配置特化型的计算单元,有利于高效高质量处理海量数据和提高运算效率。
第一方面,本申请实施例提供了一种加速器。所述加速器包括:模乘计算单元,其中,所述模乘计算单元用于运行模乘运算;模幂计算单元,其中,所述模幂计算单元用于运行模幂运算,所述模幂计算单元包括第一层数据分发模块,第一层数据合并模块和并行连接于所述第一层数据分发模块和所述第一层数据合并模块之间的多个第一层模幂计算引擎;和控制器。其中,所述控制器用于:根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元;当所述模幂计算单元被调用时,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个;根据所调用的第一层模幂计算引擎的个数,通过所述第一层数据分发模块,将所述输入数据转换成由多个第一层数据组成的第一层数据组,所述多个第一层数据的总数与所调用的第一层模幂计算引擎的总数相同;将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算;以及通过所述第一层数据合并模块,将所调用的第一层模幂计算引擎的输出合并后得到输出数据。
第一方面所描述的技术方案,通过选择性地调用所述模乘计算单元或者所述模幂计算单元以及将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算,从而实现了将RSA有关的运算拆解成不同运算类型并针对性地配置特化型的计算单元,有利于高效高质量处理海量数据和提高运算效率。
根据第一方面,在一种可能的实现方式中,所调用的第一层模幂计算引擎的至少一个第一层模幂计算引擎包括第二层数据分发模块,第二层数据合并模块和并行连接于所述第二层数据分发模块和所述第二层数据合并模块之间的多个第二层模幂计算引擎,其中,所述控制器还用于:根据所述至少一个第一层模幂计算引擎的输入数据调用所述多个第二层模幂计算引擎的一个或多个;根据所调用的第二层模幂计算引擎的个数,通过所述第二层数据分发模块,将所述至少一个第一层模幂计算引擎的输入数据转换成由多个第二层数据组成的第二层数据组,所述多个第二层数据的总数与所调用的第二层模幂计算引擎的总数相同;将所述第二层数据组的所述多个第二层数据分发给所调用的第二层模幂计算引擎进行并行运算;以及通过所述第二层数据合并模块,将所调用的第二层模幂计算引擎的输出合并后得到所述至少一个第一层模幂计算引擎的输出数据。
如此,实现了包括第二层次并行架构的设计,有利于更高效的运算效率。
根据第一方面,在一种可能的实现方式中,所调用的第二层模幂计算引擎的至少一个第二层模幂计算引擎包括第三层数据分发模块,第三层数据合并模块和并行连接于所述第三层数据分发模块和所述第三层数据合并模块之间的多个第三层模幂计算引擎,其中,所述控制器还用于:根据所述至少一个第二层模幂计算引擎的输入数据调用所述多个第三层模幂计算引擎的一个或多个;根据所调用的第三层模幂计算引擎的个数,通过所述第三层数据分发模块,将所述至少一个第二层模幂计算引擎的输入数据转换成由多个第三层数据组成的第三层数据组,所述多个第三层数据的总数与所调用的第三层模幂计算引擎的总数相同;将所述第三层数据组的所述多个第三层数据分发给所调用的第三层模幂计算引擎进行并行运算;以及通过所述第三层数据合并模块,将所调用的第三层模幂计算引擎的输出合并后得到所述至少一个第二层模幂计算引擎的输出数据。
如此,实现了包括第三层次并行架构的设计,有利于更高效的运算效率。
根据第一方面,在一种可能的实现方式中,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个,包括,根据所述输入数据的带宽和所述第一层模幂计算引擎的最大处理带宽确定所调用的所述第一层模幂计算引擎的个数。
如此,实现了根据输入数据的带宽和处理带宽的匹配情况来灵活配置。
根据第一方面,在一种可能的实现方式中,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个,包括,根据所述输入数据的个数调用所述个数的第三层模幂计算引擎,根据所调用的第三层模幂计算引擎确定所调用的所述第一层模幂计算引擎的个数。
如此,实现了根据输入数据的个数调用多个计算引擎进行同步处理。
根据第一方面,在一种可能的实现方式中,所述多个第一层模幂计算引擎的至少两个第一层模幂计算引擎包括至少一层并行架构,每一层并行架构包括多个并行连接的模幂计算引擎,所述至少两个第一层模幂计算引擎的一个所包括的并行架构的层次数不同于所述至少两个第一层模幂计算引擎的另一个所包括的并行架构的层次数。
如此,实现了包括不同层次数的并行架构共存的设计,有利于更灵活的根据需求调整。
根据第一方面,在一种可能的实现方式中,所述多个第一层模幂计算引擎所包括的并行架构的层次数和分布预先设定。
如此,实现了根据预先设定的具体的层次输和分布,有利于更灵活的调整。
根据第一方面,在一种可能的实现方式中,所述加速器还包括PCIE接口,所述第一层数据分发模块与所述PCIE接口电连接用于读取所述输入数据。
如此,实现了高速的数据读取,有利于高速运算下数据吞吐。
根据第一方面,在一种可能的实现方式中,所述系统包括数据存储模块,中央处理单元,和根据所述的加速器。
如此,通过FPGA的并行运算特点和可再编程特性,实现了高速并行运算和灵活配置。
根据第一方面,在一种可能的实现方式中,所述数据存储模块存储有用户数据,所述中央处理单元生成RSA公钥和RSA私钥,所述处理器用于处理跟所述用户数据的RSA交集有关的模乘运算和模幂运算。
如此,实现了通过加速器处理特定运算类型,从而减轻了中央处理单元的负担,有利于提高效率。
根据第一方面,在一种可能的实现方式中,所述系统与存储有另一用户数据的另一系统通信地连接,所述处理器与所述另一系统协作以获得所述用户数据和所述另一用户数据的RSA交集。
如此,通过加速器与其它系统的协作有利于获得RSA交集。
第二方面,本申请实施例提供了一种基于FPGA平台的计算RSA交集的方法。所述FPGA平台包括数据存储模块,中央处理单元和加速器。所述方法包括:从所述数据存储模块中读取用户数据;生成RSA公钥和RSA私钥,其中所述RSA公钥和所述RSA私钥通过所述中央处理单元生成;接收随机数YA,其中,所述随机数YA基于对所述RSA公钥和另一用户数据的哈希值进行运算得到;根据所述随机数YA和所述RSA私钥生成随机数ZA,其中,与生成所述随机数ZA相关的模幂运算通过所述加速器完成;根据所述用户数据和所述RSA私钥生成随机数ZB,其中,与生成所述随机数ZB相关的模幂运算通过所述加速器完成;和接收随机数DA和所述随机数ZB的RSA交集,其中,所述随机数DA根据所述随机数ZA和所述RSA公钥生成。其中,所述加速器包括模乘计算单元和模幂计算单元,所述加速器根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元,所述模幂计算单元包括多个并行连接的模幂计算引擎用于对所述输入数据进行并行模幂运算。
第二方面所描述的技术方案,实现了将RSA有关的运算拆解成不同运算类型并针对性地配置特化型的计算单元,有利于高效高质量处理海量数据和提高运算效率。
第三方面,本申请实施例提供了一种基于FPGA平台的计算RSA交集的方法。所述FPGA平台包括数据存储模块,中央处理单元和加速器。所述方法包括:接收RSA公钥;根据所述数据存储模块中存储的用户数据和所述RSA公钥计算随机数YA,其中,与生成所述随机数YA相关的哈希运算通过所述中央处理单元完成;接收随机数ZA和随机数ZB,其中,所述随机数ZB基于对所述RSA公钥和另一用户数据进行运算得到;和根据所述随机数ZA和所述RSA公钥计算随机数DA,其中,与生成所述随机数DA相关的模幂运算通过所述加速器完成;计算所述随机数DA和所述随机数ZB的RSA交集,其中,与计算所述RSA交集相关的运算通过所述中央处理单元完成。其中,所述加速器包括模乘计算单元和模幂计算单元,所述加速器根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元,所述模幂计算单元包括多个并行连接的模幂计算引擎用于对所述输入数据进行并行模幂运算。
第三方面所描述的技术方案,实现了将RSA有关的运算拆解成不同运算类型并针对性地配置特化型的计算单元,有利于高效高质量处理海量数据和提高运算效率。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的参与者A和参与者B利用各自的加速器来获得RSA交集的应用场景。
图2是本申请实施例提供的图1所示的加速器的模幂计算单元的结构框图。
图3是本申请实施例提供的一种实现方式的利用加速器获得RSA交集的流程示意图。
具体实施方式
针对现有技术中存在的在隐私计算框架下基于联邦学习快速高效处理跟RSA加密算法相关的海量数据特别是计算RSA交集的需求,本申请实施例提供了用于隐私计算的联邦学习加速器。所述加速器包括:模乘计算单元,其中,所述模乘计算单元用于运行模乘运算;模幂计算单元,其中,所述模幂计算单元用于运行模幂运算,所述模幂计算单元包括第一层数据分发模块,第一层数据合并模块和并行连接于所述第一层数据分发模块和所述第一层数据合并模块之间的多个第一层模幂计算引擎;和控制器。其中,所述控制器用于:根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元;当所述模幂计算单元被调用时,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个;根据所调用的第一层模幂计算引擎的个数,通过所述第一层数据分发模块,将所述输入数据转换成由多个第一层数据组成的第一层数据组,所述多个第一层数据的总数与所调用的第一层模幂计算引擎的总数相同;将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算;以及通过所述第一层数据合并模块,将所调用的第一层模幂计算引擎的输出合并后得到输出数据。如此,通过选择性地调用所述模乘计算单元或者所述模幂计算单元以及将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算,从而实现了将RSA有关的运算拆解成不同运算类型并针对性地配置特化型的计算单元,有利于高效高质量处理海量数据和提高运算效率。同时,通过哈希加密和RSA加密算法,有效地保护了隐私信息,提供了适用于隐私计算框架下的高效联邦学习的解决方案。
本申请实施例可用于以下应用场景,包括但不限于,用于联邦学习的RSA交集计算,多方安全计算,隐私计算,还有其他可以使用到RSA交集进行私有数据加密的应用场景。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
请参阅图1,图1示出了本申请实施例提供的参与者A和参与者B利用各自的加速器来获得RSA交集的应用场景。如图1所示,参与者A与参与者B各自有私有数据,需要通过RSA机制来寻找双方私有数据的RSA交集同时保证非交集的部分不被泄露。其中,参与者A一侧配置了数据存储模块100,中央处理器元102,加速器104,而加速器104又包括模幂计算单元106和模乘计算单元108。参与者B一侧配置了数据存储模块110,中央处理单元112,加速器114,而加速器114又包括模幂计算单元116和模乘计算单元118。参与者A的数据存储模块100和参与者B的数据存储模块110分别存储了参与者A的私有数据和参与者B的私有数据。双方的私有数据可以表示为带有编号的用户数据。例如,参与者A一方有用户数据(u1,u2,u3,u4),而参与者B一方有用户数据(u1,u2,u3,u5)。双方共有的用户数据交集就是(u1,u2,u3),而参与者A独有的为u4,参与者B独有的为u5。参与者A的中央处理单元102和加速器104都与数据存储模块100相连,用于从中提取数据进行运算。同样的,参与者B的中央处理单元112和加速器114都与数据存储模块110相连,用于从中提取数据进行运算。
请继续参阅图1,假设参与者B为发起合作邀请的一方,首先在步骤S120,参与者B存储私有数据(u1,u2,u3,u5)在数据存储模块110中。参与者B通过中央处理单元112生成参与者B的RSA公钥私钥对,并将RSA公钥发送给参与者A。在步骤S122,参与者A根据参与者A存储在数据存储模块100中的私有数据(u1,u2,u3,u4)和参与者B的RSA公钥,通过参与者A一侧的中央处理单元102进行哈希运算得到随机数YA,并将YA发送给参与者B。在步骤S124,参与者B根据随机数YA和参与者B的RSA私钥,通过加速器114生成随机数ZA。参与者B也根据参与者B的私有数据(u1,u2,u3,u5)和参与者B的RSA私钥,通过加速器114生成随机数ZB。参与者B将随机数ZA和ZB都发送给参与者A。在步骤S126,参与者A根据随机数ZA和参与者B的RSA公钥,通过加速器104生成随机数DA,并通过加速器104来计算DA和ZB之间的RSA交集I,然后将计算得出的交集I发送给参与者B。如此,参与者B的RSA私钥一直保持在参与者B一侧而没有让参与者A得知。另外,参与者A的私有数据(u1,u2,u3,u4)被用来进行哈希运算得到随机数YA,而参与者B无法仅根据处理后的随机数YA而得出参与者A的私有数据。同样地,参与者B的私有数据(u1,u2,u3,u5)被用来计算随机数ZB,而参与者A无法仅根据处理后的随机数ZB而得出参与者B的私有数据。最后得出的RSA交集的计算结果是针对双方共有的用户数据交集(u1,u2,u3),而参与者A无法得知参与者B独有的用户数据u5,参与者B也无从得知参与者A独有的用户数据u4。因此,参与者A和参与者B通过各自的加速器,实现了传送经过处理的私有数据又不泄露原始私有数据,并且都获得了彼此私有数据的RSA交集,从而可以运用于例如联邦学习下的机器建模等。
请继续参阅图1,对于参与者B而言,生成RSA公钥私钥对的运算由中央处理单元112完成,而关于随机数ZA和ZB的运算都通过加速器114完成。这里,对随机数ZA和ZB的运算均可以通过加速器114的模幂计算单元116完成。对于参与者A而言,关于随机数YA的运算通过中央处理单元102处理单元完成,而DA的运算通过加速器104完成,而其它运算如求RSA交集可以通过中央处理单元102完成。这里,对随机数YA的运算需要先用到模幂运算再用到模乘运算,这可以通过中央处理单元或者一般性处理器计算得到,或者可以通过加速器104的模幂计算单元106和模乘计算单元108分别完成,并可以通过数据标志来区分是发送给模幂计算单元106或者模乘计算单元108。而对随机数DA的运算需要用到模幂运算,这可以通过加速器104的模幂计算单元106完成。如此,通过将RSA有关的运算拆解成不同运算类型,可以针对性地配置特化型的计算单元,还可以根据步骤S120至步骤S126中所用到的不同运算类型而针对性地优化配置,从而大幅提高运算效率。应当理解的是,哈希运算可以通过中央处理单元或者一般性处理器计算得到,也可以由通过FPGA实现的特化型加速器实现,这些可以根据具体应用场景设定,在此不做具体限定。
请继续参阅图1,参与者A一方的加速器104可以是靠近参与者A的由参与者A掌控的设备,同样的,参与者B一方的加速器114可以是靠近参与者B的由参与者B掌控的设备。例如,可以以固定的台式机、便携式个人电脑等形式作为载体来安放加速器,也可以用其它合适的形式。通过确保参与者掌控各自的加速器,也就保证了各自的私有数据的原始形态和相应的RSA私钥不会被泄露。这些可以根据具体应用场景进行调整,在此不做具体限定。
请继续参阅图1,参与者A和参与者B是相对的概念,参与者B在图1所示的实施例中是作为合作的发起方,也就是生成RSA公钥私钥队并分享RSA公钥的一方。在一些示例性实施例中,参与者A也可以作为发起方,也就是由参与者A首先根据参与者A存储在数据存储模块100中的私有数据,通过中央处理单元102来生成对应的RSA公钥私钥对,并将RSA公钥发送给参与者B。图1所示的步骤S120至步骤S126都是可以调整后变成以参与者A作为发起方来描述。另外,参与者B可以作为合作的发起方,向多于一个的另一方发起合作。例如,参与者B在根据参与者B的私有数据生成RSA公钥私钥对后,可以将RSA公钥发送给参与者A1,A2,或者更多的参与者。而这些接收参与者B的RSA公钥的参与者,均可以各自生成对应的交集后发送给参与者B。如此,参与者B可以跟多个参与者共同合作寻找RSA交集从而提高联邦学习的效果。
在一些示例性实例中,步骤S120至步骤S126的具体细节可以重新调整或者组合。例如,参与者B对随机数ZB的运算可以从步骤S124转移到步骤S122,也就是说,在参与者A运算随机数YA的同时参与者B也可以运算随机数ZB,从而提高效率。这些可以根据具体应用场景进行调整,在此不做具体限定。
在一些示例性实例中,参与者A和参与者B各自的私有数据可以有不同的数量,不同的存储类型,也可以是跨行业的应用数据。例如,参与者A的私有数据可以是互联网电子商务中的社交方面数据,而参与者B的私有数据可以是互联网电子商务中的交易数据。双方跨行业的私有数据根据具体的数据模型可以有相应的RSA交集。另外,参与者A和参与者B各自的私有数据可以有公开的来源。参与者A存储在数据存储模块100的数据也许全部是市场上已经公开的数据,例如公开可查的交易数据,但是这些数据仍可作为参与者A的私有数据去获得相关的RSA交集。从参与者B来看,参与者B无从得知参与者A的原始数据信息,也不需要知道参与者A提供的数据是否可以从公开渠道获得。因此本申请所指的私有数据也可以称作用户数据,用户id,标签数据,用户信息,或者特定领域下的数据如医疗保险信息,金融交易信息等。这些可以根据具体应用场景进行调整,在此不做具体限定。
在一些示例性实施例中,参与者A与参与者B之间的数据交换,可以通过有线或者无线的方式进行,可以通过或者不通过第三方。因为参与者B的RSA私钥一直保持在参与者B内部,而参与者A和参与者B之间只交互加密处理后的私有数据而不会担心泄露原始私有数据,因此在具体交互手段上可以有灵活的选择。这些可以根据具体应用场景进行调整,在此不做具体限定。
请参阅图2,图2是本申请实施例提供的图1所示的加速器的模幂计算单元的结构框图。RSA有关的运算可以分解成模幂运算和模乘运算,分别用模幂计算单元和模乘计算单元完成。其中,根据输入数据的个数,可以分发后发往多个数据通道分别进行模幂运算后再合并。假设最小模幂计算单元用于64比特的数据计算,也即最小模幂单元只能同时处理最大为64比特位宽的数据。假如有3个64比特的数据需要计算,则需要调用3个最小模幂计算单元。对于单个数据的位宽大于64比特的情况,可以将同一个数据拆分后以串行的方式让同一个模幂计算单元计算。例如,将2048比特位宽的数据拆分成4个512比特,再拆分成8个256比特,再拆分成32个64比特,然后发给同一个最小模幂计算单元进行计算。而假设有3个2048比特位宽的数据,则可以调用3个最小模幂计算单元进行同步处理。在另一种实现方式中,还可以根据输入数据的位宽进行拆分后运算再合并,例如将2048比特位宽的数据拆分成4个512比特,再拆分成8个256比特,再拆分成32个64比特,然后同步发给32个模幂计算单元进行计算。这里,根据输入数据来确定要调用的最底层次的模幂计算单元个数以及对应的各个层级的模幂计算单元的个数,可以看成是根据输入数据带宽进行匹配的过程。
请继续参阅图2,加速器的模幂计算单元可以包括三层并行架构。具体地,第一层次的并行架构包括第一层数据分发模块210,第一层数据合并模块211,以及多个第一层模幂计算单元212、213、214、215。第一层模幂计算单元212、213、214、215并行连接于第一层数据分发模块210和第一层数据合并模块211之间。第一层数据分发模块210将接收的原始输入数据转换成适合第一层模幂计算单元212、213、214、215的第一层数据组。第一层数据组有4个数据,每一个对应第一层模幂计算单元212、213、214、215中的一个。第一层模幂计算单元212、213、214、215接收各自对应的数据,进行模幂运算后,将各自输出结果输出到第一层数据合并模块211进行合并后输出。其中,第一层模幂计算单元212可以进一步包括第二层次的并行架构。具体地,第一层模幂计算单元212包括第二层数据分发模块220,第二层数据合并模块221,以及多个第二层模幂计算单元222、223、224。第二层模幂计算单元222、223、224并行连接于第二层数据分发模块220和第二层数据合并模块221之间。第二层数据分发模块220接收对应于第一层模幂计算单元212的第一层数据组的数据,并转换成适合第二层模幂计算单元222、223、224的第二层数据组。第二层数据组有3个数据,每一个对应第二层模幂计算单元222、223、224中的一个。第二层模幂计算单元222、223、224接收各自对应的数据,进行模幂运算后,将各自输出结果输出到第二层数据合并模块221进行合并后输出。其中,第二层模幂计算单元222可以包括第三层次的并行架构。具体地,第二层模幂计算单元222包括第三层数据分发模块230,第三层数据合并模块231,以及多个第三层模幂计算单元232、233、234、235。第三层模幂计算单元232、233、234、235并行连接于第三层数据分发模块230和第三层数据合并模块231之间。第三层数据分发模块230接收对应于第二层模幂计算单元222的第二层数据组的数据,并转换成适合第三层模幂计算单元232、233、234、235的第三层数据组。第三层数据组有4个数据,每一个对应第三层模幂计算单元232、233、234、235中的一个。第三层模幂计算单元232、233、234、235接收各自对应的数据,进行模幂运算后,将各自输出结果输出到第三层数据合并模块231进行合并后输出。如此,通过将用于模幂运算的数据进行多层次的分发和并行运算,可以充分利用模幂运算的特点,也适合高效处理海量数据。图2所示的各个模幂计算单元也可以称作模幂计算引擎,或者模幂计算模块。
请继续参阅图2,图2所示的三层并行架构中,第一层次包括第一层模幂计算单元212、213、214、215,第二层次包括第二层模幂计算单元222、223、224,第三层包括第三层模幂计算单元232、233、234、235。在一些示例性实施例中,可以配置为第一层有M个并行的模幂计算单元,第二层有N个并行的模幂计算单元,而第三层有P个并行的模幂计算单元。其中,M、N和P都是大于1的正整数。相应的,第一层数据分发模块210和第一层数据合并模块211各自有M个接口一一对应M个并行的模幂计算单元,第二层数据分发模块220和第二层数据合并模块221各自有N个接口一一对应N个并行的模幂计算单元,第三层数据分发模块230和第三层数据合并模块231各自有P个接口一一对应P个并行的模幂计算单元。也就说,每个层次用于并行处理数据的模幂计算单元的个数可以视具体应用场景和需求而调节。这些可以根据具体应用场景进行调整,在此不做具体限定。应当理解的是,当根据输入数据的大小而调用多个最小模幂计算单元时,以三层并行架构为例,则调用多个第三层的模幂计算单元。此时,第三层至多有P个模幂计算单元可以调用,而第二层有N个并行,第一层有M个并行,所以总共有M乘以N乘以P个最小模幂计算单元。这意味着,当按照输入数据个数进行拆分合并时,可以同步处理最多M乘以N乘以P个数据,每个数据分配给一个最底层次的最小模幂计算单元。
请继续参阅图2,在一些示例性实施例中,还可以只包括一层并行架构,两层并行架构,四层并行架构或者更多层次的并行架构。并且,不同层次深度的架构也可以同时存在。例如,在第一层次的第一层模幂计算单元212、213、214、215中,第一层模幂计算单元212如图2所示可以包括两个层次的并行架构,而第一层模幂计算单元213在一种可能的实现方式中可以包括三个层次的并行架构,第一层模幂计算单元214则可以包括四个层次的并行架构。从数据通道的角度来看,位于第一层次的第一层模幂计算单元212、213、214、215可以看做是最宽层级的四个数据通道,每一个数据通道又可以分成多个分岔路,也即是下一层次的并行架构。这些分岔路还可以进一步分成更窄的数据通道,也就是延伸出更深层次的并行架构。具体的并行架构的最深层次和布局可以视具体应用场景和需求而调节。这些可以根据具体应用场景进行调整,在此不做具体限定。
图2所示的加速器的模幂计算单元可以对应图1所示的参与者A的加速器104的模幂计算单元106,也可以对应图1所示的参与者B的加速器114的模幂计算单元116,或者可以对应其它实施例的加速器。RSA有关的运算可以拆分成模幂运算和模乘运算。通过数据标签可以判断是否为用于模幂运算的数据,如果是则可以通过图2所示的模幂计算单元来完成。图2所示的加速器还可以包括任务管理模块(未示出)。任务管理模块与各个层级的数据分发模块和数据合并模块连接,并控制数据的分发和合并。
在一些示例性实施例中,图2所示的加速器还可以包括高速串行计算机扩展总线(Peripheral Component Interconnect Express,PCIE)接口(未示出)。PCIE接口用于通过直接存储器访问(Direct Memory Access,DMA)的方式将数据分批搬运到加速器的内存中,从而有利于高速并行运算中数据的吞吐。
在一些示例性实施例中,图2所示的加速器可以通过现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)实现。例如,可以通过FPGA内置的可配置逻辑块(Configurable Logic Block,CLB),输入输出模块(Input Output Block,IOB)和内部连线(Interconnect),结合可编程器件的设计工具,将图2所示的具有三个层次并行架构的模幂计算单元,以及相应的控制电路,接口还有模乘计算单元在同一个FPGA平台或者FPGA芯片上实现。因为FPGA具有并行运算的优势,可以大幅提升运算速度,从而有利于实现高速处理RSA交集相关运算。另外,FPGA可以同时满足A方和B方的计算需求,用户可以灵活的切换作为A方还是B方的身份。
请参阅图3,图3是本申请实施例提供的一种实现方式的利用加速器获得RSA交集的流程示意图。在一种实现方式中,该加速器在一个FPGA平台上。所述FPGA平台包括数据存储模块,中央处理单元和加速器。图3所示的方法包括以下步骤。
步骤S300:从所述数据存储模块中读取用户数据。
其中,用户数据也可以称作私有数据,用户id,标签数据,用户信息,或者特定领域下的数据如医疗保险信息,金融交易信息等。这些可以根据具体应用场景进行调整,在此不做具体限定。
步骤S302:生成RSA公钥和RSA私钥。
其中,生成RSA公钥私钥对的运算由中央处理单元完成。RSA私钥一直留在该FPGA平台以确保用户隐私不会泄露。
步骤S304:接收随机数YA,其中,所述随机数YA基于对所述RSA公钥和另一用户数据的哈希值进行运算得到。
其中,对随机数YA的运算需要先用到模幂运算再用到模乘运算,这可以通过加速器的模幂计算单元和模乘计算单元分别完成,或者可以通过通用处理器进行哈希值相关运算。这里,该FPGA平台从外部接收处理好的随机数YA。
步骤S306:根据所述随机数YA和所述RSA私钥生成随机数ZA。
其中,对随机数ZA的运算需要用到哈希运算和模幂运算,而这些均可以通过加速器的模幂计算单元完成,或者可以通过通用处理器进行哈希运算。
步骤S308:根据所述用户数据和所述RSA私钥生成随机数ZB。
其中,对随机数ZB的运算需要用到哈希运算和模幂运算,而这些均可以通过加速器的模幂计算单元完成,或者可以通过中央处理单元来进行哈希运算。
步骤S310:接收随机数DA和所述随机数ZB的RSA交集,其中,所述随机数DA根据所述随机数ZA和所述RSA公钥生成。
其中,对随机数DA的运算需要用到模幂运算,这可以通过加速器的模幂计算单元完成。这里,该FPGA平台从外部接收处理好的随机数DA。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (14)
1.一种加速器,其特征在于,所述加速器包括:
模乘计算单元,其中,所述模乘计算单元用于运行模乘运算;
模幂计算单元,其中,所述模幂计算单元用于运行模幂运算,所述模幂计算单元包括第一层数据分发模块,第一层数据合并模块和并行连接于所述第一层数据分发模块和所述第一层数据合并模块之间的多个第一层模幂计算引擎;和
控制器,
其中,所述控制器用于:
根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元;
当所述模幂计算单元被调用时,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个;
根据所调用的第一层模幂计算引擎的个数,通过所述第一层数据分发模块,将所述输入数据转换成由多个第一层数据组成的第一层数据组,所述多个第一层数据的总数与所调用的第一层模幂计算引擎的总数相同;
将所述第一层数据组的所述多个第一层数据分发给所调用的第一层模幂计算引擎进行并行运算;以及
通过所述第一层数据合并模块,将所调用的第一层模幂计算引擎的输出合并后得到输出数据。
2.根据权利要求1所述的加速器,其特征在于,所调用的第一层模幂计算引擎的至少一个第一层模幂计算引擎包括第二层数据分发模块,第二层数据合并模块和并行连接于所述第二层数据分发模块和所述第二层数据合并模块之间的多个第二层模幂计算引擎,其中,所述控制器还用于:
根据所述至少一个第一层模幂计算引擎的输入数据调用所述多个第二层模幂计算引擎的一个或多个;
根据所调用的第二层模幂计算引擎的个数,通过所述第二层数据分发模块,将所述至少一个第一层模幂计算引擎的输入数据转换成由多个第二层数据组成的第二层数据组,所述多个第二层数据的总数与所调用的第二层模幂计算引擎的总数相同;
将所述第二层数据组的所述多个第二层数据分发给所调用的第二层模幂计算引擎进行并行运算;以及
通过所述第二层数据合并模块,将所调用的第二层模幂计算引擎的输出合并后得到所述至少一个第一层模幂计算引擎的输出数据。
3.根据权利要求2所述的加速器,其特征在于,所调用的第二层模幂计算引擎的至少一个第二层模幂计算引擎包括第三层数据分发模块,第三层数据合并模块和并行连接于所述第三层数据分发模块和所述第三层数据合并模块之间的多个第三层模幂计算引擎,其中,所述控制器还用于:
根据所述至少一个第二层模幂计算引擎的输入数据调用所述多个第三层模幂计算引擎的一个或多个;
根据所调用的第三层模幂计算引擎的个数,通过所述第三层数据分发模块,将所述至少一个第二层模幂计算引擎的输入数据转换成由多个第三层数据组成的第三层数据组,所述多个第三层数据的总数与所调用的第三层模幂计算引擎的总数相同;
将所述第三层数据组的所述多个第三层数据分发给所调用的第三层模幂计算引擎进行并行运算;以及
通过所述第三层数据合并模块,将所调用的第三层模幂计算引擎的输出合并后得到所述至少一个第二层模幂计算引擎的输出数据。
4.根据权利要求1所述的加速器,其特征在于,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个,包括,根据所述输入数据的带宽和所述第一层模幂计算引擎的最大处理带宽确定所调用的所述第一层模幂计算引擎的个数。
5.根据权利要求3所述的加速器,其特征在于,根据所述输入数据调用所述多个第一层模幂计算引擎的一个或多个,包括,根据所述输入数据的个数调用所述个数的第三层模幂计算引擎,根据所调用的第三层模幂计算引擎确定所调用的所述第一层模幂计算引擎的个数。
6.根据权利要求1所述的加速器,其特征在于,所述多个第一层模幂计算引擎的至少两个第一层模幂计算引擎包括至少一层并行架构,每一层并行架构包括多个并行连接的模幂计算引擎,所述至少两个第一层模幂计算引擎的一个所包括的并行架构的层次数不同于所述至少两个第一层模幂计算引擎的另一个所包括的并行架构的层次数。
7.根据权利要求6所述的加速器,其特征在于,所述多个第一层模幂计算引擎所包括的并行架构的层次数和分布预先设定。
8.根据权利要求1所述的加速器,其特征在于,所述加速器还包括PCIE接口,所述第一层数据分发模块与所述PCIE接口电连接用于读取所述输入数据。
9.一种用于联邦学习的系统,其特征在于,所述系统包括数据存储模块,中央处理单元,和根据权利要求1-8任一项所述的加速器。
10.根据权利要求9所述的系统,其特征在于,所述数据存储模块存储有用户数据,所述中央处理单元生成RSA公钥和RSA私钥,所述处理器用于处理跟所述用户数据的RSA交集有关的模乘运算和模幂运算。
11.根据权利要求10所述的系统,其特征在于,所述系统与存储有另一用户数据的另一系统通信地连接,所述处理器与所述另一系统协作以获得所述用户数据和所述另一用户数据的RSA交集。
12.一种基于FPGA平台的计算RSA交集的方法,所述FPGA平台包括数据存储模块,中央处理单元和加速器,其特征在于,所述方法包括:
从所述数据存储模块中读取用户数据;
生成RSA公钥和RSA私钥,其中所述RSA公钥和所述RSA私钥通过所述中央处理单元生成;
接收随机数YA,其中,所述随机数YA基于对所述RSA公钥和另一用户数据的哈希值进行运算得到;
根据所述随机数YA和所述RSA私钥生成随机数ZA,其中,与生成所述随机数ZA相关的模幂运算通过所述加速器完成;
根据所述用户数据和所述RSA私钥生成随机数ZB,其中,与生成所述随机数ZB相关的模幂运算通过所述加速器完成;和
接收随机数DA和所述随机数ZB的RSA交集,其中,所述随机数DA根据所述随机数ZA和所述RSA公钥生成,
其中,所述加速器包括模乘计算单元和模幂计算单元,
所述加速器根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元,
所述模幂计算单元包括多个并行连接的模幂计算引擎用于对所述输入数据进行并行模幂运算。
13.一种基于FPGA平台的计算RSA交集的方法,所述FPGA平台包括数据存储模块,中央处理单元和加速器,其特征在于,所述方法包括:
接收RSA公钥;
根据所述数据存储模块中存储的用户数据和所述RSA公钥计算随机数YA,其中,与生成所述随机数YA相关的哈希运算通过所述中央处理单元完成;
接收随机数ZA和随机数ZB,其中,所述随机数ZB基于对所述RSA公钥和另一用户数据进行运算得到;和
根据所述随机数ZA和所述RSA公钥计算随机数DA,其中,与生成所述随机数DA相关的模幂运算通过所述加速器完成;
计算所述随机数DA和所述随机数ZB的RSA交集,其中,与计算所述RSA交集相关的运算通过所述中央处理单元完成,
其中,所述加速器包括模乘计算单元和模幂计算单元,
所述加速器根据输入数据的数据标签而选择性地调用所述模乘计算单元或者所述模幂计算单元,
所述模幂计算单元包括多个并行连接的模幂计算引擎用于对所述输入数据进行并行模幂运算。
14.一种计算机可读存储介质,所述存储介质存储有计算机指令,所述计算机指令当被处理器执行时使得计算机执行权利要求12或13所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011053384.5A CN112100673A (zh) | 2020-09-29 | 2020-09-29 | 用于隐私计算的联邦学习加速器和rsa交集计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011053384.5A CN112100673A (zh) | 2020-09-29 | 2020-09-29 | 用于隐私计算的联邦学习加速器和rsa交集计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100673A true CN112100673A (zh) | 2020-12-18 |
Family
ID=73783821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011053384.5A Pending CN112100673A (zh) | 2020-09-29 | 2020-09-29 | 用于隐私计算的联邦学习加速器和rsa交集计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100673A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112365006A (zh) * | 2021-01-12 | 2021-02-12 | 深圳致星科技有限公司 | 用于联邦学习的并行训练方法及系统 |
CN112883408A (zh) * | 2021-04-29 | 2021-06-01 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN113900828A (zh) * | 2021-12-08 | 2022-01-07 | 深圳致星科技有限公司 | 联邦学习专用处理器、联邦学习处理芯片及芯片 |
CN113946846A (zh) * | 2021-10-14 | 2022-01-18 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密文计算装置及方法 |
CN114021734A (zh) * | 2021-10-14 | 2022-02-08 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738238A (zh) * | 2005-09-08 | 2006-02-22 | 上海微科集成电路有限公司 | 高速可配置rsa加密算法及协处理器 |
CN1811698A (zh) * | 2006-03-01 | 2006-08-02 | 成都卫士通信息产业股份有限公司 | 大数模幂系统的硬件高基实现方法 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
CN106487512A (zh) * | 2015-08-31 | 2017-03-08 | 北京同方微电子有限公司 | 一种rsa密钥对快速生成系统及方法 |
-
2020
- 2020-09-29 CN CN202011053384.5A patent/CN112100673A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738238A (zh) * | 2005-09-08 | 2006-02-22 | 上海微科集成电路有限公司 | 高速可配置rsa加密算法及协处理器 |
CN1811698A (zh) * | 2006-03-01 | 2006-08-02 | 成都卫士通信息产业股份有限公司 | 大数模幂系统的硬件高基实现方法 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
CN106487512A (zh) * | 2015-08-31 | 2017-03-08 | 北京同方微电子有限公司 | 一种rsa密钥对快速生成系统及方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112365006A (zh) * | 2021-01-12 | 2021-02-12 | 深圳致星科技有限公司 | 用于联邦学习的并行训练方法及系统 |
CN112365006B (zh) * | 2021-01-12 | 2021-04-02 | 深圳致星科技有限公司 | 用于联邦学习的并行训练方法及系统 |
CN112883408A (zh) * | 2021-04-29 | 2021-06-01 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN112883408B (zh) * | 2021-04-29 | 2021-07-16 | 深圳致星科技有限公司 | 用于隐私计算的加解密系统和芯片 |
CN113946846A (zh) * | 2021-10-14 | 2022-01-18 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的密文计算装置及方法 |
CN114021734A (zh) * | 2021-10-14 | 2022-02-08 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
CN114021734B (zh) * | 2021-10-14 | 2022-04-12 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的参数计算装置、系统及方法 |
CN113900828A (zh) * | 2021-12-08 | 2022-01-07 | 深圳致星科技有限公司 | 联邦学习专用处理器、联邦学习处理芯片及芯片 |
CN113900828B (zh) * | 2021-12-08 | 2022-03-04 | 深圳致星科技有限公司 | 联邦学习专用处理器、联邦学习处理芯片及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100673A (zh) | 用于隐私计算的联邦学习加速器和rsa交集计算方法 | |
US20200211105A1 (en) | Data auditing method and device | |
Laur et al. | Cryptographically private support vector machines | |
CN111475854B (zh) | 保护两方数据隐私的协同计算方法及系统 | |
JP7328237B2 (ja) | コンピュータにより実施される投票処理およびシステム | |
CN112070222B (zh) | 用于联邦学习的处理装置、加速器及方法 | |
Ogiela | Cryptographic techniques of strategic data splitting and secure information management | |
CN113761563B (zh) | 数据交集计算方法、装置及电子设备 | |
CN112365006B (zh) | 用于联邦学习的并行训练方法及系统 | |
CN112883408B (zh) | 用于隐私计算的加解密系统和芯片 | |
Singh et al. | A cryptography based privacy preserving solution to mine cloud data | |
CN113158239B (zh) | 保护数据隐私的选择问题处理方法 | |
US8220040B2 (en) | Verifying that group membership requirements are met by users | |
CN114844621B (zh) | 基于多密钥全同态加密的多用户隐私保护机器学习方法及装置 | |
CN112953974B (zh) | 数据碰撞方法、装置、设备及计算机可读存储介质 | |
CN115130140B (zh) | 多方隐私数据及金融隐私数据的安全联合分析方法 | |
CN112733161A (zh) | 用于联邦学习密文运算的装置及方法 | |
CN112131593A (zh) | 基于信息的特征的加密方法、装置、设备及储存介质 | |
CN114021734B (zh) | 用于联邦学习和隐私计算的参数计算装置、系统及方法 | |
JP2020519968A (ja) | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム | |
CN112069525A (zh) | 基于信息的属性生成密钥的加密方法、装置及设备 | |
CN113946846B (zh) | 用于联邦学习和隐私计算的密文计算装置及方法 | |
CN113900828B (zh) | 联邦学习专用处理器、联邦学习处理芯片及芯片 | |
CN112527898B (zh) | 安全计算方法、装置、计算机及存储介质 | |
Singh et al. | A privacy preserving Jaccard similarity function for mining encrypted data |
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 |