
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
3.1.4. Вычисление координат точки [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.
3.1.5. Вычисление координат точки [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.
3.1.6. Вычисление точки [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.
3.1.7. Вычисление точки [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.
3.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
Для вычисления открытого ключа абонента «А» КОА = [КЗА]G необходимы точки [4]G; [8]G; [32]G; [64]G; [128]G заданной эллиптической кривой, т.к. число 236,отображающее закрытый ключ, формируется из результатов композиций операций удвоений 236 = 4 + 8 +32 + 64 + 128.
Следовательно, значение открытого ключа КОА = [КЗА]G будет определяться результатом композиций точек [4]G; [8]G; [32]G; [64]G; [128]G.
3.2.1. Вычисление композиции точек [64]G и [128]G; [64]G + [128]G = [192]G = (X192; Y192) . ( [64]G = (X64; Y64) = (78; 195); [128]G = (X128; Y128) = (94; 10))
- Вычисляется угловой коэффициент прямой, проходящей через точки [64]G и [128]G заданной эллиптической кривой:
K = mod P = mod 293 = - 185 * 16-1 mod 293 = - 18 * 16291 mod 293 = - 185 * 55 mod 293 = - 10175 mod 293 = -213 mod 293 = (293-213) mod 293 = 80 mod 293 → 80.
- Вычисляются координаты точки [192]G = (X192; Y192):
X192 = (K2 – X64 – X128) mod P = (802 – 78 – 94) mod 293 = 6228 mod 293 = 75 mod 293 → 75.
Y192 = (K*(X128 – X192) – Y128) mod P = (80* (94 – 75) – 10) = 1510 mod 293 = 45 mod 293 → 45
Следовательно, [192]G = (X192; Y192) = (75; 45), координаты точки [192]G определены как X192 = 75; Y192 = 45.
3.2.2. Вычисление композиции точек [192]G и [32]G; [192]G + [32]G = [224]G = (X224; Y224) . ([192]G = (X192; Y192) = (75; 45); [32]G = (X32; Y32) = (243; 3)).
- Вычисляется угловой коэффициент прямой, проходящей через точки [32]G и [192]G заданной эллиптической кривой:
K = mod P = mod 293 = - 42 * 168-1 mod 293 = - 42 * 168291 mod 293 = 251 * 75 mod 293 = 18825 mod 293 = 73 mod 293 → 73.
- Вычисляются координаты точки [224]G = (X224; Y224):
X224 = (K2 – X192 – X32) mod P = (732 – 75 – 243) mod 293 = 30 mod 293 → 30.
Y224 = (K*(X192 – X224) – Y192) mod P = (73* (75 – 30) – 45) mod 293 =
= 17 mod 293 → 17.
Следовательно, [224]G = (X224; Y224) = (30; 17), координаты точки [224]G определены как X224 = 30; Y224 = 17.
3.2.3. Вычисление композиции точек [224]G и [8]G; [224]G + [8]G = [232]G = (X232; Y232) . ([224]G = (X224; Y224) = (30; 17); [8]G = (X8; Y8) = (84; 254)).
- Вычисляется угловой коэффициент прямой, проходящей через точки [224]G и [8]G заданной эллиптической кривой:
K = mod P = mod 293 = mod 293 = 237 * 54-1 mo293 = = 237 * 54291 mod 293 = 237 * 38 mod 293 = 9006 mod 293 = 216 mod 293 → 216.
- Вычисляются координаты точки [232]G = (X232; Y232):
X232 = (K2 – X232 – X8) mod P = (2162 – 30 – 84) mod 293 = 46542 mod 293 = 248 mod 293 → 248.
Y232 = (K*(X224 – X232) – Y224) mod P = (216* (30 – 248) – 17) mod 293 =
= - 47105 mod 293 = - 225 mod 293 = (293 – 225) mod 293 = 68 mod 293 → 68.
Следовательно, [232]G = (X232; Y232) = (248; 68), координаты точки [232]G определены как X232 = 248; Y232 = 68.
3.2.4. Вычисление композиции точек [232]G и [4]G; [232]G + [4]G = [236]G = (X236; Y236);. ([232]G = (X232; Y232) = (248; 68); [4]G = (X4; Y4) = (86; 71)).
- Вычисляется угловой коэффициент прямой, проходящей через точки [232]G и [4]G заданной эллиптической кривой:
K = mod P = mod 293 = - mod 293 = - 3 * 162-1 mod 293 = - 3 * 162291 mod 293 = -3 * 208 mod 293 = - 624 mod 293 = - 38 mod 293 = (293 – 38) mod 293 = 255 mod 293 → 255.
- Вычисляются координаты точки [236]G = (X236; Y236):
X236 = (K2 – X232 – X4) mod P = (2552 – 248 – 86) mod 293 = 64691 mod 293 = = 231 mod 293 → 231.
Y236 = (K*(X232 – X236) – Y232) mod P = (255* (248 – 231) – 68) mod 293 =
= 4267 mod 293 = 165 mod 293 → 165.
Следовательно, [236]G = (X236; Y236) = (231; 165), координаты точки [236]G определены как X236 = 231; Y236 = 165.
В результате выполнения операций удвоения и композиций детерминированных множеств точек заданной эллиптической кривой определены координаты точки открытого ключа абонента «А», а, следовательно, и сам открытый ключ КОА = [КЗА]G = [236]G = (X236; Y236) = (231; 165). Открытый ключ абонента «А» КОА выбирается как значение абсциссы X236 = 231, т.е. КОА = 231.
Абонент А передает абоненту В заданные параметры эллиптической кривой (P = 293; a = 8; b = 5), координаты генераторной точки G = (XG; YG) = (18; 11) и координаты своего открытого ключа КОА = [КЗА]G = [236]G = (X236; Y236) = (231; 165) открыто по открытым каналам связи для аутентификации им принимаемых электронных сообщений, получаемых от абонента «В».