《Post-quantum RSA》阅读报告20152100123

《Post-quantum RSA》阅读报告

20152100123卓翔

一、文章主要思想与工作

文章主要是提出了一种新型改进版的后量子RSA。这个后量子RSA比现在通行的RSA密码体系更加能够抵抗量子计算机的攻击。但在理论层面,这个进步只是把“完全不安全”(敌方破解几乎跟合法用户解密一样快)提升到了“稍微有点安全可言”(破解的速度低于加密解密的速度),远远没有达到正统的安全标准(破解的计算量指数增长)。该文结论是:目前版本的RSA在量子算法面前不堪一击,因此该文章介绍了一种新的量子分解算法GEECM,它比Shor算法和所有预量子分解算法快得多。GEECM成为后量子RSA参数选择的主要限制之一,在某种意义上可以对抗已知的量子算法。

二、讨论相关技术

量子位提供了难以想象的海量数字存储和运算能力,但此处还需要能调动得起量子计算机这可怕性能的量子算法,才能让量子计算具备实际用途。后量子密码术是个活跃的研究领域,但没有在原理层面证明任何一个公钥密码体制可以抵抗量子计算机甚至经典计算机。一个公钥密码体制可以抵抗某种算法的攻击(包括量子算法),不等于能从原理上证明其安全性,因为后者是要证明它可以抵抗任何已知和未知算法的攻击。而至今唯一能从原理上严格证明安全性的密码体制,就是量子密码术。这是量子密码术与所有的公钥密码体制之间的根本差別。

目前人类对于量子算法研究里已经形成公众影响力的领域是信息安全——具体点说就是加密和解密,尤其是后者。其中最有名的是1994年的Shor算法,这个算法可指导量子计算机进行大数因子分解,而大数因子分解正是目前流行的公开密钥体系RSA的核心。

Shor把因数分解的计算量减少到了多项式级别。由于合法用户加密解密也是需要计算量的,而Shor的量子算法强大到了破解RSA跟合法用户解密几乎一样快。所以为了对抗已知的量子算法的攻击,该文章提出了一种改进的RSA版本。

在老派的安全性定义下,即面对多项式时间敌手时的渐近安全性的定义下,后量子RSA没有达到安全的标准。然而,后量子RSA看起来确实提供了一个合理水平的具体的安全性。没有任何公钥密码体系在多项式时间的量子敌手的面前是安全的;但是有公钥密码体系在比如说基本上是线性时间的量子敌手的面前是安全的。后量子RSA就是其中一个候选者。

传统的RSA是把两个质数相乘。该文章提出,通过一系列数学技巧(快速的乘法以及随机生成质数的方法等等),可以把加密解密的计算量都控制在正比于n,然后把非常多的质数相乘,使得n非常大,就可以让破解的计算量显著地超过加密解密的计算量。简而言之,就是把加密解密的计算量(n)降低到了破解的计算量(n的平方)之下。该文章把这种改进版RSA称为后量子RSA。

三、后量子RSA算法

(亲爱的斌头老师,很抱歉我水平有限,写不出代码,请海涵……)

1、后量子分解算法

新的量子分解算法GEECM,比Shor算法和所有预量子分解算法快得多。量子环算法:GEECM。更高效的方法是采用最好的预量子算法来寻找小素数,并使用量子技术来加速这些算法。

在标准猜想下,ECM使用2^((lgy)^(1/2+o(1)))环操作来找到素数p≤y。在对o(1)进行更详细的分析的基础上得出截断值在2^30以下。

ECM的最新变体是EECM(使用Edwards曲线的ECM)。EECM选择爱德华兹曲线(Edwards curve)x^2+y^2=1+d^2y^2超过Q,或者选择具有已知非扭转点P的扭曲Edwards曲线;EECM也选择一个较大的整数s,并使用Edwards加法定律来计算曲线上P的倍数,特别是用整数的一小部分表示的x坐标x(sP)。环算法的输出是这个分数的分子。总的来说,计算需要(7+o(1))lgs乘法(其中一半以上是平方)和相当数量的加法和减法。

