椭圆曲线点加运算硬件实现数学原理

有限域取模运算:

设$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)=(c2m2xm2+c2m3xm3+c2m4xm4+...cm)(xk+1)+cm1xm1+cm2xm2+...c1x+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) xmxk+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) x2m2xm2(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} c2m2f(x)xm2 得:

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)+c2m2f(x)xm2=(c2m2xm2+c2m3xm3+c2m4xm4+...cm)(xk+1)+cm1xm1+cm2xm2+...c1x+c0+c2m2(xm+xk+1)xm2=((c2m2+c2m2)xm2+c2m3xm3...+cm)(xk+1)+cm1xm1+cm2xm2+...c1x+c0+c2m2xk+m2+c2m2xm2

这样可以消去 c ( x ) c(x) c(x) x m − 2 x^{m-2} xm2 项,以此类推,在左右两边同时加上 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}... c2m2xm2 c2m3xm3 c2m4xm4... 可以同时计算32位,硬件一个周期完成32位的约减。通过这样不断约减直到 x m − 1 x^{m-1} xm1 即为最后结果。

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)+c2m2f(x)xm2+c2m3f(x)xm3+c2m4f(x)xm4+...+c2m33f(x)xm33=((c2m2+c2m2)xm2+(c2m3+c2m3)xm3+...(c2m33+c2m33)xm33+c2m34xm34+...cm)(xk+1)+cm1xm1+cm2xm2+...c0+c2m2xk+m2+c2m2xm2+c2m3xk+m3+c2m3xm3+...c2m33xk+m33+c2m33xm33=(c2m34xm34+...cm)(xk+1)+cm1xm1+cm2xm2+...c0+c2m2xk+m2+c2m2xm2+c2m3xk+m3+c2m3xm3+...c2m33xk+m33+c2m33xm33

k − a > = 0 k-a >=0 ka>=0 时将其转为 x k − a ( x k + 1 ) x^{k-a}(x^k+1) xka(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)=(c480x223+c479x222+c478x221+...+c258x+c257+c512x10+c511x9+c510x8+...c502)(xk+1)+(c501x256+c500x255+c499x254+...c481x236)+(c512x255+c511x254+...c481x224)

= ( 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}) =(c480x223+c479x222+c478x221+...(c267+c512)x10+(c266+c511)x9+(c265+c510)x8+...(c257+c502))(xk+1)+(c501x256+c500x255+c499x254+...c481x236)+(c512x255+c511x254+...c481x224)

此次循环在一个周期内约减了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=0n1aixi 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 (a4x4+a3x3+a2x2+a1x+a0)(a4x4+a3x3+a2x2+a1x+a0)=(a4a4)x8+(a3a4+a3a4)x7+(a2a4+a3a3+a2a4)x6+(a1a4+a4a1+a2a3+a3a2)x5+(a1a3+a3a1+a2a2+a0a4+a4a0)x4+(a0a3+a3a0+a1a2+a2a1)x3+(a0a2+a2a0+a1a1)x2+(a0a1+a1a0)x+a0a0

= ( 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 =(a4a4)x8+(a3a3)x6+(a2a2)x4+(a1a1)x2+a0a0

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=0n1qixi=A2(x)modf(x)=a0+a1x2+...an1x2n2modf(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=0n1aix2i=i=02n2bixi,其中当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,2n1 i i i为奇数时令 i = 0 , 1 , 2... n − 3 2 i=0,1,2...\frac{n-3} 2 i=012...2n3

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=02n2biximodf(x)=c2n1 (只需令 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=02n2biximodf(x)=c2n3+b2n2x2n2modf(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=0n1bixi+bn+bnxk 利用同余性质 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) xmxk+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+2i1bixi=c0+bn+1xn+1=i=0n1bixi+bn+1x+bn+1xk+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)=c2n1=i=02n2bixi=c2n3+b2n2x2n2=i=0n1bixi+bn+1x+bn+1xk+1+bn+3x3+bn+3xk+3+...b2n2xn2+b2n2xk+n2

对于 c n − 1 2 c_{\frac{n-1} 2} c2n1中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 xix的次方( 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=b2nk+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+ik

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

2 k = < ( n − 1 ) i 2k=<(n-1)i 2k=<(n1)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+ik

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=r1q1+r2 s i + 1 = s i − 1 − s i q i s_{i+1}=s_{i-1}-s_iq_i si+1=si1siqi t i + 1 = t i − 1 − t i q i t_{i+1}=t_{i-1}-t_iq_i ti+1=ti1tiqi 下同

r 1 = r 2 q 2 + r 3 r_1=r_2q_2+r_3 r1=r2q2+r3

r 2 = r 3 q 3 + r 4 r_2=r_3q_3+r_4 r2=r3q3+r4

r 3 = r 4 q 4 + r 5 r_3=r_4q_4+r_5 r3=r4q4+r5

r n − 1 = r n q n + r n + 1 r_{n-1}=r_nq_n+r_{n+1} rn1=rnqn+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 si1  si t i − 1     t i t_{i-1}\ \ \ t_i ti1   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=r1q1+r2=b2(q1)+(b/2+a)=b2+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+s1q1=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+t1q1=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=r2q2+r3=0100111+001000

s 3 = s 1 + s 2 q 2 = 000000 + 000001 = 000001 s_3=s_1+s_2q_2=000000+000001=000001 s3=s1+s2q2=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+t2q2=000001+000010=000011

3. r 2 = 001000 ∗ 2 + 000011 r_2=001000*2+000011 r2=0010002+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 s4s5 t 4 与 t 5 t_4 与t_5 t4t5 r 4 与 r 5 r_4 与 r_5 r4r5进行互换

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=0000112+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 r5=0000101+000001

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

t 7 t_7 t7即为b的逆。

.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值