Скачиваний:
168
Добавлен:
02.05.2014
Размер:
300.54 Кб
Скачать
      1. Моделирование с метками времени

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

Определение 5.12.Для данной оракульной машиныRAM'k'и машиныRAMkпредположим, что оракульнаяRAM'k'с доступом к оракулуf'моделирует вычисленияRAM'k'. Тогда моделирование являетсямоделированием с метками времени, если существуетO(k')-временной алгоритмQ(,) такой, что выполняется следующее условие. Пусть (i,a,v) –j-тое сообщение, посланноеCPU'k'(в процессе повторных выполненийRAM'k'). Тогда, число предыдущих сообщений формы («запомнить»,a,), посланныхCPU'k', равняется точно (j,a).

Далее отметим, что алгоритм Q(j,a) может вычислить любую версию обращенияЦПк ячейке памятиав раундеj. Обозначим номер такой версии какверсия(a).

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

    1. Сведение защиты программ к забывающему моделированию на ram-машине

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

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

Теорема 5.1.Пусть {RAMk}kN- вероятностнаяRAM-машина, которая выполняет забывающее моделирование универсальнойRAM-машины. Кроме того, предположим, чтоtшагов оригинальнойRAM-машины моделируются за менее чемg(t)tшагов забывающейRAM-машины. Тогда существует компилятор, который защищает программы от невмешивающихся противников с затратами не болеO(g(t)).

Доказательство.Информация, доступная невмешивающемуся противнику состоит из сообщений, обмениваемых междуЦПиМП. Напомним, что сообщения отCPUkкMEMkимеют форму (i,a,v), гдеi{выборка,сохранить,стоп},a{1,2,...,2k} иv{0,1}O(k), в то время как сообщения отMEMkкCPUkимеют формуv{0,1}O(k). При забывающем моделировании, по определению, «область адресов» (т.е.,a) не вскрывает никакой информации относительно входаy=(Пf,x). Просто необходимо устранить возможность, когда «область команд» (т.е.,i) «давала бы» какой-либо полезную информацию для противника. Следовательно, осталось только завуалировать содержимое области значений (т.е.,v) так, чтобыЦПмог восстанавливать оригинальные значения. Идея состоит в том, чтобы выполнить завуалироватьv, используя оракул, доступныйЦП.

www.kiev-security.org.ua

BEST rus DOC FOR FULL SECURITY

Для завуалирования машина CPUkсодержит специальный счетчик, обозначаемыйсчт, инициализированный нулевым значением. Мы модифицируемRAMkдобавлением случайного оракула, обозначаемогоf. Понятно, что новый случайный оракул может быть объединен со случайным оракулом, используемым при забывающем моделировании. Всякий раз, когдаCPUkдолжен сохранять значение в памятиMEMk, счетчиксчтувеличивается и значениеvшифруется посредством пары (vf(счт),счт), гдеобозначает поразрядную операцию «исключающую или». При восстановлении пары (u,j), завуалированное значение восстанавливается посредством вычисленияuf(j). Подчеркнем, что и завуалирование, и восстановление может быть легко выполнены, когда имеется доступ к оракулуf.

Компилятор C, защищающий программное обеспечение, функционирует следующим образом. На входе параметрkи программыП, состоящей из последовательности команд1,..,n, компилятор однородно выбирает функциюfи множестваПf=(1f(2k+1),2k+1),...,(nf(2k+n),2k+n).

Так как общее время выполнения машины RAMkво всех экспериментах, инициированных противником, является не более 2k, мы никогда не используем тот же самый аргументfдля двух различных операций шифрования. Это следует из того, что завуалирование (которое фактически использует шифр «одноразовый блокнот») является абсолютно безопасным (в информационно-теоретическом смысле), и следовательно, противник не получает никакой информации относительно оригинального содержания области значений.

Напомним, что на практике можно заменять случайный оракул на псевдослучайный. Следовательно, результат теоремы будет верен только для противников, ограниченных по времени некоторым полиномом. В этом случае, компилятор на входном параметре kи программеПравномерно выбирает псевдослучайную функциюf. Функцияfможет быть аппаратно реализовано вCPUk. Таким образом,ЦПспособен вычислятьfна входах длиныkи poly(k)-временной противник не может различать поведение этогоЦПотЦП, описанного в доказательстве теоремы. Следовательно, любой невмешивающийся противник, который что-либо вычисляет мог бы вычислять то же самое время с доступом только к оракулу спецификаций. Подобные замечания верны и для следующей теоремы.

Теорема 5.2.Пусть {RAMk}kN- вероятностнаяRAM-машина, которая выполняет забывающее моделирование с метками времени универсальнойRAM-машины. Кроме того, предположим, чтоtшагов оригинальнойRAM-машины моделируются меньше, чем заg(t)tшагов забывающейRAM-машины. Тогда существует компилятор, который защищает программное обеспечение от вмешивающихся противников, с затратами не болееO(g(t)).

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

Метка аутентификации будет зависеть от значения, которое хранится в фактической ячейке памяти и от количества предыдущих команд «сохранить» в этой ячейке. Интуитивно, такая метка аутентификации предотвращает возможность изменять значения, заменять его значением, хранимым в другой ячейке, или заменять его значением, которое было сохранено ранее в той же самой ячейке.

Центральный процессор CPUk, рассмотренный в предыдущей теореме, далее модифицируется следующим образом. Модифицированная машинаCPUkимеет доступ к еще одной случайной функции, обозначаемойf. Эта функция может быть объединена с другими. В случае еслиCPUkжелает сохранить завуалированное значениеvв ячейке памяти он сначала определяет текущий номерверси(a). Отметим, что номер версии(a) может быть вычисленCPUkв соответствии с определением моделирования с метками времени. Модифицированная машинаCPUkтеперь посылает сообщение (сохранить,a, (v,f(a,версия(a),v))) вместо сообщения («сохранить»,a,v), посланного первоначально. После получения сообщения (v,t) изМПв ответ на запрос («выборка»,a,), модифицированная машинаCPUkопределяет текущее значение номераверсия(a) и сравниваетtсf(a,версия(a),v). В случае, если эти два значения равныCPUkработает как и прежде. В противном случае,CPUkнемедленно останавливается, предотвращая, таким образом, защиту от вмешательства. Таким образом, попытки изменить сообщения отМПкЦПбудут обнаружены с очень высокой вероятностью.

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