МЕТОД ОБФУСКАЦИИ ЦИФРОВЫХ СХЕМ, ОСНОВАННЫЙ НА ИСПОЛЬЗОВАНИИ ЛОГИЧЕСКИХ ИМПЛИКАЦИЙ

СХЕМОТЕХНИКА И ПРОЕКТИРОВАНИЕ

УДК 658.512.011.56

Метод обфускации цифровых схем, основанный на использовании логических импликаций

В.А.Беспалов, А.Л.Глебов, А.Н.Кононов

Московский государственный институт электронной техники

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

Ключевые слова: цифровые схемы, обфускация, логические импликации.

В последние годы возрастает интерес к проблеме обфускации (затруднение понимания, скрытие смысла) компьютерных программ [1, 2]. Цель обфускации - предотвращение несанкционированного доступа к указанным программам. Актуальной также является задача обфускации схемотехнических решений, используемых в цифровых СБИС [3, 4].

В настоящей работе предложен новый метод обфускации цифровых схем, основанный на использовании логических импликаций. Простая логическая импликация (ПЛИ) между двумя узлами цифровой схемы а, Ь - это отношение типа (а = 0) ^ (Ь = 1) или,

используя более короткое обозначение, а ^ Ь . В работах [5, 6] показано, что цифровая комбинационная схема обычно содержит большое количество ПЛИ, а также описан быстрый алгоритм их вычисления. Далее покажем, что, используя найденные ПЛИ, можно вводить в схему некоторое количество фиктивных (в действительности неработающих) циклов. В дополнение к этому можно вводить также и реальные (работающие) циклы [7, 8]. При этом схема остается комбинационной и реализуемая ею булева функция не изменяется. Однако для обфускированной (запутанной) таким образом схемы автоматическое восстановление ее булевой функции становится крайне сложной задачей, не решаемой обычными алгоритмами и программами восстановления булевых функций.

Основная идея предлагаемого метода обфускации цифровой схемы поясняется с помощью рис.1.

© В.А.Беспалов, А.Л.Глебов, А.Н.Кононов, 2011

Рис.1. Пример исходной и обфускированной цифровой схемы

В исходной схеме (рис.1,а) имеется ПЛИ (х = 0) ^ (у = 1). Это значит [9], что из четырех возможных сочетаний сигналов (х, у) три разрешенных, а одно сочетание никогда не реализуется:

Если добавить в схему еще один КОЯ2 (вентиль Е) и подать на его входы сигналы х, у, то в силу наличия указанной ПЛИ на выходе этого вентиля (сигнал е на рис.1,б) в стационарном состоянии схемы, т.е. в начале и в конце каждого такта работы синхронной цифровой схемы, всегда будет логический «0». Предполагается, что на входе и на выходе комбинационной схемы имеются регистры, управляемые тактовым сигналом. Замена типа вентиля Б на КОЯ3 и подача на его третий вход сигнала е завершают об-фускационное преобразование схемы посредством создания фиктивного цикла.

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

Временной анализ вычисляет для каждого узла схемы так называемые окна переключения, т.е. интервалы времени, в течение которых возможны переключения данного узла, в том числе паразитные (глитчи). На рис.1 показаны результаты временного анализа в предположении модели единичной задержки (все задержки логических вентилей предполагаются равными единице). Модель единичной задержки является идеализацией, и окно переключения [1,1] в действительности никогда не реализуется, поскольку все задержки вентиля на самом деле различны. Однако для поставленных целей такая модель вполне подходит.

Из рис.1,б видно, что в результате введения цикла при некоторых значениях первичных входов схемы происходит размножение окон переключения. В этом случае схема может не прийти в стационарное состояние в течение такта своей работы и ее правильная работа будет нарушена.

Для того чтобы гарантировать правильную работу схемы, введем понятие демпфирующего цикла. Рассмотрим фрагмент комбинационной схемы (рис.2,а). В этом фрагменте имеются следующие ПЛИ: (/ = 1)^(е = 0) и (х = 1)^(у = 1). Для организации демпфирующего цикла добавим в схему вентили Z, Р, Q, Я и подадим пару сигналов (/, е) на входы вентиля Р, сигнал у - на вход вентиля Z, а сигнал х - на свободный вход вентиля Q (рис.2,б). В силу наличия указанных ПЛИ на выходах вентилей Р, Q в стационарном состоянии будет логическая «1». Подадим сигналы (р, д) с этих выходов на

