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


         

Главная идея при этом моделировании


Главная идея при этом моделировании состоит в том, чтобы осуществить доступ к каждой виртуальной ячейке в «перемешанной памяти» только в течение каждого шага периода. Как только осуществится доступ к некоторой виртуальной ячейке, необходимо сохранить версию этой виртуальной ячейки в памяти зщт. В течение шага 2, счт содержит число виртуальных операций доступа, моделируемых в текущем периоде. Переменная счт - первоначально содержит 0 и увеличивается, пока достигнет значения
. Булева переменная found

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

(2a) сканирует полностью память зщт и ищет виртуальный адрес i. А именно, для j, пробегающему значения от m+
+1 до m+2
, доступ к фактической ячейке памяти j переменная found устанавливается в true и сохраняется в ЦП, если виртуальный адрес i

совпадает с фактической ячейкой j. (Переменная found

инициализирована в значение false

до этого сканирования и остается такой же, если виртуальный адрес i не был найден);

(2b) если found=false, тогда забывающая RAM-машина осуществляет доступ к слову с меткой p(i) и сохраняет содержимое в ЦП. Как показано выше, это реализуется посредством двоичного поиска метки p(i);

(2c) если found=true, тогда забывающая RAM-машина осуществляет доступ к слову с меткой p(m+счт), которое является макетом. Это также реализуется посредством двоичного поиска метки t(m+счт);

(2d) просматривает полностью память зщт снова и записывает модифицируемое значение i-того виртуального слова в памяти зщт. А именно, для m+
+1 до m+2
 доступ к фактической ячейке памяти j

запоминается в ее модифицированном значении виртуального адреса i, если адрес j содержит старое значение виртуального адреса i (т.е., found=true), либо found=false и j

- первое пустое слово в памяти зщт.

Значение счт

увеличивается на 1.

Подчеркнем, что невмешивающийся противник не может видеть, сохранил ли ЦП значения или нет и, таким образом, не может различать выполнение шага 2b от выполнения шага 2c. Ясно, что шаги 2a и 2d имеют фиксированную модель доступа и, таким образом, не никакая информация, полезная для такого противника, не вскрывается.


Содержание  Назад  Вперед