如果s被选为lcm{1,2,...,z},那么lgs≈1.4z,所以这个曲线计算使用大约10z的乘法。如果z∈L^(c+o(1))为y→∞,其中L=exp(logyloglogy)且c是一个常数,那么标准猜想意味着每个素数p≤y是由概率1/L^(1/2c+o(1))得出。标准猜想也意味着曲线几乎是独立的,所以尝试L^(1/2c+o(1))曲线。尝试所有这些曲线的总成本是L^(c+1/2c+o(1))环操作。对于c=1/√2,表达式c+1/2c取最小值1;那么总成本就是L^(√2+o(1))环操作。

使用量子计算机的GEECM(Grover plus EECM),以加速相同的EECM计算。Grover的方法是加速搜索函数的根:如果函数f的输入是概率为1/R的f的根,则经典搜索执行R的R评估,而Grover的方法是执行关于√R量子评估f。考虑函数f,其输入是EECM曲线的选择结果,并且当该曲线选择的EECM结果具有与n相同的非平凡因子时,其输出恰好为0。EECM通过经典搜索找到f的根;GEECM通过Grover的方法找到了f的根。如果选择s和z,那么f的输入就是f的概率为1/L^(1/2c+o(1))的根,所以GEECM只使用L^(1/4c+o(1))量子估计的f,总的L^(c+1/4c+o(1))量子环运算。对于c=1/2,表达式c+1/4c取其最小值1;那么总的成本就是L^(1+o(1))环操作。

总而言之,GEECM将环操作从L^(√2+o(1))减少到L^(1+o(1)),其中L=exp(logyloglogy)。对于相同数量的操作,GEECM将logy增加了2+o(1),几乎是可以找到的素数的两倍。

2、RSA可扩展性

后量子RSA公钥n需要相当大才能抵抗上述后量子分解算法中描述的攻击。RSA可扩展性分析了可用于RSA密钥生成、加密、解密、签名生成和签名验证的最佳算法的可扩展性。

(1)选用小指数。基本的RSA公钥运算是计算一个n次方的模。这个模幂运算使用大约lge平方模n,并且由于标准的窗口技术,o(eg)需要额外的乘法模n。为简单起见,该文章取e=3。计算n次模n,然后取n个模n和一个常数乘nn。每个步骤都使用标准的快速乘法技术来进行(lgn)^(1+o(1))位操作。

(2)多素数。基本的RSA密钥操作是计算eth根模n。对于e=3,选择n作为与2模3一致的不同素数的乘积;那么x→x^3modn的倒数是x→x^d mod n,其中d=(1+2Πp|n(p-1))/3。但是d不是一个小指数,它大约有lgn个位,所以需要以下情况做加速。

计算x^d mod n的一个经典加速是计算x^d mod p和x^d mod q,其中p和q是n的主要因数,组合为x^d mod n中国剩余定理的适当的显式形式。费马的同一性x^p mod p=x mod p进一步意味着x d d mod p=x^(d mod(p-1))mod p(因为d mod(p-1)≥1)并且类似地有x^d mod q=x^(d mod(q-1))mod q。指数d mod(p-1)和d mod(q-1)只有n的一半;指数x^d mod n因此被具有半尺寸指数和半尺寸模数的两个指数代替。

如果n是多素数的乘积,例如k≥3个素数,则使用(1/k)大小的指数和(1/k)大小的模数的k次取幂。由于素数较小,计算也变得容易得多。如果素数太小,那么攻击者就可以使用上述讨论的环算法,特别是量子计算机之前的EECM和量子计算机之后的GEECM。

