Скачиваний:
168
Добавлен:
02.05.2014
Размер:
300.54 Кб
Скачать
    1. Моделирование на забывающих ram-машинах

Для каждой приемлемой модели вычислений существует преобразование независимых машин в эквивалентные забывающие машины (т.е., в забывающие машины, вычисляющие ту же самую функцию) [GO,O]. Вопрос заключается в ресурсозатратах для этих преобразований, а именно в определении времени замедления работы забывающей машины. Например, машина Тьюринга с одной лентой может моделироваться посредством забывающей машины Тьюринга с двумя лентами с логарифмическим замедлением времени выполнения. Ниже исследуется подобный процесс, но для модели вычислений с произвольным доступом к памяти (RAM-машины). Основное достоинствоRAM-машины – это способность мгновенно получать доступ к произвольным ячейкам памяти. В контексте настоящей работы, приводится следующий основной неформальный результат дляRAM-машины [GO,O].

Пусть RAM(m) означаетRAM-машину сmячейками памяти и доступом к случайному оракулу [ГДж]. Тогдаtшагов независимойRAM(m)-программы может моделироваться менее чем заO(t(logt)3) шагов на забывающейRAM(m(logm)2).

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

Пусть машина RAM(m) определена как показано выше. Тогда каждое забывающее моделированиеRAM(m)-машины должно содержать не менее max{m,(t-1)logm} операций доступа к памяти при моделированииtшагов оригинальной программы.

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

В условиях определения RAM(m)-машиныtшагов независимойRAM(m)-программы могут быть промоделированы (доказуемо защищенным от вмешательства способом) менее чем заO(t(log2t)3) шагов на забывающей машинеRAM(m(log2m)2).

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

    1. Модели и определения

      1. Ram-машина как пара интерактивных машин

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

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

Интерактивная машина Тьюринга– многоленточная машина Тьюринга (см. приложение), имеющая следующие ленты:

  • входная лента «только-для-чтения»;

  • выходная лента «только-для-записи»;

  • рабочая лента «для-записи-и-для-чтения»;

  • коммуникационная лента «только-для-чтения»;

  • коммуникационная лента «только-для-записи».

Под ITM(c,w) обозначается машина Тьюринга с рабочей лентой длиныwи коммуникационными лентами, разделенными на блокиc-битной длины, которая функционирует следующим образом. РаботаITM(c,w) на входеуначинается с копированияув первыеyячеек ее рабочей ленты. В случае еслиy>w, выполнение приостанавливается немедленно. В начале каждого раунда, машина читает следующийc-битный блок с коммуникационной ленты «только-для-чтения». После некоторого внутреннего вычисления, использующего рабочую ленту, раунд завершается записьюсбитов на коммуникационную ленту «только-для-записи». Работа машины может завершиться в некоторой точке с копированием префикса ее рабочей ленты на выходную ленту машины.

Теперь можно определить ЦПиМПкак интерактивные машины Тьюринга, которые взаимодействуют друг с другом, а также можно ассоциировать коммуникационную ленту «только-для-чтения»ЦПс коммуникационной лентой «только-для-записи»МПи наоборот. Кроме того, иЦП, иМПбудут иметь одну и ту же длину сообщений, то есть, параметрс, определенный выше.МПбудет иметь рабочую ленту размером, экспоненциальным от длины сообщений, в то время какЦПбудет иметь рабочую ленту размером, линейным от длины сообщений. Каждое сообщение может содержать «адрес» на рабочей лентеМПи/или содержимое регистровЦП.

Далее используем kкак параметр, определяющий и длину сообщений, и размер рабочих лентЦПиМП. Кроме того, длина сообщений будет равнаk+2+k', а размер рабочей ленты будет равен 2kk', гдеk'=O(k).

Для каждого kNопределимMEMkкак машинуIТМ(k+2+O(k),2kO(k)), работающую точно так, как определено выше. Рабочая лента разбивается на 2kслов, каждое размеромO(k). После копирования входа на рабочую ленту машинаMEMkстановитсямашиной, управляемой сообщениями. После получения сообщения (i,a,v), гдеi{0,1}2={«запомнить»,«выборка»,«стоп»},a{0,1}kиv{0,1}O(k), машинаMEMkработает следующим образом.

Если i=«запоминание», тогда машинаMEMkкопирует значениеvиз текущего сообщения в числоарабочей ленты.

Если i=«выборка», тогда машинаMEMkпосылает сообщение, состоящее из текущего содержания словаа(на рабочей ленте).

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

Далее, пусть для каждого kNопределимCPUkкак машинуIТМ(k+2+O(k),O(k)), работающую точно так, как определено выше. После копирования входа на свою рабочую ленту, машинаCPUkвыполняет вычисления за время, ограниченное poly(k), используя рабочую ленту, и посылает сообщение, полученное в этих вычислениях. В следующих раундахCPUk– является машиной, управляемой сообщениями. После получения нового сообщения машинаCPUkкопирует сообщение на рабочую ленту и, основываясь на вычислениях на рабочей ленте, посылает свое сообщение (копирует его на свою выходную ленту). Число шагов каждого вычисления на рабочей ленте ограничено фиксированным полиномом отk.

Единственная роль входа ЦПзаключается в инициализации регистровЦП, и этот вход в дальнейшем может игнорироваться. «Внутренние» вычисленияЦПв каждом раунде соответствует элементарным операциям над регистрами. Следовательно, число шагов, принимаемых в каждом таком вычислении, является фиксированным полиномом от длины регистра (которая равнаO(k)). Теперь можно определитьRAM-модель вычислений, как семействоRAMk-машин для каждогоk.

Определение 5.1.Для каждогоkNопределим машинуRAMkкак пару (CPUk,MEMk), где ленты «только-для-чтения» машиныCPUkсовпадают с лентами «только для записи» машиныMEMk, а ленты «только-для-записи» машиныCPUkсовпадают с лентами «только-для-чтения» машиныMEMk. ВходRAMk– это пара (s,y), гдеs- вход (инициализация) дляCPUkиу– вход дляMEMk. Выход машиныRAMkпо входу (s,у), обозначаемый какRAMk(s,у), определен как выходMEMk(y) при взаимодействии сCPUk(s).

Для того, чтобы рассматривать RAM-машину как универсальную машину, необходимо разделить входумашиныMEMkна «программу» и «данные». То есть, входупамяти разделен (специальным символом) на две части, названные программой (обозначенной П) и данными (обозначаемымиx).

Пусть RAMkиsфиксированы иу=(П,х). Определим выход программыПна входных данныхх, обозначаемый через П(x) какRAMk(s,у). Определим время выполненияПна данныхх, обозначаемое черезtП(x), как сумму величины (у+П(x)) и числа раундов вычисленияRAMk(s,у). Определим также размер памяти программыПдля данныхх, обозначаемый черезsП(x) как сумму величиныуи числа различных адресов, появляющихся в сообщениях, посланныхCPUkкMEMkв течение работыRАМk(s,у).

Легко увидеть, что вышеупомянутая формализация непосредственно соответствует модели вычислений с произвольным доступом к памяти. Следовательно, «выполнение Пнах» соответствует раундам обмена сообщениями при вычисленииRAMk(,(П,х)). Дополнительный членy+П(x)вtП(x) поясняет время, потраченное при чтении входа и записи выхода, в то время как каждый раунд обмена сообщениями представляет собой единственный цикл в традиционнойRAM-модели. ЧленyвsП(х) объясняет начальное пространство, взятое по входу.

Соседние файлы в папке Казарин О.В. Теория и практика защиты программ