【技术实现步骤摘要】
一种基于格的高效紧凑加密方法
[0001]本专利技术涉及密码技术,尤其涉及基于格的后量子加密方法。
技术介绍
[0002]IBM的工程师们预测在未来的二十年内,量子计算机必将被大规模应用。一旦量子计算机被大规模制造出来,大多数基于离散对数、椭圆曲线离散对数或者大整数分解的公钥密码系统都将会被攻破。因此无论我们是否能够准确预测量子计算时代的到来时间,我们都需要将目前的信息安全系统提升到抗量子级别。
[0003]格密码是目前对抗量子攻击的主要数学方法之一。在密码学中,和其他古典的格困难问题(例如SVP和CVP)相比,LWE(Learning With Error) 问题已经被证明有更加全面的功能。
[0004]对于正连续数σ>0与x∈R,定义高斯函数令表示上的一维离散高斯分布,由概率密度函数决定。令表示在上的n维球面离散高斯分布,其中每个坐标都独立于给定正整数n和q,它们都是安全参数λ中的多项式中的参数,并给定整数向量和一个定义在上的概率分布χ,随机均匀选择噪音e
←
χ,令A
q,x,χ
是上的分布,并输出噪音分布χ通常被认为是离散高斯概率分布但是也可以采用其他的分布。
[0005]在判定型LWE假设中,对足够大的安全参数λ,概率多项式时间算法无法以不可忽略的概率来区分A
q,s,χ
和上的均匀分布。即使敌手看到多项式多个样本,且秘密向量x是从χ
n
随机选取的,这也是成立的。
[0006]MLWE问题是LWE问题的变体。来 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种基于格的高效紧凑加密方法,其中,一个字符串或者值α都表示二进制的值,|α|表示α二进制的长度;对于任意实数x,表示小于等于x的最大整数,表示大于等于x的最小整数,对于任意的正整数a和b,用lcm(a,b)表示a和b的最小公倍数;对于任意的并且i<j,用[i,j]表示整数集合{i,i+1,...,j-1,j};对于任意的正整数t,令表示表示中的元素默认表示为[0,t-1],但有时会明确表示为会明确表示为表示群中二进制长度为n的元素集合;如果S是一个有限集合,那么|S|表示它的基数,并且x
←
S表示均匀随机的从S中取一个元素;对于两个集合我们定义A+B={a+b|a∈A,b∈B};对于一个加法群(G,+),元素x∈G并且子集x+S表示将S中每一个元素都和x相加结果的集合;对于一个集合S,用u(S)表示S的一个均匀分布;对于任意的R中的离散随机变量X,Supp(X)={x∈R|Pr[X=x]>0};如果D表示一个概率分布,那么x
←
D表示根据D选择一个元素并赋值给x;如果α既不是一个算法也不是一个集合,那么x
←
α就表示简单的赋值操作;如果A是一个概率算法,那么A(x1,x2,...;r)表示将x1,x2,...作为输入,r为随机种子A的运算结果;我们用y
←
A(x1,x2,...;r)表示随机选取r并令y为A(x1,x2,...;r)的实验;用Pr[R1;...;R
n
:E]表示事件E在一连串有序的随机过程R1,...,R
n
之后发生的概率;如果对于任意的c>0,对于所有的λ>λ
c
,都存在一个λ
c
使得f(λ)<1/λ
c
,那么函数f(λ)是可忽略的;定义环其中,为m阶分圆多项式;R
q
中的元素为N维多项式,其形式为a0+a1x1+a2x2+
…
+a
N-1
x
N-1
,其中N是一个正整数;正整数l和h为矩阵样本的维度,表示h
×
l维的矩阵,每个元素为环R
q
上的N维多项式;对于输入是向量的函数,其运算是对向量的每一维分别处理计算;MLWE分布中的样本形式为MLWE问题是从多项式个来自MLWE分布的样本中恢复秘密值X;具体地,从环中随机选取计算得到Y
i
=A
i
X+E
i
,所有样本使用相同的和相同或不同的其中,正整数i用于标记次数,与分别为两个概率分布,分布参数记为η1与η2,分布可相同也可不同;对于敌手A定义如果没有最多运行τ时间且优势大于ε的算法A,我们称(τ,∈)-MLWE
h,l,η
困难性假设成立;其中,τ是关于N的多项式,ε是关于N的可忽略函数;一个非对称共识算法AKC=(params,Con,Rec),其中参数定义如下:1)params=(q,m,g,d,aux)表示系统参数,且都为正整数,aux表示由(q,m,g,d)确定的辅助信息,其值可能为空;除非特别说明,本发明方法中的m=2
或4;2)V
←
Con(Σ2,K2,params),Con()为一种多项式时间算法,在输入为(Σ2,K2,params)的条件下,算法输出信号其中,其中,其中n和n
′
以及N为正整数,其值相等或不等;3)K1=Rec(Σ1,V,params),Rec()为一种确定性多项式算法,在输入为(Σ1,V,params)的情况下,Rec()输出的结果为其中,所述方法包括:生成加密所需的系统参数(λ,n,q,χ,AKC,l,h,t1,t2);其中,λ为安全参数,q≥2,χ为噪音分布,l和h为正整数并且为λ的多项式,表示维度大小,t1和t2为压缩函数中使用的参数,用于发送密文时减小带宽而进行的操作;公私钥生成:解密者采样得到随机种子seed
←
{0,1}
κ
,seed的长度是正整数κ,利用Gen输入种子seed生成矩阵A,其中,是一个伪随机生成器,将长度为κ的随机字符串映射到的矩阵A;所述解密者采样及其中,与分别为两个分布,用于采样l
×
1维的向量,其中向量的每一维元素是R
q
上的多项式,所述分布相同或不同;和/或作为私钥的一部分;所述解密者计算公钥Y1=Compress1(AX1+E1),并将Y1与seed作为公钥的一部分发送给加密者;其中,Compress1()为一种压缩函数,该压缩函数的输入输出为二者均为环R
q
上l
×
1维的向量,每一维为N维多项式但多项式每一维的系数削减t1比特,其中t1≥0是整数;加密方法:所述加密者从中选取K2作为待加密消息,并根据得到的随机种子seed,使用相同的伪随机数发生器Gen生成矩阵A=Gen(seed);所述加密者采样以及其中,与分别为两个相同或不同的分布,用于采样l
×
1维的向量,分布用于采样N维多项式,η1,η2,η3相等或不等;所述加密者计算:1)Y2=Compress2(A
T
X2+E2);其中,Compress2()为一种压缩函数,该压缩函数的输入输出为均为环R
q
上l
×
1维的向量,每一维均为N维多项式但多项式每一维的系数削减t2比特,其中t2≥0是整数;加密者使用的Compress2()与解密者使用的Compress1()函数相同或不同;2)Σ2=Decompress1(Y1)
T
·
X2+E
σ
;其中,Decompress1()为一种解压缩函数,加密者使用的Decompress1()需与解密者使用的Compress1()函数对应,该解压缩函数的输入为输出解压缩结果,二者均为环R
q
上的l
×
1维向量,与E
σ
∈R
q
相加得到Σ2∈R
q
,为N维多项式;3)V
←
Con(Σ2,K2,params);其中,Con()为非对称密钥共识AKC中定义的多项式算法,输入为(Σ2,K2,params),算法Con()输出所述加密者将和作为密文的一部分发送给所述解密者;
解密方法:所述解密者收到Y2与V以后,执行以下步骤:1)其中,Decompress2()为一种解压缩函数,与加密者使用的Compress2()相对应,该解压缩函数的输入输出解压缩结果,二者均为环R
q
上的l
×
1维向量,相乘得到Σ1∈R
q
,为N维多项式;2)K1=Rec(Σ1,V,params);其中,Rec()为确定性多项式算法,在输入为(Σ1,V,params)的情况下,Rec()输出的结果为Con()和Rec()有如下计算方式:对于多项式的每一个系数σ2∈Z
q
和σ1∈Z
q
和K2中的每一维系数k2∈Z
m
,1)共识方式-1:或者其中是V中对应维度的值;和/或2)共识方式-2:其中是V中对应维度的值;和/或3)共识方式-3:其中是V中对应维度的值;和/或4)共识方式-4:其中是V中对应维度的值;和/或5)共识方式-5:其中是V中对应维度的值;和/或6)共识方式-6:其中是V中对应维度的值;和/或7)共识方式-7:其中是V中对应维度的值;和/或Compress1()和/或Compress2()的计算方式为如下的Compress();Decompress1()和/或Decompress2()的计算方式为如下的Decompress();令t≥0为一个整数且t∈{t1,t2},如果t=0表示不用做压缩和解压缩;注意对于发明方法实际应用中Compress1()和/或Compress2()所采用的具体的t值可以相等对应于t1=t2,也可以不等对应于t1≠t2;对于多项式的每一个系数,记为1)压缩和解压缩方式-1:Decompress(y)=2
t
y;2)压缩和解压缩方式-2:Decompress(y)=2
t
y+2
t-1
;
3)压缩和解压缩方式-3:Decompress(y)=2
t
y-2
t-1
;上面三种方式,但是如果y=2
t-1
时压缩函数额外输出一个标识符,解压缩函数输入除了y还有这个标识符,此时解压缩输出2
t
y+2
t-1
或2
t
y-2
t-1
技术研发人员:赵运磊,黄兴忠,
申请(专利权)人:上海扈民区块链科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。