该文章的重点是多重RSA如何扩展到更大的模数n。在量子计算机之前,最主要的威胁是EECM和NFS,平衡这些威胁意味着每个素数p有(lgn)^(2/3+o(1))位,即k∈(lgn)^(1/3+O(1))。在量子计算机诞生之后,最主要的威胁是GEECM和Shor算法,平衡这些威胁意味着每个素数p只有(lglgn)^(2+o(1))个比特,即k∈(lgn)/lglgn)^(2+o(1))。RSA密钥生成、解密和签名生成,采取(lgn)^(1+o(1))位操作。

(3)密钥生成。k-prime指数-3RSA公钥n是k个与2模3相同的不同的素数p的乘积。特别地,后量子RSA公钥n是k个不同的素数p与2相等的乘积模3,其中每个素数p具有(lglgn)^(2+o(1))位。标准的素数生成技术使用(lgp)^(3+o(1))位操作。

一个标准的加速是检查p是否可以被任何通过某个极限的幂整除,比如y。这个可分性测试中存在一个随机整数的概率大约为1/logy,如果试算组不是原始的随机数,则将原始的随机数池减少到(logp)/logy随机数。传统的观点认为,控制审判的成本需要y被选为lgp中的一个多项式,只保存一个因子(lglgp),因此仍然需要(1gp)^(3+o(1))位操作。

