Vâng, bạn đúng.
Một định nghĩa chính thức về IND-CPA thực sự bị thiếu trong câu hỏi của tôi. Ở đây, tôi sử dụng thuật ngữ "IND-CPA" một cách không chính thức để chỉ thuộc tính mà một sơ đồ mã hóa có thể dẫn đến các bản mã giả ngẫu nhiên trong $\mathcal{C}_1$
Tất nhiên, đây là một giả định mạnh mẽ hơn so với IND-CPA, nhưng thật nhàm chán khi chỉ ra điều này.
Thực sự, giả định này có thể được viết là
$\mathsf{Enc}_k$ là một gia đình PRF.
Có lẽ sẽ đơn giản hơn khi nghĩ về điều này dưới dạng PRF, vì vậy tôi sẽ nhanh chóng chỉ ra rằng nếu $F_k, G_k$ là (riêng lẻ) PRF, sau đó $(F_k, G_k)$ không cần thiết, ví dụ: chia sẻ khóa PRF có thể phá vỡ bảo mật.
Điều này là do sự phụ thuộc giữa các thành phần bên trái và bên phải, như bạn đã đoán.
Để cho $F_k$ là một PRF, và để cho $G_k = F_k^{\circ 2}$, I E. $G_k(x) = F_k(F_k(x))$.
Thật đơn giản để thấy rằng $G_k$ là (riêng lẻ) một PRF --- bất kỳ dấu hiệu phân biệt nào đối với nó đều ngụ ý dấu hiệu phân biệt đối với $F_k$, vì bạn có thể mô phỏng truy cập truy vấn một cách hiệu quả tới $G_k$ cấp truy vấn truy cập vào $F_k$.
Hiện nay, $(F_k, F_k^{\circ 2})$ không phải là một PRF.
Điều này là do, đưa ra một lời tiên tri $\mathcal{O}(\cdot)$ đó là thực hoặc ngẫu nhiên, bạn có thể.
- $(y_1, y_2)\gets \mathcal{O}(x)$,
- $(z_1, z_2) \gets \mathcal{O}(y_1)$,
- đoán THẬT nếu $y_2 = z_1$và NGẪU NHIÊN nếu không.
NẾU $\mathcal{O}(x) = (F_k(x), F_k^{\circ 2}(x))$ là PRF của bạn, sau đó $y_2 = F_k^{\circ 2}(x)$, và $z_1 = F_k(y_1)= F_k(F_k(x)) = F_k^{\circ 2}(x)$ va chạm.
Trong trò chơi ngẫu nhiên, xác suất xảy ra xung đột của hai giá trị bất kỳ là khá nhỏ, vì vậy điều này ngay lập tức hàm ý một sự phân biệt khá tốt.
Có nhiều vấn đề ngay lập tức mặc dù.
Một cách để xây dựng $\mathsf{Enc}_k(m)$ là bởi XORing $m$ với một PRF, ví dụ $\mathsf{Enc}_k(m) = (r, F_k(r)\oplus m)$.
Đây đơn giản là chế độ bộ đếm ngẫu nhiên (trong đó các thông báo là một khối duy nhất).
Trong bối cảnh này, việc xây dựng chung là $(m_1,m_2)\mapsto (r, F_k(r)\oplus m_1, F_k(m_2))$.
Một lần nữa, bằng cách truy vấn trên $(m_1, m_2)$, và sau đó truy vấn $(m_3, r)$, người ta có thể có được một bộ phân biệt hiệu quả.
Điều này có nghĩa là một công trình xây dựng tự nhiên (trong đó $\mathsf{Enc}$ là chế độ bộ đếm ngẫu nhiên) cũng không an toàn trong cài đặt của bạn.