Tôi đang nghiên cứu một giao thức sử dụng OT và đột nhiên tôi nhận ra rằng tôi không thể tưởng tượng được làm thế nào một giao thức sử dụng OT có thể an toàn độc hại.
Giả sử chúng ta có một giao thức P sử dụng OT làm giao thức con. Giả sử rằng OT được sử dụng $N$ lần. Mỗi OT có đầu vào $x_{0,i}$, $x_{1,i}$, ở đâu $i$ biểu thị $i-$thứ của Cựu ước, từ 1 đến $N$. Thật hợp lý khi giả sử rằng, đối với mọi thời điểm, người nhận chọn bit $0$ hoặc $1$ theo đầu vào của nó (ví dụ đây là trường hợp của giao thức Yao, trong đó đối với mỗi cổng, người nhận yêu cầu 0 nếu đầu vào của nó là 0 hoặc 1 nếu ngược lại).
Bây giờ giả sử rằng người gửi trong OT là độc hại và quyết định thay đổi $x_{0,N}$ với một cái gì đó khác. Nó có thể là một giá trị ngẫu nhiên, giá trị $x_{1,N}$ hay bất cứ cái gì. Chúng tôi có ba khả năng
- Giao thức hủy bỏ. Sau đó, người gửi biết rằng trong OT cuối cùng, người nhận đã yêu cầu 0.
- Giao thức không bị hủy bỏ và đầu vào thực sự chính xác. Người gửi hiện biết rằng trong OT cuối cùng, người nhận đã yêu cầu 1.
- Giao thức không bị hủy bỏ, đầu vào sai và các bên có thể phát hiện ra nó. Người gửi bây giờ biết rằng trong OT cuối cùng, người nhận đã yêu cầu 0.
- Giao thức không hủy bỏ, đầu vào sai nhưng các bên không thể phát hiện ra. Sau đó, người gửi có thể tùy ý tạo giao thức để xuất các giá trị khác với giá trị được chỉ định.
Nếu hành vi là một trong ba hành vi đầu tiên, người gửi có thể thay đổi mọi OT theo cách này và nó có $\frac{1}{2^N}$ xác suất học tất cả các yêu cầu mà không bị phát hiện, vì $N$ là một tham số cố định không phải là không đáng kể (thậm chí còn hơn thế nếu $N$ nhỏ). Trong các trường hợp khác, người nhận biết rằng người gửi là độc hại nhưng điều này không ngăn cản người nhận tìm hiểu điều gì đó.
Nếu đây là hành vi cuối cùng thì tôi không hiểu làm thế nào một giao thức như vậy có thể được coi là "an toàn", vì kẻ tấn công rất dễ thực hiện một cuộc tấn công "DoS", trong đó mọi đầu ra đều vô nghĩa.
Trong trường hợp của giao thức Yao, giả sử rằng người gửi đặt OT cuối cùng $X_{0,N}, X_{0,N}$. Làm thế nào chúng ta có thể ngăn chặn điều đó? Nếu giao thức "gặp sự cố" thì người gửi biết rằng bit cuối cùng của Bob là 0. Nó rất lớn, phải không?
Và tôi không xem xét trường hợp đối xứng: điều gì xảy ra nếu người nhận thay vì hỏi theo quy tắc, lại hỏi một cách ngẫu nhiên? Theo như tôi có thể hiểu thì hành vi này không được xem xét trong quá trình chứng minh bảo mật, tôi có sai không?
Tui bỏ lỡ điều gì vậy? Có phải những cân nhắc này nằm ngoài phạm vi và chúng tôi cho phép loại hành vi này? Có lẽ chúng ta cho rằng người gửi luôn đặt $x_0$ và $x_1$ đúng cách?