| ||||||||||
|
Главная страница » Энциклопедия строителя содержание: [стр.Введение] [стр.1] [стр.2] [стр.3] страница - 1 -S2B. Это состояние соответствует этапу исполнения дешифрованного кода. По сути, это возврат в состояние Soa, но с рядом существенных оговорок по подготовке кода к исполнению. В нём осуществляется последовательное исполнение кодов до той поры, пока не будет найден конец защищённого блока; -S3B. В этом состоянии процесс осуществляет обратную шифрацию фрагмента до момента нахождения метки, после чего происходит возврат в состояние Soa. Характерной особенностью предлагаемой на рис. 2 модели, следует считать ориентированность на работу с фрагментом кода как объектом защиты, а не с целой функцией или процедурой. В результате дальнейшего анализа конечно-автоматной модели в работе можно сделать вывод о наличии неиспользуемого резерва в состоянии S2B, который предлагается использовать для усложнения структуры защиты. 2. Двухфазные и двухуровневые модели При необходимости реализации вложенной защиты, когда защищаемый фрагмент также содержит в себе ряд фрагментов (возможно, с использованием иных алгоритмов шифрования), требуется построить конечный автомат C = (SC, XC, Ус, s0C, SC, ^с), граф которого представлен на рис. 3. Представленная двухуровневая модель и схожие с ней по типу многоуровневые системы относятся к одной группе востребованных защит, ко второй же группе можно отнести двухфазные или многофазные системы [5]. Под фазой следует понимать строго определённую систему шифрования и дешифрования кода, используемую для защиты того или иного фрагмента и расположенной в пределах одного уровня. Соответственно, двухфазная система представлена реализацией двух различных схем шифрования и описывается конечным автоматом D = (SD, Xd, Yd, sod, Sd, ^d) с рис. 4. Х1С/УЗСХ1С/У7С Рис. 3. Двухуровневая модель функционирования защиты: x1C -программный код; x2C, x"2C - метки; x3C - зашифрованный код; y1C -выполнение кода; y2C - переставить фокус на шифрованный фрагмент; y3C - дешифровать код; y4C - переставить фокус на начало кода; y5C -зашифровать код; y6C - дешифровать код (второй алгоритм); y7C -зашифровать код (второй алгоритм) Рис. 4. Двухфазная модель функционирования защиты: x1D -программный код; x2D, x"2D - метки; x3D - зашифрованный код; y1D -выполнение кода; y2D - переставить фокус на шифрованный фрагмент; y3D - дешифровать код; y4D - переставить фокус на начало кода; y5D -зашифровать код; y6D - дешифровать код (алгоритм второй фазы); y7D -зашифровать код (алгоритм второй фазы) Утверждается, что конечные автоматы двухфазных и двухуровневых моделей (как, впрочем, и N-фазных и N-уровневых моделей) функционально эквивалентны друг другу. 3. Особенности применения моделей Предлагаемые два типа моделей, как усложнённые варианты комбинированной модели, отличаются друг от друга не только структурно, но и с точки зрения применимости. Так, многоуровневые модели отличаются высокой ресурсоёмкостью, что в не малой степени обусловлено аппаратными особенностями функционирования современных компьютеров. Действительно, если рассмотреть в качестве примера двухуровневую модель, то мы получим, что, условно говоря, внутренний уровень имеет некоторые черты треда (в той его части, что касается использования памяти) [6]. Если рассматривать внешний уровень как некий процесс с отведённым под него адресным пространством, то внутренний уровень ограничен именно размерами этого адресного пространства (или памяти). И чем больше вложений в каждый уровень, то тем больше свободной памяти требуется (см. рис. 5). I Адресное пространство программы!
I Внутренний уровень 2 j Рис. 5. Использование адресного пространства в двух- и более уровневых моделях Соответственно, серьёзное увеличение числа уровней модели вступает в конфликт с необходимым правилом минимизации увеличения системных требований защищаемого программного продукта. содержание: [стр.Введение] [стр.1] [стр.2] [стр.3] |
|||||||||
© ЗАО "ЛэндМэн" |