CN115348017B - 密文处理方法以及装置 - Google Patents

密文处理方法以及装置 Download PDF

Info

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
Application number
CN202211272701.1A
Other languages
English (en)
Other versions
CN115348017A (zh
Inventor
王宇辰
陆文杰
洪澄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202211272701.1A priority Critical patent/CN115348017B/zh
Publication of CN115348017A publication Critical patent/CN115348017A/zh
Application granted granted Critical
Publication of CN115348017B publication Critical patent/CN115348017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization 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维向量
Figure 856013DEST_PATH_IMAGE001
。加密后的密文
Figure 420986DEST_PATH_IMAGE002
由两部分组成,第一部分是一个整数,第二部分是一个N维向量;这两部分分别记作
Figure 460487DEST_PATH_IMAGE003
(整数)和
Figure 794516DEST_PATH_IMAGE004
。解密过程为
Figure 198953DEST_PATH_IMAGE005
,其中<,>代表向量内积操作。
环上容错学习(RLWE,Ring Learning with Error):RLWE问题是LWE问题的变体,两者之间的描述相似,不同之处在于RLWE问题的参数均取自特定环上。比如,在同态加密方面,和LWE-HE方案相比,RLWE-HE一次能同时处理N个整数,产生一个RLWE密文,相比于使用LWE-HE加密N个整数,使用RLWE-HE能够节省大量带宽。RLWE-HE方案的加密对象是能够进行
Figure 110277DEST_PATH_IMAGE006
运算的多项式,多项式的维数为N,它的每个系数都是一个整数,形如:
Figure 828834DEST_PATH_IMAGE007
。私钥也是一个多项式sk。加密后的密文ct包含两个多项式,分别记作
Figure 79687DEST_PATH_IMAGE008
(多项式)和
Figure 720271DEST_PATH_IMAGE009
。解密过程为
Figure 259837DEST_PATH_IMAGE010
将RLWE-HE密文抽取为LWE-HE密文:通常,将RLWE-HE密文抽取为LWE-HE密文,可以是通过变换,将加密
Figure 578823DEST_PATH_IMAGE011
的RLWE-HE密文ct转换成其中某个系数
Figure 746499DEST_PATH_IMAGE012
的LWE密文
Figure 492738DEST_PATH_IMAGE013
。具体转换过程如下:将
Figure 254021DEST_PATH_IMAGE014
的第i个系数设定为
Figure 439014DEST_PATH_IMAGE015
。将
Figure 398880DEST_PATH_IMAGE016
中的系数重新排列成N维向量:
Figure 253704DEST_PATH_IMAGE017
,此时,
Figure 892495DEST_PATH_IMAGE018
Figure 553284DEST_PATH_IMAGE019
的合法LWE-HE密文,解密这个密文所使用的私钥就是RLWE-HE私钥sk的系数按次序组合成的向量
Figure 570919DEST_PATH_IMAGE020
高级矢量扩展(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指令进行处理,将
Figure 986856DEST_PATH_IMAGE021
的合法LWE-HE密文,
Figure 519469DEST_PATH_IMAGE022
中的
Figure 187211DEST_PATH_IMAGE023
抽取到一个或多个SIMD寄存器中进行并行处理。但是这种方法需要将存储于内存中的RLWE-HE密文按照顺序移动到SIMD寄存器中,根据SIMD指令集的描述,这种操作的前提是被移动数据在内存中的起始地址是一个特定数字的整数倍(比如,AVX2指令集中,这个地址是需要是256的整数倍)。在RLWE-HE密文中,
Figure 918406DEST_PATH_IMAGE024
多项式的每个系数可近似看作按照下面的布局,依次序排列在内存中:RLWE-HE密文
Figure 442928DEST_PATH_IMAGE025
的布局:
Figure 666099DEST_PATH_IMAGE026
;但是,当需要将其抽取的LWE-HE密文放入SIMD寄存器时,需要得到的多项式系数顺序如下:需要抽取的LWE-HE密文
Figure 731007DEST_PATH_IMAGE027
的布局:
Figure 519972DEST_PATH_IMAGE028
;问题在于,
Figure 153078DEST_PATH_IMAGE029
所在内存起始位置不一定是上面描述的SIMD指令集要求的特定数字的整数倍,因此利用当前方式使用SIMD指令会导致错误,即SIMD指令无法使用。
为了解决上述问题,本说明书实施例通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
在本说明书中,提供了一种密文处理方法,本说明书同时涉及一种密文处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图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之前,还包括如下具体步骤:
获取多个待加密数据;
基于所述多个待加密数据,构建待加密多项式,其中,所述多个待加密数据为所述待加密多项式的各项系数;
对所述待加密多项式进行环上容错学习同态加密,得到目标密文。
具体地,待加密多项式由多个待加密数据构建得到,比如,待加密数据为
Figure 722600DEST_PATH_IMAGE030
,则依据该多个待加密数据进行多项式的构建,得到待加密多项式为:
Figure 528882DEST_PATH_IMAGE031
当待加密数据为多个整数时,可利用RLWE-HE对多个待加密数据进行同态加密,同态加密的方式是需要,先将多个待加密数据进行处理,构建得到待加密多项式,之后对该待加密多项式进行环上容错学习同态加密,得到密文,该密文包括两个多项式:
Figure 375615DEST_PATH_IMAGE032
Figure 976361DEST_PATH_IMAGE033
,其中,基于对一个待加密数据进行LWE-HE,得到的是一个整数和一个向量,故将对多个待加密数据进行RLWE-HE得到的
Figure 301688DEST_PATH_IMAGE034
作为目标密文。
应用本说明书实施例的方案,通过预先获取多个待加密数据,并基于多个待加密数据构建得到待加密多项式,并对待加密多项式进行环上容错学习同态加密得到包括密文多项式的目标密文,使得得到的目标密文是利用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)
Figure 583764DEST_PATH_IMAGE035
64位、(2N-2)
Figure 675217DEST_PATH_IMAGE036
64位、(2N-3)
Figure 446864DEST_PATH_IMAGE037
64位和(2N-4)
Figure 131923DEST_PATH_IMAGE038
64位。
应用本说明书实施例的方案,通过确定出来的密文多项式中各系数的数据长度预设位数,确定需要划分的内存段的个数,并根据密文多项式的系数个数和各系数的数据长度确定各内存段的内存大小,然后根据内存段个数将指定内存划分为多个内存段,内存段的个数与使得划分出来的多个预设内存段的内存大小和预设内存段的个数,既符合SIMD指令的处理规则,又可以将密文多项式的各系数进行存入的存储规则,使得后续对目标密文的提取和处理的效率提高了。
本说明书一种可选的实施例中,可以是确定密文多项式进行指定运算前后符号无变化的第一系数和符号无变化的第二系数,按照各预设内存段中对于符号有变化和无变化的系数存储规则,将各所述第一系数和第二系数分别存入各预设内存段的指定位置处,即步骤204包括如下具体步骤:
确定对所述密文多项式进行指定运算前后符号无变化的第一系数,以及符号有变化的第二系数,其中,所述符号表示所述密文多项式中系数的正负;
按照各预设内存段中对于符号有变化和符号无变化的系数存储规则,将各所述第一系数和各所述第二系数分别存入所述各预设内存段的指定位置处。
具体地,指定运算是基于加密得到的密文数据存储至各预设内存段中时,是需要密文多项式是可以被整除的,故采用取余运算等指定运算的方式进行处理,确定出无变化的第一系数和有变化的第二系数。系数存储规则是指将系数存储至各预设内存段时的存储规则,比如,对密文多项式进行指定运算(比如,取余运算)确定出的符号无变化的第一系数和符号有变化的第二系数,进行存储入各预设内存段中。
可选地,确定对密文多项式进行指定运算前后符号无变化的第一系数和符号有变化的第二系数,可以是对多项式进行取余,生成前后符号无变化的系数和符号有变化的系数,比如,在对对应的RLWE-HE密文解密过程中,
Figure 342325DEST_PATH_IMAGE039
的第i项包括两部分:在
Figure 960388DEST_PATH_IMAGE040
前后无变化的系数,也就是
Figure 106198DEST_PATH_IMAGE041
。在
Figure 137608DEST_PATH_IMAGE042
之后会改变符号的系数,也就是
Figure 823805DEST_PATH_IMAGE043
示例性地,确定划分的内存段为:
内存段0:
Figure 765216DEST_PATH_IMAGE044
内存段1:
Figure 940982DEST_PATH_IMAGE045
内存段2:
Figure 335054DEST_PATH_IMAGE046
内存段3:
Figure 824942DEST_PATH_IMAGE047
上述内存段中,内存段0的内存大小为(2N-1)
Figure 479914DEST_PATH_IMAGE036
64;内存段1的内存大小为(2N-2)
Figure 233106DEST_PATH_IMAGE036
64;内存段2的内存大小为(2N-3)
Figure 911212DEST_PATH_IMAGE036
64;内存段3的内存大小为(2N-4)
Figure 1528DEST_PATH_IMAGE036
64。
Figure 448690DEST_PATH_IMAGE048
是指密文多项式中的第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
Figure 107204DEST_PATH_IMAGE049
(N-n-i-1),由于n满足n=(N-i-1)mod4,因此(N-n-i-1)是可以被4整除的数,第N-i-1位置距离目标内存段的起始地址之间的距离是可以被256(64
Figure 272606DEST_PATH_IMAGE049
4)整除的数,又目标内存段的起始地址是256的整数倍,因此,第N-i-1位置所在的地址是可以被256整除的,即是一个256位对齐的内存地址。
可选地,根据多个待加密数据的总数,从提取起始位开始,从目标内存段中连续提取多个系数,可以是在确定针对第一待加密数据的目标系数对应的提取起始位后,基于多个待加密数据的总数,在目标内存段中,从提取起始位开始对应的多个待加密数据总数个数的连续位置处的目标系数进行提取,得到多个待加密数据的总数个目标系数,比如,多个待加密数据的总数为N,从目标内存段中提取从第N-n-i起连续的N个位置处存储的目标系数。
应用本说明书实施例的方案,通过多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号,确定出目标内存段的序号,基于多个待加密数据的总数,从目标内存段中提取出以提取出第一待加密数据对应的连续的多个目标系数,使得确定出来的目标内存段、目标内存段中的提取起始位开始连续的多个目标系数是基于多个待加密数据的总数、目标内存段的序号和第一待加密数据的预标记序号确定出来的,提高了确定的效率,也即提高了提取多个目标系数的效率,进一步提高了后续并行处理的效率。
步骤208:利用预设寄存器对应的并行处理指令,对所述预设寄存器中存储的多个所述目标密文系数向量进行并行处理。
具体地,预设寄存器对应的并行处理指令是指预先设置寄存器对应的对多个数据进行并行处理的指令,比如,对目标密文系数向量中的各数据进行并行处理。
可选地,并行处理指令可以是对多个数据并行进行加、减、乘、除等等,比如,对目标密文系数向量中的各分量同时除以某一分量,或同时加某一分量等等。
可选地,对目标密文系数向量进行并行处理可以通过利用SIMD进行并行处理,其是需要预先将多组数据并行的置于SIMD寄存器中,通过操作该预设寄存器对应的并行处理指令对多组数据进行并行处理。
本说明书一种可选的实施例中,可以是利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数中的各分量,即步骤208,包括如下具体步骤:
利用所述预设寄存器对应的并行处理指令,并行处理所述预设寄存器中存储的多个所述目标密文系数向量中的各分量。
具体地,分量是指向量中的各个数据,可以是目标密文系数向量中的各目标系数。
可选地,利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量具体是获得多个目标密文系数向量,并行对预设寄存器中存储的多个目标密文系数向量中的各分量进行处理。
应用本说明书实施例的方案,通过利用预设寄存器对应的并行处理指令,并行处理预设寄存器中存储的多个目标密文系数向量中的各分量,提高了对密文进行处理的效率。
通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
下述结合附图3,以本说明书提供的密文处理方法在利用SIMD进行并行处理的应用为例,对所述密文处理方法进行进一步说明。其中,图3示出了根据本说明书一个实施例提供的一种密文处理方法的处理过程流程图,具体包括以下步骤。
步骤302:获取N个待加密数据:
Figure 432192DEST_PATH_IMAGE050
步骤304:基于N个待加密数据:
Figure 671544DEST_PATH_IMAGE051
,构建得到待加密多项式:
Figure 563276DEST_PATH_IMAGE052
步骤306:对待加密多项式进行环上容错学习同态加密,得到目标密文为ct,其中,ct包括
Figure 535082DEST_PATH_IMAGE053
Figure 842566DEST_PATH_IMAGE054
Figure 592216DEST_PATH_IMAGE055
步骤308:确定
Figure 654850DEST_PATH_IMAGE056
中各系数的数据长度为64。
步骤310:根据预设位数为256和
Figure 466949DEST_PATH_IMAGE057
中各系数的数据长度64,确定内存段个数为256/64=4段。
步骤312:密文多项式的密文系数个数N、各系数的数据长度64和内存段个数4,划分得到4个内存段:内存段0、内存段1、内存段2、内存段3。
内存段0:
Figure 906020DEST_PATH_IMAGE058
内存段1:
Figure 244598DEST_PATH_IMAGE059
内存段2:
Figure 478133DEST_PATH_IMAGE060
内存段3:
Figure 43106DEST_PATH_IMAGE061
上述内存段中,内存段0的内存大小为(2N-1)
Figure 817027DEST_PATH_IMAGE036
64;内存段1的内存大小为(2N-2)
Figure 213374DEST_PATH_IMAGE036
64;内存段2的内存大小为(2N-3)
Figure 555493DEST_PATH_IMAGE036
64;内存段3的内存大小为(2N-4)
Figure 732397DEST_PATH_IMAGE036
64。
Figure 247692DEST_PATH_IMAGE062
是指密文多项式中的第i个系数。
步骤314:按照各预设内存段的存储规则,将
Figure 436228DEST_PATH_IMAGE063
中各系数分别存入各预设内存段的指定位置处,其中,
Figure 11565DEST_PATH_IMAGE064
是指
Figure 410186DEST_PATH_IMAGE065
中的第i个系数。
步骤316:在接收到密文处理指令的情况下,针对第一待加密数据
Figure 932434DEST_PATH_IMAGE066
,根据多个待加密数据的总数N、第一待加密数据的预标记序号i和预设内存段个数4,确定存储
Figure 37793DEST_PATH_IMAGE067
对应的目标系数的目标内存段n=(N-i-1)mod4。
步骤318:根据多个待加密数据的总数N、目标内存段的序号n和第一待加密数据的预标记序号i,确定目标内存段的提取起始位为N-n-i;提取目标内存段n中,从第N-n-i起连续N各位置对应的目标系数。
步骤320:根据提取到的连续的N个目标系数:
Figure 111928DEST_PATH_IMAGE068
组成第一待加密数据
Figure 607632DEST_PATH_IMAGE069
的目标密文系数向量:
Figure 730309DEST_PATH_IMAGE070
步骤322:利用预设寄存器对应的并行处理指令(除以第一个目标系数),并行处理第一待加密数据
Figure 18070DEST_PATH_IMAGE071
的目标密文系数向量。
应用本说明书实施例的方案,通过获取目标密文,其中,目标密文为对多个待加密数据进行加密得到,目标密文包括密文多项式;按照各预设内存段的存储规则,将密文多项式的各系数分别存入各个预设内存段的指定位置处,其中,各预设内存段为对指定内存按照起始位置为预设位数的整数倍划分得到;在接收到密文处理指令的情况下,从各预设内存段中提取密文多项式的各系数,组成目标密文系数向量,并将目标密文系数向量读入预设寄存器;利用预设寄存器对应的并行处理指令,对预设寄存器中存储的多个目标密文系数向量进行并行处理。通过获取为多个待加密数据进行加密得到的目标密文,目标密文包括密文多项式,预先对指定内存按照起始位置为预设位数的整数倍进行划分,得到各预设内存段,并将目标密文中密文多项式的各系数存入各预设内存段中的指定位置处,使得后续可以在接收到密文处理指令的情况下,对密文多项式的各系数进行提取,并将提取得到的由各系数组成的目标密文系数向量读入预设寄存器,进行并行处理,也即,为使后续可以将从各预设内存段中提取的目标系数存入预设寄存器中,用于后续按照预设处理指令进行并行处理,需得将各预设内存段的起始位置设定为预设位数的整数倍,使得后续在接收到密文处理指令的情况下,可以将从各预设内存段中提取的各系数存入预设寄存器,便可基于预设寄存器对应的并行处理指令,对目标密文系数向量进行并行处理,即起始位置为预设位数的整数倍,可加速实现对各系数的提取,并按照预设寄存器对应的并行处理指令,快速对各系数组成的目标密文系数向量并行进行处理,提高了对目标密文的处理效率。
与上述方法实施例相对应,本说明书还提供了密文处理装置实施例,图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任意一项所述密文处理方法的步骤。
CN202211272701.1A 2022-10-18 2022-10-18 密文处理方法以及装置 Active CN115348017B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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