基于联邦学习的硬件加速数据传输方法技术

技术编号:34487980 阅读:18 留言:0更新日期:2022-08-10 09:05
本申请公开了一种基于联邦学习的硬件加速数据传输方法,包括采用密文方式传输数据,且数据的明文和密文之间通过模幂运算转换,针对所述模幂运算、整体上采用第一状态机表达执行过程;针对所述模方运算和所述模乘运算,通过第二状态机表达执行过程;在所述模幂运算开始后,当进行至所述模方运算或所述模乘运算时,所述第一状态机向所述第二状态机发出相应的控制信号,所述第二状态机相应的切换至对应的状态,所述模方运算或所述模乘运算结束后,所述第二状态机切换至等待状态、直至下一次模方运算或模乘运算的开始,或直至模幂运算的结束。本申请加速了最为耗时的大整数模幂运算,整个流程更加高效可控。整个流程更加高效可控。整个流程更加高效可控。

【技术实现步骤摘要】
基于联邦学习的硬件加速数据传输方法


[0001]本申请涉及联邦学习
,主要涉及用于密文数据传输的隐私计算。

技术介绍

[0002]联邦学习是一个机器学习框架,能帮助不同机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据联合使用和建模。具体地说,联邦学习要解决这样一个问题:在企业各自数据不出本地的前提下,通过加密机制下的参数交换与优化,建立一个虚拟的共有模型。为保护多方用户数据的安全,必须借助隐私计算方法,常用的方法有同态加密、差分隐私、安全多方计算等。
[0003]同态加密技术将大大增加联邦学习计算过程中的计算工作量。RSA算法作为典型的同态加密算法,支持同态运算,但目前出于对于安全性的考量,加密密钥往往是需要达到2048位的大整数,在此基础上对于明文进行大量的乘除运算将极大的增加CPU的运算压力。如何加速同态加密的运算过程,是联邦学习领域中急需解决的问题。
[0004]许多现有的联邦学习框架使用软件解决方案进行RSA算法大整数运算,而软件解决方案通常只是调用高级程序语言成熟的API,这样就导致可以优化的空间很少,现有方法的优化方案通常是增加运算CPU核心数或使用GPU技术提高运算的并发度。不管是增加CPU核还是使用GPU,均大大提高了成本,且可扩展性差,因此本专利技术从运算底层进行电路级别优化,并即成为一套可与PC端进行交互的设备,通过与联邦学习框架进行数据交互,快速的完成大整数运算。
[0005]2048位的大整数模幂运算是RSA等算法的速度瓶颈,如何优化模幂运算成为了硬件加速电路最为核心的问题。

