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

低电路深度同态加密评估的制作方法

2022-03-19 18:38:56 来源:中国专利 TAG:


1.本文描述的实施例一般涉及计算系统的领域,并且更具体地,涉及低电路深度同态加密评估。


背景技术:

2.密码计算可以指在处理器组件内部采用密码机制的用于计算机系统安全的解决方案。一些密码计算系统可以在存储器指针或用户数据离开处理器边界并进入某个外部存储器单元或传送到某个其他设备之前在处理器核内部对这样的数据采用加密和/或其他密码机制。一种类型的密码计算是同态加密(he)。he是指对同态加密数据执行评估(例如,加法和乘法)的一类公共加密密钥加密方案。
附图说明
3.在附图的各图中通过示例的方式而不是通过限制的方式图示此处所述实施例,其中相同的附图标记指代相似的元素。
4.图1示出了根据本公开的实施方式的采用同态加密(he)低电路深度(lcd)流水线评估组件的计算设备。
5.图2示出了根据本公开的一个实施方式的he lcd流水线评估组件。
6.图3是描绘根据本公开的实施方式的he lcd流水线评估组件的示例架构图的框图。
7.图4是描绘根据本公开的实施方式的he lcd流水线评估组件的示例架构图的框图。
8.图5示出了根据本公开的某些实施方式的用于低电路深度同态加密评估的示例流程。
9.图6是根据本公开的一些实施方式的能够实现低电路深度同态加密评估的说明性电子计算设备的示意图。
具体实施方式
10.各种实施例涉及例如用于低电路深度同态加密评估的技术。
11.同态加密(he)指的是一种加密形式,它允许对密文的计算,生成加密结果,该加密结果当被解密时与操作的结果相匹配,就好像它们是对明文执行一样。he标识对同态加密数据执行评估(例如,加法和乘法)的一类公共密钥加密方案。在现代he方案中,密文可以组织为具有高维数和大系数的代数环。例如,带错误的环学习(lwe)是代数环的典型选择,其中两个密文的乘法利用乘以高阶多项式(例如,8192次),其中系数取模(“mod(模)”或“modulus(模数)”)较大整数(例如,220位)。
12.he的示例应用领域包括医疗保健、金融以及通常受益于多方贡献的数据的组合分析的领域。he应用的工作负载的示例包括但不限于逻辑回归训练、贝叶斯推理或神经网络。
he域的一些应用可被视为“低电路深度”应用。低电路深度应用是指在密文上利用少量(例如,1或2次嵌套乘法)操作以便生成结果的那些应用。低电路深度应用的一些示例可能包括矩阵乘法、线性回归,其中乘法深度为1。例如,另一个低电路深度应用可能是具有小于5的乘法深度的逻辑回归的he友好版本。
13.当前he应用的一个缺点是,与在明文上评估相同操作相比,对同态加密数据上的乘法执行评估可能慢至其1/105。例如,如上所述,在he方案中,密文可以组织为具有高维数和大系数的代数环。因此,he方案的结果是,单个本地数据类型(例如,整数、浮点等)被加密为更复杂的数据结构。这种更复杂的数据结构可以是具有某个位宽度的系数的多项式。
14.结果,相对于he域在本地明文域中执行等效的计算操作,诸如加法和乘法,也更加复杂。例如,在本地域中执行两个8位整数的乘法导致16位输出。然而,两个8位整数的等效乘法一旦在he域中被加密就可以涉及作为输入的几百位的系数的几千个元素多项式。这可能涉及he域中超过十万次的乘法。因此,he域中系数乘法的延迟和吞吐量与he评估的整体性能直接相关。
15.本公开的实施例通过提供低电路深度同态加密评估解决了低电路深度应用的he域中计算复杂度的上述挑战。在本公开的实施方式中,提供了用于评估he密文的系数的展开(非迭代)流水线乘法器,其利用梅森素数结构用于计算流水线乘法器中的约简(reduction)。
16.如本文所述,将流水线乘法器用于he域中的低电路深度应用提高了计算对用于神经网络的加密数据的复杂操作和训练包括线性和逻辑回归的机器学习任务的性能。因此,本公开的实施方式提高了整体计算设备性能,包括计算架构中的处理单元利用率和改善的延迟。
17.图1示出了根据本公开的一个实施方式的采用he低电路深度(lcd)流水线评估组件110的计算设备100。计算设备100代表通信和数据处理设备,包括或代表(但不限于)智能语音命令设备、智能个人助理、家庭/办公自动化系统、家用电器(例如,洗衣机、电视机等)、移动设备(例如智能电话、平板计算机等)、游戏设备、手持设备、可穿戴设备(例如智能手表、智能手环等)、虚拟现实(vr)设备、头戴式显示器(hmd)、物联网(iot)设备、膝上型计算机、台式计算机、服务器计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(gps)的设备、汽车信息娱乐设备等。
18.在一些实施例中,计算设备100包括任何数量和类型的其他智能设备,或与其一起工作或嵌入其中或促进任何数量和类型的其他智能设备,诸如(但不限于)自主机器或人工智能代理,诸如机械代理或机器、电子代理或机器、虚拟代理或机器、机电代理或机器等。自主机器或人工智能代理的示例可以包括(但不限于)机器人、自主车辆(例如,自驾驶汽车、自飞行飞机、自驾驶轮船等)、自主设备、自操作施工车辆、自操作医疗设备等)等等。此外,“自主车辆”并不局限于汽车,而是它们可以包括任何数量和类型的自主机器,诸如机器人、自主设备、家用自主设备等,并且与此类自主机器相关的任何一个或多个任务或操作可以与自主驾驶可互换地引用。
19.此外,例如,计算设备100可以包括托管集成电路(“ic”)的计算机平台,诸如片上系统(“soc”或“soc”),在单个芯片上集成计算设备100的各种硬件和/或软件组件。
20.如图所示,在一个实施例中,计算设备100可以包括任何数量和类型的硬件和/或
软件组件,诸如(但不限于)图形处理单元(“gpu”或简称为“图形处理器”)114、图形驱动器(也称为“gpu驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(umd)、用户模式驱动器框架(umdf),或简称为“驱动器”)115、中央处理单元(“cpu”或简称为“应用处理器”)112、存储器108、网络设备、驱动器等,以及输入/输出(i/0)源104,诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算设备100可以包括操作系统(os)106,其用作计算设备100的硬件和/或物理资源与用户之间的接口。
21.应当理解,对于某些实施方式,可以利用比上述示例更少或更多装备的系统。因此,计算设备100的配置可根据多种因素(诸如价格约束、性能要求、技术改进或其他情况)因实施方式而异。
22.实施例可以被实现为以下各项中的任一个或组合:使用母板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(asic)和/或现场可编程门阵列(fpga)。术语“逻辑”、“模块”、“组件”、“引擎”、“电路”、“元件”和“机制”可以包括例如软件、硬件和/或其组合,诸如固件。
23.在一个实施例中,如图所示,he lcd流水线评估组件110可以由与计算设备100的(多个)i/o源104(诸如麦克风、扬声器等)通信的存储器108托管。在另一个实施例中,he lcd流水线评估组件110可以是操作系统106的一部分或由其托管。在又一个实施例中,he lcd流水线评估组件110可以由图形驱动器115托管或促进。在又一个实施例中,he lcd流水线评估组件110可以由硬件加速器114托管或作为其一部分;例如,he lcd流水线评估组件110可以嵌入或实现为硬件加速器114的处理硬件的一部分,诸如以he lcd流水线评估组件140的形式。在又一个实施例中,he lcd流水线评估组件110可以由图形处理单元(“gpu”或简称为图形处理器)116或图形处理器116的固件托管或作为其一部分;例如,he lcd流水线乘法组件可以嵌入或实现为图形处理器116的处理硬件的一部分,诸如以he lcd流水线评估组件130的形式。类似地,在又一个实施例中,he lcd流水线评估组件110可以由中央处理器(“cpu”或简称为应用处理器)112托管或作为其一部分;例如,he lcd流水线评估组件120可以嵌入或实现为应用处理器112的处理硬件的一部分,诸如以he lcd流水线评估组件120的形式。在一些实施例中,he lcd流水线评估组件110可由一个或多个处理器提供,所述一个或多个处理器包括图形处理器、应用处理器和另一处理器中的一个或多个,其中所述一个或多个处理器共同位于共同的半导体封装上。
24.预期实施例不限于he lcd流水线评估组件110的某些实施或托管,并且he lcd流水线评估组件110的一个或多个部分或组件可被采用或实现为硬件、软件或其任何组合,诸如固件。在一个实施例中,例如,he lcd流水线评估组件可以由不同于gpu的机器学习处理单元托管。在另一个实施例中,he lcd流水线评估组件可以被分布在机器学习处理单元和cpu之间。在另一个实施例中,he lcd流水线评估组件可以被分布在机器学习处理单元、cpu和gpu之间。在另一个实施例中,he lcd流水线评估组件可以被分布在机器学习处理单元、cpu、gpu和硬件加速器之间。
25.计算设备100可以托管(多个)网络接口设备以提供对网络的访问,所述网络诸如lan、广域网(wan)、城域网(man)、个域网(pan)、蓝牙、云网络、移动网络(例如,第三代(3g)、第四代(4g)等)、内联网、互联网等。(多个)网络接口可以包括例如具有天线的无线网络接口,其可以代表一个或多个天线。(多个)网络接口还可以包括例如经由网络线缆与远程设
备通信的有线网络接口,该网络线缆可以是例如以太网线缆、同轴线缆、光纤线缆、串行线缆或并行线缆。
26.例如,实施例可以提供为计算机程序产品,该计算机程序产品可以包括其上存储有机器可执行指令的一个或多个机器可读介质,所述机器可执行指令当由诸如计算机、计算机的网络或其他电子设备之类的一个或多个机器执行时可以导致一个或多个机器执行根据本文描述的实施例的操作。机器可读介质可包括但不限于软盘、光盘、cd-rom(压缩盘-只读存储器)和磁光盘、rom、ram、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器或适用于存储机器可执行指令的其他类型的介质/机器可读介质。
27.此外,实施例可以下载为计算机程序产品,其中程序可以通过包含在载波或其他传播介质中和/或由载波或其他传播介质调制的一个或多个数据信号的方式经由通信链路(例如,调制解调器和/或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。
28.贯穿文档,术语“用户”可以互换地称为“观看者”、“观察者”、“演讲者”、“人”、“个人”、“终端用户”等等。需要注意的是,贯穿文档,比如“图形域”的术语可以与“图形处理单元”、“图形处理器”或简称为“gpu”可互换地引用,并且类似地,“cpu域”或“主机域”可以可与“计算机处理单元”、“应用处理器”或简称为“cpu”可互换地引用。
29.需要注意的是,比如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机器”、“设备”、“计算设备”、“计算机”、“计算系统”等的术语可以贯穿本文档可互换地使用。还需要注意的是,比如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等的术语可以贯穿本文档可互换地使用。此外,比如“作业”、“输入”、“请求”、“消息”等的术语可以贯穿本文档可互换地使用。
30.图2示出了根据本公开的一个实施方式的图1的he lcd流水线评估组件110。为简洁起见,已经参考图1讨论的许多细节在后文中不重复或讨论。在一个实施例中,he lcd流水线评估组件110可以与关于图1描述的he lcd流水线评估组件110、120、130、140中的任一个相同,并且可以包括任何数量和类型的组件,诸如(但不限于):组合乘法器组件201;加法器组件203;流水线寄存器组件205;和梅森素数约简组件207。
31.计算设备100还被示为包括用户接口219(例如,基于图形用户接口(gui)的用户接口、web(网络)浏览器、基于云的平台用户接口、基于软件应用的用户接口、其他用户或应用编程接口(api)等)。计算设备100还可包括具有(多个)输入组件231以及(多个)输出组件233的(多个)i/o源104,所述(多个)输入组件231诸如(多个)相机242(例如,intel
®
realsense(实感)
tm
相机)、传感器、(多个)麦克风241等,所述(多个)输出组件233诸如(多个)显示设备或简称为显示器244(例如,集成显示器、张量显示器、投影屏幕、显示屏等)、(多个)扬声器设备或简称为(多个)扬声器等。
32.计算设备100还被示为通过一个或多个通信介质230(例如、诸如邻近网络、云网络、互联网等的网络)能够访问一个或多个数据库225和/或其他计算设备中的一个或多个和/或与其通信。
33.在一些实施例中,(多个)数据库225可以包括存储介质或设备、储存库、数据源等中的一个或多个,其具有与任何数量和类型的应用相关的任何数量和类型的信息,诸如数
据、元数据等,诸如与一个或多个用户、物理位置或区域、适用法律、政策和/或法规、用户偏好和/或简档、安全和/或认证数据、历史和/或其他细节相关的数据和/或元数据等等。
34.如上所述,计算设备100可以托管包括(多个)输入组件231和(多个)输出组件233的i/o源104。在一个实施例中,(多个)输入组件231可以包括传感器阵列,包括但不包括限于(多个)麦克风241(例如超声波麦克风)、(多个)相机242(例如二维(2d)相机、三维(3d)相机、红外(ir)相机、深度感测相机等)、电容器、无线电组件、雷达组件、扫描仪和/或加速度计等。类似地,(多个)输出组件233可以包括任何数量和类型的(多个)显示设备244、投影仪、发光二极管(led)、(多个)扬声器243和/或振动电机等。
35.如前所述,比如“逻辑”、“模块”、“组件”、“引擎”、“电路”、“元件”和“机制”的术语可以包括例如软件或硬件和/或其组合,诸如固件。例如,逻辑本身可以是或包括一个或多个设备处的电路或与其相关联,诸如图1的分别由必须促进或执行对应逻辑来实行某些任务的应用处理器112、图形处理器116和/或硬件加速器114托管的he lcd流水线评估组件120、he lcd流水线评估组件130和/或he lcd流水线评估组件140。
36.例如,如图所示,(多个)输入组件231可以包括任何数量和类型的麦克风241,诸如多个麦克风或麦克风阵列,诸如超声麦克风、动态麦克风、光纤麦克风、激光麦克风241等。设想一个或多个麦克风241用作一个或多个输入设备,用于将音频输入(诸如人类语音)接受或接收到计算设备100中并将该音频或声音转换为电信号。类似地,设想一个或多个相机242用作一个或多个输入设备,用于检测和捕获场景、对象等的图像和/或视频,并将捕获的数据作为视频输入提供到计算设备100中。
37.如前所述,用于机器学习和深度学习解决方案的传统he架构与计算复杂性和延迟问题相关联。实施例提供了一种用于低电路深度同态加密评估的新技术。这种新技术用于解决寻求实现he的计算架构中的上述复杂性和/或性能问题。本公开的实施方式利用he lcd流水线评估组件110以提供用于评估he密文的系数的展开(非迭代)流水线乘法器,其中流水线乘法器利用梅森素数结构用于计算流水线乘法器中的约简。
38.关于图2,he lcd流水线评估组件110包括组合乘法器组件201、加法器组件203、流水线寄存器组件205和梅森素数约简组件207来执行he lcd流水线评估组件110的he lcd评估。在本公开的实施方式中,he lcd流水线评估组件110的单元201、203、205、207的操作基于模算术和梅森结构。梅森素数是指比2的幂小一的素数。也就是说,对于某个整数n,它是m
n = 2nꢀ–ꢀ
1形式的素数。例如,he lcd流水线评估组件110可以基于梅森素数结构或广义梅森素数结构,其中模数q = 2mꢀ–ꢀ
1或模数,1 ≤ i ≤ j,0 ≤ x ≤ k-1。这样的模可以避免昂贵的q除法。此外,与具有误差的除法中的近似的已知延迟优化技术相比,所提出的模q乘法在其评估期间在完全he(fhe)密文中不并入任何加法误差。
39.组合乘法器组件201、加法器组件203、流水线寄存器组件205和梅森素数约简组件207的进一步细节在下面关于图3-4描述。
40.在一个实施方式中,he lcd流水线评估组件110实现针对利用梅森结构的系数的展开(非迭代)流水线乘法器。展开流水线乘法器可以包括但不限于组合乘法器组件201、加法器组件203、流水线寄存器组件205和梅森素数约简组件207。例如,在一个实施方式中,he lcd流水线评估组件110可以执行he密文的224位x224位系数的乘法。在该示例中,he lcd流
水线评估组件110的每个流水线级包括224位(a)和32位(b的一部分)的组合数据路径。在该示例中,he lcd流水线评估组件110可以包括七个流水线级,其中使用组合乘法器组件201、加法器组件203、流水线寄存器组件205计算整个224
×
224乘法。he lcd流水线评估组件110可以进一步包括最终流水线级处的小型加法数据路径,其用于使用梅森素数结构或广义梅森素数结构将448位乘法结果约简到224位。
41.在下面关于图3-4描述组合乘法器组件201、加法器组件203、流水线寄存器组件205和梅森素数约简组件207。
42.图3是描绘根据本公开的实施方式的he lcd流水线评估组件300的示例架构图的框图。在一个实施方式中,he lcd流水线评估组件300可以与关于图1和2描述的he lcd流水线评估组件110相同。
43.在一个实施方式中,he lcd流水线评估组件300包括具有组合乘法器310、322、332、352和加法器324、334、354的数据路径310、320、330、350的“n”级;流水线寄存器315、325、335、345、355、370;以及用于使用加法器360使用梅森结构约简乘法结果的结果的最终流水线级。在本公开的实施方式中可以实施比关于图3所示的那些更多或更少的组件。
44.he lcd流水线评估组件300可以接收he密文的系数作为操作数a 301和b 302。在一个实施方式中,操作数a 301以其完整大小提供给he lcd流水线评估组件300的每个数据路径310、320、330、350,而操作数b 302被分成部分或“区块”(例如,具有相同大小并且按照从最低有效位到最高有效位的顺序)并提供给每个数据路径310、320、330、350。he lcd流水线评估组件300的乘法以流水线样式(或流水线方式)执行,以便在每个时钟可以具有可以开始评估的2个不同的操作数a 301和b 302。
45.每个数据路径310、320、330、350可以包括组合乘法器310、322、332、352以对输入操作数301、302执行乘法。在第一数据路径1 310之后的每个数据路径320、330、350还可以包括加法器电路324、334、354,其将相应数据路径320、330、350的组合乘法器322、332、352的对齐结果与紧接在前的数据路径乘法器310、322、332、352的结果相累加。每个数据路径310、320、330、350的累加结果被传递到流水线寄存器315、325、335、345以供存储以实现后续数据路径的访问。
46.输出寄存器355存储从最终数据路径n 350输出的组合乘法器的最终累加结果。存储在输出寄存器355中的结果是操作数a 301和b 302中的每一个的大小的两倍。因此,he lcd流水线评估组件300包括加法器(进位传播)360以加/减以用于利用梅森素数模数的约简。如上所述,在本公开的实施方式中,梅森素数模数是梅森素数或广义梅森素数。梅森素数或广义梅森素数的利用允许将流水线级大小约简到1/2或1/3,以完成存储在输出寄存器355中的乘法结果的约简。
47.在一个实施方式中,确定在加法器360处实现梅森素数或广义梅森素数结构中的哪一个可以基于位长度目标。如果确定2
m-1是素数,则可以将梅森素数用作第一选择。然而,如果2
m-1不是素数,则可以利用广义梅森素数。在某些情况下,利用广义梅森素数可能会增加大约5个加/减操作,这可能会向he lcd流水线评估组件300的流水线结构添加另外1或2级(与he lcd流水线评估组件300的梅森素数实施方式相比)。
48.由加法器360执行的使用梅森结构的约简的结果然后被存储在输出寄存器370中作为经约简的操作数a 301
ꢀ×ꢀ
操作数b 302 mod q结果。
49.图4是描绘根据本公开的实施方式的he lcd流水线评估组件400的示例架构图的框图。在一个实施方式中,he lcd流水线评估组件400可以与关于图1和2描述的he lcd流水线评估组件110相同或者与关于图3描述的he lcd流水线评估组件300相同。
50.在一个实施方式中,he lcd流水线评估组件400描绘了对两个224位操作数:224位操作数a 401和224位操作数b 402执行的乘法评估。在一个实施方式中,he lcd流水线评估组件400包括数据路径的“7”级:数据路径1 410、数据路径2 420、数据路径3直到数据路径7 450,其均具有224
×
32个组合乘法器410、422、432直到452和加法器424、434直到454;流水线寄存器415、425、435、445、455、470;以及用于使用加法器460使用梅森结构约简乘法结果的结果的最终流水线级。在本公开的实施方式中可以实施比关于图4所示的那些更多或更少的组件。
51.he lcd流水线评估组件400可以接收he密文的系数作为操作数a 401和b 402。he lcd流水线评估组件400的乘法以流水线样式执行,以便在每个时钟可以具有可以开始评估的2个不同的操作数a 401和b 402。在一个实施方式中,224位操作数a 401以其完整大小(即,完全的224位)提供给he lcd流水线评估组件400的每个数据路径410、420、430、450。操作数b 402被分成7个32位部分或“区块”并从最低有效位到最高有效位顺序地提供给每个数据路径410、420、430、450。如图4所示,操作数b 402的位31:0 403被提供给数据路径1 410,操作数b 402的位63:32 404被提供给数据路径2 402,操作数b 402的位95:64 405被提供给数据路径3 430,依此类推,直到操作数b 402的位223:196 406被提供给数据路径7 450。
52.每个数据路径410、420、430、450可以包括224
×
32组合乘法器410、422、432、452以对输入操作数401、402(如部分403-406中提供的)执行乘法。在数据路径1 410之后的每个数据路径2-7 420、430、450还可以包括加法器电路424、434、454,其将相应数据路径2-7 420、430、450的组合乘法器422、432、452的对齐结果与紧接在前的数据路径乘法器410、422、432、452的结果相累加。每个数据路径1-7 410、420、430、450的累加结果被迭代地传递到流水线寄存器415、425、435、445以供存储以实现后续数据路径420、430、450的访问。
53.输出寄存器455存储从最终数据路径7 450输出的组合乘法器的最终累加结果。存储在输出寄存器455中的结果是224位操作数a 401乘以224位操作数b 402的结果,其得到448位a
ꢀ×ꢀ
b。为了将448位结果约简到224位结果,he lcd流水线评估组件400包括加法器(进位传播)460以加/减以用于利用梅森素数模数的约简。如上所述,在本公开的实施方式中,梅森素数模数是梅森素数或广义梅森素数。梅森素数或广义梅森素数的利用允许将流水线级大小约简到1/2或1/3,以完成存储在输出寄存器455中的乘法结果的约简。
54.在一个实施方式中,确定在加法器460处实现梅森素数或广义梅森素数结构中的哪一个可以基于位长度目标。如果确定2
m-1是素数,则可以将梅森素数用作第一选择。然而,如果2
m-1不是素数,则可以利用广义梅森素数。在某些情况下,利用广义梅森素数可能会增加大约5个加/减操作,这可能会向he lcd流水线评估组件400的流水线结构添加另外1或2级(与he lcd流水线评估组件400的梅森素数实施方式相比)。
55.由加法器460执行的使用梅森结构的约简的结果然后被存储在输出寄存器470中作为经约简的操作数a 401
ꢀ×ꢀ
操作数b 402 mod q结果。
56.图5示出了根据某些实施例的用于低电路深度同态加密评估的示例流程500。流程
的各种操作可以由任何合适的电路执行,诸如硬件加速器、计算设备的处理器或处理单元、计算设备的控制器、存储器模块的控制器或计算设备的其他组件。示例流程500可以代表可以由图1和图2的计算设备100的一个或多个组件、图3的he lcd流水线评估组件300和/或图4的he lcd流水线评估组件400执行或在其上实现的一些或所有操作。实施例不限于该上下文。
57.在块510处,计算设备可以接收由he生成的密文以用于评估。在块520处,计算设备可以从密文确定两个系数以用于he评估。在块530处,计算设备可以将两个系数作为操作数输入到流水线乘法器以用于低电路深度he评估。在一个实施方式中,流水线乘法器可以与关于图3和/或4描述的he lcd流水线评估组件300、400相同。
58.在块540处,计算设备可以在第一操作数和第二操作数的部分之间执行组合乘法。在一个实施方式中,第二操作数的部分随着流水线乘法器的每一级而不同。在一个实施方式中,第二操作数被分成相等的部分或区块,所述部分或区块从最低有效位到最高有效位提供给流水线乘法器的增加的级。
59.在块550处,计算设备可以在流水线乘法器的每一级累加组合乘法器的结果。在一个实施方式中,流水线寄存器被实施为存储先前流水线级的结果以与流水线乘法器中的后续级的组合乘法器结果相累加。最后,在块560处,计算设备可以对流水线乘法器的组合乘法器的所得累加输出(即,最后数据路径级的输出)执行利用梅森素数模数的约简。在一个实施方式中,梅森素数模数是梅森素数或广义梅森素数。
60.图6是根据一些实施例的能够实现低电路深度同态加密评估的说明性电子计算设备的示意图。在一些实施例中,计算设备600包括一个或多个处理器610,所述处理器610包括一个或多个处理器核618,所述处理器核618包括he lcd流水线评估组件(hlpec)615,诸如关于图1和图2描述的he lcd流水线评估组件110-140、关于图3描述的he lcd流水线评估组件300或关于图4描述的he lcd流水线评估组件400。在一些实施例中,计算设备600包括硬件加速器668,所述硬件加速器包括he lcd流水线评估组件682,诸如关于图1描述的he lcd流水线评估组件110-140、关于图3描述的he lcd流水线评估组件300或关于图4描述的he lcd流水线评估组件400。在一些实施例中,计算设备将提供低电路深度同态加密评估,如图1-5中提供的。
61.计算设备600可另外包括以下中的一个或多个:高速缓存662,图形处理单元(gpu)612(其在一些实施方式中可以是硬件加速器),无线输入/输出(i/o)接口620、有线i/o接口630、系统存储器640(例如,存储器电路)、功率管理电路650、非暂时性存储设备660和用于连接到网络672的网络接口670。以下讨论提供了对形成说明性计算设备600的组件的简要概括描述。示例非限制性计算设备600可以包括台式计算设备、刀片服务器设备、工作站或类似的设备或系统。
62.在实施例中,处理器核618能够执行机器可读指令集614、从一个或多个存储设备660读取数据和/或指令集614以及将数据写入一个或多个存储设备660。相关领域的技术人员将理解,所示实施例以及其他实施例可以用其他基于处理器的设备配置来实践,包括便携式电子或手持电子设备,例如智能电话、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“pc”)、网络pc、小型计算机、服务器刀片机、大型计算机等。
63.处理器核618可以包括任何数量的硬连线或可配置电路,其中一些或全部可以包
括部分或全部设置在pc、服务器或能够执行处理器可读指令的其他计算系统中的电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
64.计算设备600包括总线或类似的通信链路616,其可通信地耦合并促进各种系统组件之间的信息和/或数据的交换,所述系统组件包括处理器核618、高速缓存662、图形处理器电路612、一个或多个无线i/o接口620、一个或多个有线i/o接口630、一个或多个存储设备660和/或一个或多个网络接口670。计算设备600在本文中可以指单数,但不意图将实施例限制为单个计算设备600,因为在某些实施例中,可能有多于一个计算设备600并入、包括或包含任何数量的可通信地耦合、并置或远程联网的电路或设备。
65.处理器核618可以包括任何数量、类型或组合的能够执行机器可读指令集的当前可用或未来开发的设备。
66.处理器核618可以包括(或耦合到)但不限于任何当前或未来开发的单核或多核处理器或微处理器,诸如:一个或多个片上系统(soc);中央处理单元(cpu);数字信号处理器(dsp);图形处理单元(gpu);专用集成电路(asic)、可编程逻辑单元、现场可编程门阵列(fpga)等。除非另有描述,图6中所示的各种块的构造和操作具有常规设计。因此,本文不进一步详细描述这样的块,因为它们应被相关领域的技术人员理解。将计算设备600的组件中的至少一些互连的总线616可以采用任何当前可用或未来开发的串行或并行总线结构或架构。
67.系统存储器640可包括只读存储器(“rom”)642和随机存取存储器(“ram”)646。rom 642的一部分可用于存储或以其他方式保留基本输入/输出系统(“bios”)644。bios 644向计算设备600提供基本功能,例如通过使处理器核618加载和/或执行一个或多个机器可读指令集614。在实施例中,一个或多个机器可读指令集614中的至少一些使处理器核618的至少一部分提供、创建、产生、转换和/或用作专用的、具体的和特定的机器,例如文字处理机器、数字图像采集机器、媒体播放机器、游戏系统、通信设备、智能电话或类似的。
68.计算设备600可以包括至少一个无线输入/输出(i/o)接口620。至少一个无线i/o接口620可以可通信地耦合到一个或多个物理输出设备622(触觉设备,视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线i/o接口620可以可通信地耦合到一个或多个物理输入设备624(指示设备、触摸屏、键盘、触觉设备等)。至少一个无线i/o接口620可以包括任何当前可用或未来开发的无线i/o接口。示例无线i/o接口包括但不限于:bluetooth
®
、近场通信(nfc)和类似的。
69.计算设备600可以包括至少一个有线输入/输出(i/o)接口630。至少一个有线i/o接口630可以可通信地耦合到一个或多个物理输出设备622(触觉设备,视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线i/o接口630可以可通信地耦合到一个或多个物理输入设备624(指示设备、触摸屏、键盘、触觉设备等)。有线i/o接口630可以包括任何当前可用或未来开发的i/o接口。示例有线i/o接口包括但不限于:通用串行总线(usb)、ieee 1394(“火线”)以及类似的。
70.计算设备600可以包括一个或多个可通信地耦合的非暂时性数据存储设备660。数据存储设备660可以包括一个或多个硬盘驱动器(hdd)和/或一个或多个固态存储设备(ssd)。一个或多个数据存储设备660可以包括任何当前或未来开发的存储器具、网络存储设备和/或系统。此类数据存储设备660的非限制性示例可包括但不限于任何当前或未来开
发的非暂时性存储器具或设备,诸如一个或多个磁存储设备、一个或多个光存储设备、一个或多个多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备、或其各种组合。在一些实施方式中,一个或多个数据存储设备660可以包括一个或多个可移除存储设备,诸如一个或多个闪速驱动器、闪速存储器、闪速存储单元或能够从计算设备600可通信地耦合或解耦的类似的器具或设备。
71.一个或多个数据存储设备660可以包括将相应存储设备或系统通信地耦合到总线616的接口或控制器(未示出)。一个或多个数据存储设备660可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储区、数据库、逻辑结构和/或对处理器核618和/或图形处理器电路612和/或在处理器核618和/或图形处理器电路612上或由其执行的一个或多个应用有用的其他数据。在一些情况下,一个或多个数据存储设备660可以例如经由总线616或经由一个或多个有线通信接口630(例如,通用串行总线或usb);一个或多个无线通信接口620(例如,bluetooth
®
、近场通信或nfc);和/或一个或多个网络接口670(ieee802.3或以太网、ieee 802.11或wi-fi
®
等)可通信地耦合到处理器核618。
72.处理器可读指令集614和其他程序、应用、逻辑集和/或模块可以全部或部分地存储在系统存储器640中。这样的指令集614可以全部或部分地从一个或多个数据存储设备660传递。指令集614可以在由处理器核618和/或图形处理器电路612执行期间全部或部分地被加载、存储或以其他方式保留在系统存储器640中。
73.计算设备600可以包括控制能量存储设备652的一个或多个操作方面的功率管理电路650。在实施例中,能量存储设备652可以包括一个或多个主要(即,不可再充电)或辅助(即,可再充电)电池或类似的能量存储设备。在实施例中,能量存储设备652可包括一个或多个超级电容器或超电容器。在实施例中,功率管理电路650可以改变、调整或控制从外部电源654到能量存储设备652和/或到计算设备600的能量流。电源654可以包括但不包括限于太阳能系统、商业电网、便携式发电机、外部能量存储设备或其任何组合。
74.为方便起见,处理器核618、图形处理器电路612、无线i/o接口620、有线i/o接口630、存储设备660和网络接口670被示为经由总线616通信地耦合到彼此,从而提供上述组件之间的连接性。在可替代实施例中,上述组件可以以与图6所示不同的方式通信地耦合。例如,上述组件中的一个或多个可以直接耦合到其他组件,或者可以经由一个或多个中间组件(未示出)彼此耦合。在另一示例中,上述组件中的一个或多个可以集成到处理器核618和/或图形处理器电路612中。在一些实施例中,总线616的全部或一部分可以被省略,并且组件使用合适的有线或无线连接直接耦合到彼此。
75.以下示例关于另外的实施例。示例1是一种用于促进低电路深度同态加密评估的装置。示例1的装置包括硬件加速器,其用于:接收由同态加密(he)生成的密文以用于评估;确定密文的两个系数以用于he评估;将两个系数作为第一操作数和第二操作数输入到流水线乘法器以用于低电路深度he评估;在第一操作数和第二操作数的部分之间执行组合乘法;累加流水线乘法器的每一级处的组合乘法的结果;以及对流水线乘法器的组合乘法器的所得累加输出执行利用梅森素数模数的约简。
76.在示例2中,示例1的主题可以可选地包括其中流水线乘法器包括多个级,并且其中多个级的数量基于第一操作数和第二操作数的输入大小。在示例3中,示例1-2的任一个的主题可以可选地包括,其中梅森素数模数是梅森素数结构或广义梅森素数结构中的至少
一个。在示例4中,示例1-3的任一个的主题可以可选地包括,其中流水线乘法器包括额外的级以适应执行利用梅森素数模数的约简,所述梅森素数模数是广义梅森素数结构。
77.在示例5中,示例1-4的任一个的主题可以可选地包括,其中第二操作数的部分随着流水线乘法器的每一级而不同,并且其中第二操作数的部分从最低有效位到最高有效位被输入到流水线乘法器的级。在示例6中,示例1-5的任一个的主题可以可选地包括,其中硬件加速器还包括组合乘法器电路、加法器电路、流水线寄存器和约简加法器电路的集合。
78.在示例7中,示例1-6的任一个的主题可以可选地包括,其中he评估被提供用于低电路深度应用。在示例8中,示例1-7的任一个的主题可以可选地包括,其中用于累加组合乘法的结果的硬件加速器还包括将流水线乘法器中当前组合乘法器的对齐结果与流水线乘法器中紧接在前的数据路径的结果相累加。
79.在示例9中,示例1-8的任一个的主题可以可选地包括,其中通过流水线乘法器的组合乘法以流水线方式执行,使得在流水线乘法器的每个时钟周期中存在输入到流水线乘法器中的两个不同的操作数。
80.示例10是一种用于促进低电路深度同态加密评估的方法。示例10的方法可以可选地包括:由计算设备的硬件加速器接收由同态加密(he)生成的密文以用于评估;确定密文的两个系数以用于he评估;将两个系数作为第一操作数和第二操作数输入到流水线乘法器以用于低电路深度he评估;由硬件加速器在第一操作数和第二操作数的部分之间执行组合乘法;累加流水线乘法器的每一级处的组合乘法的结果;以及由硬件加速器对流水线乘法器的组合乘法器的所得累加输出执行利用梅森素数模数的约简。
81.在示例11中,示例10的主题可以可选地包括其中流水线乘法器包括多个级,并且其中多个级的数量基于第一操作数和第二操作数的输入大小。在示例12中,示例10-11的任一个的主题可以可选地包括,其中梅森素数模数是梅森素数结构或广义梅森素数结构中的至少一个。在示例13中,示例10-12的任一个的主题可以可选地包括,其中第二操作数的部分随着流水线乘法器的每一级而不同,并且其中第二操作数的部分从最低有效位到最高有效位被输入到流水线乘法器的级。
82.在示例14中,示例10-13的任一个的主题可以可选地包括,其中硬件加速器包括组合乘法器电路、加法器电路、流水线寄存器和约简加法器电路的集合。在示例15中,示例10-14的任一个的主题可以可选地包括,其中he评估被提供用于低电路深度应用。在示例16中,示例10-15的任一个的主题可以可选地包括,其中通过流水线乘法器的组合乘法以流水线方式执行,使得在流水线乘法器的每个时钟周期中存在输入到流水线乘法器中的两个不同的操作数。
83.示例17是一种用于促进低电路深度同态加密评估的系统。示例17的系统包括存储器;以及可通信地耦合到存储器的硬件加速器,所述硬件加速器用于实现流水线乘法器,其包括组合乘法器电路、加法器电路、流水线寄存器和约简加法器电路的集合,所述集合用于:接收由同态加密(he)生成的密文以用于评估;确定密文的两个系数以用于he评估;将两个系数作为第一操作数和第二操作数输入到流水线乘法器以用于低电路深度he评估;在第一操作数和第二操作数的部分之间执行组合乘法;累加流水线乘法器的每一级处的组合乘法的结果;以及对流水线乘法器的组合乘法器的所得累加输出执行利用梅森素数模数的约简。
84.在示例18中,示例17的主题可以可选地包括其中流水线乘法器包括多个级,并且其中多个级的数量基于第一操作数和第二操作数的输入大小。在示例19中,示例17-18的任一个的主题可以可选地包括,其中梅森素数模数是梅森素数结构或广义梅森素数结构中的至少一个。在示例20中,示例17-19的任一个的主题可以可选地包括,其中he评估被提供用于低电路深度应用。
85.示例21是一种用于促进低电路深度同态加密评估的非暂时性计算机可读存储介质。示例21的非暂时性计算机可读存储介质包括可执行计算机程序指令,当由一个或多个处理器执行时,所述可执行计算机程序指令使一个或多个处理器执行包括以下的操作:由计算设备的硬件加速器接收由同态加密(he)生成的密文以用于评估;确定密文的两个系数以用于he评估;将两个系数作为第一操作数和第二操作数输入到流水线乘法器以用于低电路深度he评估;由硬件加速器在第一操作数和第二操作数的部分之间执行组合乘法;累加流水线乘法器的每一级处的组合乘法的结果;以及由硬件加速器对流水线乘法器的组合乘法器的所得累加输出执行利用梅森素数模数的约简。
86.在示例22中,示例21的主题可以可选地包括其中流水线乘法器包括多个级,并且其中多个级的数量基于第一操作数和第二操作数的输入大小。在示例23中,示例21-22的任一个的主题可以可选地包括,其中梅森素数模数是梅森素数结构或广义梅森素数结构中的至少一个。在示例24中,示例21-23的任一个的主题可以可选地包括,其中第二操作数的部分随着流水线乘法器的每一级而不同,并且其中第二操作数的部分从最低有效位到最高有效位被输入到流水线乘法器的级。
87.在示例25中,示例21-24的任一个的主题可以可选地包括,其中硬件加速器包括组合乘法器电路、加法器电路、流水线寄存器和约简加法器电路的集合。在示例26中,示例21-25的任一个的主题可以可选地包括,其中he评估被提供用于低电路深度应用。在示例27中,示例21-26的任一个的主题可以可选地包括,其中通过流水线乘法器的组合乘法以流水线方式执行,使得在流水线乘法器的每个时钟周期中存在输入到流水线乘法器中的两个不同的操作数。
88.根据本公开的实施方式,示例28是一种用于促进低电路深度同态加密评估的装置。示例28的装置可以包括:用于由计算设备的硬件加速器接收由同态加密(he)生成的密文以用于评估的部件;用于确定密文的两个系数以用于he评估的部件;用于将两个系数作为第一操作数和第二操作数输入到流水线乘法器以用于低电路深度he评估的部件;用于由硬件加速器在第一操作数和第二操作数的部分之间执行组合乘法的部件;用于累加流水线乘法器的每一级处的组合乘法的结果的部件;以及用于由硬件加速器对流水线乘法器的组合乘法器的所得累加输出执行利用梅森素数模数的约简的部件。
89.在示例29中,示例28的主题可以可选地包括所述装置还被配置成执行示例11至16中任一项所述的方法。
90.示例30是包括多个指令的至少一个机器可读介质,所述多个指令响应于在计算设备上被执行而使计算设备执行根据示例10-16中任一项所述的方法。示例31是一种用于促进低电路深度同态加密评估的装置,其被配置成执行根据示例10-16中任一项所述的方法。示例32是一种用于促进低电路深度同态加密评估的装置,其包括用于执行根据权利要求10-16中任一项所述的方法的部件。示例中的细节可以在一个或多个实施例中的任何位置
使用。
91.在以上描述中,为了解释的目的,阐述众多具体细节以便提供对所述实施例的透彻理解。然而,对于本领域技术人员将明显的是,实施例可以在没有这些具体细节中的一些的情况下实践。在其他实例中,众所周知的结构和设备以框图的形式示出。所示组件之间可能存在中间结构。此处描述或图示的组件可以具有未图示或描述的附加输入或输出。
92.各种实施例可包括各种过程。这些过程可以由硬件组件来执行或者可以体现在计算机程序或机器可执行指令中,其可以用于使通用或专用处理器或用指令编程的逻辑电路执行所述过程。可替代地,所述过程可以通过硬件和软件的组合来执行。
93.各种实施例的部分可以被提供为计算机程序产品,其可以包括其上存储有计算机程序指令的计算机可读介质,所述计算机程序指令可以用于对计算机(或其他电子设备)编程以由一个或多个处理器执行以实行根据某些实施例的过程。计算机可读介质可以包括但不限于磁盘、光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的计算机可读介质。此外,还可以将实施例下载为计算机程序产品,其中程序可以从远程计算机传输到请求计算机。
94.许多方法以它们的基本形式描述,但是在不脱离本实施例的基本范围的情况下,可以向任何方法添加或从任何方法删除过程,并且可以从任何所述消息添加或减去信息。对本领域技术人员来说显而易见的是,可以进行许多进一步的修改和适配。特定实施例不被提供来限制概念而是为了说明它。实施例的范围不是由上面提供的具体示例而是由下面的权利要求确定的。
95.如果说元件“a”耦合到元件“b”或与元件“b”耦合,则元件a可以直接耦合到元件b或通过例如元件c间接耦合。当说明书或权利要求声称组件、特征、结构、过程或特性a“导致”组件、特征、结构、过程或特性“b”时,这意味着“a”至少是“b”的部分原因,但也可能存在有助于导致“b”的至少一个其他组件、特征、结构、过程或特性。如果说明书指示组件、特征、结构、过程或特性“可以”、“可能”或“可”被包括,则不要求该特定组件、特征、结构、过程或特性被包括在内。如果说明书或权利要求提及“一”或“一个”元件,这不意味着存在所述元件之一。
96.实施例是实施方式或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现并不都指的是相同的实施例。应当理解,在示例实施例的前述描述中,出于简化公开并帮助理解各种新颖方面中的一个或多个的目的,各种特征有时在单个实施例、图或其描述中组合在一起。然而,本公开的方法不被解释为反应要求保护的实施例利用比每个权利要求中明确记载的更多的特征的意图。而是,如以下权利要求反应,新颖的方面在于比单个前述公开的实施例的所有特征更少。因此,权利要求由此被明确并入该描述中,其中每个权利要求独立地作为单独的实施例。
再多了解一些

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

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

相关文献