VIP STUDY сегодня – это учебный центр, репетиторы которого проводят консультации по написанию самостоятельных работ, таких как:
  • Дипломы
  • Курсовые
  • Рефераты
  • Отчеты по практике
  • Диссертации
Узнать цену

Программный комплекс гибридного шифрования на основе российских ГОСТов по криптографии

Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: W014025
Тема: Программный комплекс гибридного шифрования на основе российских ГОСТов по криптографии
Содержание
ВВЕДЕНИЕ
     Вследствие того, что информационные технологии развиваются, а с ними развиваются и различные технические средства съема информации, возникает необходимость защиты информации от неправомерного доступа к ней. 
     При передачи конфиденциальной информации по открытым каналам связи широко используются методы симметричного или асимметричного шифрования. Но каждый из методов такой защиты имеет свои нюансы. При симметричном шифровании существует необходимость передачи ключей собеседнику либо заранее, либо используя закрытый канал связи, что влечет за собой сложности реализации обмена информации. При асимметричном шифровании необходимо для обеспечения должной криптостойкости более длинные ключи.  Поэтому нередко для компенсации недостатков обоих методов используют гибридное (или комбинированное) шифрование.
     Цель выпускной квалификационной работы состоит в разработке программного комплекса гибридного шифрования на основе российских ГОСТов по криптографии. 
     Для достижения поставленной цели сформулированы следующие задачи:
       Изучить теоретическую информацию о шифровании;
       Изучить ГОСТы, необходимые для разработки программного комплекса;
       Изучить нормативные правовые документы, необходимые для разработки программного комплекса;
       Определить средства разработки.
       Разработать схему взаимодействия объектов, алгоритм работы программного обеспечения.
       Разработать графический интерфейс пользователя.
       Написать программное обеспечение и провести эксплуатационные испытания.
       Оценить эффекты от внедрения комплекса шифрования информации и составить смету разработки продукта.
       Определить вредные для работы программиста факторы и разработать мероприятия по их нейтрализации.
     В данной работе описана разработка программного комплекса шифрования информации под семейство клиентских операционных систем WindowsNT (Windows 7, Windows 8, Windows 10). 
     В первой главе «Аналитическая часть» определены нормативно-правовые акты Российской Федерации, которые необходимо учитывать при разработке программного комплекса, были рассмотрены методы шифрования информации, а также способы программной реализации криптографических ГОСТов.
     Во второй главе «Конструкторская часть» произведен выбор языка программирования, среды разработки и сторонние классы, позволяющиеоблегчить процесс написания программного комплекса гибридного шифрования информации, описан общий алгоритмы работы программы, а также результаты эксплуатационных испытаний.
     В третьей главе «Документация программного комплекса» изложены техническое задание, руководство пользователя и руководство администратора.
     В четвертой главе «Организационно-экономическая часть» определены эффекты от внедрения программного продукта, осуществлено планирование процесса разработки и приведена общая смета разработки данного продукта.
     В пятой главе «Безопасность жизнедеятельности» определены вредные и опасные факторы, присутствующие при работе программиста за ПЭВМ, разработаны меры противодействия этим факторам, а также произведен расчет теплового ощущения программиста на рабочем месте.


1. АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1. Общие сведения о шифровании.
     Шифрование – это один из наиболее широко используемых криптографических методов для скрытия информации от несанкционированного доступа к ней путем преобразования информации. 
     Главной особенностью шифрования является наличие ключа (открытого и/или закрытого в зависимости от выбранного алгоритма шифрования), утверждающего выбор конкретного преобразования из множества возможных вариантов для данного алгоритма.
     Идея шифрования заключается в том, что злоумышленник, не имея ключа, даже если и перехватит информацию, то не сможет ее прочитать или изменить.
     Любое шифрование состоит из двух составляющих: зашифровывание и расшифровывание.  Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифровыванию. Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифровывания.
     Оба процесса можно представить математическими функциями, удовлетворяющими определённым требованиям. Если представить, что исходные данные - это математические множества (M,C), а каждая из двух функций (E, D) является отображением одного из этих множеств в другое, то функции зашифровывания и расшифровывания можно представить следующим образом:
 зашифровывающая функция E:M?C
 расшифровывающая функция D:C?M
     При помощи шифрования можно обеспечить целостность, доступность и конфиденциальность информации. 
     Конфиденциальность информации обеспечивается путем сокрытия информации от лиц, не обладающих ключом расшифровки. Целостность обеспечивается предотвращением изменения информации при передаче или хранении. Доступность обеспечивается путем предоставления доступа к информации тем, кто обладает ключом расшифровки. 
     Для того, чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор. 
     Существует два метода шифрования:
     А) Симметричное шифрование использует один и тот же ключ и для зашифровывания, и для расшифровывания.
     Б) Асимметричное шифрование использует два разных ключа: один для зашифровывания (который также называется открытым), другой для расшифровывания (который также называется закрытым).
      1.2. Симметричное шифрование
     Симметричное шифрование – это способ шифрования, в котором применяется ключ, одинаковый как для шифрования данных, так и для их расшифровывания. Ключ симметричного шифрования должен обязательно сохраняться в секрете. 
     Главным принципом симметричного шифрования является условие, что алгоритм шифрования известен заранее, а также ключ к сообщению, без которых информация представляет собой всего лишь набор символов, не имеющих смысла.
     Представим схему реализации симметричного шифрования на примере задачи: есть два собеседника — Алиса (А) и Боб (Б), которые хотят обмениваться конфиденциальной информацией [1].
     Решение данной задачи сводится к трем этапам:
     1 Этап. Генерация ключа.
      Б (или А) выбирает ключ шифрования d и алгоритмы E и  D, реализующие функции шифрования и расшифровывания, а затем посылает эту информацию А (или Б).
     2 Этап. Шифрование и передача сообщения.
      А шифрует сообщение m с использованием полученного ключа d : E(m,d)=c и передает Б полученный шифротекст c. Аналогичные действия должен проделать Б, если захочет отправить сообщение для А.
     3 Этап. Расшифровывание сообщения.
     Б (или А), с помощью того же ключа d, расшифровывает шифротекст с и получает исходное сообщение:  D(c,d)=m.
     К симметричным шифрам относятся:
     А) Блочные шифры. Информация при шифровании обрабатывается блоками определённой длины (64, 128, 256 бит), применяя к каждому блоку ключ, и, используя несколько циклов перемешивания и подстановки, называемыми раундами. Результатом раундов является нарастающая потеря соответствия битов между блоками данных до и после их зашифровывания (лавинный эффект). 
     Б) Поточные шифры. Информация в поточных шифрах обрабатывается путем шифрования каждого бита либо байта исходного (открытого) текста с использованием гаммирования. Поточный шифр можно легко создать на основе блочного, который запущен в специальном режиме гаммирования.
     Большинство шифров используют сложную комбинацию, состоящую из огромного количества всевозможных подстановок и перестановок, реализуемых на каждом проходе алгоритма. За время работы всего алгоритма можно сделать до 80 проходов, используя на каждом из них «ключ прохода».    «Ключ прохода» как правило выбирается из множества ключей, созданных путем неких операций, включая операции подстановки и перестановки, над основным ключом шифрования.  
     Одним из способов построения алгоритма симметричного шифрования является сеть Фейстеля. Данный алгоритм строит схему шифрования на основе функции с двумя переменными, одна из которых – это порция данных размером вдвое меньше блока шифрования, а вторая - «ключ прохода» для конкретного прохода. Главное достоинство сети Фейстеля - это почти полное совпадение дешифровки с шифрованием, за исключением того, что для дешифровки используется обратный порядок «ключей прохода».
     Существенными параметрами симметричных шифров является:
       Стойкость
       Длина ключа
       Число раундов
       Длина обрабатываемого блока
       Сложность аппаратной/программной реализации
       Сложность преобразования
     Зачастую стойкость алгоритма зависит от выбора значений в таблицах подстановки, так называемых S-блоках. Нежелательным считается:
     А) наличие неподвижных элементов S(x) = x;
     Б) случай, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.
     
