기능성 및 구현면에서 유사한 회로 감지


11

하자 부울 변수 벡터 될. C , Dx의 두 부울 회로라고 합시다 . 다음 과 같은 경우 CD 와 유사 하다고 가정 하십시오.x=(x1,,xn)C,DxCD

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

  2. C,D 는 그래프 편집 거리가 작은 양만큼 다릅니다 (편집 거리는 회로의 크기보다 훨씬 작습니다 예 : 또는 작은 상수)). 의 거의 모든 게이트와 와이어가 일치 한다는 것을 의미합니다. 몇 개의 게이트 만 추가 / 삭제 / 변경된 의 해당 게이트 및 와이어 .O(1)CD


내 문제 : 나는 회로 부여하고 , 나는 회로가 존재하는지 여부를 알고 싶어 와 유사하다 와 동일하지만 (즉, 거기에 존재하는 같은 것을 ).CDCCxC(x)D(x)

누구 든지이 문제를 해결하는 알고리즘을 제안 할 수 있습니까?

도움이된다면, 우리는 회로에 관심을 제한 할 수 있습니다 주어진 회로보다 작은 즉 (우리는 회로가 존재하는지 여부를 알고 싶어 있도록 보다 작은 , 유사하다 , 그리고 존재 되도록 ).DCDDCDCxC(x)D(x)

도움이된다면, 당신은 또한 우리가 알려진 좋은 테스트 케이스 주어진 가정 할 수있다 같은 그 위한 모든 전용 회로에, 우리는 더 관심을 제한 할 수있는 되도록 모든 .x1,,xm,y1,,ymC(xi)=yiiDD(xi)=yii


이것은 실제 응용 프로그램에서 발생하므로이 문제를 해결할 수없는 경우 변형 또는 흥미로운 특수 사례를 자유롭게 해결하십시오. 예를 들어, 편리한 방법으로 매개 변수 또는 임계 값을 자유롭게 인스턴스화하십시오. 회로가 너무 크지 않다고 가정 할 수 있습니다 (다항식 크기 ​​등). 그래프 편집 거리를 구현의 거의 일치하는 다른 척도로 대체하십시오. 또한 실제로 SAT 솔버는 실제로 발생하는 구조화 된 회로에서 놀랍게도 효과적이므로 SAT 솔버를 서브 루틴 / 오라클로 호출하는 것이 좋습니다 (적어도 SAT 인스턴스와 같은 방식으로 호출하는 경우). 와 같은 회로에서 ).C

대안 적으로, 어떤 알고리즘이 없다면, 존재 질문에 관심이있을 것이다 : "평균"회로 에 대해, 모든 기준을 만족 하는 일부 가 존재할 확률은 얼마인가? (이 확률이 매우 낮기를 희망하지만 그럴 경우 실마리가 없습니다.)CD


실제 적용은 회로 에 악성 백도어 / 숨겨진 이스터 에그가 포함되어 있는지 테스트하는 것 입니다. 그러한 것들이 어떻게 삽입 될 수 있는지에 대한 가설은 다음과 같습니다. 원하는 기능을 계산하고 숨겨진 백도어가없는 "골든"회로 시작 합니다. 그런 다음 적은 로 약간 변경 하여 숨겨진 백도어를 도입하여 수정 된 회로 얻습니다 . 백도어의 목적은 어떤 방식 으로 에 의해 계산 된 함수를 변경하는 것입니다. 만약 공격자는 아마 유지하려고 있도록, 변경이 그럴듯하게, 무작위 시험을 통해 너무 작 검출 할 수 있지 않습니다CDDCDPr[C(x)D(x)]Pr[C(x)D(x)]매우 작은. 마찬가지로, 가 너무 많은 곳 에서 와 다른 경우 회로의 임의 검사에 의해 발견 될 수 있으므로 공격자는 변경 횟수를 최소화하려고 시도 할 것입니다. 또한 원하는 기능의 인스턴스를 나타내는 쌍 의 테스트 스위트가있을 수 있으므로 "골든"회로 가 무엇이든 만족 한다는 것을 알고 있습니다. 모든 .) 결국, 우리는 회로 주어진 아니라 "황금"회로 ( ), 우리는 여부를 알고 싶은 약간의 수정 된 버전 수 있습니다CDxi,yiDD(xi)=yiiCDCD이러한 종류의 숨겨진 백도어를 도입하도록 수정되었습니다.


