Điểm:1

Làm cách nào để đặt giá trị không đổi một cách an toàn bên trong các mạch bị cắt xén?

lá cờ tr

Giả sử có một số giá trị không đổi phải được đặt bên trong mạch. Cách ngây thơ là chỉ cần chuyển các hằng số cần thiết làm đầu vào cho mạch. Nhưng điều này có vẻ lãng phí.

Đó là cách thích hợp để thiết lập các giá trị hằng số (tức là mã hóa cứng) trong các mạch bị cắt xén?

Điểm:0
lá cờ us

Tôi sẽ cho rằng các hằng số được mã hóa cứng này là công khai (được cả người cắt xén và người đánh giá biết đến). Có một vài tùy chọn:

  1. Hãy coi các hằng số là đầu vào bổ sung cho mạch, như bạn đề xuất. Lưu ý rằng dây đầu vào có thể được tái sử dụng cho nhiều cổng, vì vậy bạn chỉ cần một dây duy nhất thậtsai dây cho toàn mạch.Hầu hết các chương trình cắt xén hỗ trợ không phải miễn phí, vì vậy bạn thực sự chỉ cần một hằng số thật dây điện. Hơn nữa, hóa ra bạn luôn có thể lấy thật nhãn dây là chuỗi gồm tất cả các số 0 mà không mất tính tổng quát. Kết hợp tất cả các quan sát này, các dây đầu vào không đổi bổ sung không gây thêm chi phí cho mạch.

  2. Truyền hằng số qua mạch. Ví dụ, một cổng y=VÀ(x,đúng) trở thành chỉ y=x, nghĩa là bạn có thể thay thế y dây bằng x trong bất kỳ cửa hạ lưu nào sử dụng y như một đầu vào. một cánh cổng y=VÀ(x,sai) trở thành y=false, và bạn lại có thể tuyên truyền y=false xuôi dòng trong các cổng sử dụng y như một đầu vào. Bằng cách này, bạn sẽ thấy rằng nhiều cổng xuôi dòng của hằng số được mã hóa cứng có thể được loại bỏ hoàn toàn khỏi mạch một cách đơn giản. Quá trình này không liên quan gì đến việc cắt xén mà chỉ đơn giản hóa mạch boolean dựa trên các đầu vào được mã hóa cứng.

Nếu các hằng số chỉ được biết đến với trình cắt xén, thì mục tiêu là đơn giản hóa mạch/sự cắt xén trong khi ẩn các hằng số đó.

Hầu hết các kế hoạch cắt xén (và chắc chắn là những kế hoạch hiện đại hàng đầu) đều hỗ trợ các cổng hấp thụ tự do không phải cổng, có nghĩa là bạn có thể cắt xén và (không phải (x), y), và (x, không phải (y)), ... cổng với chi phí tương tự như cắt xén một cánh cổng. Trên thực tế, những kế hoạch cắt xén này che giấu sự tồn tại của những không phải cổng. Sử dụng quan sát này, bạn vẫn có thể thực hiện #1 từ phía trên. Nếu bạn cần mã cứng một cổng y=và(x,sai) sau đó bạn có thể nuôi đĩa đơn của mình thật đầu vào dây vào một cổng của hình thức y=và(x,KHÔNG(đúng)) trong khi che giấu sự hiện diện của điều đó không phải (nghĩa là ẩn xem cổng có được mã hóa cứng hay không bằng một thật hoặc sai).

Tuy nhiên, bạn có thể làm tốt hơn một chút bằng cách sử dụng "cổng nửa cổng" từ công trình nửa cổng. Điều này cho phép bạn cắt xén một và (x, đúng) hoặc và (x, sai) cổng, trong khi ẩn cái nào bị cắt xén, với giá chỉ bằng một nửa so với cổng chính thức -cánh cổng.

walter7x avatar
lá cờ tr
Cảm ơn bạn @Mikero, trong trường hợp của tôi, tôi sử dụng BHKR13 (AES khóa cố định) + FreeXOR + GRR3. Các hằng số là công khai. Tùy chọn 1 (nhập một dây đúng và một dây sai) là hấp dẫn nhất, tuy nhiên tôi lo lắng rằng nếu ví dụ: hai bit 0 của hằng số cần được XOR với nhau bên trong mạch, điều này có nghĩa là XOR cùng một dây với chính nó, điều này sẽ dẫn đến nhãn0 = 0 và nhãn1 = delta của mạch. Tôi có phải đảm bảo rằng mạch được sắp xếp sao cho nhãn1 sẽ không trở thành nhãn đầu ra của mạch không? Hay tôi đã bỏ lỡ ý tưởng của bạn hoàn toàn?
lá cờ us
Đúng là cổng `y xor y` cho kết quả sai, kể cả trường hợp y được mã hóa cứng. Với free-xor, dây đầu ra của cổng này thực sự là 0 và $\Delta$. Vì cổng này không thể đưa ra đầu ra=true, bảo mật thông thường cho bạn biết rằng người đánh giá không thể tìm hiểu nhãn dây thực $\Delta$. Khi bạn nghĩ về nó, người đánh giá chỉ đang xor'ing một nhãn dây, điều mà cô ấy có thể làm ngay cả khi không có cổng xor như vậy trong mạch -- vì vậy nếu những loại cổng này bị rò rỉ $\Delta$ thì người đánh giá có thể phá vỡ bất kỳ mạch điện nào chỉ bằng cách tưởng tượng ra một cánh cổng như vậy.
walter7x avatar
lá cờ tr
Vì vậy, có thể thay vì cung cấp một đầu vào đúng và một đầu vào sai cho mạch, để 1) lấy bất kỳ dây đầu vào không cố định nào, 2) xor nó với chính nó để lấy dây x = false, 3) đặt dây y = KHÔNG (x) =true, 4) sử dụng dây x và y để đặt bất kỳ giá trị không đổi nào?
lá cờ us
Vâng, điều đó cũng sẽ hoạt động và sẽ là một cách tương đương để diễn giải cách tiếp cận "để đầu vào `false` không đổi có nhãn dây hoàn toàn bằng 0".

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.