一种LAC方案中稀疏多项式乘法的侧信道分析方法

文档序号:30388662发布日期:2022-06-11 12:44阅读:203来源:国知局
一种LAC方案中稀疏多项式乘法的侧信道分析方法
一种lac方案中稀疏多项式乘法的侧信道分析方法
技术领域
1.本发明属于计算机领域中的网络空间安全领域,具体为一种lac方案中稀疏多项式乘法的侧信道分析方法。


背景技术:

2.侧信道分析(side-channel aanlysis,sca)自从1999年被提出后,已经成为密码设备安全的严重威胁之一。侧信道分析通过利用密码芯片在运行过程中泄露的功耗、电磁、时间等物理信息来恢复密码设备中的密钥信息或加密信息。
3.在密码设备中,密码算法是保护加密信息的核心工具,但随着shor算法的提出,ecc、rsa等传统公钥加密算法所基于的数学难题(离散对数的计算难题和大整数分解难题)将被打破,因此待量子计算机问世后,传统公钥密码将受到严重威胁。为实现量子时代下的数据安全,后量子密码(post-quantum cryptography,pqc)也随之呼吁而出,成为当前最火热的研究热点,后量子密码基于所选的数学难题在理论上不仅可以抵抗经典计算机攻击还可抵抗量子计算机的攻击。目前后量子密码主要分为以下几类:基于格的pqc(简称“格密码”),基于编码的pqc,基于多变量的pqc以及基于超奇异同源的pqc。在各类后量子密码中,在目前nist的后量子密码标准化竞选中基于格的pqc数量最多,同时性能上也有较好成绩,因此格密码是最有希望成为下一代公钥密码算法的标准(即最有希望那个成为后量子密码算法的标准)。
4.lac是一种基于ring-lwe(也就是基于环上容错学习问题)的后量子密码,它由我国中科院路献辉团队自主设计的后量子密码方案,且入围了nist后量子密码标准化竞选的第二轮评估。lac方案采用了较小的模数,使lac方案具有不错的性能。
5.在lac方案中,稀疏多项式乘法是其最主要的核心子程序之一,也是该算法计算量较大的模块之一。lac方案中的密钥多项式的系数服从中心二项式分布,取值范围为{-1,0,1}。但在lac方案中,为了提高多项式乘法的性能安全,其密钥多项式采用坐标表示法。密钥多项式的前一部分为值为1的坐标,后一部分表示值为-1的坐标,值为0则不需要保存在密钥多项式里。因此lac的稀疏多项式乘法是一个恒定时间的稀疏多项式乘法,也是普通稀疏多项式乘法的变种,该变种取消了原本稀疏多项式乘法中对系数为{-1,0,1}中哪个值的判断,不仅提高了计算性能,还使得该lac中的稀疏多项式乘法得以恒定时间实现。
6.2018年,aysu a,tobah y等人发表在2018ieee international symposium on hardware oriented security and trust(host)的论文horizontal side-channel vulnerabilities of post-quantum key exchange protocols中提出了水平差分功耗分析(horizontal differential power analysis,hdpa)应用在两个格密码方案(frodo和newhope)中,但是,该方案虽然能够分析出kyber、newhope两种格密码的密钥参数,但该分析方法的分析成功率较低,且效率也非常低。


技术实现要素:

7.发明目的:针对现有技术存在的缺陷,为了有效解决后量子密码算法的侧信道技术的技术问题,达到提升侧信道分析的效率及成功率的技术效果,创造性地提出一种针对lac中稀疏多项式乘法的高效率侧信道分析方法。
8.技术方案:本发明采用以下技术方案实现。一种lac方案中稀疏多项式乘法的侧信道分析方法,包括以下步骤:
9.1.随机产生密文,进行lac算法的解密操作,在无关解密是否成功的情况下,采集密码设备上的功耗信息,作为分析的原始数据。
10.2.针对lac算法采集的功耗数据,进行泄漏点粗略定位和分片。在lac稀疏多项式乘法的外循环功耗部分,直接按均匀分区,每个区代表2个密钥位(密钥位为1和-1的坐标)。在内循环功耗部分也直接进行均匀切割,切割后的每个切片区域代表一个泄漏点。每个泄漏点之间的间隔设为step,则可以将间隔为step个点的功耗点聚在一起,组成一个功耗泄露矩阵,记为矩阵露矩阵,记为矩阵其中n为曲线数量,l为泄露点个数。由于我们间隔为step,因此有step个功耗泄露矩阵。
11.3.联合lac稀疏多项式乘法中所有泄漏点进行分析,得出最佳密钥。lac中稀疏多项式乘法每个外循环包含2个内循环,第一个内循环代表密钥位为1的坐标的操作,第二个内循环代表密钥位为-1的坐标的操作。而每个内循环都连续包含多个涉及同一个密钥位的操作,将每个内循环的操作(共有l个)联合起来作为一个密钥位的泄漏点,取sum1[j]作为中间值,并利用汉明重量模型取其汉明重量,记为汉明矩阵一共k个汉明矩阵(k代表有多少密钥可能数量),每个汉明矩阵有n条曲线,l个泄露点(泄露点个数等于hw矩阵的中间值个数)。结合所有汉明矩阵hw和功耗泄露矩阵t进行cpa/dpa分析,获取最佳猜测密钥。
[0012]
4.将所有需要猜测的密钥空间进行分组,用参数控制分组数量。再举每个分组中的一个作为代表进行分析,获得最佳分组,最后通过遍历最佳分组的所有可能的密钥空间,获得正确密钥。因此通过本方法可以减少大量的猜测空间,提高分析效率。
[0013]
本发明的有益效果是:相比一般的水平分析方法相比,本方法可以高效、快速地分析能量迹信息,来得到所分析的密码算法的秘钥信息,且可调参的分组侧信道分析技术不仅易于实现,还可以减少大量的猜测空间,提高分析效率。
附图说明
[0014]
图1是lac中的稀疏多项式乘法算法描述;
[0015]
图2是一种lac中稀疏多项式乘法的侧信道分析方法流程图;
[0016]
图3是稀疏多项式乘法的外循环均匀分片示意图;
[0017]
图4是单字节密钥的泄露点区域示意图。
具体实施方式
[0018]
下面结合附图对本发明的一种lac方案中稀疏多项式乘法的侧信道分析方法的工作流程做进一步详细说明,我们以在arm平台上分析lac密码算法为例。
[0019]
步骤一:我们将lac的解密算法烧写进密码芯片上。lac中的稀疏多项式乘法(如图1所示)仅占整个解密算法的一部分,且我们采用了密文无关性的功耗采集,因此为了提高采集效率,可以对lac算法进行裁剪(注:在不裁剪的情况下也可以直接烧写)。如图2所示,我们以arm芯片为例,将lac算法在不裁剪的情况下直接烧写进arm芯片中。然后随机产生密文,发给密码设备进行解密,在解密过程中采集稀疏多项式乘法的功耗/电磁信息,作为分析的原始数据(即功耗曲线,假设这里有n条功耗曲线,即随机输入n组数据,进行解密,然后记录解密过程中的电磁/功耗数据,组成一组功耗曲线,该组功耗曲线共有n条功耗曲线)。
[0020]
步骤二:外循环切片。整个稀疏多项式乘法具有多个外循环,但每个外循环所执行的操作是一样的,因此具有相同的功耗/电磁特征,且该循环都为恒定时间实现,具有重复相似性,因此将直接进行均匀切片的方式将功耗曲线切割,每个切片代表一个外循环,每个外循环都包含一个值为1和-1的密钥位对应的操作。如图3所示为lac-light版本的稀疏多项式乘法功耗曲线外循环均匀分片图。
[0021]
步骤三:每个外循环都包含两个内循环,每个内循环都代表一个密钥位的所有操作。另外每个内循环也都为恒定时间实现,且具有重复相似性,因此采用均分切割的泄漏点定位技术,将密钥位i的泄漏点定位出来。如图4所示为lac-light版本的某个密钥位i的所有泄漏点示意图(共136个泄漏点)。每个泄漏点之间的间隔设为step,则可以将间隔为step个点的功耗点聚在一起,组成一个功耗泄露矩阵,记为矩阵由于我们间隔为step,因此有step个功耗泄露矩阵。
[0022]
步骤四:根据lac解密算法流程,以采集功耗矩阵时的n组输入,进行计算所有可能密钥的中间值变量(也就是说,最后一共有k组中间值变量,每组中间值变量都有n个向量,对应n条功耗曲线,每个向量有l个值,对应l个泄漏点,也就是中间值)。该中间值变量取值于图1中的sum1数组和sum2数组,在lac-light版本中,l的长度为136,因此每个密钥位都有136个中间值,分别对应上述的136个泄漏点(sum1或sum2)。
[0023]
步骤五:对所有可能的密钥空间进行分组。比如在lac-light版本中,一共有512种可能的密钥。因此为了方便分组,我们将所有密钥可能进行排序,然后采用倍数关系进行分组(注:分组数量将影响分析效率和成功率)。比如在该例子中可分组为4/8/16/32/64/128等多种分组方式,则每个分组中包含的可能密钥个数为128/64/32/16/8/4。该分组可以通过参数形式进行控制。
[0024]
步骤六:通过对lac进行水平分析,获取最佳分组。我们将在所有分组中,举一个或两个作为本组的代表,进行竞选最佳分组。比如共有16个分组时,每个分组有32种密钥可能。我们可以在分组1中的第16个作为分组1的代表,分组2中,可以令第48个密钥作为分组2的代表,以此类推。计算所有代表的汉明重量,获得16个汉明矩阵
一共有n条曲线,l个泄露点。因此将所有代表的汉明重量矩阵hw和功耗泄露矩阵t进行cpa/dpa计算,得到每个汉明矩阵与功耗泄露矩阵的相关性值,然后通过比较所有相关性值获取最高相关性对应的汉明矩阵分组。则最高相关性对应的分组则为最佳分组。
[0025]
步骤七:遍历最佳分组,获取正确密钥信息。在获得最佳分组之后,为了遍历该分组内的所有可能密钥。我们先计算组内每个可能密钥的汉明矩阵hw,比如在上面16个分组的例子中,每组共有32个可能密钥,因此共有32个汉明矩阵。然后将所有可能密钥对应的汉明矩阵hw与功耗泄露矩阵t进行cpa/dpa计算。同样比较相关性值的大小获得最佳的密钥,则我们认为该密钥为正确密钥。
[0026]
显然,本发明的上述实施案例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1