Диплом: Разработка программно-аппаратного комплекса для защиты USB-носителей

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
• Протокол с секретным ключом - отправка сеансовых ключей
пользователям в онлайн-режиме центром доверия при помощи специального
протокола обмена ключей;
• Протокол с открытым ключом – отправка сеансовых ключей
пользователям в онлайн-режиме центром доверия с помощью криптосистемы
с открытым ключом (самое популярное приложение техники шифрования с
открытым ключом);
• Квантовое распределение ключей – отправка квантовых ключей с
использованием технологии квантовых свойств частиц (фотонов) в рамках
процедуры квантовой криптографии.
Аппаратное шифрование данных считается наиболее надежным. В
USB-носитель встроена микросхема, через которую при считывании вместе
со специальным ключом шифрования проходят данные. Без ключа считать
данные невозможно. Пользователь устанавливает пароль, после ввода
которого ключ передается на устройство аппаратного шифрования.
Альтернативой паролю может служить отпечаток пальца, но для этого
должен быть встроен биометрический датчик. Также может быть встроен
электронный кодовый замок, при этом разблокировка флеш-накопителя
будет происходить до подключения к компьютеру. Работоспособность такого
устройства обеспечивается за счет встроенного аккумулятора.
Преимущества аппаратного шифрования[21]:
• Процессор, расположенный на внешнем накопителе, освобождает
хост-систему от кодирования;
• Кодирующий аппарат привязан к накопителю, поэтому
возможность кодирования доступна постоянно, не требуется установка
дополнительных драйверов или программ на хост-компьютере;
43
• Защита ключей и критически важных параметров безопасности
производится аппаратными кодирующими средствами, аппаратная защита от
грубого перебора;
• Данные защищены от наиболее распространенных атак, таких как
«холодная» перезагрузка, вредоносный код, грубый подбор пароля.
У аппаратных шифраторов существует два основных режима работы:
начальной загрузки и выполнения операций. Первый начинается при загрузке
компьютера, в тот момент, когда BIOS ПК опрашивает все подключенные к
нему внутренние и внешние устройства. В этот момент шифратор
перехватывает управление и выполняет последовательность команд,
зашитую в его память, предлагая пользователю прежде всего ввести главный
ключ шифрования, т.е. вставить соответствующий ключевой носитель,
который будет использоваться в дальнейшем. После завершения начальной
загрузки шифратор ожидает от ПК команд и данных на исполнение операций
шифрования.
Помимо функций шифрования, каждый шифратор в этом режиме
должен уметь:
• выполнять различные операции с ключами шифрования: их
загрузку в шифропроцессор и выгрузку из него, а также взаимное
шифрование ключей;
• рассчитывать имитоприставки для данных и ключей
(имитоприставка представляет собой криптографическую контрольную
сумму, вычисленную на определенном ключе);
• генерировать случайные числа по запросу.
Наиболее удобным и дешевым способом защиты данных на USB-
накопителях является программное шифрование. Существует множество
различных программ, позволяющих шифровать данные. Создается файл,
внутрь которого помещаются все данные. Чтобы получить доступ к данным,
44
необходимо ввести пароль, после чего в системе появится виртуальный
съемный диск с ранее скрытыми данными. Некоторые программы
предлагают пользователю самому выбрать, какой алгоритм шифрования
использовать. Недостатком таких программ является необходимость
установки программы на каждый компьютер, к которому будет подключен
USB-носитель.
В проекте планируется разработать программное средство,
позволяющее снизить вероятность утечек информации по наиболее
актуальному каналу, а именно утечек информации с помощью съемных
носителей информации.
Целью разработки такого программного продукта является повышение
защищенности информации, хранимой на съемных носителях, от
несанкционированного доступа.
Программный продукт должен обладать следующей
функциональностью:
• Осуществлять защиту информации от несанкционированного
доступа с помощью шифрования файлов;
• Осуществлять доступ к информации с помощью парольной
идентификации;
• Осуществлять уничтожение информации при неправильном
вводе пароля;
• Быть работоспособным на всех типах съемных носителях;
• Не обнаруживать свою работу при использовании стандартных
средств обнаружения.
45
2.3 Выбор языка программирования и стандарта шифрования
В настоящее время основными стандартами шифрования являются
отечественный ГОСТ28147-89 и американский AES.
Сравнение данных стандартов приведено в таблице 2.
Таблица 2 - Сравнительные характеристики алгоритмов
ГОСТ28147-89 и Rijndael.
Показатель
Rijndael
Размер блока, бит
128, 192, 256
1
Размер ключа, бит
128, 192, 256
Архитектура
«Квадрат» (Square)
Число раундов
10, 12, 14
2
Часть блока, шифруемая за
один раунд, бит
128, 192, 256 (полный
блок)
Размер раундового ключевого
элемента, бит
128,192, 256 (равен
размеру блока)
Структура раунда
Более сложная
Используемые на раунде
операции
Широкое
использование
операций над
конечными полями
Эквивалентность прямого и
обратного преобразований.
С точностью до вектора
ключевых элементов,
узла замен и прочих
констант алгоритма
В отличие от ГОСТа, размер блока шифрования и размер ключа в
алгоритме AES изменяется, что допускается применяемой в нем
архитектурой «квадрат». Эта возможность помогает варьировать стойкость и
скорость работы алгоритма в рамках внешних требований к работе в
конкретных пределах, - но не очень широких, - число раундов, а вместе с ним
и скорость работы, в крайних случаях отличается в 1.4 раза.
Криптоалгоритм ГОСТ28147-89, как и многие шифры «первого
поколения», созданные в 70-е годы и в первой половине 80-х, разработаны на
46
архитектуре «сбалансированная сеть Файстеля» (balanced Feistel network).
Базовым принципом этой архитектуры становится то, что весь процесс
шифрования разделен на серии однотипных раундов. В любом раунде
шифруемый блок T разделяют на две части (T0, T1), одна из которых
перерабатывается путем побитового сложения по модулю 2 со значением,
выбранным из другой части и ключевого элемента раунда с помощью
механизма шифрования. Между раундами части блока меняют
местоположение, таким образом, в другом раунде исходный измененный
блок остается неизменным и наоборот. Такая архитектура помогает без труда
получить обратимое криптографическое выражение из сложной и, возможно
необратимой, функции шифрования. Основной особенностью этакого
подходя можно назвать то, что за раунд шифрованию подвергается половина
блока.
Шифр AES создан на принципиально другой архитектуре, названной
«квадрат» (Square) в честь первого выполненного в ней шифра, - он
создавался теми же специалистами несколько лет назад. Эта архитектура
основывается на прямых преобразованиях блока шифрования, который
представлен в форме матрицы байтов. Процесс шифрования включает в себя
серию однотипных шагов, раундов, где на каждом раунде блок
представляется как совокупное целое и нет неизменных частей блока.
Поэтому за раунд шифруется полный блок, и для обеспечения сопоставимой
сложности и нелинейности преобразования этих шагов нужно вдвое меньше
по сравнению с сетью Файстеля. Любой раунд состоит в побитовом
сложении по модулю 2 текущего состояния шифруемого блока и ключевого
элемента раунда, после которого идет сложное нелинейное преобразование
блока, созданное из трех более простых преобразований.
В алгоритме ГОСТ28147-89 равнозначность структуры обратного и
прямого криптографического преобразования специально не
47
поддерживается, а становится простым следствием применения
архитектурного решения. В любой однородной сбалансированной сети
Файстеля эти два изменения алгоритмически схожи и отличаются только
порядком применения ключевых элементов: в процессе расшифровки
элементы идут в порядке, обратном тому, в котором они применяются в
процессе шифрования.
Шифр AES основывается на прямых изменениях. Как и для всех
подобных алгоритмов, обратное преобразование состоит из обращений
шагов прямого преобразования, используемых в обратном порядке. В силу
сказанного поддержать аналогичный уровень идентичности прямого и
обратного преобразования, которая возможна в сетях Файстеля, нет
возможности. Но специальными конструкторскими решениями приводится
близкая степень соответствия: прямое и обратное преобразование дают
идентичный результат с точностью до примененных в преобразованиях
констант.
В российском стандарте шифрования для нахождения 32 32-битовых
исходных элементов из 256-битового ключа используется очень простой
подход. Ключ переводится в массив, включающий в себя восемь ключевых
элементов.
В шифре AES применена чуть более сложная схема, определяющая
доступное различие в размерах блока ключа и алгоритма. Имеются два
алгоритма создания последовательности ключевых элементов - для ключа
размерностью 128/192 бита и для ключа размерностью 256 бит, которые
достаточно похожи и имеют лишь незначительные отличия. Ключ и
ключевая последовательность представлены в виде векторов 4-х байтовых
слов, и исходный участок последовательности заполнен словами из ключа, -
аналогично ГОСТу. Все остальные слова ключевой последовательности
48
составляются по рекуррентному выражению группами, кратными
размерности ключа.
Поговорим о устойчивости работы этих алгоритмов к популярным
видам криптоанализа. Самыми универсальными и наилучшими для
алгоритмов широкого класса будут считаться линейный и
дифференциальный виды криптоанализа.
Провести оценку устойчивости алгоритма ГОСТ28147-89 к
определенным видам криптоанализа нельзя не применяя спецификацию
узлов замен, поскольку окончательное значение этого шифра так или иначе
зависит от совокупности использованных узлов. Но изучение близких по
архитектуре шифров с указанными таблицами подстановок (DES) выявили,
что криптоанализ шифра с 16 этапами может быть реализован, но потребует
значительного числа начальных данных, а при 20-24 этапах будет вообще
теоретически бесполезным. ГОСТ включает 32 этапа шифрования, и этих
проходов достаточно для успешного противостояния указанным видам
криптоанализа. В открытой печати есть данные об успешном вскрытии
ГОСТа с отдельными узлами замен, - как с экспериментальными,
приведёнными к стандарту ГОСТ Р34.11-94, так и с теми, где использование
ГОСТа было необходимо в коммерческих организациях.
В результате анализа шифра AES разработчиками, уже на четырех
этапах шифрования этот алгоритм имеет необходимую устойчивость к
указанным видам криптоанализа. Примерной границей, когда линейные и
дифференциальный виды криптоанализа бессмысленны, считается рубеж в 6-
8 этапов в зависимости от размерности самого блока. Исходя из
спецификации, в шифре есть 10-14 этапов. Поэтому шифр AES также будет
устойчив к указанным видам криптоанализа с некоторым запасом.
В итоге оба сравниваемых шифра имеют необходимую стойкость к
существующим видам криптоанализа. В печати нет отдельных данных о
49
положительных случаях взлома этих рассматриваемых шифров, также
отсутствует описание процедур, которые могли бы помочь дешифровать
сообщение с минимальными вычислительными затратами, нежели полный
перебор по всему ключевому пространству.
В процессе оценки возможной эффективности аппаратной реализации
шифров основным критерием становится число и сложность простых
операций, выполняемых в цикле шифрования, а также доступность их
параллельного выполнения. В процессе подсчета эффективности доступных
программных реализаций особый интерес вызывает реализация на 32-
битовых платформах, поскольку 2-разрядные машины составляют сейчас
основную часть парка ПК всего человечества. Также вызывает
заинтересованность и процесс использования шифров на 8-битовых
микроконтроллерах, которые становятся основой технологии
интеллектуальных карт. Такие устройства применяются в разнообразных
системах безналичных расчетов, которые все больше популярны в мире, -
общее число пользователей этих систем за последние несколько лет
увеличивается весьма быстрыми темпами.
Наш российский стандарт шифрования ГОСТ 28147-89 подойдет как
для аппаратной, так и для программной реализации. При размерности блока
данных 64 бита, главная работа происходит с половинками этого блока - 32-
битовыми словами, при этом позволяя более эффективно использовать
отечественный тип шифрования в большей части отечественных ПК.
Также остановимся на особенностях реализации алгоритма AES.
Данных алгоритм является байт-ориентированным, т.е. может полностью
составляться в терминах операций с байтами. В алгоритме часто
применяются алгебраические операции в конечных полях, самым сложно
реализуемым из которых всегда остается умножение в GF (28). Исполнение
этих операций породило бы крайне неэффективную реализацию алгоритма.
50
Но байтовая структура шифра имеет широкие возможности по оптимизации
реализации программной.
Указанное выше сопоставление параметров алгоритмов шифрования
ГОСТ 28147-89 и AES отражает, что независимо от значительного различия в
архитектурных принципах этих шифров, их базовые технические параметры
сопоставимы. Различием становится то, что, по зачастую, AES будет
значительно превосходить в скорости работы ГОСТ в случае аппаратной
реализации в рамках одной единой технологии. Поэтому для использования в
создаваемом ПО будем применять стандарт AES.
Advanced Encryption Standard (AES), называемый также Rijndael —
симметричный алгоритм шифрования блоками (блок размером 128 бит, ключ
128/192/256 бит), принятый как стандарт шифрования правительством США
по итогу конкурса AES. Этот алгоритм неплохо проанализирован и сейчас
часто применяется, аналогично предшественнику DES.
В процедуре SubBytes, каждый байт в state заменяется
соответствующим элементом в фиксированной 8-битной таблице поиска, S;
bij = S(aij).
Процедура SubBytes() обрабатывает каждый байт состояния,
независимо производя нелинейную замену байтов используя таблицу замен
(S-box). Такая операция обеспечивает нелинейность алгоритма шифрования.
Построение S-box состоит из двух шагов. Во-первых, производится взятие
обратного числа в поле Галуа. Во-вторых, к каждому байту b из которых
состоит S-box применяется следующая операция:
51
где, и где bi есть i-ый бит b, а ci - i-ый бит константы c = 6316 = 9910 =
011000112. Таким образом, обеспечивается защита от атак, основанных на
простых алгебраических свойствах.
Рисунок 14 - Процедура SubBytes()
В процедуре ShiftRows, байты в каждой строке state циклически
сдвигаются влево.
Рисунок 15 - Процедура ShiftRows
В процедуре MixColumns, каждая колонка состояния перемножается с
фиксированным многочленом c(x).

Смотрите также:

Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)
Анализ деловой активности организации как инструмент повышения эффективности ее деятельности (на примере Косинского районного потребительского общества)