1.3. Асимметричное шифрование
     Асимметричное шифрование – это способ шифрования, в котором применяются два ключа: открытый и закрытый(секретный).  Открытый ключ передается по открытому каналу связи, а закрытый ключ держится в секрете. Шифрование сообщения происходит с применением открытого ключа, а расшифровка – закрытого. 
     Идея ассиметричного шифрования тесно связана с идеей односторонних функций, то есть функций f(x), которые поволяют по известному x довольно просто найти значение f(x), тогда как определение x из f(x) невозможно за разумный срок.
     Однако сама по себе односторонняя функция бесполезна в применении: ею можно зашифровать сообщение, но расшифровать нельзя. В связи с этим асимметричное шифрование использует односторонние функции с лазейкой. Лазейка — это некий секрет, помогающий расшифровать текст. То есть существует такой y, что зная f(x) и y, можно вычислить x. 
     Асимметричное шифрование решает проблему симметричных схем, которая связана с начальной передачей ключа другой стороне. В асимметричных системах другой стороне передается лишь открытый ключ, который необходим для шифрования информации, но бесполезен при её расшифровке. Таким образом решается проблема синхронизации ключей.
      Представим схему реализации асимметричного шифрования на примере задачи: есть два собеседника — Алиса (А) и Боб (Б), А хочет передавать Б конфиденциальную информацию [1].
     Решение данной задачи сводится к трем этапам:
     1 Этап. Генерация ключевой пары.
     Б выбирает алгоритм (E,D) и пару открытый, закрытый ключи — (e,d)и посылает открытый ключ eА по открытому каналу.
     2 Этап. Шифрование и передача сообщения.
     Алиса шифрует информацию с использованием открытого ключа Б : E(m,e)=c. Затем передает Б полученный шифротекст c.
     3 Этап. Расшифровывание сообщения.
     Б, с помощью закрытого ключа d, расшифровывает шифротекст c:
     D(c,d)=m.
     Если необходимо посылать конфиденциальную информацию в обе стороны, то первые два этапа необходимо проделать на обеих сторонах, чтобы каждый знал свои закрытый, открытый ключи и открытый ключ собеседника. Закрытый ключ каждой стороны не передается по незащищенному каналу, тем самым оставаясь в секретности.
1.4. Достоинства и недостатки симметричного и асимметричного шифрования

     Достоинства и недостатки симметричного и асимметричного шифрования представлены в таблице 1.
     Таблица 1.

