
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
2.1. Алгоритм нахождения числа по модулю.
Операцию нахождения числа по модулю (операцию нахождения вычета числа «а» по модулю «Р») называют приведением числа «а» по модулю «Р»
y = a mod P
Эта запись в модулярной алгебре читается как «число y сравнимо с числом а по модулю Р». Это соотношение справедливо для целых значений чисел: y, a, P и Р ≠ 0. Число «а» определяют как «вычет» числа «y» по модулю «Р». Операцию нахождения вычета числа «а» по модулю «Р» можно интерпретировать численным примером следующим образом. Найти вычет выражения y = 23 mod 17 = 6 mod 17, т.е. число 23 делится на 17, находится остаток, который и будет являться вычетом числа 23 по модулю 17. Набор целых чисел от 0 до Р-1 называется полным набором вычетов по модулю Р. Для последующих вычислений необходимо определять вычеты и от отрицательных чисел, например:
-23 mod 7 = -16 mod 7 = -9 mod 7 = -2 mod 7 = 5 mod 7 и т.д.
Модулярная алгебра полностью отвечает требованиям коммутативности, ассоциативности и дистрибутивности:
(а + b) mod P = [ a ( mod P ) + b ( mod P )] mod P
(а - b) mod P = [ a ( mod P ) - b ( mod P )] mod P
(а * b) mod P = [ a ( mod P ) * b ( mod P )] mod P
[а * ( b + c )] mod P = {[ a * b ( mod P )] + [a * c ( mod P )]} mod P
2.2. Вычисление обратных величин в модулярной алгебре.
В теории криптографических преобразований достаточно часто приходится сталкиваться с трудоемкой задачей вычисления обратных величин по модулю. Во многих криптографических задачах для заданных чисел «а» и «Р» требуется нахождение числа «d» меньшего «Р» ( d < P ), чтобы выполнялось единичное сравнение a * d mod P ≡ 1.
Необходимо отметить , что такое число «d» существует, если числа «а» и «Р» взаимно простые, при этом число «d» называют инверсией числа «а» по модулю «Р» и обозначают как: а-1 mod P. Например, требуется определить инверсию 6-1 mod 17; необходимо найти такое число, которое при умножении на число 6 и делении этого произведения на число 17 в остатке образует число 1. В рассматриваемом примере таким числом будет являться число 3, т.к. 6 * 3 mod 17 ≡ 1, следовательно, число 3 является инверсией числа 6 по модулю 17.
Для вычисления обратных величин при условии, что если Р - простое число, что практически справедливо для всех криптографических задач асимметричной криптографии, можно воспользоваться малой теоремой Ферма.
Малая теорема Ферма интерпретируется следующим образом: если «Р» - простое число, «а» - целое число, то инверсию числа «а» по модулю «Р» можно определить как:
а-1 (mod Р) = аφ(P) – 1 mod P
где: φ (Р) – функция Эйлера;
для простых чисел φ (Р) = Р – 1.
Функция Эйлера указывает сколько во множестве чисел от 0 до Р, есть чисел взаимно простых с Р.
Например, если Р = 17, то φ (Р) = Р-1 = 17-1 = 16. Требуется вычислить инверсию числа 2 по модулю 17, т.е. вычислить 2-1 mod 17.
2-1mod 17 = 2φ(P) – 1mod Р = 215mod 17 = 32768 mod 17 = 9 mod 17 → 9.
Следовательно, число 9 является инверсией числа 2 по модулю 17, т.к. 2 * 9 mod 17 = 18 mod 17 = 1 mod 17 → 1.