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

同态加密的制作方法

2021-12-18 02:36:00 来源:中国专利 TAG:

同态加密


背景技术:

1.即使在第三方(通常称为“对手”)截获通信的情况下,密码加密(cryptographic encryption)也能提供各方之间的安全通信。加密通信被编码,使得仅授权的接收者能够访问该通信。通常,通信本身被称为“明文”,其是既包含文本消息又包含其他消息的术语。通信加密的算法通常被称为“密码(cipher)”,并且加密通信被称为“密文(ciphertext,密码文本)”。尽管密文可能被截获或以其他方式可被对手获得,但是解密密文以访问加密通信通常非常困难。
2.通常,加密可以被分类为“对称密钥”或“公开秘钥”。在对称密钥加密中,相同的秘钥被用于加密明文和解密密文。由于发送方和接收方都必须可以访问相同的对称密钥,因此必须通过安全通道交换对称密钥来确保。在公开秘钥加密中,加密密钥可以被公开并且被多方使用来加密明文。然而,仅预期的接收者将可以访问使得密文能够被解密的解密密钥。
3.在一些实例中,一方不需要完全解密密文即可在计算中使用密文。在所谓的“同态加密”中,对密文执行的操作可以产生以下结果,所述结果当被解密时与对相应的明文执行的类似操作的结果匹配。操作的示例包括线性和非线性统计分析,以及深度学习和其他基于ai的技术。
4.同态加密在计算由不能不受限制地访问明文的各方执行的场景中特别有用。例如,对医疗数据进行统计分析的一方可能无权访问患者识别信息。然而,分析的结果应该和如同该方可以访问完整的识别信息一样准确。


技术实现要素:

5.本文件涉及同态加密以及执行同态加密的系统和技术。例如,在一个实现中,一种同态加密方法包括:存储二进制数据,其中所述二进制数据中的每个数字表示循环人工神经网络中的活动是否与相应的模式(pattern)相称,其中所述活动响应于安全数据的输入;以及对所述二进制数据进行统计分析以得出关于所述安全数据的结论。所述方法可以硬件、以软件或以其组合实施。
6.此和其他同态加密方法可以包括以下特征中的一个或多个。所述循环人工神经网络中的活动的所述模式可以包括所述网络中的活动的单纯形模式,例如,其中所述单纯形模式是定向单纯形或其中所述单纯形模式包围空腔(cavity)。所述方法可以包括识别所述循环人工神经网络中的活动的所述模式。识别活动的所述模式可以包括:确定具有与响应于所述输入的其他活动可区分的复杂度的活动的特定时间(timing,时间);以及基于具有所述可区分的复杂度的所述活动的所述特定时间来识别所述模式。所述方法可以包括:接收将定制所述安全数据到所述网络中的输入的特性(characteristic)特征化的数据;以及根据所述数据定制明文到所述网络中的输入。所述数据可以将所述明文的位(bit)将被注入到的突触和节点特征化,或将所述明文的位将被注入的顺序特征化。所述方法还可以包括例如通过创建或移除所述网络中的节点或链接或通过改变所述网络中的节点或链接的
一个或多个属性(property)来定制所述网络对所述安全数据的输入的响应。
7.在另一个实现中,一种同态加密方法包括:将第一数据输入到循环人工神经网络中;识别所述循环人工神经网络中的活动的响应于安全数据的输入的模式;存储表示活动的所识别的模式是否与拓扑模式相称的第二数据;以及对所述第二数据进行统计分析以得出关于所述第一数据的结论。所述方法可以硬件、以软件或以其组合实施。
8.此和其他同态加密方法可以包括以下特征中的一个或多个。所述循环人工神经网络中的活动的所述模式可以包括所述网络中的活动的单纯形模式,例如,其中所述单纯形模式是定向单纯形或其中所述单纯形模式包围空腔。识别活动的所述模式可以包括:确定具有与响应于所述输入的其他活动可区分的复杂度的活动的特定时间;以及基于具有所述可区分的复杂度的所述活动的所述特定时间来识别所述模式。所述方法可以包括:接收将定制所述安全数据到所述网络中的输入的特性特征化的数据;以及根据所述数据定制明文到所述网络中的输入。所述数据可以将所述明文的位将被注入到的突触和节点特征化,或将所述明文的位将被注入的顺序特征化。所述方法可以包括例如通过创建或移除所述网络中的节点或链接或通过改变所述网络中的节点或链接的一个或多个属性来定制所述网络对所述安全数据的输入的响应。
9.在一些实现中,一种非暂时性计算机可读存储介质可以具有存储在其上的指令,当由一个或多个处理器执行时,所述指令导致所述一个或多个处理器执行上文所描述的同态加密方法中的任何一个。
10.在一些实现中,一种同态加密设备可以被配置为执行上文所描述的同态加密方法中的任何一个。
11.在附图和下文的描述中阐述了一个或多个实施方案的细节。根据说明书、附图和权利要求书,其他特征、目标和优点将是明显的。
附图说明
12.图1是用于数据同态加密的过程的示意性表示。
13.图2和图3是可以在循环人工神经网络中被识别并且读取的活动的模式的表示。
14.图4是具有可区分的复杂度的活动模式的特定时间的确定的示意性表示。
具体实施方式
15.图1是用于数据同态加密的过程100的示意性表示。过程100可以由一个或多个计算设备自主地或在人的操作监督下执行。
16.在过程100中,数据的集合已经被存储在一个或多个数据存储设备105中。如所例示的,存储的数据可以包括例如图像数据、视频数据、文本数据、音频数据、和/或结构化或非结构化数据库数据。在一些情况下,数据存储设备105可以形成公司或其他实体的数据中心。拥有存储在数据存储设备105上的数据的一个实体或多个实体可能出于一个或多个原因希望限制其他人对该数据的访问。例如,存储的数据可以包括商业秘密或对所有者具有商业重要性的其他数据。作为另一个示例,对数据的访问可能受法律监管,诸如当存储的数据是非匿名医疗数据时。
17.存储在存储设备105处的数据可以被注入到人工循环神经网络110中。人工神经网
络是受生物神经元网络的结构和功能方面启发但以硬件、以软件或以其组合实施的设备。特别地,人工神经网络使用被称为节点的互连构造的系统来模拟生物神经元网络的信息编码和其他处理能力。人工神经网络中的节点之间的连接的布置和强度决定了通过人工神经网络的信息处理或信息存储的结果。
18.可以训练神经网络以在网络中产生期望的信号流并且实现期望的信息处理或信息存储结果。通常,训练神经网络将在学习阶段期间改变节点之间的连接的布置和/或强度。当神经网络对于给定的输入集实现足够适当的处理结果时,可以认为该神经网络是训练过的。
19.人工神经网络可以被用在各种各样的不同的设备中以执行非线性数据处理和分析。非线性数据处理不满足叠加原理(superposition principle),即,待被确定的变量不能够被写为独立分量的线性总和。
20.在循环人工神经网络中,节点之间的连接沿着一时间序列形成有向图表,并且网络表现出时间动态行为。
21.存储在存储设备105处的数据可以各种各样的不同方式输入到循环人工神经网络110中。通常,用户可以能够唯一地指定存储在存储设备105处的数据被注入到特定网络中的方式,以提供一定程度的安全性,防止不期望的访问。例如,循环人工神经网络110不需要被约束为在明确定义的输入层上接收输入。相反,在一些实现中,用户可以指定存储在存储设备105处的数据将被注入到分布在整个网络110中的特定节点或链接中。作为另一个示例,循环人工神经网络110不需要被约束为以已知的、先前定义的方式接收输入(例如,总是将第一位(bit)注入到第一节点中,将第二位注入到第二节点中,
……
等)。相反,用户可以指定存储在存储设备105处的数据中的某些位将被注入到突触中而不是神经元中,注入的顺序不需要遵循位出现的顺序,或这些和其他参数的组合。
22.在一些实现中,存储在存储设备105处的数据可以被输入到循环人工神经网络110中,该循环人工神经网络是已经使用定制网络110对输入的响应的一个或多个设置115进行了定制的。这些设置可以例如创建或移除网络110内的节点或链接和/或改变网络110内的各个节点或链接的属性。例如,所述设置可以改变网络110内的链接的强度和/或方向性。作为另一个示例,所述设置可以改变根据整合激发(integrate

and

fire)模型操作的节点中的信号积累或激发阈值。这些改变的性质能够足以以对例如可能可以访问网络110但不可以访问设置115的其他方隐藏的方式定制网络110对输入的响应性。这样,设置115可以被视为“私有秘钥”,该“私有秘钥”——与网络110的未改变的属性一起——确定对存储在存储设备105处的数据进行编码。出于说教的目的,设置115在图1中示意性地表示为钥匙。
23.响应于存储在存储设备105处的数据的输入,循环人工神经网络110以活动的模式进行响应。在此活动中出现的拓扑模式可以被“读取”为神经拓扑代码120。更详细地,神经拓扑代码120可以表示对应于当神经网络被提供给定的输入时在神经网络中出现的活动的模式的拓扑特征。换句话说,神经网络可以被表示为图表。图表是一组节点和这些节点之间的一组边。节点可以对应于例如神经网络中的人工神经元。边可以对应于节点之间的某种关系。关系的示例包括例如结构连接或沿着该连接的活动。在神经网络的场景中,人工神经元可以通过神经元之间的结构连接或通过信息沿着结构连接的传输来关联。因此,边可以将在定义的时间帧内发生的相对短暂的“活动”特性特征化。
24.神经拓扑代码120可以使用一系列二进制位来表示活动中的拓扑特征的存在或不存在。其存在或不存在由神经拓扑代码120中的位指示的特征可以是例如一个节点、一组节点、多组节点的一个集合、一组边、多组边的一个集合和/或附加的分层更复杂的特征(例如,多个多组节点的集合的一个集合)中的活动。神经拓扑代码120中的位通常表示在不同的分层水平的特征的存在或不存在。例如,第一位可以表示一组五个节点处活动的存在或不存在,而第二位可以表示一组八个节点处活动的存在或不存在。在一些实现中,位可以表示在表示活动的图表中活动的多维单纯形模式的存在或不存在。
25.在一些实现中,神经拓扑代码120的格式可以由用户定制。例如,位的顺序可以由用户选择。
26.在一些实现中,神经拓扑代码120中的位可以表示关于图表中的特征的信息,而不仅仅是那些特征的存在或不存在。例如,位可以表示特征不仅存在而且还具有阈值水平的某一特性的特征。例如,位不仅可以表示在一组边中存在活动的单纯形模式,而且可以表示此活动在活动的阈值水平以上或以下。
27.在简化的意义(reductive sense)上,来自存储设备105的、被输入到神经网络110中的数据是纯文本,并且响应神经拓扑代码120同态地加密该明文。
28.神经拓扑代码120可以被存储在一个或多个数据存储设备125中。通常,数据存储设备125不同于数据存储设备105。例如,数据存储设备125可以是除了拥有存储在数据存储设备105上的数据的一个或多个实体之外的各方都可访问的云数据存储或纵向数据库。此可访问性在该图中由数据存储设备125上的解锁标志示意性指示。
29.具有访问权的实体可以访问存储在数据存储设备125上的数据以执行一个或多个数据分析130、135、140。对神经拓扑代码120的数据分析130、135、140的结果可以产生以下结果,所述结果当被解密时与对存储在数据存储设备125上的相应的数据执行的类似操作的结果匹配。合适的数据分析的示例包括线性和非线性统计分析,以及深度学习和其他基于ai的技术。无需向实体提供对存储在数据存储设备125上的数据的不受限制的访问即可实现这些结果。
30.图2是可以被识别和“读取”以从神经网络100(图1)生成神经拓扑代码120的活动的模式400的表示。
31.模式400是循环人工神经网络中的活动的表示。为了读取模式400,将功能图表(functional graph)视为以节点作为点的拓扑空间。与模式400相称的节点和链接中的活动可以被识别为有序的,不管参加该活动的特定的节点和/或链接的身份。在所例示的实现中,模式400全都是有向团或有向单纯形。在这样的模式中,活动起源于将信号传输到模式中的每个其他节点的源节点。在模式400中,这样的源节点被指定为点0,而其他节点被指定为点1、2、
……
。此外,在有向团或单纯形中,节点中的一个充当汇聚器(sink)并且接收从模式中的每个其他节点传输的信号。在模式400中,这样的汇聚节点被指定为模式中的最高编号的点。例如,在模式405中,汇聚节点被指定为点2。在模式410中,汇聚节点被指定为点3。在模式415中,汇聚节点被指定为点3,以此类推。因此,由模式400表示的活动以可区分的方式排序。
32.模式400中的每个具有不同数目的点并且反映不同数目的节点中的有序活动。例如,模式405是二维单纯形并且反映三个节点中的活动,模式410是三维单纯形并且反映四
个节点中的活动,以此类推。随着模式中的点的数目增加,活动的排序程度和复杂度也增加。例如,对于在窗内具有一定程度的随机活动的节点的大集合,活动中的一些可能出于偶然与模式405相称。然而,随机活动将逐步地越来越不可能与模式410、415、420
……
中的相应的模式相称。与模式430相称的活动的存在因此和与模式405相称的活动的存在相比指示活动中的相对较高的排序程度和复杂度。
33.可以为活动的复杂度的不同确定定义不同持续时间的窗。例如,当要识别与模式430相称的活动时,与当要识别与模式405相称的活动时相比,可以使用更长持续时间的窗。
34.图3是可以被识别和“读取”以从神经网络100(图1)生成神经拓扑代码120的活动的模式500的表示。
35.模式500是具有相同维度(即,具有相同数目的点)的有向团或有向单纯形的组,其定义了涉及比单独的团或单纯形更多的点的模式并且在有向单纯形的组内包围空腔。
36.通过示例的方式,模式505包括一起定义了级别2的同调类(homology class)的六个不同的三点、二维模式405,而模式510包括一起定义了级别2的第二同调类的八个不同的三点、二维模式405。模式505、510中的三点、二维模式405中的每个可以被认为包围相应的空腔。与有向图表相关联的第n个betti数提供拓扑表示中的这样的同调类的计数。
37.由诸如模式500的模式表示的活动表示了不太可能通过随机偶然出现的网络中的活动的相对高的排序程度。模式500可以被用来将该活动的复杂度特征化。
38.在一些实现中,识别活动的仅一些模式和/或在决策时刻的识别期间丢弃或以其他方式忽略识别的活动的模式的某部分。例如,参考图2,与五点、四维单纯形模式415相称的活动固有地包括与四点、三维和三点、二维单纯形模式410、405相称的活动。例如,图4的四维单纯形模式415中的点0、2、3、4和点1、2、3、4都与三维单纯形模式410相称。在一些实现中,包含较少点——并且因此具有较低维度——的模式可以在决策时刻的识别期间被丢弃或以其他方式忽略。
39.作为另一个示例,需要识别活动的仅一些模式。例如,在一些实现中,仅具有奇数的点(3、5、7、
……
)或偶数的维度(2、4、6、
……
)的模式被识别。
40.图4是具有可区分的复杂度的活动模式的特定时间的确定的示意图。图4中表示的确定可以作为活动的模式的识别或“读取”的一部分而被执行,以从神经网络110(图1)生成神经拓扑代码120。
41.图4包括图表605和图表610。图表605表示了作为沿着x轴的时间的函数的模式的发生。特别地,各个发生被示意性地表示为竖直线606、607、608、609。每一行的发生可以是活动匹配相应的模式或模式的类的实例。例如,顶行的发生可以是活动匹配模式405(图2)的实例,第二行的发生可以是活动匹配模式410(图2)的实例,第三行的发生可以是活动匹配模式415(图2)的实例,以此类推。
42.图表605还包括示意性地描绘不同的、在活动模式具有可区分的复杂度时的时间窗的虚线矩形615、620、625。如所示出的,在由虚线矩形615、620、625描绘的窗期间,循环人工神经网络中的活动匹配指示复杂度的模式的可能性比在那些窗外部更高。
43.图表610表示了与作为沿着x轴的时间的函数的这些发生相关联的复杂度。图表610包括:复杂度的第一峰630,其与由虚线矩形615描绘的窗一致;以及复杂度的第二峰635,其与由虚线矩形620、625描绘的窗一致。如所示出的,由峰630、625表示的复杂度是与
可以被认为是复杂度的基线水平640的复杂度可区分的。
44.在一些实现中,循环人工神经网络的输出将被读取的时间与具有可区分的复杂度的活动模式的发生一致。例如,在图4的例示性场景中,可以在峰630、625处,即,在由虚线矩形615、620、625描绘的窗期间,读取循环人工神经网络的输出。
45.在一些实现中,通过具有可区分的复杂度的活动模式,不仅给出循环人工神经网络的输出的特定时间,而且给出循环人工神经网络的输出的内容。特别地,参加与活动模式相称的活动的节点的身份和活动可以被认为是循环人工神经网络的输出。因此,所识别的活动模式可以表示通过神经网络处理的结果,以及将读取此决策的特定时间。
46.决策的内容可以各种各样的不同的形式表达。例如,在一些实现中,决策的内容可以被表达为1和0的二进制向量,其中每个数字指示:对于预定义的节点组,相应的模式是活跃的还是不活跃的。在这样的实现中,决策的内容以二进制表达并且可以与传统的数字数据处理基础设施兼容。
47.本说明书中所描述的操作和主题的实施方案可以数字电子电路实现,或以计算机软件、固件或硬件——包括本说明书中所公开的结构以及其结构等同物——实现,或以它们中的一个或多个的组合实现。本说明书中所描述的主题的实施方案可以被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,所述一个或多个计算机程序被编码在计算机存储介质上以用于由数据处理装置执行或以控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电信号、光信号或电磁信号)上,所述传播信号被生成以编码信息以用于传输到合适的接收器装置以用于由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合或被包括在其中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是被编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理部件或介质(例如,多个cd、盘(disk)或其他存储设备)或被包括在其中。
48.本说明书中所描述的操作可以被实现为数据处理装置对存储在一个或多个计算机可读存储设备上的或从其他源接收的数据执行的操作。
49.术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,通过示例的方式包括可编程处理器、计算机、片上系统或前述中的多个或前述的组合。该装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
50.计算机程序(也被称为程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言——包括编译或解释语言、声明性或过程性语言——编写,并且它可以任何形式被部署,包括作为独立的程序或作为模块、部件、子程序、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的
文件)中。计算机程序可以被部署以在一个计算机上被执行或在位于一个站点或分布在多个站点并且通过通信网络互连的多个计算机上被执行。
51.本说明书中所描述的过程和逻辑流可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据操作并且生成输出来执行动作。过程和逻辑流也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可以被实现为专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。
52.适合于执行计算机程序的处理器通过示例的方式包括通用和专用微处理器二者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或被操作性地耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据,或将数据传送到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或二者。然而,计算机不需要具有这样的设备。此外,计算机可以被嵌入在另一个设备(例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制器、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪盘驱动器)中,仅举几例)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;和cd

