Vì vậy, người này có đúng không, việc chỉ sử dụng khóa để mã hóa một lần có khiến việc sử dụng IV có thể dự đoán được an toàn không?
Vâng, anh ấy đúng.
Cuộc tấn công này hoạt động bởi kẻ tấn công lấy được bản mã chế độ CBC và muốn xác minh nội dung bản rõ của một khối bản rõ cụ thể. Để làm điều đó, anh ta tính toán rằng đầu vào của mật mã khối sẽ là gì nếu dự đoán đó đúng (và đầu ra tương ứng), và dựa vào đó, tạo một thông báo văn bản gốc, với IV có thể dự đoán được, gửi đầu vào đó đến mật mã khối. . Sau đó, anh ta yêu cầu tin nhắn văn bản gốc đó được mã hóa bằng cùng một khóa. Nếu thông báo bản mã tương ứng có khối đầu ra dự kiến, thì anh ta biết rằng dự đoán của mình là chính xác.
Nếu chúng tôi chỉ mã hóa một tin nhắn duy nhất, thì anh ta không thể thực hiện cuộc tấn công này - anh ta có thể tìm hiểu bản mã gốc, nhưng sau đó anh ta không thể yêu cầu tin nhắn thứ hai được mã hóa bằng cùng một khóa.
Bây giờ, điều này đúng nếu bộ mã hóa lấy toàn bộ bản rõ và mã hóa toàn bộ nó, và bản mã đầy đủ đó được gửi đến người nhận (và kẻ thù). Ví dụ: nếu bạn chạy chế độ CBC tăng dần, bạn lấy phần đầu tiên của bản rõ, mã hóa nó, gửi nó đi, sau đó lấy phần thứ hai của bản rõ, rồi mã hóa phần đó, thì điều đó không an toàn - nếu kẻ tấn công có thể nghe thấy phần đầu tiên của bản mã, và sau đó (dựa trên đó) sửa đổi phần thứ hai của bản rõ, anh ta có thể thực hiện cuộc tấn công 'IV có thể dự đoán' - mặc dù có vẻ như bạn đang gửi IV thứ hai, bởi vì chế độ CBC hoạt động như thế nào, bạn thực sự là như vậy.
Ngoài ra, trong trường hợp này, kẻ tấn công không thể kiểm soát toàn bộ văn bản thuần túy được mã hóa, chỉ một phần nhỏ của nó.
Không thành vấn đề - nó vẫn an toàn ngay cả khi kẻ tấn công có quyền kiểm soát tùy ý. Ví dụ: nếu đối thủ có thể chỉ định toàn bộ thông báo ngoại trừ một bit, thì anh ta vẫn không thể biết được bit đó là gì.