Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Вычисление множества точек удвоения заданной эллиптической кривой



Для вычисления открытого ключа абонента-отправителя сообщения «М» КОА изначально необходимо вычислить все удвоения генераторной точки «G» до [128] G, т.к. число 128 является максимальным числом степени 2n в составе числового значения закрытого ключа КЗА = 236. Значение закрытого ключа КЗА по числам 2n можно отобразить как 236 = 4 + 8 + 32 + 64 + 128, т.е. на первом этапе для вычисления открытого ключа абонента-отправителя сообщения «М» КОА = [КЗА] G = [236] G необходимо вычислить следующие точки удвоения: [4] G; [8] G; [32] G; [64] G; [128] G, а затем вычислить все композиции полученных числовых значений. Методика вычисления операций удвоения и композиций была изложена в разделе «Основные операции криптографических преобразований в метрике эллиптических кривых».

После вычисления множеств удвоения генераторной точки «G» по значению максимального нижнего предела степени 2n, т.е. n = 7 2n ≤ 236;

128 ≤ 236 определяется композиция полученного множества. Следовательно, КОА = [КЗА] G = [236] G = [4] G + [8] G + [32] G + + [64] G + [128] G.

Вычисление удвоения генераторной точки G (X1; Y1) = G (18; 11) → [2] G:

- Вычисляется угловой коэффициент касательной заданной эллиптической кривой ZP (a; b): Y2 = X3 + 8*X + 5 mod 293 в генераторной точке G(X1; Y1) = G(18; 11):

K = mod P = mod 293 = mod 293 = 980 * 22-1 mod 293 = 980 * 22291 mod 293 = 980 * 40 mod 293 = 39200 mod 293 = 231 mod 293 → 231.

- Вычисляются координаты удвоения генераторной точки G - [2]G = G(X2; Y2) (координаты генераторной точки «G» определены выше G(X1; Y1) = G(18; 11)):

X2 = (K2 – 2X1) mod P = (2312 - 2*18) mod 293 = 292 mod 293 → 292;

Y2 = (K*(X1 – X2) – Y1) mod P = (231*(18 – 292) – 11) mod 293 =

= 276 mod 293 → 276.

Следовательно, [2]G = (X2; Y2) = (292; 276), координаты точки [2]G определены как X2 = 292; Y2 = 276.

Вычисление операции удвоения полученной точки [2]G, т.е. вычисление точки [4]G = (X4; Y4):

- вычисление углового коэффициента касательной в точке [2]G = (X2; Y2) = (292; 276)

K = mod P = mod 293 = 60 mod 293 → 60.

- вычисление координат точки [4]G = (X4; Y4)

X4 = (K2 – 2X2) mod P = (602 - 2*292) mod 293 = 86 mod 293 → 86;

Y4 = (K*(X2 – X4) – Y2) mod P = (60*(292 – 86) – 276) mod 293 =

= 71 mod 293 → 71.

Следовательно, [4]G = (X4; Y4) = (86; 71), координаты точки [4]G определены как X4 = 86; Y4 = 71.

Вычисление координат точки [8]G, как результат удвоения точки [4]G:

- вычисление углового коэффициента касательной в точке [4]G = (X4; Y4) = (86; 71)

K = mod P = mod 293 = mod 293 = 22196 * 142-1 mod 293 = 22196 * 142291 mod 293 = 22196 * 130 mod 293 = 221 * 130 mod 293 = 28730 mod 293 = 16 mod 293 → 16.

- вычисление координат точки [8]G = (X8; Y8)

X8 = (K2 – 2X4) mod P = (162 - 2*86) mod 293 = 84 mod 293 → 84;

Y8 = (K*(X4 – X8) – Y4) mod P = (16*(86 – 84) – 71) mod 293 =

= 254 mod 293 → 254.

Следовательно, [8]G = (X8; Y8) = (84; 254), координаты точки [8]G определены как X8 = 84; Y8 = 254.

Вычисление координат точки [16]G, как результат удвоения точки [8]G:

- вычисление углового коэффициента касательной в точке [8]G = (X8; Y8) = (84; 254)

K = mod P = mod 293 = mod 293 = 21176 * 508-1 = 21176 * 508291 mod 293 = 80 * 154 mod 293 = 12320 mod 293 =

= 14 mod 293 → 14.

- вычисление координат точки [16]G = (X16; Y16)

X16 = (K2 – 2X8) mod P = (142 - 2*84) mod 293 = (196 – 168) mod 293 =

= 28 mod 293 → 28;

Y16 = (K*(X8 – X16) – Y8) mod P = (14*(84 – 28) – 254) mod 293 = (784 – 254) mod 293 = 530 mod 293 = 237 mod 293 → 237.

Следовательно, [16]G = (X16; Y16) = (28; 237), координаты точки [16]G определены как X16 = 28; Y16 = 237.

Вычисление координат точки [32]G, как результат удвоения точки [16]G:

- вычисление углового коэффициента касательной в точке [16]G = (X16; Y16) = (28; 237)

K = mod P = mod 293 = mod 293 = 2360 * 474-1 mod 293 = 2360 * 474291 mod 293 = 16 * 34 mod 293 = 544 mod 293 =

= 251mod 293 → 251.

- вычисление координат точки [32]G = (X32; Y32)

X32 = (K2 – 2X16) mod P = (2512 - 2*28) mod 293 = (63001 – 56) mod 293 = = 62945 mod 293 = 243 mod 293 → 243;

Y32 = (K*(X16 – X32) – Y16) mod P = (251*(28 – 243) – 237) mod 293 = - 54202 mod 293 = - 290 mod 293 = (293 – 290) mod 293 = 3 mod 293 → 3.

Следовательно, [32]G = (X32; Y32) = (243; 3), координаты точки [32]G определены как X32 = 243; Y32= 3.

Вычисление точки [64]G, как результат удвоения точки [32]G:

- вычисление углового коэффициента касательной в точке [32]G = (X32; Y32) = (243; 3)

K = mod P = mod 293 = 177155 * 6-1 mod 293 =

= 177155 * 6291 mod 293 = 183 * 49 mod 293 = 8967 mod 293 = 177 mod 293 → 177.

- вычисление координат точки [64]G = (X64; Y64)

X64 = (K2 – 2X32) mod P = (1772 - 2*243) mod 293 = 30843 mod 293 = 78 mod 293 → 78;

Y64 = (K*(X32 – X64) – Y32) mod P = (177*(243 – 78) – 3) mod 293 = 29202 mod 293 = 195 mod 293 → 195.

Следовательно, [64]G = (X64; Y64) = (78; 195), координаты точки [64]G определены как X64 = 78; Y64 = 195.

Вычисление точки [128]G, как результат удвоения точки [64]G:

- вычисление углового коэффициента касательной в точке [64]G = (X64; Y64) = (78; 195)

K = mod P = mod 293 = mod 293 = 18260 * 390291 = 94 * 145 mod 293 = 13630 mod 293 = 152 mod 293 → 152.

- вычисление координат точки [128]G = (X128; Y128)

X128 = (K2 – 2X64) mod P = (1522 - 2*78) mod 293 = 22948 mod 293 = 94 mod 293 → 94;

Y128 = (K*(X64 – X128) – Y64) mod P = (152*(78 – 94) – 195) mod 293 =

= 10 mod 293 → 10.

Следовательно, [128]G = (X128; Y128) = (94; 10), координаты точки [128]G определены как X128 = 94; Y128 = 10.





Дата публикования: 2014-10-25; Прочитано: 542 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (1.445 с)...