Информационная модель описывает представления данных в системе и их взаимосвязь. В качестве инструмента для построения функциональной модели было выбрано CASE-средство фирмы ComputerAssociates – ERwin, поддерживающее методологию IDEF1X. Методология IDEF1X – один из подходов к семантическому моделированию данных, который основан на концепции Сущность – Отношение (Entity– Relationship). Это инструмент для анализа информационной структуры систем различной природы. Сущность представляет множество реальных или абстрактных предметов (людей, объектов, мест, событий, состояний, идей, пар предметов и т.д.), обладающих общими атрибутами или характеристиками. Отдельный элемент этого множества называется "экземпляром сущности". Сущность обладает одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через отношение. Атрибуты однозначно идентифицируют каждый экземпляр сущности. Каждый атрибут идентифицируется уникальным именем. Атрибуты изображаются в виде списка их имен внутри блока ассоциированной сущности, причем каждый атрибут занимает отдельную строку. Определяющие первичный ключ атрибуты размещаются наверху списка и отделяются от других атрибутов горизонтальной чертой. Атрибут может быть формально определен как функция, отображающая набор сущностей, или набор связей, или набор значений, или декартово произведение набора значений. Каждая сущность может обладать любым количеством отношений с другими сущностями модели. Отношению дается имя, выражаемое грамматическим оборотом глагола. Имя отношения всегда формируется с точки зрения родителя, так что может быть образовано предложение, если соединить имя сущности-родителя, имя отношения, выражение мощности и имя сущности-потомка. Пример IDEF1X-модели показан на рисунке 1.4.
Рисунок 1.4 Пример IDEF1X-модели
Информационная модель, построенная с помощью IDEF1X-методологии, представляет логическую структуру информации об объектах системы. Эта информация является необходимым дополнением функциональной IDEF0-модели, детализируя объекты, которыми манипулируют функции системы. Таким образом, использование методологии IDEF1X позволяет строить информационные модели, описывающие взаимоотношения между объектами и процессами внутри системы. На информационной модели они отображаются в виде сущностей и соответствующих атрибутов и взаимоотношений между ними. В информационной модели представлены основные участвующие в рассматриваемом процессе документы в виде сущностей и атрибутов. Также в информационной модели показаны как связи сущностей между собой, так и использование информации, содержащейся в одних сущностях, при формировании других.
После внедрения подсистемы криптографической защиты информации в функциональной модели ведения бухгалтерского учета произойдут небольшие изменения. Эти изменения связаны только с тем, что документы, полученные в результате обработки, будут зашифровываться при помощи криптографической программы. Например, диаграмма А4 «Осуществить свод финансовых результатов деятельности предприятия» после внедрения подсистемы криптографической защиты информации будет выглядеть так, как показано на рисунке 2.1.
Рисунок 2.1 Диаграмма А4 «Осуществить свод финансовых результатов деятельности предприятия»
Функциональная модель разработки программного обеспечения является структурированным изображением функций, выполняемых в ходе его проектирования, а также информации, связывающей эти функции. Цель функциональной модели: определить функции подсистемы, показать перечень и взаимоувязку задач подсистемы, состав входных и выходных документов. Функциональная модель отражает функциональное содержание рассматриваемого процесса и является структурированным изображением функций процесса, связей между ними и со средой, семантики, отражающей эти функции. Методологическую основу проектирования программного обеспечения составляет системный подход, в соответствии с которым, каждая система представляет собой совокупность взаимосвязанных объектов, функционирующих для достижения общей цели. Под проектом понимается проектно-конструкторская и технологическая документация, в которой представлено описание проектных решений по созданию и эксплуатации программного обеспечения в конкретной программно-технической среде. Технология проектирования программного обеспечения представляет собой совокупность методологий и средств проектирования, а также методов и средств проектирования (управление процессами создания и модернизация проекта). Функциональная модель разработки программного обеспечения представлена в приложении Б.
Криптоалгоритм – это последовательность математических или алгоритмических преобразований, производимых над блоками исходных данных для получения зашифрованного блока данных, недоступного для прочтения сторонними лицами.
В зависимости от наличия либо отсутствия ключа, кодирующие алгоритмы делятся на тайнопись и криптографию. В зависимости от соответствия ключей шифрования и дешифрования – на симметричные и асимметричные. В зависимости от типа используемых преобразований – на подстановочные и перестановочные. В зависимости от размера шифруемого блока – на потоковые и блочные шифры. Сама криптография не является высшей ступенью классификации смежных с ней дисциплин. Наоборот, криптография совместно с криптоанализом (целью которого является противостояние методам криптографии) составляют комплексную науку – криптологию. В русскоязычных текстах по данному предмету встречаются различные употребления основных терминов, таких как "криптография", "тайнопись" и некоторых других. Более того, и по классификации криптоалгоритмов можно встретить различные мнения. В отношении криптоалгоритмов существует несколько схем классификации, каждая из которых основана на группе характерных признаков. Таким образом, один и тот же алгоритм "проходит" сразу по нескольким схемам, оказываясь в каждой из них в какой-либо из подгрупп.
Основной схемой классификации всех криптоалгоритмов является следующая:
1. Тайнопись.
Отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования. Некоторые специалисты считают, что тайнопись не является криптографией вообще.
2. Криптография с ключом.
Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – "ключа", которым обладают только отправитель и получатель.
– Симметричные криптоалгоритмы.
Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ). Симметричные криптоалгоритмы выполняют преобразование блока данных в зависимости от ключа таким образом, что прочесть исходное сообщение можно только зная этот секретный ключ.
Любой криптоалгоритм с ключом можно превратить в тайнопись, просто "зашив" в исходном коде программы некоторый фиксированный ключ.
– Асимметричные криптоалгоритмы.
Алгоритм таков, что для зашифровки сообщения используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой ("закрытый"), существующий только у получателя.
В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются на:
– Перестановочные.
Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю.
– Подстановочные.
Сами блоки информации изменяются по законам криптоалгоритма. Подавляющее большинство современных алгоритмов принадлежит этой группе. Любые криптографические преобразования не увеличивают объем информации, а лишь изменяют ее представление. Поэтому, если программа шифрования значительно увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла осуществляется при помощи встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата MP3, видеоизображения формата JPEG сжиматься более чем на 2-4% не будут).
В зависимости от размера блока информации криптоалгоритмы делятся на:
– Потоковые шифры.
Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными представителями поточных шифров являются скремблеры.
– Блочные шифры
Единицей кодирования является блок из нескольких байтов. Результат кодирования зависит от всех исходных байтов этого блока.
Блочные шифры шифруют целые блоки информации как единое целое – это значительно увеличивает стойкость преобразований к атаке полным перебором и позволяет использовать различные математические и алгоритмические преобразования.