rom和dvd

rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
53.为了提供与用户的交互,本文所描述的主题的实施方案可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)和用户可以向计算机提供输入所通过的键盘和定点设备(例如,鼠标或追踪球)的计算机上实现。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而向用户的客户端设备上的网络浏览器发送网页。
54.虽然本说明书包含许多具体实现细节,但是这些细节不应被解释为对任何发明或可能要求保护的内容的范围的限制,而是应被理解为对特定于特定发明的特定实施方案的特征的描述。在本说明书中在单独的实施方案的场景中描述的某些特征也可以在单个实施方案中组合实现。相反地,在单个实施方案的场景中描述的多个特征也可以在多个实施方案中单独地或以任何合适的子组合实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至这样最初要求保护,但是在一些情况下可以从组合删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
55.类似地,虽然在附图中以特定顺序描述了操作,但是这不应被理解为要求以所示出的特定顺序或以连续顺序执行这样的操作,或要求执行所有所例示的操作以获得期望的结果。在一些情况下,多任务和并行处理可能是有利的。此外,上文所描述的实施方案中的
多种系统部件的分离不应被理解为在所有实施方案中都要求这样的分离,并且应理解,所描述的程序部件和系统通常可以在单个软件产品中集成在一起或被打包成多个软件产品。
56.因此,已经描述了主题的特定实现。其他实现在随附的权利要求书的范围内。在某些情况下,权利要求书中所记载的动作可以不同的顺序执行,并且仍然可以获得期望的结果。另外,在附图中所描绘的过程不必需要所示出的特定顺序或连续顺序来获得期望的结果。在某些实现中,多任务和并行处理可能是有利的。
57.已经描述了多个实现。然而,可以做出各种修改。因此,其他实现在随附的权利要求书的范围内。
再多了解一些

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

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

相关文献