Магистерская работа: Обеспечение информационной безопасности информационно-технологической инфраструктуры электронного правительства в Кыргызской Республике

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

·        эллиптическая кривая в конечном поле Fm2.

Эллиптическая кривая в конечном поле Fp. Пусть задано простое число р > 3. Тогда эллиптической кривой Е, определенной над конечным простым полем Fp, называется множество пар чисел (х,у), xFp, уFp, удовлетворяющих тождеству:

х3 + ax + b(mod р) (*),

где a, b  Fp и 4a3+ 27b2 не сравнимо с нулем по модулю р.

Инвариантом эллиптической кривой называется величина J(E), удовлетворяющая тождеству


Коэффициенты а, b эллиптической кривой Е по известному инварианту J(E) определяются следующим образом:


Пары (х, у), удовлетворяющие тождеству (*), называются точками эллиптической кривой Е ;х и у - соответственно х- и y-координатами точки.

Точки эллиптической кривой будем обозначать Q(x, у) или просто Q. Две точки эллиптической кривой равны, если равны их соответствующие х- и y -координаты. На множестве всех точек эллиптической кривой Е введем операцию сложения, которую будем обозначать знаком +. Для двух произвольных точек Q1 (х1, y1) и Q2(х2, у2) эллиптической кривой Е рассмотрим несколько вариантов.

Пусть координаты точек Q1 и Q2 удовлетворяют условию х^х2- В этом случае их суммой будем называть точку Q3(х3, у3), координаты которой определяются сравнениями


Если выполнены равенства х1=х2 и y1=у20, то определим координаты точки Q3, следующим образом:


В случае когда выполнено условие х1 = х2 и у1 = -y2(mod р), сумму точек Q1 и Q2 будем называть нулевой точкой О, не определяя ее х- и y-координаты. В этом случае точка Q2 называется отрицанием точки Q1,. Для нулевой точки О выполнены равенства:

+О=О+Q=Q

где Q - произвольная точка эллиптической кривой Е.

Относительно введенной операции сложения множество всех точек эллиптической кривой Е, вместе с нулевой точкой, образуют конечную абелеву (коммутативную) группу порядка т, для которого выполнено неравенство:


Точка Q называется точкой кратности k, или просто кратной точкой эллиптической кривой Е, если для некоторой точки Р выполнено равенство:


Эллиптическая кривая в конечном поле F2 определяется соотношением при ненулевом b.

у2 + ху = х3 + ах2 + b

Эллиптической кривой E(F2m) является группа решений (х, у), хF2m, уF2m, приведенного выше соотношения при определенных значениях а и b, а также нулевая точка О.

Аналогично группе эллиптической кривой E(FP), множество всех точек эллиптической кривой E(F2m) вместе с нулевой точкой образуют конечную абелеву группу.

С помощью описанных выше правил сложения можно вычислить точку kP для любого целого числа k и любой точки Р эллиптической кривой.

Однако решение обратной задачи - нахождение числа k по известным точкам Р и kP - является слишком трудным.

Данную задачу называют проблемой дискретного логарифма эллиптической кривой ECDLP (Elliptic Curve Discrete Logariphm Problem).

Решение проблемы ECDLP является значительно более сложным, чем проблемы дискретного логарифмирования (нахождение числах по заданному числу у = gr mod р при известных основании g и модуле р), на которой базируются RSA-подобные асимметричные криптосистемы.

Сложность решения проблемы ECDLP обусловлена ресурсоемкостью операций сложения и дублирования точек, с помощью которых вычисляется kP, как видно из приведенных выше формул.

Отсюда следует возможность применения более коротких ключей.

Например, ключу размером 1024 бит алгоритма DSA соответствует по криптостойкости ключ размером 160 бит алгоритма ECDSA (DSA на эллиптических кривых).

Существует несколько реализаций известных криптоалгоритмов на базе эллиптических кривых (стандартизованы в IEEE Р1363).

Алгоритм ассиметричного шифрования ECES.

В алгоритме ECES (Elliptic Curve Encryption Scheme) сначала должны быть определены следующие параметры, являющиеся открытой информацией, общей для всех пользователей системы [13, 17]:

·        конечное поле Fq;

·        эллиптическая кривая E(Fq);

·        большой простой делитель количества точек кривой п;

·        точка Р, координаты которой должны иметь тот же порядок, что и число п.

Каждый пользователь системы генерирует пару ключей следующим образом:

·        выбирается случайное целое число d, 1< d <п-1

·        вычисляется точка Q = dP.

Секретным ключом пользователя является число d, открытым ключом - точка Q

Зашифрование сообщения (пользователь А шифрует сообщение М для пользователя В):

