
- •Методы защиты информации в компьютерных технологиях Москва 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.3. Алгоритм функционирования криптографической системы на основе дискретного логарифмирования в метрике эллиптических кривых.
В основе алгоритмизации криптографических преобразований с открытым ключом в метрике эллиптических кривых положен метод вычисления парных ключей шифрования-дешифрования (открытый ключ-секретный ключ), метод формирования криптограмм открытых сообщений и их распознавания, а также метод аутентификации электронных сообщений с использованием функциональных преобразований на эллиптических кривых. Достоинства таких преобразований по отношению к методам построения криптографических систем защиты и аутентификации электронных сообщений на основе факторизации больших чисел (алгоритм RSA) и дискретном логарифмировании в конечных полях (алгоритм Эль Гамаля) в прикладных вопросах криптографии были приведены в разделе 1.
Рассмотрим особенности методов математической формализации на эллиптических кривых. Эллиптической кривой называется кривая третьего порядка Z, задаваемая следующим уравнением Z : Y2 = X3 + aX + b. Для вычисления характерных точек, принадлежащих эллиптической кривой, для детерминирования множеств открытых КО и закрытых КЗ ключей в соответствии с преобразованием Кардана (аналогично преобразованиям Виета для решения уравнения второго порядка Z : Y = aX2 + bX + C) прежде всего необходимо определить условие ограничения. Таким условием в прикладных аспектах криптографии являются требования к задаваемым параметрам «а» и «в» эллиптических кривых, эти параметры для построения криптографических систем должны удовлетворять следующим позициям. Прежде всего, эти параметры должны быть такими, чтобы уравнение эллиптической кривой имело три различных корня. Это условие достигается тогда и только тогда, когда дискриминант уравнения Z : Y2 = X3 + aX + b не будет равен нулю D ≠ 0. Случай, когда дискриминант уравнения эллиптической кривой равен нулю D = 0, определяет задаваемую эллиптическую кривую как сингулярную, т.е. в точке сингулярности имеются две касательные, такой случай характеризует неопределенность решений и в прикладной криптографии, в настоящее время, исключается из рассмотрения.
Таким образом, при задании эллиптической кривой с параметрами «а» и «в» обязательным условием является неравенство нулю дискриминанта задаваемого уравнения. В свою очередь, в соответствии с преобразованием Кардана, дискриминант уравнения эллиптической кривой определяется как:
D
= (
3
+ (
2
.
Исходя из представленной зависимости, необходимым условием применимости параметров «а» и «в» к задачам прикладной криптографии, является условие:
+
≠ 0; 4
а3
+ 27
b2
≠ 0.
Весьма важным условием в решении криптографических задач в метрике эллиптических кривых является вычисление операции удвоения исходной генераторной точки в решении уравнения и удвоения полученных последующих точек [2]G; [4]G; … [2n]G и операции вычисления их композиций. Это условие необходимо для определения любой точки принадлежащей заданной эллиптической кривой, в этом случае полное множество точек эллиптической кривой может быть построено на основании только одной точки той же кривой, называемой генераторной точкой. Так, например, для определения пятой точки необходимо выполнить две операции удвоения генераторной точки и одну операцию композиции между исходной генераторной точкой и результатом процесса ее учетверения, т.е.
[5]G1 = G1 + [4]G1; G2 = [2]G1; [4]G1 = [2]G2;
Для криптографических преобразований в уравнении эллиптической кривой Z : Y2 = (X3 + aX + b) mod P переменными величинами являются параметры X и Y и коэффициенты «а» и «в», все вычисления выполняются по модулю Р, в свою очередь на параметры «а» и «в» накладываются дополнительные ограничения - их значения должны принимать только целочисленные значения и значение дискриминанта, полученного с их помощью по заданному модулю, не должно равняться нулю:
D = (4a3 + 27b2) mod P ≠ 0.
Необходимо отметить, что все процессы алгоритма дискретного логарифмирования переносятся на эллиптические кривые, и основной операцией такого соответствия является операция замены функционального преобразования дискретного логарифмирования КОВ = mod P при вычислении открытого ключа КОВ по случайно выбранному закрытому (секретному) ключу КЗВ на замену числа КОВ на точку КОВ заданной эллиптической кривой. Переход от числа КОВ к точке КОВ на эллиптической кривой заключается в представлении точки КОВ в сетке координат (xi; yi) и использовании при расчетах значения абсциссы выбранной точки – xi.
В соответствии с ГОСТ Р34.10-2001 на средства аутентификации электронных сообщений (ЭЦП) параметры уравнения эллиптической кривой в практической криптографии определяются следующим образом:
Р – модуль криптографических преобразований является большим простым числом размером 256 бит;
Значение коэффициент «в» составляет 32 бит;
Значение коэффициент «а» составляет 16 бит;
Коэффициенты «а» и «в» - целые числа.
Общее количество точек на заданной эллиптической кривой с заданными параметрами определяется в соответствии с теоремой Хассе и обозначается как #ZP (a, b):
P
+ 1 - 2
≤ #ZP
(a,
b)
≤ P
+ 1 + 2
Значения параметров «а» и «в» выбираются случайным образом при следующих условиях ограничения:
- числовые значения коэффициентов «а» и «в» по выбранному параметру Р не должны равняться нулю:
(а; в) mod P ≠ 0 mod P
- дискриминант уравнения Y2 = X3 + aX + b, определяемый как было указано выше также не должен быть равен нулю по заданному модулю Р:
D = (4a3 + 27 b2) mod P ≠ 0.