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

       

Центральный процессор, имитирующий взаимодействие


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

противник экспериментирует с оригинальным защищенным центральным процессором, который пытается выполнить зашифрованную программу, используя память;

противник экспериментирует с «поддельным» (фальсифицированным) центральным процессором.

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

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



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