0% found this document useful (0 votes)
39 views

Tutorial 5b ECC Over Finite Field 299

This document provides an example of performing operations on an elliptic curve over a finite field F[2m]. It begins by defining the elliptic curve y2 + xy = x3 + ax2 + b modulo M(t). It then gives an example of: 1) Choosing a base point P1(x1, y1) and computing associated parameters a and b. 2) Doubling the point to compute P2(x2, y2) = 2×P1(x1, y1). 3) Adding two points to compute P3(x3, y3) = P1(x1, y1) + P2(x2, y2).

Uploaded by

DANIAL IRFAN
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Tutorial 5b ECC Over Finite Field 299

This document provides an example of performing operations on an elliptic curve over a finite field F[2m]. It begins by defining the elliptic curve y2 + xy = x3 + ax2 + b modulo M(t). It then gives an example of: 1) Choosing a base point P1(x1, y1) and computing associated parameters a and b. 2) Doubling the point to compute P2(x2, y2) = 2×P1(x1, y1). 3) Adding two points to compute P3(x3, y3) = P1(x1, y1) + P2(x2, y2).

Uploaded by

DANIAL IRFAN
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Tutorial 5b: ECC over finite field F[2m]

This ECC is by far the most efficient elliptic curve cryptosystem and it is part of An ECC
standard.
An elliptic curve E over F[2m] is given by
y2 + xy = x3 + ax2 + b modulo M(t).

y2 + xy = x3 + 3x2 + 4

0
-4 -2 0 2 4

-2

-4
Figure 5.1 An example of an algebraic elliptic curve

Let us take x1=2, y1=100+i, where i is the last 2 digits of your matrix number or newly assigned
number. Take a=3, compute b.
We will always compute in a ring modulo M=29910. = 1001010112.

Step 1: Double point


Step 2: Add point
Note: Refer to an inverse table modulo M(t).

Table 5.1 An inverse a1 of a = xy in hexa modulo irreducible polynomial 29910 = M(t) =
t8+t5+t3+t+1 written in hexadecimals.

a1 y
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 00 01 95 E6 DF BB 73 A4 FA 85 C8 55 AC CE 52 69
1 7D 27 D7 F8 64 59 BF A3 56 50 67 9A 29 33 A1 98
2 AB 91 86 E8 FE E1 7C 11 32 1C B9 30 CA 76 C4 3D
3 2B B8 28 1D A6 B1 4D 3F 81 61 8C 5A C5 2F 4C 37
4 C0 F4 DD 44 43 DC 74 FC 7F 8F E5 C6 3E 36 9D DA
5 19 57 0E 68 C9 0B 18 51 65 15 3B 8D 62 97 8B 6F
6 80 39 5C 96 14 58 9B 1A 53 0F CD D9 B3 9E 8A 5F
x 7 D5 F2 A5 06 46 FD 2D CB F7 E2 82 ED 26 10 8E 48
8 60 38 7A EC FB 09 22 E9 B4 C2 6E 5E 3A 5B 7E 49
9 AA 21 D2 B7 E7 02 63 5D 1F A0 1B 66 DB 4E 6D B2
A 99 1E BE 17 07 72 34 B0 F1 EF 90 20 0C CF BD D1
B A7 35 9F 6C 88 C3 D3 93 31 2A DE 05 D0 AE A2 16
C 40 F5 89 B5 2E 3C 4B E4 0A 54 2C 77 D8 6A 0D AD
D BC AF 92 B6 F3 70 F9 12 CC 6B 4F 9C 45 42 BA 04
E FF 25 79 F6 C7 4A 03 94 23 87 EB EA 83 7B F0 A9
F EE A8 71 D4 41 C1 E3 78 13 D6 08 84 47 75 24 E0

Step 0: Choose a base point P1(x1, y1).


Let us take x1= 2 = t = 102, for instance take i = 4210, y1=100+i = 14210 = 8E16 = 100011102.
Take P1(x1, y1) = (02, 8E)
Step 1: Assign parameters, a and b.
Given a = 3 = t + 1 = 112. From an elliptic curve y2 + xy = x3 + ax2 +b,
We need to compute b = y2 + xy – (x3 + ax2)
y12 =1000111010001110

=10001110
10001110
10001110
100011100
=100000001010100
100101011
101010010100
100101011
1111001100
100101011
110011010
100101011
10110001= B116.

