CN112152777B - 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 - Google Patents

一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 Download PDF

Info

Publication number
CN112152777B
CN112152777B CN202010832531.2A CN202010832531A CN112152777B CN 112152777 B CN112152777 B CN 112152777B CN 202010832531 A CN202010832531 A CN 202010832531A CN 112152777 B CN112152777 B CN 112152777B
Authority
CN
China
Prior art keywords
key
ciphertext
data
random number
homomorphic
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
CN202010832531.2A
Other languages
English (en)
Other versions
CN112152777A (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202010832531.2A priority Critical patent/CN112152777B/zh
Publication of CN112152777A publication Critical patent/CN112152777A/zh
Application granted granted Critical
Publication of CN112152777B publication Critical patent/CN112152777B/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及同态加密技术领域,特别涉及一种面向同态密码运算的密钥转换方法,包括以下步骤:对外部输入的密文数据进行处理,转换成扩展秘钥参数,且对外部输入的数据进行数据缓存;将扩展秘钥参数和缓存数据通过多项式运算,最后通过模运算,得到降维的密文。还公开了一种面向同态密码运算的密钥转换系统,包括转换密钥生成模块和密钥转换模块。还公开了一种计算机设备和计算机可读存储介质,计算机程序被处理器执行时实现所述面向同态密码运算的密钥转换方法的步骤。克服了原始的基于RLWE问题设计的全同态加密方案存在计算复杂,密钥尺寸大,导致运行效率低下的问题。

Description

一种面向同态密码运算的密钥转换方法、系统、设备及可读存 储介质
技术领域
本发明涉及同态加密技术领域,特别涉及一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质。
背景技术
如图1所示,同态加密(Homomorphic Encryption,HE),本质上是指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。具有同态性质的加密函数是指明文a满足Dec(f(Enc(a)))=f(a)的加密函数,其中Enc是加密运算,Dec是解密运算,f为密文域上的运算。当f代表加法时,称该加密为加同态加密:当f代表乘法时,称该加密为乘同态加密。从而保证了在不泄露敏感信息的前提下完成对密文的处理任务,解决了云端计算上数据处理的安全问题。
基于RLWE(Ring Learning With Errors,RLWE)的同态加密算法为第二代全同态加密方案,打破了原有的构建框架,转而利用密钥转换与模转换技术实现,降低了加乘同态运算的时间与空间复杂度,效率获得了较大提升。
原始的基于RLWE问题设计的全同态加密方案,在进行少数次加乘同态运算时,可有效地完成运算,但进行多次乃至无限次加乘同态运算时,也存在其他方案的共性问题:涉及噪声管理及一些复杂的转化过程,存在计算复杂,密钥尺寸大等问题,导致运行效率低下,不具备实用性。其主要原因在于:该方案是基于换上误差学习问题进行构造,而多项式环上的代数运算本身计算效率底下,加之噪声管理及复杂的转化过程涉及大量环上代数运算,参数取值大时,则效率更低。具体表现为:
1、密钥生成时间长:根据参数的不同大小,密钥生成时间为2.5s到2.2h。
2、密钥尺寸大:密文和密钥必须足够大以满足安全性,文献中为抵抗基于格算法的攻击,其公钥取值约为17MG到2.25GB。
BGV算法是2012年由Brakerski,Gentry和Vaikuntanathan三人提出的一种层次型全同态加密方案,该方案是第一个不需要自举的同态加密方案,其依赖于Brakerski和Vaikuntanathan提出的模转换技术和密钥转换技术来实现自举,能够提供基于LWE或RLWE的安全性两种选择,而后者具有更高的效率。
由于在进行多次同态乘法操作时,密文多项式的维数会随着乘法次数的增加而急剧增加,从而导致乘法运算量急剧增大,最终无法进行有效运算。因此,目前的全同态加密方案存在计算复杂,密钥尺寸大等问题,导致运行效率低下。
发明内容
本发明针对原始的基于RLWE问题设计的全同态加密方案存在计算复杂,密钥尺寸大,导致运行效率低下的问题,本发明提出了一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质。
本发明是通过以下技术方案来实现:
一种面向同态密码运算的密钥转换方法,具体包括以下步骤:
S1:对外部输入的密文数据进行处理,转换成扩展秘钥参数,且对外部输入的数据进行数据缓存;
S2:将扩展秘钥参数和缓存数据通过多项式运算,最后通过模运算,得到降维的密文。
进一步,最终得到的密文为c0、c1,按照公式(1)、公式(2)计算;
Figure GDA0002763288150000021
Figure GDA0002763288150000031
其中,t为2的幂次;q为密文模数;i的取值会随着t的取值的不同而改变;ct0,ct1,ct2为密文;
ai为n维的(0,q)的随机数;bi为n维的(0,q)的扩展密钥;ct2,i为密文ct2基于t进行拆解得到的参数。
进一步,对密文ct2基于t进行拆解的公式为:
Figure GDA0002763288150000032
进一步,步骤S1具体包括以下步骤:
(1)获取随机数ai和ei
其中,i的取值范围为(1,logtq)的整数;t为2的幂次;q为密文模数;p为明文模数;ai为n维的(0,q)的随机数;ei为n维的[-p,0,p]的随机数;维数n的数值由明文维数决定;
(2)通过步骤(1)产生的随机数ai和ei生成bi
(3)将步骤(2)生成的bi作为扩展秘钥参数,将经过缓存的ai作为缓存数据。
进一步,步骤(2)中生成bi的公式为:
bi=ai*sk+p·ei+ti·sk'
其中,sk=s',sk'=s'2,s'为私钥参数,私钥参数s'为n维的(-1,0,1)的随机数;*为多项式乘法运算;·为系数乘法运算。
进一步,将c0和c1同步输出或差分输出。
本发明还公开了一种面向同态密码运算的密钥转换系统,包括转换密钥生成模块和密钥转换模块;
转换密钥生成模块,用于将外部输入的密文数据进行处理,转换成密钥转换模块所需的扩展秘钥参数,并对外部输入的密文数据进行数据的缓存,将扩展秘钥参数和缓存数据传递给密钥转换模块;
密钥转换模块,用于对扩展秘钥参数和缓存数据的密文进行处理,得到降维的密文。
进一步,最终得到的密文为c0、c1,密钥转换模块的处理公式为;
Figure GDA0002763288150000041
Figure GDA0002763288150000042
其中,t为2的幂次;q为密文模数;i的取值会随着t的取值的不同而改变;ct0,ct1,ct2为密文;
ai为n维的(0,q)的随机数;bi为n维的(0,q)的扩展密钥;ct2,i为密文ct2基于t进行拆解得到的参数。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向同态密码运算的密钥转换方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向同态密码运算的密钥转换方法的步骤。
与现有技术相比,本发明具有以下有益的技术效果:
本发明公开了一种面向同态密码运算的密钥转换方法,将外部输入的数据进行处理,转换成扩展秘钥参数,并通过数据的缓存;将扩展秘钥参数和缓存数据通过多项式运算,最后通过模运算,得到降维的密文。本发明提高了算法的并行性,使用器件在允许范围内,还原了原始算法的功能,缩短了该部分的计算时间;利用硬件数据为二进制的特点,通过截取位数替代了原始算法所采用的拆解算法,降低了计算量,节省了一定的硬件资源;本发明减小了原始密钥转换算法的计算量,优化了整体算法结构,加速了密钥转换模块的运行速度,以更短的时间获取正确结果。
本发明公开了一种面向同态密码运算的密钥转换系统,包括转换密钥生成模块和密钥转换模块,设计了硬件,通过硬件去实现数据处理,发挥了硬件的并行性,可以安装到计算机设备中。
附图说明
图1为同态加密概述图;
图2为基于RLWE的BGV同态加密算法硬件总体结构图;
图3为本发明的密钥转换模块的结构示意图;
图4为转换密钥生成模块处理过程的示意框图;
图5为密钥转换模块处理过程的示意框图。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
如图2和3所示,本发明公开了一种面向同态密码运算的密钥转换系统,包括转换密钥生成模块和密钥转换模块;转换密钥生成模块,用于将外部输入的密文数据进行处理,转换成密钥转换模块所需的扩展秘钥参数,并对外部输入的密文数据进行数据的缓存,将扩展秘钥参数和缓存数据传递给密钥转换模块;密钥转换模块,用于将扩展秘钥参数和缓存数据的密文作为输入,通过多项式运算,最后通过模运算,实现密文的降维。
转换密钥生成模块生成:SwitchKeyGen(epk,sk,sk’)
具体算法描述如下:获取logtq维的(0,q)的的随机数ai,以及logtq维的(0,p)的的随机数ei
For i=0,…,logtq
ai←Rq
ei←Rp
bi=ai*sk+p*ei+ti·sk'
i的取值范围为(1,logtq)的整数,t的初始值为2的幂次,epk的初始值等于pk,sk=s',sk'=s'2,pk为公钥参数,s'为私钥参数。ai为n维的(0,q)的随机数;bi也为n维的0到q的扩展密钥;ei为n维的[-p,0,p]的随机数;公钥参数pk由-ai和bi组成;私钥参数s'为n维的(-1,0,1)的随机数;维数n的数值由明文维数决定。
所述转换密钥参数生成过程,如图4所示。以参数t值为t=212(i的取值为i=1,2,3),q=16974593,n=128,p=25,密文维数n=128,位宽m=27bit为例。其输入和输出信号说明如下:
Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)输入:随机数ai,构成Extendkey_b的参数之一;
Extendkey_e(1)、Extendkey_e(2)、Extendkey_e(3)输入:随机数ei*32,构成Extendkey_b的参数之一;
Sk:私钥参数s',构成Extendkey_b的参数之一;
Valid_gen:密钥转换部分开始计算的使能信号;
Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3):转换密钥生成模块的计算结果,为输出参数之一;
Valid_switch:密钥生成部分运算结束标志,也是密钥转换模块开始的使能信号;
Extendkey_a(1)、Extendkey_(2)、Extendkey_(3)输出:Extendkey_a输入经过缓存器缓存后的输出。
转换密钥参数生成的具体步骤如下:
1、Valid_gen为高电平时,开始输入Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)和Sk,每一个时钟周期输入一个数据,128个时钟周期后,输入完成。外部输入的Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)和Sk分别同步进行一次多项式乘法运算,其运算结果记为Conv_b(1)、Conv_b(2)、Conv_b(3)。Sk与自身也进行一次多项式乘法运算,其结果为sk',该多项式乘法运算与其他三次同步进行。
2、在多项式乘法运算完成开始输出结果时,Conv_b(1)与Extendkey_e(1)进行一次多项式加法运算,Conv_b(2)与Extendkey_e(2)进行一次多项式加法运算,Conv_b(3)与Extendkey_e(3)进行一次多项式加法运算,三次运算同步进行,同步得到Add_b(1)、Add_b(2)和Add_b(3)。该过程不会消耗时钟周期。
3、模约减:Add_b(1)、Add_b(2)和Add_b(3)同时经过模约减(27bit)后,在同一时刻得到Mod_b(1)、Mod_b(2)、Mod_b(3)。该过程不会消耗时钟周期。
4、Mod_b(1)与sk'进行一次多项式加法运算得到Add_sk'_b(1),Mod_b(2)与t*sk'进行一次多项式加法运算得到Add_sk'_b(2),Mod_b(3)与t2*sk'进行一次多项式加法运算,得到Add_sk'_b(3)。其中,t*sk'、t2*sk'的运算可通过sk'的左移位实现。
5、Add_sk'_b(1)、Add_sk'_b(2)和Add_sk'_b(3)分别经过模约减(27bit)后就得到最终输出的Extendkey_b(1)、Extendkey_b(2)和Extendkey_b(3)。
6、当Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3)生成完成后,将寄存在寄存器中的Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)同步输出给密钥生成模块。
Valid_gen控制该模块的运行,可根据同态乘法的运行状态,调整该模块起始运行时间。Extendkey_b(1)、Extendkey_b(2)和Extendkey_b(3)三组数据均是同步产生的,因此可以以三组数据的任意一组的结束标志作为该模块的结束标志。在本例中采用的是Extendkey_b(3)的结束信号作为该模块结束信号。当Valid_switch信号变为高电平,通过寄存器缓存的Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)也与Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3)同步输出。所诉转换密钥生成模块采用的结构充分发挥了硬件的并行性,有效的缩短了该模块的运行时间;并且利用硬件数据均为二进制的特定,简化了计算方式,节省了硬件资源的消耗。
转换密钥的生成,i的取值会随着t的取值的不同而改变。对于原始算法来说i的取值越大,计算bi的时间也会越多。而本发明提出的转换密钥生成模块,利用了硬件的并行性,无论i的取值为多大,只需要消耗一次多项式乘法运算的时间,就可得到各bi。另外由于p和ti均为2的次幂,系数乘法均可由移位运算替代,节省了硬件资源的消耗。
所述密钥转换模块的处理过程:首先将拆解得到的ct2,i分别与由所述转换密钥生成的ai、bi进行多项式乘法运算。这部分在本发明的实现上均采用并行结构,同时计算i取不同值时的ct2,i*ai和ct2,i*bi。然后将其结果累加,ct0、ct1再分别与其结果做差或相加,最后得到降维后的密文。
假设第l级乘法完成后的密文为:ct=(ct0,ct1,ct2),对应的私钥为:sk=(1,sk,sk')=(1,s',s'2),转换过程如下:
将ct=(ct0,ct1,ct2)中的ct2进行拆解:
Figure GDA0002763288150000081
最终输出密文:
Figure GDA0002763288150000091
Figure GDA0002763288150000092
密文ct0,ct1,ct2均为位宽为m bit的n维向量,最终输出的密文c0,c1也为mbit的n维向量。m,n的数值均由密文决定。
可按需求将c0和c1同步输出或差分输出,为之后的同态运算提供便利。
所述密钥转换部分的过程如图5所示,m的取值为27,n的数值为128。密钥转换模块输入输出信号说明如下:
Valid_switch:由密钥转换模块生成,密文转换模块控制信号;
Ct0、Ct1、Ct2:完成第l级同态乘法运算后的密文;
Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3):由转换密钥生成模块生成,构成Switchkey_c0的参数之一;
Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3):由转换密钥生成模块生成,构成Switchkey_c1的参数之一;
Switchkey_c(0)、Switchkey_c(1):密钥转换模块最终生成的结果,替代Ct成为密文;
Switch_finish:密钥转换结束标志。
所述密钥转换模块的处理过程具体步骤如下:
1、当Valid_switch为高电平时,密钥转换模块开始工作。依次同步输入的Extendkey_a(1)、Extendkey_a(2)、Extendkey_a(3)和Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3),分别和相应的Ct2不同位数进行多项式乘法运算。
具体地,Extendkey_a(1)和Extendkey_b(1)与Ct0[11:0]进行多项式乘法运算,同步得到conv_a(1)和conv_b(1);Extendkey_a(2)和Extendkey_b(2)分别与Ct0[23:12]进行多项式乘法运算,同步得到conv_a(2)和conv_b(2);Extendkey_a(3)和Extendkey_b(3)分别与Ct0[26:24]进行多项式乘法运算,同步得到conv_a(3)和conv_b(3)。
2、conv_a(1)、conv_a(2)和conv_a(3)三个结果进行累加得到Switchkey_a,conv_b(1)、conv_b(2)和conv_b(3)也同步进行累加得到Switchkey_b。累加的运算不消耗时间。
3、Ct1减去Switchkey_a后,得到Sub_a,Ct0同步加上Switchkey_b得到Add_b。该运算过程不消耗时间。
4、Sub_a和Add_b同步经过模约减(27bit)后,就得到了最终结果的Switchkey_c0和Switchkey_c1。
因此可以采用Switchkey_c0或Switchkey_c1中的一个结束信号作为该模块的结束信号。当Switchkey_c0和Switchkey_c1生成完成后,Switch_finish变为高电平。所述密钥转换模块发挥了硬件并行的特点,使得降维后的结果能在最短时间内输出;在保证准确性的同时,利用硬件处理的数据为二进制的特点,优化了算法,有效的节省了硬件资源。
当参数发生变化时,只需要改变输入输出位宽、增加或删除运算单元即可。当q和m发生变化时,需要对Extendkey_a(1)、Extendkey_(2)、Extendkey_(3)、Extendkey_b(1)、Extendkey_b(2)、Extendkey_b(3)、Ct0、Ct1、Ct2、Switchkey_c(0)、Switchkey_c(1)的位宽进行调整;当p发生变化时需要对Extendkey_e(1)、Extendkey_e(2)、Extendkey_e(3)的位宽进行调整;当n发生变化时则需要对多项式乘法进行调整。而当t发生变化时则需要对硬件结构增加或删减。例如当t=213,其他的参数都不改变时,此时i=1,2。相较于图4、5,只需要删除Extendkey_a(3)、Extendkey_e(3)和Extendkey_b(3)及其对应的运算单元,并且Ct2的拆分只需拆分为Ct2[12:0]和Ct2[26:13]。当t=28,其他的参数都不改变时,此时i=1,2,3,4。相较于图4、5,则需要增加Extendkey_a(4)、Extendkey_e(4)和Extendkey_b(4)及其对应的运算单元,而Ct2需要拆分为Ct2[7:0]、Ct2[15:8]、Ct2[23:16]和Ct2[26:24]。
本发明利用硬件的并行性,使用器件在允许范围内,还原了原始算法的功能,缩短了该部分的计算时间;利用硬件数据为二进制的特点,通过截取位数替代了原始算法所采用的拆解算法,降低了计算量,节省了一定的硬件资源;本发明减小了原始密钥转换算法的计算量,优化了整体算法结构,加速了密钥转换模块的运行速度,以更短的时间获取正确结果。
本发明公开的一种面向同态密码运算的密钥转换方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向同态密码运算的密钥转换方法的步骤。其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
在示例性实施例中,还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向同态密码运算的密钥转换方法的步骤。处理器可能是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

