<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Крыжановская Ю.А., Кашко В.В.</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Voronezh State University</institution>
          ,
          <addr-line>Voronezh</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>226</fpage>
      <lpage>231</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>самостоятельнои работе студентов разработан комплекс обучающих программ по ряду тем,
входящих в программу курса, в частности, таких, как:
• элементы теории чисел и модулярная арифметика;
• трудные проблемы теории чисел, используемые в криптографии;
• тесты разложимости и тесты простоты, факторизация чисел;
• генераторы псевдослучайных последовательностей;
• криптография: основные определения, цели, задачи, типы криптосистем, атаки на
криптосистемы;
• алгоритмы сжатия;
• классификация шифров;
• криптостойкость, имитостойкость;
• идентификация и аутентификация;
• цифровая подпись;
• управление криптографическими ключами.
Состав комплекса программ и режимы работы

•
•
•
•
Комплекс программ состоит из отдельно разработанных частей, обеспечивающих:
работу в режиме разделения доступа, реализацию пользовательского интерфейса;
возможность ознакомления с информацией по выбранной теме;
проведение тестирования;
отображение результатов.</p>
      <p>
        Также включен ряд демонстрационных программ, реализующих некоторые алгоритмы,
представленные в теоретических материалах. Представленныи комплекс обучающих программ
разработан среде visual studio 2015 [
        <xref ref-type="bibr" rid="ref2 ref5">2</xref>
        ].
      </p>
      <p>
        Данные о пользователях хранятся в базе данных, реализованнои с использованием SQLite
[
        <xref ref-type="bibr" rid="ref3 ref6">3</xref>
        ]. Теоретические материалы, тестовые задания и отображаемые варианты ответов на вопросы
хранятся в виде отдельных фаилов и предоставляются пользователям по мере надобности.
      </p>
      <p>Для разделения функциональных возможностеи различных категории пользователеи
комплекс программ предусматривает два режима, ориентированных на преподавателя и студента.
На настоящии момент функции администратора доступны в профиле преподавателя. Ведется
работа по выделению части полномочии, связанных с обработкои учетных записеи, в отдельную
категорию Администратор.</p>
      <p>Режим, допустимыи для конкретного пользователя, определяется после прохождения
процедур идентификации и аутентификации. В рассматриваемом программном комплексе
реализована парольная аутентификация. Информация об учетных записях хранится в закрытом
виде в базе данных.</p>
      <p>Режим работы преподавателя, как упоминалось, предполагает возможность работы с
учетными записями студентов, т.е. регистрации новых студентов, редактирование записеи,
удаления учетных записеи (пример окна регистрации приведен на Рис. 1).</p>
      <p>Рис.1. Форма регистрации
Ключ доступа задается в том случае, если проходящим регистрацию пользователь будет
преподаватель (задается полем права доступа).
Присутствует также возможность просмотра результатов прохождения тестов по указаннои
теме зарегистрированными студентами. С целью обеспечения большеи гибкости системы
предусматривается модификация содержания теоретического материала путем загрузки нового
фаила. Кроме того, реализовано редактирование составляющих тесты вопросов и соответствующих
им вариантов ответов.</p>
      <p>Возможности студента по работе с комплексом программ представлены возможностями по
ознакомлению с информациеи по выбраннои теме, прохождением тестирования (с фиксациеи
результатов в базе данных) и просмотре полученных результатов с указанием оценки за
конкретныи тест.
Оформление теоретических сведений и подготовка тестирования
Шаг 2: Далее применить Print Screen с набранным текстом;
Шаг 3: Открыть Paint (или другои графическии редактор) и сделать заготовку размером
579*160 пикселеи, либо воспользоваться уже готовым паттерном, расположенным по следующему
пути:</p>
      <p>&lt;Буква диска&gt;:\Visual Studio\&lt;CourseWare&gt;\&lt;Название тематическои
программы&gt;\packages\Code\Шаблон рисунка.bmp.</p>
      <p>Шаг 4: Поместить изображение в паттерн и сохранить в папке по следующему пути: &lt;Буква