一个非标准的加速是通过分批试验或分批光滑检测来代替试验分割(或筛分)。算法是读取正整数的有限序列S和素数的有限集合P,并使用b(lgb)^(2+o(1)得到S中每个整数的最大P光滑除数,其中b是P和S中的总位数。特别地,如果P是通过y的整数集合,并且S是每个具有Θ(y/lgp)的整数的序列,(lgp)比特,则b是Θ(y),该算法仅使用y(lgy)^(2+o(1))比特运算,即(lgp)(lgy)^(2+o)位操作。较大的序列S可以平分为大小为Θ(y/lgp)的序列,每个元素S产生相同的性能。

为了做得更好,假设S的原始大小至少为2^(2α),并且y=2^(2^0),y=2^(2^1),y=2^(2^)2,依此类推,直到y=2^(2^α)。每个步骤都将S中剩下的一半元素作为复合材料除去;下一步的成本大约是每个元素的四倍,但只适用于一半的元素。对于S的每个原始元素,总成本只是(lgp)(2^α)^(1+o(1))位操作。每个原始元素具有约1/2^α的存活概率并产生一个指数运算,其代价是(lgp)^(2+o(1))位操作。选择2^α∈(lgp)^(0.5+o(1))为S的每个原始元素(即(lgp))平衡这些代价为(lgp)^(2.5+o(1))为每个生成的素数。

在后量子RSA的情况下,满足S的原始大小的假设:必须生成(lgn)^(1+o(1))素数,所以S的原始大小是(lgn)^1+o(1)),对于2^α∈(1+o(1))lglgn,至少为2^(2^α),由于lgp∈(lglg n)^(2+o(1)),所以α的选择满足2^α∈(lgp)^(0.5+o(1)素数也是平衡的,就每个p而言(lgn)/k∈(lgp)^(1+o(1)),所以用这种方式生成k个素数使用k(lgp)(2.5(1))=(lgn)(lgp)^(1.5+o(1))=(lgn)(lglgn)^(3+o(1))位运算。

(4)加密。Shoup的“RSA-KEM”等最新的机制简单地使用RSA对随机数据的n位进行加密,对随机数据进行散列,得到一个密钥,用密钥对用户的消息进行加密和认证,并且不需要任何填充。

真正的随机数据可以通过流密码产生的伪随机数据来模拟一个更小的密钥。这包含几个可伸缩密码,其产生来自Θ(b)位密钥的Θ(b)位输出块,猜测每个输出比特,使用b^(2+o(1))比特运算,即b^(1+o(1))比特运算。在后量子RSA的情况下,有一个b∈Θ(lglgn),所以产生lgn伪随机比特成本(lgn)(lglgn)^(1+o(1))比特运算。也可以将相同的密码转换成散列函数,其效率只有一个常数因子的损失,所以对这些比特进行散列也会导致比特操作的成本(lgn)(lglgn)^(1+o(1))。

乘法还需要(lgn)(lglgn)^(1+o(1))位操作。平方、减模n、乘法和另一个减法模n一起取(lgn)(lglgn)^(1+o(1))位操作。因此,RSA加密的总体成本是(lgn)(lglgn)^(1+o(1))比特操作加上在产生的密钥下加密和认证用户消息的成本。

(5)解密。首先减少密文模n的所有素因子。采用(lgn)(lglgn)^(2+o(1))位运算使用余数树或缩放余数树。然后计算每个素数模的立方根,立方根模p取(lgp)^(2+o(1))位操作,所有立方体根都一起取(1gn)(2+o)。然后重建立方根n。使用快速插值技术来执行(lgn)(lglgn)^(2+o(1))位操作。最后散列立方根。RSA解密的总体成本是(lgn)(lglgn)^(2+o(1))位操作,加上在得到的密钥下验证和解密用户消息的成本。在后量子RSA的情况下,加密的速度比加速解密要慢得多。

(6)签名生成和验证。用于RSA签名的标准填充方案涉及上面讨论的相同操作,例如散列为短字符串并使用流密码将短字符串扩展为长字符串。生成一个签名和(lgn)(lglgn)^(1+o(1))以验证签名,加上散列用户消息的代价。

四、未来的研究方向、未解决的难题

首先,大的秘密(big secret)可以防止恶意软件限制数量的旁路攻击和有限数量的漏洞。基本思想是限制侧通道和出口通道的时间和/或带宽,而且这些限制可以阻止攻击者提取所需的秘密。 分析后量子RSA中的秘密提供这种保护的程度是很有意思的。 然而,系统的其他部分可能会损害正面的答案,而这些部分并没有把重心放在扩展数据上。

我们的批量生成算法表明,为了帮助降低能耗,RSA的所有用户(包括传统的预量子RSA的用户)都应该将他们的密钥生成计算委托给NIST或另一个可信的第三方。除了速度可以提高外,还可以使用户生成新的RSA密钥的同时并更频繁地删除旧的RSA密钥,从而限制了密钥被盗用的危害。然而,所有可信的第三方协议都引发了安全问题,并且所有已知技术安全地分配或委托RSA计算的成本都很高。这里面临的挑战是证明,与一次一个用户的RSA密钥生成相比,如何更有效地执行安全的多用户RSA密钥生成。

后续工作的另一个自然方向是将后量子RSA集成到标准互联网协议(如TLS)中。这种集成在概念上很简单,但需要解决许多系统级的挑战,例如对加密库允许的RSA密钥大小的各种限制。如果目的仅仅是为了防止过去的流量完全失窃(“前向保密”),则用户可以通过预先生成许多RSA密钥来获得加速,并且在第一次使用之后不久就擦除每个密钥。在生成每个密钥之后不久就会删除每个密钥,有时会被称为帮助保护未来的流量免受有限类型的泄露。

量子密码术的还有一个最明显的缺点就是慢。由于密钥是通过单光子的发射和接收产生的,条件十分苛刻,所以生成密钥的速度目前都是在每秒多少k的量级。在一次性便笺加密中,明文跟密钥一样长,所以传输信息的速度就等于生成密钥的速度。如果用AES、DES之类不等长加密的对称密码算法,速度倒是上去了,但又有可能被数学破解了。此外,量子密码术的成本应该也不低。

五、参考文章

【1】《Post-quantum RSA》

【2】《徐令予:炒作量子通信工程,连潘建伟都担心》http://www.guancha.cn/XuLingyu/2017_10_31_432886_s.shtml

【3】《量子保密通信:了解科学和工程,认清李鬼与李逵(上)》http://p.baidu.com/daily/view?id=99279

【4】《量子保密通信:了解科学和工程,认清李鬼与李逵(下)》http://p.baidu.com/daily/view?id=99375

你可能感兴趣的:(《Post-quantum RSA》阅读报告20152100123)