Phát hiện mạch tương tự về chức năng và thực hiện


11

Đặt là một vectơ của các biến boolean. Gọi là hai mạch boolean trên . Nói rằng tương tự như nếu:x=(x1,,xn)x C DC,DxCD

  1. Pr[C(x)D(x)] nhỏ theo cấp số nhân, khi x được vẽ đồng đều ngẫu nhiên từ {0,1}n (nói cách khác, chúng có chức năng gần như giống hệt nhau); và,

  2. C,D khác nhau về khoảng cách chỉnh sửa đồ thị với một lượng rất nhỏ (khoảng cách chỉnh sửa của chúng nhỏ hơn nhiều so với kích thước của mạch, giả sử, O(1) hoặc một số hằng số nhỏ), có nghĩa là gần như tất cả các cổng và dây của C khớp với nhau một cổng và dây tương ứng trong D , chỉ có một vài cổng được thêm / xóa / thay đổi.


Vấn đề của tôi: Tôi được cung cấp một mạch C và tôi muốn biết liệu có tồn tại một mạch D tương tự như C nhưng không giống với C (tức là, nơi tồn tại x sao cho C(x)D(x) ).

Bất cứ ai có thể đề nghị một thuật toán để giải quyết vấn đề này?

Nếu có ích, chúng ta có thể hạn chế sự chú ý đến các mạch D nhỏ hơn mạch C (nghĩa là chúng ta muốn biết liệu có tồn tại mạch D sao cho D nhỏ hơn C , D tương tự như C và tồn tại x sao cho C(x)D(x) ).

Nếu có ích, bạn cũng có thể giả sử rằng chúng tôi được cung cấp các trường hợp kiểm tra nổi tiếng x1,,xm,y1,,ym sao cho C(xi)=yi cho tất cả i và chúng ta có thể hạn chế hơn nữa sự chú ý chỉ vào các mạch D sao cho D(xi)=yi cho tất cả i .


Điều này phát sinh từ một ứng dụng thực tế, vì vậy nếu bạn không thể giải quyết vấn đề này, vui lòng giải quyết bất kỳ biến thể hoặc trường hợp đặc biệt thú vị nào. Chẳng hạn, vui lòng khởi tạo bất kỳ tham số hoặc ngưỡng nào theo bất kỳ cách nào thuận tiện cho bạn. Bạn có thể giả sử các mạch không quá lớn (kích thước đa thức hoặc một cái gì đó). Vui lòng thay thế khoảng cách chỉnh sửa biểu đồ bằng một số biện pháp khác về kết quả gần khớp. Ngoài ra, trong thực tế, các bộ giải SAT thường có hiệu quả đáng ngạc nhiên đối với các mạch có cấu trúc phát sinh trong thực tế, do đó, có thể gọi một bộ giải SAT là một chương trình con / orory (ít nhất là nếu bạn gọi nó trên một ví dụ như SAT từ một mạch như ).C

Ngoài ra, thiếu bất kỳ thuật toán nào, tôi cũng sẽ quan tâm đến câu hỏi tồn tại: đối với mạch "trung bình" , xác suất tồn tại một số đáp ứng tất cả các tiêu chí là gì? (Tôi hy vọng xác suất này rất thấp, nhưng tôi không có manh mối nếu đó là trường hợp.)CD


Ứng dụng thực tế là kiểm tra xem một mạch có thể chứa một quả trứng Phục sinh ẩn / ẩn. Giả thuyết về cách một thứ như vậy có thể được chèn vào như thế này. Chúng tôi bắt đầu với một mạch "vàng" , tính toán các chức năng mong muốn và không có cửa hậu ẩn. Sau đó, đối thủ thực hiện một thay đổi nhỏ thành để giới thiệu cửa hậu ẩn, thu được mạch đã sửa đổi . Mục đích của cửa hậu là thay đổi chức năng được tính bởi theo một cách nào đó. Nếu không quá nhỏ, sự thay đổi có thể được phát hiện một cách hợp lý bằng thử nghiệm ngẫu nhiên, do đó, một kẻ thù có thể sẽ cố gắng giữCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]rất nhỏ. Tương tự, nếu khác với ở quá nhiều nơi, điều này có thể được nhận thấy bằng cách kiểm tra ngẫu nhiên mạch, do đó, một kẻ thù có thể sẽ cố gắng giảm thiểu số lượng thay đổi. (Và, có thể có một bộ thử nghiệm gồm đại diện cho các phiên bản của chức năng mong muốn, vì vậy chúng tôi biết rằng bất kể mạch "vàng" là gì, nó đều thỏa mãn cho tất cả .) Cuối cùng, chúng tôi được cung cấp mạch (chứ không phải mạch "vàng" ) và chúng tôi muốn biết liệu có thể là phiên bản sửa đổi của một sốCDxi,yiDD(xi)=yiiCDCD, nơi sửa đổi đã được thực hiện để giới thiệu một cửa hậu ẩn của loại này.


