- •Защита программ и забывающее моделирование на ram-машинах
- •Основные положения
- •Вводные замечания
- •Центральный процессор, имитирующий взаимодействие
- •Сокрытие модели доступа
- •Моделирование на забывающих ram-машинах
- •Модели и определения
- •Ram-машина как пара интерактивных машин
- •Дополнения к базовой модели и вероятностные ram-машины
- •Повторные выполнения ram-машины
- •Эксперименты с ram-машиной
- •Преобразования, защищающие программное обеспечение
- •Определения забывающей ram-машины и забывающего моделирования
- •Модели доступа
- •Моделирование с метками времени
- •Сведение защиты программ к забывающему моделированию на ram-машине
- •Нетривиальное решение задачи забывающего моделирования
- •Вводные замечания
- •Общее описание алгоритма «Квадратного корня»
- •Алгоритм кк
- •Реализация алгоритма «Квадратного корня»
- •Анализ алгоритма «Квадратного корня»
- •Заключительные замечания
Определения забывающей ram-машины и забывающего моделирования
Модели доступа
Необходимо начать с определения модели доступа как последовательности ячеек памяти, к которым ЦП обращается в процессе вычислений. Это определение распространяется также на оракульный ЦП.
Определение 5.7.Модель доступа, обозначаемая какАk(y),детерминированной RAMk-машинына входеy– это последовательность (a1,...,ai,...) такая, что для каждогоi,i-тое сообщение, посланное машинойCPUkпри ее взаимодействии с машинойMEMk(y), имеет форму (,ai,).
При рассмотрении вероятностных RAM-машин, мы определяем случайную величину, которая для каждой возможной функцииfпринимает модель доступа, соответствующая вычислениям, в которыхRAM-машина имеет доступ к этой функции. В связи с этим дается следующее определение.
Определение 5.8.Модель доступа, обозначаемая как,вероятностной RAMk-машинына входеy– это случайная величина, которая принимает значение модели доступа машиныRAMkна некотором входеyи при доступе к однородно выбранной функцииf.
Теперь можно перейти к определению забывающей RAM-машины. Мы определяем забывающуюRAM-машину как вероятностнуюRAM-машину, для которой распределение вероятностей последовательности адресов памяти, к которым осуществляется доступ в процессе выполнения программы, зависит только от времени выполнения и не зависит от конкретного частного входа.
Определение 5.9.Для каждогоkNопределимзабывающую RAMk-машинукаквероятностную RAMk-машину, удовлетворяющую следующему условию. Для каждых двух строкy1иy2, еслииидентично распределены, тогда такжеидентично распределеныи.
Интуитивно, последовательность операций доступа к памяти забывающей RAMk-машины не открывает никакой информации относительно входа за исключением значения времени выполнения на этом входе.
Определения RAM-машины и забывающейRAM-машины необходимо для того, чтобы дать точное определениезабывающего моделированиянезависимойRAM-машины посредством забывающейRAM-машины. Определение моделирования в данном случае минимально необходимое, - требуется только, чтобы обе машины вычисляли одну и ту же функцию. Кроме того, необходимо потребовать, чтобы входы, имеющие идентичное время выполнения на оригинальнойRAM-машине, сохраняли бы идентичное время выполнения на забывающейRAM-машине. Для простоты, ниже представляется только определение для забывающего моделирования детерминированныхRAM-машин.
Определение 5.10.Для данных машин, - вероятностнойRAM'k', иRAMkвероятностная машинаRAM'k'моделирует забывающим образомRAMk, если выполняются следующие условия:
вероятностная машина RAM'k'моделируетRAMkс вероятностью 1. Другими словами, для каждого входаyи каждого выбора оракульной функцииfвыход оракулаRAM'k'на входеyи при доступе к оракулуfравняется выходуRAMkна входеy;
вероятностная машина RAM'k'– является забывающей. Необходимо подчеркнуть, что здесь рассматривается модель доступаRAM'k'на фиксированном входе и случайно выбранной оракульной функции.
Случайная величина, представляющая собой время выполнения вероятностной RAM'k'на входеyполностью определена текущим временемRAMkна входеy.
Следовательно, модель доступа при забывающем моделировании (которая описывается случайной величиной, определенной над выбором случайного оракула) имеет распределение, зависящее только от времени выполнения оригинальной машины. А именно, пусть обозначает модель доступа при забывающем моделированииRAMkна входеy. Тогдаиидентично распределены, если время выполненияRAMkна этих входах (т.е.,y1иy2) идентично.
Теперь мы обратимся к определению затрат при забывающем моделировании.
Определение 5.11.Для данных вероятностных машинRAM'k'иRAMkпредположим, что вероятностнаяRAM'k'моделирует забывающим образом вычисленияRAMkи путьg:NN- есть некоторая целочисленная функция. Тогда затраты на моделирование являются не большеg, если для каждогоyтребуемое время выполненияRAM'k'на входеyограничено сверхуg(T)T, гдеTобозначает время выполненияRAMkна входеy.