Криптостойкость
Распространение ключей
Скорость шифрования / расшифровки
Симметричное шифрование
Стойкие при относительно коротких ключах
Проблема распространения ключей
Короткие ключи?более быстрое шифрование
Асимметричное шифрование
Криптостойкость алгоритмов асимметричного шифрования не доказана
Необходимы более длинные ключи
Не требуют распространения секретного ключа
Длинные ключи?более медленное шифрование
     
     Для компенсации недостатков симметричного шифрования в настоящее время широко применяется комбинированное шифрование, где с помощью асимметричного передаётся сеансовый ключ, который используется для обмена данными при помощи симметричного шифрования.
     
      1.5. ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры.». Алгоритм блочного шифрования с длиной блока 128 бит.

     ГОСТ Р 34.12-2015вступил в действие 1 января 2016 года [2].  Данный стандарт разработан Центром защиты информации и специальной связи ФСБ России с участием ОАО «Информационные технологии и коммуникационные системы». Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»
     Блочный шифр «Кузнечик» — это симметричный алгоритм шифрования с размером блока 128 бит и длиной ключа 256 бит. Для генерации раундовых ключей в данном шифре используется сеть Фейстеля.
     В качестве нелинейного биективного преобразования выступает подстановка ?^':
     ?^'=(252, 238, 221, 17, 207, 110, 49, 22, 251, 196, 250, 218, 35, 197, 4, 77, 233, 119, 240, 219, 147, 46, 153, 186, 23, 54, 241, 187, 20, 205, 95, 193,249, 24, 101, 90, 226, 92, 239, 33, 129, 28, 60, 66, 139, 1, 142, 79, 5, 132, 2, 174, 227, 106, 143, 160, 6, 11, 237, 152, 127, 212, 211, 31, 235, 52, 44, 81, 234, 200, 72, 171, 242, 42, 104, 162, 253, 58, 206, 204, 181, 112, 14, 86, 8, 12, 118, 18, 191, 114, 19, 71, 156, 183, 93, 135, 21, 161, 150, 41, 16, 123, 154, 199, 243, 145, 120, 111, 157, 158, 178, 177, 50, 117, 25, 61, 255, 53, 138, 126, 109, 84, 198, 128, 195, 189, 13, 87, 223, 245, 36, 169, 62, 168, 67, 201, 215, 121, 214, 246, 124, 34, 185, 3, 224, 15, 236, 222, 122, 148, 176, 188, 220, 232, 40, 80, 78, 51, 10, 74, 167, 151, 96, 115, 30, 0, 98, 68, 26, 184, 56, 130, 100, 159, 38, 65, 173, 69, 70, 146, 39, 94, 85, 47, 140, 163, 165, 125, 105, 213, 149, 59, 7, 88, 179, 64, 134, 172, 29, 247, 48, 55, 107, 228, 136, 217, 231, 137, 225, 27, 131, 73, 76, 63, 248, 254, 141, 83, 170, 144, 202, 216, 133, 97, 32, 113, 103, 164, 45, 43, 9, 91, 203, 155, 37, 208, 190, 229, 108, 82, 89, 166, 116, 210, 230, 244, 180, 192, 209, 102, 175, 194, 57, 75, 99, 182).
     В качестве линейногопреобразования выступает отображение l:
     l(a_15, …, a_0 )=?(148??(a_15 )+32??(a_14 )+133??(a_13 )+16??(a_12 )+194??(a_11 )+192??(a_10 )+1??(a_9 )+251??(a_8 )+1??(a_7 )+192??(a_6 )+194??(a_5 )+16??(a_4 )+133??(a_3 )+32??(a_2 )+148??(a_1 )+1??(a_0 )) .
     Реализация алгоритмов шифрования основано на последовательном применении нескольких однотипных раундов, каждый из которых содержит три преобразования: сложение с раундовым ключом, преобразование блоком подстановок и линейное преобразование.
     Каждый раз входной блок a очередного раунда складывается побитно с раундовым ключом k:
     X[k]: V_128?V_128                                                                            (1.5.1)
     X[k](a)=k?a, где k,a?V_128.(1.5.2)
     
     Нелинейное преобразование S представляет собой применение к каждому 8-битному подвектору 128-битного входного вектора фиксированной подстановки:
     S:V_128?V_128                                                                                      (1.5.3)
     S(a)=S(a_15?…?a_0 )=?(a_15 )?…??(a_0 ), где a=a_15?…?a_0?V_128, a_i?V_8, i=0, 1,…, 15. (1.5.4)
     Линейное преобразование реализовано с помощью линейного регистра сдвига с обратной связью, который движется 16 раз.
     R:V_128?V_128                                                                                        (1.5.5)
R(a)=R(a_15?…?a_0 )=l(a_15, …, a_0 )?a_15?…?a_1, где a=a_15?…?a_0?V_128, a_i?V_8, i=0, 1, …, 15.(1.5.6)
     L:V_128?V_128                                                                                          (1.5.7)
     L(a)=R^16 (a), где a?V_128.                                                                (1.5.8)
     Схема прохода одного раунда изображена на рисунке 1.1.
     
     Рисунок 1.1. Проход одного раунда
     Для получения первых двух раундовых ключей исходный ключ разбивается пополам. Далее для выработки очередной пары раундовых ключей используется 8 итераций сети Фейстеля, где, в свою очередь, в качестве раундовых ключей используется счетчиковая последовательность, прошедшая через линейное преобразование алгоритма:
F[k]:V_128?V_128?V_128?V_128             (1.5.9)
     F[k](a_1, a_0 )=(LSX[k](a_1 )?a_0, a_1 ), где k, a_0, a_1?V_128.         (1.5.10)
     C_i=L(?Vec?_128 (i)), i= 1, 2, …, 32.  (1.5.11)
(K_(2i+1),K_(2i+2) )=F[C_(8(i-1)+1) ](K_(2i-1),K_2i ), i=1, 2, 3, 4.   (1.5.12)
     Раунд ключевой развертки представлен на рисунке 1.2.
     
     Рисунок 1.2. Раунд ключевой развёртки
     После вышеописанных преобразований происходит шифрование одного 128-битного входного блока:
     E_(K_1, …,K_10 ) (a)=X[K_10 ]LSX[K_9 ]…LSX[K_2 ]LSX[K_1 ](a).                 (1.5.13)
     Блок схема алгоритма зашифровывания представлена на рисунке 1.3.
     
     Рисунок 1.3. Алгоритм зашифровывания
     Расшифровывание реализуется обращением базовых преобразований и применением их в обратном порядке:
   D_(K_1, …,K_10 ) (a)=X[K_1 ] S^(-1) L^(-1) X[K_2 ]…S^(-1) L^(-1) X[K_9 ] S^(-1) L^(-1) X[K_10 ](a). (1.5.14)
     В ГОСТ Р 34.12-2015 представлено подробное тестирование алгоритма. В контрольном примере стандарта ключ имеет значение:
     K = 8899aabbccddeeff0011223344556677
     fedcba98765432100123456789abcdef
     Открытый текст, подлежащий зашифровыванию, равен:
     a = 1122334455667700ffeeddccbbaa9988
     Результатом зашифровывания является шифротекст:
     b = 7f679d90bebc24305a468d42b9d4edcd
     Результатом расшифровывания является открытый текст
     a =1122334455667700ffeeddccbbaa9988
     
      1.6. ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»

     ГОСТ Р 34.10-2012 - российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи [3]. Принят и введён в действие Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 года № 215-ст вместо ГОСТ Р 34.10-2001.
     ГОСТ Р 34.10-2012 основан на эллиптических кривых. Стойкость алгоритма основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции. Для ГОСТ Р 34.10-2012 используется хэш-функция по ГОСТ Р 34.11-2012. 
     Новый стандарт отличается от его предшественника наличием дополнительного варианта параметров схем (соответствующего длине секретного ключа порядка 512 бит) и требованием использования функций хеширования ГОСТ Р 34.11-2012.
     После подписывания сообщения М к нему дописывается цифровая подпись.
     Параметры схемы цифровой подписи:
        простое число p — модуль эллиптической кривой такой, что p>2^255. Данное число относится к обобщенным числам Мерсенна, что означает то, что его можно представить, как сумму различных степеней двойки. Такие числа позволяют ускорить операцию умножения по модулю большого числа. Суть данного метода сводится к представлению результата умножения в виде машинных слов, у каждого из которых длина по 32 бита, и комбинирование которых дает в результате искомое произведение по модулю большого числа;
       эллиптическая кривая Ecкоэффициентамиa, b;
       целое число m — порядок группы точек эллиптической кривой, m должно быть отлично отp;
       простое число q, порядок некоторой циклической подгруппы группы точек эллиптической кривой, то есть выполняется m=nq, для некоторого n?N . Так же q лежит в пределах 2^254
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену Каталог работ

Похожие работы:

Отзывы

Спасибо большое за помощь. У Вас самые лучшие цены и высокое качество услуг.

Далее
Узнать цену Вашем городе
Выбор города
Принимаем к оплате
Информация
Наши преимущества:

Оформление заказов в любом городе России
Оплата услуг различными способами, в том числе через Сбербанк на расчетный счет Компании
Лучшая цена
Наивысшее качество услуг

Сотрудничество с компаниями-партнерами

Предлагаем сотрудничество агентствам.
Если Вы не справляетесь с потоком заявок, предлагаем часть из них передавать на аутсорсинг по оптовым ценам. Оперативность, качество и индивидуальный подход гарантируются.