x1 y1 = 1010001110
=100011100
100101011
= 110111 = 3716.

We move to the RHS, we need to compute x3,


x2 = 1010 = t2 = 1002.
100 = 416.

x3 = x  x2 = t  t2 = t3 = 10002.
10100
= 10002 = 0816.

Let us move on to ax2 = 11100


= 100
100
= 1100 = 0C16.
Finally, we can compute b, from y2 + xy = x3 + ax2 +b,
b = y2 + xy  (x3 + ax2)
= 10110001+110111-(1000+1100)

= 10110001
110111
1000
1100
= 10000010 = 8216.

Let us move to Double Point operation on P1(x1, y1) = (0216, 8E16)

Step 2: Double Point


Describe a double point operation given a point on an elliptic curve.
From a basic Point, compute P2(x2, y2) = 2P1(x1, y1)
From an irreducible polynomial 29910 =12B16 =256 +32+8+2+1=M(t) = t8 + t5 +t3 + t +1.

Let (x1, y1) be a point on an elliptic curve E(F2m), and (x1, y1)  (x2, –y2)
then let (x2, y2) = 2(x1, y1) such that
b y1
x 2 =x21 + and y 2 =x 21 +( 1+ x 1 + )⋅x 2
x 21 x1

From x12 = 1002, refer to Table 5.1 in xy =04, we get an inverse x12 =DF=110111112.
Let us compute
bx12 = 82DF
= 1000001011011111
= 11011111
110111110
110111000111110
100101011
10010011111110
100101011
110011110
100101011
= 10110101=B516

x2 = x12 + bx12 = 100+10110101


= 10110101
100
= 10110001=B116.

From x1 = 102=216, refer to Table 5.1 in xy=02, we get an inverse x11 =9516.
Let us compute
y1 x11 = 8E95
= 1000111010010101
= 10010101
10010101
10010101
100101010
= 100110101010110
100101011
11110010110
100101011
1100111010
100101011
101101100
100101011
1000111=4716.
1
Next 1 + x1 + y1 x1 = 1+10+1000111
= 1000111
10
+ 1
1000100=4416.

(1 + x1 + y1 x11 ) x2 =100010010110001


10110001
1011000100
10111010000100
100101011
101111100100
100101011
1010111100
100101011
11101010=EA16.

Then we are ready to compute y2 = x12 + (1 + x1 + y1 x11 ) x2


= 100+11101010
= 11101010
100
= 11101110=EE16.
Step 3: Add Point
Compute P3(x3, y3) = P1(x1, y1)  P2(x2, y2) = (0216, 8E16)  (B116, EE16)

Let (x1, y1) and (x2, y2) are two points on an elliptic curve E(F2m), and
(x1, y1)  (x2,  y2)
then let (x3, y3) = (x1, y1)  (x2, y2) such that

( ) ( )
y 2− y 1 2 y 2− y 1 y −y
x 3= + −( x 1 +x 2 )+a and y 3 = 2 1 ( x1 −x 3 )−( x3 + y 1 )
x 2 −x 1 x2 −x 1 x2 −x 1

Let the slope


y − y1
m= 2
x 2 −x 1 of the secant line connecting (x , y ) and (x , y )
1 1 2 2
then
x3 = m2 + m – (x1 + x2) + a and y3 = m(x1 – x3) – (x3 + y1)

Let us start from the denominator


x2 – x1 = B116 – 0216
= 10110001
10
= 10110011 = B316.

Refer to an inverse Table 5.1, from (x2 – x1)1 = 6C16.


Take the numerator y2 – y1 =EE – 8E=6016.

Now we can compute the slope of secant line,


m = (y2 – y1)(x2 – x1)1=606C
= 110000001101100
1101100
110110000000
1011010000000
100101011
10000110000
100101011
10011100=9C16.
2
m =9C9C
=1001110010011100
=10011100
10011100
10011100
1001110000
=100000101010000
100101011
101110010000
100101011
1011001000
100101011
10011110=9E16.

Now we are ready to get to


x3 = m2 + m – (x1 + x2) + a
= 10011110
10011100
10110011
11
= 10110010=B216.

Then we want to compute,


y3 = m(x1 – x3) – (x3 + y1)

x1 – x3=02 – B2=B016.
x3 + y1=B2 + 8E=3C16.

Let us compute m(x1 – x3) = 9CB0


