Обнаружение схемы, которая похожа по функциональности и реализации

11

Пусть x=(x1,,xn) - вектор булевых переменных. Пусть C,D две булевы схемы на x . Скажите, что C похож на D если:

  1. x { 0 , 1 } nPr[C(x)D(x)]x{0,1}n

  2. C,D различаются по расстоянию редактирования графика незначительно (их расстояние редактирования намного меньше размера схемы, скажем, или некоторой небольшой константы), что означает, что почти все вентили и провода совпадают соответствующие ворота и провод в , с добавлением / удалением / изменением только нескольких ворот.C DO(1)CD


Моя проблема: мне дана схема , и я хочу знать, существует ли схема которая похожа на но не идентична (т. Е. Там, где существует такой, что ).D C C x C ( x ) D ( x )CDCCxC(x)D(x)

Кто-нибудь может предложить алгоритм решения этой проблемы?

Если это помогает, мы можем ограничить внимание схемами , которые меньше, чем данная схема (т. Е. Мы хотим знать, существует ли схема такая, что меньше, чем , подобна , и существует такой, что ).C D D C D C x C ( x ) D ( x )DCDDCDCxC(x)D(x)

Если это помогает, вы можете дополнительно предположить, что нам даны хорошие тестовые примеры такие что для все , и мы можем далее ограничить внимание только схемами такими, что для всех . C ( x i ) = y i i D D ( x i ) = y i ix1,,xm,y1,,ymC(xi)=yiiDD(xi)=yii


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

В качестве альтернативы, при отсутствии каких-либо алгоритмов меня также интересовал бы вопрос о существовании: для «средней» схемы , какова вероятность того, что существует некоторый который удовлетворяет всем критериям? (Я надеюсь, что эта вероятность очень мала, но я понятия не имею, так ли это).DCD


Практическое применение состоит в том, чтобы проверить, может ли схема содержать вредоносный бэкдор / скрытое пасхальное яйцо. Гипотеза о том, как можно вставить такую ​​вещь, выглядит следующим образом. Мы начнем с «золотой» схемы , которая вычисляет желаемую функциональность и не имеет скрытого бэкдора. Затем противник делает небольшое изменение , чтобы ввести скрытый черный ход, получение модифицированной схемы . Цель бэкдора - каким-то образом изменить функцию, вычисляемуюЕсли не слишком мало, изменение может быть достоверно обнаружено при случайном тестировании, поэтому злоумышленник, вероятно, попытается сохранитьD D C D Pr [ C ( x ) D ( x ) ] Pr [ C ( x ) D ( x ) ] C D x i , y i D D ( x i ) = y i i C D C DCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]очень маленький. Точно так же, если отличается от в слишком многих местах, это можно заметить при случайной проверке схемы, поэтому злоумышленник, вероятно, попытается свести к минимуму количество изменений. (И, может быть, есть набор тестов из пар которые представляют экземпляры желаемой функциональности, поэтому мы знаем, что, какой бы ни была «золотая» схема , она удовлетворяет для всех .) В конечном счете, нам дана схема (но не «золотая» схема ), и мы хотим знать, может ли быть модифицированной версией некоторогоCDxi,yiDD(xi)=yiiCDCDгде была сделана модификация для введения скрытого бэкдора такого рода.

DW
источник
Сколько битов формируют вход в схему? Если это достаточно мало, возможно, имеет смысл провести исчерпывающее тестирование.
Андраш Саламон,
@ AndrásSalamon: К сожалению, на практике число входов в схему достаточно велико (в приложениях, которые я имею в виду), поэтому исчерпывающее тестирование всех возможных входов невозможно. Я ценю эту мысль, хотя! 2 nn2n
DW
использовали генетические алгоритмы, чтобы эмпирически атаковать что-то вроде этой проблемы. в этом случае кажется, что алгоритм, который вы заявляете, случайное тестирование, это то, что нужно попробовать. Кроме того, кажется, вы вообще не описали, что такое «черный ход» в схеме (кажется, что он имеет какую-то неустановленную связь с криптографией), но спасибо за предоставление некоторой попытки мотивации ... кажется, что сразу возникает вопрос, как мог противник вставить какой-нибудь черный ход, уклоняясь от обнаружения путем случайного тестирования? но общий сценарий кажется не полностью определенным.
vzn
3
@vzn, Золотая цепь описывает предполагаемую функциональность устройства. Предположим, злоумышленник может выбрать / повлиять на 100 из входных битов. Мы обеспокоены тем, что в есть скрытый бэкдор, который работает следующим образом: если злоумышленник подает на свои входы магическое 100-битное значение, то закулисная схема вычисляет неправильный вывод (с трагическим эффектом), но в остальном ведет себя точно так же . Это позволило бы злоумышленнику вызвать трагедию в любой момент по его выбору, но это трудно обнаружить при случайном тестировании (поскольку только входов вызывают трагедию). п С С С D 1 / 2 100D(x)nCCCD1/2100
DW
вопрос кажется, что он может иметь какое-то отношение к "магистрали" SAT. также см. этот вопрос о преобразовании / ошибках cnf vs dnf, которые могут быть естественным / формальным способом количественного определения «сходства», которое вы формально не определяете. Правда ли, что злоумышленник может «перевернуть» «золотой» результат истинного или ложного, добавив ворота? то есть это звучит как -xor- -подобная проблема. g ( x )f(x)g(x)
vzn

Ответы:

4

Это только расширенный комментарий, который пришел мне в голову сразу после прочтения вопроса:

  • Предположим, у вас есть формула 3SAT с переменными и пусть - соответствующая схема;п х 1 , . , , , х н Сϕnx1,...,xnC

  • построить новую схему , добавив переменных и достаточное количество входов в AND новых переменных с выходом исходного ( ); т = п к у 1 , у 2 , . , , , y n k m C C = ϕ y 1. , , у мCm=nky1,y2,...,ynkmCC=ϕy1...ym

  • построить новую схему из которая просто принудительно выводит свой вывод в 0, используя логические элементы AND и NOT ( )C D = C ¬ C DCD=C¬C

Если не выполнимо, то и эквивалентны, в противном случае они отличаются, когда удовлетворяет формуле И все , но вы можете выбрать достаточно большим, чтобы сделать вероятность того, что очень мала.D ' С ' х я у я = 1 м у я = 1ϕDCxiyi=1myi=1

Поэтому, если у вас есть эффективный алгоритм для вашей задачи, вы можете эффективно решить экземпляр 3SAT.

Марцио де Биаси
источник