회로에 대한 입력은 몇 비트입니까? 이것이 충분히 작은 경우 철저한 테스트를 수행하는 것이 좋습니다.
András Salamon

@ AndrásSalamon : 슬프게도, 회로에 대한 개의 입력 수는 실제로 ( 가능한 모든 입력에 대한 철저한 테스트 가 불가능하다는 사실을 염두에 두었습니다 . 그래도 그 생각에 감사합니다! n2n
DW

유전자 알고리즘을 사용하여 이러한 문제를 경험적으로 공격했습니다. 이 경우에는 무작위 테스트라는 알고리즘이 시도해야 할 것으로 보입니다. 또한 회로의 "백도어"가 무엇인지 전혀 설명하지 않은 것 같습니다 (암호화와 관련이없는 것으로 보입니다).하지만 동기 부여를위한 시도를 제공하기위한 thx ... 즉각적인 질문은 어떻게 상대가 될 수있는 것 같습니다 무작위 테스트로 탐지를 회피하면서 백도어를 삽입 하시겠습니까? 그러나 전체 시나리오는 완전히 정의되지 않은 것 같습니다.
vzn

3
@vzn, 황금 회로 는 장치의 의도 된 기능을 설명합니다. 입력 비트 중 100 개가 공격자에 의해 선택 / 영향을받을 수 있다고 가정 합니다. 우리는 숨겨진 백도어가 다음 과 같이 작동 하는 것을 걱정 합니다. 공격자가 입력에 마법의 100 비트 값을 제공하면 백도어 회로 가 잘못된 출력을 계산하지만 (비극적 인 효과가 있음) 그렇지 않으면 정확하게 동작합니다 . 이를 통해 공격자는 자신이 선택한 시점에 비극을 유발할 수 있지만 무작위 테스트로는 감지하기 어렵습니다 ( 입력의 만 비극을 유발하기 때문에). D(x)nCCCD1/2100
DW

문제는 SAT "백본"과 관련이있는 것 같습니다. 또한 cnf vs dnf 변환 / 오류 에 대한이 질문을 참조하십시오 . 이는 공식적으로 수량화하지 않는 "유사성"을 정량화하는 자연 / 공식적 방법 일 수 있습니다. 침입자가 게이트를 추가하여 true 또는 false의 "골든"결과 만 "플립"할 수 있다는 것이 사실입니까? 즉, -xor- 와 유사한 문제처럼 들립니다 . f(x)g(x)
vzn

답변:


4

이것은 질문을 읽은 직후에 내 마음에 온 확장 된 주석입니다.

  • 만약 3SAT 수식 있다고 가정 가진 변수 및하자 대응하는 회로 일;ϕnx1,...,xnC

  • 변수 을 추가하고 원래 의 출력으로 새 변수에 대한 충분한 게이트를 추가 하여 새 회로 빌드 하십시오 ( );Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • AND 및 NOT 게이트를 사용하여 출력을 0으로 강제하는 에서 새로운 회로 를 만듭니다 ( )DCD=C¬C

만약 가 만족 않다면 와 는 동등하다. 그렇지 않으면 가 수식을 만족하고 모든 일 때 그것들이 다르지만 , 이 될 확률을 매우 작게 만들 정도로 크게 선택할 수있다 .ϕDCxiyi=1myi=1

따라서 문제에 대한 효율적인 알고리즘이 있다면 3SAT 인스턴스를 효율적으로 해결할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.