一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

抗SPA攻击的国密SM2算法中非定点标量乘法的计算方法

2022-05-26 13:41:11 来源:中国专利 TAG:

抗spa攻击的国密sm2算法中非定点标量乘法的计算方法
技术领域
1.本技术涉及信息安全技术领域,特别涉及一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法、装置、电子设备及存储介质。


背景技术:

2.sm2是我国自主设计的基于椭圆曲线的商用公钥密码算法标准,已在金融行业等关键领域得到广泛使用,其采用由国家密码局推荐的256位椭圆曲线参数。sm2中椭圆曲线上的非定点标量乘法是计算一个256位的标量k与一个椭圆曲线上的非固定点p的乘积[k]p。作为耗时最长的运算,非定点标量乘法的速度直接决定了国密sm2算法的效率。非定点标量乘法的计算使用椭圆曲线上点的倍点和点加组合完成,而这些基础的点运算由素域上的加法、减法、乘法和求逆组合而成。
[0003]
简单功耗分析(simple power analysis,spa)攻击是一种分析算法运行时的能量曲线以破解密钥的侧信道攻击方法。减少分支跳转语句和固定算法流程是在密码算法实现时常用的抗spa攻击方法。为了密码算法安全性,sm2的非定点标量乘法实现需要充分考虑抗spa攻击的要求。
[0004]
对sm2算法非定点标量乘法进行抗spa攻击的速度优化实现可以直接提高sm2算法的性能,利于国产sm2密码算法的推广,但是相关技术中的抗spa攻击的sm2实现方案性能相对较低,亟待解决。


技术实现要素:

