Một mã xác thực thông điệp (MAC) được xác định bởi một bộ ba của các thuật toán hiệu quả , đáp ứng như sau (định nghĩa được lấy từ mục 4.3 của cuốn sách Katz-LINDELL ) :
- Trên đầu vào , thuật toán G e n tạo khóa k ≥ n .
- Mở đầu vào được tạo ra bởi G e n , và một số thông điệp m ∈ { 0 , 1 } * , thuật toán M Một C tạo ra một thẻ t . Ta viết t ← M A C k ( m ) .
- Khi nhập một bộ ba , thuật toán V e r i f tạo ra một bit b . Chúng tôi viết b ← V e r i f k ( m , t ) .
Đó là yêu cầu mà cho tất cả ra bởi G e n và tất cả m ∈ { 0 , 1 } * , chúng ta có V e r i f k ( m , M Một C k ( m ) ) = 1 .
Yêu cầu bảo mật được xác định thông qua thử nghiệm sau, giữa người thách thức và đối thủ :
- .
- .
- Đặt là tập hợp tất cả các truy vấn mà A yêu cầu đối với lời tiên tri của nó.
- Đầu ra của thử nghiệm được xác định là 1 khi và chỉ khi:
- và
- .
MAC được coi là an toàn nếu xác suất thử nghiệm đầu ra 1 không đáng kể trong .
Thử nghiệm ở trên giống với thử nghiệm "bản rõ được chọn" dựa trên sơ đồ mã hóa đối xứng, trong đó đối thủ có thể có được bản mã tương ứng với các thông điệp mà anh ta chọn. Trong một cuộc tấn công mạnh mẽ hơn, được gọi là cuộc tấn công "mật mã được chọn", đối thủ cũng được phép truy cập vào một nhà tiên tri giải mã.
Vì vậy, câu hỏi của tôi là:
Điều gì xảy ra nếu chúng ta cũng cho phép đối thủ MAC truy cập vào một lời tiên tri xác minh? Nói cách khác, nếu dòng 2 của thí nghiệm được thay thế bằng dòng sau:
.
Lưu ý rằng trong thử nghiệm mới, chỉ bao gồm các truy vấn A yêu cầu từ nhà tiên tri M A C k .