входы вентиля Я. Оба входа этого вентиля являются контролирующими (вход вентиля называется контролирующим, если при некотором его значении сигнал на выходе вентиля не зависит от сигналов на других входах), а логическая «1» является для каждого из них контролирующим значением. Поскольку окна переключения для этих входов не пересекаются (см. рис.2,б), выход г этого вентиля никогда не переключается (на нем всегда будет логический «0»). Иначе говоря, окно переключения для узла г является пустым. Таким образом, введение демпфирующего цикла не влияет на правильную работу схемы (т.е. связь выходов со входами идентична такой связи в исходной схеме).

Реализация и использование ПЛИ. Схемы, показанные на рис.1 и 2, очень малы и служат лишь для иллюстрации предлагаемого подхода. В этих примерах цена рассмотренной обфускации неоправданно высока: при КМОП-реализации количество транзисторов в схеме на рис.1 увеличивается на 60%, а в схеме на рис.2 - на 70%. Однако для комбинационной схемы, содержащей сотни и тысячи логических вентилей, введение достаточно большого числа обфускирующих циклов достигается ценой увеличения площади схемы всего лишь на несколько процентов. При этом, если эти трансформации не затрагивают самых длинных путей, быстродействие схемы не ухудшается.

В данной работе предлагается проводить обфускирующие преобразования на технологически независимой стадии логического синтеза. Результаты этой стадии могут быть далее использованы для технологически зависимого синтеза (отображения в библиотеку), размещения, трассировки и т.д. При этом для описания как исходной, так и обфускированной схемы может использоваться язык Verilog. Приведем пример входного и выходного описания схемы, показанной на рис.1,а,б соответственно:

// Initial circuit

//

module initial (a, b, c, x, y); input a, b, c; output x, y; wire d;

assign d = ~ (a | b); assign x = ~ d; assign y = ~ (b & c); endmodule

// Final circuit

//

module final (a, b, c, x, y); input a, b, c; output x, y; wire d, e;

assign d = ~ (a | b |e); assign x = ~ d; assign y = ~ (b & c); assign e = ~ (x | y); endmodule

Для эффективного проведения обфускации цифровой комбинационной схемы предлагаемым методом необходимо выполнить следующие условия:

- для формирования фиктивных циклов нужно выбрать пары узлов с ПЛИ между ними, отстоящие «далеко» друг от друга;

- предварительно необходимо провести временной анализ схемы, используя ту или иную модель задержки логических вентилей;

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

Поясним реальность выполнения первых двух условий. В работах [5, 6] описан быстрый алгоритм вычисления большого количества ПЛИ и показано, что ПЛИ широко используются в комбинационных схемах. Эскиз алгоритма вычисления ПЛИ имеет вид:

инициализировать списки тривиальными ПЛИ;

повторять {

для

произвести прямое распространение ПЛИ с применением контрапозитивного закона;

} до установления;

повторять {

для

произвести боковое распространение ПЛИ с применением транзитивного и контрапозитивного законов;

повторять {

для

произвести прямое распространение ПЛИ с применением контрапозитивного закона;

} до установления;

} до установления;

Дадим пояснения к этому псевдокоду. В каждом узле схемы вычисляются четыре списка, содержащие все ПЛИ (которые удалось вычислить) четырех возможных типов. Первоначально эти списки инициализируются тривиальными ПЛИ (т.е. ПЛИ типа а ^ а). Далее выполняются циклы с прямым и обратным обходом вентилей, в которых ПЛИ распространяются через вентили, с использованием контрапозитивного и транзитивного законов [5, 6]. Результаты тестирования описанного алгоритма на схемах достаточно большого размера приведены в табл. 1.

Таблица 1

Результаты тестирования алгоритма генерации ПЛИ

Схема c432 ^355 cla1 cnt_ones cnt_zeros testckt

Число узлов 248 559 333 83 87 97 99 474

Число ПЛИ (П) 7826 27218 5136 1196 1222 1976 1812 82572

Число ПЛИ (П+О) 20210 32802 5672 1466 1516 2248 2098 86444

Увеличение числа ПЛИ, % 158 21 10 23 24 14 16 5

Число ПЛИ на пару узлов 0,33 0,10 0,05 0,21 0,20 0,24 0,21 0,38

Третья и четвертая строки таблицы содержат полное число ПЛИ, сгенерированных в схеме для случая только прямых проходов и для случая прямых и обратных проходов соответственно. Пятая строка содержит процент увеличения числа ПЛИ за счет добавления обратных проходов. Шестая строка содержит среднее число ПЛИ в схеме в расчете на случайно выбранную пару узлов. Результаты показывают, что число ПЛИ в схемах крайне велико.

Отметим преимущество предлагаемого метода: описанный алгоритм генерации ПЛИ использовался при анализе помехоустойчивости цифровых схем. Информация о ПЛИ неизвестна алгоритмам и программам восстановления булевой функции и верификации цифровых схем, поэтому задача расшифровки схем, обфускированных предлагаемым методом, является непростой.