技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种优化的传输方法,在数据加解密时,加速隐私计算中最为耗时的大整数模幂运算,结合状态机的方式使整个流程更加高效可控。
[0007]本申请基于联邦学习的硬件加速数据传输方法,包括采用密文方式传输数据,且数据的明文和密文之间通过模幂运算转换,所述模幂运算基于改进的Montgomery算法实施、且包括预处理、模方运算、模乘运算、以及后处理;
[0008]针对所述模幂运算、整体上采用第一状态机表达执行过程;针对所述模方运算和所述模乘运算,通过第二状态机表达执行过程;
[0009]在所述模幂运算开始后,当进行至所述模方运算或所述模乘运算时,所述第一状态机向所述第二状态机发出相应的控制信号,所述第二状态机相应的切换至对应的状态,所述模方运算或所述模乘运算结束后,所述第二状态机切换至等待状态、直至下一次模方运算或模乘运算的开始,或直至模幂运算的结束。
[0010]可选的,针对所述明文和所述密文的处理采用第三状态机表达执行过程,所述第
三状态机具有空闲状态以及三组工作状态,所述三组工作状态分别对应数据的加载、运算和存储,每组工作状态根据数据的不同包括至少两种状态。
[0011]可选的,所述三组工作状态中的第一组包括:加载明文状态、加载密文状态、加载常数状态、加载公钥状态、加载私钥状态、以及加载模数状态;
[0012]所述三组工作状态中的第二组包括:存储明文状态、以及存储密文状态;
[0013]所述三组工作状态中的第三组包括:加密状态、以及解密状态。
[0014]可选的,针对所述模方运算,所述第二状态机依次具有模方运算的预处理状态、模方运算过程状态、以及模方运算结束状态;
[0015]针对所述模乘运算,所述第二状态机依次具有模乘运算的预处理状态、模乘运算过程状态、以及模乘运算结束状态;
[0016]所述第二状态机在所述等待状态下,接收到来自第一状态机的模方运算控制信号或模乘运算控制信号中的一者、以及第一开始信号后切换至相应的模方运算的预处理状态或模乘运算的预处理状态;
[0017]所述第二状态机在模方运算过程状态或模乘运算过程状态下,当接收到第一完成信号后切换至相应的模方运算结束状态或模乘运算结束状态。
[0018]可选的,所述第二状态机还具有:
[0019]空闲状态,所述第二状态机在所述等待状态下、接收到来自所述第一状态机的模幂运算完成信号时,切换至所述空闲状态;
[0020]运算准备状态,所述第二状态机在空闲状态下、接收到来自所述第一状态机的所述第一开始信号时,切换至所述运算准备状态,在所述运算准备状态下接收到来自所述第一状态机的模方运算控制信号或模乘运算控制信号时,相应的切换至所述模方运算的预处理状态或所述模乘运算的预处理状态。
[0021]可选的,所述模方运算、所述模乘运算采用脉动阵列执行,且所述第一完成信号由所述脉动阵列输出;所述脉动阵列采用非交叉串行的方式执行运算。
[0022]可选的,所述模幂运算通过计算单元执行,且所述计算单元的至少一部分为所述脉动阵列,所述第一状态机可输出所述第一开始信号、第一次预处理控制信号、第二次预处理信号、所述模方运算控制信号、所述模乘运算控制信号、后处理控制信号、密钥位移控制信号、所述模幂运算完成信号,用于控制所述计算单元执行相应的运算。
[0023]可选的,各状态机均基于FPGA实现。
[0024]本申请为了适应联邦学习,设计了与联邦学习框架可进行直接交互的硬件加速设备,在加解密的过程中通过将大整数模幂运算转换为模乘运算,另外还针对模乘运算中最为耗时的取模运算设计了高效模乘运算电路。
附图说明
[0025]图1为第一状态机的状态变化示意图;
[0026]图2为第一状态机的结构示意图;
[0027]图3为第二状态机的状态变化示意图;
[0028]图4为脉动阵列的结构示意图;
[0029]图5为脉动阵列的整体传播示意图。
具体实施方式
[0030]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0031]现有的RSA算法是联邦学习中经常应用的同态加密方法,其算法主要部分为:
[0032]加密明文:C=E(M)≡M
E
(modN);解密密文:M=D(C)≡E
D
(modN)。
[0033]其中,M代表需要加密的明文,C代表加密后的密文,E代表加密时候的密钥,D代表解密时候的密钥,N代表模长。
[0034]针对RSA算法中的模幂运算,L

R模幂算法可将将模幂运算转换成平方模乘运算(下文简称模方运算,但也可理解为特殊形式的模乘,因此下文中的模乘控制器也涉及该部分的运算)和模乘运算这两种模乘的迭代。从模乘运算过程可以发现,模乘运算过程中求模运算是最耗时,也是最不容易计算的环节,因为计算一次除法实际上需要进行多次加、减、乘,这就会大大降低模乘运算的效率。如果能够在算法中尽量减少做除法运算甚至避免不去做除法运算,这样模乘算法的效率就可以大大提高。
[0035]Montgomery算法用移位和加法代替了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于联邦学习的硬件加速数据传输方法,包括采用密文方式传输数据,且数据的明文和密文之间通过模幂运算转换,其特征在于,所述模幂运算基于改进的Montgomery算法实施、且包括预处理、模方运算、模乘运算、以及后处理;针对所述模幂运算、整体上采用第一状态机表达执行过程;针对所述模方运算和所述模乘运算,通过第二状态机表达执行过程;在所述模幂运算开始后,当进行至所述模方运算或所述模乘运算时,所述第一状态机向所述第二状态机发出相应的控制信号,所述第二状态机相应的切换至对应的状态,所述模方运算或所述模乘运算结束后,所述第二状态机切换至等待状态、直至下一次模方运算或模乘运算的开始,或直至模幂运算的结束。2.如权利要求1所述的基于联邦学习的硬件加速数据传输方法,其特征在于,针对所述明文和所述密文的处理采用第三状态机表达执行过程,所述第三状态机具有空闲状态以及三组工作状态,所述三组工作状态分别对应数据的加载、运算和存储,每组工作状态根据数据的不同包括至少两种状态。3.如权利要求2所述的基于联邦学习的硬件加速数据传输方法,其特征在于,所述三组工作状态中的第一组包括:加载明文状态、加载密文状态、加载常数状态、加载公钥状态、加载私钥状态、以及加载模数状态;所述三组工作状态中的第二组包括:存储明文状态、以及存储密文状态;所述三组工作状态中的第三组包括:加密状态、以及解密状态。4.如权利要求3所述的基于联邦学习的硬件加速数据传输方法,其特征在于,针对所述模方运算,所述第二状态机依次具有模方运算的预处理状态、模方运算过程状态、以及模方运算结束状态;针对所述模乘运算,所述第二状态机依次具有模乘运算的预处理状态、模乘运算过程状态、以及模乘运算结束...

【专利技术属性】
技术研发人员:郑占余李进林博董科雄王德健
申请(专利权)人:杭州医康慧联科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1