Скачиваний:
168
Добавлен:
02.05.2014
Размер:
300.54 Кб
Скачать
    1. Преобразования, защищающие программное обеспечение

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

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

Определение 5.5.Компилятор, обозначаемый черезC, является вероятностным отображением, которое по входу целочисленного параметраkи программыПдляRAMkвозвращает пару (f,Пf) так, чтобы:

  • f:{0,1}O(k){0,1} – случайно выбранная функция;

  • Пf=O(П);

  • для k'=k+O(logk) существует оракульнаяRAMk' -машина такая, что для каждой П, каждойfи каждогоx{0,1} инициируетсяRAMk'на входе (Пf,x) и при доступе к оракулуfобеспечивает выход П(x).

Оракульная RAMk' -машина отличается отRAMk-машины в том, чтоRAMk'имеет доступ к оракулу, в то время какRAMkнет. Понятно, чтоRAMk'имеет большую память, а именноRAMk' -машина состоит из 2k'=poly(k)2kслов, в то время как памятьRAMkсостоит из 2kслов.

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

Оракул спецификациидля программыП– это оракул, который на запросxвозвращает тройку (П(x),tП(x),sП(x)).

Отметим, что tП(x) иsП(x) обозначает время выполнения и пространственные размеры программыПна данныхx. Далее даются основное определение для задачи защиты программ. В этом определенииADVбудет рассматриваться и как вмешивающийся, и как невмешивающийся противник.

Определение 5.6.Для данного компилятораCи противникаADV, компиляторCзащищает программное обеспечение от противника ADV, если существует вероятностная оракульная машинаМ, удовлетворяющая следующим условиям:

  • (М функционирует примерно за то же самое время, как и ADV)Существует полиномp() такой, что для каждой строкивремя выполненияМна входе (k',) (с учетом доступа к случайному оракулу) было ограниченоp(k')T, гдеTобозначает время выполненияADVпри экспериментировании сRAMk'на входе;

  • (М с доступом к оракулу спецификации обеспечивает выход почти идентичный выходу ADV после экспериментирования с результатами работы компилятора)Для каждой программыПстатистическое расстояние между следующими двумя распределениями вероятностей ограничено 2-k'.

  1. Распределение выхода машины ADVпри экспериментировании сна входеПf, где (f,Пf)C(П). Отметим, чтообозначает интерактивную пару (CPUk',MEMk'), гдеCPUk'имеет доступ к оракулуf. Распределение берется над пространством вероятностей, состоящим из всех возможных выборов функцииfи всех возможных результатов выработки случайного бита («подбрасываний монеты») машиныADVс равномерным распределением вероятностей.

  2. Распределение выхода оракульной машины Мна входе (k',O(П)) и при доступе к оракулу спецификации дляП. Распределение берется над пространством вероятностей состоящим из всех возможных результатов подбрасываний монеты машиныМс равномерным распределением вероятностей.

Компилятор Cобеспечиваетслабуюзащиту программ, еслиCзащищает программы против любого невмешивающего противника. КомпиляторCобеспечиваетдоказуемую защиту программ от вмешательства, еслиCзащищает программы против любого вмешивающего противника.

Далее приведем определения затрат на защиту программ. Необходимо напомнить, что для простоты, мы ограничиваем время выполнения программы Пследующим условием:tП(x)>П+xдля всехx.

Определение 5.7.ПустьC- компилятор иg:NN –некоторая целочисленная функция.Затраты компилятораCна большинстве аргументовg, если для каждойП, каждогоx{0,1}*и каждой случайно выбраннойfтребуемое время выполненияRAMk'на входе (Пf,x) и при доступе к оракулуfограничены сверхуg(T)T, гдеT=tП(x).

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