Claims (8)

1.一种面向同态密码运算的密钥转换方法,其特征在于,具体包括以下步骤:
S1:对外部输入的密文数据进行处理,转换成扩展秘钥参数,且对外部输入的数据进行数据缓存;
步骤S1具体包括以下步骤:
(1)获取随机数ai和ei
其中,i的取值范围为(1,logtq)的整数;t为2的幂次;q为密文模数;p为明文模数;ai为n维的(0,q)的随机数;ei为n维的[-p,0,p]的随机数;维数n的数值由明文维数决定;
(2)通过步骤(1)产生的随机数ai和ei生成bi
步骤(2)中生成bi的公式为:
bi=ai*sk+p·ei+ti·sk'
其中,sk=s′,sk′=s′2,s′为私钥参数,私钥参数s′为n维的(-1,0,1)的随机数;*为多项式乘法运算;·为系数乘法运算;
(3)将步骤(2)生成的bi作为扩展秘钥参数,将经过缓存的ai作为缓存数据;
S2:将扩展秘钥参数和缓存数据通过多项式运算,最后通过模运算,得到降维的密文。
2.根据权利要求1所述的面向同态密码运算的密钥转换方法,其特征在于,最终得到的密文为c0、c1,按照公式(1)、公式(2)计算;
Figure FDA0003497772760000011
Figure FDA0003497772760000012
其中,t为2的幂次;q为密文模数;i的取值会随着t的取值的不同而改变;ct0,ct1,ct2为密文;
ai为n维的(0,q)的随机数;bi为n维的(0,q)的扩展密钥;ct2,i为密文ct2基于t进行拆解得到的参数。
3.根据权利要求2所述的面向同态密码运算的密钥转换方法,其特征在于,对密文ct2基于t进行拆解的公式为:
Figure FDA0003497772760000021
4.根据权利要求2所述的面向同态密码运算的密钥转换方法,其特征在于,将c0和c1同步输出或差分输出。
5.一种面向同态密码运算的密钥转换系统,其特征在于,包括转换密钥生成模块和密钥转换模块;
转换密钥生成模块,用于将外部输入的密文数据进行处理,转换成密钥转换模块所需的扩展秘钥参数,并对外部输入的密文数据进行数据的缓存,将扩展秘钥参数和缓存数据传递给密钥转换模块;
将外部输入的密文数据进行处理,转换成密钥转换模块所需的扩展秘钥参数,并对外部输入的密文数据进行数据的缓存,具体包括以下步骤:
(1)获取随机数ai和ei
其中,i的取值范围为(1,logtq)的整数;t为2的幂次;q为密文模数;p为明文模数;ai为n维的(0,q)的随机数;ei为n维的[-p,0,p]的随机数;维数n的数值由明文维数决定;
(2)通过步骤(1)产生的随机数ai和ei生成bi
步骤(2)中生成bi的公式为:
bi=ai*sk+p·ei+ti·sk'
其中,sk=s′,sk′=s′2,s′为私钥参数,私钥参数s′为n维的(-1,0,1)的随机数;*为多项式乘法运算;·为系数乘法运算;
(3)将步骤(2)生成的bi作为扩展秘钥参数,将经过缓存的ai作为缓存数据;
密钥转换模块,用于对扩展秘钥参数和缓存数据的密文进行处理,得到降维的密文。
6.根据权利要求5所述的面向同态密码运算的密钥转换系统,其特征在于,最终得到的密文为c0、c1,密钥转换模块的处理公式为;
Figure FDA0003497772760000031
Figure FDA0003497772760000032
其中,t为2的幂次;q为密文模数;i的取值会随着t的取值的不同而改变;ct0,ct1,ct2为密文;
ai为n维的(0,q)的随机数;bi为n维的(0,q)的扩展密钥;ct2,i为密文ct2基于t进行拆解得到的参数。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任意一项所述面向同态密码运算的密钥转换方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任意一项所述面向同态密码运算的密钥转换方法的步骤。
CN202010832531.2A 2020-08-18 2020-08-18 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 Active CN112152777B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010832531.2A CN112152777B (zh) 2020-08-18 2020-08-18 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010832531.2A CN112152777B (zh) 2020-08-18 2020-08-18 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112152777A CN112152777A (zh) 2020-12-29
CN112152777B true CN112152777B (zh) 2022-04-22