·        сообщение разбивается на блоки Мi, которые определенным образом дополняются слева (длина каждого блока равна 2L - 16 бит, где L равно ближайшему большему целому от log2 q);

·        полученный блок разбивается на две части равной длины: т i1 и тi2;

·        выбирается случайное целое число k, \ < k < п-1

·        вычисляется точка {х1 у1,) = kP,

·        вычисляется точка (х2, у2) = kQB,

·        с помощью определенного преобразования из т i1 и тi2 и х2 получают с1 и с2;

·        зашифрованные данные: (х1, у1, с1, с2).

Расшифрование сообщения (пользователь В расшифровывает полученное от пользователя A зашифрованное сообщение):

·        вычисляется точка (х2, у2) = d(x1,y1);

·        восстанавливается исходное сообщение mi1 тi2 из с1, с2 и х2.

.1.3 Функция хэширования

Функция хэширования (хэш-функция) представляет собой преобразование, на вход которого подается сообщение переменной длины М, а выходом является строка фиксированной длины h(M).

Иначе говоря, хэш-функция h( ) принимает в качестве аргумента сообщение (документ) М произвольной длины и возвращает хэш значение (хэш) H = h(M) фиксированной длины (рис. 2.13).

Хэш-значение h(M) - это дайджест сообщения М, то есть сжатое двоичное представление основного сообщения М произвольной длины. Хэш-значение h(M) формируется функцией хэширования.

Функция хэширования позволяет сжать подписываемый документ М до 128 бит и более (в частности, 128 или 256 бит), тогда как М может быть размером в мегабайт или более.

Следует отметить, что значение хэш-функции h(M) зависит сложным образом от документа М и не позволяет восстановить сам документ М.

Функция хэширования должна обладать следующими свойствами:

Хэш-функция может быть применена к аргументу любого размера.

Выходное значение хэш-функции имеет фиксированный размер.

Хэш-функцию h(x) достаточно просто вычислить для любого х. Скорость вычисления хэш-функции должна быть такой, чтобы скорость выработки и проверки ЭЦП при использовании хэш-функции была значительно больше, чем при использовании самого сообщения.

Рис. 2.13. Схема формирования хэша H=h(M)

Хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т.п. Хэш-функция должна быть однонаправленной, то есть обладать свойством необратимости. Иными словами, задача подбора документа М, который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима.

Вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала; то есть для любого фиксированного х с вычислительной точки зрения невозможно найти х'  х, такое что h (х') = h (х).

Свойство 5 эквивалентно тому, что h( ) является односторонней функцией. Свойство 6 гарантирует, что не может быть найдено другое сообщение, дающее ту же свертку. Это предотвращает фальсификацию сообщения.

Таким образом, функция хэширования может использоваться для обнаружения изменений сообщения, то есть она может служить для формирования криптографической контрольной суммы (также называемой кодом обнаружения изменений или кодом аутентификации сообщения). В этом качестве хэш-функция используется для контроля целостности сообщения, при формировании и проверке электронной цифровой подписи.

Хэш-функции широко используются также в целях аутентификации пользователей. В ряде технологий информационной безопасности применяется своеобразный прием шифрования - шифрование с помощью односторонней хэш-функции. Своеобразие этого шифрования заключается в том, что оно, по существу, является односторонним, то есть не сопровождается обратной процедурой - расшифрованием на приемной стороне. Обе стороны (отправитель и получатель) используют одну и ту же процедуру одностороннего шифрования на основе хэш-функции [11,14].

Известные функции хэширования:

·        отечественный стандарт ГОСТ Р34.11-94 [14]. Вычисляет хэш размером 32 байт;

·        MD (Message Digest) - ряд алгоритмов хэширования, наиболее распространенных в мире. Каждый из них вырабатывает 128-битовый хэш-код. Алгоритм MD2 - самый медленный из них, MD4 - самый быстрый. Алгоритм MD5 является модификацией MD4, при которой пожертвовали скоростью ради увеличения безопасности. Алгоритм MD5 применяется в последних версиях Microsoft Windows для преобразования пароля пользователя в 16-байтовое число [11,15];

·        SHA (Secure Hash Algorithm) - это алгоритм вычисления дайджеста сообщений, вырабатывающий 160-битовый хэш-код входных данных. Широко распространен в мире, используется во многих сетевых протоколах защиты информации.

Отечественный стандарт хэширования ГОСТ Р 34.11-94

Отечественным стандартом генерирования хэш-функции является алгоритм ГОСТ Р34.11-94. Этот стандарт является обязательным для применения в качестве алгоритма хэширования в государственных организациях РФ и ряде коммерческих организаций. Коротко данный алгоритм хэширования можно описать следующим образом [16] (рис. 2.14).

