[Diễn giải] Có mật mã luồng MTP an toàn không?
Tôi sẽ lập luận rằng, ít nhất, không có cách giải thích hợp lý về "mật mã luồng MTP".
Đối với "MTP stream cipher", tôi sẽ đưa ra hai ràng buộc:
Nó mang tính quyết định [1]; nghĩa là không có IV hoặc bộ ngẫu nhiên hóa khác và trạng thái mật mã không được cập nhật giữa các thông báo. Rõ ràng, tồn tại các mật mã sử dụng IV hoặc cập nhật trạng thái mật mã; tuy nhiên, nếu bạn làm điều đó, bạn có thể dễ dàng tạo các dòng khóa khác nhau dựa trên IV/trạng thái mật mã và vì vậy tôi cho rằng đó không phải là mật mã 'MTP'
Nó đang trực tuyến; nghĩa là, khi tạo một phần của bản mã, nó lấy một phần của bản rõ và trạng thái mật mã hiện tại, rồi tạo ra phần đó của bản mã (và có thể cập nhật trạng thái mật mã). Cụ thể, phần đó của bản mã không bị ảnh hưởng bởi các phần sau của bản rõ. Tôi sẽ lập luận rằng nếu bạn có thứ gì đó vi phạm điều đó, thì đó không phải là 'mật mã luồng'.
Nếu chúng ta có một mật mã tuân theo cả hai ràng buộc trên, hãy xem nó sẽ làm gì nếu được cung cấp hai bản rõ:
$$AAAA...AAA$$
$$AAAA...AAB$$
Đối với phần đầu tiên của bản mã, nó phải tạo ra các bản mã giống hệt nhau cho cả hai thông điệp; bởi vì bản rõ mà nó được phép xem giống hệt nhau và bởi vì nó phải mang tính xác định. Do đó, thực tế là hai bản rõ có liên quan với nhau là hiển nhiên từ bản mã kết quả, do đó nó không an toàn.
Do đó, để đạt được tính bảo mật, bất kỳ mật mã nào cũng phải phá vỡ một trong hai ràng buộc.
[1]: Người ta có thể khẳng định rằng thuyết tất định tự động loại trừ khả năng bảo mật, bởi vì kẻ thù có thể phân biệt một mật mã tất định với mật mã ngẫu nhiên bằng cách yêu cầu mã hóa hai bản rõ giống hệt nhau. Tôi sẽ không làm điều đó ở đây; Không phải là vô lý khi nới lỏng các ràng buộc CPA để yêu cầu đối thủ chọn các bản rõ riêng biệt, đặc biệt là khi thực hiện với một ứng dụng trong thế giới thực có ràng buộc rằng kích thước bản mã phải giống với kích thước bản rõ.