Результаты численных экспериментов. Для проведения численных экспериментов по проверке эффективности предлагаемого метода разработана программа-прототип, обфускирующая цифровую комбинационную схему путем введения в нее определенного количества демпфирующих циклов. Программа считывает описание исходной схемы, формирует ее внутреннее представление, производит генерацию ПЛИ, временной анализ и вводит в схему демпфирующие циклы. Для правильной интерпретации полученных результатов следует иметь в виду две особенности программы: 1) два или более демпфирующих циклов могут иметь общую часть; 2) точка возврата демпфирующего цикла (узел r на рис.2) должна находиться во входном конусе, по меньшей мере, одной точки подключения этого цикла (узлы f, e, x, y на рис.2).

Результаты численных экспериментов для ряда схем из набора ISCAS-85 даны в табл.2. Для каждой схемы приведены число первичных входов и первичных выходов, глубина схемы (т.е. длина критического пути в вентилях), число вентилей в схеме. В последних трех столбцах приведен рост числа транзисторов в схеме при введении соответственно пяти, десяти и двадцати демпфирующих циклов (ДЦ). Из таблицы видно, что цена обфускации схемы реального размера вполне приемлема.

Таблица 2

Результаты численных экспериментов

Схема Число PI Число PO Глубина схемы Число вентилей 5 ДЦ, % 10 ДЦ, % 20 ДЦ, %

с432 36 7 17 248 5,6 9,9 26,8

с499 41 32 11 454 2,3 5,4 12,3

с1355 41 32 24 559 1,9 3,8 11,3

с1908 33 25 40 1057 1,7 2,3 5,3

с2670 157 64 32 1400 1,0 2,3 3,8

с3540 50 22 47 1983 0,9 1,4 3,2

с5315 178 123 49 2973 0,5 0,8 2,0

с6288 32 32 124 2416 0,7 1,0 2,5

с7552 207 108 43 4043 0,4 0,7 1,6

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

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

Литература

1. Варновский Н.П., Захаров В.А., Кузюрин Н.Н., Шокуров А.В. О перспективах решения задачи обфускации компьютерных программ // Математика и безопасность информационных технологий: тр. конф. - М., 2003. - С. 344-351.

2. Lynn B., Prabhakaran M., Sahai A. Positive results and techniques for obfuscation // Lecture Notes in Computer Science. - 2004. - Vol. 3027. - P. 20-39.

3. On the (Im)possibility of obfuscating programs / B.Barak, O.Goldreich, R.Impagliazzo et al. // Electronic Colloquium on Computational Complexity. - 2001. - 8(57). - P. 1-41.

4. Norman K.T. Algorithms for white-box obfuscation using randomized subcircuit selection and replacement. - Thesis, Air Force Institute of Technology, Ohio, 2008. - 99 p.

5. Glebov A., Gavrilov S., Blaauw D., Zolotov V. False-noise analysis using logic implications // ACM Trans. on Design Automation of Electronic Systems (TODAES) . - 2002. - Vol. 7, № 3. - P. 474-498.

6. Гаврилов С.В., Глебов А.Л., Стемпковский А.Л. Анализ помехоустойчивости цифровых схем на основе логических импликаций // Изв. вузов. Электроника. - 2002. - № 5. - C. 60-67.

7. RiedelM.D., Bruck J. The synthesis of cyclic combinational circuits // DAC. - 2003. - P. 163-168.

8. Riedel M.D. Cyclic combinational circuits: PhD Dissertation. - California Institute of Technology, 2004. - 119 p.

9. Актуальные проблемы моделирования в системах автоматизации схемотехнического проектирования / А.Л.Глебов, М.М. Гурарий и др. /Подред. А.Л.Стемпковского. - М.: Наука, 2003. - 430 с.

Статья поступила 12 июля 2010 г.

Беспалов Владимир Александрович - доктор технических наук, профессор, заведующий кафедрой проектирования и конструирования интегральных микросхем (ПКИМС), первый проректор МИЭТ. Область научных интересов: технология интегральных схем на основе сложных полупроводников, фотоэлектроника, зондовая микроскопия, инновационная деятельность в научно-технической сфере.

Глебов Алексей Львович - доктор технических наук, профессор кафедры ПКИМС МИЭТ. Область научных интересов: методы логического синтеза, анализ помехоустойчивости и оптимизация СБИС. E-mail: glebov.alexey@gmail.com

Кононов Александр Николаевич - кандидат физико-математических наук, заведующий отделом ОАО «Зеленоградский инновационно-технологический центр» МИЭТ. Область научных интересов: проектирование и конструирование СБИС.