增强的自然蒙哥马利指数掩蔽的制作方法

文档序号:7609918阅读:131来源:国知局
专利名称:增强的自然蒙哥马利指数掩蔽的制作方法
技术领域
本发明涉及密码学领域,具体涉及目的是对于物理攻击安全的密码算法和设备,例如使用公钥密码系统的智能卡。
背景技术
在CRC出版社1995年出版的Douglas Stinson的《Cryptography,Theory and Practice》(以下称为Stinson)中描述了密码掩蔽方法。Shamir的5,991,415号美国专利(以下称为Shamir)讨论了非侵入式攻击技术和秘密模数的掩蔽技术。Kocher等的6,298,442号美国专利(以下称为Kocher)和Joye等的WO 03014916号PCT出版物(以下称为Joye)也公开了掩蔽方法。
最初在《Mathematics of Computation》44(1985)比得·蒙哥马利(Peter Montgomery)的“Modular Multiplication Without TrialDivision”一文中描述了蒙哥马利算法。6,185,596号美国专利(以下称为596)公开了一种蒙哥马利算法和装置。
将本说明书所提及和引用的所有出版物的公开内容引入作为参考。

发明内容
许多公钥密码系统都利用模指数运算(modulo exponentiation),这种密码系统中的一项共同操作是计算信息的一个幂。例如,加密可能涉及计算明文信息的公开指数次幂,解密可能涉及计算密文信息的私有(秘密)指数次幂。“信息”一词在这里指密码算法的任何输入,这些密码算法的目的包括但不限于加密、解密、数字签名、验证和鉴别。这里的“私有”和“秘密”指的是和公钥密码系统的私有密钥相关的信息。
一个众所周知的指数运算方法涉及用对应于指数中多个“1”那些比特的选择性乘法运算反复进行平方运算。使用这种方法或类似方法进行指数运算的设备可能不安全,这是因为在指数运算过程中,能够从外部监视这一设备(非侵入式),用各种物理手段,例如功耗监视,来读取秘密指数。在指数运算期间进行乘法运算时,把信息选为某个特定值会例如迫使设备消耗可以检测其差别的功率,这种可检测的差别会暴露秘密指数中“1”那些比特的位置(“选定信息攻击”)。有许多众所周知的功率分析技术能够被用来从密码设备提取密钥。因此,设备易于受到建立在功率分析基础之上的选定信息攻击是一个安全危险。除了功率分析以外,还有其它非侵入式的方法能够攻击希望安全的设备,包括检测从设备发出的辐射。这些方法可以依赖于能够从外部检测的可测量的,会泄露能够从中推测出密钥的信息的任意物理现象。
已经将各种技术用于伪装或模糊这种设备的内部操作。一种众所周知的技术是进行哑操作,这种操作(例如在功耗方面或者辐射方面)会产生相似的物理效果,但其结果只是被丢弃,不影响输出。然而,尽管使用了哑操作,通过分析这种选定信息攻击,从计算的角度仍然能够识别插入的哑操作,并由此确定密钥信息。
为了挫败选定信息攻击,设备最好不直接对信息本身进行重要计算,而是针对从这一信息得到的中间值进行运算,优选通过也接收随机输入的信息的掩蔽函数。当然,这样做要求能够从结果中去掉这一掩蔽函数的影响。
上面引用的ElGamal系统可以按照以下方式加以采用给定a,只有加密信息的接收方知道的密钥;x,系统的发送方要加密并且要发送的信息;以及公知元素p,模数;a,指数函数的底;以及接收方的公钥β=αamodp。
发送方秘密地准备并发送y1和y2,其中y1=αkmodp;其中k为随机掩蔽指数,由发送方产生。
y2=xβkmodp=xαak,信息x乘以接收方的公钥。
随后,接收方利用发送的信息y1和y2进行如下运算
M1=y1a=αakmodp]]>;计算y1的a(接收方密钥)次幂;M2=M1-1modp=(αak)-1modp=(αak)p-2modp]]>;接收方对M1进行逆运算;M3=y2M2=x(αak)(αak)-1mod p=x,恢复出来的被掩蔽信息。
请注意,接收方不知道秘密随机掩码。发送方和接收方耗费的资源包括两次指数运算,两种情况下它们典型地都是长运算。
乘法逆元(inverse)的幂也是乘法逆元。例如5*9 mod 11≡1;因此,5和9是关于模11的乘法逆元。
(57mod 11)≡3;并且((5-1)7mod 11)≡(97mod 11)≡4。
(3*4)mod 11≡1;因此,3和4也是关于模11的乘法逆元。
通过对信息的函数而不是信息本身有效地进行计算,也可以将常用来提高计算效率的某些技术用来减小安全危险。尤其是在本领域众所周知,通过消除为了获得模余数而在乘法运算后进行除法运算的必要性,蒙哥马利算法的应用能够提高乘法运算速度。为了获得可靠的安全性,需要采用另一种掩蔽技术,建立在蒙哥马利算法基础之上,应用于信息本身,并且其唯一目的是阻止选定信息攻击。
掩蔽技术可以包括Shamir的方法,这一方法将质数模转化为合数模;从而改变机器操作数的大小和秘密指数。然而,Shamir的方法却假定用户已经知道加密模数的质因数,而实际情况并非如此。此外,改变操作数的大小会严重影响大多数硬件设备的性能。防止进攻的一些其它方法可能不十分有效。例如,Joye证明了Kocher文中建议的采用全等指数(congruent exponent)的无效性。
本发明的一个优选实施例旨在提供方法和装置用于增强蒙哥马利表示的自然掩蔽技术,通过一种方式对信息进一步掩蔽,使指数表示的信息不必进行逆运算,也不必知道加密模数的质因数就能够容易地得到恢复。
本发明的一个优选实施例提供了一种新方法和装置,用于随机掩蔽输入安全设备的信息,以阻挡试图泄露密钥信息如秘密指数的选定信息攻击。本发明的一个优选实施例的目的是提供这种掩蔽,而不降低性能,并利用最少的资源,尤其是不必产生模乘逆元。本发明的一个优选实施例创新地利用蒙哥马利算法的自然特性来维持掩蔽的恢复,而不必明确地产生乘法逆元。具体而言,存在自然蒙哥马利逆元2-n,其中n是模数的比特数,根据本发明的优选实施例,可以由该逆元构建新的掩码。
采用本发明的优选实施例中的方法和装置,并不排除使用对于保护免受攻击有用,通常用于增强这些方法的其它保护性方法和装置。
本发明的一个优选实施例尤其有利于掩蔽Diffie-Hellman密钥交换指数运算、随机数的DSS乘法逆元和利用用户密钥基于合数模数的RSA类型的解密。
因此,根据本发明的一个优选实施例,提供一种方法,用于对输入设备的密文信息进行掩蔽,该设备用于计算这些信息的秘密指数d次幂模二进制模数N,这个二进制模数N有n个比特,该方法包括,利用自然蒙哥马利逆元2-n构造掩码。此外,根据本发明的一个优选实施例,还提供装置用于对输入设备的密文信息进行掩蔽,该设备用于计算这些密文信息的指数d次幂模二进制模数N,这个二进制模数N有n个比特,该装置包括掩码发生器,用于从自然蒙哥马利逆元2-n构造掩码。
此外,根据本发明的一个优选实施例,提供一种方法,用于对输入设备的密文信息进行掩蔽,该设备用于计算这些信息的秘密指数d次幂模二进制模数N,这个二进制模数N有n个比特,该方法包括(a)产生随机整数x;(b)计算出等于2nxmodN这个数的掩码;(c)计算出等于2-nxdmodN这个数的信息恢复码;(d)用这个掩码乘以所述密文信息形成一个乘积;(e)计算这个乘积的秘密指数d次幂模二进制模数N,形成掩蔽的指数表示的信息;以及(f)用这个信息恢复码乘以这个掩蔽的指数表示的信息,形成恢复后的明文信息。
此外,根据本发明的一个优选实施例,还提供装置,用于对输入设备的密文信息进行掩蔽,该设备用于计算这些密文信息的指数d次幂模二进制模数N,这个二进制模数N有n个比特,该装置包括(a)模处理器,用于计算两个数的乘积模二进制模数N,以及计算一个数的d次幂模二进制模数N;(b)随机整数发生器,用于产生随机整数x;(c)掩码发生器,用于计算等于2nxmodN这个数的掩码,并且将这个掩码传送给所述模处理器,以便所述模处理器能够计算密文信息与掩码的乘积模二进制模数N,并且计算该乘积的指数d次幂模二进制模数N,以计算掩蔽的信息;以及(d)信息恢复码发生器,用于计算等于2-nxdmodN这个数的信息恢复码,并且将这个信息恢复码发送给所述模处理器,从而使所述模处理器能够计算掩蔽的信息和信息恢复码的乘积以计算明文信息。
附图简述下面将参考附图仅仅以实例的形式描述本发明,其中

