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

用于对同态性受加密数据的存储器和I/O高效操作的技术的制作方法

2022-06-30 00:12:58 来源:中国专利 TAG:

用于对同态性受加密数据的存储器和i/o高效操作的技术


背景技术:

1.强加密可以确保没有人可以读取受加密数据,允许受加密数据跨越未加密信道加以发送并存储在不受信任的存储中,而没有数据被存取的风险。然而,标准加密不允许受加密数据在未首先得以解密的情况下加以分析或处理,防止不受信任的设备以安全方式处理数据。
2.同态性加密可以允许在未首先对数据进行解密的情况下处理受加密信息。然而,存储器和输入/输出带宽要求对于同态性受加密数据可能比对应未加密数据更高数个量级。
附图说明
3.在附图中通过示例的方式而非限制的方式示出本文描述的概念。为了图示的简单性和清楚性,图中所示的要素不一定按比例绘制。在认为适当的情况下,在各图之间已经重复参考标记以指示对应或类似要素。
4.图1是用于由云计算设备远程处理由客户端计算设备同态性加密的数据的系统的至少一个实施例的简化框图;
5.图2是图1的客户端计算设备的至少一个实施例的简化框图;
6.图3是图1的云计算设备的至少一个实施例的简化框图;
7.图4是图3的同态性加密处理器的至少一个实施例的简化框图;
8.图5是图3的同态性加密处理器的至少一个实施例的简化框图;
9.图6是图3的同态性加密处理器的至少一个实施例的简化框图;
10.图7是示出将掩码应用于密文分组的简化图;
11.图8是示出密文分组的形状移位的一个实施例的简化框图;
12.图9是可以由图1的客户端计算设备执行的用于将同态性受加密数据发送到远程计算设备以用于处理的方法的至少一个实施例的简化流程图;以及
13.图10-图11是可以由图1的云计算设备执行的用于处理同态性受加密数据的方法的至少一个实施例的简化流程图。
具体实施方式
14.虽然本公开的概念易受各种修改和替选形式,但是其特定实施例已经通过示例的方式在附图中示出并且将在本文中详细描述。然而,应理解,并非意图将本公开的概念限制于所公开的特定形式,而是相反,意图在于涵盖与本公开和所附权利要求一致的所有修改、等同物和替选。
15.说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以或可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为其处于本领域技术人员的知识内,以与其他实施例结合实行这种特征、结
构或特性,而无论是否明确描述。附加地,应理解,呈“至少一个a、b和c”的形式的列表中包括的项可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。相似地,呈“a、b或c中的至少一个”的形式列出的项可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。
16.在一些情况下,所公开的实施例可以实现于硬件、固件、软件或其任何组合中。所公开的实施例也可以实现为由瞬时或非瞬时机器可读(例如,计算机可读)存储介质承载或其上所存储的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于存储或发送呈可由机器读取的形式的信息的任何存储设备、机构或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
17.在附图中,可以按特定布置和/或顺序示出一些结构或方法特征。然而,应理解,可以无需这些特定布置和/或顺序。相反,在一些实施例中,可以按与说明性附图中所示的方式和/或顺序不同的方式和/或顺序布置这些特征。附加地,在特定附图中包括结构或方法特征并非意指暗示该特征在所有实施例中是需要的,并且在一些实施例中,可以不被包括或可以与其他特征组合。
18.现在参照图1,说明性系统200包括客户端计算设备102,其通过网络206连接到云计算设备104。在说明性实施例中,客户端计算设备102确定待发送到云计算设备104以用于远程执行的工作负载(例如,图像识别)。客户端计算设备102确定用于工作负载的参数(例如,待在卷积神经网络(cnn)中使用的滤波器)。即使单个密文分组中的参数可以用在对云计算设备104的不同操作中,客户端计算设备102也可以将用于工作负载的多个参数包封为密文分组。例如,客户端计算设备102可以在单个密文分组中包封用于cnn的若干滤波器,并且云计算设备104可以一次仅应用一个滤波器,如下文更详细讨论的那样。客户端计算设备102然后通过网络106向云计算设备104发送同态性受加密参数连同待用受加密参数执行的工作负载的指示。
19.将客户端计算设备102连接到云计算设备104的网络106可以是任何合适的网络或网络的组合。例如,网络106可以是互联网、内联网、基于以太网的网络、tcp/ip网络、边缘网络等的任何组合。
20.说明性云计算设备104接收一个或多个密文分组中的同态性受加密工作负载参数连同待执行的工作负载的指示。云计算设备104可以对密文分组执行各种形状移位操作,以为创建用于待作为工作负载的部分执行的指令的操作数。云计算设备104可以例如将密码值从密文分组的一个时隙拷贝到密文分组的每一文本中。在执行工作负载之后,云计算设备104将受加密结果发送回到客户端计算设备102。
21.在说明性实施例中,云计算设备104包括缓存存储器404(见图4)中的形状移位器408。形状移位器408可以操作为用于对密文的操作的流水线。例如,计算引擎406可以指令形状移位器408以在计算引擎406执行另一操作的同时创建用于未来指令的操作数。形状移位器408可以准备操作数,以使得它是就绪的。
22.应理解,该方法既可以显著减少存储器和输入/输出要求,又可以减少时延和执行时间。由于用于对同态性受加密数据的操作的操作数可能比未加密的操作数占用更多量级的空间,因此以解包封的形式发送操作数也可能比发送未加密的操作数需要更多量级的空间和带宽。通过从用多个参数包封的密文分组旋即创建操作数,可以减少对于存储和发送大操作数的存储和带宽要求。
23.客户端计算设备102和云计算设备104可以使用任何合适的同态性加密算法(例如,任何基于格的同态性加密算法)。在说明性示例中,加密算法基于环上容错学习问题。加密算法可以是基于环上容错学习问题的加密算法的任何合适的实现方式(例如,brakerski-gentry-vaikuntanathan(bgv)方案、brakerski/fan-vercauteren(bfv)方案或cheon-kim-kim-song(ckks)方案)。环上容错学习问题是专门针对有限域上的多项式环的容错学习问题。多项式环定义为rq(x)=zq/f(x),其中,f(x)是次数n的分圆多项式。
24.在说明性加密算法中,使用带有系数模q的两个次数n的多项式环对有限域f
p
中的数据进行加密,其中,q》》p。用于p的值可以是任何合适的值,并且可以取决于特定应用和待加密的明文数据。例如,在一个实施例中,待加密的数据元素可以是8比特宽,并且p可以是2
8-1(255)。为了实现特定等级的安全性(例如,128比特的安全性),使用带有高次数和大系数的多项式(例如,带有次数n》8192且系数长度大于206比特(即,q》2
206
)的多项式)。例如,在一个实施例中,次数可以是16,384,并且每个系数可以具有412比特。因此,为了对单个参数进行编码,16,384次和412比特系数比特长度的两个多项式环需要2
×
16,384
×
413比特=1.7兆字节。1.7兆字节的明文分组可以编码为1.7兆字节的密文分组。然而,例如,为了对在宽度方面1个字节的明文参数进行编码,密文分组将仍然需要是1.7兆字节,密文的大小增加超过106的明文。该方法将海量地增加存储器要求、缓存存储器存储要求、网络带宽、互连带宽、功率使用等。
25.为了避免将每个参数编码为比参数更大数个量级的密文分组的高性能罚,可以在单个密文分组中对多个参数进行编码。使用中国余数定理(crt),f(x)可以模p因式分解为均次数d和大小log2(p)比特的系数的r个更小的因子f1(x)、f2(x)...fr(x)。次数d可以是小于或等于次数n的任何合适的值(例如,当使用次数n=16,384时,次数d=8,192)。多项式因子fi(x)中的每一个可以视为可以用以将一个输入数据表示为明文多项式r
i,p
(x)的分离时隙。可以组合r个明文多项式以获得包封的多项式rq(x),其加密操作生成有效地对所有明文时隙进行加密的密文。对包封的密文的操作独立地在每个时隙上进行操作,与单指令多数据(simd)方法相似,导致r次并行计算。对两个包封的密文的任何操作要求时隙的数量是相同的,并且操作数在适当的时隙中对齐。
26.现在参照图2,客户端计算设备102可以体现为任何类型的计算设备。例如、客户端计算设备102可以体现为不限于服务器计算机、嵌入式计算系统、片上系统(soc)、多处理器系统、基于处理器的系统、消费者电子设备、智能电话、蜂窝电话、台式计算机、平板计算机、笔记本计算机、膝上型计算机、网络设备、路由器、交换机、连网计算机、可穿戴计算机、手机、传信设备、相机设备和/或任何其他计算设备,或以其他方式包括于其中。说明性客户端计算设备102包括处理器202、存储器204、输入/输出(i/o)子系统206、数据存储208、通信电路210和一个或多个外围设备212。在一些实施例中,客户端计算设备102的说明性组件中的一个或多个可以并入另一组件中,或者以其他方式形成其部分。例如,在一些实施例中,存储器204或其部分可以并入处理器202中。在一些实施例中,说明性组件中的一个或多个可以与另一组件在物理上是分离的。例如,在一个实施例中,带有处理器202和存储器204的soc可以通过通用串行总线(usb)连接器连接到处于soc的外部的数据存储208。
27.处理器202可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器202可以体现为单核或多核处理器、单插槽或多插槽处理器、数字信号处理器、图形处理
器、微控制器或其他处理器或处理/控制电路。相似地,存储器204可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器204可以存储在客户端计算设备102的操作期间使用的各种数据和软件(例如,操作系统、应用、程序、库和驱动程序)。存储器204经由i/o子系统206以通信方式耦合到处理器202,i/o子系统206可以体现为电路和/或组件,以促进与处理器202、存储器204和客户端计算设备102的其他组件的输入/输出操作。例如,i/o子系统206可以体现为或以其他方式包括存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点到点链路、总线链路、导线、线缆、光导、印制电路板迹线等)和/或其他组件和子系统,以促进输入/输出操作。i/o子系统206可以通过使用任何合适的连接器、互连、总线、协议等(例如,usb2、usb3、usb4、等)将客户端计算设备102的各种内部和外部组件连接到彼此。在一些实施例中,i/o子系统206可以向外部设备(例如,总线供电式usb设备)提供电力。在一些实施例中,i/o子系统206可以形成片上系统(soc)的部分,并且连同处理器202、存储器204和客户端计算设备102的其他组件并入单个集成电路芯片上。
28.数据存储208可以体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备。例如,数据存储208可以包括任何一个或多个存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。
29.通信电路210可以体现为能够(例如,通过一个或多个有线或无线连接)将客户端计算设备102与其他计算设备进行接口的任何类型的接口。在一些实施例中,通信电路210可以能够与任何适当的线缆类型(例如,电缆或光缆)进行接口。通信电路210可以被配置为使用任何一种或多种通信技术和关联协议(例如,以太网、wimax、近场通信(nfc)等)。通信电路210可以位于与处理器202分离的硅上,或者通信电路210可以随处理器202包括于多芯片封装中或者甚至处于与处理器202相同的管芯上。通信电路210可以体现为一个或多个附加件板、子卡、网络接口卡、控制器芯片、芯片集、专用组件(例如,现场可编程门阵列(fpga)或专用集成电路(asic))或可以由客户端计算设备102用以与另一计算设备连接的其他设备。在一些实施例中,通信电路210可以体现为包括一个或多个处理器的片上系统(soc)的部分,或者包括于也包含一个或多个处理器的多芯片封装上。在一些实施例中,通信电路210可以包括皆对于通信电路210处于本地的本地处理器(未示出)和/或本地存储器(未示出)。在这些实施例中,通信电路210的本地处理器可以能够执行本文描述的处理器202的功能中的一个或多个。附加地或替代地,在这些实施例中,通信电路210的本地存储器可以在板级、插槽级、芯片级和/或其他级集成到客户端计算设备102的一个或多个组件中。
30.在一些实施例中,客户端计算设备102可以包括其他或附加组件(例如,计算设备中平常发现的组件)。例如,客户端计算设备102也可以具有外围设备212(例如,图形处理器、显示器、键盘、鼠标、扬声器、麦克风、相机、外部存储设备等)。在一些实施例中,客户端计算设备102可以连接到坞站,其可以与包括外围设备212的各种设备进行接口。
31.现在参照图3,云计算设备104可以体现为任何类型的计算设备。例如、云计算设备104可以体现为不限于服务器计算机、嵌入式计算系统、片上系统(soc)、多处理器系统、基于处理器的系统、消费者电子设备、智能电话、蜂窝电话、台式计算机、平板计算机、笔记本计算机、膝上型计算机、网络设备、路由器、交换机、连网计算机、可穿戴计算机、手机、传信
设备、相机设备和/或任何其他计算设备,或以其他方式包括于其中。在一些实施例中,云计算设备104可以是组件的分解集合(例如,数据中心的机架中的不同盘片(sled)上的不同组件)。
32.说明性云计算设备104可以包括与客户端计算设备102相似的组件(例如,处理器302、存储器304、i/o子系统306、数据存储308、通信电路310和可选外围设备314,其中的每一个可以与上述客户端计算设备102的对应组件相似)。为了清楚性,将不重复这些组件的描述。当然,应理解,云计算设备104的组件在质量或数量方面可以随客户端计算设备102的对应组件而变化。例如,在一个实施例中,云计算设备104可以具有相对强大的处理器302和相对大量的存储器304,而客户端计算设备102可以具有较不强大的处理器202和较小量的存储器302。
33.此外,在说明性实施例中,云计算设备104包括同态性加密(he)处理器312。he处理器312被配置为对使用同态性加密算法加密的数据执行处理任务。应理解,在说明性实施例中,he处理器312不需要对数据进行解密以对数据执行处理任务。
34.现在参照图4,he处理器312具有i/o互连402、缓存存储器404和一个或多个计算引擎406(例如,计算引擎406a-d)。说明性互连402可以连接到或接口于he处理器312外部的一个或多个组件或电路(例如,i/o子系统306)。在说明性实施例中,he处理器312的i/o互连402连接到i/o子系统106和云计算设备104的其他组件(例如,处理器302、存储器304等)。
35.缓存存储器404被配置为从云计算设备104的其他组件(例如,从存储器304或处理器302)接收数据。当计算引擎406之一请求数据以用于使用时,缓存存储器404可以接收数据。计算引擎406可以当需要数据时请求数据,或者可以在需要数据之前请求数据,以允许用于待加载在缓存存储器404中的数据的时间。
36.在一些实施例中,缓存存储器404可以包括各种组件,以控制存储器存取,管理缓存内容、处置缓存未命中,执行驱逐等。例如,缓存存储器404可以包括或接口于存储器管理单元或存储器管理单元,转译后备缓冲区等。在一些实施例中,缓存存储器404可以形成存储器304的部分或与存储器304集成。
37.缓存存储器404包括形状移位器408。形状移位器408被配置为修改并且生成密文分组,以用作用于计算引擎406的操作数,如下文更详细描述的那样。形状移位器408可以体现为例如硬件、软件、固件或其组合。形状移位器408可以体现为形状移位器电路,其可以是任何合适的电路或电子设备集合。在一些实施例中,形状移位器电路可以部分地或完全地体现为处理器和存储器。在一些实施例中,形状移位器电路可以形成计算设备的另一组件(例如,处理器302和/或存储器304)的部分。
38.每个计算引擎406a-d被配置为对密文分组执行操作。在说明性实施例中,每个计算引擎406a-d可以对体现为密文分组的两个操作数执行操作(例如,加法和乘法)和/或对体现为密文分组的更多操作数和体现为明文分组的一个操作数执行操作(例如,加法和乘法)。如上所述,在说明性实施例中,每个密文分组包括若干时隙,并且计算引擎406a-d可以对每个操作数的每个时隙执行操作。例如,与单指令多数据(simd)指令相似,作为单个乘法指令的部分,计算引擎406a-d可以将第一操作数的密文分组的每个时隙的值乘以第二操作数的密文分组的对应时隙的值。
39.每个计算引擎406可以体现为能够执行本文描述的功能的任何类型的计算引擎或
处理器。例如,计算引擎可以体现为单核或多核处理器、单插槽或多插槽处理器、数字信号处理器、图形处理器、微控制器和/或其他处理器或处理/控制电路。计算引擎406可以体现为现场可编程门阵列(fpga)、专用集成电路(asic)、图形处理器、矢量处理器等。说明性计算引擎406可以具有被设计为对同态性受加密数据执行操作的电路。在说明性实施例中,计算引擎406可以被配置为对具有等于密文分组的宽度的操作数进行操作。在一些实施例中,计算引擎406可以能够对不同宽度的操作数(例如,对应于用于加密算法的参数的各种值(例如,n和q的各种值)的密码分组的操作数)进行操作。计算引擎406可以附加地包括可以通过与处理器202相似的方式执行任务的电路。除了被配置为对同态性受加密数据执行操作的处理器内核之外,对于计算引擎406可以还包括32比特或64比特处理器内核。
40.在操作中,每个计算引擎406a-d可以从缓存存储器404请求操作数。如果用于操作数的数据存储在缓存存储器404中,则缓存存储器404可以将其提供给请求计算引擎406。如果用于操作数的数据未存储在缓存存储器404中,则缓存存储器404可以从云计算设备的另一组件(例如,存储器304或处理器302)请求数据。
41.在说明性实施例中,形状移位器408被配置为基于缓存存储器404中存储的数据生成用于计算引擎406的操作数。如上所述,每个密文分组可以包括可以并行受操作的若干时隙。然而,缓存存储器404可以按与由计算引擎406请求的内容不同的密文分组中的排列存储所加密的值。例如,计算引擎406可以重复多次从密文分组中的单个时隙请求具有值的操作数,而密文分组仅在单个时隙中具有该值。形状移位器408可以执行操作,以将值从密文分组的单个时隙拷贝到密文时隙的若干分组。更一般地,形状移位器408可以出于任何合适的原因以任何合适的方式对来自密文分组的时隙的值进行拷贝、移动、移位、应用掩码等。例如,在一个实施例中,密文分组可以用作用于存储值的数据结构(例如,堆栈、队列)。附加地或替代地,在另一实施例中,密文分组可以用作随机存取数据结构。
42.形状移位器408可以基于任何合适的触发准备操作数并且以其他方式生成或操纵密文分组。例如,在说明性实施例中,计算引擎406可以指令形状移位器408以创建密文分组,以用于在稍后时间由计算引擎406用作操作数。计算引擎406可以向形状移位器408指示操作数中应包括哪些密文分组的哪些时隙。附加地或替代地,形状移位器408可以基于正受请求的其他操作数的时间或空间局部性生成密文分组以用作操作数。例如,在一个实施例中,计算设备406可以从拷贝到操作数的每一时隙的密文分组中的时隙请求填充有单个值的操作数。在计算设备406请求另一操作数的预期中,形状移位器408可以生成填充有来自同一密文分组中的下一时隙的单个值的该操作数。
43.在说明性实施例中,形状移位器408也可以对计算引擎406的计算的结果的时隙中的值进行拷贝、移动、移位、应用掩码等。例如,计算引擎406可以执行计算并且将结果作为密文分组保存在寄存器中。计算引擎406可以然后将结果发送回到缓存存储器404以用于存储。形状移位器408可以例如将值从结果的不同时隙拷贝到缓存存储器404上保存的不同密文分组的时隙。
44.应理解,图4所示的配置并非用于缓存存储器404和形状移位器408的仅有可能配置。例如,在一些实施例中,形状移位器504可以处于缓存存储器502与计算引擎之间406a-d,如图5所示。形状移位器504可以对正从缓存存储器502向计算引擎406或从计算引擎406向缓存存储器502发送的数据执行形状移位操作(例如,拷贝到或拷贝自密文分组的时隙、
移位密文分组的时隙、或其他包封或解包封操作)。
45.在另一实施例中,每个计算引擎406a-d可以包括如图6所示的形状移位器604a-d。形状移位器604a-d可以对在由计算引擎406使用之前从缓存存储器602发送的数据或对源自计算引擎406上的计算的数据执行形状移位操作(例如,拷贝到或拷贝自密文分组的时隙、移位密文分组的时隙、应用掩码、或其他包封或解包封操作)。该配置在工作负载(例如,使用乘法累加操作的工作负载)中是有用的,其中,需要相乘的配对操作数可以压缩为配对密文分组并在计算引擎406中以本地方式解包封。
46.应理解,由形状移位器408执行的形状移位操作执行与处理器中的流水线相似的职责。具体而言,计算引擎406可以(要么以显式方式通过例如向缓存存储器404发送请求,要么以隐式方式通过例如请求时间或空间有关操作数)指在示未来将需要哪个操作数,并且形状移位器408可以执行必要的操作,以在待发送到计算引擎406以在操作中使用之前准备操作数。
47.现在参照图7,在一个实施例中,诸如形状移位器404之类的组件可以将掩码704应用于密文分组702,如所示。在说明性实施例中,掩码704的第一时隙设置为1,而所有其他时隙设置为0。输入密文分组702可以与掩码704相乘,以生成掩码化的结果706,其为带有设置为输入密文分组702的第一时隙的值的第一时隙和设置为0的所有其他时隙的密文分组702。
48.现在参照图8,在一个实施例中,输入密文分组802的第一时隙中的值可以拷贝到所有时隙。首先,将移位或旋转操作应用于输入密文分组802,以创建密文分组804。密文分组802然后与密文分组804相加,以创建密文分组806,其使初始密文分组802的第一时隙中的值拷贝到第二时隙。旋转和加法操作然后再重复两次,导致密文分组814,其中,输入密文分组802的第一时隙的值拷贝到密文分组814的每个时隙。虽然密文分组802有八个时隙,但是应理解,密文分组可以包括更大数量的时隙。
49.应理解,形状移位操作不限于图9和图10所示的形状移位操作。例如,形状移位操作可以创建在时隙的前一半中的每一个中具有相同值且在时隙的后一半中的每一个中具有第二值的密文分组。
50.现在参照图9,在使用中,客户端计算设备102可以执行方法900,以用于将同态性受加密数据发送到云计算设备104。方法900开始于块902中,其中,客户端计算设备102确定要发送到云计算设备104的工作负载。工作负载可以是任何合适的工作负载(例如,图像识别算法)。
51.在块904中,客户端计算设备102确定工作负载参数。工作负载参数可以包括输入参数(例如,待处理的图像)。附加地或替代地,工作负载参数可以包括用于函数的参数或待应用的函数的描述。在一些实施例中,云计算设备104可以将函数和/或函数的一些或全部参数存储在云计算设备104上,在此情况下,这些参数可能不需要发送到云计算设备104。在一个实施例中,工作负载参数可以包括一个或多个待处理的图像和待在卷积神经网络中应用于处理一个或多个图像的滤波器。在其他实施例中,工作负载可以是任何合适的工作负载(例如,涉及线性代数的工作负载)。
52.在块906中,客户端计算设备102将若干工作负载参数包封为单个明文分组。例如,客户端计算设备102可以是一个明文分组中的输入值、函数参数等的任何组合。应理解,客
户端计算设备102可以在相同的明文分组中包括待在分离的计算中使用的值。例如,在一个实施例中,明文分组可以包括用于卷积神经网络的多个滤波器,而每个滤波器待由云计算设备104用在分离的操作中。在一些实施例中,客户端计算设备102可以将若干工作负载参数包封为一个或多个明文分组中的每一个,或者可以将单个工作负载参数包封为明文分组。
53.在块908中,客户端计算设备102使用同态性加密算法对每个明文分组进行加密,以生成用于每个明文分组的对应密文分组。
54.在块910中,客户端计算设备102将工作负载发送到云计算设备104。在块912中,客户端计算设备102可以将密文分组发送到云计算设备104。在说明性实施例中,客户端计算设备102可以向云计算设备104发送云计算设备104可以使用以对同态性受加密数据执行计算的特定加密参数(例如,多项式次数和每个系数中使用的比特的数量)。应理解,在说明性实施例中,客户端计算设备102不向云计算设备104发送加密密钥,并且因此,云计算设备104不能对任何明文分组的值进行解密或以其他方式存取。在块916中,在说明性实施例中,客户端计算设备102将工作负载函数发送到云计算设备104。
55.在块918中,在云计算设备104执行一些或全部工作负载之后,客户端计算设备102从云计算设备104接收所加密的结果。客户端计算设备102然后在块920中对结果进行解密。
56.现在参照图10,在使用中,云计算设备104可以执行方法1000,以用于对同态性受加密数据执行操作。方法1000开始于块1002中,其中,云计算设备104从客户端计算设备102接收工作负载。在块1004中,云计算设备104可以接收一个或多个密文分组。密文分组可以包括用于待执行的工作负载的一个或多个工作负载参数(例如,输入值、函数参数等)。在块1006中,云计算设备104可以接收云计算设备104可以使用以对同态性受加密数据执行计算的一个或多个加密参数(例如,多项式次数和每个系数中使用的比特的数量)。在块1008中,在说明性实施例中,云计算设备104接收对云计算设备104的工作负载函数。在一些实施例中,工作负载函数和/或工作负载函数的参数可以存储在云计算设备104上。
57.在块1010中,云计算设备104可以确定待发送到计算引擎406以用于计算引擎406进行的未来操作的操作数。云计算设备104可以通过任何合适的方式确定操作数。例如,形状移位器404可以从计算引擎406接收指令,以在块1012中准备特定操作数。计算引擎406可以指令形状移位器404以通过任何合适的方式准备特定操作数。例如,在一个实施例中,计算引擎406可以执行指示应创建的操作数的指令集架构的指令,其包括缓存404中存储的密文分组的哪些时隙值应存在于待准备的操作数的哪些时隙值中的指示。在另一实施例中,指令集架构的指令可以指示对密文分组应执行预先指定的比特掩码和复制程度。
58.在块1016中,云计算设备104可以基于对先前或当前操作数的空间或时间局部性确定未来操作数。在一些实施例中,可以连同指示将使用的其他操作数的空间和时间局部性的信息在明文中提供一些操作数(例如,用于工作负载的函数的参数)。在一个实施例中,在块1016中,云计算设备104可以创建用于待在卷积神经网络中应用的下一滤波器的操作数。
59.待创建的操作数可以是缓存存储器404、存储器304或云计算设备104的其他组件中存储的密文分组的时隙的任何合适组合。如上所述,以与单指令多数据(simd)指令相似的方式,操作数可以包括密文分组,其中,密文分组由均同时受操作的若干时隙组成。所请
求的操作数可以由例如以下项组成:已经使掩码应用于其的一个密文分组、已经使来自一个时隙的值拷贝到一些或所有其他时隙的密文分组、使时隙拷贝自不同的密文分组的密文分组等。
60.在块1018中,云计算设备104对密文分组执行一个或多个形状移位操作,以准备未来操作数。云计算设备104可以执行形状移位操作(例如,拷贝到或拷贝自密文分组的时隙、移位密文分组的时隙、应用掩码或其他包封或解包封操作)。在块1020中,云计算设备104可以从密文分组的时隙提取密码值。在块1022中,云计算设备104可以将来自不同密文分组中的时隙的值组合为相同密文分组中的不同时隙。云计算设备104可以在块1024中执行掩码操作,并且云计算设备104可以在块1026中执行旋转和相加操作。在说明性实施例中,形状移位可以由形状移位器408(或形状移位器504或形状移位器604)执行。在其他实施例中,一些或全部形状移位可以由云计算设备104的其他组件(例如,处理器302)执行。
61.例如,在一个实施例中,工作负载可以是使用卷积神经网络的图像识别算法。卷积操作涉及图像像素与从图像提取特定特征的滤波器的乘法累加操作。在卷积神经网络中,大数量的滤波器中的每一个可以应用于图像像素。可以通过创建图像像素的一个操作数和带有出现在密文分组的每个时隙中的滤波器的第二操作数完成用于单个滤波器的该操作。通过执行乘法操作,云计算设备将第一操作数的密文分组的每个时隙的值乘以第二操作数的密文分组的时隙的对应值,并且以此方式,滤波器可以应用于图像。
62.然而,发送具有关于每个时隙重复的单个滤波器值的操作数的客户端计算设备102将需要云计算设备104上的大的网络带宽、存储空间和内部i/o带宽。为了避免这种情况,客户端计算设备102可以在单个密文分组中发送大数量的滤波器(例如,超过10,000个滤波器)。在块1018中,云计算设备104可以从密文分组中的时隙提取一个滤波器值,并且(例如,通过使用图10所示的方法)将其拷贝到密文分组中的每个时隙。应理解,通过在单个密文分组中发送超过10,000个值(其否则将均处于它们自己的密文分组中),客户端计算设备102、存储和带宽要求将降低达多于10,000的因子。
63.还应理解,在说明性实施例中,可以在操作数正发送到的计算引擎406正执行其他操作的同时执行块1018中的操作数的准备。因此,操作数的准备可以减少计算引擎406的操作中的时延。
64.现在参照图11,在块1028中,云计算设备104(例如,通过在i/o通道上发送操作数)向计算引擎提供操作数。在块1030中,云计算设备104使用操作数执行一个或多个操作。
65.在块1032中,云计算设备104将计算的结果存储在缓存存储器404中。在一些实施例中,云计算设备104对计算结果执行形状移位。
66.在块1036中,云计算设备104确定工作负载是否完成。在块1038中,如果工作负载并未完成,则方法1000循环回到图10中的块1010,以确定用于未来操作的操作数。应理解,可以在块1010中确定操作数,因为操作正在块1030中得以执行。
67.返回参照块1038,如果工作负载完成,则方法1000进行到块1040,其中,云计算设备104准备工作负载结果并且发送到客户端计算设备102。
68.示例
69.以下提供本文所公开的技术的说明性示例。技术的实施例可以包括以下描述的示例中的任何一个或多个及其任何组合。
70.示例1包括:一种同态性加密处理器,所述同态性加密处理器包括:缓存存储器,其用于存储一个或多个密文分组;一个或多个计算引擎,其以通信方式耦合到所述缓存存储器;形状移位器电路,其用于:在一个或多个计算引擎上创建用于未来计算操作的操作数,其中,创建所述操作数包括:与对所述一个或多个计算引擎执行当前计算操作并行地基于所述一个或多个密文分组创建操作数密文分组;以及将所述操作数发送到所述一个或多个计算引擎,其中,所述一个或多个计算引擎将用于通过使用所述操作数执行所述未来操作。
71.示例2包括:如示例1所述的主题,并且其中,创建所述操作数包括:将掩码应用于所述一个或多个密文分组之一,以创建掩码化密文分组。
72.示例3包括:如示例1和2中任一项所述的主题,并且其中,创建所述操作数还包括:对所述掩码化密文分组执行旋转操作。
73.示例4包括:如示例1-3中任一项所述的主题,并且其中,创建所述操作数包括:将所述一个或多个密文分组中的第一密文分组的时隙的值拷贝到所述操作数密文分组的每个时隙。
74.示例5包括:如示例1-4中任一项所述的主题,并且其中,所述一个或多个密文分组中的所述第一密文分组包括卷积神经网络的多个滤波器,其中,所述一个或多个密文分组中的第二密文分组包括待由所述同态性加密处理器处理的图像的通道的像素,其中,将所述第一密文分组的时隙的值拷贝到所述操作数密文分组的每个时隙包括:将所述多个滤波器中的滤波器拷贝到所述操作数密文分组的每个时隙,其中,所述一个或多个计算引擎用于通过使用所述操作数执行计算操作,以将所述滤波器应用于所述待处理的图像的所述通道的所述像素。
75.示例6包括:如示例1-5中任一项所述的主题,并且其中,所述形状移位器电路用于:从所述一个或多个计算引擎接收指令,以创建所述操作数,其中,所述指令指示所述一个或多个密文分组的哪些时隙值应处于所述操作数的哪些时隙中。
76.示例7包括:如示例1-6中任一项所述的主题,并且其中,所述形状移位器电路进一步用于:基于所述当前计算操作的当前操作数中的数据的时间或空间局部性创建第二操作数。
77.示例8包括:一种用于对同态性受加密数据执行操作的计算设备,所述计算设备包括:处理器;存储器,其以通信方式耦合到所述处理器;一个或多个计算机可读介质,其包括其上所存储的多个指令,所述多个指令当由所述计算设备执行时使所述计算设备:从远程计算设备接收一个或多个密文分组,其中,所述一个或多个密文分组中的每一个受同态性加密,其中,所述一个或多个密文分组中的每一个包括多个密文时隙值;通过使用所述一个或多个密文分组中的第一密文分组的所述多个密文时隙值中的第一密文时隙值创建第一操作数;通过使用所述一个或多个密文分组中的所述第一密文分组的所述多个密文时隙值中的第二密文时隙值创建第二操作数,其中,所述第一操作数不同于所述第二操作数,并且其中,所述第二密文时隙值不同于所述第一密文时隙值;通过使用所述第一操作数对同态性受加密数据执行第一操作;以及通过使用所述第二操作数对同态性受加密数据执行第二操作。
78.示例9包括:如示例8所述的主题,并且其中,创建所述第一操作数包括:与执行所述第一操作并行地创建所述第二操作数。
79.示例10包括:如示例8和9中任一项所述的主题,并且其中,通过使用所述第一密文时隙值创建所述第一操作数包括:将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值。
80.示例11包括:如8-10所述的一种或多种计算机可读介质,其中,所述第一密文分组包括卷积神经网络的多个滤波器,其中,所述一个或多个密文分组中的第二密文分组包括待由所述计算设备处理的图像的通道的像素,其中,将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值包括:将所述多个滤波器中的滤波器拷贝到所述操作数密文分组的每个时隙值,其中,执行所述第一操作包括:将所述滤波器应用于所述待处理的图像的所述通道的所述像素。
81.示例12包括:如示例8-11中任一项所述的主题,并且其中,在基于格的密码式方案的基础上对所述一个或多个密文分组中的每一个进行加密。
82.示例13包括:如示例8-12中任一项所述的主题,并且其中,所述基于格的密码式方案基于环上容错学习。
83.示例14包括:如示例8-13中任一项所述的主题,并且还包括同态性加密处理器,其包括:缓存存储器,其用于存储一个或多个密文分组;一个或多个计算引擎,其以通信方式耦合到所述缓存存储器;和形状移位器电路,其中,所述多个指令使所述形状移位器电路创建所述第一操作数并创建所述第二操作数,其中,所述多个指令使所述一个或多个计算引擎执行所述第一操作并执行所述第二操作。
84.示例15包括:如示例8-14中任一项所述的主题,并且其中,所述多个指令使所述形状移位器电路:通过将掩码应用于所述一个或多个密文分组之一以创建掩码化密文分组来创建所述第一操作数。
85.示例16包括:一种系统,其包括如示例8-15中任一项所述的计算设备,还包括所述远程计算设备,所述远程计算设备包括:处理器;存储器,其以通信方式耦合到所述远程计算设备的所述处理器;一个或多个计算机可读介质,其包括其上所存储的多个指令,所述多个指令当由所述远程计算设备执行时使所述远程计算设备:确定用于工作负载的多个工作负载参数;将所述多个工作负载参数包封为一个明文分组,其中,所述多个工作负载参数用于在所述工作负载的执行期间用在不同的操作数中;通过使用同态性加密算法将所述明文分组加密为密文分组,其中,所述密文分组是所述一个或多个密文分组之一;以及将所述受加密密文分组发送到所述计算设备以用于所述工作负载的执行。
86.示例17包括:如权利要求16所述的计算设备,其中,所述远程计算设备的所述多个指令进一步使所述远程计算设备:将待由所述计算设备处理的图像的通道的像素加密为第二密文分组,其中,包封为一个密文分组的所述多个工作负载参数包括卷积神经网络的多个滤波器,其中,所述多个滤波器中的每个滤波器用于应用于所述待处理的图像的所述通道的所有像素。
87.示例18包括:一种或多种计算机可读介质,其包括其上所存储的多个指令,所述多个指令当执行时使计算设备:从远程计算设备接收一个或多个密文分组,其中,所述一个或多个密文分组中的每一个受同态性加密,其中,所述一个或多个密文分组中的每一个包括多个密文时隙值;通过使用所述一个或多个密文分组中的第一密文分组的所述多个密文时隙值中的第一密文时隙值创建第一操作数;通过使用所述一个或多个密文分组中的所述第
一密文分组的所述多个密文时隙值中的第二密文时隙值创建第二操作数,其中,所述第一操作数不同于所述第二操作数,并且其中,所述第二密文时隙值不同于所述第一密文时隙值;通过使用所述第一操作数对同态性受加密数据执行第一操作;以及通过使用所述第二操作数对同态性受加密数据执行第二操作。
88.示例19包括:如示例18所述的主题,并且其中,创建所述第一操作数包括:与执行所述第一操作并行地创建所述第二操作数。
89.示例20包括:如示例18和19中任一项所述的主题,并且其中,通过使用所述第一密文时隙值创建所述第一操作数包括:将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值。
90.示例21包括:如示例18-20中任一项所述的主题,并且其中,所述第一密文分组包括卷积神经网络的多个滤波器,其中,所述一个或多个密文分组中的第二密文分组包括待由所述计算设备处理的图像的通道的像素,其中,将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值包括:将所述多个滤波器中的滤波器拷贝到所述操作数密文分组的每个时隙值,其中,执行所述第一操作包括:将所述滤波器应用于所述待处理的图像的所述通道的所述像素。
91.示例22包括:如示例18-21中任一项所述的主题,并且其中,在基于格的密码式方案的基础上对所述一个或多个密文分组中的每一个进行加密。
92.示例23包括:如示例18-22中任一项所述的主题,并且其中,所述基于格的密码式方案基于环上容错学习。
93.示例24包括:一种用于对同态性受加密数据执行操作的计算设备,所述计算设备包括:处理器;存储器,其以通信方式耦合到所述处理器;一个或多个计算机可读介质,其包括其上所存储的多个指令,所述多个指令当由所述计算设备执行时使所述计算设备:确定用于工作负载的多个工作负载参数;将所述多个工作负载参数包封为一个明文分组,其中,所述多个工作负载参数用于在所述工作负载的执行期间用在不同的操作数中;通过使用同态性加密算法将所述明文分组加密为密文分组;以及将所述受加密密文分组发送到远程计算设备以用于所述工作负载的执行。
94.示例25包括:如示例24所述的主题,并且其中,所述多个指令进一步使所述计算设备:将待由所述远程计算设备处理的图像的通道的像素加密为第二密文分组,其中,包封为一个密文分组的所述多个工作负载参数包括卷积神经网络的多个滤波器,其中,所述多个滤波器中的每个滤波器用于应用于所述待处理的图像的所述通道的所有像素。
95.示例26包括:一种同态性加密处理器,所述同态性加密处理器包括:缓存存储器,其用于存储一个或多个密文分组;一个或多个计算引擎,其以通信方式耦合到所述缓存存储器;用于在所述一个或多个计算引擎上创建用于未来计算操作的操作数的装置,其中,创建所述操作数包括:与对所述一个或多个计算引擎执行当前计算操作并行地基于所述一个或多个密文分组创建操作数密文分组;和用于将所述操作数发送到所述一个或多个计算引擎的装置,用于通过使用所述操作数执行所述未来操作的装置。
96.示例27包括:如示例26所述的主题,并且其中,用于创建所述操作数的装置包括:用于将掩码应用于所述一个或多个密文分组之一以创建掩码化密文分组的装置。
97.示例28包括:如示例26和27中任一项所述的主题,并且其中,用于创建所述操作数
的装置还包括:对所述掩码化密文分组执行旋转操作。
98.示例29包括:如示例26-28中任一项所述的主题,并且其中,所述用于创建所述操作数的装置包括:用于将所述一个或多个密文分组中的第一密文分组的时隙的值拷贝到所述操作数密文分组的每个时隙的装置。
99.示例30包括:如示例26-29中任一项所述的主题,并且其中,所述一个或多个密文分组中的所述第一密文分组包括卷积神经网络的多个滤波器,其中,所述一个或多个密文分组中的第二密文分组包括待由所述同态性加密处理器处理的图像的通道的像素,其中,所述用于将所述第一密文分组的所述时隙的所述值拷贝到所述操作数密文分组的每个时隙的装置包括:用于将所述多个滤波器中的滤波器拷贝到所述操作数密文分组的每个时隙的装置,还包括:用于通过使用所述操作数执行计算操作以将所述滤波器应用于所述待处理的图像的所述通道的所述像素的装置。
100.示例31包括:如示例26-30中任一项所述的主题,并且还包括:用于从所述一个或多个计算引擎接收指令以创建所述操作数的装置,其中,所述指令指示所述一个或多个密文分组的哪些时隙值应处于所述操作数的哪些时隙中。
101.示例32包括:如示例26-31中任一项所述的主题,并且还包括:用于基于所述当前计算操作的当前操作数中的数据的时间或空间局部性创建第二操作数的装置。
102.示例33包括:一种用于对同态性受加密数据执行操作的计算设备,所述计算设备包括:用于从远程计算设备接收一个或多个密文分组的装置,其中,所述一个或多个密文分组中的每一个受同态性加密,其中,所述一个或多个密文分组中的每一个包括多个密文时隙值;用于通过使用所述一个或多个密文分组中的第一密文分组的所述多个密文时隙值中的第一密文时隙值创建第一操作数的装置;用于通过使用所述一个或多个密文分组中的所述第一密文分组的所述多个密文时隙值中的第二密文时隙值创建第二操作数的装置,其中,所述第一操作数不同于所述第二操作数,并且其中,所述第二密文时隙值不同于所述第一密文时隙值;用于通过使用所述第一操作数对同态性受加密数据执行第一操作的装置;和用于通过使用所述第二操作数对同态性受加密数据执行第二操作的装置。
103.示例34包括:如示例33所述的主题,并且其中,用于创建所述第一操作数的装置包括:用于与执行所述第一操作并行地创建所述第二操作数的装置。
104.示例35包括:如示例33和34中任一项所述的主题,并且其中,用于通过使用所述第一密文时隙值创建所述第一操作数的装置包括:用于将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值的装置。
105.示例36包括:如示例33-35中任一项所述的主题,并且其中,所述第一密文分组包括卷积神经网络的多个滤波器,其中,所述一个或多个密文分组中的第二密文分组包括待由所述计算设备处理的图像的通道的像素,其中,所述用于将所述第一密文时隙值拷贝到所述操作数密文分组的每个时隙值的装置包括:用于将所述多个滤波器中的滤波器拷贝到所述操作数密文分组的每个时隙值的装置,其中,用于执行所述第一操作的装置包括:用于将所述滤波器应用于所述待处理的图像的所述通道的所述像素的装置。
106.示例37包括:如示例33-36中任一项所述的主题,并且其中,在基于格的密码式方案的基础上对所述一个或多个密文分组中的每一个进行加密。
107.示例38包括:如示例33-37中任一项所述的主题,并且其中,所述基于格的密码式
方案基于环上容错学习。
108.示例39包括:如示例33-38中任一项所述的主题,并且还包括同态性加密处理器,其包括:缓存存储器,其用于存储一个或多个密文分组;一个或多个计算引擎,其以通信方式耦合到所述缓存存储器;和形状移位器电路,其用于创建所述第一操作数并创建所述第二操作数,其中,所述一个或多个计算引擎用于执行所述第一操作并执行所述第二操作。
109.示例40包括:如示例33-39中任一项所述的主题,并且其中,所述形状移位器电路进一步用于:通过将掩码应用于所述一个或多个密文分组之一以创建掩码化密文分组来创建所述第一操作数。
110.示例41包括:一种系统,其包括如示例33-40中任一项所述的计算设备,还包括所述远程计算设备,所述远程计算设备包括:用于确定用于工作负载的多个工作负载参数的装置;用于将所述多个工作负载参数包封为一个明文分组的装置,其中,所述多个工作负载参数用于在所述工作负载的执行期间用在不同的操作数中;用于通过使用同态性加密算法将所述明文分组加密为密文分组的装置,其中,所述密文分组是所述一个或多个密文分组之一;和用于将所述受加密密文分组发送到所述计算设备以用于所述工作负载的执行的装置。
111.示例42包括:如示例41所述的主题,并且其中,所述远程计算设备还包括:用于将待由所述计算设备处理的图像的通道的像素加密为第二密文分组的装置,其中,包封为一个密文分组的所述多个工作负载参数包括卷积神经网络的多个滤波器,其中,所述多个滤波器中的每个滤波器用于应用于所述待处理的图像的所述通道的所有像素。
112.示例43包括:一种用于对同态性受加密数据执行操作的计算设备,所述计算设备包括:用于确定用于工作负载的多个工作负载参数的装置;用于将所述多个工作负载参数包封为一个明文分组的装置,其中,所述多个工作负载参数用于在所述工作负载的执行期间用在不同的操作数中;用于通过使用同态性加密算法将所述明文分组加密为密文分组的装置;和用于将所述受加密密文分组发送到远程计算设备以用于所述工作负载的执行的装置。
113.示例44包括:如示例43所述的主题,并且还包括:用于将待由所述远程计算设备处理的图像的通道的像素加密为第二密文分组的装置,其中,包封为一个密文分组的所述多个工作负载参数包括卷积神经网络的多个滤波器,其中,所述多个滤波器中的每个滤波器用于应用于所述待处理的图像的所述通道的所有像素。
再多了解一些

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

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

相关文献