一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用高通量CRT评估的用于机器学习和神经网络的同态加密的制作方法

2022-03-19 18:33:42 来源:中国专利 TAG:

使用高通量crt评估的用于机器学习和神经网络的同态加密
技术领域
1.概括而言,本文中描述的实施例涉及计算系统的领域,并且更特别地涉及使用高通量(high-throughput)中国剩余定理(crt)评估的用于机器学习和神经网络的同态加密。


背景技术:

2.密码加密计算可指在处理器部件内采用密码加密机制的计算机系统安全解决方案。一些密码加密计算系统可以在存储器指针或用户数据上在此类数据离开处理器边界并进入一些外部存储器单元或传送给一些其他装置之前,在处理器核内采用加密和/或其他密码加密机制。密码加密计算的一种类型是同态加密(he)。he是指一类公共加密密钥加密方案,其对同态加密的数据执行评估(例如加法和乘法)。


技术实现要素:

3.本文中描述的实施例提供一种设备,包括:硬件加速器,用于:接收由同态加密(he)生成的密文以用于评估;将所述密文的系数分解成一组分解的系数;使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及将乘法的结果转换回对应于所述较大模数的原始形式。
4.本文中描述的实施例提供一种方法,包括:由计算装置的硬件加速器接收由同态加密(he)生成的密文以用于评估;由所述硬件加速器将所述密文的系数分解成一组分解的系数;由所述硬件加速器使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及由所述硬件加速器将乘法的结果转换回对应于所述较大模数的原始形式。
5.本文中描述的实施例提供一种系统,包括:存储器;以及可通信地耦合到所述存储器的硬件加速器,所述硬件加速器用于实施中国剩余定理(crt)乘法器电路,所述硬件加速器包括一组m乘m的乘法器、2m到m的归约电路、行波加法累加器和模归约电路,所述一组用于:从所述存储器中接收由同态加密(he)生成的密文以用于评估;将所述密文的系数分解成一组分解的系数;使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及将乘法的结果转换回对应于所述较大模数的原始形式。
6.本文中描述的实施例提供至少一种机器可读介质和一种使用高通量crt评估促进用于机器学习和神经网络的he的设备。
附图说明
7.这里描述的实施例在附图的各个图中以举例的方式并且不是以限制的方式示出,其中相似的附图标记是指类似的元件。
8.图1示出了根据本发明的具体实施方式的采用同态加密(he)中国剩余定理(crt)评估部件的计算装置。
9.图2示出了根据本发明的一个具体实施方式的he crt评估部件。
10.图3是描绘根据本发明的具体实施方式的he crt评估部件的示例架构图的框图。
11.图4示出了根据本发明的具体实施方式的he crt评估部件的系数分解单元的框图。
12.图5示出了根据本发明的具体实施方式的he crt评估部件的模乘法单元的框图。
13.图6示出了根据本发明的具体实施方式的he crt评估部件的模转换单元的框图。
14.图7示出了根据本发明的某些具体实施方式的使用高通量crt评估的用于机器学习和神经网络的he的示例流程。
15.图8是根据本发明的一些具体实施方式的说明性电子计算装置的示意图,该电子计算装置实现使用高通量crt评估的用于机器学习和神经网络的he。
具体实施方式
16.各种实施例针对使用例如高通量中国剩余定理(crt)评估的用于机器学习和神经网络的同态加密技术。
17.同态加密(he)是指一种加密形式,其允许在密文上进行计算,生成加密结果,当解密时,该加密结果与操作的结果相匹配,就像它们是在明文上执行的。he识别了一类公钥加密方案,其对同态加密的数据执行评估(例如加法和乘法)。在现代he方案中,密文可以被组织为具有高维度和大系数的代数环。例如,环上差错学习(lwe)是代数环的典型选择,其中两个密文的乘法利用对高次多项式(例如8192次)进行乘法,其中系数模(“模”或“模数”)大整数(例如220位)。
18.he的示例应用领域包括医疗、金融,以及一般来说,从多方提供的数据的组合分析中受益的领域。he应用的工作负载的示例包括但不限于逻辑回归训练、贝叶斯推理或神经网络。
19.目前he应用的一个缺点是,在同态加密的数据上评估乘法,与在明文上评估同样的操作相比,可能要慢105倍。例如,如上所述,在he方案中,密文可能被组织为具有高维度和大系数的代数环。这样,he方案的结果是,单个原生数据类型(例如整数、浮点等)被加密成更复杂的数据结构。该更复杂的数据结构可以是具有一定位宽的系数的多项式。
20.因此,在原生明文域和he域的对比中,执行等效的计算操作,诸如加法和乘法,也会更加复杂。例如,在原生域中进行两个8位整数的乘法,结果是16位输出。然而,一旦在he域中加密,等效的两个8位整数的乘法可能涉及几百位系数的几千个元素的多项式作为输入。这可能涉及在he域中超过十万次的乘法。这样,he域中系数乘法的延迟和通量与he评估的整体性能直接相关。
21.本发明的实施例通过提供使用高通量crt评估的用于机器学习和神经网络的he,来解决he领域中计算复杂性的上述挑战。在本发明的具体实施方式中,通过将he密文的系数转换为较小的整数,以mod qi进行乘法,并转换回mod q,实施高通量crt评估部件以执行he评估(例如,乘法、加法等)。
22.如本文中描述,在he领域中利用高通量crt评估部件,为包括线性和逻辑回归的神经网络和训练机器学习任务改进了在加密数据上计算复杂操作的性能。这样,本发明的具体实施方式改进了整体计算装置性能,包括处理单元利用率和计算架构中的改进延迟。
23.图1示出了根据本发明的一个具体实施方式的采用he crt评估部件110的计算装置100。计算装置100代表通信和数据处理装置,其包括或代表(不受限制)智能语音命令装
置、智能个人助理、家庭/办公自动化系统、家用电器(例如,洗衣机、电视机等)、移动装置(例如,智能手机、平板计算机等)、游戏装置、手持装置、可穿戴装置(例如,智能手表、智能手环等)、虚拟现实(vr)装置、头戴式显示器(hmd)、物联网(iot)装置、膝上型计算机、台式计算机、服务器计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(gps)的装置、汽车信息娱乐装置等。
24.在一些实施例中,计算装置100包括任何数量和类型的其他智能装置或与其一起工作,或嵌入或促进这些智能装置,其诸如(但不限于)自主机器或人工智能代理,诸如机械代理或机器、电子代理或机器、虚拟代理或机器、机电代理或机器等。自主机器或人工智能代理的示例可以包括(但不限于)机器人、自主车辆(例如,自动驾驶的汽车、自动驾驶的飞机、自动驾驶的船只等)、自主设备自动操作的建筑车辆、自动操作的医疗设备等,等等。此外,“自主车辆”不限于汽车,而是它们可以包括任何数量和类型的自主机器,诸如机器人、自主设备、家用自主装置,等等,并且与此类自主机器有关的任何一个或多个任务或操作可以与自主驾驶互换引用。
25.此外,例如,计算装置100可以包括承载集成电路(“ic”)的计算机平台,诸如片上系统(“soc”或“soc”),其中计算装置100的各种硬件和/或软件部件都集成在单个芯片上。
26.如图所示,在一个实施例中,计算装置100可以包括任何数量和类型的硬件和/或软件部件,诸如(但不限于)图形处理单元(“gpu”或简称为“图形处理器”)114、图形驱动器(也被称为“gpu驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(umd)、用户模式驱动器框架(umdf),或简称为“驱动器”)115,中央处理单元(“cpu”或简称为“应用处理器”)112、存储器108、网络装置、驱动器等,以及输入/输出(i/o)源104,诸如触摸屏、触摸板、触摸垫、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算装置100可以包括操作系统(os)106,其用作计算装置100的硬件和/或物理资源与用户之间的界面。
27.应当理解,对于某些具体实施方式,可利用比上述示例更少或更多的配备系统。因此,计算装置100的配置可取决于许多因素,诸如价格限制、性能要求、技术改进或其他情况,在不同的具体实施方式中有所不同。
28.实施例可以作为以下中的任一个或组合来实施:使用母板相互连接的一个或多个微芯片或集成电路、硬接线逻辑、由存储器装置存储并由微处理器执行的软件、固件、专用集成电路(asic)和/或现场可编程门阵列(fpga)。术语“逻辑”、“模块”、“部件”、“引擎”、“电路系统”、“元件”和“机制”可以包括例如软件、硬件和/或其组合,诸如固件。
29.在一个实施例中,如图所示,he crt评估部件110可以由与计算装置100的(多个)i/o源104(诸如麦克风、扬声器等)通信的存储器108托管。在另一个实施例中,he crt评估部件110可以是操作系统106的一部分或由其托管。在又一个实施例中,he crt评估部件110可以由图形驱动器115托管或促进。在又一个实施例中,he crt评估部件110可以由硬件加速器114托管或作为其一部分;例如,he crt评估部件110可以嵌入硬件加速器114的处理硬件中或作为其一部分实施,诸如以he crt评估部件140的形式。在又一个实施例中,he crt评估部件110可以由图形处理单元(“gpu”或简称为“图形处理器”)116或图形处理器116的固件托管或作为其一部分;例如,he crt乘法部件可以嵌入图形处理器116的处理硬件中或作为其一部分实施,诸如以he crt评估部件130的形式。类似地,在又一个实施例中,he crt评估部件110可以由中央处理单元(“cpu”或简称为“应用处理器”)112托管或作为其一部
分;例如,he crt评估部件120可以嵌入应用处理器112的处理硬件中或作为其一部分实施,诸如以he crt评估部件120的形式。在一些实施例中,he crt评估部件110可由一个或多个处理器提供,该处理器包括图形处理器、应用处理器和另一个处理器中的一个或多个,其中该一个或多个处理器共同位于共同的半导体封装上。
30.设想了实施例不限于he crt评估部件110的某些具体实施方式或托管,并且he crt评估部件110的一个或多个部分或部件可以采用或实施为硬件、软件或其任何组合,诸如固件。在一个实施例中,例如,he crt评估部件可以由不同于gpu的机器学习处理单元托管。在另一个实施例中,he crt评估部件可以分布在机器学习处理单元和cpu之间。在另一个实施例中,he crt评估部件可以分布在机器学习处理单元、cpu和gpu之间。在另一个实施例中,he crt评估部件可以分布在机器学习处理单元、cpu、gpu和硬件加速器之间。
31.计算装置100可以托管(多个)网络接口装置以提供对网络的访问,诸如lan、广域网(wan)、城域网(man)、个人区域网络(pan)、蓝牙、云网络、移动网络(例如第三代(3g)、第四代(4g)等)、内部网、互联网等。(多个)网络接口可以包括例如具有天线的无线网络接口,该天线可以代表一个或多个天线。(多个)网络接口还可以包括例如有线网络接口以经由网络电缆与远程装置通信,该网络电缆可以是例如以太网电缆、同轴电缆、光缆、串行电缆或并行电缆。
32.例如,可以提供作为计算机程序产品的实施例,该计算机程序产品可以包括一个或多个机器可读介质,该介质上存储有机器可执行指令,当由一个或多个机器诸如计算机、计算机网络或其他电子装置执行时,可使得该一个或多个机器根据本文中描述的实施例执行操作。机器可读介质可以包括但不限于软盘、光盘、cd-rom(光盘-只读存储器)和磁光盘、rom、ram、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、磁卡或光卡、闪存存储器或适合存储机器可执行指令的其他类型的介质/机器可读介质。
33.此外,实施例可作为计算机程序产品下载,其中程序可通过在载波或其他传播介质中体现或由其调制的一个或多个数据信号,经由通信链路(例如,调制解调器和/或网络连接)从远程计算机(例如,服务器)转移到请求的计算机(例如,客户端)。
34.在整个文件中,术语“用户”可以互换地称为“观看者”、“观察者”、“说话者”、“人”、“个人”、“终端用户”等等。需要注意的是,在整个本文件中,术语如“图形域”可以与“图形处理单元”、“图形处理器”或简称为“gpu”互换引用,并且类似地,“cpu域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简称为“cpu”互换引用。
35.需要注意的是,术语如“节点”、“计算节点”、“服务器”、“服务器装置”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“装置”、“计算装置”、“计算机”、“计算系统”等在本文中可以互换使用。需要进一步注意的是,术语如“应用程序”、“软件应用程序”、“程序”、“软件程序”、“包”、“软件包”等在本文中可以互换使用。而且,术语如“工作”、“输入”、“请求”、“消息”等在本文中可以互换使用。
36.图2示出了根据本发明的一个具体实施方式的图1的he crt评估部件110。为简洁起见,下文不再重复或讨论已经参考图1讨论的许多细节。在一个实施例中,he crt评估部件110可以与关于图1描述的he crt评估部件110、120、130、140中的任一个相同,并且可以包括任何数量和类型的部件,诸如(但不限于):系数分解单元201;模乘法单元203;以及模转换单元205。
crt评估部件110可以基于例如模数q=q1×
q2×
...
×
qi的情境,其中每个1≤i≤j,0≤x≤k-1,up to 4表示直至4。这些模数q允许通过系数分解单元201将系数分成更小的部分,通过模乘法单元203将这些更小的部分与更小的模数qi,1≤i≤j独立(且并行)相乘,并在模转换单元205处使用反向crt技术将结果一起重新构造回来。crt指出,如果知道整数n除以几个整数的欧几里得余数,那么就可以确定n除以这些整数的乘积的余数,条件是除数是成对互质的。系数分解单元201、模乘法单元203和模转换单元205的进一步细节将在下面关于图3至图6描述。
45.在一个具体实施方式中,he crt评估部件110利用模数q的目标尺寸“n”,并确定一组尺寸k,其中k=n/d,例如,2≤d≤10。在本发明的具体实施方式中,he crt评估部件110还利用广义或伪梅森素数中的至少一个作为较小模数。梅森素数是指比二的幂少一的素数。也就是说,对于某个整数n,它是形式为mn=2
n-1的素数。广义梅森素数是形式为p=f(2n)的素数。伪梅森素数是形式为p=2
m-k的素数。
46.例如,八个28位qi=2
28-ki,1≤i≤8,并且此224位q=q1×
q2×
...
×
q8。与选择q的传统方法相比,这提供了改进的延迟收益,因为通过随机qi的归约涉及除以qi。
47.图3是框图,其描绘了根据本发明的具体实施方式的he crt评估部件300的示例架构图。在一个具体实施方式中,he crt评估部件300可以与关于图1和图2描述的he crt评估部件120相同。在一个具体实施方式中,he crt评估部件300包括确定的(例如d倍或dx)数量的乘法器310、行波加法累加器320、确定的(例如d倍或dx)数量的2m到m的归约电路330、归约参数335、上m位巴雷特乘法器340、加法电路350、模归约电路360和数据选择器370。在本发明的具体实施方式中,可实施比关于图3所示的更多或更少的部件。
48.在一个示例中,he crt评估部件300为具有crt分解的数字提供“d”并行乘法器310,用于宽度为“m”的小操作数进行乘法。为了提供小操作数格式,he crt评估部件300可以使用例如乘法器310、2m到m的归约电路330(具有归约参数335)、加法电路350和模位归约电路360转换为crt分解。在本发明的具体实施方式中,例如在8位元素上操作时,模归约电路360可以是m 3位到m位的归约电路。例如,对于每个模数pi,he crt评估部件300可以将0到d-1的每个k的2
km mod pi存储在一个向量中。然后,乘法器310被用来将2
km mod pi乘以有效位pi。在一个具体实施方式中,约束条件包括2
km mod pi的值相加小于2m为有效。
49.然后,he crt评估部件300可以重新使用乘法器310和2m到m的归约电路330(带有归约参数335)来执行转换和crt分解的操作数的乘法。
50.在经过乘法器310的乘法和2m到m的归约电路330的归约后,he crt评估部件300将结果转换回mod q。对于转换回,he crt评估部件300可重新使用乘法器310、2m到m的归约电路330(带有归约参数335)、行波加法累加器320和上m位巴雷特乘法器340。例如,本发明的具体实施方式可以确定一个数字是a
i mod pi。he crt评估部件300通过让p=pi(pi)并让bi=p/pi和b
i’=b
i-1
mod pi来确定该数字。然后,he crt评估部件计算a
i’=a
ibi’mod pi,然后计算a
i’bi===a
i mod pi,0mod p
j≠i
。然后,加法电路350可以对所有a
i’bi进行求和,以恢复x mod p,但x最多为d p。he crt评估部件300进一步在上m位巴雷特乘法器340处执行上m位的小巴雷特乘法,然后是全乘法器310。到存储器的数据选择器370使he crt评估部件300的he评估的最终结果能够发送到存储器。
51.在本发明的具体实施方式中,he crt评估部件300能够进行并行归约。在he crt评
估部件300的并行归约的一个示例中,巴雷特乘法器340看起来像[1,l,l2]。乘以[a,b]=2ma b,这看起来像[a,l a b,l2a l b,l^2b],以此类推。结果,计算值为r=a (la b)/2m l(la b)/2
2m
,以此类推。he crt评估部件300将其乘以2
m-1,并从[a,b]中减去,得出la b l(la b)2-m
l2(la b)2-2m
。此外,he crt评估部件300计算la b,它适合于|l| m位,并且等于[a,b]mod 2m。这可以以相同方式归约,即将上|l|位再乘以1,并且加回该值。因此,在两个步骤中,该数字被归约到最多为m 1位的值。he crt评估部件300将1加到该值,并且如果上面的位被设置,则选择该值;否则,选择原始值。l的小尺寸允许这些|l|乘m和|l|乘|l|的乘法电路变得很小。
[0052]
图4示出了根据本发明的具体实施方式的he crt评估部件的系数分解单元400的框图。在一个具体实施方式中,系数分解单元400与关于图2描述的系数分解单元201相同。在一个具体实施方式中,系数分解单元400包括作为关于图3描述的he crt评估部件300的一部分的部件,其被用于对he域中的密文进行评估的系数分解的目的。如图4所示,多个重复系数分解单元电路被示出为实施。所实施的重复系数分解单元电路的数量可取决于在本发明的具体实施方式中利用的特别整数格式和数据尺寸。关于图4描述的系数分解单元400的特别描绘只是可以利用的电路部件的一个示例,并且在本发明的各种具体实施方式中可实施更多或更少的部件作为系数分解单元400的一部分。
[0053]
在一个具体实施方式中,系数分解单元400利用宽m乘m的乘法器410和2m到m的归约电路430来执行crt分解的大部分工作。在一个示例中,大整数n的每个字nj都有隐含的乘法器2
(7-j)m
,并且系数分解单元400将该mod pi作为预计算值进行归约。然后,nj(2
(7-j)m mod pi)是m乘m的乘积,其可以被归约mod pi。所有得到的乘积可以在下一个周期中由加法电路450和模归约电路460(例如,在8位元素上操作时,是m 3位到m位的归约电路)实施的求和与归约模块组合。
[0054]
图5示出了根据本发明的具体实施方式,he crt评估部件的模乘法单元500的框图。在一个具体实施方式中,模乘法单元500与关于图2描述的模乘法单元203相同。在一个具体实施方式中,模乘法单元500包括作为关于图3描述的he crt评估部件300的一部分的部件,其用于对he域中的密文进行评估的模乘法的目的。如图5所示,多个重复模乘法单元电路被示出为实施。所实施的重复模乘法单元电路的数量可取决于在本发明的具体实施方式中所利用的特别整数格式和数据尺寸。关于图5描述的模乘法单元500的特别描述只是可以利用的电路部件的一个示例,并且在本发明的各种具体实施方式中可实施更多或更少的部件作为部分模乘法单元500。
[0055]
在一个具体实施方式中,模乘法单元500对由关于图4描述的系数分解单元400生成的分解的系数进行运算。由于由模乘法单元500运算的数字是以分解的格式表示的,所以乘积是由例如“d”乘法器510,每个m乘m,以及m乘m的归约来计算的。在这种模式下,2m到m的巴雷特模块530中的每个针对不同的素数pi来设置。
[0056]
图6示出了根据本发明的具体实施方式的he crt评估部件的模转换单元600的框图。在一个具体实施方式中,模转换单元600与关于图2描述的模转换单元205相同。在一个具体实施方式中,模转换单元600包括作为关于图3描述的he crt评估部件300的一部分的部件,其用于对he域中的密文进行评估的模转换的目的。
[0057]
如图6所示,多个重复模转换单元电路被示出为实施。所实施的重复模转换单元电
路的数量可取决于在本发明的具体实施方式中所利用的特别整数格式和数据尺寸。关于图6描述的模转换单元600的特别描述只是可利用的电路部件的一个示例,并且在本发明的各种具体实施方式中可实施更多或更少的部件作为部分模转换单元600。
[0058]
在一个具体实施方式中,模转换单元600描绘了重用he crt评估部件硬件来执行反向crt变换。模转换单元的反向crt变换的第一步使用乘法器610乘以乘积pj的倒数(对于j≠i),取模pi。第二步使用2m到m的巴雷特电路630,用该乘积乘以该数字,得到等于n
i mod pi和0mod pj的数字,j≠i。这是通过在乘法器610上增加行波加法器620来完成的。所有产生的副本的总和给出了以8p为界的情况,并且这可以用单个巴雷特乘积640归约到可能大于p但不大于它的数字。如上所述,硬件的多次迭代可以组合在一起,在每个周期内并可能以最小的存储器访问来处理一个数字。
[0059]
图7示出了根据某些实施例的使用高通量crt评估的用于机器学习和神经网络的he的示例流程700。该流程的各种操作可由任何合适的电路系统执行,诸如硬件加速器、计算装置的处理器或处理单元、计算装置的控制器、存储器模块的控制器或计算装置的其他部件。示例流程700可以代表可由图1和图2的计算装置100的一个或多个部件,和/或图3的he crt评估部件300执行或在其上实施的一些或全部操作。实施例在该情境中不受限制。
[0060]
在块710处,计算装置可以接收由he生成的密文以用于评估。如上所述,由he生成的密文包括多个系数。然后,在块720处,计算装置可以将密文的系数分解成一组分解的系数。在一个具体实施方式中,使用系数的crt分解来分解系数。在一些具体实施方式中,实施一组乘法器电路、归约电路、加法电路和模归约电路,以执行系数的crt分解。
[0061]
随后,在块730处,计算装置可以使用基于较大模数确定的一组较小模数对分解的系数进行乘法。在一个具体实施方式中,分解系数使用较小模数彼此独立地进行乘法,其中较小模数包括广义梅森素数或伪梅森素数。在一些具体实施方式中,利用一组乘法器电路和归约电路来执行对分解的系数的乘法。
[0062]
最后,在块740处,计算装置可以将乘法的结果转换回对应于较大模数的原始形式。在一个具体实施方式中,通过对乘法的结果执行反向crt变换来转换结果。在一些具体实施方式中,利用一组乘法器电路、2m到m的巴雷特电路、行波进位电路、上m位巴雷特电路和归约电路来对结果进行反向crt变换。
[0063]
图8是根据一些实施例的说明性电子计算装置的示意图,该计算装置使用高通量crt评估来实现用于机器学习和神经网络的he。在一些实施例中,计算装置800包括一个或多个处理器810,该处理器包括一个或多个处理器核818,该处理器核包括he crt评估部件(hcec)815,诸如关于图1描述的he crt评估部件110至140或关于图3描述的he crt评估部件300。在一些实施例中,计算装置800包括硬件加速器868,该硬件加速器包括he crt评估部件882,诸如关于图1描述的he crt评估部件110至140或关于图3描述的he crt评估部件300。在一些实施例中,计算装置要使用高通量crt评估为机器学习和神经网络提供he,如图1至图7所提供。
[0064]
计算装置800可以另外包括以下中的一个或多个:高速缓存862、图形处理单元(gpu)812(其在一些具体实施方式中可以是硬件加速器)、无线输入/输出(i/o)接口820、有线i/o接口830、系统存储器840(例如,存储器电路系统)、电源管理电路系统850、非暂时性存储装置860,以及用于连接到网络872的网络接口870。下面的讨论提供了对形成说明性计
算装置800的部件的简要的一般描述。示例的、非限制性的计算装置800可以包括桌面计算装置、刀片服务器装置、工作站或类似装置或系统。
[0065]
在实施例中,处理器核818能够执行机器可读指令集814,从一个或多个存储装置860读取数据和/或指令集814,并将数据写入一个或多个存储装置860。相关领域技术人员将理解,示出的实施例以及其他实施例可以用其他基于处理器的装置配置来实践,包括便携式电子或手持式电子装置,例如智能手机、便携式计算机、可穿戴计算机、消费者电子产品、个人计算机(“pc”)、网络pc、微型计算机、服务器刀片、大型计算机等。
[0066]
处理器核818可包括任何数量的硬接线或可配置电路,其中一些或全部可包括电子部件、半导体装置和/或逻辑元件的可编程和/或可配置组合,这些电子部件、半导体装置和/或逻辑元件部分或全部设置在能够执行处理器可读指令的pc、服务器或其他计算系统中。
[0067]
计算装置800包括总线或类似的通信链路816,其可通信地耦合并促进包括处理器核818、高速缓存862、图形处理器电路系统812、一个或多个无线i/o接口820、一个或多个有线i/o接口830、一个或多个存储装置860和/或一个或多个网络接口870在内的各种系统部件之间的信息和/或数据的交换。计算装置800在此本文中可以以单数提及,但这并不旨在本实施例限制为单个计算装置800,因为在某些实施例中,可以有一个以上的计算装置800,其结合、包括或包含任何数量的可通信耦合的、共址的或远程联网的电路或装置。
[0068]
处理器核818可以包括当前可用的或未来开发的能够执行机器可读指令集的装置的任何数量、类型或组合。
[0069]
处理器核818可以包括(或与其耦合),但不限于任何当前或未来开发的单核或多核处理器或微处理器,诸如:一个或多个片上系统(soc);中央处理单元(cpu);数字信号处理器(dsp);图形处理单元(gpu);专用集成电路(asic)、可编程逻辑单元、现场可编程门阵列(fpga)等。除非另有描述,否则图8中所示的各种块的构造和操作是常规设计。因此,本文中没有进一步详细描述此类块,因为相关领域技术人员应该理解它们。将计算装置800的部件中的至少一些互连的总线816可以采用任何当前可用的或未来开发的串行或并行总线结构或架构。
[0070]
系统存储器840可以包括只读存储器(“rom”)842和随机存取存储器(“ram”)846。rom 842中的一部分可用于存储或以其他方式保留基本输入/输出系统(“bios”)844。bios 844向计算装置800提供基本功能,例如通过使处理器核818加载和/或执行一个或多个机器可读指令集814。在实施例中,一个或多个机器可读指令集814中的至少一些引起处理器核818中的至少一部分提供、创建、产生、过渡和/或充当专用的、具体的和特别的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信装置、智能手机或类似的机器。
[0071]
计算装置800可以包括至少一个无线输入/输出(i/o)接口820。该至少一个无线i/o接口820可以可通信地耦合到一个或多个物理输出装置822(触觉装置、视频显示器、音频输出装置、硬拷贝输出装置等)。至少一个无线i/o接口820可以可通信地耦合到一个或多个物理输入装置824(指向装置、触摸屏、键盘、触觉装置等)。至少一个无线i/o接口820可以包括任何当前可用或未来开发的无线i/o接口。示例无线i/o接口包括但不限于:近场通信(nfc),以及类似物。
[0072]
计算装置800可以包括一个或多个有线输入/输出(i/o)接口830。至少一个有线i/
o接口830可以可通信地耦合到一个或多个物理输出装置822(触觉装置、视频显示器、音频输出装置、硬拷贝输出装置等)。该至少一个有线i/o接口830可以可通信地耦合到一个或多个物理输入装置824(指向装置、触摸屏、键盘、触觉装置等)。有线i/o接口830可以包括任何当前可用或未来开发的i/o接口。示例有线i/o接口包括但不限于:通用串行总线(usb)、ieee 1394(“火线”),以及类似物。
[0073]
计算装置800可以包括一个或多个可通信耦合的、非暂时性的数据存储装置860。数据存储装置860可以包括一个或多个硬盘驱动器(hdd)和/或一个或多个固态存储装置(ssd)。一个或多个数据存储装置860可以包括任何当前或未来开发的存储器具、网络存储装置和/或系统。这种数据存储装置860的非限制性示例可以包括但不限于任何当前或未来开发的非暂时性存储器具或装置,诸如一个或多个磁性存储装置、一个或多个光学存储装置、一个或多个电阻存储装置、一个或多个分子存储装置、一个或多个量子存储装置,或其各种组合。在一些具体实施方式中,一个或多个数据存储装置860可以包括一个或多个可移除存储装置,诸如一个或多个闪存驱动器、闪存存储器、闪存存储单元或能够与计算装置800可通信耦合和解耦的类似器件或装置。
[0074]
一个或多个数据存储装置860可包括将各自的存储装置或系统通信地耦合到总线816的接口或控制器(未示出)。一个或多个数据存储装置860可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或对处理器核818和/或图形处理器电路系统812有用,和/或对处理器核818和/或图形处理器电路系统812上执行或由其执行的一个或多个应用程序有用的其他数据。在一些情况下,一个或多个数据存储装置860可以可通信地耦合到处理器核818,例如经由总线816或经由一个或多个有线通信接口830(例如,通用串行总线或usb);一个或多个无线通信接口820(例如,近场通信或nfc);和/或一个或多个网络接口870(ieee 802.3或以太网、ieee 802.11或等)。
[0075]
处理器可读指令集814和其他程序、应用程序、逻辑集和/或模块可以全部或部分地存储在系统存储器840中。此类指令集814可以全部或部分地从一个或多个数据存储装置860转移。指令集814可以在处理器核818和/或图形处理器电路系统812执行期间全部或部分地被加载、存储或以其他方式保留在系统存储器840中。
[0076]
计算装置800可以包括控制储能装置852的一个或多个操作方面的电源管理电路系统850。在实施例中,储能装置852可以包括一个或多个初级(即,不可充电的)或次级(即,可充电的)电池或类似的储能装置。在实施例中,储能装置852可以包括一个或多个超级电容器或超电容器。在实施例中,电源管理电路系统850可以改变、调整或控制从外部电源854到储能装置852和/或到计算装置800的能量流。电源854可以包括但不限于太阳能发电系统、商业电网、便携式发电机、外部储能装置,或其任何组合。
[0077]
为方便起见,处理器核818、图形处理器电路系统812、无线i/o接口820、有线i/o接口830、存储装置860和网络接口870被示出为经由总线816彼此通信地耦合,由此提供上述部件之间的连接。在可替代实施例中,上述部件可以以不同于图8所示的方式通信地耦合。例如,上述部件中的一个或多个可以直接耦合到其他部件,或者可以经由一个或多个中间部件(未示出)彼此耦合。在另一个示例中,上述部件中的一个或多个可以被集成到处理器
核818和/或图形处理器电路系统812中。在一些实施例中,总线816的全部或部分可以被省略,并且部件使用合适的有线或无线连接直接耦合到彼此。
[0078]
下面的示例与进一步的实施例有关。示例1是一种使用高通量crt评估促进用于机器学习和神经网络的he的设备。示例1的设备包括硬件加速器,以:接收由同态加密(he)生成的密文用于评估;将密文的系数分解成一组分解的系数;使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及将乘法的结果转换回对应于较大模数的原始形式。
[0079]
在示例2中,示例1的主题可以可选地包括其中分解的系数使用较小模数彼此独立地进行乘法。在示例3中,示例1至2中任一项的主题可以选择包括其中较小模数包括广义梅森素数或伪梅森素数中的至少一个。在示例4中,示例1至3中任一项的主题可以可选地包括其中用于分解系数的硬件加速器包括用于执行系数的中国剩余定理(crt)分解的硬件加速器。
[0080]
在示例5中,示例1至4中任一项的主题可以可选地包括其中硬件加速器进一步包括一组乘法器电路、归约电路、加法电路和模归约电路以执行系数的crt分解。在示例6中,示例1至5中任一项的主题可以可选地包括其中用于转换结果的硬件加速器包括用于对乘法结果执行反向中国剩余定理(crt)变换的硬件加速器。
[0081]
在示例7中,示例1至6中任一项的主题可以可选地包括其中硬件加速器进一步包括一组乘法器电路、2m到m的巴雷特电路、行波进位电路、上m位巴雷特电路和归约电路以对结果执行反向crt转换。在示例8中,示例1至7中任一项的主题可以可选地包括其中硬件加速器包括一组电路,该一组电路包括乘法器电路、归约电路、行波加法累加器、巴雷特电路或加法电路中的至少一个。
[0082]
在示例9中,示例1至8中任一项的主题可以可选地包括其中该一组电路用于执行分解、乘法和转换中的每一者。在示例10中,示例1至9中任一项的主题可以可选地包括其中硬件加速器包括一组乘法器电路和归约电路,以执行对分解的系数进行乘法。
[0083]
示例11是一种用于使用高通量crt评估促进用于机器学习和神经网络的he的方法。示例11的方法可以可选地包括由计算装置的硬件加速器接收由同态加密(he)生成的密文以用于评估;由硬件加速器将密文的系数分解成一组分解的系数;由硬件加速器使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及由硬件加速器将乘法的结果转换回对应于较大模数的原始形式。
[0084]
在示例12中,示例11的主题可以可选地包括其中使用包括广义梅森素数或伪梅森素数中的至少一个的较小模数对分解的系数彼此独立地进行乘法。在示例13中,示例11至12中任一项的主题可以可选地包括其中用于分解系数的硬件加速器包括执行系数的中国剩余定理(crt)分解的硬件加速器,并且其中硬件加速器进一步包括一组乘法器电路、归约电路、加法电路和模归约电路以执行系数的crt分解。
[0085]
在示例14中,示例11至13中任一项的主题可以可选地包括其中用于转换结果的硬件加速器包括对乘法结果进行反向中国剩余定理(crt)变换的硬件加速器,并且其中硬件加速器进一步包括一组乘法器电路、2m到m的巴雷特电路、行波进位电路、上m位巴雷特电路和归约电路以对结果执行反向crt变换。在示例15中,示例11至14中任一项的主题可以可选地包括其中硬件加速器包括一组电路,该一组电路包括乘法器电路、归约电路、行波加法累加器、巴雷特电路或加法电路中的至少一个。在示例16中,示例11至15中任一项的主题可以
可选地包括其中硬件加速器包括一组乘法器电路和归约电路以执行对分解的系数进行乘法。
[0086]
示例17是一种使用高通量crt评估促进用于机器学习和神经网络的he的系统。示例17的系统包括存储器;以及可通信地耦合到存储器的硬件加速器,该硬件加速器用于实施中国剩余定理(crt)乘法器电路,该电路包括一组m乘m的乘法器、2m到m的归约电路、行波加法累加器和模归约电路,该一组用于:从存储器中接收由同态加密(he)生成的密文以用于评估;将密文的系数分解成一组分解的系数;使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及将乘法的结果转换回对应于较大模数的原始形式。
[0087]
在示例18中,示例17的主题可以可选地包括其中使用包括广义梅森素数或伪梅森素数中的至少一个的较小模数对分解的系数彼此独立地进行乘法。在示例19中,示例17至18中任一项的主题可以可选地包括其中crt乘法器电路使用系数的crt分解来分解系数。在示例20中,示例17至19中任一项的主题可以可选地包括其中crt乘法器电路使用对乘法的结果的反向crt变换来转换结果。
[0088]
示例21是一种用于使用高通量crt评估促进用于机器学习和神经网络的he的非暂时性计算机可读存储介质。示例21的非暂时性计算机可读存储介质包括可执行的计算机程序指令,当由一个或多个处理器执行时,其使一个或多个处理器执行包括以下步骤的操作:由计算装置的硬件加速器接收由同态加密(he)生成的密文以用于评估;由硬件加速器将密文的系数分解成一组分解的系数;由硬件加速器使用基于较大模数确定的一组较小模数对分解的系数进行乘法;以及由硬件加速器将乘法的结果转换回对应于较大模数的原始形式。
[0089]
在示例22中,示例21的主题可以可选地包括其中使用包括广义梅森素数或伪梅森素数中的至少一个的较小模数对分解的系数彼此独立地进行乘法。在示例23中,示例21至22中任一项的主题可以可选地包括其中用于分解系数的硬件加速器包括用于执行系数的中国剩余定理(crt)分解的硬件加速器,并且其中硬件加速器进一步包括一组乘法器电路、归约电路、加法电路和模归约电路以执行系数的crt分解。
[0090]
在示例24中,示例21至23中任一项的主题可以可选地包括其中转换结果的硬件加速器包括对乘法结果进行反向中国剩余定理(crt)变换的硬件加速器,并且其中硬件加速器进一步包括一组乘法器电路、2m到m的巴雷特电路、行波进位电路、上m位巴雷特电路和归约电路以对结果进行反向crt变换。在示例25中,示例21至24中任一项的主题可以可选地包括其中硬件加速器包括一组电路,该一组电路包括乘法器电路、归约电路、行波加法累加器、巴雷特电路或加法电路中的至少一个。在示例26中,示例21至25中任一项的主题可以可选地包括其中硬件加速器包括一组乘法器电路和归约电路以执行对分解的系数进行乘法。
[0091]
示例27是一种根据本发明的具体实施方式的用于使用高通量crt评估促进用于机器学习和神经网络的he的设备。示例27的设备可以包括用于由计算装置的硬件加速器接收由同态加密(he)生成的密文以用于评估的装置;用于由硬件加速器将密文的系数分解成一组分解的系数的装置;用于由硬件加速器使用基于较大模数确定的一组较小模数对分解的系数进行乘法的装置;以及用于由硬件加速器将乘法的结果转换回对应于较大模数的原始形式的装置。
[0092]
在示例28中,示例27的主题可以可选地包括进一步被配置为执行示例12至16中任
一项的方法的设备。
[0093]
示例29是至少一种机器可读介质,其包括多个指令,该指令响应于在计算装置上执行,使计算装置执行根据示例11至16中任一项的方法。示例30是一种用于使用高通量crt评估促进用于机器学习和神经网络的he的设备,其被配置为执行示例11至16中任一项的方法。示例31是一种用于使用高通量crt评估促进用于机器学习和神经网络的he的设备,其包括用于执行权利要求11至16中任一项的方法的装置。示例中的具体内容可以在一个或多个实施例中的任何地方使用。
[0094]
在上面的描述中,为了解释的目的,阐述了许多具体的细节以便提供对所描述的实施例的彻底理解。然而,对于本领域技术人员来说,可以明显地看到,实施例可以在没有这些具体细节中的一些的情况下进行实践。在其他情况下,众所周知的结构和装置以框图形式示出。示出的部件之间可能有中间结构。本文中描述或示出的部件可能有未示出或描述的额外输入或输出。
[0095]
各种实施例可包括各种过程。这些过程可由硬件部件执行,或可体现在计算机程序或机器可执行指令中,这些程序或指令可用于使通用或专用处理器或用指令编程的逻辑电路执行这些过程。可替代地,这些过程可以由硬件和软件的组合来执行。
[0096]
各种实施例的部分可以作为计算机程序产品提供,该计算机程序产品可以包括计算机可读介质,其上存储有计算机程序指令,这些指令可用于对计算机(或其他电子装置)进行编程以用于由一个或多个处理器执行,以根据某些实施例执行过程。计算机可读介质可包括但不限于磁盘、光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存存储器或适合存储电子指令的其他类型的计算机可读介质。此外,实施例也可以作为计算机程序产品下载,其中程序可以从远程计算机转移到请求的计算机。
[0097]
许多方法是以其基本形式描述的,但在不脱离本发明实施例的基本范围的情况下,可以在方法中的任一个中增加或删除过程,并且可以在所描述消息中的任一个中增加或减少消息。对于本领域技术人员来说,可以明显地看到,可以进行许多进一步的修改和调整。提供特别实施例不是为了限制概念,而是为了说明概念。实施例的范围不是由上面提供的具体示例确定的,而是由所附权利要求确定的。
[0098]
如果说要素“a”耦合到要素“b”或与其耦合,则要素a可以直接耦合到要素b或通过例如要素c间接耦合。当说明书或权利要求指出部件、特征、结构、过程或特性a“引起”部件、特征、结构、过程或特性b时,它意味着“a”是“b”的至少部分原因,但也可能有至少一个其他部件、特征、结构、过程或特性协助引起“b”。如果说明书指出部件、特征、结构、过程或特性“可以”、“可能”或“可”被包括,则不要求包括该特别部件、特征、结构、过程或特性。如果说明书或权利要求中提到“一个”或“一件”要素,这并不意味着有所描述的要素中的一个。
[0099]
实施例是具体实施方式或示例。说明书中提到“实施例”、“一个实施例”、“一些实施例”或“其他实施例”意味着关于实施例描述的特别特征、结构或特性包括在至少一些实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现并不都是指相同实施例。应该理解的是,在对示例实施例的上述描述中,各种特征有时被一起集合在单个实施例、图或其描述中,目的是简化本发明,并帮助理解各种新颖方面中的一个或多个。然而,该公开方法不被解释为反映出一种意图,即所要求保护的实施例所利用的特征比每项权利要求中明确
提到的更多。相反,正如所附权利要求所反映的,新颖方面在于少于单个上述公开实施例的所有特征。因此,权利要求据此被明确纳入本说明书中,其中每项权利要求作为单独实施例而独立存在。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献