基于全同态MAC的消息完整性认证方法与流程

文档序号:12037847阅读:871来源:国知局

本发明涉及一种消息完整性认证方法,尤其是涉及一种基于全同态mac的消息完整性认证方法。



背景技术:

现有的消息完整性认证方法是通过构造消息认证码(messageauthenticationcode,mac)来对消息进行认证,其原理是在原始消息发送前,发送方通过散列函数计算得到原始消息的摘要值mac1,在双方(发送方和接收方)共享的会话密钥下,发送方由摘要值mac1获得消息认证码,然后将消息认证码和原始消息一起发送;接收方收到消息认证码和消息后,先用会话密钥对消息认证码进行解密,得到原始消息的摘要值mac1,再利用与发送方计算原始消息的摘要值mac1相同的散列函数计算所收到消息的摘要值mac2,如果mac1和mac2相等,则原始消息没有被篡改,可认证消息的完整性。

但是,现有的消息完整性认证方法均采用的是原始消息在信道中传输,使消息存在被泄露的威胁,导致攻击者可以自由篡改或创建信道中信息。bellare等基于消息认证码提出了xor-mac认证方法,虽然在一定程度上降低了攻击者成功伪造的概率,但是其所传输的仍然是原始消息,仍然存在消息泄露的风险,安全性能不够高。



技术实现要素:

本发明所要解决的技术问题是提供一种将消息以密文的形式在信道中传输,能使发送方和接收方基于密文完成消息的认证,避免了消息被泄露的风险,安全性较高的基于全同态mac的消息完整性认证方法。

本发明解决上述技术问题所采用的技术方案为:一种基于全同态mac的消息完整性认证方法,包括以下步骤:

①将原始消息记为m,m∈{0,1},利用全同态加密技术对m进行处理,得到密文c,c为128位二进制数据;

②采用md5算法对密文c进行处理,得到128位摘要值mac1;

③发送方将密文c和128位摘要值mac1通过信道进行传输,发送给接收方;

④接收方接收到密文和128位摘要值mac1,将接收方接收到的密文记为c1;

⑤采用与所述的步骤②相同的md5算法对密文c1进行处理,得到128位摘要值mac2;

⑥对128位摘要值mac1和128位摘要值mac2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过。

所述的步骤②中采用md5算法对密文c进行处理的具体过程为:

a.在密文c的最低位即右侧先用一个1补位,然后在补位后的1的右侧用若干个0进行补位,得到中间消息,中间消息的长度为512的n倍,n为大于等于1的整数,将该中间消息从左边第一位开始,以512位为单位进行分组,得到n个单元消息,将第k个单元消息记为nk,k=1,2,…,n;将每个单元消息从左边第一位开始,以32位为单位再次进行分组,每个单元消息被分为16个子单元,其中第k个单元消息nk中第j个子单元用mk-j表示,j=1,2,…,16;

b.将md5算法中的四个32位的链接变量记为a、b、c、d,对a、b、c、d进行初始化,使a、b、c、d的初始值为标准幻数;

c.设置四个中间变量o、p、q、r,并对四个中间变量进行初始化:o=a,p=b,q=c,r=d;

d.依次采用第1个单元消息n1的16个子单元m1-1-m1-16至第n个单元消息nn的16个子单元mn-1-mn-16对四个中间变量o、p、q、r进行n次更新,每次更新中对四个中间变量o、p、q、r进行4轮循环更新,每一轮循环更新包括16步运算:

d-1.设定每次更新时,对四个中间变量o、p、q、r进行4轮循环更新的四个非线性函数为:

f(x,y,z)=(x&y)|((~x)&z)(1)

g(x,y,z)=(x&y)|(y&(~z))(2)

其中,&为与运算符号,|为或运算符号,~为非运算符号,⊕为异或运算符号。

d-2.设定第k次更新,对四个中间变量o、p、q、r进行第1轮循环更新时,与非线性函数(1)~(4)有关的操作运算,其中q为待更新变量,wk-j和tk-j分别为对四个中间变量o、p、q、r第k次更新时设定的已知参数,ff(q,x,y,z,mk-j,wk-j,tk-j)表示将x+(q+(f(x,y,z)+mk-j+tk-j)<<<wk-j)的值赋予q,即更新q的值,<<<wk-j表示循环左移wk-j位;在对o进行更新时,q=o,x=p,y=q,z=r;在对p进行更新时,q=p,x=q,y=r,z=o;在对q进行更新时,q=q,x=r,y=o,z=p;在对r进行更新时,q=r,x=o,y=p,z=q;

d-3.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第1轮循环更新,结果如下:

第1步运算:o=ff(o,p,q,r,mk-1,7,0xd76aa478)

第2步运算:r=ff(r,o,p,q,mk-2,12,0xe8c7b756)

第3步运算:q=ff(q,r,o,p,mk-3,17,0x242070db)

第4步运算:p=ff(p,q,r,o,mk-4,22,0xc1bdceee)

第5步运算:o=ff(o,p,q,r,mk-5,7,0xf57c0faf)

第6步运算:r=ff(r,o,p,q,mk-6,12,0x4787c62a)

第7步运算:q=ff(q,r,o,p,mk-7,17,0xa8304613)

第8步运算:p=ff(p,q,r,o,mk-8,22,0xfd469501)

第9步运算:o=ff(o,p,q,r,mk-9,7,0x698098d8)

第10步运算:r=ff(r,o,p,q,mk-10,12,0x8b44f7af)

第11步运算:q=ff(q,r,o,p,mk-11,17,0xffff5bb1)

第12步运算:p=ff(p,q,r,o,mk-12,22,0x895cd7be)

第13步运算:o=ff(o,p,q,r,mk-13,7,0x6b901122)

第14步运算:r=ff(r,o,p,q,mk-14,12,0xfd987193)

第15步运算:q=ff(q,r,o,p,mk-15,17,0xa679438e)

第16步运算:p=ff(p,q,r,o,mk-16,22,0x49b40821)

其中,第k次第1轮循环更新的第1-16步运算中,o、p、q、r如果还没有开始更新,采用其初始值进行计算,如果已更新,则采用其当前运算前被更新后的最新值进行计算;

d-4.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第2轮循环更新,结果如下:

第1步运算:o=gg(o,p,q,r,mk-2,5,0xf61e2562)

第2步运算:r=gg(r,o,p,q,mk-7,9,0xc040b340)

第3步运算:q=gg(q,r,o,p,mk-12,14,0x265e5a51)

第4步运算:p=gg(p,q,r,o,mk-1,20,0xe9b6c7aa)

第5步运算:o=gg(o,p,q,r,mk-6,5,0xd62f105d)

第6步运算:r=gg(r,o,p,q,mk-11,9,0x02441453)

第7步运算:q=gg(q,r,o,p,mk-16,14,0xd8a1e681)

第8步运算:p=gg(p,q,r,o,mk-5,20,0xe7d3fbc8)

第9步运算:o=gg(o,p,q,r,mk-10,5,0x21e1cde6)

第10步运算:r=gg(r,o,p,q,mk-159,0xc33707d6)

第11步运算:q=gg(q,r,o,p,mk-414,0xf4d50d87)

第12步运算:p=gg(p,q,r,o,mk-9,20,0x455a14ed)

第13步运算:o=gg(o,p,q,r,mk-14,5,0xa9e3e905)

第14步运算:r=gg(r,o,p,q,mk-3,9,0xfcefa3f8)

第15步运算:q=gg(q,r,o,p,mk-8,14,0x676f02d9)

第16步运算:p=gg(p,q,r,o,mk-13,20,0x8d2a4c8a)

其中,第k次第2轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-5.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第3轮循环更新,结果如下:

第1步运算:o=hh(o,p,q,r,mk-6,4,0xfffa3942)

第2步运算:r=hh(r,o,p,q,mk-9,11,0x8771f681)

第3步运算:q=hh(q,r,o,p,mk-12,16,0x6d9d6122)

第4步运算:p=hh(p,q,r,o,mk-15,23,0xfde5380c)

第5步运算:o=hh(o,p,q,r,mk-2,4,0xa4beea44)

第6步运算:r=hh(r,o,p,q,mk-5,11,0x4bdecfa9)

第7步运算:q=hh(q,r,o,p,mk-8,16,0xf6bb4b60)

第8步运算:p=hh(p,q,r,o,mk-11,23,0xbebfbc70)

第9步运算:o=hh(o,p,q,r,mk-14,4,0x289b7ec6)

第10步运算:r=hh(r,o,p,q,mk-1,11,0xeaa127fa)

第11步运算:q=hh(q,r,o,p,mk-4,16,0xd4ef3085)

第12步运算:p=hh(p,q,r,o,mk-7,23,0x04881d05)

第13步运算:o=hh(o,p,q,r,mk-10,4,0xd9d4d039)

第14步运算:r=hh(r,o,p,q,mk-13,11,0xe6db99e5)

第15步运算:q=hh(q,r,o,p,mk-16,16,0x1fa27cf8)

第16步运算:p=hh(p,q,r,o,mk-3,23,0xc4ac5665)

其中,第k次第3轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-6.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第4轮循环更新,结果如下:

第1步运算:o=ii(o,p,q,r,mk-1,6,0xf4292244)

第2步运算:r=ii(r,o,p,q,mk-8,10,0x432aff97)

第3步运算:q=ii(q,r,o,p,mk-15,15,0xab9423a7)

第4步运算:p=ii(p,q,r,o,mk-6,21,0xfc93a039)

第5步运算:o=ii(o,p,q,r,mk-13,6,0x655b59c3)

第6步运算:r=ii(r,o,p,q,mk-4,10,0x8f0ccc92)

第7步运算:q=ii(q,r,o,p,mk-11,15,0xffeff47d)

第8步运算:p=ii(p,q,r,o,mk-2,21,0x85845dd1)

第9步运算:o=ii(o,p,q,r,mk-9,6,0x6fa87e4f)

第10步运算:r=ii(r,o,p,q,mk-16,10,0xfe2ce6e0)

第11步运算:q=ii(q,r,o,p,mk-7,15,0xa3014314)

第12步运算:p=ii(p,q,r,o,mk-14,21,0x4e0811a1)

第13步运算:o=ii(o,p,q,r,mk-5,6,0xf7537e82)

第14步运算:r=ii(r,o,p,q,mk-12,10,0xbd3af235)

第15步运算:q=ii(q,r,o,p,mk-3,15,0x2ad7d2bb)

第16步运算:p=ii(p,q,r,o,mk-10,21,0xeb86d391)

其中,第k次第4轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-7.按照步骤d-3至步骤d-6依次完成四个中间变量o、p、q、r的n次更新后,得到第n次4轮循环更新后中间变量o、p、q、r的最终更新值,将第n次4轮循环更新后o、p、q、r的最终更新值与其初始值分别相加,得到第n次4轮循环更新后的32位的链接变量数据源an、bn、cn、dn,an为第n次4轮循环更新后o的最新值与其初始值的和,bn为第n次4轮循环更新后p的最新值与其初始值的和,cn为第n次4轮循环更新后q的最新值与其初始值的和,dn为第n次4轮循环更新后r的最新值与其初始值的和。

d-8.将an、bn、cn、dn拼接,得到128位摘要值mac1,mac1=dncnbnan,其中an为最低位,dn为最高位。采用该md5算法对密文c进行处理,对密文c的任何改动,哪怕改动很小,所计算出的128位摘要值mac2与未改动的密文c的128位摘要值mac1之间会存在很大的区别,同时对于一个已知的原始消息和其mac值,想要找到一个具有相同的mac值的原始消息(即伪造消息)是非常困难,并且采用该算法由密文c计算获得128位摘要值mac1这个过程比较简单。

与现有技术相比,本发明的优点在于通过将原始消息记为m,m∈{0,1},利用全同态加密技术对m进行处理,得到密文c,c为128位二进制数据,采用md5算法对密文c进行处理,得到128位摘要值mac1,发送方将密文c和128位摘要值mac1通过信道进行传输,发送给接收方,接收方接收到密文和128位摘要值mac1,将接收方接收到的密文记为c1,采用md5算法对密文c1进行处理,得到128位摘要值mac2,对128位摘要值mac1和128位摘要值mac2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过,本发明利用全同态允许对密文执行特定的操作后将其输出进行解密,解密所得的结果与对明文(原始消息)进行相同操作的结果相等的特性,先对原始消息(即明文)进行了全同态加密,将消息以密文的形式在信道中传输,再对其构造消息认证码来完成消息的认证,由此能使发送方和接收方基于密文完成消息的认证,认证过程是基于加密后的密文进行处理的,避免了原始消息在传输信道中的传输,可以有效地解决消息被泄露的风险,安全性较高。

具体实施方式

以下结合实施例对本发明作进一步详细描述。

实施例一:一种基于全同态mac的消息完整性认证方法,包括以下步骤:

①将原始消息记为m,m∈{0,1},利用全同态加密技术对m进行处理,得到密文c,c为128位二进制数据;

②采用md5算法对密文c进行处理,得到128位摘要值mac1;

③发送方将密文c和128位摘要值mac1通过信道进行传输,发送给接收方;

④接收方接收到密文和128位摘要值mac1,将接收方接收到的密文记为c1;

⑤采用与步骤②相同的md5算法对密文c1进行处理,得到128位摘要值mac2;

⑥对128位摘要值mac1和128位摘要值mac2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过。

实施例二:一种基于全同态mac的消息完整性认证方法,包括以下步骤:

①将原始消息记为m,m∈{0,1},利用全同态加密技术对m进行处理,得到密文c,c为128位二进制数据;

②采用md5算法对密文c进行处理,得到128位摘要值mac1;

③发送方将密文c和128位摘要值mac1通过信道进行传输,发送给接收方;

④接收方接收到密文和128位摘要值mac1,将接收方接收到的密文记为c1;

⑤采用与步骤②相同的md5算法对密文c1进行处理,得到128位摘要值mac2;

⑥对128位摘要值mac1和128位摘要值mac2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过。

本实施例中,步骤②中采用md5算法对密文c进行处理的具体过程为:

a.在密文c的最低位即右侧先用一个1补位,然后在补位后的1的右侧用若干个0进行补位,得到中间消息,中间消息的长度为512的n倍,n为大于等于1的整数,将该中间消息从左边第一位开始,以512位为单位进行分组,得到n个单元消息,将第k个单元消息记为nk,k=1,2,…,n;将每个单元消息从左边第一位开始,以32位为单位再次进行分组,每个单元消息被分为16个子单元,其中第k个单元消息nk中第j个子单元用mk-j表示,j=1,2,…,16;

b.将md5算法中的四个32位的链接变量记为a、b、c、d,对a、b、c、d进行初始化,使a、b、c、d的初始值为标准幻数;

c.设置四个中间变量o、p、q、r,并对四个中间变量进行初始化:o=a,p=b,q=c,r=d;

d.依次采用第1个单元消息n1的16个子单元m1-1-m1-16至第n个单元消息nn的16个子单元mn-1-mn-16对四个中间变量o、p、q、r进行n次更新,每次更新中对四个中间变量o、p、q、r进行4轮循环更新,每一轮循环更新包括16步运算:

d-1.设定每次更新时,对四个中间变量o、p、q、r进行4轮循环更新的四个非线性函数为:

f(x,y,z)=(x&y)|((~x)&z)(1)

g(x,y,z)=(x&y)|(y&(~z))(2)

其中,&为与运算符号,|为或运算符号,~为非运算符号,为异或异或运算符号;

d-2.设定第k次更新,对四个中间变量o、p、q、r进行第1轮循环更新时,与非线性函数(1)~(4)有关的操作运算,其中q为待更新变量,wk-j和tk-j分别为对四个中间变量o、p、q、r第k次更新时设定的已知参数,ff(q,x,y,z,mk-j,wk-j,tk-j)表示将x+(q+(f(x,y,z)+mk-j+tk-j)<<<wk-j)的值赋予q,即更新q的值,<<<wk-j表示循环左移wk-j位;在对o进行更新时,q=o,x=p,y=q,z=r;在对p进行更新时,q=p,x=q,y=r,z=o;在对q进行更新时,q=q,x=r,y=o,z=p;在对r进行更新时,q=r,x=o,y=p,z=q;

d-3.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第1轮循环更新,结果如下:

第1步运算:o=ff(o,p,q,r,mk-1,7,0xd76aa478)

第2步运算:r=ff(r,o,p,q,mk-2,12,0xe8c7b756)

第3步运算:q=ff(q,r,o,p,mk-3,17,0x242070db)

第4步运算:p=ff(p,q,r,o,mk-4,22,0xc1bdceee)

第5步运算:o=ff(o,p,q,r,mk-5,7,0xf57c0faf)

第6步运算:r=ff(r,o,p,q,mk-6,12,0x4787c62a)

第7步运算:q=ff(q,r,o,p,mk-7,17,0xa8304613)

第8步运算:p=ff(p,q,r,o,mk-8,22,0xfd469501)

第9步运算:o=ff(o,p,q,r,mk-9,7,0x698098d8)

第10步运算:r=ff(r,o,p,q,mk-10,12,0x8b44f7af)

第11步运算:q=ff(q,r,o,p,mk-11,17,0xffff5bb1)

第12步运算:p=ff(p,q,r,o,mk-12,22,0x895cd7be)

第13步运算:o=ff(o,p,q,r,mk-13,7,0x6b901122)

第14步运算:r=ff(r,o,p,q,mk-14,12,0xfd987193)

第15步运算:q=ff(q,r,o,p,mk-15,17,0xa679438e)

第16步运算:p=ff(p,q,r,o,mk-16,22,0x49b40821)

其中,第k次第1轮循环更新的第1-16步运算中,o、p、q、r如果还没有开始更新,采用其初始值进行计算,如果已更新,则采用其当前运算前被更新后的最新值进行计算;

d-4.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第2轮循环更新,结果如下:

第1步运算:o=gg(o,p,q,r,mk-2,5,0xf61e2562)

第2步运算:r=gg(r,o,p,q,mk-7,9,0xc040b340)

第3步运算:q=gg(q,r,o,p,mk-12,14,0x265e5a51)

第4步运算:p=gg(p,q,r,o,mk-1,20,0xe9b6c7aa)

第5步运算:o=gg(o,p,q,r,mk-6,5,0xd62f105d)

第6步运算:r=gg(r,o,p,q,mk-11,9,0x02441453)

第7步运算:q=gg(q,r,o,p,mk-16,14,0xd8a1e681)

第8步运算:p=gg(p,q,r,o,mk-5,20,0xe7d3fbc8)

第9步运算:o=gg(o,p,q,r,mk-10,5,0x21e1cde6)

第10步运算:r=gg(r,o,p,q,mk-159,0xc33707d6)

第11步运算:q=gg(q,r,o,p,mk-414,0xf4d50d87)

第12步运算:p=gg(p,q,r,o,mk-9,20,0x455a14ed)

第13步运算:o=gg(o,p,q,r,mk-14,5,0xa9e3e905)

第14步运算:r=gg(r,o,p,q,mk-3,9,0xfcefa3f8)

第15步运算:q=gg(q,r,o,p,mk-8,14,0x676f02d9)

第16步运算:p=gg(p,q,r,o,mk-13,20,0x8d2a4c8a)

其中,第k次第2轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-5.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第3轮循环更新,结果如下:

第1步运算:o=hh(o,p,q,r,mk-6,4,0xfffa3942)

第2步运算:r=hh(r,o,p,q,mk-9,11,0x8771f681)

第3步运算:q=hh(q,r,o,p,mk-12,16,0x6d9d6122)

第4步运算:p=hh(p,q,r,o,mk-15,23,0xfde5380c)

第5步运算:o=hh(o,p,q,r,mk-2,4,0xa4beea44)

第6步运算:r=hh(r,o,p,q,mk-5,11,0x4bdecfa9)

第7步运算:q=hh(q,r,o,p,mk-8,16,0xf6bb4b60)

第8步运算:p=hh(p,q,r,o,mk-11,23,0xbebfbc70)

第9步运算:o=hh(o,p,q,r,mk-14,4,0x289b7ec6)

第10步运算:r=hh(r,o,p,q,mk-1,11,0xeaa127fa)

第11步运算:q=hh(q,r,o,p,mk-4,16,0xd4ef3085)

第12步运算:p=hh(p,q,r,o,mk-7,23,0x04881d05)

第13步运算:o=hh(o,p,q,r,mk-10,4,0xd9d4d039)

第14步运算:r=hh(r,o,p,q,mk-13,11,0xe6db99e5)

第15步运算:q=hh(q,r,o,p,mk-16,16,0x1fa27cf8)

第16步运算:p=hh(p,q,r,o,mk-3,23,0xc4ac5665)

其中,第k次第3轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-6.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第4轮循环更新,结果如下:

第1步运算:o=ii(o,p,q,r,mk-1,6,0xf4292244)

第2步运算:r=ii(r,o,p,q,mk-8,10,0x432aff97)

第3步运算:q=ii(q,r,o,p,mk-15,15,0xab9423a7)

第4步运算:p=ii(p,q,r,o,mk-6,21,0xfc93a039)

第5步运算:o=ii(o,p,q,r,mk-13,6,0x655b59c3)

第6步运算:r=ii(r,o,p,q,mk-4,10,0x8f0ccc92)

第7步运算:q=ii(q,r,o,p,mk-11,15,0xffeff47d)

第8步运算:p=ii(p,q,r,o,mk-2,21,0x85845dd1)

第9步运算:o=ii(o,p,q,r,mk-9,6,0x6fa87e4f)

第10步运算:r=ii(r,o,p,q,mk-16,10,0xfe2ce6e0)

第11步运算:q=ii(q,r,o,p,mk-7,15,0xa3014314)

第12步运算:p=ii(p,q,r,o,mk-14,21,0x4e0811a1)

第13步运算:o=ii(o,p,q,r,mk-5,6,0xf7537e82)

第14步运算:r=ii(r,o,p,q,mk-12,10,0xbd3af235)

第15步运算:q=ii(q,r,o,p,mk-3,15,0x2ad7d2bb)

第16步运算:p=ii(p,q,r,o,mk-10,21,0xeb86d391)

其中,第k次第4轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;

d-7.按照步骤d-3至步骤d-6依次完成四个中间变量o、p、q、r的n次更新后,得到第n次4轮循环更新后中间变量o、p、q、r的最终更新值,将第n次4轮循环更新后o、p、q、r的最终更新值与其初始值分别相加,得到第n次4轮循环更新后的32位的链接变量数据源an、bn、cn、dn,an为第n次4轮循环更新后o的最新值与其初始值的和,bn为第n次4轮循环更新后p的最新值与其初始值的和,cn为第n次4轮循环更新后q的最新值与其初始值的和,dn为第n次4轮循环更新后r的最新值与其初始值的和;

d-8.将an、bn、cn、dn拼接,得到128位摘要值mac1,mac1=dncnbnan,其中an为最低位,dn为最高位。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1