LWE问题及其公钥密码方案
错误学习问题(Learning with Errors,简称LWE)由Regev在2005年提出[11],该问题已经成为格密码学中广泛使用的密码学基础。LWE问题是一个平均情况下的问题,Regev在论文[11]中将LWE问题量子归约到格上标准困难问题。因此在LWE问题之上建立的所有密码学方案,都能够将其安全建立在格问题的最坏情况下困难性之上。
本文节选自陈智罡博士的博士论文。
1.1.1 LWE问题
LWE问题就是给出一些关于秘密向量s的“近似”随机线性方程,其目标是恢复秘密向量s。例如给出如下一些“近似”随机线性方程:
14s1+ 15s2+ 5s3+ 2s4≈8 (mod 17)
13s1+ 14s2+ 14s3+ 6s4≈16 (mod 17)
6s1+ 10s2+ 13s3+ 1s4≈3 (mod 17)
10s1+ 4s2+ 12s3+ 16s4≈12 (mod 17)
…………
9s1+ 5s2+ 9s3+ 6s4≈9 (mod17)
在上述每个方程中,加入了一个小的错误,该错误在+1和-1之间,目标是恢复向量s。如果上述方程中没有加入错误,则使用高斯消元法就可以在多项式时间内恢复向量s。但是由于加入了错误,使得该问题变得非常的困难。
LWE问题定义 参数n ≥1,模q ≥ 2,是上的一个错误概率分布。是上的一个概率分布,该分布通过如下方式获得:随机均匀选择一个向量a∈,根据分布选择错误向量e∈,输出(a,b=< a , s > +emod q)。LWE问题是对于s∈,给出任意数量的从取出的独立实例,其目的是输出s。
LWE判定问题 上述LWE问题是一个LWE搜索问题,密码学中更感兴趣的是LWE问题的另外一个版本:平均情况下的LWE判定问题。即对于随机均匀选择的s∈,能够以不可忽略的概率区分分布与均匀分布上的实例。判定LWE问题可以归约到搜索LWE问题。
如果在均匀选择秘密向量s的情况下,判定LWE问题可以被解决,则对于所有秘密向量s,判定LWE问题都可以被解决。
LWE问题与BDD问题 上述LWE问题定义中,对于m个从取出的独立实例,可以用随机均匀矩阵A∈和b=AT s+e表出。所以LWE问题可以看成是随机格上的BDD问题。
参数说明 分布是一个标准偏离是的类似高斯分布,其中,通常取为1/poly(n)。模q一般是关于n的多项式。LWE实例的数量并不重要。
LWE问题的困难性 以下三个原因说明LWE问题是困难的。第一,已知最好的求解LWE问题的算法运行时间是指数级的,即使是对量子计算机也没有任何帮助。第二,LWE问题是LPN问题的自然扩展,而LPN问题在学习理论中被广泛研究而且普遍认为是困难的。此外LPN问题可以形式化为随机线性二元码的解码问题,如果LPN问题的求解算法有一点进步,则意味着编码理论的一个突破。第三,也是最重要的,LWE问题被归约到最坏情况下的格上标准困难问题,例如GapSVP和SIVP[11,85]。
Regev在2005年证明了只要,那么在平均情况下解决LWE问题,其困难性至少与使用量子算法近似格上标准困难问题相同,其中近似因子是。随后Peikert在2009年给出了一个相同近似因子的经典约减而非量子约减,但是需要满足q≥2n/2。最近Brakerski等人在2013年给出了在q为多项式的情况下的一个经典LWE问题的约减,但是在维数上有所损失[120]。
在LWE问题中,s可以随机均匀的取自于。这一方面使得的长度可以更短,另外一方面其困难性不变[111]。
假设根据高斯分布选择的错误向量长度的界是B,则有B≤,得到,从而。该式反映了近似因子与q/B的大小有关,而q/B又与全同态加密方案的计算深度有关,所以当维数n和B固定的情况下,模q越大,全同态加密方案的安全性越低,而全同态加密方案的同态计算能力越高。