[0005]
本技术提供一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法、装置、电子设备及存储介质,以解决相关技术中抗spa攻击的sm2算法非定点标量乘法实现效率不高等问题。
[0006]
本技术第一方面实施例提供一种抗spa攻击的国密sm2算法中非定点标量乘法的计算,包括以下步骤:将待运算的标量乘法计算公式中的标量进行展开,得到所述标量的展开式;根据预先计算的多个小倍数点和所述标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的循环计算。
[0007]
可选地,在本技术的一个实施例中,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的计算之前,还包括:根据多个椭圆曲线上的非固定点计算所述标量的展开式的小倍数点。
[0008]
可选地,在本技术的一个实施例中,将待运算的标量乘法计算公式中的标量进行展开,包括:将所述标量按照预设窗口大小进行展开。
[0009]
可选地,在本技术的一个实施例中,将待运算的标量乘法计算公式中的标量进行展开,包括:根据窗口大小w对标量k使用次连续的移w位操作完成展开,获得展开式
[0010]
可选地,在本技术的一个实施例中,计算多个椭圆曲线上的非固定点的小倍数点,包括:采用中间数据复用方法使用多次点加法预计算所述非固定点p,[2]p直到[2
wi-1]p的坐标,得到多个所述小倍数点。
[0011]
可选地,在本技术的一个实施例中,根据预先计算的多个小倍数点和所述标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的计算,包括:设置索引i,从开始往下遍历到0,结果记为r,初始化为o,其中,w为展开窗口大小;每次循环均计算出[2w]r和[2w]r [ki]r两个点的坐标,再根据ki的取值情况选择一个点进入下一次循环,其中,k为所述标量。
[0012]
可选地,在本技术的一个实施例中,进行待运算的标量乘法计算公式的循环计算,包括:在所述循环计算中,调用素域的加法、减法、乘法和求逆运算,其中,所述素域乘法使用蒙哥马利模乘算法,所述素域求逆使用蒙哥马利模逆算法。
[0013]
本技术第二方面实施例提供一种抗spa攻击的国密sm2算法中非定点标量乘法的计算装置,包括:展开模块,用于将待运算的标量乘法计算公式中的标量进行展开,得到所述标量的展开式;计算模块,用于根据预先计算的多个小倍数点和所述标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的循环计算。
[0014]
本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以执行如上述实施例所述的抗spa攻击的国密sm2算法中非定点标量乘法的计算方法。
[0015]
本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以执行如上述实施例所述的抗spa攻击的国密sm2算法中非定点标量乘法的计算方法。
[0016]
由此,本技术至少具有如下有益效果:
[0017]
通过将待运算的标量乘法计算公式中的标量进行展开,得到标量的展开式;根据预先计算的多个小倍数点和标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的循环计算。通过对标量乘法使用的基础算法进行深入优化,大幅提高抗spa攻击的实现方案的运行速度。由此,解决了抗spa攻击的sm2算法非定点标量乘法实现效率不高等问题。
[0018]
本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
[0019]
本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0020]
图1为根据本技术实施例提供的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法的流程图;
[0021]
图2为根据本技术一个实施例提供的快速约减操作原理图;
[0022]
图3为根据本技术一个实施例提供的原始的蒙哥马利模逆算法示意图;
[0023]
图4为根据本技术一个实施例提供的优化后蒙哥马利模逆算法示意图;
[0024]
图5为根据本技术一个实施例提供的抗spa攻击的国密sm2算法中非定点标量乘法的计算方法优化实现总体框架图;
[0025]
图6为根据本技术实施例的抗spa攻击的国密sm2算法中非定点标量乘法的计算装置的示例图;
[0026]
图7为申请实施例提供的电子设备的结构示意图。
[0027]
附图标记说明:展开模块-100、计算模块-200、存储器-701、处理器-702、通信接口-703。
具体实施方式
[0028]
下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
[0029]
下面参考附图描述本技术实施例的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法、装置、电子设备及存储介质。针对上述背景技术中提到的抗spa攻击的sm2算法非定点标量乘法实现效率不高的问题,本技术提供了一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法,在该方法中,主要通过标量乘法[k]p中的k按窗口大小w展开为2w进制;预计算若干p的小整数倍点保存备用以及基于展开式使用倍点法和点加法完成[k]p运算三部分,结合分支简化、中间数据复用和寄存器使用策略优化这三种技术,对标量乘法的基础算法和底层实现进行深入优化。同时融合pbsm算法和窗口法思想,基于分支固定策略保证实现的抗spa攻击性质。最终使得抗spa攻击的sm2算法非定点标量乘法运算速度有大幅提升。由此,解决了抗spa攻击的sm2算法非定点标量乘法实现效率不高等问题。
[0030]
具体而言,图1为本技术实施例所提供的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法的流程示意图。
[0031]
如图1所示,该抗spa攻击的国密sm2算法中非定点标量乘法的计算方法包括以下步骤:
[0032]
在步骤s101中,将待运算的标量乘法计算公式中的标量进行展开,得到标量的展开式。
[0033]
可选地,在本技术的一个实施例中,将待运算的标量乘法计算公式中的标量进行展开,包括:将标量k按照预设窗口大小w进行展开。
[0034]
需要注意的是,标量展开过程具体为将待运算的标量乘法[k]p中标量k按给定窗口大小w使用次连续的移w位操作完成展开,获得展开式同时,窗口大小w可根据实际情况进行设置,该展开式将用于指导主循环过程。主要在中间数据复用过程中对其进行多次调用,上述主循环及中间数据复用的具体执行过程将在下述进行详细介绍。
[0035]
在步骤s102中,根据预先计算的多个小倍数点和标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的循环计算。
[0036]
可选地,在本技术的一个实施例中,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的计算之前,还包括:根据多个椭圆曲线上的非固定点计算标量
的展开式的小倍数点。
[0037]
具体地,根据点p计算展开式中可能出现的全部若干个小倍数点的过程即为点的预计算过程。在该过程中计算多个椭圆曲线上的非固定点的小倍数点,包括:采用中间数据复用方法使用多次点加法预计算非固定点p,[2]p直到[2
wi-1]p的坐标,得到多个小倍数点。
[0038]
可选地,在本技术的一个实施例中,根据预先计算的多个小倍数点和标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的计算,包括:设置主循环的索引i,从开始往下遍历到0,结果记为r,初始化为o,其中,w为展开窗口大小;每次循环均计算出[2w]r和[2w]r [ki]r两个点的坐标,再根据ki的取值情况选择一个点进入下一次循环,上述过程即为标量乘法主循环过程,其中,k为标量。
[0039]
需要说明的是,标量乘法主循环过程结合pbsm算法和窗口法的思想,根据k的展开式和点p的预计算表使用倍点和点加两种运算完成[k]p的计算,从而保证了每次固定使用w次倍点和一次点加处理k展开式中的一项,进而保证了抗spa攻击的性质。
[0040]
可选地,在本技术的一个实施例中,进行待运算的标量乘法计算公式的循环计算,包括:在循环计算中,调用素域的加法、减法、乘法和求逆运算,其中,素域乘法使用蒙哥马利模乘算法,素域求逆使用蒙哥马利模逆算法。
[0041]
需要说明的是,点的预计算过程和标量乘法主循环过程都会频繁调用素域上的加法、减法、乘法和求逆这四个基础运算模块,素数域运算是本技术实施例计算过程中基础运算部分,包括加法、减法、乘法和求逆。
[0042]
其中,p是sm2算法标准选用的素数,本技术根据sm2的椭圆曲线参数对底层素数域进行实现,采用素数为256位素数p=2
256-2
224-2
96
2
64-1。因此选择字长为64的大整数表示。该素域中元素a被表示为其中i为遍历素数域元素a每个系数的索引,ai表示组成a的第i个64位系数。素数域运算中的加法和减法比较简单,只要对各个系数做带进位或者借位的加和减,最后进行减p或加p进行正规化即可。
[0043]
举例而言,素域上加法模块先做两整数a和b的加法获得c=a b,再计算c

