一种基于模容错学习问题的同态內积方法与流程

文档序号:16128151发布日期:2018-12-01 00:00阅读:842来源:国知局

本发明涉及计算机领域,尤其涉及一种基于模容错学习问题的同态內积方法。

背景技术

随着互联网和电子商务等相关行业的迅猛发展,信息安全的重要性日益突出,加密技术作为互联网和电子商务等采取的主要安全保密措施,尤为重要,其中,安全多方计算指的是在不泄露各方输入明文的情况下,正确计算各方明文的函数计算,安全计算两个整数向量的内积是安全多方计算的一个分支。

随着云计算与大数据技术的广泛应用,越来越多的场景需要安全高效的计算两方所输入向量的内积,如安全多方几何计算,隐私数据挖掘,外包计算,可排序的密文检索等场景,但是,目前现有的计算同态内积的方案大多是基于rlwe的全同态加密方案,普遍存在效率不高的问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明提供一种基于模容错学习问题的同态內积方法,以解决上述技术问题。

本发明提供的基于模容错学习问题的同态內积方法,包括:

根据加密场景设定加密参数,所述加密参数为模容错学习公钥加密参数;

根据所述加密参数生成公私钥对;

输入待加密向量,生成明文;

根据所述公私钥对对所述待加密向量进行加密,生成密文;

在解密时,判断是否求密文的向量内积,

如果是,则根据密文张量积对加密后的向量做同态内积计算,并通过密钥张量积获取计算密钥,根据所述计算密钥对向量內积密文进行解密,获取明文;

如果不是,则通过所述公私钥对对密文进行解密,获取明文。

进一步,所述加密参数至少包括模的维数、分布样本数量、密钥压缩参数、密文压缩参数、密文压缩参数和明文压缩参数。

进一步,通过如下方式获取公私钥对:

在多项式环rq中随机取k×k个多项式构成矩阵a,a←rqk×k

根据中心二项分布构造均匀取样私钥与噪声,

根据函数compressq(x,d):输入x∈zq,输出y=round((2d/q)·x)mod+2d

计算t:=compressq(as+e,dt);

输出公钥pk:=(t,a),私钥sk:=s;

其中:s为私钥,e为噪声,β为中心二项分布,η为样本总量,d为压缩参数,q为有限域的大小,t为公钥,a为生成公钥的随机矩阵,mod+2d的表示取值范围是[0,2d-1];round(x)表示对x四舍五入;[x]表示对x向上取整。

进一步,将以明文范围内的n维向量作为多项式环rq的多项式系数的多项式作为明文进行输入。

进一步,通过如下方式生成密文:

根据函数decompressq(y,d),输入y=compressq(x,d),输出x′=round((q/2d)·y),

对公钥进行解压缩操作,t′=decompressq(t,dt);

根据中心二项分布构造均匀随机取样随机向量及噪声

对明文进行加密得到密文

其中:

v=compressq(ttr+e2+round(q/2dp)·m,dv)∈rq。

进一步,当不求密文的向量内积时,通过如下方式对密文进行解密,获取明文m′:=compressq(v′-stu′,dp),

其中,v′=decompressq(v,dv),u′=decompressq(u,du)。

进一步,当求密文的向量内积时,通过如下方式对密文进行解密,获取明文

其中,为明文向量m1的密文,为明文向量m2的密文。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法。

本发明还提供一种电子终端,包括:处理器及存储器;

所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述任一项所述方法。

本发明的有益效果:本发明中的基于模容错学习问题的同态內积方法,基于模容错学习mlwe(modulelearningwitherror,mlwe)构造了一种安全计算整数向量内积的同态内积方案,允许对密文进行同态內积运算,而不需要解密密文,通过本发明中的方法,可以大大提高计算整数向量的同态內积的效率。

附图说明

图1是本发明实施例中基于模容错学习问题的同态內积方法的流程示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

如图1所示,本实施例中的基于模容错学习问题的同态內积方法,包括:

s1:根据加密场景,设定模容错学习(modulelearningwitherror,mlwe)公钥加密方案的相关加密参数;

s2:根据加密参数生成公私钥对;

s3:输入待加密向量生成明文;

s4:通过加密算法对向量进行加密,生成密文;

s5:判断是否求密文的向量內积:如果是,则按照密文张量积对向量做同态內积计算,然后通过密钥张量积生成的计算密钥对向量內积密文进行解密,得到明文;如果否,则通过解密算法对密文进行解密,得到明文。

在本实施例中,步骤s1具体为:

通常加密场景向量大小不大于10bits,在本实施例中针对10bits以内向量同态內积加密场景。设定敌手攻击次数为2λ,λ=102,基于mlwe公钥加密方案包含下列加密参数params(q,n,k,η,dt,du,dv,dp),

s101:模q多项式剩余类环rq=zq[x]/φn(x)为密文空间,其中zq[x]表示系数为有限域zq中元素的多项式的集合,φn(x)表示n次分圆多项式,通常φn(x)=xn+1,n表示φn的次数,取固定参数q=4835703278458516698824713,

s102:取固定参数n=256为环的次数,

s103:模的维数k=2,

s104:根据中心二项分布定义:均匀随机取2η个二项分布样本,(a1,…,aη,b1,…,bη)←{0,1},输出该输出总体记作βη。从βη中取k个样本作为多项式v的系数,则称作是满足βη分布的多项式的k个系数组成的向量。在本实施例中,取η=5的分布。

s105:密钥压缩参数dt=79,密文压缩参数du=dv=79,明文压缩参数dp=29。

其中:a←a表示从集合a均匀选取元素a,或从分布a中均匀取样元素a;{0,1}表示一个向量元素大于等于0且小于等于1的2η维整数向量。

步骤s2具体为:

s201:在多项式环rq上随机取k×k个多项式构成矩阵a,

s202:根据中心二项分布构造均匀取样私钥与噪声,

s203:定义函数compressq(x,d):输入x∈zq,输出y=round((2d/q)·x)mod+2d。计算t:=compressq(as+e,dt),输出公钥pk:=(t,a),私钥sk:=s。

其中:mod+2d的表示取值范围是[0,2d-1];round(x)表示对x四舍五入;表示对x向上取整。

在步骤s3中:

将明文0~(210-1)范围内的n维向量作为环rq上多项式系数,将该多项式作为明文输入记作m。输入两组256个范围是0~(210-1)的十进制整数,由于输入明文为两个向量,多项式系数记作a=(a0,a1,…,an-1)和b=(b0,b1,…,bn-1),对应的明文多项式m1=a0+a1x+…+an-1xn-1,m2=b0-bn-1x-…-b1xn-1。其中如果明文整数个数小于n个,则用0填充向量直到n个。

在步骤s4中:

s401:定义函数decompressq(y,d),输入y=compressq(x,d),输出x′=round((q/2d)·y)。并对公钥进行解压缩操作,t′=decompressq(t,dt);

s402:根据中心二项分布构造均匀随机取样随机向量及噪声

s403:对明文m进行加密得到密文

其中:

v=compressq(ttr+e2+round(q/2dp)·m,dv)∈rq。

在步骤s5中:

s501:判断是否求密文的向量內积;

s502:如果否,则通过解密算法对密文进行解密,得到明文m′:=compressq(v′-stu′,dp);其中,v′=decompressq(v,dv),u′=decompressq(u,du);

s503:如果是,则按照密文张量积对向量做同态內积计算,然后通过密钥张量积生成的计算密钥对向量內积密文进行解密,得到明文其中,分别为对应两个明文向量m1,m2的密文,本发明中由于k=2,密钥u1=(u10,u11)t,u2=(u20,u21)t,定义密文张量积定义密钥张量积在本实施例中,用户自己可以选择是否有內积的模式标识,可以根据实际情况自行判断有无內积。

本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。

本实施例还提供一种电子终端,包括:处理器及存储器;

所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。

本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。

在本实施例中,存储器可能包含随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1