
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
4. Действие абонента-отправителя (абонента «а») по формированию электронной цифровой подписи электронного сообщения «м».
Как и для случая формирования криптограмм открытого сообщения «М» считается, что параметры эллиптической кривой «а», «b» и модуль «Р» заданы. Для выполнения операции постановки электронной цифровой подписи и аутентификации принимаемых сообщений каждый участник электронного обмена на своем рабочем компьютере формируют секретные и открытые ключи. После чего абонент-отправитель с помощью своего закрытого (секретного) ключа формирует ЭЦП передаваемого электронного сообщения. Проверка подлинности (аутентификация) электронного сообщения осуществляется абонентом «В» с помощью открытого ключа абонента-отправителя «А».
Для формирования электронной цифровой подписи необходимо:
4.1. Изначально вычислить числовое значение функции хеширования hВ(M) передаваемого сообщения «М» (ГОСТ Р34.11-94). Для примера в качестве сообщения «М» задается слово «Криптон», функция хеширования слова «Криптон» имеет вид:
hВ(M) → { 52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42}.
4.2. Для составления криптограммы числовых значений функции хеширования hВ(M) абонент-отправитель задает случайным образом целое положительное число «К» при соблюдении следующих ограничений 1 < К < Р (для примера принимается значение К=347) и НОД (К; (Р-1)) = 1. Принимаются (для примера) следующие значения параметров эллиптической кривой:
Р =293; а = 8; b = 5
4.3. Вычисляется параметр N = [К]G = [347]G = (XN; YN). N = [347]G = [347](18;11).
4.3.1. Вычисляется множество точек удвоения заданной эллиптической кривой.
Для вычисления N изначально необходимо вычислить все удвоения точки G до [256]G, т.к. число 256 является максимальным числом степени 2n в составе числа 347 (К = 347). Значение числа К =347 числам 2n можно отобразить как 347 = 256 + 64 + 16 + 8 + 2 + 1, т.е. на первом этапе для вычисления параметра «К» необходимо вычислить следующие точки удвоения точки G: [2]G, [8]G, [16]G, [64]G, [256]G.
После вычисления множеств удвоений генераторной точки G необходимо значение их композиции. Если N = 347, то максимальный нижний предел по степени 2n = 28, т.е. n = 8; 28 ≤ 347; 256 ≤ 347. Следовательно:
N = [К]G = [347]G = G + [2]G + [8]G + [16]G + [64]G + [256]G, т.е. композиция чисел, определяющих значение N = [347]G, будет включать в себя значение G + [2]G + [8]G + [16]G + [64]G + [256]G. Указанные значения удвоений генераторной точки G были вычислены в разделе 3.1:
G(X1; Y1) = G(18;11); [2]G = (X2; Y2) = (292; 276); [4]G = (X4; Y4) = (86; 71);
[8]G = (X8; Y8) = (84; 254); [16]G = (X16; Y16) = (28; 237); [32]G = (X32; Y32) = (243; 3); [64]G = (X64; Y64) = (78; 195); [128]G = (X128; Y128) = (94; 10).
Указанное множество необходимо дополнить значение точки [256]G для вычисления композиции, отображающей значение точки N = [347]G, т.е.
[347]G = G + [2]G + [8]G + [16]G + [64]G + [256]G.
4.3.1.1. Вычисление координат точки [256]G заданной эллиптической кривой как результат удвоения точки [128]G = (X128; Y128) = (94; 10):
- вычисление значения углового коэффициента касательной в точке [128]G = (X128; Y128) = (94; 10):
к
=
mod
P =
mod
293 =
mod
293
=
= 26516 * 20-1 mod 293 = 146 * 20291 mod 293 = 146 * 44 mod 293 =
= 6424 mod 293 = 271 mod 293 → 271.
- вычисление координат точки [256]G = (X256; Y256)
X256 = (K2 – 2X128) mod P = (2712 - 2*94) mod 293 = (73441 – 188) mod 293 = 3 mod 293 → 3;
Y256 = (к * (X128 – X256) – Y128) mod P = (271* (94 – 3) – 10) mod 293 =
= 24651 mod 293 = 39 mod 293 → 39.
Следовательно, [256]G = (X256; Y256) = (3; 39), координаты точки [256]G определены как X256 = 94; Y256 = 10.