=c-p。最后根据减法借位情况使用条件选择指令从c和c

中选取得到最终结果。上述的素域上减法模块先做两整数a和b的减法获得c=a-b,再计算c

=c p。最后根据加法进位情况使用条件选择指令从c和c

中选取得到最终结果。
[0044]
素域上乘法模块使用改进后的蒙哥马利模乘算法。在计算时,原始的蒙哥马利模乘使用乘法完成模约减操作,其利用sm2选择的素数p的良好性质,即只使用移位和加法而非乘法完成模约减步骤,在具体实现时使用mulx、adcx和adox进行指令并行化。本技术的实施例使用优化的约减方式提高模乘效率,快速约减原理如图2所示。由于p=2
256-2
96-2
224
2
64-1,将最末64位的数字t0在模p意义上等价于2
256
t0 2
64
t
0-2
224
t
0-2
96
t0。即相当于将t0分别进行四次移位后,与较高系数进行加减。由此可快速地将t0归0,将复杂的使用乘法完成模约减的过程转化为简单的几次加减,大幅减少了时间消耗。
[0045]
素数域上的求逆模块使用改进后的蒙哥马利模逆算法。原始的蒙哥马利模逆算法如图3所示,其中主循环过程每次只最多处理中间变量u或v的一个2因子。但利用tzcnt指令可以实现一次处理全部的2因子。此外模逆算法每次主循环退出后可以确定u和v的奇偶性情况,本技术根据这一点进一步简化循环过程,利用分支简化思想改进模逆算法,由此设计
了优化的蒙哥马利模逆算法,如图4所示。该算法使用tzcnt指令一次性处理多个比特位,使用奇偶性预判定的思路固定循环中分支走向,大幅减少算法循环次数。
[0046]
需要注意的是,基础的点运算通过调用上述底层素数域上的运算来实现,以用于执行点的标量乘法运算。本技术的实施例使用jacobian坐标与仿射坐标的混合点加算法、jacobian坐标的二倍点算法和z坐标相等的jacobian坐标点加算法。
[0047]
举例而言,记(xi,yi,zi)为一个椭圆曲线点的jacobian坐标,xi,yi,zi分别为点的三个坐标分量。上述三个算法的运算式如下:
[0048]
1、jacobian坐标与仿射坐标的混合点加算法计算(x3,y3,z3)=(x1,y1,z1) (x2,y2,1)的算式为:
[0049][0050]
2、z坐标相等时,jacobian坐标点加算法计算(x3,y3,z3)=[2](x1,y1,z)的算式为:
[0051][0052]
3、jacobian坐标的二倍点算法计算(x3,y3,z3)=(x1,y1,z1) (x1,y1,z1)的算式为:
[0053][0054]
非定点的标量乘法运算过程建立在底层素数域运算以及基础点运算的实现基础之上,即根据预先计算的多个小倍数点和标量的展开式,利用固定数目的倍点运算和点加运算实现待运算的标量乘法计算公式的循环计算。本技术通过采用上述非定点标量乘法的计算方法,在底层素域运算模块中,乘法较改进前加速20%,模逆较改进前加速30%。加法和减法由于使用条件选择代替分支跳转具备抗spa攻击的性质。由于算法的改进和具体实现时对细节的深入优化,本技术的实施例执行一次sm2算法非定点标量乘法用时恒定,具有抗spa攻击性质,且每次计算消耗时钟周期数较已有最好同类实现减少约11.5%。
[0055]
下面通过一个具体实施例对本技术的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法进行详细说明。
[0056]
图5为抗spa攻击的国密sm2算法中非定点标量乘法的计算方法优化实现总体框架图,如图5所示,计算一个非定点的标量乘法r=[k]p分为三步:首先,将标量k按给定窗口大小进行展开;其次,预计算点p的若干个小倍数点;最后,进行主循环过程根据k的展开式和点p的预计算表使用倍点和点加两种运算完成[k]p的计算。下面以窗口大小w设为5为例进行分析。
[0057]
1)标量k的展开
[0058]
需要将k按窗口大小为5进行展开,得到形式的展开式。展开步骤如下:
[0059]
step1.1令i=0;
[0060]
step1.2重复step 3到step 5直到i>51;
[0061]
step1.3ki=k mod 32,k=k>>5;
[0062]
step1.4若ki>16,则ki=k
i-32,k=k 1;
[0063]
step1.5i=i 1;
[0064]
step1.6返回k展开式的系数序列(k
51
,k
50


,k1,k0)。
[0065]
2)点p的预计算
[0066]
需要计算点p的若干小倍数点坐标以便主循环过程使用。步骤如下:
[0067]
step2.1使用一次倍点和连续14次点加计算出[2]p,[3]p直到[16]p的坐标;
[0068]
step2.2将[1]p,[2]p到[15]p的坐标y分量取反,分别得到[-1]p,[-2]p到[-15]p的坐标;
[0069]
step2.3随机取一个点坐标记为[0]p;
[0070]
step2.4返回预计算点坐标序列([-15]p,[-14]p,

,[-1]p,[0]p,[1]p,

,[15]p,[16]p)。
[0071]
3)主循环过程
[0072]
主循环需要根据标量展开式组合预计算得到的各点计算出r=[k]p。下面给出主循环步骤,其中,r0和r1为中间变量;[ki>0]为一逻辑判定式,当ki>0时取值为1,否则取0。
[0073]
step 3.1令i=51,r0=o,r1=o;
[0074]
step 3.2重复step 3到step 5直到i=-1;
[0075]
step 3.3r1=r0 [ki]p;
[0076]
step 3.4i=i-1;
[0077]
step 3.5返回
[0078]
需要注意的是,上述计算过程的点加和倍点使用次数和使用顺序均固定,与k和p的取值均无关,这保证了该实现的抗spa攻击性质。
[0079]
根据本技术实例提出的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算方法,主要通过进行底层素数域运算,使用素数域运算实现基础点运算,继而利用固定数目的点加和倍点运算结合pbsm算法和窗口法思想三个部分,实现抗spa攻击的非定点标量乘法。本技术的实施例计算一次标量乘法需约18.5万个时钟周期,而现有的国密sm2算法非定点标量乘法抗spa攻击实现的最快速度是每次运算约21.9万个时钟周期,提速约11.5%。可见,由于本技术对sm2算法的实现过程的深入优化,使得这种抗spa攻击的实现方案运行速度大幅提高。此外,本技术实现的加速主要来源于对底层素数域运算算法的深入优化实现,这可以应用到其它同类椭圆曲线运算的优化实现上。
[0080]
其次参照附图描述根据本技术实施例提出的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算装置。
[0081]
图6是本技术实施例的抗spa攻击的国密sm2算法中非定点标量乘法的计算装置的方框示意图。
[0082]
如图6所示,该抗spa攻击的国密sm2算法中非定点标量乘法的计算装置10包括:展开模块100和计算模块200。
[0083]
其中,展开模块100用于将待运算的标量乘法计算公式中的标量进行展开,得到标
量的展开式。计算模块200用于根据预先计算的多个小倍数点和标量的展开式,利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的循环计算。
[0084]
可选地,在本技术的实施例中,抗spa攻击的国密sm2算法中非定点标量乘法的计算装置10还包括:预计算模块,用于利用固定数目的倍点运算和点加运算进行待运算的标量乘法计算公式的计算之前,根据多个椭圆曲线上的非固定点计算标量的展开式的小倍数点。
[0085]
可选地,在本技术的实施例中,展开模块100具体用于根据窗口大小w对标量k使用次连续的移w位操作完成展开,获得展开式
[0086]
可选地,在本技术的实施例中,预计算模块具体用于采用中间数据复用方法使用多次点加法预计算非固定点p,[2]p直到[2
wi-1]p的坐标,得到多个小倍数点。
[0087]
可选地,在本技术的实施例中,计算模块200还包括:遍历单元,用于设置索引i,从开始往下遍历到0,结果记为r,初始化为o,其中,w为展开窗口大小;循环单元,用于每次循环均计算出[2w]r和[2w]r [ki]r两个点的坐标,再根据ki的取值情况选择一个点进入下一次循环,其中,k为标量。
[0088]
可选地,在本技术的实施例中,计算模块200还包括:调用单元,用于在循环计算中,调用素域的加法、减法、乘法和求逆运算,其中,素域乘法使用蒙哥马利模乘算法,素域求逆使用蒙哥马利模逆算法。
[0089]
需要说明的是,前述对抗spa攻击的国密sm2算法中非定点标量乘法的计算方法实施例的解释说明也适用于该实施例的抗spa攻击的国密sm2算法中非定点标量乘法的计算装置,此处不再赘述。
[0090]
根据本技术实例提出的一种抗spa攻击的国密sm2算法中非定点标量乘法的计算装置,通过标量乘法[k]p中的k按窗口大小w展开为2w进制;预计算若干p的小整数倍点保存备用以及基于展开式使用倍点法和点加法完成[k]p运算三部分,结合分支简化、中间数据复用和寄存器使用策略优化这三种技术,对标量乘法的基础算法和底层实现进行深入优化。同时融合pbsm算法和窗口法思想,基于分支固定策略保证实现的抗spa攻击性质。最终使得抗spa攻击的sm2算法非定点标量乘法运算速度有大幅提升,有利于国产sm2密码算法的推广,具有重要意义。
[0091]
图7为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
[0092]
存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序。
[0093]
处理器702执行程序时实现上述实施例中提供的抗spa攻击的国密sm2算法中非定点标量乘法的计算方法。
[0094]
进一步地,电子设备还包括:
[0095]
通信接口703,用于存储器701和处理器702之间的通信。
[0096]
存储器701,用于存放可在处理器702上运行的计算机程序。
[0097]
存储器701可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0098]
如果存储器701、处理器702和通信接口703独立实现,则通信接口703、存储器701
和处理器702可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0099]
可选的,在具体实现上,如果存储器701、处理器702及通信接口703,集成在一块芯片上实现,则存储器701、处理器702及通信接口703可以通过内部接口完成相互间的通信。
[0100]
处理器702可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0101]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的抗spa攻击的国密sm2算法中非定点标量乘法的计算方法。
[0102]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0103]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0104]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0105]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0106]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献