Xin chào mọi người đã quay lại với phần 3 trong chuỗi cryptography series. Tôi khuyên các bạn nên đọc phần 2 trước khi bước vào bài này. Các bạn có thể tìm hiểu thêm các bài viết khác trong series này tại đây.
Trong bài viết này ta sẽ đi sâu vào an toàn ngữ nghĩa và tìm hiểu các ví dụ, hệ quả của khái niệm đó. Oke cùng tìm hiểu nào.
Tính toán các bit riêng lẻ của một thông điệp
Nếu một hệ mã hóa là an toàn, thì không chỉ việc khôi phục toàn bộ thông điệp là điều khó khăn, mà việc tính toán bất kỳ thông tin một phần nào về thông điệp đó cũng phải khó khăn.
Ở đây, chúng ta sẽ không chứng minh một định lý tổng quát hoàn toàn, mà thay vào đó sẽ xét một ví dụ cụ thể. Giả sử $\mathcal{E} = (E, D)$ là một hệ mã được định nghĩa trên $(\mathcal{K}, \mathcal{M}, \mathcal{C})$, trong đó $\mathcal{M} = {0, 1}^L$. Với $m \in \mathcal{M}$, ta định nghĩa $\mathsf{parity}(m)$ là $1$ nếu số lượng bit $1$ trong $m$ là lẻ, và là $0$ nếu số lượng bit $1$ là chẵn. Nói cách khác, $\mathsf{parity}(m)$ là phép XOR của tất cả các bit trong $m$.
Chúng ta sẽ chỉ ra rằng nếu $\mathcal{E}$ là an toàn ngữ nghĩa (semantically secure), thì khi cho trước bản mã $c$ của một thông điệp ngẫu nhiên $m$, việc dự đoán $\mathsf{parity}(m)$ là điều khó. Vì $\mathsf{parity}(m)$ là một bit đơn lẻ, bất kỳ đối thủ nào cũng có thể dự đoán giá trị này đúng với xác suất $1/2$ bằng cách đoán ngẫu nhiên. Nhưng điều chúng ta muốn chỉ ra là không có đối thủ hiệu quả nào có thể làm tốt hơn đáng kể so với việc đoán ngẫu nhiên.