Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

ECC椭圆曲线详解

朋友一起走
181 0 0
前言; _3 Y5 g( l5 w) @

% C" x5 r. R' f* E$ I; L: j, AECC英文全称"Ellipse Curve Cryptography"7 z% T' E8 e- b& L+ q- q

5 b6 J* u' @$ U9 h- ?% `与传统的基于大质数因子分解困难性的加密方法不同,ECC通过椭圆曲线方程式的性质产生密钥
' _: l; h0 j# T
$ a! L2 V3 h  M4 D4 C% G. IECC164位的密钥产生一个安全级,相当于RSA 1024位密钥提供的保密强度,而且计算量较小,处理速度更快,存储空间和传输带宽占用较少。目前我国居民二代身份证正在使用 256 位的椭圆曲线密码,虚拟货币比特币也选择ECC作为加密算法。' o# P. j- c0 U: K0 r. Q+ q0 j

% {' Y9 x7 E- X. J; L从射影平面讲起
# t* l, T2 Y3 A) _" g# F) u8 C6 G/ C/ z1 J; }+ c
古希腊数学家欧几里得的《几何原本》提出了五条公设。% m2 e8 S3 s( u! k/ P0 R4 Q! }, H
! X5 j  Y+ t; x) j/ C9 [
1.由任意一点到任意一点可作直线。3 V8 m9 W' z  M, t2 m+ @
- Y$ T8 ^2 D6 g% Y. K
2.一条有限直线可以继续延长。) Z3 g. ^' J$ ]' ], K4 j
& q3 b: Q, D+ n& h
3.以任意点为心及任意的距离可以画圆。7 i2 {0 ^* x0 y* q6 l  y: G
: E& m* K/ K0 ]' j' U
4.凡直角都相等。" p6 b" t' h; X* h9 I

7 Y* B% k# X* {, h2 H# P5.同一平面内一条直线a和另外两条直线b.c相交,若在a某一侧的两个内角的和小于两直角,则b.c两直线经无限延长后在该侧相交。
$ ~- L( s2 d& ]/ L' L
2 O+ F! I  r# j, H《几何原本》只有在第29个命题
1 _7 j) H1 o6 A( O8 p! {3 Z2 @% k! Z" ?/ H$ J* p
一条直线与两条平行直线相交,则所成的内错角相等,同位角相等,且同旁内角之和等于两直角6 X9 l% g! V2 B/ E

2 n3 l' F5 D) h0 v9 i中才用到第五公设,即《几何原本》中可不依靠第五公设而推出前28命题。因此,一些数学家提出,第五公设能不能不作为公设,而作为定理?能不能依靠前四个公设来证明第五公设?这就是几何发展史上最著名的,争论了长达两千多年的关于“平行线理论”的讨论. ^6 K) y5 a2 J
  I! ]. v7 _" r; J7 P4 H& p& q
1820年代,俄国喀山大学罗巴切夫斯基用“至少可以找到两条相异的直线,且都通过P点,并不与直线R相交”代替第五公设,然后与欧氏几何的前四个公设结合成一个公理系统,他经过细致深入的推理过程中,得出了一个又一个在直觉上匪夷所思,但在逻辑上毫无矛盾的几何体系。0 E/ u) B( d! K5 R1 Q

, t, n% h. ^2 q4 q5 ~; k, c( p这种几何学被称为罗巴切夫斯基几何,简称罗氏几何。从罗氏几何学中,可以得出这样一个结论:逻辑上不矛盾的一些公理都有可能提供一种几何学。现存非欧几何的类型可以概括如下:
6 y# u9 z; S1 J3 t
1 |. U$ s/ N; h" X: g; O1.坚持第五公设,引出欧几里得几何。
% E2 G/ ]. g3 m8 y8 z" N$ @% i' I7 N) @
2.“可以引最少两条平行线”为公设,罗氏几何(双曲几何)。$ `5 L+ S0 _6 N- z4 f
5 T# ^$ K4 }- D5 S2 C0 K7 a' m, U- @
3.“一条平行线也不能引”为公设,黎曼几何(椭圆几何)9 z* H" g! d- v

$ s! I5 x3 |) i/ O7 R/ l  e, y左:双曲几何,即罗氏几何;中:欧几里德几何;右:椭圆几何,即黎曼几何
  t' ?- E; ^! Z3 z8 X7 }7 d  O; {. e7 k
了解非欧式几何,就可以理解平行线的交点。
) Z8 `/ ?8 b) s# P; Y/ U- I: G* W3 H
定义平行线相交于无穷远点P∞,使平面上所有直线都统一为有唯一的交点3 u. z4 G1 n; Y, D4 y

1 l0 b" n! y5 d性质:! f  e  H+ [' b! H/ O
: w6 g% N8 X. |5 u" M  U: }
1.一条直线只有一个无穷远点;一对平行线有公共的无穷远点
% e* u+ V6 Y) F: N# T) b! @- F' A; h9 V
2.任何两条不平行的直线有不同的无穷远点(否则会造成有两个交点)
0 `1 N3 R4 d- U  ]$ p
) |7 Q' U$ ]: e7 L/ R/ N3.平面上全体无穷远点构成一条无穷远直线
  i( p+ y" E& n4 |& {5 [  h& B4 T1 |/ U8 I3 d
射影平面:平面上全体无穷远点与全体平常点构成射影平面+ E6 L* G6 j1 v

+ E1 ?$ K" }0 }& M% \+ |5 m2 \射影平面点的定义
8 \$ k5 j4 Y# G9 c; c; U- D0 z1 m
对普通平面上点(x,y),令x=X/Z,y=Y/Z,Z≠0,则投影为射影平面上的点(X:Y:Z)
/ ^: s8 m, R- l6 c8 y7 _# S$ t1 {' G5 j2 w
求点(1,2)在新的坐标体系下的坐标0 [' w. D" N% t5 o! P+ p3 Z
7 ]. I. Z7 D3 b5 t
∵X/Z=1 ,Y/Z=2(Z≠0)
4 D: ?, g  B6 K& q# ?' c# R% P5 z. X7 H
∴X=Z,Y=2Z ∴坐标为(Z:2Z:Z),Z≠07 [6 T' M0 J3 w$ c9 z  n. E

/ H& e4 V% l9 L& @即(1:2:1)(2:4:2)(1.2:2.4:1.2)等形如(Z:2Z:Z),Z≠0的坐标都是(1,2)在新的坐标体系下的坐标% A! v6 W; b# ?& N' s# n6 t" ]8 Y
8 f1 C: u# A& A* y# H0 `
(2) 求平行线L1:X+2Y+3Z=0 与L2:X+2Y+Z=0 相交的无穷远点
5 B. ]7 L  J: K5 K1 K
1 l( L) {; {4 `* a+ ?* L∵ L1∥L2 所以有Z=0, X+2Y=0! D0 \# {; @! X% I$ ]8 C) p6 c

( a! n1 B5 ^! d  s- Y3 @∴坐标为(-2Y:Y:0),Y≠0
+ g) b0 g1 J) F: v# k& y3 C4 V/ A) Z; M; o9 k8 a
即(-2:1:0)(-4:2:0)(-2.4:1.2:0)等形如(-2Y:Y:0),Y≠0# d4 t  g# W% k
7 U; v. J% E* t! U6 M
椭圆曲线) U) V2 t2 e- p2 v7 Q

* l; @& T, E0 Q  p- c. k一条椭圆曲线是在射影平面上满足威尔斯特拉斯方程(Weierstrass)所有点的集合9 G5 q$ O2 S; f( N9 d
. ?; ~! r) M& e5 y" |) _  D8 V7 f
Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3' ?! I  [- X# M7 Q/ v- ]# x9 [

5 Y) I% U/ d+ L! ~6 }' |: c1椭圆曲线方程是一个齐次方程  X; j. |! f5 {( q
% X% }( L3 F5 ~  u
2曲线上的每个点都必须是非奇异的(光滑的),偏导数FX(X,Y,Z)、FY(X,Y,Z)、FZ(X,Y,Z)不同为0; a$ \  _. f) o1 S

- T* D! l# o; K& Q# r8 f3圆曲线的形状,并不是椭圆的。只是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程故得名1 @6 f) d0 D; l1 Q
* C& Q/ E% X, ~- S& M
椭圆曲线示例
. i" _' |: B( t. v& _4 u# D
- `2 p- [! W* u( `! T' S- t非椭圆曲线示例
0 p& H; v# k; ^/ C. V7 {) q! |& ]$ h. q& ^0 ~, d
这两个方程都不是椭圆曲线,因为他们在(0:0:1)点处(即原点)没有切线,不满足椭圆曲线每个点都必须是非奇异的(光滑的),
7 x' y( X) y/ Z9 w
, Z2 a7 p  E+ _2 R椭圆曲线普通方程
* @( l3 H0 z  }+ z# l* _
( T% n- G5 o6 U, {1 s$ i! N5 {* a1 M椭圆曲线普通方程:. L2 `: V; K1 V8 b) E
% t" P, I8 O: E  H. X
无穷远点 (0, Y, 0)
4 S% G& a9 ?  X
. E. S# ]$ H5 {& Y% U2 o5 u平常点(x,y)斜率k:- C3 X; z2 Y8 P6 x; }

  O2 u/ u' s% A8 S椭圆曲线阿贝尔群
! l3 ^: S& o) A9 Y/ S" l  i, O; f
2 t8 o  `  r! v/ c9 N* r我们已经看到了椭圆曲线的图象,但点与点之间好象没有什么联系。我们能不能建立一个类似于在实数轴上加法的运算法则呢?这就要定义椭圆曲线的加法群,这里需要用到近世代数中阿贝尔群。, a& W" a1 M# @, P, f, j2 F: S4 T5 y

& P3 h( d; ^1 ~# B+ ~* S在数学中,群是一种代数结构,由一个集合以及一个二元运算所组成。已知集合和运算(G,*)如果是群则必须满足如下要求
  b+ q. f. I' o' N. a. f- W% `& j7 \/ p
封闭性:?a,b∈G,a*b ∈ G
. c; A' X$ R' c; F9 _) N5 k' C9 [3 @
结合性: ?a,b,c∈G ,有 (ab)c = a* (b*c)/ x; D$ L! P) I6 E
' u# R3 C+ S4 M  f
单位元:ョe∈G, ?a ∈G,有ea = ae = a
& V8 t' N) G& n) B' U5 }5 P, T+ [4 V' S1 s$ O
逆元: ?a ∈G ,ョb∈G 使得 ab = ba = e
7 L' f: v( \9 [0 b' a: j/ R3 E7 K% k, @7 [1 a
阿贝尔群除了上面的性质还满足交换律公理a * b = b * a
: B  A) R* O; y! p/ C& v" _& o+ A; @  J9 E) d# t  ]
同样在椭圆曲线也可以定义阿贝尔群。  {  Q9 N2 Y% d" N- G2 k, e1 u' j0 P

/ l3 W) x/ C6 M/ V任意取椭圆曲线上两点P、Q(若P、Q两点重合,则作P点的切线),作直线交于椭圆曲线的另一点R’,过R’做y轴的平行线交于R,定义P+Q=R。这样,加法的和也在椭圆曲线上,并同样具备加法的交换律、结合律' Y2 p* W! k- \

' R/ Q/ L2 H4 ]; M4 j同点加法3 |; ^4 o/ H: G7 z6 k
6 N. s& H9 o1 U, ?; j; P; o4 M
若有k个相同的点P相加,记作kP% [* o* |- U+ t# N3 @5 _
& Q$ c; k0 ?$ n; }1 Y
P+P+P=2P+P=3P
8 G8 b) A( i- _
1 d$ a! r5 u8 p. g有限域椭圆曲线
! E/ ~- l2 {6 A& Y  f; T, Z* b  k8 [) p3 V. Z
椭圆曲线是连续的,并不适合用于加密;所以,我们必须把椭圆曲线变成离散的点,我们要把椭圆曲线定义在有限域上。3 F. Y' U# [% i1 S4 j

3 `2 J- c, u/ f' B* H6 p) v4 N6 Q: B我们给出一个有限域Fp
# {; t' r: r4 A" Y$ L
1 i( ^) h7 h/ _; y1 P" S" O% eFp中有p(p为质数)个元素0,1,2,…, p-2,p-1
& C4 M8 H3 x% i4 C1 m' g
5 N) f2 C$ H% m9 ]+ K% [2 ], g4 \Fp的加法是a+b≡c(mod p)* z+ c) t2 u, Q3 ~) C3 B3 Y' ~
1 t8 c! V7 _" a$ M- p5 q
Fp的乘法是a×b≡c(mod p)- n% F) F, i% b* I5 ?0 @
- c+ H  D% C% [: F& X7 e% r% x
Fp的除法是a÷b≡c(mod p),即 a×b^(-1)≡c (mod p),b-1也是一个0到p-1之间的整数,但满足b×b-1≡1 (mod p)
5 z5 I0 p; w- E: n" h7 p, k/ M. W$ C' A. c, y" H
Fp的单位元是1,零元是 0
  z$ d; D1 E9 `
  G. Z; x4 d. C. m; K. {0 uFp域内运算满足交换律、结合律、分配律% q' ~1 d0 U# l: x* N
* M9 K; U: k4 H
椭圆曲线Ep(a,b),p为质数,x,y∈[0,p-1]
# n8 C( W$ Z- T: G& a4 W$ ]4 ]  V* |% n' z' m
选择两个满足下列约束条件的小于p的非负整数a、b0 L+ [2 c9 }. ], s
) [: l. l; P0 ?8 }
Fp上的椭圆曲线同样有加法
; I* @- h/ b! s2 h( ~: r
' Z1 q8 a( f% h( [5 Z7 z; W: S& f1.无穷远点 O∞是零元,有O∞+ O∞= O∞,O∞+P=P
9 Z: ^) Z' r( U/ Z" `! M+ {
* P. L5 C: J& I( r; q9 e7 L2.P(x,y)的负元是 (x,-y mod p)= (x,p-y) ,有P+(-P)= O∞
8 G6 G: ^* Q4 z
; [; L) f' R$ G8 k  d$ t( a3.P(x1,y1),Q(x2,y2)的和R(x3,y3) 有如下关系:
, @. k" }2 s1 ^6 p" u) n1 ?7 W! B$ b4 |: P
x3≡k2-x1-x2(mod p)
" k' u% q) ]# I; a8 \4 }) T; f* Y' H: Y
y3≡k(x1-x3)-y1(mod p)
8 B7 Z! O# i% Q% |- e/ t. R* |2 {# ?" P* |- w( A' L# f
若P=Q 则 k=(3x2+a)/2y1mod p- n5 H- p. B$ L- l; _1 ]

- l& d  O3 J  Y0 D" x5 r6 H若P≠Q,则k=(y2-y1)/(x2-x1) mod p
% ]1 U: i. f" i" h, c2 e+ }  C7 G# {# E; y" A; O
例题椭圆曲线已知E23(1,1)上两点P(3,10),Q(9,7),求(1)-P,(2)P+Q,(3) 2P
& _, n8 @3 x. _, A, J" R" V
- E4 D$ O( m% L+ x补充:
8 B4 B- k0 u, B( F# c
+ C' r3 h1 c% n1 ?# x" Q( X$ d5 g% M3 i-2^(-1) mod 23 进行两部分计算( ]  l, }" O* s; C6 e* j. `

* r3 B9 D) _6 j, w; S% ]& u& o- s0 ^(1) 先算 2^(-1) 对应的数A, 在这里2^(-1)不是2的-1次方,而是2的逆元* R/ o( T$ C) Y: l# Q. H7 G

4 F. N/ u& y5 a$ r) R(2) 再算-A mod 233 Q2 g+ k: a  b5 |! o
0 W7 E$ ]* Y9 G( i8 q) L
(1) 计算第一步
8 ?! O. f" W  l& p, L* ^
2 M; ]) x- u: L% X/ u/ Q" q根据有限域除法规则 2 * 2^(-1) = 1 mod 23
' W; g/ ?! d# A% Q8 v* P! u$ v+ [$ k6 ^
即 2A = 1 mod 23 ==> 2A = 23 + 1 == > A = 12# P8 k0 t/ J$ h4 s- v- ~2 a6 I
# e+ f+ [9 p3 L7 u5 \  \2 M( {& D
(2) 计算第二步
4 g/ C" E7 p" Y" e' C1 y3 w# E& F! _4 b& T* ?' S# O
-A mod 23 ==> -12 mod 23 即 23 -12 = 11
* n$ w! y: J. k" L5 c* ]& P1 H9 A
所以有
5 o6 h+ ^' n9 m# I& k: A/ H  T5 l& [5 I3 u5 Q# g* D
-2^(-1) mod 23 = 11! d# T' r$ n2 n! Q. W5 a* C- B1 c

, q' Z2 ~, y5 b0 v有限域椭圆曲线点的阶
; @, `' o& ]4 V& e4 Y+ w# {* C; @8 p0 _+ r" _" t5 `
如果椭圆曲线上一点P,存在最小的正整数n使得数乘nP=O∞ ,则将n称为P的阶
1 q2 p3 [* G1 _2 @6 W* l0 z7 B' W, ]
1 _" F3 C/ j- `: q! W4 [2 ?' {若n不存在,则P是无限阶的
' F4 N% }) E9 Z
$ Q! Z( |+ L# P: t计算可得27P=-P=(3,13)
6 c1 j0 \1 _' H, Z, ^: }$ U0 {9 _* h" w4 J. p% P
所以28P=O ∞ P的阶为28
# n8 `, K! q- }* r, f
5 E. k) `- e; o1 I* X  @5 C, x这些点做成了一个循环阿贝尔群,其中生成元为P,阶数为29。显然点的分布与顺序都是杂乱无章
7 ~, _4 h7 S- s; ~: Y+ T. X- v; v& m7 a* m7 ^4 L. C1 z5 U
椭圆曲线加密
" c% Y1 x+ y  h2 N! U) T( ?# Q& ?% \% s2 f: A0 \
考虑K=kG ,其中K、G为椭圆曲线Ep(a,b)上的点,n为G的阶(nG=O∞ ),k为小于n的整数。则给定k和G,根据加法法则,计算K很容易但反过来,给定K和G,求k就非常困难。因为实际使用中的ECC原则上把p取得相当大,n也相当大,要把n个解点逐一算出来列成上表是不可能的。这就是椭圆曲线加密算法的数学依据# Z  X% v% P' P  ?  d  H- q# `
2 ]! ?; m9 j  L
点G称为基点(base point)9 ?% C2 s6 S$ d' }3 M2 D
' [' r; k5 i$ l6 F
k(k
, D' \( G5 ?6 p
: P9 k% S5 L% w/ }- F' fK为公开密钥(public key)5 S; a* O' w0 Q# v

4 C* _  u! X; X+ ^* D2 qECC保密通信算法" f5 Q( \) m( i2 X: [; f  z

3 t# v- V7 {' A8 R3 [1.Alice选定一条椭圆曲线E,并取椭圆曲线上一点作为基点G 假设选定E29(4,20),基点G(13,23) , 基点G的阶数n=37
) \! S/ c4 l& ~# Z( Q! Q7 d5 i
0 o5 }) C& H1 U2.Alice选择一个私有密钥k(k
, Z& ]% F- K* m% u8 l
* V) _$ U2 r' j3 L" L4 v3.Alice将E和点K、G传给Bob) W; D. n% L4 W9 ]  {% l( u
! p5 ^* H) Q. w. r8 E, \
4.Bob收到信息后,将待传输的明文编码到上的一点M(编码方法略),并产生一个随机整数r(r* U" }* w. q5 S5 q( n- R
9 p2 I! B* i& l1 a! f1 ]: Y$ o& I
5.Bob计算点C1=M+rK和C2=rG C1= M+6K= M+625G=M+2G=(3,28)+(27,27)=(6,12) C2=6G=(5,7): s+ l/ M5 P7 m: Y' t) X( [, s
6 @. H) s; q* w8 \8 v! S9 U! @3 h
6.Bob将C1、C2传给Alice( i" _; G& d# r; S; Q2 t: K' ]# @
# v! B( i& W) c  ]
7.Alice收到信息后,计算C1-kC2,结果就应该是点M C1-kC2 =(6,12)-25C2 =(6,12)-25*6G =(6,12)-2G =(6,12)-(27,27) =(6,12)+(27,2) =(3,28)
3 H* O9 h8 ]9 D% v. V/ ^' k3 V
5 z; C0 A9 S% \' ?, [0 h( H数学原来上能解密是因为:C1-kC2=M+rK-krG=M+rkG-krG-M
8 k5 [3 g2 a; ~3 P- a# G- b5 d5 _/ `. A8 m! u
ECC技术要求6 f4 D: B3 _7 }7 B9 v
' O& Y/ Y# F4 B
通常将Fp上的一条椭圆曲线描述为T=(p,a,b,G,n,h)p、a、b确定一条椭圆曲线(p为质数,(mod p)运算)G为基点,n为点G的阶,h是椭圆曲线上所有点的个数m与n相除的商的整数部分
$ H% V; m% f" w! L9 o) p2 o( ^" c% t
参量选择要求:8 j1 m4 s2 J! s0 G
% }- p. R2 H$ {7 D1 `
p越大安全性越好,但会导致计算速度变慢200-bit左右可满足一般安全要求n应为质数h≤4;p≠n×h ;pt≠1(mod n) (1≤t<20)4a3+27b2≠0 (mod p)
4 @! ?1 b5 ]' w% G* a5 z0 }* I0 B" \( a
ECC的应用$ H4 h5 v% N9 D% T, p* z

' P8 W2 [+ X/ I. T6 B$ x, j比特币系统选用的secp256k1中,参数为8 V" W' B% y; y7 x! _

4 T0 W, |/ w9 t7 x- x8 s8 l  \; wp = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2^256 ? 2^32 ? 2^9 ? 2^8 ? 2^7 ? 2^6 ? 2^4 ? 1
! b8 M' x, u: B. p. L0 j
0 l9 a% G: r- a3 D" }a = 0, b = 7/ x4 ]$ c3 k' D6 j# q

4 W  E0 T- G& K+ [# D+ `% K( kG=(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
( y7 y0 K+ D& ~, t5 K
7 L* T( v# Y# w- C# En = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141  \* e: C2 |0 r( x

' H5 j% q2 q2 ^/ ]/ sh = 01- E5 B3 s* A/ N# D& j4 M

$ m; E9 `0 u5 a, C0 ?7 SECC vs. RSA - 优缺点) D6 u" q6 Z4 K5 h! o( ?! q
6 K* |, l* V$ B+ P3 K
优点
9 X& K4 R  J, ?9 X' G) L1 Y2 I9 f* j
安全性能更高1 U( I& A# s8 k- Y5 {
; P, }1 z0 ^& W) z
160位ECC与1024位RSA、DSA有相同的安全强度
0 u$ F' d. v0 N+ T: B# P2 E3 X1 m" f' C5 n1 x& Y) |
处理速度更快5 H. E1 ?3 j" U- P( H

1 e; H0 T/ T/ r3 D1 E( }在私钥的处理速度上,ECC远 比RSA、DSA快得多
$ y4 ^: a* T3 x1 U  g* F) g  Z  T% }6 r' {  d
带宽要求更低
- j# K1 L* l# Y2 b0 _, O3 @' B' |9 |' K+ q& }' |# f$ q- i5 I/ u
存储空间更小
5 c4 K) N* m+ x' h& Z3 }2 ]/ r: g* N
ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多) _! X- }9 \# q/ n3 H

$ E+ |! K: b' w0 n缺点8 L/ Q5 ~/ v* y7 B! y- B: ?
. \! a1 i, l: C) r- k, E7 ~6 H
设计困难,实现复杂
% x9 ~& F$ q+ l8 T+ }
7 l& z& Y- m0 q4 Z" ]如果序列号设计过短,那么安全性并没有想象中的完善
8 X, V) [3 r, M) X; L+ n+ M
: V$ I( F' x, w1 u$ V, e  t0 H; c
标签: ECC 椭圆曲线
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

朋友一起走 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16