Xin chào các bạn, chào mừng quay trở lại với Phần 2 của series về mật mã học! Nếu bạn chưa xem qua Phần 1, mình thực sự khuyên bạn nên đọc trước tại đây, vì phần đó cung cấp nền tảng quan trọng cho những gì chúng ta sẽ cùng tìm hiểu trong bài này.
Trong bài viết này, chúng ta sẽ khám phá khái niệm về hệ mã tính toán (computational encryption schemes), tìm hiểu định nghĩa chính xác của bảo mật ngữ nghĩa (semantic security), và phân tích một loại tấn công đặc biệt gọi là tấn công khôi phục thông điệp (message recovery attack). Đặc biệt, chúng ta sẽ chứng minh một kết quả nền tảng: rằng bảo mật ngữ nghĩa sẽ ngăn chặn tấn công khôi phục thông điệp — và chứng minh điều đó thông qua một kỹ thuật cực kỳ quan trọng trong mật mã học: giảm bảo mật (security reduction).
Bắt đầu thôi nào!
Computational ciphers và bảo mật ngữ nghĩa
Như chúng ta đã biết, trong định lý của Shannon (Định lý 4 của bài blog Cryptography 1), cách duy nhất để đạt được bảo mật tuyệt đối là sử dụng khóa có độ dài bằng với thông điệp. Tuy nhiên, điều này không thực tế, chúng ta mong muốn rằng có thể mã hóa một thông điệp dài (ví dụ, một tài liệu có dung lượng vài megabyte) chỉ với một khóa ngắn (chẳng hạn, chỉ vài trăm bit).
Cách duy nhất để vượt qua định lý của Shannon là nới lỏng các yêu cầu bảo mật. Chúng ta sẽ làm điều này bằng cách chỉ xem xét những kẻ tấn công có khả năng tính toán thực tế, tức là những kẻ tấn công trong thế giới thực, phải thực hiện tính toán trên các máy tính thực tế với lượng thời gian và bộ nhớ hợp lý. Điều này dẫn đến một định nghĩa bảo mật yếu hơn, được gọi là bảo mật ngữ nghĩa (semantic security).