
- •Методы защиты информации в компьютерных технологиях Москва 2011
- •1. Основные направления криптологии.
- •2. Методы криптографических преобразований с открытым ключом.
- •2.1. Алгоритм нахождения числа по модулю.
- •2.2. Вычисление обратных величин в модулярной алгебре.
- •2.3. Алгоритм операции возведения числа в степень по модулю.
- •2.4. Определение односторонней функции.
- •3. Алгоритмы формирования и функционирования криптографических систем с открытым ключом.
- •3.1. Алгоритм криптографической системы rsa (Райвест-Шамир-Адлеман).
- •3.2. Алгоритм криптографической системы на основе вычисления дискретных логарифмов в конечном поле – алгоритм Эль Гамаля.
- •3.3. Алгоритм функционирования криптографической системы на основе дискретного логарифмирования в метрике эллиптических кривых.
- •3.3.1. Основные операции криптографических преобразований в метрике эллиптических кривых.
- •3.4. Преобразование Диффи-Хеллмана в системах криптографии с открытым ключом.
- •XcxпШифратор
- •3.5. Формирование криптограмм открытых сообщений и их дешифрование с использованием методов дискретного логарифмирования в метрике эллиптических кривых.
- •4.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •4.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •4.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •4.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •4.1.6. Вычисление координат точки [64]g , как результат удвоения точки [32]g:
- •4.1.7. Вычисление координат точки [128]g , как результат удвоения точки [64]g:
- •4.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •5. Алгоритм формирования открытого ключа абонента в.
- •5.1. Вычисление множеств точек удвоения заданной эллиптической кривой.
- •5.1.3. Вычисление точки [8]g, как результат удвоения точки [4]g:
- •5.1.4. Вычисление точки [16]g , как результат удвоения точки [8]g:
- •5.1.5. Вычисление точки [32]g , как результат удвоения точки [16]g:
- •5.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •5.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •5.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой ( [2]g; [4]g; [16]g; [32]g; [128]g ).
- •6. Вычисление парного сеансового ключа шифрования-дешифрования для абонентов а и в на основе преобразований Диффи-Хеллмана.
- •6.1. Действие абонента в.
- •6.1.1. Вычисление точки [2]коа , как результат удвоения точки коа:
- •6.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [2]коа; [4] коа; [16] коа; [32] коа; [128]коа).
- •7. Дешифрование абонентом а криптограммы, полученной от абонента в с использованием парного секретного симметричного ключа, сформированного по методу Диффи-Хеллмана в метрике эллиптических кривых.
- •7.1. Вычисление удвоений множества точек заданной эллиптической кривой на стороне абонента «а» по значению точки ков, характеризующей открытый ключ абонента «в».
- •7.1.1. Вычисление значения удвоения точки ков – [2]ков:
- •7.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [4]ков; [8]ков; [32]ков; [64]коа; [128]ков).
- •7. 3. Дешифрование абонентом «а» криптограммы с, полученной от абонента «в».
- •4. Алгоритмы электронной цифровой подписи.
- •4.1. Алгоритм электронной цифровой подписи rsa (Райвест-Шамир-Адлеман).
- •4.2. Алгоритм электронной цифровой подписи Эль Гамаля (egsa). Egsa (el Gamal Signature Algorithm).
- •4. 3. Алгоритм электронной цифровой подписи dsa (Digital Signature Algorithm).
- •4.4. Алгоритм электронной цифровой подписи гост р34.10-94. (Отечественный стандарт электронной цифровой подписи).
- •4.5. Алгоритм электронной цифровой подписи гост р34.10-2001. (Отечественный стандарт электронной цифровой подписи).
- •3.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •3.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •3.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •3.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •3.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •3.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •3.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •4. Действие абонента-отправителя (абонента «а») по формированию электронной цифровой подписи электронного сообщения «м».
- •4.3.2. Вычисление композиций точек удвоения [256]g; [64]g; [16]g; [8]g; [2]g; g заданной эллиптической кривой.
- •4.3.2.3. Вычисление композиции точек [336]g и [8]g;
- •4.3.2.4. Вычисление композиции точек [344]g и [2]g;
- •4.3.2.5. Вычисление композиции точек [346]g и g;
- •4.5. Вычисление параметра электронной цифровой подписи Si .
- •5. Действия абонента «в» по приему и аутентификации подписанного электронного сообщения «м».
- •5.5.2. Вычисление композиции точек [32]g и [8]g;
- •5.5.3. Вычисление композиции точек [40]g и [4]g;
- •5.5.5. Вычисление композиций точек удвоения
- •5.5.5.1. Вычисление композиции точек [128]коа и [64]коа;
- •5.5.5.2. Вычисление композиции точек [192]коа и [32]коа;
- •5.5.5.3. Вычисление композиции точек [224]коа и [2]коа;
- •5.5.5.4. Вычисление композиции точек [u1]g и [u2]коа;
- •5.5.5.5. Сравниваются вычисленные значения параметра «r», принятого в составе эцп от абонента-отправителя и значения абсциссы точки «q» → «xq», вычисленное абонентом получателем.
- •6. Элементы симметричных криптографических преобразований.
- •6.2. Табличное шифрование методом перестановки по ключевому слову или фразе, задающими перестановку.
- •6.3. Табличное шифрование методом двойной перестановки.
- •6.5. Шифры сложной замены.
- •7. Корректирующие коды.
- •6. 1. Блочные коды.
- •6.1.1. Систематические коды.
- •6.1.2. Корректирующие коды с обнаружением искажений, применяемые в системах передачи и обработки информации.
- •7. Windows-кодирование.
- •7.1. Преобразование Windows-кодирования - коды Грея.
- •7.2. Преобразование Windows-кодирования в систематические коды.
- •7.3. Преобразование Windows-кодирования в коды Хэмминга.
- •7.5. Преобразование Windows-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
5.5.3. Вычисление композиции точек [40]g и [4]g;
[40]G + [4]G = [44]G = (X44; Y44) .
([40]G = (X40; Y40) = (X40 =192; Y40 =16); [4]G = (X4; Y4) = (X4 =86; Y4 =71)).
- Вычисляется угловой коэффициент «к» прямой, проходящей через точки [40]G и [4]G заданной эллиптической кривой:
к
=
mod
P =
mod
293 =
mod
293 =
= -55 * 106-1 mod 293 = -55 * 106291 mod 293 = -55 * 47 mod 293 =
- 2585 mod 293 = -241 mod 293 = (293-241) mod 293 = 52 mod 293 → 52, т.е. к = 52.
- Вычисляются координаты точки [44]G = (X44; Y44):
X44 = (к2 – X4 – X40) mod P = (552 – 86 – 192) mod 293 = 2426 mod 293 =
= 82 mod 293 → 82.
Y44 = (к * (X40 – X44) – Y40) mod P = (52 * (192 – 82) – 16) mod 293 =
= 5704 mod 293 = 137 mod 293 → 137.
Следовательно, [44]G = (X44; Y44) = (82; 137), координаты точки [40]G определены как X44 = 82; Y44 = 137.
5.5.4. Для вычисления [U2]КОА = [226]КОА изначально необходимо вычислить все удвоения точки КОА до [128]КОА, т.к. число 128 является максимальным числом степени 2n в составе числа 226. Значение числа 226 по числам 2n можно отобразить как 226 = 128 + 64 + 32 + 2, т.е. на первом этапе для вычисления параметра «[U2]КОА = [226]КОА» необходимо вычислить следующие точки удвоения точки КОА: [2] КОА, [4] КОА, [8] КОА, [16] КОА, [32] КОА, [64]G, [128] КОА.
5.5.4.1. Вычисление координат точки [2]КОА заданной эллиптической кривой как результат удвоения точки КОА = (X1; Y1) = (231; 165):
- вычисление значения углового коэффициента касательной в точке КОА = (X1; Y1) = (231; 165):
к
=
mod
P =
mod
293 =
mod
293
=
= 160091 * 330-1 mod 293 = 160091 * 330291 mod 293 = 113 * 198 mod 293 =
= 22374 mod 293 = 106 mod 293 → 106.
- вычисление координат точки [2]КОА = (X2; Y2)
X2= (к2 – 2X1) mod P = (1062 - 2*231) mod 293 = (11236 – 462) mod 293 =
= 10774 mod 293 = 226 mod 293 → 226;
Y2 = (к * (X1 – X2) – Y1) mod P = (106* (231 – 226) – 165) mod 293 =
= 365 mod 293 = 72 mod 293 → 72.
Следовательно, [2]КОА = (X2; Y2) = (226; 72), координаты точки [2]КОА определены как X2 = 226; Y2 = 72.
5.5.4.2. Вычисление координат точки [4]КОА заданной эллиптической кривой как результат удвоения точки [2] КОА = (X2; Y2) = (226; 72):
- вычисление значения углового коэффициента касательной в точке [2]КОА = (X2; Y2) = (226; 72):
к
=
mod
P =
mod
293 =
mod
293
=
= 153236 * 144-1 mod 293 = 290 * 144291 mod 293 = 290 * 234 mod 293 =
= 67860 mod 293 = 177 mod 293 → 177.
- вычисление координат точки [4]КОА = (X4; Y4)
X4= (к2 – 2X2) mod P = (1772 - 2*226) mod 293 = (31329 – 452) mod 293 =
= 30877 mod 293 = 112 mod 293 → 112;
Y4 = (к * (X2 – X4) – Y2) mod P = (177* (226 – 112) – 72) mod 293 =
= 20106 mod 293 = 182 mod 293 → 182.
Следовательно, [4]КОА = (X4; Y4) = (112; 182), координаты точки [4]КОА определены как X4 = 112; Y4 = 182.
5.5.4.3. Вычисление координат точки [8]КОА заданной эллиптической кривой как результат удвоения точки [4] КОА = (X4; Y4) = (112; 182):
- вычисление значения углового коэффициента касательной в точке [4]КОА = (X4; Y4) = (112; 182):
к
=
mod
P =
mod
293 =
mod
293
=
= 37640 * 364-1 mod 293 = 136 * 364291 mod 293 = 136 * 260 mod 293 =
= 35360 mod 293 = 200 mod 293 → 200.
- вычисление координат точки [8]КОА = (X8; Y8)
X8= (к2 – 2X4) mod P = (2002 - 2*112) mod 293 = (40000 – 224) mod 293 =
= 39776 mod 293 = 221 mod 293 → 221;
Y8 = (к * (X4 – X8) – Y4) mod P = (200* (112 – 221) – 182) mod 293 =
= - 21800 - 182 mod 293 = - 21982 mod 293 = - 7 mod 293 = 286 mod 293 → 286.
Следовательно, [8]КОА = (X8; Y8) = (221; 286), координаты точки [8]КОА определены как X8 = 221; Y8 = 286.
5.5.4.4. Вычисление координат точки [16]КОА заданной эллиптической кривой как результат удвоения точки [8] КОА = (X8; Y8) = (221; 286):
- вычисление значения углового коэффициента касательной в точке [8]КОА = (X8; Y8) = (221; 286):
к
=
mod
P =
mod
293 =
mod
293
=
= 146531 * 572-1 mod 293 = 31 * 572291 mod 293 = 31 * 272 mod 293 =
= 8432 mod 293 = 228 mod 293 → 228.
- вычисление координат точки [16]КОА = (X16; Y16)
X16= (к2 – 2X8) mod P = (2282 - 2*221) mod 293 = (51984 – 442) mod 293 =
= 51542 mod 293 = 267 mod 293 → 267;
Y16 = (к * (X8 – X16) – Y8) mod P = (228* (221 – 267) – 286) mod 293 =
= - 10488 - 286 mod 293 = - 10774 mod 293 = - 226 mod 293 =
= (293 – 226) mod 293 = 67 mod 293 → 67.
Следовательно, [16]КОА = (X16; Y16) = (267; 67), координаты точки [16]КОА определены как X16 = 267; Y16 = 67.
5.5.4.5. Вычисление координат точки [32]КОА заданной эллиптической кривой как результат удвоения точки [16] КОА = (X16; Y16) = (267; 67):
- вычисление значения углового коэффициента касательной в точке [16]КОА = (X16; Y16) = (267; 67):
к
=
mod
P =
mod
293 =
mod
293
=
= 213875 * 134-1 mod 293 = 278 * 134291 mod 293 = 278 * 164 mod 293 =
= 45592 mod 293 = 177 mod 293 → 177.
- вычисление координат точки [32]КОА = (X32; Y32)
X32= (к2 – 2X16) mod P = (1772 - 2*267) mod 293 = (31329 – 534) mod 293 =
= 30795 mod 293 = 30 mod 293 → 30;
Y32 = (к * (X16 – X32) – Y16) mod P = (177* (267 – 30) – 67) mod 293 =
= 41882 mod 293 = 276 mod 293 → 276.
Следовательно, [32]КОА = (X32; Y32) = (30; 276), координаты точки [32]КОА определены как X32 = 30; Y16 = 276.
5.5.4.6. Вычисление координат точки [64]КОА заданной эллиптической кривой как результат удвоения точки [32] КОА = (X32; Y32) = (30; 276):
- вычисление значения углового коэффициента касательной в точке [32]КОА = (X32; Y32) = (30; 276):
к
=
mod
P =
mod
293 =
mod
293
=
= 2708 * 552-1 mod 293 = 2708 * 552291 mod 293 = 71* 112 mod 293 =
= 7952 mod 293 = 41 mod 293 → 41.
- вычисление координат точки [64]КОА = (X64; Y64)
X64= (к2 – 2X32) mod P = (412 - 2*30) mod 293 = (1681 – 60) mod 293 =
= 1621 mod 293 = 156 mod 293 → 156;
Y64 = (к * (X32 – X64) – Y32) mod P = (41* (30 – 156) – 276) mod 293 =
= - 5442 mod 293 = -168 mod 293 = (293-168) mod 293 → 125.
Следовательно, [64]КОА = (X64; Y64) = (156; 125), координаты точки [64]КОА определены как X64 = 156; Y64 = 125.
5.5.4.7. Вычисление координат точки [128]КОА заданной эллиптической кривой как результат удвоения точки [64] КОА = (X64; Y64) = (156; 125):
- вычисление значения углового коэффициента касательной в точке [64]КОА = (X64; Y64) = (156; 125):
к
=
mod
P =
mod
293 =
mod
293
=
= 73016 * 250-1 mod 293 = 59 * 250291 mod 293 = 59* 109 mod 293 =
= 6431 mod 293 = 278 mod 293 → 278.
- вычисление координат точки [128]КОА = (X128; Y128)
X128= (к2 – 2X64) mod P = (2782 - 2*156) mod 293 = (77284 – 312) mod 293 =
= 76972 mod 293 = 206 mod 293 → 206;
Y128 = (к * (X64 – X128) – Y64) mod P = (278* (156 – 206) – 125) mod 293 =
= - 14025 mod 293 = -254 mod 293 = (293-254) mod 293 = 39 mod 293 → 39.
Следовательно, [128]КОА = (X128; Y128) = (206; 39), координаты точки [128]КОА определены как X128 = 206; Y128 = 39.