= 1001110010110000
= 1011000010011100
10011100
10011100
100111000000
101010001000000
100101011
1111010000000
100101011
110000110000
100101011
10101101000
100101011
111000100
100101011
11101111=EF16.

Let us compute first,


x3 + y1 = B2 + 8E
=10110010
10001110
111100=3C16.

y3 = m(x1 – x3) – (x3 + y1) =EF  3C


= 11101111
111100
= 11010011=D316. walla…

Answer = [2 142 177 238 178 211]

Answer Table for Tutorial 5b in decimals.


i x1 y1 x2 y2 x3 y3 i x1 y1 x2 y2 x3 y3
0 2 100 180 98 59 253 50 2 150 237 242 91 173
1 2 101 254 67 61 196 51 2 151 167 2 89 66
2 2 102 180 214 59 198 52 2 152 255 229 3 62
3 2 103 254 189 61 249 53 2 153 181 193 94 102
4 2 104 166 196 88 133 54 2 154 255 26 3 61
5 2 105 236 123 143 24 55 2 155 181 116 94 56
6 2 106 166 98 88 221 56 2 156 249 181 136 21
7 2 107 236 151 143 151 57 2 157 179 6 102 129
8 2 108 160 29 141 163 58 2 158 249 76 136 157
9 2 109 234 53 182 183 59 2 159 179 181 102 231
1
0 2 110 160 189 141 46 60 2 160 152 66 167 117
1
1 2 111 234 223 182 1 61 2 161 210 201 153 224
1
2 2 112 250 38 156 184 62 2 162 152 218 167 210
1
3 2 113 176 178 45 8 63 2 163 210 27 153 121
1
4 2 114 250 220 156 36 64 2 164 158 148 0 23
1
5 2 115 176 2 45 37 65 2 165 212 136 178 56
1
6 2 116 252 111 236 66 66 2 166 158 10 0 23
1
7 2 117 182 108 251 190 67 2 167 212 92 178 138
1
8 2 118 252 147 236 174 68 2 168 140 244 42 92
1
9 2 119 182 218 251 69 69 2 169 198 118 195 5
2
0 2 120 238 194 210 213 70 2 170 140 120 42 118
2
1 2 121 164 95 96 226 71 2 171 198 176 195 198
2
2 2 122 238 44 210 7 72 2 172 138 18 162 150
2
3 2 123 164 251 96 130 73 2 173 192 7 253 213
2
4 2 124 232 187 42 57 74 2 174 138 152 162 52
2
5 2 125 162 177 113 174 75 2 175 192 199 253 40
2 2 126 232 83 42 19 76 2 176 208 124 88 16
6
2
7 2 127 162 19 113 223 77 2 177 154 213 239 100
2
8 2 128 163 158 233 136 78 2 178 208 172 88 72
2
9 2 129 233 145 44 159 79 2 179 154 79 239 139
3
0 2 130 163 61 233 97 80 2 180 214 10 157 108
3
1 2 131 233 120 44 179 81 2 181 156 52 180 166
3
2 2 132 165 94 234 4 82 2 182 214 220 157 241
3
3 2 133 239 198 100 50 83 2 183 156 168 180 18
3
4 2 134 165 251 234 238 84 2 184 196 97 78 10
3
5 2 135 239 41 100 86 85 2 185 142 193 7 174
3
6 2 136 183 175 183 24 86 2 186 196 165 78 68
3
7 2 137 253 169 3 179 87 2 187 142 79 7 169
3
8 2 138 183 24 183 175 88 2 188 194 39 103 215
3
9 2 139 253 84 3 176 89 2 189 136 16 166 184
4
0 2 140 177 95 178 97 90 2 190 194 229 103 176
4
1 2 141 251 206 117 229 91 2 191 136 152 166 30
4
2 2 142 177 238 178 211 92 2 192 47 220 17 232
4
3 2 143 251 53 117 144 93 2 193 101 141 161 241
4
4 2 144 235 127 154 205 94 2 194 47 243 17 249
4
5 2 145 161 82 212 216 95 2 195 101 232 161 80
4
6 2 146 235 148 154 87 96 2 196 41 239 40 198
4
7 2 147 161 243 212 12 97 2 197 99 41 21 44
4
8 2 148 237 31 91 246 98 2 198 41 198 40 238
4
9 2 149 167 165 89 27 99 2 199 99 74 21 57

You might also like