Рис. 2.14. Хэширование по алгоритму ГОСТ Р 34.11-94

Шаг 1. Инициализация регистра хэш-значения. Если длина сообщения не превышает 256 бит - переход к шагу 3, если превышает - переход к шагу 2.

Шаг 2. Итеративное вычисление хэш-значения блоков хэшируемых данных по 256 бит с использованием хранящегося в регистре хэш-значения предыдущего блока. Вычисление включает в себя следующие действия:

·        генерацию ключей шифрования на основе блока хэшируемых данных;

·        зашифрование хранящегося в регистре хэш-значения в виде четырех блоков по 64 бит по алгоритму ГОСТ 28147-89 в режиме простой замены;

·        перемешивание результата.

Вычисление производится до тех пор, пока длина необработанных входных данных не станет меньше или равной 256 бит. В этом случае - переход к шагу 3.

ШагЗ. Дополнение битовыми нулями необработанной части сообщения до 256 бит. Вычисление хэш-значения аналогично шагу 2. В результате в регистре оказывается искомое хэш-значение.

2.1.4 Электронная цифровая подпись

Электронная цифровая подпись используется для аутентификации текстов, передаваемых по телекоммуникационным каналам.

Целью аутентификации электронных документов является их защита от возможных видов злоумышленных действий, к которым относятся:

·        активный перехват - нарушитель, подключившийся к сети, перехватывает документы (файлы) и изменяет их;

·        маскарад - абонент С посылает документ абоненту В от имени абонента А;

·        ренегатство - абонент А заявляет, что не посылал сообщения абоненту В, хотя на самом деле послал;

·        подмена - абонент В изменяет или формирует новый документ и заявляет, что получил его от абонента А;

·        повтор - абонент С повторяет ранее переданный документ, который абонент А посылал абоненту В.

ЭЦП основана на обратимости асимметричных шифров, а также на взаимосвязанности содержимого сообщения, самой подписи и пары ключей. Изменение хотя бы одного из этих элементов сделает невозможным подтверждение подлинности цифровой подписи. ЭЦП реализуется при помощи асимметричных алгоритмов шифрования и хэш-функций.

Система ЭЦП включает две основные процедуры:

·        процедуру формирования цифровой подписи;

·        процедуру проверки цифровой подписи.

·        Процедура формирования цифровой подписи.

На подготовительном этапе этой процедуры абонент А - отправитель сообщения - генерирует пару ключей: секретный ключ kA и открытый ключ КА. Открытый ключ КА вычисляется из парного ему секретного ключа kA. Открытый ключ Кл рассылается остальным абонентам сети (или делается доступным, например, на разделяемом ресурсе) для использования при проверке подписи.

Для формирования цифровой подписи отправитель А прежде всего вычисляет значение хэш-функции h(М) подписываемого текста М (рис. 2.15). Хэш-функция служит для сжатия исходного подписываемого текста М в дайджест т - относительно короткое число, состоящее из фиксированного небольшого числа битов и характеризующее весь текст Мв целом. Далее отправитель А шифрует дайджест т своим секретным ключом kA. Получаемая при этом пара чисел представляет собой цифровую подпись для данного текста М. Сообщение М вместе с цифровой подписью отправляется в адрес получателя.

Рис. 2.15. Схема формирования электронной цифровой подписи

Процедура проверки цифровой подписи. Абоненты сети могут проверить цифровую подпись полученного сообщения М с помощью открытого ключа отправителя Кл этого сообщения (рис. 2.16).

При проверке ЭЦП абонент В - получатель сообщения М - расшифровывает принятый дайджест т открытым ключом КА отправителя А. Кроме того, получатель сам вычисляет с помощью хэш-функции h(M) дайджест т принятого сообщения М и сравнивает его с расшифрованным. Если эти два дайджеста - т и т' - совпадают, то цифровая подпись является подлинной. В противном случае либо подпись подделана, либо изменено содержание сообщения.

Рис. 2.16. Схема проверки электронной цифровой подписи

Электронная цифровая подпись представляет собой уникальное число, зависящее от подписываемого документа и секретного ключа абонента. В качестве подписываемого документа может быть использован любой файл. Подписанный файл создается из неподписанного путем добавления в него одной или более электронных подписей.

Помещаемая в подписываемый файл (или в отдельный файл электронной подписи) структура ЭЦП обычно содержит дополнительную информацию, однозначно идентифицирующую автора подписанного документа. Эта информация добавляется к документу до вычисления ЭЦП, что обеспечивает и ее целостность. Каждая подпись содержит следующую информацию:

Источник: https://www.bibliofond.ru/detail.aspx?id=865048