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

密文处理方法以及装置与流程

2022-11-16 07:17:25 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,特别涉及一种密文处理方法。


背景技术:

2.随着信息技术的发展,数据已经融入了社会生活的方方面面,同时社会生活中产生的各种数据也在推动着社会和经济的发展。然而在数据共享和数据应用过程中,出现对数据安全保护不足的情况,导致数据泄露的事故频发,为了有效应对数据泄露问题,对数据的隐私计算技术逐渐兴起。
3.在密文处理领域,通常是直接对初始密文数据依次进行处理,导致对密文数据的处理效率较低,因此,亟需一种高效的密文处理方法。


技术实现要素:

4.有鉴于此,本说明书实施例提供了一种密文处理方法。本说明书一个或者多个实施例同时涉及一种密文处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种密文处理方法,包括:获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
6.根据本说明书实施例的第二方面,提供了一种密文处理装置,包括:获取模块,被配置为获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;存储模块,被配置为按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;提取模块,被配置为在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;并行处理模块,被配置为利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
7.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
8.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述密文处理方法的步骤。
9.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述密文处理方法的步骤。
10.本说明书一个实施例获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
附图说明
11.图1是本说明书一个实施例提供的一种密文处理系统架构下的交互流程示意图;图2是本说明书一个实施例提供的一种密文处理方法的流程图;图3是本说明书一个实施例提供的一种密文处理方法的处理过程流程图;图4是本说明书一个实施例提供的一种密文处理装置的结构示意图;图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
12.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
13.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地
表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
14.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
15.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
16.同态加密(he,homomorphic encryption):一类对密文的操作等同于对其对应明文的操作的加密算法。比如,该算法的使用者可以将两个密文相加/相乘得到一个新的密文,解密该密文得到的明文就是之前两个密文所对应明文相加/相乘的结果。目前,学术界已经研制出了一系列实用的同态加密算法,如著名的 brakerski-fan-vercauteren (bfv)和brakerski-gentry-vaikuntanathan(bgv)算法。工业界也在通过开源、标准化等方式积极推进这些算法的使用,一部分开源项目均提供了高效、实用的同态加密算法实现,开发者可以通过调用这些开源实现在自己的应用中方便的集成同态加密的功能。
17.容错学习(lwe,learning with errors):是一个机器学习领域中的怀疑难解问题。利用lwe问题的难解性,可以构造出同态加密方案lwe-he。lwe-he方案的加密对象是一个整数m。私钥是一个n维向量。加密后的密文由两部分组成,第一部分是一个整数,第二部分是一个n维向量;这两部分分别记作(整数)和。解密过程为,其中《,》代表向量内积操作。
18.环上容错学习(rlwe,ring learning with error):rlwe问题是lwe问题的变体,两者之间的描述相似,不同之处在于rlwe问题的参数均取自特定环上。比如,在同态加密方面,和lwe-he方案相比,rlwe-he一次能同时处理n个整数,产生一个rlwe密文,相比于使用lwe-he加密n个整数,使用rlwe-he能够节省大量带宽。rlwe-he方案的加密对象是能够进行运算的多项式,多项式的维数为n,它的每个系数都是一个整数,形如:。私钥也是一个多项式sk。加密后的密文ct包含两个多项式,分别记作(多项式)和。解密过程为。
19.将rlwe-he密文抽取为lwe-he密文:通常,将rlwe-he密文抽取为lwe-he密文,可以是通过变换,将加密的rlwe-he密文ct转换成其中某个系数的lwe密文。具体转换过程如下:将的第i个系数设定为。将中的系数重新排列成n维向量:,此时,
是的合法lwe-he密文,解密这个密文所使用的私钥就是rlwe-he私钥sk的系数按次序组合成的向量。
20.高级矢量扩展(avx,advanced vector extension)指令集:是一种将数据从128位扩展至256位甚至512位的新指令集,可以支持单指令多数据。
21.中央处理器(cpu,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。cpu自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
22.单指令多数据(simd,single instruction multiple data):cpu能够通过一条指令并行的计算多组数据的指令集特征,目前的主流 cpu 厂商均提供了支持这一特征的指令集,比如avx2指令集(支持256位数据)、avx512指令集(支持512位数据)等。更具体的,simd 要求调用者预先将多组数据并行的置于一个simd寄存器中,然后通过操作该寄存器的指令并行的处理这些数据。
23.目前,许多隐私计算相关产品都需要通过使用同态加密技术保护用户隐私,在一些使用场景下需要将rlwe-he密文的某些信息作为lwe-he密文抽取出来并进行处理,这些信息的位置(即 lwe-he密文在rlwe-he密文中的位置)是随机的。如果直接使用一般的编程技术,提取并处理这些密文占据了大量时间,拖慢了隐私计算产品的工作效率。
24.进一步,除了使用编程技术直接进行处理外,一种直观的方法是使用simd指令进行处理,将的合法lwe-he密文,中的抽取到一个或多个simd寄存器中进行并行处理。但是这种方法需要将存储于内存中的rlwe-he密文按照顺序移动到simd寄存器中,根据simd指令集的描述,这种操作的前提是被移动数据在内存中的起始地址是一个特定数字的整数倍(比如,avx2指令集中,这个地址是需要是256的整数倍)。在rlwe-he密文中,多项式的每个系数可近似看作按照下面的布局,依次序排列在内存中: rlwe-he密文的布局:;但是,当需要将其抽取的lwe-he密文放入simd寄存器时,需要得到的多项式系数顺序如下:需要抽取的lwe-he密文的布局:;问题在于,所在内存起始位置不一定是上面描述的simd指令集要求的特定数字的整数倍,因此利用当前方式使用simd指令会导致错误,即simd指令无法使用。
25.为了解决上述问题,本说明书实施例通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密
文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
26.在本说明书中,提供了一种密文处理方法,本说明书同时涉及一种密文处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
27.参见图1,图1示出了根据本说明书一个实施例提供的一种密文处理系统架构下的交互流程示意图,如图1所示,该系统包括服务端0101和客户端0102。
28.客户端0102:用于向服务端0101发送多个待加密数据;服务端0101:用于获取由多个待加密数据进行加密获得目标密文,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
29.基于用户通过客户端0102需要保护待加密数据的隐私,则服务端0101获取由多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
30.一种可能的实现方式中,可以是基于用户需要,由客户端0102发起,服务端0101基于获取到待加密数据进行加密得到的目标密文进行提取处理,将处理结果返回客户端0102;另一种可能的实现方式中,可以是在用户需要对多个待加密数据进行加密,但在一些场景下需要将密文的某些信息抽取出来并进行处理(比如,对n个待加密数据进行rlwe-he,得到密文,密文中包含有n维多项式,从密文的n维多项式中提取多个待加密数据的密文,进行并行处理),处理结果无需返回客户端0102,由服务端0101进行处理即可。
31.具体地,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项
式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
32.参见图2,图2示出了根据本说明书一个实施例提供的一种密文处理方法的流程图,具体包括以下步骤。
33.步骤202:获取目标密文,其中,所述目标密文为对多个待加密数据进行加密得到,所述目标密文包括密文多项式。
34.具体地,待加密数据是指需要进行加密的数据,比如,用户需要传输多个数据,将该多个数据作为多个待加密数据,进行加密,传输加密后的密文。密文多项式是指对待加密数据进行加密得到的密文,该密文的形式是多项式,比如,根据多个待加密数据构建得到待加密多项式,对该待加密多项式进行加密,得到的密文是多项式,可称得到的密文为密文多项式。
35.对多个待加密数据进行加密,得到包括密文多项式的目标密文,后续可基于加密的目标密文进行存入、提取、再存入的方式获得多个待加密数据的加密密文,用于对多个待加密数据的加密密文进行并行处理。
36.对多个待加密数据进行加密,得到的密文的形式是多项式的形式,也即,通过对多个待加密数据进行加密,得到多项式形式的密文的加密方式均可作为步骤202中的加密方式,比如,环上容错学习加密方式。
37.可选地,获取目标密文的具体实现方式为接收客户端发送的多个待加密数据,将多个待加密数据构建得到待加密多项式,对待加密多项式进行加密,即可获得包括密文多项式的目标密文。
38.对多个待加密数据进行加密得到的是包含两个多项式的密文。
39.本说明书一种可选的实施例中,在获取目标密文之前可以是,先获取多个待加密数据,构建待加密多项式,并对待加密多项式进行环上容错学习同态加密,得到目标密文,即在上述步骤202之前,还包括如下具体步骤:获取多个待加密数据;基于所述多个待加密数据,构建待加密多项式,其中,所述多个待加密数据为所述待加密多项式的各项系数;对所述待加密多项式进行环上容错学习同态加密,得到目标密文。
40.具体地,待加密多项式由多个待加密数据构建得到,比如,待加密数据为,则依据该多个待加密数据进行多项式的构建,得到待加密多项式为:。
41.当待加密数据为多个整数时,可利用rlwe-he对多个待加密数据进行同态加密,同态加密的方式是需要,先将多个待加密数据进行处理,构建得到待加密多项式,之后对该待加密多项式进行环上容错学习同态加密,得到密文,该密文包括两个多项式:和,其中,基于对一个待加密数据进行lwe-he,得到的是一个整数和一个向量,故将对多个待加密数据进行rlwe-he得到的作为目标密文。
42.应用本说明书实施例的方案,通过预先获取多个待加密数据,并基于多个待加密数据构建得到待加密多项式,并对待加密多项式进行环上容错学习同态加密得到包括密文多项式的目标密文,使得得到的目标密文是利用rlwe-he对多个待加密数据进行加密得到的,以便于后续可基于目标密文对多个待加密数据对应的目标密文系数向量进行并行处理,进一步提高后续对密文进行并行处理的速度。
43.步骤204:按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处,其中,所述各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到。
44.具体地,存储规则是指将数据存储进预设内存段所需要依据的规则,也即需要按照存储规则,将数据存储入预设内存段,存储规则用于将各系数按照预设的顺序存储至指定位置处,预设的顺序由各待加密数据的顺序所确定,比如,存储规则可以是按照对密文多项式进行指定运算(比如,取余运算)后确定出密文多项式中的系数符号的变化情况,将密文多项式中的各系数进行存储;存储规则还可以是预先为各内存段中的各位置以及密文多项式的系数进行编号,按照对应的编号,将密文多项式中的系数存放至各预设内存段中。指定位置是指将各密文多项式的各系数在预设内存段中的对应位置,比如,内存段0中的第三个位置放置的是目标密文中的第三项系数,则称第三个位置为第三项系数的指定位置。指定内存是指预先指定的一个内存,用于根据simd指令的处理规则(预设位数)进行划分,得到各预设内存段。预设位数是指预先设置的位数,即按照simd指令的处理规则对应的指令集的存储方式设置的,比如,预设位数可以是128、256、512。
45.可选地,simd指令的处理规则根据支持的指令集的特性变化而变化,比如,若是avx2指令集,则要求预设位数为256。
46.可选地,通过将目标密文存入根据预设位数划分得到的各预设内存段,并进行提取,基于simd指令的处理规则,可以对从各内存段中提取得到的数据进行并行处理。
47.本说明书一种可选的实施例中,在按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置之前,可以是预先确定密文多项式中各系数的数据长度,并根据预设位数和各系数的数据长度,确定对指定内存进行分段的内存段个数,并根据密文多项式的系数个数、各系数的数据长度和内存段个数,对指定内存进行划分,得到多个预设内存段,即在步骤204之前,还包括如下具体步骤:确定所述密文多项式中各系数的数据长度;根据预设位数和所述各系数的数据长度,确定对指定内存进行分段划分的内存段
个数;根据所述密文多项式的系数个数、所述各系数的数据长度以及所述内存段个数,将所述指定内存划分为多个预设内存段。
48.具体地,系数的数据长度是指系数在内存中所占的内存大小,通常是64。
49.确定密文多项式中各系数的数据长度具体是对各系数的数据长度进行测试,获得各系数的数据长度。
50.可选地,根据预设位数和各系数的数据长度,确定对指定内存进行分段划分的内存段个数可以是利用预设位数除以各系数的数据长度得到,比如,预设位数为256、各系数的数据长度为64,则确定预设内存段的个数为4;预设位数为512、各系数的数据长度为64,则确定预设内存段的个数为8。
51.可选地,根据密文多项式的系数个数、各系数的数据长度和内存段个数,将指定内存划分为多个预设内存段,可以是利用密文多项式的系数个数和各系数的数据长度限制各预设内存段的长度,比如,密文多项式的系数个数为n,各系数的数据长度为64,若预设内存段的个数为4个,则分别在指定内存中划分四段起始位置是256的整数倍,且内存段的大小依次为(2n-1)64位、(2n-2)64位、(2n-3)64位和(2n-4)64位。
52.应用本说明书实施例的方案,通过确定出来的密文多项式中各系数的数据长度预设位数,确定需要划分的内存段的个数,并根据密文多项式的系数个数和各系数的数据长度确定各内存段的内存大小,然后根据内存段个数将指定内存划分为多个内存段,内存段的个数与使得划分出来的多个预设内存段的内存大小和预设内存段的个数,既符合simd指令的处理规则,又可以将密文多项式的各系数进行存入的存储规则,使得后续对目标密文的提取和处理的效率提高了。
53.本说明书一种可选的实施例中,可以是确定密文多项式进行指定运算前后符号无变化的第一系数和符号无变化的第二系数,按照各预设内存段中对于符号有变化和无变化的系数存储规则,将各所述第一系数和第二系数分别存入各预设内存段的指定位置处,即步骤204包括如下具体步骤:确定对所述密文多项式进行指定运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负;按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各所述第一系数和各所述第二系数分别存入所述各预设内存段的指定位置处。
54.具体地,指定运算是基于加密得到的密文数据存储至各预设内存段中时,是需要密文多项式是可以被整除的,故采用取余运算等指定运算的方式进行处理,确定出无变化的第一系数和有变化的第二系数。系数存储规则是指将系数存储至各预设内存段时的存储规则,比如,对密文多项式进行指定运算(比如,取余运算)确定出的符号无变化的第一系数和符号有变化的第二系数,进行存储入各预设内存段中。
55.可选地,确定对密文多项式进行指定运算前后符号无变化的第一系数和符号有变化的第二系数,可以是对多项式进行取余,生成前后符号无变化的系数和符号有变化的系数,比如,在对对应的rlwe-he密文解密过程中,的第i项包括两部分:在前后无变化的系数,也就是。在
之后会改变符号的系数,也就是。
56.示例性地,确定划分的内存段为:内存段0:内存段1:内存段2:内存段3:上述内存段中,内存段0的内存大小为(2n-1)64;内存段1的内存大小为(2n-2)64;内存段2的内存大小为(2n-3)64;内存段3的内存大小为(2n-4)64。是指密文多项式中的第i个系数。
57.应用本说明书实施例的方案,通过对密文多项式进行指定运算确定出符号无变化的第一系数和符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负,按照各预设内存段中的系数存储规则,将各第一系数和第二系数分别存入各预设内存段中的指定位置处,使得各预设内存段中的系数存储规则是依据密文多项式,提取多项式中某一系数的密文的方式确定的,提高了后续从各预设内存段中提取密文多项式系数的效率,进一步提高了并行处理的效率。
58.步骤206:在接收到密文处理指令的情况下,从所述各预设内存段中提取所述密文多项式的各系数,组成目标密文系数向量,并将所述目标密文系数向量读入预设寄存器。
59.具体地,密文处理指令为指示对密文进行并行处理的指令,比如,在需要对明文进行处理时,通过对加密获得的密文,根据密文处理指令进行处理,得到处理后的密文。目标密文系数向量是指由目标密文系数组成的一个有序数值。预设寄存器是指预先设置的寄存器,比如,可以是simd寄存器。
60.密文处理指令具体是针对多个待加密数据的密文处理指令。
61.可选地,在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,可以是先确定目标内存段,然后再确定从目标内存段中提取的数据为哪部分,提取的是多少个数据。
62.可选地,组成目标密文系数向量可以是将从各预设内存段中提取的密文多项式的各系数,按照存在各预设内存段中的顺序进行组合,组成一个由有序的数值构成的向量,即目标密文系数向量。
63.本说明书一种可选的实施例中,可以是针对任一待加密数据,确定存储该待加密数据对应的目标系数的目标内存段,从目标内存段中提取第一待加密数据对应的多个目标系数,根据多个目标系数组成该待加密数据对应的目标密文系数向量,即步骤206包括如下具体步骤:针对第一待加密数据,确定存储所述第一待加密数据对应的目标系数的目标内存段,其中,所述第一待加密数据为任一待加密数据;从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数;根据多个所述目标系数,组成所述第一待加密数据对应的目标密文系数向量。
64.具体地,第一待加密数据是指多个待加密数据中的任一个。
65.密文处理指令具体是针对多个待加密数据的密文处理指令,第一待加密数据为多个待加密数据中的任一个,通过遍历多个待加密数据,从目标内存段中提取对应的多个目标系数。
66.可选地,在对第一待加密数据进行密文提取可以是,确定第一待加密数据多对应的目标内存段,基于目标内存段确定所需要提取的多个密文多项式系数,作为目标密文系数,将目标密文系数组成一个有序数值得到目标密文系数向量。
67.可选地,目标密文系数向量的维数受lwe-he密文的限制,维数为n维,即目标密文的数量为n个。
68.可选地,从目标内存段中提取第一待加密数据对应的多个目标系数可以是:各预设内存段中的位置是大于n的,则需要预先确定针对第一待加密数据对应的多个目标系数的位置,从确定的多个位置处提取与多个位置对应的多个系数作为目标系数。
69.应用本说明书实施例的方案,通过确定存储第一待加密数据对应的目标系数的目标内存段,从目标内存段中提取第一待加密数据对应的多个目标系数,根据多个目标系数组成第一待加密数据对应的目标密文系数向量,使得针对第一待加密数据,确定目标内存段,提取目标内存段中的多个根据目标系数,组成目标密文系数向量,层层的确定与处理提高了针对第一待加密数据的处理效率。
70.本说明书一种可选的实施例中,可以是根据多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段,即步骤确定存储所述第一待加密数据对应的目标系数的目标内存段,包括如下具体步骤:根据所述多个待加密数据的总数、所述第一待加密数据的预标记序号和所述预设内存段的内存段个数,确定存储所述第一待加密数据对应的目标系数的目标内存段。
71.具体地,预标记序号是指预先对多个待加密数据标记的序号,比如预标记序号可以是i,i 1,i 2等等。
72.可选地,根据多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段可以是多个待加密数据的总数减去第一待加密数据的预标记序号减去1,与预设内存段的内存段个数取余,确定存储第一待加密数据对应的目标系数的目标内存段,比如,多个待加密数据的总数为n,第一待加密数据的预标记序号为i,预设内存段的个数为4,存储第一待加密数据对应的目标系数的目标内存段的序号n=(n-i-1)mod4。
73.可选地,确定存储第一待加密数据对应的目标系数的目标内存段可以是基于密文处理指令,需要确定存储针对第一待加密数据的目标内存段,从目标内存段中提取与第一待加密数据对应的目标系数。
74.应用本说明书实施例的方案,通过多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段,利用多方面的数据确定出针对第一待加密数据的目标内存段,以便于后续从目标内存段中提取目标系数,提高了对多个目标系数提取的效率,进一步提高了并行处理的效率。
75.本说明书一种可选的实施例中,可以是根据多个待加密数据的总数、目标内存段
的序号和第一待加密数据的预标记序号,确定目标内存段中的提取起始位,即步骤从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数,包括如下具体步骤:根据所述多个待加密数据的总数、所述目标内存段的序号和所述第一待加密数据的预标记序号,确定所述目标内存段中的提取起始位;根据所述多个待加密数据的总数,从所述提取起始位开始,从所述目标内存段中连续提取多个系数,获得所述第一待加密数据对应的多个所述目标系数。
76.具体地,序号是指多个内存段的序号,比如,内存段为4个,则可以为4个内存段标记序号为0、1、2、3。目标内存段的序号是指针对第一待加密数据确定出的目标内存段的序号。提取起始位是指针对第一待加密数据,从目标内存段中提取多个目标系数时第一个目标系数对应的位置。
77.可选地,根据多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定目标内存段中的提取起始位,可以是多个待加密数据的总数减去目标内存段的序号再减去第一待加密数据的预标记序号,得到的结果为在目标内存段中提取起始位的位置对应的排序序号,其中,该排序序号可以是在各预设内存段中按顺序为各存储位置进行排序的序号,比如,多个待加密数据的总数为n,目标内存段的序号为n,第一待加密数据的预标记序号为i,则目标内存段中的提取起始位为n-n-i。
78.内存段n的第n-i-1位置处存储的是第一待加密数据的目标系数,该位置与目标内存段起始地址之间的距离是64(n-n-i-1),由于n满足n=(n-i-1)mod4,因此(n-n-i-1)是可以被4整除的数,第n-i-1位置距离目标内存段的起始地址之间的距离是可以被256(644)整除的数,又目标内存段的起始地址是256的整数倍,因此,第n-i-1位置所在的地址是可以被256整除的,即是一个256位对齐的内存地址。
79.可选地,根据多个待加密数据的总数,从提取起始位开始,从目标内存段中连续提取多个系数,可以是在确定针对第一待加密数据的目标系数对应的提取起始位后,基于多个待加密数据的总数,在目标内存段中,从提取起始位开始对应的多个待加密数据总数个数的连续位置处的目标系数进行提取,得到多个待加密数据的总数个目标系数,比如,多个待加密数据的总数为n,从目标内存段中提取从第n-n-i起连续的n个位置处存储的目标系数。
80.应用本说明书实施例的方案,通过多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定出目标内存段的序号,基于多个待加密数据的总数,从目标内存段中提取出以提取出第一待加密数据对应的连续的多个目标系数,使得确定出来的目标内存段、目标内存段中的提取起始位开始连续的多个目标系数是基于多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号确定出来的,提高了确定的效率,也即提高了提取多个目标系数的效率,进一步提高了后续并行处理的效率。
81.步骤208:利用预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理。
82.具体地,预设寄存器对应的并行处理指令是指预先设置寄存器对应的对多个数据进行并行处理的指令,比如,对目标密文系数向量中的各数据进行并行处理。
83.可选地,并行处理指令可以是对多个数据并行进行加、减、乘、除等等,比如,对目标密文系数向量中的各分量同时除以某一分量,或同时加某一分量等等。
84.可选地,对目标密文系数向量进行并行处理可以通过利用simd进行并行处理,其是需要预先将多组数据并行的置于simd寄存器中,通过操作该预设寄存器对应的并行处理指令对多组数据进行并行处理。
85.本说明书一种可选的实施例中,可以是利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数中的各分量,即步骤208,包括如下具体步骤:利用所述预设寄存器对应的并行处理指令,并行处理所述预设寄存器中存储的多个所述目标密文系数向量中的各分量。
86.具体地,分量是指向量中的各个数据,可以是目标密文系数向量中的各目标系数。
87.可选地,利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量具体是获得多个目标密文系数向量,并行对预设寄存器中存储的多个目标密文系数向量中的各分量进行处理。
88.应用本说明书实施例的方案,通过利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量,提高了对密文进行处理的效率。
89.通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
90.下述结合附图3,以本说明书提供的密文处理方法在利用simd进行并行处理的应用为例,对所述密文处理方法进行进一步说明。其中,图3示出了根据本说明书一个实施例提供的一种密文处理方法的处理过程流程图,具体包括以下步骤。
91.步骤302:获取n个待加密数据:。
92.步骤304:基于n个待加密数据:,构建得到待加密多
项式:。
93.步骤306:对待加密多项式进行环上容错学习同态加密,得到目标密文为ct,其中,ct包括和,。
94.步骤308:确定中各系数的数据长度为64。
95.步骤310:根据预设位数为256和中各系数的数据长度64,确定内存段个数为256/64=4段。
96.步骤312:密文多项式的密文系数个数n、各系数的数据长度64和内存段个数4,划分得到4个内存段:内存段0、内存段1、内存段2、内存段3。
97.内存段0:内存段1:内存段2:内存段3:上述内存段中,内存段0的内存大小为(2n-1)64;内存段1的内存大小为(2n-2)64;内存段2的内存大小为(2n-3)64;内存段3的内存大小为(2n-4)64。是指密文多项式中的第i个系数。
98.步骤314:按照各预设内存段的存储规则,将中各系数分别存入各预设内存段的指定位置处,其中,是指中的第i个系数。
99.步骤316:在接收到密文处理指令的情况下,针对第一待加密数据,根据多个待加密数据的总数n、第一待加密数据的预标记序号i和预设内存段个数4,确定存储对应的目标系数的目标内存段n=(n-i-1)mod4。
100.步骤318:根据多个待加密数据的总数n、目标内存段的序号n和第一待加密数据的预标记序号i,确定目标内存段的提取起始位为n-n-i;提取目标内存段n中,从第n-n-i起连续n各位置对应的目标系数。
101.步骤320:根据提取到的连续的n个目标系数:组成第一待加密数据的目标密文系数向量:。
102.步骤322:利用预设寄存器对应的并行处理指令(除以第一个目标系数),并行处理第一待加密数据的目标密文系数向量。
103.应用本说明书实施例的方案,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各个预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
104.与上述方法实施例相对应,本说明书还提供了密文处理装置实施例,图4示出了根据本说明书一个实施例提供的一种密文处理装置的结构示意图。如图4所示,该装置包括:获取模块402,被配置为获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;存储模块404,被配置为按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;提取模块406,被配置为在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;并行处理模块408,被配置为利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
105.可选地,密文处理装置还包括划分模块,被配置为确定密文多项式中各系数的数据长度;根据预设位数和各系数的数据长度,确定对指定内存进行分段划分的内存段个数;根据密文多项式的系数个数、各系数的数据长度以及内存段个数,将指定内存划分为多个预设内存段。
106.可选地,存储模块404,进一步被配置为确定对密文多项式进行指定运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,符号表示密文多项式中系数的正负;按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各第一系数和各第二系数分别存入各预设内存段的指定位置处。
107.可选地,提取模块406,进一步被配置为针对第一待加密数据,确定存储第一待加密数据对应的目标系数的目标内存段,其中,第一待加密数据为任一待加密数据;从目标内存段中提取第一待加密数据对应的多个目标系数;根据多个目标系数,组成第一待加密数
network)、个域网(pan,personal area network)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,network interface card))中的一个或多个,诸如ieee802.11无线局域网(wlan,wireless local area networks)无线接口、全球微波互联接入(wi-max,world interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)接口,等等。
116.在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
117.计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(pc,personal computer)的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
118.其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
119.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的密文处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
120.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
121.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的密文处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
122.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述密文处理方法的步骤。
123.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的密文处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
124.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
125.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、
电载波信号、电信信号以及软件分发介质等。
126.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
127.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
128.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献