Теория и практика защиты программ


Сокрытие модели доступа


Сокрытие оригинальной модели доступа к памяти – это абсолютно новая проблема и традиционные криптографические методы здесь не применимы.

 Программу, которую бы будем защищать, будем называть оригинальной программой, а последовательность операций доступа к памяти во время выполнения такой программы будем называть оригинальной последовательностью операций доступа. Программу, реализующую модель сокрытия доступа будем называть завуалированной программой.

Цель при решении задачи сокрытия модели доступа состоит в том, чтобы сделать невозможным для противника получить о программе что-либо полезное из модели доступа. В этом случае центральный процессор не будет выполнять программу обычным способом, - он будет заменять каждый оригинальный цикл «выборки/запоминания» многими циклами «выборки/запоминания». Это должно «запутывать» противника и предупреждать его от изучения оригинальной последовательности операций доступа к памяти, т.е. от фактической последовательности. Следовательно, противник не должен улучшить свои возможности по реконструкции оригинальной программы.

Ценой, которую необходимо заплатить за защиту программ, таким образом, является быстродействие вычислений. Неформально говоря, затраты на защиту программ определяются как отношение числа шагов выполнения защищенной программы к числу шагов исходного кода программы. Далее показывается, что эти затраты полиномиально связаны с параметром безопасности односторонней функции, что подтверждается следующим тезисом.

Предположим, что односторонние функции существуют и пусть

k - параметр безопасности функции. Тогда существует эффективный способ преобразования программ в пары, состоящие из физически защищенного центрального процессора с k

битами внутренней защищенной памяти и соответствующей завуалированной программы такой, что центральный процессор имитирует взаимодействие с завуалированной программой, реализуемое за время, ограниченное poly(k). Кроме того, взамен t

команд оригинальной программы будет выполняться менее чем tkО(1) команд завуалированной программы, а увеличение размера внешней памяти ограничивается фактором k.

Вышеупомянутый результат доказывается посредством сведения задачи создания центрального процессора, который имитирует эксперименты, к задаче эффективного сокрытия модели доступа. По-существу, последняя задача формулируется как задача моделирования независимых RAM-машин на забывающей RAM-машине (см.ниже).



Содержание раздела