диска&gt;:\Visual Studio\&lt;CourseWare&gt;\&lt;Название тематическои программы&gt;\bin\Debug\Img
Имена фаилов изображении ответов задаются целочисленными значениями (номерами
вопросов, которым соответствуют варианты на изображении). Нумерация начинается с 0.
Прохождение теста и просмотр результатов</p>
      <p>Для старта тестирования студент должен ввести свои логин и пароль. В случае первого
использования программы необходимо проити регистрацию, которая осуществляется
преподавателем. Для этого в режиме работы преподавателя необходимо заполнить
регистрационную форму.</p>
      <p>Если студент ранее был зарегистрирован, то функционал преподавателя/администратора
станет недоступен, а будет предложено выбрать раздел, изучение которого планируется, а затем –
одно из деиствии: просмотреть теоретическии материал, проити тестирование или просмотреть
результаты. При выборе просмотра теории будет предъявлена информация по заданнои теме. В
случае, если выбрано прохождение тестирования, будут последовательно предъявляться вопросы
теста (пример вопроса по теме Модулярная арифметика с вариантами ответа приведен на Рис. 2).</p>
      <p>Правильныи (по мнению обучающегося) ответ засчитывается при нажатии кнопки Принять
ответ. После этого становится активнои копка Следующии вопрос.</p>
      <p>После ответа на предложенные вопросы теста обучающемуся сообщается результат
прохождения теста с указанием процента правильных ответов и полученнои оценки.
Для просмотра результатов тестирования используются пункты меню Фаил -&gt; Результаты
тестирования. Следует отметить, что студенту доступны для просмотра только свои собственные
результаты.</p>
      <p>Выход из программы возможен с использованием кнопки "Выход" или пунктов меню Фаил
-&gt; Выход. Для того, чтобы свернуть окно в треи, можно использовать пункт меню Фаил -&gt; Свернуть.
Примеры демонстрационных программ</p>
      <p>Демонстрационные программы для каждои из рассматриваемых тем включены в
разработанныи комплекс программ. Рассмотрим некоторые из них.</p>
      <p>1. Генерация «большого» нечетного числа и проверка его на простоту по методу
Миллера -Рабина. Данная программа состоит из двух основных модулеи: класс BigNumber, класс
Program (в котором производится инициализация объекта класса BigNumber).</p>
      <p>Работа класса BigNumber основана на использовании типа BigInteger которыи включён в
пространство имён usyng System.Numerics. Он включает в себя следующие методы:
• public BigInteger GetNumber(int count) - генератор большого числа заданного
размера. Параметр count предназначен для указания количества блоков чисел (один блок состоит
из 10 символов). Генерация числа производится следующим образом: Есть целочисленная
переменная, в которую в цикле (количество итерации равно count) генерируется случаиное число в
диапазоне [2000000000, 2147483647], и есть строка, в которую поочерёдно, путём конкатенации,
добавляются сгенерированные ранее, но преобразованные в строку числа. Таким образом, в конце
выполнения count итерации в строке будет записано число, размером count*10 символов. Далее
создаётся переменная типа BigInteger, в которую путём применения встроеннои функции для
данного типа BigInteger.Parse(&lt;string&gt;) записывается строка и преобразовывается в тип BigInteger.
В конце работы метод возвращает полученное число.</p>
      <p>• public bool MillerRabin(BigInteger number) - функция проверки на простоту по методу
Миллера-Рабина. На вход данного метода подаётся проверяемое число. Далее данное число
представляется в виде n-1=(2^k)*m, откуда находятся значения k и m. Далее генерируется число a
из диапазона [2,n-2] (так называемыи свидетель). На следующем этапе выполняем операцию T =
(a^m) mod n. Если в результате T == 1 или T == -1, то число с вероятностью 25% является простым,
иначе в цикле по переменнои k выполняется операция T = (T^2) mod n и выполняется проверка
значения T. Если T = 1, то число не является простым; если Т = -1, то число с вероятностью 25%
простое. Результатом работы данного метода является булевская переменная, которая имеет
значение true - в случае, когда проверяемое число простое и false - когда не является простым.
В классе Program создаётся объект класса BigNumber, далее в цикле вызывается метод
генерации числа и его проверка на простоту. Цикл остановится лишь в том случае, когда метод
проверки вернёт значение true, что означает генерацию простого числа.</p>
      <p>
        2. Демонстрация работы алгоритма инкрементного кодирования (фронтальное
сжатие) [
        <xref ref-type="bibr" rid="ref7">4</xref>
        ]. Программа определяет общие префиксы или суффиксы и их длины записываются