图1是现有技术蒙哥马利模运算处理器的简化框图。
图2是根据本发明的一个优选实施例准备蒙哥马利掩码和信息恢复码的流程图。
图3是根据本发明的优选实施例,将图2中的蒙哥马利掩码用于输入信息的流程图。
图4是说明图3所示方法的优选实施流程图,其中包括,根据本发明的优选实施例,在输入信息上应用蒙哥马利掩码,应用能够在图1或图5所示蒙哥马利模乘装置上工作的蒙哥马利函数。
图5是根据本发明的优选实施例,用于掩蔽和恢复信息的装置的简化框图。
具体实施例方式
安全性难题是生成选定信息指数运算MidmodN,其中每个Mi都是一则信息,d是秘密指数,N是n比特的模数,而不会通过辐射、测量得到的瞬时电流消耗或其它非侵入式物理手段,全部或部分暴露(泄露)d或N。显然,这些数是用二进制方式表示的。
这一设备包括N和d。通常,攻击方知道N,并且希望知道秘密d中0和1的序列。在选定信息攻击中,攻击方通常尝试一个或多个Mi,以建立可检测的指数序列。
图1的简化框图示出了现有技术的蒙哥马利模运算处理器。处理器的核心元件是多路复用器140,它接收来自发生器150的输入,将输入的加数B和从下面选出的一个加数进行相加只包括A的加数110;只包括N的加数120;包括A+N这个和的加数130。请注意,因为运算总是模N运算,因此给任何量加上N不会改变结果的相等性。然而,因为(对实际应用而言)N通常是奇数,N的最低有效位通常都被置位。蒙哥马利算法的一个独特特征是以这样一种方式进行运算,使得结果是一个要乘以2n的数。这么做消除了对结果进行除法运算以求模减的需要。在这一运算的每一部分,检查输入加数B和A,确定其和的最低有效位。如果A为偶数(最低有效位为0),那么A+N是奇数(最低有效位是1),反之亦然。因此,可以将多路复用器140设置成选择使A+B这个和在发送给进位存储加法器160时为偶数(最低有效位为0)所需要的任何输入。
通过平衡统计从而使攻击方不能区分乘法运算和平方运算,或者事实上不能区分用信息的不同幂相乘,将本发明的优选实施例中的这个掩码配置成用来模糊和隐藏在乘法和平方处理期间从外部能够看见的物理效果,例如辐射和电流消耗。
基本蒙哥马利模乘函数包括如下内容H=22nmodN(1)是蒙哥马利恢复变换常数。通常,用余数除法运算计算H。然而,对于其中蒙哥马利乘法比除法效率更高的应用,可以按照如下方式计算HH1=2(n+n/2)H=P(H1·H1)N=2(n+n/2)·2(n+n/2)·2-nmodN=22n可以按照以下公式通过迭代方式应用以上技术来计算H的前项H1、H2……,其中x是整数Hx=2(n+n/(2^x))当(x>0)时H(x-1)=P(Hx·Hx)N=2(n+n/x)·2(n+n/x)·2-nmodN=2(n+n/(2^(x-1))最后H=2(n+n)=22nmodNP域中的蒙哥马利算子,
P(x·y)N=x·y·2-nmodN(2)在每个P域蒙哥马利平方或蒙哥马利乘处引入“蒙哥马利寄生因子”2-nmodN。
公式(1)中的H常数用于为信息M确定容易恢复的蒙哥马利乘数A=P(M·H)N=M·22n·2-nmodN=M·2n(3)A、H和随后的结果为n比特操作数。
在P域进行乘法运算,其中两个操作数A′=A·2nmodN和B′=B·2nmodN都是蒙哥马利操作数,事先乘以2nmodN,就象在公式(3)中一样P(A′·B′)N=A·B·2nmodN(4)计算X,蒙哥马利指数A=M·2n的d次幂X((A)d)N=X((M·2n)d)N=(M)d·2nmodN(5)以及从蒙哥马利指数运算结果的P域,到模自然整数域,恢复操作数P((M)d·2n)·(1))N=Md·2n·1·2-nmodN=MdmodN(6)下面,在利用经典的或蒙哥马利方法来进行指数运算时,通常采用掩码2nxmodN来掩蔽操作数的值。
传统蒙哥马利算法通常由选取信息M开始,并将用H=22nmodN进行蒙哥马利相乘,如同公式(3)中一样。在本发明的优选实施例中,为指数运算准备信息,并用2xnmodN对其进行掩蔽,其中x是随机数。与此相对,现有技术的掩码只是随机数x本身。然而,如前文所指出的那样,这意味着在指数表示的结果中出现因子xd,必须通过乘以逆元x-d去掉。这要求能够计算逆元x-1。本发明的优选实施例中的新掩码2xnmodN则很容易去掉,通常不计算随机数x的逆元。
在本发明的优选实施例中,掩码通常在安全设备的初始化中事先计算好。如果用户策略需要,也可以在每次设备复位时恢复这一掩码。如前文所述,采用本发明的优选实施例不会排除或干扰其它安全方案,如哑元插入。
可以用蒙哥马利算法简单地证明这一概念。
例如,选择d=7,并且在随机数x=2掩蔽的掩蔽序列中找出M7modN替换正常的蒙哥马利算法,用掩码2xnmodN乘以M。最终的蒙哥马利指数被掩蔽,可以通过一个容易获得的掩蔽逆元恢复,举例如下a)通过余数除法或者采用专有的蒙哥马利方法,生成H2=24nmodN(在这里x=2)。
b)准备将生成掩码2xn的掩蔽信息,可以为其产生逆元2-ynmodN。
P(M·H2)N=M·24n·2-nmodN=M·23n=A(7)c)采用Chandah-sutra方法,对A进行蒙哥马利指数运算。指数运算的Chandah-sutra方法在Addison Wesley 1981年出版的DonaldKnuth的《The Art of Computer programming》一书的第二版第2卷的441页(以下称为“Knuth”)中进行了描述P(A·A)N=P(A12)N=M·23n·M·23n·2-nmodN=M2·25nmodN---(8)]]>P(P(A12)N·A)N=P(A23)N=M2·25n·23n·2-n=M3·27n---(9)]]>P((P(A23)N)·(P(A23)N))N=P(A36)N=M3·27n·M3·27n·2-nmodN---(10)]]>P((P(A23)N)·(P(A23)N))N=M6·213nmodN---(11)]]>P((P(A36)N)·A)N=P(A47)N=M6·213n·M·23n·2-nmodN---(12)]]>P((P(A36)N)·A)N=M7·215nmodN---(13)]]>恢复掩码的生成是建立在蒙哥马利寄生因子2-nmodN基础之上的,优选通过单次蒙哥马利乘法运算实现P(1·1)N=2-nmodN(14)然后,通常利用一个类似的指数运算过程,计算这个掩码恢复值的2-14nmod N=Y次幂。
从P域的恢复以及掩码的去除通常是在指数量乘以Y的单次蒙哥马利乘法运算中执行的M7modN=P((M2·215n)·2-14n)N=M7·2n·2-nmodN(15)这表明,既便不知道e(加密指数),选定信息的解密序列通常是在不知道N的totient函数的情况下生成的。
通常,如果2xnmodN随机掩码中的指数乘数x大于90,攻击方就能够既不导出掩码,又不构造具有随机掩码的选定信息,来进行选定信息攻击。
用于具有有限蒙哥马利能力或者具有扩展的欧几里得乘法逆元的设备的蒙哥马利掩码方法图2是说明根据本发明的第一个实施例准备蒙哥马利掩码和信息恢复码的优选步骤的流程图。
在步骤210中,输入秘密指数d和n比特模数N,其中d和N为整数,并根据公式(1)计算H。可以通过单次整数减法计算H1/2=2nmod N2n-N≡2nmod N(16)下一步在步骤220中计算打H-1/2H-1/2=2-nmod N≡P(1.1)N=2-nmod N,如同前面指出的公式(14)中一样。
在步骤230中生成秘密数x。优选x至少为90,假定需要用工作因子290来进行穷尽搜索以攻破密码x。
在步骤250中计算掩码逆元K1K1=2nxmodN=(2n)xmod N(17)在步骤260中计算信息恢复码K2K2=2-nxdmod N=((2-n)x)dmod N(18)如果愿意,可以按照如下方式用x′对K1和K2进行更新K1′=((K1)mod N)x′mod N(19)K2′=((K2)mod N)x′mod N(20)其中,x′通常是随机选择的小正整数。
图3的流程图示出了根据本发明的第二个实施例,将蒙哥马利掩码应用于输入信息,对密文C进行掩蔽的抗选定信息攻击的指数运算的过程,其中d、N、K1和K2是能够获得的(例如,在存储器中)在步骤310中,输入密文C,根据C可以计算C mod N。
在步骤320中,(例如从存储器中)输入N、d、K1、K2。
在步骤330中,计算A1=C*K1mod N,通过模乘运算获得掩蔽的密文。
在步骤340中,计算A2=A1dmodN]]>;掩蔽的模指数=(C*K1)dmodN=M*2nxdmodN。
在步骤350中,恢复明文MM=CdmodN=A2*K2modN=((Cd)(2ndx)(2-ndx)modN。
唯一增加的资源是要存储于存储器的n比特常数K1和K2。
优选装置实施例中掩蔽的蒙哥马利指数运算H=22nmodN可以通过模除计算出来。
H-1/2=2-nmodN≡P(1·1)N=((1·1)2-n)modN是2nmodN的乘法逆元。
x=秘密随机数;2≤x≤96;优选大约90≤x,假定进行穷尽搜索以攻破秘密x,工作因子290是合适的。然后,为了预先计算K1M1=X((H)x)N=X(2n·2n)x=2xn·2nmodN,K1=P(H·M1)N=22n·2n·2nx·2n·2-nmodN=2nx·22nmodN。
预先计算K2时,要注意2-n·2nmodN=1modN。
M2=X(1x)N=X((2-n·2n)x)N=2-nx·2nM3=X((M2)d)N=X((2-nx·2n)d)N=2-nxd·2nK2=P(M3·1)N=2-nxdmodN。
K1和K2通常由一个小正整数x′更新K1←K1′=((K1)modN)x′modNM4=X((M3)x′)N=X(((2-nx·2n)d)x′)N=2-nxx′d·2nK2←K2′=P(M4·1)N=2-nxx′dmodN。
图4的流程图示出了本发明的第三个实施例中,将蒙哥马利掩码用于输入信息的过程,其中利用能够在模乘装置上工作的蒙哥马利函数,对选定密文进行抗选定信息攻击的掩蔽指数运算,并计算CdmodN。进行下列运算在步骤410中,输入或生成未掩蔽的密文信息C。在步骤420中,输入秘密指数d、n比特模数N、掩码K1和信息恢复码K2,这些量是按照前面详细描述的方式计算出来的。
在步骤430中,对密文计算蒙哥马利掩码A1=P(C·K1)N=(C·2nx)·2nmodN。
在步骤440中,计算蒙哥马利掩蔽的指数
A2=P(((C·2nx)·2n)d)N=Cd·2nxd·2nmodN。
在步骤450中,从蒙哥马利P域恢复结果CdmodN=P((A2·K2))N=P((Cd·2nxd·2n)(2-nxd))N。
出于安全考虑,K1和K2一般采用如前文详细描述的过程进行更新。
这种掩蔽的指数运算避免了在每个指数运算前生成H,以相同数目的乘法和平方运算,通常节约4%的处理时间。
图5是根据本发明的第四个实施例,装置掩蔽和恢复信息的框图,可以将其与任何合适的方法一起使用,例如图4所示的方法。模处理器510接收模数520和指数530。随机数发生器540给掩码发生器550和信息恢复码发生器560提供随机整数。将密文信息570输入模处理器510,模处理器510输出明文信息580。在本发明的另一个实施例中,模处理器510用传统的方式进行模运算。然而,在本发明的另一个实施例中,模处理器510进行蒙哥马利运算。
虽然本发明是针对有限个实施例所描述的,但是应该理解,本发明可以有许多变化、修改和其它应用。
应该理解,如果需要,本发明的软件组件可以用ROM(只读存储器)的形式实现。通常,如果需要,软件组件可以用传统技术在硬件上实现。
应该理解,为了清楚起见而在不同的实施例中描述的本发明的各种特征,也可以结合在一个实施例中。相反,为了简便起见而在一个实施例中描述的本发明的各种特征,也可以分别提供或者以任何合适的子组合的方式提供。
本领域的技术人员应该理解,本发明不限于前文描述和示出的内容。相反,本发明的范围由下面的权利要求定义。
权利要求
1.一种方法,用于掩蔽输入密码设备的密文信息,该密码设备用于计算所述信息的秘密指数d次幂模二进制模数N,该二进制模数N有n个比特,该方法包括使用自然蒙哥马利逆元2-n来构造掩码。
2.一种方法,用于掩蔽输入密码设备的密文信息,该密码设备用于计算所述信息的秘密指数d次幂模二进制模数N,该二进制模数N有n个比特,该方法包括生成随机整数x;计算等于2nxmodN这个数的掩码;以及计算等于2-nxdmodN这个数的信息恢复码。
3.用于掩蔽输入密码设备的密文信息的装置,该密码设备用于计算所述密文信息的指数d次幂模二进制模数N,该二进制模数N有n个比特,该装置包括掩码发生器,用于从所述自然蒙哥马利逆元2-n构造掩码。
4.用于掩蔽输入密码设备的密文信息的装置,该密码设备用于计算所述密文信息的指数d次幂模二进制模数N,该二进制模数N有n个比特,该装置包括模处理器,用于计算两个数的乘积模所述二进制模数N,以及计算一个数的d次幂模所述二进制模数N;随机整数发生器,用于产生随机整数x;掩码发生器,用于计算等于2nxmodN这个数的掩码,并将所述掩码传送给所述模处理器,从而所述模处理器计算所述密文信息和所述掩码的乘积模所述二进制模数N,并且计算所述乘积的所述指数d次幂模所述二进制模数N,以计算掩蔽的信息;以及信息恢复码发生器,用于计算等于2-nxdmodN这个数的信息恢复码,并将所述信息恢复码发送给所述模处理器,从而所述模处理器计算所述掩蔽的信息和所述信息恢复码的乘积以计算出明文信息。
5.如权利要求4所述的装置,其中所述模处理器是蒙哥马利模处理器。
6.一种方法,用于掩蔽输入密码设备的密文信息,该密码设备用于计算所述信息的秘密指数d次幂模二进制模数N,该二进制模数N有n个比特,该方法包括使用自然蒙哥马利逆元2-n来构造掩码,将所述密文信息与该掩码相乘,从而形成一个乘积,并利用所述乘积的一个函数恢复明文信息。
7.如权利要求2所述的方法,还包括用所述掩码乘以所述密文信息以形成一个乘积;计算所述乘积的所述秘密指数d次幂模所述二进制模数N,以形成掩蔽的指数表示的信息;以及将所述掩蔽的指数表示的信息乘以所述信息恢复码以形成恢复出来的明文信息。
8.一种方法,用于恢复输入密码设备的密文信息,该密码设备用于计算所述信息的秘密指数d次幂模二进制模数N,该二进制模数N有n个比特,该方法包括用等于2nxmodN这个数的掩码乘以所述密文信息以形成一个乘积;计算所述乘积的所述秘密指数d次幂模所述二进制模数N,以形成掩蔽的指数表示的信息;以及将所述掩蔽的指数表示的信息乘以所述信息恢复码以形成恢复出来的明文信息。
全文摘要
一种方法和装置,用于在会受到选定信息攻击的安全密码设备中通过指数运算掩蔽信息,该攻击的目的在于通过对该密码设备进行非侵入式的物理测试以获取秘密指数信息。通过使用蒙哥马利算法,将随机乘法因子应用到输入信息中,能够容易地去掉该因子而不必计算随机因子的逆元,而在先掩蔽技术则需要计算逆元。这种掩蔽补充并增强了蒙哥马利算法中内在的自然掩蔽特性。本发明的方法非常理想地适用于蒙哥马利运算处理器,但不限于此,该方法还可以和其它安全技术结合使用。
文档编号H04L9/00GK1985458SQ200480040385
公开日2007年6月20日 申请日期2004年11月16日 优先权日2003年11月16日
发明者卡尔米·格雷塞尔, 鲍里斯·多尔古诺夫, 奥迪勒·德鲁埃 申请人:M系统闪存先锋有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1