Có bao nhiêu bit tạo thành đầu vào cho mạch? Nếu điều này là đủ nhỏ thì có thể có ý nghĩa để làm thử nghiệm toàn diện.
András Salamon

@ AndrásSalamon: Đáng buồn thay, số đầu vào của mạch đủ lớn trong thực tế (trong các ứng dụng mà tôi có trong đầu) rằng thử nghiệm toàn diện trên tất cả đầu vào có thể là không thể thực hiện được. Tôi đánh giá cao suy nghĩ, mặc dù! n2n
DW

đã sử dụng các thuật toán di truyền để tấn công một cái gì đó như vấn đề này theo kinh nghiệm. trong trường hợp này, nó xuất hiện thuật toán mà bạn nêu, thử nghiệm ngẫu nhiên, là thứ cần thử. Ngoài ra, có vẻ như bạn không mô tả gì về "cửa hậu" trong mạch là gì (điều này dường như có một mối liên hệ không rõ ràng với mật mã học), nhưng thx đã cung cấp một số nỗ lực để thúc đẩy ... một câu hỏi ngay lập tức là làm thế nào một kẻ thù có thể chèn một số cửa hậu trong khi trốn tránh phát hiện bằng thử nghiệm ngẫu nhiên? nhưng kịch bản tổng thể dường như không được xác định đầy đủ.
vzn

3
@vzn, Mạch vàng mô tả chức năng dự định của thiết bị. Giả sử 100 bit đầu vào có thể được chọn / ảnh hưởng bởi kẻ tấn công. Chúng tôi lo lắng có một cửa hậu ẩn trong hoạt động như thế này: nếu kẻ tấn công cung cấp giá trị ma thuật 100 bit cho đầu vào của anh ta, thì mạch backlink tính toán đầu ra sai (với hiệu ứng bi thảm), nhưng nếu không thì hành xử giống hệt . Điều này sẽ cho phép kẻ tấn công kích hoạt thảm kịch tại thời điểm anh ta chọn, nhưng thật khó để phát hiện bằng thử nghiệm ngẫu nhiên (vì chỉ trong bi kịch kích hoạt đầu vào). D(x)nCCCD1/2100
DW

câu hỏi có vẻ như có liên quan đến "xương sống" SAT. cũng thấy câu hỏi này về chuyển đổi / lỗi cnf so với dnf có thể là một cách tự nhiên / chính thức để định lượng "độ tương tự" mà bạn không định lượng chính thức. Có đúng là kẻ tấn công chỉ có thể "lật" kết quả "vàng" là đúng hay sai bằng cách thêm cổng? tức là nó có vẻ như là một vấn đề giống như -xor- . f(x)g(x)
vzn

Câu trả lời:


4

Đây chỉ là một nhận xét mở rộng xuất hiện trong đầu tôi ngay sau khi đọc câu hỏi:

  • giả sử bạn có công thức 3SAT với biến và gọi là mạch tương ứng;ϕnx1,...,xnC

  • xây dựng một mạch mới'thêm biến , và đủ cửa để VÀ biến mới với sản lượng của bản gốc ( );Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • xây dựng một mạch mới từ chỉ đơn giản là buộc đầu ra của nó về 0 bằng cách sử dụng cổng AND và KHÔNG ( )DCD=C¬C

Nếu không thỏa mãn thì và là tương đương, nếu không thì chúng khác nhau khi thỏa mãn công thức VÀ tất cả , nhưng bạn có thể chọn đủ lớn để xác suất rất nhỏ.ϕDCxiyi=1myi=1

Vì vậy, nếu bạn có một thuật toán hiệu quả cho vấn đề của mình, bạn có thể giải quyết vấn đề 3SAT một cách hiệu quả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.