таким образом, чтобы избегать дублирования данных. Этот алгоритм хорошо подходит для сжатия
отсортированных данных, например, списка слов в словаре.
      </p>
      <p>Пример работы демонстрационнои программы в режиме сжатия приведен на Рис.3.</p>
      <p>Рис. 3. Пример работы программы
При сжатии считываются слова в массив размерности, определяемои количеством
введенных слов (n), после этого, начиная с 0 и до n-1 слова производится посимвольное сравнение
слова: 0 и 1 слово, 1 и 2, и так далее до n-3 и n-2 слов. В итоге выводится количество символов
которые совпали, а потом оставшиеся символы. У 0 слово индекс 0, так как нам не с чем его
сравнивать.</p>
      <p>При распаковке сжатыи код считывается в массив, где у цифр, которые означают количество
данных, четные номера, а у не совпавших букв – нечетные. После этого в переменную запоминается
очередное слово, начиная с нулевого. При выводе следующего сначала выводятся совпавшие буквы,
а затем дописываются оставшиеся буквы. Данная операция повторяется до n-1 слова (так как в
массиве индексация начинается с 0).</p>
      <p>3. Сжатие без потерь в соответствии с алгоритмом Лемпеля-Зива-Велча [5]. Интерфеис
демонстрационнои программы показан на Рис.4. В данном случае приводится пример реализации
алгоритма для текстовои информации, при использовании следует учесть, что для большеи
наглядности следует задавать текст с многократным повтором символов или последовательностеи
символов в тексте. В противном случае явление сжатия информации может быть незначительным
или вообще отсутствовать.</p>
      <p>Рис. 4. Интерфейс демонстрационной программы
Вывод</p>
      <p>По итогам выполнения поставленнои задачи был разработан комплекс обучающих
программ по дисциплине «Математические основы защиты информации и информационнои</p>
      <p>References</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>Основные образовательные программы ВГУ</article-title>
          . URL ttps://moodle.vsu.
          <source>ru (дата обращения 20.10</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Microsoft</given-names>
            <surname>Visual</surname>
          </string-name>
          <article-title>Studio [Электронный ресурс]</article-title>
          . URL https://msdn.microsoft.com/library/52f3sw5c(v=vs.100).
          <source>aspx (дата обращения 20.10</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>SQLite</given-names>
            <surname>Homepage</surname>
          </string-name>
          [Электронный ресурс]. URL http://www.sqlite.
          <source>org (дата обращения 20.10</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          1.
          <article-title>Osnovnye obrazovatel'nye programmy VGU</article-title>
          . URL https://moodle.vsu.
          <source>ru (data obrashcheniya 20.10</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Microsoft</given-names>
            <surname>Visual</surname>
          </string-name>
          <string-name>
            <surname>Studio</surname>
          </string-name>
          [Elektronnyy resurs] URL https://msdn.microsoft.com/library/52f3sw5c(v=vs.100).aspx.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          3.
          <string-name>
            <given-names>SQLite</given-names>
            <surname>Homepage</surname>
          </string-name>
          [Elektronnyy resurs]. URL http://www.sqlite.
          <source>org (data obrashcheniya 20.10</source>
          .
          <year>2016</year>
          ) .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          4.
          <string-name>
            <surname>Vatolin</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>Metody szhatiya dannykh : Ustroystvo arkhivatorov</article-title>
          ,
          <source>szhatie izobrazheniy i video / D.Vatolin [i dr.]</source>
          .- M. : DialogMIFI,
          <year>2003</year>
          .-
          <fpage>381</fpage>
          s.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>