Family

ID=73887968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010832531.2A Active CN112152777B (zh) 2020-08-18 2020-08-18 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112152777B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818362B (zh) * 2021-01-29 2023-09-22 江苏理工学院 基于r-lwe的公钥加密方法
CN114422219B (zh) * 2022-01-06 2024-02-27 浙江数秦科技有限公司 一种基于降维多项式的数据加密传输方法
CN115276948B (zh) * 2022-07-20 2023-04-07 京信数据科技有限公司 一种同态加密计算方法及系统
CN115033843B (zh) * 2022-08-09 2022-11-08 之江实验室 基于三角脉动阵列的协方差矩阵计算的电路实现方法
CN115348017B (zh) * 2022-10-18 2023-02-07 阿里巴巴(中国)有限公司 密文处理方法以及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790069A (zh) * 2016-12-21 2017-05-31 电子科技大学 基于向量同态加密的隐私保护k‑nn分类方法
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法
CN109889320A (zh) * 2019-01-24 2019-06-14 中国人民武装警察部队工程大学 一种高效的bgv型多密钥全同态加密方法
WO2019130528A1 (ja) * 2017-12-28 2019-07-04 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476661B2 (en) * 2016-06-27 2019-11-12 Fujitsu Limited Polynomial-based homomorphic encryption
CN108718231B (zh) * 2018-07-04 2023-05-23 深圳大学 一种全同态加密方法、装置和计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790069A (zh) * 2016-12-21 2017-05-31 电子科技大学 基于向量同态加密的隐私保护k‑nn分类方法
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法
WO2019130528A1 (ja) * 2017-12-28 2019-07-04 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
CN109889320A (zh) * 2019-01-24 2019-06-14 中国人民武装警察部队工程大学 一种高效的bgv型多密钥全同态加密方法

