CN115348017B - 密文处理方法以及装置 - Google Patents
密文处理方法以及装置 Download PDFInfo
- Publication number
- CN115348017B CN115348017B CN202211272701.1A CN202211272701A CN115348017B CN 115348017 B CN115348017 B CN 115348017B CN 202211272701 A CN202211272701 A CN 202211272701A CN 115348017 B CN115348017 B CN 115348017B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- target
- coefficient
- preset
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供密文处理方法以及装置,其中所述密文处理方法包括:获取目标密文,其中,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过将密文多项式存入各预设内存段的指定位置处,在接收到密文处理指令的情况下,提取密文多项式的各系数,读入预设寄存器,并利用预设寄存器对应的并行处理指令进行并行处理,提高了对目标密文的处理效率。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种密文处理方法。
背景技术
随着信息技术的发展,数据已经融入了社会生活的方方面面,同时社会生活中产生的各种数据也在推动着社会和经济的发展。然而在数据共享和数据应用过程中,出现对数据安全保护不足的情况,导致数据泄露的事故频发,为了有效应对数据泄露问题,对数据的隐私计算技术逐渐兴起。
在密文处理领域,通常是直接对初始密文数据依次进行处理,导致对密文数据的处理效率较低,因此,亟需一种高效的密文处理方法。
发明内容
有鉴于此,本说明书实施例提供了一种密文处理方法。本说明书一个或者多个实施例同时涉及一种密文处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种密文处理方法,包括:
获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;
按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;
在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;
利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
根据本说明书实施例的第二方面,提供了一种密文处理装置,包括:
获取模块,被配置为获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;
存储模块,被配置为按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;
提取模块,被配置为在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;
并行处理模块,被配置为利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述密文处理方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述密文处理方法的步骤。
本说明书一个实施例获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
附图说明
图1是本说明书一个实施例提供的一种密文处理系统架构下的交互流程示意图;
图2是本说明书一个实施例提供的一种密文处理方法的流程图;
图3是本说明书一个实施例提供的一种密文处理方法的处理过程流程图;
图4是本说明书一个实施例提供的一种密文处理装置的结构示意图;
图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
同态加密(HE,homomorphic encryption):一类对密文的操作等同于对其对应明文的操作的加密算法。比如,该算法的使用者可以将两个密文相加/相乘得到一个新的密文,解密该密文得到的明文就是之前两个密文所对应明文相加/相乘的结果。目前,学术界已经研制出了一系列实用的同态加密算法,如著名的 Brakerski-Fan-Vercauteren (BFV)和Brakerski-Gentry-Vaikuntanathan(BGV)算法。工业界也在通过开源、标准化等方式积极推进这些算法的使用,一部分开源项目均提供了高效、实用的同态加密算法实现,开发者可以通过调用这些开源实现在自己的应用中方便的集成同态加密的功能。
容错学习(LWE,Learning With Errors):是一个机器学习领域中的怀疑难解问题。利用LWE问题的难解性,可以构造出同态加密方案LWE-HE。LWE-HE方案的加密对象是一个整数m。私钥是一个N维向量。加密后的密文由两部分组成,第一部分是一个整数,第二部分是一个N维向量;这两部分分别记作(整数)和。解密过程为,其中<,>代表向量内积操作。
环上容错学习(RLWE,Ring Learning with Error):RLWE问题是LWE问题的变体,两者之间的描述相似,不同之处在于RLWE问题的参数均取自特定环上。比如,在同态加密方面,和LWE-HE方案相比,RLWE-HE一次能同时处理N个整数,产生一个RLWE密文,相比于使用LWE-HE加密N个整数,使用RLWE-HE能够节省大量带宽。RLWE-HE方案的加密对象是能够进行运算的多项式,多项式的维数为N,它的每个系数都是一个整数,形如:。私钥也是一个多项式sk。加密后的密文ct包含两个多项式,分别记作(多项式)和。解密过程为。
将RLWE-HE密文抽取为LWE-HE密文:通常,将RLWE-HE密文抽取为LWE-HE密文,可以是通过变换,将加密的RLWE-HE密文ct转换成其中某个系数的LWE密文。具体转换过程如下:将的第i个系数设定为。将中的系数重新排列成N维向量:,此时,是的合法LWE-HE密文,解密这个密文所使用的私钥就是RLWE-HE私钥sk的系数按次序组合成的向量。
高级矢量扩展(AVX,Advanced Vector Extension)指令集:是一种将数据从128位扩展至256位甚至512位的新指令集,可以支持单指令多数据。
中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
单指令多数据(SIMD,Single Instruction Multiple Data):CPU能够通过一条指令并行的计算多组数据的指令集特征,目前的主流 CPU 厂商均提供了支持这一特征的指令集,比如AVX2指令集(支持256位数据)、AVX512指令集(支持512位数据)等。更具体的,SIMD 要求调用者预先将多组数据并行的置于一个SIMD寄存器中,然后通过操作该寄存器的指令并行的处理这些数据。
目前,许多隐私计算相关产品都需要通过使用同态加密技术保护用户隐私,在一些使用场景下需要将RLWE-HE密文的某些信息作为LWE-HE密文抽取出来并进行处理,这些信息的位置(即 LWE-HE密文在RLWE-HE密文中的位置)是随机的。如果直接使用一般的编程技术,提取并处理这些密文占据了大量时间,拖慢了隐私计算产品的工作效率。
进一步,除了使用编程技术直接进行处理外,一种直观的方法是使用SIMD指令进行处理,将的合法LWE-HE密文,中的抽取到一个或多个SIMD寄存器中进行并行处理。但是这种方法需要将存储于内存中的RLWE-HE密文按照顺序移动到SIMD寄存器中,根据SIMD指令集的描述,这种操作的前提是被移动数据在内存中的起始地址是一个特定数字的整数倍(比如,AVX2指令集中,这个地址是需要是256的整数倍)。在RLWE-HE密文中,多项式的每个系数可近似看作按照下面的布局,依次序排列在内存中:RLWE-HE密文的布局:;但是,当需要将其抽取的LWE-HE密文放入SIMD寄存器时,需要得到的多项式系数顺序如下:需要抽取的LWE-HE密文的布局:
为了解决上述问题,本说明书实施例通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
在本说明书中,提供了一种密文处理方法,本说明书同时涉及一种密文处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种密文处理系统架构下的交互流程示意图,如图1所示,该系统包括服务端0101和客户端0102。
客户端0102:用于向服务端0101发送多个待加密数据;
服务端0101:用于获取由多个待加密数据进行加密获得目标密文,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
基于用户通过客户端0102需要保护待加密数据的隐私,则服务端0101获取由多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
一种可能的实现方式中,可以是基于用户需要,由客户端0102发起,服务端0101基于获取到待加密数据进行加密得到的目标密文进行提取处理,将处理结果返回客户端0102;另一种可能的实现方式中,可以是在用户需要对多个待加密数据进行加密,但在一些场景下需要将密文的某些信息抽取出来并进行处理(比如,对N个待加密数据进行RLWE-HE,得到密文,密文中包含有N维多项式,从密文的N维多项式中提取多个待加密数据的密文,进行并行处理),处理结果无需返回客户端0102,由服务端0101进行处理即可。
具体地,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
参见图2,图2示出了根据本说明书一个实施例提供的一种密文处理方法的流程图,具体包括以下步骤。
步骤202:获取目标密文,其中,所述目标密文为对多个待加密数据进行加密得到,所述目标密文包括密文多项式。
具体地,待加密数据是指需要进行加密的数据,比如,用户需要传输多个数据,将该多个数据作为多个待加密数据,进行加密,传输加密后的密文。密文多项式是指对待加密数据进行加密得到的密文,该密文的形式是多项式,比如,根据多个待加密数据构建得到待加密多项式,对该待加密多项式进行加密,得到的密文是多项式,可称得到的密文为密文多项式。
对多个待加密数据进行加密,得到包括密文多项式的目标密文,后续可基于加密的目标密文进行存入、提取、再存入的方式获得多个待加密数据的加密密文,用于对多个待加密数据的加密密文进行并行处理。
对多个待加密数据进行加密,得到的密文的形式是多项式的形式,也即,通过对多个待加密数据进行加密,得到多项式形式的密文的加密方式均可作为步骤202中的加密方式,比如,环上容错学习加密方式。
可选地,获取目标密文的具体实现方式为接收客户端发送的多个待加密数据,将多个待加密数据构建得到待加密多项式,对待加密多项式进行加密,即可获得包括密文多项式的目标密文。
对多个待加密数据进行加密得到的是包含两个多项式的密文。
本说明书一种可选的实施例中,在获取目标密文之前可以是,先获取多个待加密数据,构建待加密多项式,并对待加密多项式进行环上容错学习同态加密,得到目标密文,即在上述步骤202之前,还包括如下具体步骤:
获取多个待加密数据;
基于所述多个待加密数据,构建待加密多项式,其中,所述多个待加密数据为所述待加密多项式的各项系数;
对所述待加密多项式进行环上容错学习同态加密,得到目标密文。
当待加密数据为多个整数时,可利用RLWE-HE对多个待加密数据进行同态加密,同态加密的方式是需要,先将多个待加密数据进行处理,构建得到待加密多项式,之后对该待加密多项式进行环上容错学习同态加密,得到密文,该密文包括两个多项式:和,其中,基于对一个待加密数据进行LWE-HE,得到的是一个整数和一个向量,故将对多个待加密数据进行RLWE-HE得到的作为目标密文。
应用本说明书实施例的方案,通过预先获取多个待加密数据,并基于多个待加密数据构建得到待加密多项式,并对待加密多项式进行环上容错学习同态加密得到包括密文多项式的目标密文,使得得到的目标密文是利用RLWE-HE对多个待加密数据进行加密得到的,以便于后续可基于目标密文对多个待加密数据对应的目标密文系数向量进行并行处理,进一步提高后续对密文进行并行处理的速度。
步骤204:按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处,其中,所述各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到。
具体地,存储规则是指将数据存储进预设内存段所需要依据的规则,也即需要按照存储规则,将数据存储入预设内存段,存储规则用于将各系数按照预设的顺序存储至指定位置处,预设的顺序由各待加密数据的顺序所确定,比如,存储规则可以是按照对密文多项式进行指定运算(比如,取余运算)后确定出密文多项式中的系数符号的变化情况,将密文多项式中的各系数进行存储;存储规则还可以是预先为各内存段中的各位置以及密文多项式的系数进行编号,按照对应的编号,将密文多项式中的系数存放至各预设内存段中。指定位置是指将各密文多项式的各系数在预设内存段中的对应位置,比如,内存段0中的第三个位置放置的是目标密文中的第三项系数,则称第三个位置为第三项系数的指定位置。指定内存是指预先指定的一个内存,用于根据SIMD指令的处理规则(预设位数)进行划分,得到各预设内存段。预设位数是指预先设置的位数,即按照SIMD指令的处理规则对应的指令集的存储方式设置的,比如,预设位数可以是128、256、512。
可选地,SIMD指令的处理规则根据支持的指令集的特性变化而变化,比如,若是AVX2指令集,则要求预设位数为256。
可选地,通过将目标密文存入根据预设位数划分得到的各预设内存段,并进行提取,基于SIMD指令的处理规则,可以对从各内存段中提取得到的数据进行并行处理。
本说明书一种可选的实施例中,在按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置之前,可以是预先确定密文多项式中各系数的数据长度,并根据预设位数和各系数的数据长度,确定对指定内存进行分段的内存段个数,并根据密文多项式的系数个数、各系数的数据长度和内存段个数,对指定内存进行划分,得到多个预设内存段,即在步骤204之前,还包括如下具体步骤:
确定所述密文多项式中各系数的数据长度;
根据预设位数和所述各系数的数据长度,确定对指定内存进行分段划分的内存段个数;
根据所述密文多项式的系数个数、所述各系数的数据长度以及所述内存段个数,将所述指定内存划分为多个预设内存段。
具体地,系数的数据长度是指系数在内存中所占的内存大小,通常是64。
确定密文多项式中各系数的数据长度具体是对各系数的数据长度进行测试,获得各系数的数据长度。
可选地,根据预设位数和各系数的数据长度,确定对指定内存进行分段划分的内存段个数可以是利用预设位数除以各系数的数据长度得到,比如,预设位数为256、各系数的数据长度为64,则确定预设内存段的个数为4;预设位数为512、各系数的数据长度为64,则确定预设内存段的个数为8。
可选地,根据密文多项式的系数个数、各系数的数据长度和内存段个数,将指定内存划分为多个预设内存段,可以是利用密文多项式的系数个数和各系数的数据长度限制各预设内存段的长度,比如,密文多项式的系数个数为N,各系数的数据长度为64,若预设内存段的个数为4个,则分别在指定内存中划分四段起始位置是256的整数倍,且内存段的大小依次为(2N-1)64位、(2N-2)64位、(2N-3)64位和(2N-4)64位。
应用本说明书实施例的方案,通过确定出来的密文多项式中各系数的数据长度预设位数,确定需要划分的内存段的个数,并根据密文多项式的系数个数和各系数的数据长度确定各内存段的内存大小,然后根据内存段个数将指定内存划分为多个内存段,内存段的个数与使得划分出来的多个预设内存段的内存大小和预设内存段的个数,既符合SIMD指令的处理规则,又可以将密文多项式的各系数进行存入的存储规则,使得后续对目标密文的提取和处理的效率提高了。
本说明书一种可选的实施例中,可以是确定密文多项式进行指定运算前后符号无变化的第一系数和符号无变化的第二系数,按照各预设内存段中对于符号有变化和无变化的系数存储规则,将各所述第一系数和第二系数分别存入各预设内存段的指定位置处,即步骤204包括如下具体步骤:
确定对所述密文多项式进行指定运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负;
按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各所述第一系数和各所述第二系数分别存入所述各预设内存段的指定位置处。
具体地,指定运算是基于加密得到的密文数据存储至各预设内存段中时,是需要密文多项式是可以被整除的,故采用取余运算等指定运算的方式进行处理,确定出无变化的第一系数和有变化的第二系数。系数存储规则是指将系数存储至各预设内存段时的存储规则,比如,对密文多项式进行指定运算(比如,取余运算)确定出的符号无变化的第一系数和符号有变化的第二系数,进行存储入各预设内存段中。
可选地,确定对密文多项式进行指定运算前后符号无变化的第一系数和符号有变化的第二系数,可以是对多项式进行取余,生成前后符号无变化的系数和符号有变化的系数,比如,在对对应的RLWE-HE密文解密过程中,的第i项包括两部分:在前后无变化的系数,也就是。在之后会改变符号的系数,也就是。
示例性地,确定划分的内存段为:
应用本说明书实施例的方案,通过对密文多项式进行指定运算确定出符号无变化的第一系数和符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负,按照各预设内存段中的系数存储规则,将各第一系数和第二系数分别存入各预设内存段中的指定位置处,使得各预设内存段中的系数存储规则是依据密文多项式,提取多项式中某一系数的密文的方式确定的,提高了后续从各预设内存段中提取密文多项式系数的效率,进一步提高了并行处理的效率。
步骤206:在接收到密文处理指令的情况下,从所述各预设内存段中提取所述密文多项式的各系数,组成目标密文系数向量,并将所述目标密文系数向量读入预设寄存器。
具体地,密文处理指令为指示对密文进行并行处理的指令,比如,在需要对明文进行处理时,通过对加密获得的密文,根据密文处理指令进行处理,得到处理后的密文。目标密文系数向量是指由目标密文系数组成的一个有序数值。预设寄存器是指预先设置的寄存器,比如,可以是SIMD寄存器。
密文处理指令具体是针对多个待加密数据的密文处理指令。
可选地,在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,可以是先确定目标内存段,然后再确定从目标内存段中提取的数据为哪部分,提取的是多少个数据。
可选地,组成目标密文系数向量可以是将从各预设内存段中提取的密文多项式的各系数,按照存在各预设内存段中的顺序进行组合,组成一个由有序的数值构成的向量,即目标密文系数向量。
本说明书一种可选的实施例中,可以是针对任一待加密数据,确定存储该待加密数据对应的目标系数的目标内存段,从目标内存段中提取第一待加密数据对应的多个目标系数,根据多个目标系数组成该待加密数据对应的目标密文系数向量,即步骤206包括如下具体步骤:
针对第一待加密数据,确定存储所述第一待加密数据对应的目标系数的目标内存段,其中,所述第一待加密数据为任一待加密数据;
从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数;
根据多个所述目标系数,组成所述第一待加密数据对应的目标密文系数向量。
具体地,第一待加密数据是指多个待加密数据中的任一个。
密文处理指令具体是针对多个待加密数据的密文处理指令,第一待加密数据为多个待加密数据中的任一个,通过遍历多个待加密数据,从目标内存段中提取对应的多个目标系数。
可选地,在对第一待加密数据进行密文提取可以是,确定第一待加密数据多对应的目标内存段,基于目标内存段确定所需要提取的多个密文多项式系数,作为目标密文系数,将目标密文系数组成一个有序数值得到目标密文系数向量。
可选地,目标密文系数向量的维数受LWE-HE密文的限制,维数为N维,即目标密文的数量为N个。
可选地,从目标内存段中提取第一待加密数据对应的多个目标系数可以是:各预设内存段中的位置是大于N的,则需要预先确定针对第一待加密数据对应的多个目标系数的位置,从确定的多个位置处提取与多个位置对应的多个系数作为目标系数。
应用本说明书实施例的方案,通过确定存储第一待加密数据对应的目标系数的目标内存段,从目标内存段中提取第一待加密数据对应的多个目标系数,根据多个目标系数组成第一待加密数据对应的目标密文系数向量,使得针对第一待加密数据,确定目标内存段,提取目标内存段中的多个根据目标系数,组成目标密文系数向量,层层的确定与处理提高了针对第一待加密数据的处理效率。
本说明书一种可选的实施例中,可以是根据多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段,即步骤确定存储所述第一待加密数据对应的目标系数的目标内存段,包括如下具体步骤:
根据所述多个待加密数据的总数、所述第一待加密数据的预标记序号和所述预设内存段的内存段个数,确定存储所述第一待加密数据对应的目标系数的目标内存段。
具体地,预标记序号是指预先对多个待加密数据标记的序号,比如预标记序号可以是i,i+1,i+2等等。
可选地,根据多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段可以是多个待加密数据的总数减去第一待加密数据的预标记序号减去1,与预设内存段的内存段个数取余,确定存储第一待加密数据对应的目标系数的目标内存段,比如,多个待加密数据的总数为N,第一待加密数据的预标记序号为i,预设内存段的个数为4,存储第一待加密数据对应的目标系数的目标内存段的序号n=(N-i-1)mod4。
可选地,确定存储第一待加密数据对应的目标系数的目标内存段可以是基于密文处理指令,需要确定存储针对第一待加密数据的目标内存段,从目标内存段中提取与第一待加密数据对应的目标系数。
应用本说明书实施例的方案,通过多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段,利用多方面的数据确定出针对第一待加密数据的目标内存段,以便于后续从目标内存段中提取目标系数,提高了对多个目标系数提取的效率,进一步提高了并行处理的效率。
本说明书一种可选的实施例中,可以是根据多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定目标内存段中的提取起始位,即步骤从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数,包括如下具体步骤:
根据所述多个待加密数据的总数、所述目标内存段的序号和所述第一待加密数据的预标记序号,确定所述目标内存段中的提取起始位;
根据所述多个待加密数据的总数,从所述提取起始位开始,从所述目标内存段中连续提取多个系数,获得所述第一待加密数据对应的多个所述目标系数。
具体地,序号是指多个内存段的序号,比如,内存段为4个,则可以为4个内存段标记序号为0、1、2、3。目标内存段的序号是指针对第一待加密数据确定出的目标内存段的序号。提取起始位是指针对第一待加密数据,从目标内存段中提取多个目标系数时第一个目标系数对应的位置。
可选地,根据多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定目标内存段中的提取起始位,可以是多个待加密数据的总数减去目标内存段的序号再减去第一待加密数据的预标记序号,得到的结果为在目标内存段中提取起始位的位置对应的排序序号,其中,该排序序号可以是在各预设内存段中按顺序为各存储位置进行排序的序号,比如,多个待加密数据的总数为N,目标内存段的序号为n,第一待加密数据的预标记序号为i,则目标内存段中的提取起始位为N-n-i。
内存段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位对齐的内存地址。
可选地,根据多个待加密数据的总数,从提取起始位开始,从目标内存段中连续提取多个系数,可以是在确定针对第一待加密数据的目标系数对应的提取起始位后,基于多个待加密数据的总数,在目标内存段中,从提取起始位开始对应的多个待加密数据总数个数的连续位置处的目标系数进行提取,得到多个待加密数据的总数个目标系数,比如,多个待加密数据的总数为N,从目标内存段中提取从第N-n-i起连续的N个位置处存储的目标系数。
应用本说明书实施例的方案,通过多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定出目标内存段的序号,基于多个待加密数据的总数,从目标内存段中提取出以提取出第一待加密数据对应的连续的多个目标系数,使得确定出来的目标内存段、目标内存段中的提取起始位开始连续的多个目标系数是基于多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号确定出来的,提高了确定的效率,也即提高了提取多个目标系数的效率,进一步提高了后续并行处理的效率。
步骤208:利用预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理。
具体地,预设寄存器对应的并行处理指令是指预先设置寄存器对应的对多个数据进行并行处理的指令,比如,对目标密文系数向量中的各数据进行并行处理。
可选地,并行处理指令可以是对多个数据并行进行加、减、乘、除等等,比如,对目标密文系数向量中的各分量同时除以某一分量,或同时加某一分量等等。
可选地,对目标密文系数向量进行并行处理可以通过利用SIMD进行并行处理,其是需要预先将多组数据并行的置于SIMD寄存器中,通过操作该预设寄存器对应的并行处理指令对多组数据进行并行处理。
本说明书一种可选的实施例中,可以是利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数中的各分量,即步骤208,包括如下具体步骤:
利用所述预设寄存器对应的并行处理指令,并行处理所述预设寄存器中存储的多个所述目标密文系数向量中的各分量。
具体地,分量是指向量中的各个数据,可以是目标密文系数向量中的各目标系数。
可选地,利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量具体是获得多个目标密文系数向量,并行对预设寄存器中存储的多个目标密文系数向量中的各分量进行处理。
应用本说明书实施例的方案,通过利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量,提高了对密文进行处理的效率。
通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
下述结合附图3,以本说明书提供的密文处理方法在利用SIMD进行并行处理的应用为例,对所述密文处理方法进行进一步说明。其中,图3示出了根据本说明书一个实施例提供的一种密文处理方法的处理过程流程图,具体包括以下步骤。
步骤312:密文多项式的密文系数个数N、各系数的数据长度64和内存段个数4,划分得到4个内存段:内存段0、内存段1、内存段2、内存段3。
步骤316:在接收到密文处理指令的情况下,针对第一待加密数据,根据多个待加密数据的总数N、第一待加密数据的预标记序号i和预设内存段个数4,确定存储对应的目标系数的目标内存段n=(N-i-1)mod4。
步骤318:根据多个待加密数据的总数N、目标内存段的序号n和第一待加密数据的预标记序号i,确定目标内存段的提取起始位为N-n-i;提取目标内存段n中,从第N-n-i起连续N各位置对应的目标系数。
步骤320:根据提取到的连续的N个目标系数:
应用本说明书实施例的方案,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各个预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
与上述方法实施例相对应,本说明书还提供了密文处理装置实施例,图4示出了根据本说明书一个实施例提供的一种密文处理装置的结构示意图。如图4所示,该装置包括:
获取模块402,被配置为获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;
存储模块404,被配置为按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;
提取模块406,被配置为在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;
并行处理模块408,被配置为利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。
可选地,密文处理装置还包括划分模块,被配置为确定密文多项式中各系数的数据长度;根据预设位数和各系数的数据长度,确定对指定内存进行分段划分的内存段个数;根据密文多项式的系数个数、各系数的数据长度以及内存段个数,将指定内存划分为多个预设内存段。
可选地,存储模块404,进一步被配置为确定对密文多项式进行指定运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,符号表示密文多项式中系数的正负;按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各第一系数和各第二系数分别存入各预设内存段的指定位置处。
可选地,提取模块406,进一步被配置为针对第一待加密数据,确定存储第一待加密数据对应的目标系数的目标内存段,其中,第一待加密数据为任一待加密数据;从目标内存段中提取第一待加密数据对应的多个目标系数;根据多个目标系数,组成第一待加密数据对应的目标密文系数向量。
可选地,提取模块406,进一步被配置为根据多个待加密数据的总数、第一待加密数据的预标记序号和预设内存段的内存段个数,确定存储第一待加密数据对应的目标系数的目标内存段。
可选地,提取模块406,进一步被配置为根据多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定目标内存段中的提取起始位;根据多个待加密数据的总数,从提取起始位开始,从目标内存段中连续提取多个系数,获得第一待加密数据对应的多个目标系数。
可选地,密文处理装置还包括同态加密模块,被配置为获取多个待加密数据;基于多个待加密数据,构建待加密多项式,其中,多个待加密数据为待加密多项式的各项系数;对待加密多项式进行环上容错学习同态加密,得到目标密文。
可选地,并行处理模块408,进一步被配置为利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量。
应用本说明书实施例的方案,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
上述为本实施例的一种密文处理装置的示意性方案。需要说明的是,该密文处理装置的技术方案与上述的密文处理方法的技术方案属于同一构思,密文处理装置的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种计算设备的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Card))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,Wireless LocalArea Networks)无线接口、全球微波互联接入(Wi-MAX,World Interoperability forMicrowave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的密文处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述密文处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的密文处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述密文处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的密文处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述密文处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (11)
1.一种密文处理方法,包括:
获取目标密文,其中,所述目标密文为对多个待加密数据进行加密得到,所述目标密文包括密文多项式;
按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处,其中,所述各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;
在接收到密文处理指令的情况下,从所述各预设内存段中提取所述密文多项式的各系数,组成目标密文系数向量,并将所述目标密文系数向量读入预设寄存器;
利用所述预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理。
2.根据权利要求1所述的方法,在所述按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处之前,还包括:
确定所述密文多项式中各系数的数据长度;
根据预设位数和所述各系数的数据长度,确定对指定内存进行分段划分的内存段个数;
根据所述密文多项式的系数个数、所述各系数的数据长度以及所述内存段个数,将所述指定内存划分为多个预设内存段。
3.根据权利要求1或2所述的方法,所述按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处,包括:
对所述密文多项式进行取余运算,确定取余运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负;
按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各所述第一系数和各所述第二系数分别存入所述各预设内存段的指定位置处。
4.根据权利要求1或2所述的方法,所述从所述各预设内存段中提取所述密文多项式的各系数,组成目标密文系数向量,包括:
针对第一待加密数据,确定存储所述第一待加密数据对应的目标系数的目标内存段,其中,所述第一待加密数据为任一待加密数据;
从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数;
根据多个所述目标系数,组成所述第一待加密数据对应的目标密文系数向量。
5.根据权利要求4所述的方法,所述确定存储所述第一待加密数据对应的目标系数的目标内存段,包括:
根据所述多个待加密数据的总数、所述第一待加密数据的预标记序号和所述预设内存段的内存段个数,确定存储所述第一待加密数据对应的目标系数的目标内存段。
6.根据权利要求4所述的方法,所述从所述目标内存段中提取所述第一待加密数据对应的多个所述目标系数,包括:
根据所述多个待加密数据的总数、所述目标内存段的序号和所述第一待加密数据的预标记序号,确定所述目标内存段中的提取起始位;
根据所述多个待加密数据的总数,从所述提取起始位开始,从所述目标内存段中连续提取多个系数,获得所述第一待加密数据对应的多个所述目标系数。
7.根据权利要求1所述的方法,在所述获取目标密文之前,还包括:
获取多个待加密数据;
基于所述多个待加密数据,构建待加密多项式,其中,所述多个待加密数据为所述待加密多项式的各项系数;
对所述待加密多项式进行环上容错学习同态加密,得到目标密文。
8.根据权利要求1所述的方法,所述利用所述预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理,包括:
利用所述预设寄存器对应的并行处理指令,并行处理所述预设寄存器中存储的多个所述目标密文系数向量中的各分量。
9.一种密文处理装置,包括:
获取模块,被配置为获取目标密文,其中,所述目标密文为对多个待加密数据进行加密得到,所述目标密文包括密文多项式;
存储模块,被配置为按照各预设内存段的存储规则,将所述密文多项式的各系数分别存入所述各预设内存段的指定位置处,其中,所述各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;
提取模块,被配置为在接收到密文处理指令的情况下,从所述各预设内存段中提取所述密文多项式的各系数,组成目标密文系数向量,并将所述目标密文系数向量读入预设寄存器;
并行处理模块,被配置为利用所述预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理。
10.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述密文处理方法的步骤。
11.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述密文处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272701.1A CN115348017B (zh) | 2022-10-18 | 2022-10-18 | 密文处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272701.1A CN115348017B (zh) | 2022-10-18 | 2022-10-18 | 密文处理方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115348017A CN115348017A (zh) | 2022-11-15 |
CN115348017B true CN115348017B (zh) | 2023-02-07 |
Family
ID=83957425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211272701.1A Active CN115348017B (zh) | 2022-10-18 | 2022-10-18 | 密文处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115348017B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633526B (zh) * | 2023-07-21 | 2023-10-31 | 北京数牍科技有限公司 | 一种数据处理方法、装置、设备及介质 |
CN117896067B (zh) * | 2024-03-13 | 2024-07-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
CN118074889B (zh) * | 2024-03-14 | 2024-08-13 | 杭州金智塔科技有限公司 | 基于国密sm3算法和mac算法的数据处理方法及装置 |
CN117978367B (zh) * | 2024-03-28 | 2024-06-28 | 青岛青软晶尊微电子科技有限公司 | 一种基于risc-v架构的加密方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130060636A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 복호장치와, 복호장치의 암호문 복호화 방법 |
CN103401871A (zh) * | 2013-08-05 | 2013-11-20 | 苏州大学 | 一种面向同态加密的密文定序方法及系统 |
JP2015031935A (ja) * | 2013-08-07 | 2015-02-16 | 富士通株式会社 | 情報処理方法及びプログラム |
JP2016012111A (ja) * | 2014-06-30 | 2016-01-21 | 富士通株式会社 | 暗号処理方法、暗号処理装置、および暗号処理プログラム |
CN105447361A (zh) * | 2014-08-27 | 2016-03-30 | 华为技术有限公司 | 加密和相似性度量的方法、终端及服务器 |
CN106685663A (zh) * | 2017-02-15 | 2017-05-17 | 华中科技大学 | 一种环域上误差学习问题的加密方法及电路 |
CN110348229A (zh) * | 2019-06-11 | 2019-10-18 | 北京思源互联科技有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN111740988A (zh) * | 2020-06-19 | 2020-10-02 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
CN112152777A (zh) * | 2020-08-18 | 2020-12-29 | 西安交通大学 | 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 |
CN112910624A (zh) * | 2021-01-14 | 2021-06-04 | 东北大学 | 一种基于同态加密的密文预测方法 |
CN113472525A (zh) * | 2021-06-24 | 2021-10-01 | 南京航空航天大学 | 基于后量子密码Saber算法的低内存占用实现技术 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8302083B2 (en) * | 2009-01-23 | 2012-10-30 | Lsi Corporation | Architecture and implementation method of programmable arithmetic controller for cryptographic applications |
CN103107859B (zh) * | 2011-11-15 | 2015-08-19 | 中国科学院大学 | 基于ccsds idc和sms4的联合信源与信息安全编译码方法 |
EP2720403A1 (en) * | 2012-10-12 | 2014-04-16 | Thomson Licensing | Aggregator-oblivious encryption of time-series data |
CN103177218B (zh) * | 2013-03-04 | 2015-07-29 | 广州市中崎商业机器有限公司 | 一种基于电子收款机的流水记录的压缩加密方法 |
US9843441B2 (en) * | 2013-09-24 | 2017-12-12 | Intel Corporation | Compact, low power advanced encryption standard circuit |
JP6413598B2 (ja) * | 2014-10-10 | 2018-10-31 | 富士通株式会社 | 暗号処理方法、暗号処理装置、及び暗号処理プログラム |
CN105991559B (zh) * | 2015-02-05 | 2019-03-01 | 同济大学 | 一种基于图像加密技术的用户安全登陆方法 |
CN105743641B (zh) * | 2016-04-01 | 2018-11-16 | 西安电子科技大学 | 一种可显式验证公钥的多接收者签密方法 |
US10482543B2 (en) * | 2016-05-12 | 2019-11-19 | Kurt B. Schuh | Apparatus and method for validating transactional data |
EP3402118A1 (en) * | 2017-05-10 | 2018-11-14 | Koninklijke Philips N.V. | Key agreement devices and method |
US10680802B2 (en) * | 2018-05-31 | 2020-06-09 | Nxp B.V. | High-rate multi-block-length hash function based on block ciphers |
-
2022
- 2022-10-18 CN CN202211272701.1A patent/CN115348017B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130060636A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 복호장치와, 복호장치의 암호문 복호화 방법 |
CN103401871A (zh) * | 2013-08-05 | 2013-11-20 | 苏州大学 | 一种面向同态加密的密文定序方法及系统 |
JP2015031935A (ja) * | 2013-08-07 | 2015-02-16 | 富士通株式会社 | 情報処理方法及びプログラム |
JP2016012111A (ja) * | 2014-06-30 | 2016-01-21 | 富士通株式会社 | 暗号処理方法、暗号処理装置、および暗号処理プログラム |
CN105447361A (zh) * | 2014-08-27 | 2016-03-30 | 华为技术有限公司 | 加密和相似性度量的方法、终端及服务器 |
CN106685663A (zh) * | 2017-02-15 | 2017-05-17 | 华中科技大学 | 一种环域上误差学习问题的加密方法及电路 |
CN110348229A (zh) * | 2019-06-11 | 2019-10-18 | 北京思源互联科技有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN111740988A (zh) * | 2020-06-19 | 2020-10-02 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
CN112152777A (zh) * | 2020-08-18 | 2020-12-29 | 西安交通大学 | 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 |
CN112910624A (zh) * | 2021-01-14 | 2021-06-04 | 东北大学 | 一种基于同态加密的密文预测方法 |
CN113472525A (zh) * | 2021-06-24 | 2021-10-01 | 南京航空航天大学 | 基于后量子密码Saber算法的低内存占用实现技术 |
Non-Patent Citations (2)
Title |
---|
THE HOMOGENEOUS POLYNOMIAL SOLUTIONS FOR THE GRUSHIN OPERATOR;刘海蓉;《Acta Mathematica Scientia(English Series)》;20180115(第01期);全文 * |
光伏模拟电源中分段多项式拟合算法研究;代林旺等;《电测与仪表》;20140310(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115348017A (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115348017B (zh) | 密文处理方法以及装置 | |
US10713535B2 (en) | Methods and processes of encrypted deep learning services | |
US20200177366A1 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
CN108604987B (zh) | 将布尔掩码值转换为用于加密操作的算术掩码值 | |
Cintas-Canto et al. | ChatGPT vs. Lightweight security: First work implementing the NIST cryptographic standard ASCON | |
CN110611568B (zh) | 基于多种加解密算法的动态加解密方法、装置、及设备 | |
JP6915375B2 (ja) | 多項式ベースの準同型暗号 | |
CN109687966A (zh) | 加密方法及其系统 | |
CN113055153B (zh) | 一种基于全同态加密算法的数据加密方法、系统和介质 | |
CN111475690A (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
US8538017B2 (en) | Encryption device | |
EP3483867B1 (en) | System, device, method, and program for indexing a secret-shared array with secure multiparty computations | |
US20170264427A1 (en) | Data encryption techniques | |
CN116108473B (zh) | 多方安全计算中的数据处理方法及装置 | |
Li et al. | A novel colour image encryption based on fractional order Lorenz system | |
JP2014137474A (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
CN116094686B (zh) | 用于量子卷积计算的同态加密方法、系统、设备及终端 | |
Benamira et al. | TT-TFHE: a Torus Fully Homomorphic Encryption-Friendly Neural Network Architecture | |
CN111159730A (zh) | 数据处理方法、查询方法、装置、电子设备和系统 | |
EP3933714A1 (en) | Method and system for optimal selection of parameters for privacy preserving machine learning applications using fully homomorphic encryption | |
CN115757535A (zh) | 数据查询方法、数据存储方法、装置及电子设备 | |
CN115174035A (zh) | 数据处理方法及装置 | |
Zakaria et al. | Modifications of key schedule algorithm on RECTANGLE block cipher | |
CN114611129A (zh) | 一种数据隐私保护方法和系统 | |
Islam et al. | Compact: Approximating complex activation functions for secure computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |