我是靠谱客的博主 现实鲜花,这篇文章主要介绍椭圆曲线点加运算硬件实现数学原理,现在分享给大家,希望可以做个参考。

有限域取模运算:

设$f(x)=x^m + x^k +1 $

设$c(x)=c_{2m-2}x^{2m-2} + c_{2m-3}x^{2m-3} +…c_{m}x^{m}+ …c_{2}x^{2} + c_{1}x +c_0 $

c ( x ) = ( c 2 m − 2 x m − 2 + c 2 m − 3 x m − 3 + c 2 m − 4 x m − 4 + . . . c m ) ( x k + 1 ) + c m − 1 x m − 1 + c m − 2 x m − 2 + . . . c 1 x + c 0 c(x) =(c_{2m-2}x^{m-2} +c_{2m-3}x^{m-3} +c_{2m-4}x^{m-4} +...c_m ) (x^k +1) +c_{m-1}x^{m-1} +c_{m-2}x^{m-2} +...c_1x + c_0 c(x)=(c2m−2​xm−2+c2m−3​xm−3+c2m−4​xm−4+...cm​)(xk+1)+cm−1​xm−1+cm−2​xm−2+...c1​x+c0​

根据同余性质: x m ≡ x k + 1 m o d ( x m + x k + 1 ) x^{m} equiv x^k +1 mod(x^m+x^k+1) xm≡xk+1mod(xm+xk+1) 所以 x 2 m − 2 ≡ x m − 2 ( x k + 1 ) m o d ( x m + x k + 1 ) x^{2m-2} equiv x^{m-2} (x^k+1) mod(x^m+x^k+1) x2m−2≡xm−2(xk+1)mod(xm+xk+1)

在 c ( x ) c(x) c(x) 两边同时加上 c 2 m − 2 f ( x ) x m − 2 c_{2m-2}f(x)x^{m-2} c2m−2​f(x)xm−2 得:

c ( x ) + c 2 m − 2 f ( x ) x m − 2 = ( c 2 m − 2 x m − 2 + c 2 m − 3 x m − 3 + c 2 m − 4 x m − 4 + . . . c m ) ( x k + 1 ) + c m − 1 x m − 1 + c m − 2 x m − 2 + . . . c 1 x + c 0 + c 2 m − 2 ( x m + x k + 1 ) x m − 2 = ( ( c 2 m − 2 + c 2 m − 2 ) x m − 2 + c 2 m − 3 x m − 3 . . . + c m ) ( x k + 1 ) + c m − 1 x m − 1 + c m − 2 x m − 2 + . . . c 1 x + c 0 + c 2 m − 2 x k + m − 2 + c 2 m − 2 x m − 2 c(x) +c_{2m-2}f(x)x^{m-2} =(c_{2m-2}x^{m-2} +c_{2m-3}x^{m-3} +c_{2m-4}x^{m-4} +...c_m ) (x^k +1) +c_{m-1}x^{m-1} +c_{m-2}x^{m-2} +...c_1x + c_0 +c_{2m-2}(x^m +x^k + 1) x^{m-2}\=((c_{2m-2}+c_{2m-2})x^{m-2} + c_{2m-3}x^{m-3} ...+c_m)(x^k+1) + c_{m-1}x^{m-1} +c_{m-2}x^{m-2} +...c_1x + c_0 +c_{2m-2}x^{k+m-2} + c_{2m-2}x^{m-2} c(x)+c2m−2​f(x)xm−2=(c2m−2​xm−2+c2m−3​xm−3+c2m−4​xm−4+...cm​)(xk+1)+cm−1​xm−1+cm−2​xm−2+...c1​x+c0​+c2m−2​(xm+xk+1)xm−2=((c2m−2​+c2m−2​)xm−2+c2m−3​xm−3...+cm​)(xk+1)+cm−1​xm−1+cm−2​xm−2+...c1​x+c0​+c2m−2​xk+m−2+c2m−2​xm−2

这样可以消去 c ( x ) c(x) c(x) 中 x m − 2 x^{m-2} xm−2 项,以此类推,在左右两边同时加上 c 2 m − 2 x m − 2   c 2 m − 3 x m − 3   c 2 m − 4 x m − 4 . . . c_{2m-2}x^{m-2} c_{2m-3}x^{m-3} c_{2m-4}x^{m-4}... c2m−2​xm−2 c2m−3​xm−3 c2m−4​xm−4... 可以同时计算32位,硬件一个周期完成32位的约减。通过这样不断约减直到 x m − 1 x^{m-1} xm−1 即为最后结果。

以 f ( x ) = x 257 + x 12 + 1 f(x) = x^{257} +x^{12} +1 f(x)=x257+x12+1 为例: $ m=257 k=12 2(m-1)=512$

约减的最后一位是 x m x^m xm所以约减顺序如下:$ [512-481] [480-449] [448-417] [416-385] [384-353] [352-321] [320-289] [288-257] $ 需要进行8次循环,8个周期。

c ( x ) + c 2 m − 2 f ( x ) x m − 2 + c 2 m − 3 f ( x ) x m − 3 + c 2 m − 4 f ( x ) x m − 4 + . . . + c 2 m − 33 f ( x ) x m − 33 = ( ( c 2 m − 2 + c 2 m − 2 ) x m − 2 + ( c 2 m − 3 + c 2 m − 3 ) x m − 3 + . . . ( c 2 m − 33 + c 2 m − 33 ) x m − 33 + c 2 m − 34 x m − 34 + . . . c m ) ( x k + 1 ) + c m − 1 x m − 1 + c m − 2 x m − 2 + . . . c 0 + c 2 m − 2 x k + m − 2 + c 2 m − 2 x m − 2 + c 2 m − 3 x k + m − 3 + c 2 m − 3 x m − 3 + . . . c 2 m − 33 x k + m − 33 + c 2 m − 33 x m − 33 = ( c 2 m − 34 x m − 34 + . . . c m ) ( x k + 1 ) + c m − 1 x m − 1 + c m − 2 x m − 2 + . . . c 0 + c 2 m − 2 x k + m − 2 + c 2 m − 2 x m − 2 + c 2 m − 3 x k + m − 3 + c 2 m − 3 x m − 3 + . . . c 2 m − 33 x k + m − 33 + c 2 m − 33 x m − 33 c(x) +c_{2m-2}f(x)x^{m-2}+c_{2m-3}f(x)x^{m-3}+c_{2m-4}f(x)x^{m-4}+...+c_{2m-33}f(x)x^{m-33}= ((c_{2m-2} +c_{2m-2})x^{m-2} +(c_{2m-3} +c_{2m-3})x^{m-3}\ +...(c_{2m-33} +c_{2m-33})x^{m-33} +c_{2m-34}x^{m-34}+...c_m)(x^k+1) +c_{m-1}x^{m-1} + c_{m-2}x^{m-2} +...c_0 +\c_{2m-2}x^{k+m-2} +c_{2m-2}x^{m-2} + c_{2m-3}x^{k+m-3} +c_{2m-3}x^{m-3} +...c_{2m-33}x^{k+m-33} +c_{2m-33}x^{m-33}\=(c_{2m-34}x^{m-34}+...c_m)(x^k+1) +c_{m-1}x^{m-1} + c_{m-2}x^{m-2} +...c_0 +c_{2m-2}x^{k+m-2} +c_{2m-2}x^{m-2} + c_{2m-3}x^{k+m-3} +c_{2m-3}x^{m-3} +...c_{2m-33}x^{k+m-33} +c_{2m-33}x^{m-33} c(x)+c2m−2​f(x)xm−2+c2m−3​f(x)xm−3+c2m−4​f(x)xm−4+...+c2m−33​f(x)xm−33=((c2m−2​+c2m−2​)xm−2+(c2m−3​+c2m−3​)xm−3+...(c2m−33​+c2m−33​)xm−33+c2m−34​xm−34+...cm​)(xk+1)+cm−1​xm−1+cm−2​xm−2+...c0​+c2m−2​xk+m−2+c2m−2​xm−2+c2m−3​xk+m−3+c2m−3​xm−3+...c2m−33​xk+m−33+c2m−33​xm−33=(c2m−34​xm−34+...cm​)(xk+1)+cm−1​xm−1+cm−2​xm−2+...c0​+c2m−2​xk+m−2+c2m−2​xm−2+c2m−3​xk+m−3+c2m−3​xm−3+...c2m−33​xk+m−33+c2m−33​xm−33

当 k − a > = 0 k-a >=0 k−a>=0 时将其转为 x k − a ( x k + 1 ) x^{k-a}(x^k+1) xk−a(xk+1) 与前项合并。

第一次循环: (循环中+为异或运算)

c ( x ) = ( c 480 x 223 + c 479 x 222 + c 478 x 221 + . . . + c 258 x + c 257 + c 512 x 10 + c 511 x 9 + c 510 x 8 + . . . c 502 ) ( x k + 1 ) + ( c 501 x 256 + c 500 x 255 + c 499 x 254 + . . . c 481 x 236 ) + ( c 512 x 255 + c 511 x 254 + . . . c 481 x 224 ) c(x) =( c_{480}x^{223}+ c_{479}x^{222}+ c_{478}x^{221}+ ...+c_{258}x +c_{257} + c_{512} x^{10} + c_{511} x^{9} + c_{510} x^{8}+... c_{502} )(x^k+1) \ + (c_{501}x^{256}+ c_{500}x^{255} + c_{499}x^{254} +... c_{481}x^{236}) + (c_{512}x^{255} + c_{511}x^{254} +...c_{481}x^{224}) c(x)=(c480​x223+c479​x222+c478​x221+...+c258​x+c257​+c512​x10+c511​x9+c510​x8+...c502​)(xk+1)+(c501​x256+c500​x255+c499​x254+...c481​x236)+(c512​x255+c511​x254+...c481​x224)

​ = ( c 480 x 223 + c 479 x 222 + c 478 x 221 + . . . ( c 267 + c 512 ) x 10 + ( c 266 + c 511 ) x 9 + ( c 265 + c 510 ) x 8 + . . . ( c 257 + c 502 ) ) ( x k + 1 ) + ( c 501 x 256 + c 500 x 255 + c 499 x 254 + . . . c 481 x 236 ) + ( c 512 x 255 + c 511 x 254 + . . . c 481 x 224 ) =( c_{480}x^{223}+ c_{479}x^{222}+ c_{478}x^{221}+ ... (c_{267} + c_{512}) x^{10} + (c_{266} + c_{511}) x^{9} + (c_{265} + c_{510}) x^{8}+... (c_{257} + c_{502}) )(x^k+1)\ + (c_{501}x^{256}+ c_{500}x^{255} + c_{499}x^{254} +... c_{481}x^{236}) + (c_{512}x^{255} + c_{511}x^{254} +...c_{481}x^{224}) =(c480​x223+c479​x222+c478​x221+...(c267​+c512​)x10+(c266​+c511​)x9+(c265​+c510​)x8+...(c257​+c502​))(xk+1)+(c501​x256+c500​x255+c499​x254+...c481​x236)+(c512​x255+c511​x254+...c481​x224)

此次循环在一个周期内约减了32位,除去控制信号只需要一个512位寄存器然后对自己进行64次异或运算即可,之后的循环只需添加控制信号即可而不需要额外寄存器,8个循环后即可得到m位约减结果。

有限域平方运算:

令 A ( x ) = ∑ i = 0 n − 1 a i x i A(x)=sum_{i=0}^{n-1}a_ix^i A(x)=∑i=0n−1​ai​xi 为 G F ( 2 n ) GF(2^n) GF(2n)上的任意元素

以 n = 5 n=5 n=5为例:

( a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 ) ∗ ( a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 ) = ( a 4 a 4 ) x 8 + ( a 3 a 4 + a 3 a 4 ) x 7 + ( a 2 a 4 + a 3 a 3 + a 2 a 4 ) x 6 + ( a 1 a 4 + a 4 a 1 + a 2 a 3 + a 3 a 2 ) x 5 + ( a 1 a 3 + a 3 a 1 + a 2 a 2 + a 0 a 4 + a 4 a 0 ) x 4 + ( a 0 a 3 + a 3 a 0 + a 1 a 2 + a 2 a 1 ) x 3 + ( a 0 a 2 + a 2 a 0 + a 1 a 1 ) x 2 + ( a 0 a 1 + a 1 a 0 ) x + a 0 a 0 (a_4x^4 + a_3x^3 + a_2x^2 +a_1x+a_0) *(a_4x^4 + a_3x^3 + a_2x^2 + a_1x+a_0) = (a_4a_4) x^8 + (a_3a_4 + a_3a_4)x^7 + (a_2a_4 + a_3a_3+ a_2a_4)x^6 +\ (a_1a_4 + a_4a_1 +a_2a_3 +a_3a_2)x^5 +(a_1a_3 + a_3a_1 +a_2a_2 +a_0a_4+ a_4a_0) x^4 +(a_0a_3+a_3a_0 +a_1a_2 +a_2a_1)x^3 +(a_0a_2+a_2a_0 +a_1a_1)x^2 +(a_0a_1+a_1a_0)x +a_0a_0 (a4​x4+a3​x3+a2​x2+a1​x+a0​)∗(a4​x4+a3​x3+a2​x2+a1​x+a0​)=(a4​a4​)x8+(a3​a4​+a3​a4​)x7+(a2​a4​+a3​a3​+a2​a4​)x6+(a1​a4​+a4​a1​+a2​a3​+a3​a2​)x5+(a1​a3​+a3​a1​+a2​a2​+a0​a4​+a4​a0​)x4+(a0​a3​+a3​a0​+a1​a2​+a2​a1​)x3+(a0​a2​+a2​a0​+a1​a1​)x2+(a0​a1​+a1​a0​)x+a0​a0​

= ( a 4 a 4 ) x 8 + ( a 3 a 3 ) x 6 + ( a 2 a 2 ) x 4 + ( a 1 a 1 ) x 2 + a 0 a 0 =(a_4a_4) x^8 + ( a_3a_3)x^6 +(a_2a_2 ) x^4 +(a_1a_1)x^2 +a_0a_0 =(a4​a4​)x8+(a3​a3​)x6+(a2​a2​)x4+(a1​a1​)x2+a0​a0​

A 2 ( x ) A^2(x) A2(x) 结果的奇数项为0

所以 q ( x ) = ∑ i = 0 n − 1 q i x i = A 2 ( x ) m o d f ( x ) = a 0 + a 1 x 2 + . . . a n − 1 x 2 n − 2 m o d f ( x ) q(x)= sum_{i=0}^{n-1}q_ix_i = A^2 (x) mod f(x) = a_0 +a_1x^2 +...a_{n-1}x^{2n-2} modf(x) q(x)=∑i=0n−1​qi​xi​=A2(x)modf(x)=a0​+a1​x2+...an−1​x2n−2modf(x)

令 A ( x 2 ) = ∑ i = 0 n − 1 a i x 2 i = ∑ i = 0 2 n − 2 b i x i A(x^2) =sum_{i=0}^{n-1} a_ix^{2i} =sum_{i=0}^{2n-2} b_ix_i A(x2)=∑i=0n−1​ai​x2i=∑i=02n−2​bi​xi​,其中当i为偶数 b i = a i / 2 b_i =a_{i/2} bi​=ai/2​,当i为奇数时 b i = 0 b_i=0 bi​=0

令$c_i=sum_{i=0}^{n + 2i}b_ix^i mod f(x) $ 当 i i i为偶数时,令 i = 0 , 1 , 2 , n 2 − 1 i=0,1,2,frac n 2 -1 i=0,1,2,2n​−1 当 i i i为奇数时令 i = 0 , 1 , 2... n − 3 2 i=0,1,2...frac{n-3} 2 i=0,1,2...2n−3​

n为偶数时: q ( x ) = ∑ i = 0 2 n − 2 b i x i m o d f ( x ) = c n 2 − 1 q(x)= sum_{i=0}^{2n-2}b_ix^i mod f(x) =c_{frac n 2 -1} q(x)=∑i=02n−2​bi​ximodf(x)=c2n​−1​ (只需令 b i b_i bi​ 在奇数位为0即可)

n为奇数时: q ( x ) = ∑ i = 0 2 n − 2 b i x i m o d f ( x ) = c n − 3 2 + b 2 n − 2 x 2 n − 2 m o d f ( x ) q(x) = sum_{i=0}^{2n-2}b_ix^i mod f(x) =c_{frac{n-3} 2} +b_{2n-2}x^{2n-2} mod f(x) q(x)=∑i=02n−2​bi​ximodf(x)=c2n−3​​+b2n−2​x2n−2modf(x)

n为偶数时: b n = a n 2 , c 0 = ∑ i = 0 n − 1 b i x i + b n + b n x k b_n =a_{frac n 2}, c_0 =sum_{i=0}^{n-1} b_ix^i +b_n +b_nx^k bn​=a2n​​,c0​=∑i=0n−1​bi​xi+bn​+bn​xk 利用同余性质 x m ≡ x k + 1 m o d ( x m + x k + 1 ) x^{m} equiv x^k +1 mod(x^m+x^k+1) xm≡xk+1mod(xm+xk+1)

n为奇数时:$b_n =0 , c_0 =sum_{i=0}{n-1}b_ixi $

以奇数为例:(n为奇数时最高项 x n + 2 i x^{n+2i} xn+2i为0) 引入 c i c_i ci​ 的目的是时刻保持 x x x最高次项在 n n n以下

c 1 = ∑ i = 0 n + 2 i − 1 b i x i = c 0 + b n + 1 x n + 1 = ∑ i = 0 n − 1 b i x i + b n + 1 x + b n + 1 x k + 1 c_1 =sum_{i=0}^{n+2i-1}b_ix^i=c_0 +b_{n+1}x^{n+1}=sum_{i=0}^{n-1}b_ix^i +b_{n+1}x +b_{n+1}x^{k+1} c1​=∑i=0n+2i−1​bi​xi=c0​+bn+1​xn+1=∑i=0n−1​bi​xi+bn+1​x+bn+1​xk+1

$c_2 =c_1+b_{n+3}x^{n+3} =sum_{i=0}{n-1}b_ixi +b_{n+1}x +b_{n+1}x{n+1}+b_{n+3}x{3} +b_{n+3}x^{k+3} $

. . . ... ...

A ( x 2 ) = c n − 1 2 = ∑ i = 0 2 n − 2 b i x i = c n − 3 2 + b 2 n − 2 x 2 n − 2 = ∑ i = 0 n − 1 b i x i + b n + 1 x + b n + 1 x k + 1 + b n + 3 x 3 + b n + 3 x k + 3 + . . . b 2 n − 2 x n − 2 + b 2 n − 2 x k + n − 2 A(x^2)=c_frac {n-1} 2 = sum_{i=0}^{2n-2} b_ix^i =c_{frac{n-3} 2}+b_{2n-2}x^{2n-2}=sum_{i=0}^{n-1} b_ix^i +b_{n+1}x +b_{n+1}x^{k+1} + b_{n+3}x^{3} +b_{n+3}x^{k+3} +...b_{2n-2}x^{n-2}+b_{2n-2}x^{k+n-2} A(x2)=c2n−1​​=∑i=02n−2​bi​xi=c2n−3​​+b2n−2​x2n−2=∑i=0n−1​bi​xi+bn+1​x+bn+1​xk+1+bn+3​x3+bn+3​xk+3+...b2n−2​xn−2+b2n−2​xk+n−2

对于 c n − 1 2 c_{frac{n-1} 2} c2n−1​​中x次项大于n的利用同余性质进行削减。

以 n = 257      k = 12 n=257 k=12 n=257    k=12 为例2:

A ( x 2 ) A(x^2) A(x2)中 b i b_i bi​的i值 x x x的次方( x i x^i xi)x的次方( x k + i x^{k+i} xk+i)
n+1113 (k+1)
n+3315 (k+3)
n+5517 (k+5)
…
n+11(n+k-1)1123 (k+11)
n+13(n+k+1)1325 (k+13)
…
2n-14243255
2n-1224512 0 ( x k + 1 x^k +1 xk+1)
2n-10247(n-10)14 2 ( x k + 1 ) x 2 (x^{k} +1)x^2 (xk+1)x2
2n-824916 4 ( x k + 1 ) x 4 (x^{k} +1)x^4 (xk+1)x4
2n-625118 6 ( x k + 1 ) x 6 (x^{k} +1)x^6 (xk+1)x6
2n-425320 8 ( x k + 1 ) x 8 (x^{k} +1)x^8 (xk+1)x8
2n-225522 10 ( x k + 1 ) x 1 0 (x^{k} +1)x^10 (xk+1)x10

综上:

i < k ( 12 ) i<k(12) i<k(12) : i i i为奇数: q i = b n + i q_i=b_{n+i} qi​=bn+i​

​ i i i为偶数: q i = b 2 n − k + i + b i q_i=b_{2n-k+i} + b_i qi​=b2n−k+i​+bi​

k = < i < 2 k k=<i<2k k=<i<2k: i i i为奇数: q i = b n + i + b n + i − k q_i=b_{n+i} + b_{n+i-k} qi​=bn+i​+bn+i−k​

​ i i i为偶数: q i = b 2 n − 2 k + i + b i q_i=b_{2n-2k+i} + b_i qi​=b2n−2k+i​+bi​

2 k = < ( n − 1 ) i 2k=<(n-1)i 2k=<(n−1)i : i i i为奇数: q i = b n + i + b n + i − k q_i=b_{n+i} + b_{n+i-k} qi​=bn+i​+bn+i−k​

​ i i i为偶数: q i = b i q_i =b_i qi​=bi​

平方在硬件上的实现就是对自身做异或运算,可以在一个周期内完成。

有限域模逆运算:

取 F 2 m F^{2m} F2m 域上一元素 A ( x ) A(x) A(x) ,它与 f ( x ) f(x) f(x) 最大公因式为1( g c d ( f ( x ) , A ( x ) ) = 1 gcd(f(x),A(x))=1 gcd(f(x),A(x))=1),于是存在 B ( x ) , C ( x ) B(x),C(x) B(x),C(x)使得 A ( x ) B ( x ) = f ( x ) C ( x ) + 1 A(x)B(x)=f(x)C(x) +1 A(x)B(x)=f(x)C(x)+1,即 A ( x ) B ( x ) = 1 m o d ( f ( x ) ) A(x)B(x)=1 mod(f(x)) A(x)B(x)=1mod(f(x)) ,利用扩展欧几里得定理求解:

基本原理为:

设 a = f ( x )     b = A ( x ) a=f(x) b=A(x) a=f(x)   b=A(x)

r 0 = a , r 1 = b r_0=a ,r_1=b r0​=a,r1​=b

s 0 = 1     s 1 = 0 s_0=1 s_1=0 s0​=1   s1​=0 t 0 = 0     t 1 = 1 t_0=0 t_1=1 t0​=0   t1​=1

依次执行下列运算:

r 0 = r 1 q 1 + r 2 r_0=r_1q_1+r_2 r0​=r1​q1​+r2​ s i + 1 = s i − 1 − s i q i s_{i+1}=s_{i-1}-s_iq_i si+1​=si−1​−si​qi​ t i + 1 = t i − 1 − t i q i t_{i+1}=t_{i-1}-t_iq_i ti+1​=ti−1​−ti​qi​ 下同

r 1 = r 2 q 2 + r 3 r_1=r_2q_2+r_3 r1​=r2​q2​+r3​

r 2 = r 3 q 3 + r 4 r_2=r_3q_3+r_4 r2​=r3​q3​+r4​

r 3 = r 4 q 4 + r 5 r_3=r_4q_4+r_5 r3​=r4​q4​+r5​

r n − 1 = r n q n + r n + 1 r_{n-1}=r_nq_n+r_{n+1} rn−1​=rn​qn​+rn+1​

当 r n + 1 r_{n+1} rn+1​ 为1时停止运算。

计算 s i s_i si​ t i t_i ti​的目的是时刻保持 a s i + b t i = r i as_i +bt_i=r_i asi​+bti​=ri​ 当 r i r_i ri​为1时 $f(x)s_i +A(x)t_i =1 $ t i t_i ti​ 即为 A ( x ) A(x) A(x) 的逆

多项式的模逆运算由于其没有负数的概念,减法运算为异或运算, s i    t i s_i t_i si​  ti​没有正负之分,为解决这一问题,当进行上述循环时, r n r_n rn​ 第一个为1的位数小于 r n + 1 r_{n+1} rn+1​首位为1的位数时,在下一循环中使用的 s i − 1    s i s_{i-1} s_i si−1​  si​ t i − 1     t i t_{i-1} t_i ti−1​   ti​ 两两互换,并在之后的计算中使用互换之后的数据。

以 a = 100101    b = 11011 a=100101 b=11011 a=100101  b=11011为例:

下述+为异或运算

1. r 0 = r 1 q 1 + r 2 = b ∗ 2 ( q 1 ) + ( b / 2 + a ) = b ∗ 2 + 010011 ( r 2 ) r_0=r_1q_1+r_2 =b*2(q_1)+ (b/2 +a)=b*2 +010011(r_2) r0​=r1​q1​+r2​=b∗2(q1​)+(b/2+a)=b∗2+010011(r2​) ##多项式的求余只需将除数左移将最高位的1对齐后进行异或运算即可

​ s 2 = s 0 + s 1 q 1 = 000001 + 000000 = 000001 s_2=s_0+s_1q_1=000001+000000=000001 s2​=s0​+s1​q1​=000001+000000=000001

​ t 2 = t 0 + t 1 q 1 = 000000 + 000010 = 000010 t_2=t_0+t_1q_1=000000+000010=000010 t2​=t0​+t1​q1​=000000+000010=000010

2. r 1 = r 2 q 2 + r 3 = 010011 ∗ 1 + 001000 r_1=r_2q_2 +r_3=010011*1+001000 r1​=r2​q2​+r3​=010011∗1+001000

​ s 3 = s 1 + s 2 q 2 = 000000 + 000001 = 000001 s_3=s_1+s_2q_2=000000+000001=000001 s3​=s1​+s2​q2​=000000+000001=000001

​ t 3 = t 1 + t 2 q 2 = 000001 + 000010 = 000011 t_3=t_1+t_2q_2=000001+000010=000011 t3​=t1​+t2​q2​=000001+000010=000011

3. r 2 = 001000 ∗ 2 + 000011 r_2=001000*2+000011 r2​=001000∗2+000011

​ s 4 = 000011 s_4=000011 s4​=000011

​ t 4 = 000010 + 000110 = 000100 t_4=000010+000110=000100 t4​=000010+000110=000100

4. r 3 = 000011 ( r 4 ) ∗ 4 + 000100 ( r 5 ) r_3=000011(r_4)*4+000100(r_5) r3​=000011(r4​)∗4+000100(r5​)

​ s 5 = 001101 s_5=001101 s5​=001101

​ t 5 = 010011 t_5=010011 t5​=010011

5.由于上述 r 4 r_4 r4​ 第一个为1的位是1, r 5 r_5 r5​ 第一个为1的位是2,所以 s 4 与 s 5 s_4 与s_5 s4​与s5​ , t 4 与 t 5 t_4 与t_5 t4​与t5​ , r 4 与 r 5 r_4 与 r_5 r4​与r5​进行互换

r 4 ( r 5 ) = r 5 ( r 4 ) ∗ q 5 + r 6 = 000100 = 000011 ∗ 2 + 000010 r_4(r_5)=r_5(r_4)*q5 +r_6=000100=000011*2+000010 r4​(r5​)=r5​(r4​)∗q5+r6​=000100=000011∗2+000010

​ s 6 = s 4 ( s 5 ) + s 5 ( s 4 ) q 5 = 001011 s_6=s_4(s_5)+s_5(s_4)q_5=001011 s6​=s4​(s5​)+s5​(s4​)q5​=001011

​ t 6 = t 4 ( t 5 ) + t 5 ( t 4 ) q 5 = 011011 t_6=t_4(t_5)+t_5(t_4)q_5=011011 t6​=t4​(t5​)+t5​(t4​)q5​=011011

6. r − 5 = 000010 ∗ 1 + 000001 r-5=000010*1+000001 r−5=000010∗1+000001

​ t 7 = 011011 + 000100 = 11111 t_7=011011+000100=11111 t7​=011011+000100=11111

t 7 t_7 t7​即为b的逆。

.

最后

以上就是现实鲜花最近收集整理的关于椭圆曲线点加运算硬件实现数学原理的全部内容,更多相关椭圆曲线点加运算硬件实现数学原理内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(223)

评论列表共有 0 条评论

立即
投稿
返回
顶部