Also Published As

Publication number Publication date
CN112152777A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN112152777B (zh) 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质
US8855302B2 (en) Apparatus and method for Skein hashing
JP2007086170A (ja) 汎用ハッシュ関数族計算装置、方法、プログラム、および共有鍵生成システム
US11349668B2 (en) Encryption device and decryption device
US11822704B2 (en) Constant time secure arithmetic-to-Boolean mask conversion
US20230179395A1 (en) Using cryptographic blinding for efficient use of montgomery multiplication
Berthet et al. An area-efficient SPHINCS+ post-quantum signature coprocessor
Coron et al. High-order table-based conversion algorithms and masking lattice-based encryption
US20190319802A1 (en) Parallel processing techniques for hash-based signature algorithms
US11895230B2 (en) Information processing apparatus, secure computation method, and program
JP5427117B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
Biyashev et al. Modification of the cryptographic algorithms, developed on the basis of nonpositional polynomial notations
CN114629665B (zh) 一种用于可信计算的硬件平台
Sarkar The filter-combiner model for memoryless synchronous stream ciphers
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
CN101616000B (zh) 基于虚拟光学的加密方法及装置
TWI731770B (zh) 運算系統
JP4938430B2 (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
JPWO2005013243A1 (ja) モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
JP5103407B2 (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
JP3473171B2 (ja) 逐次暗号方式
CN112953706B (zh) 信息处理方法和装置
Kanso An efficient cryptosystem Delta for stream cipher applications
Puthiakulangara Analysis of (Lightweight) Symmetric-Key Algorithms and Their Software Implementations
JP5006770B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体

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