Vấn đề chính với IV không ngẫu nhiên là hai khối ban đầu giống nhau được mã hóa bằng cùng một khóa sẽ tạo ra cùng một đầu ra. Vì vậy, với mô tả của bạn mảnh ra khỏi Ấp, biết rằng bạn đang sử dụng IV cùng lặp đi lặp lại, tôi sẽ làm như sau:
- tôi sẽ tính toán bản mã cho "Tồn tại hay không" (16 byte) cho nhiều loại mật khẩu có khả năng (như có thể được tạo ra bởi John the Ripper).
- Tôi sẽ so sánh cipertext kết quả với tất cả các thư, dựa trên tiền đề rằng chúng có thể bắt đầu với 16 byte này.
- Nếu phù hợp, tôi biết mật khẩu. Làm xong.
Tôi cũng làm như vậy với một số cụm từ nổi tiếng khác. Đây là một hoạt động tôi có thể làm ồ ạt song song ngay cả trước khi tôi nắm bắt tập tin của bạn và bộ nhớ cache trong một cơ sở dữ liệu. Thuật ngữ chung cho phương pháp này là rainbow table.
Công việc của tôi trở nên dễ dàng hơn rất nhiều nếu tôi biết 16 byte đầu tiên của thư của bạn (chẳng hạn như chúng là thư email cho một người đã biết hoặc yêu cầu HTTP có tiêu đề đã biết hoặc tương tự).
Nhưng nếu bạn sử dụng các khóa ngẫu nhiên (hoặc một KDF thích hợp như PBKDF2) thì sao? Vâng, chúng ta hãy nói rằng tôi có một vài tin nhắn từ bạn, và ít nhất một số người trong số họ có cùng 16 byte đầu tiên (một lần nữa, tiêu đề trong giao thức giúp tôi rất nhiều ở đây). Vâng, bước một là tôi biết rằng những thông điệp này có cùng 16 byte đầu tiên. Đó là thông tin khá hữu ích. Và bây giờ tôi có một số crib để tấn công tin nhắn của bạn.
Việc sử dụng lại khóa IV + trong CBC không hoàn toàn phá hủy tính bảo mật của nó (khi sử dụng lại khóa Nonce + trong chế độ CTR). Nhưng nó mang lại cho kẻ tấn công rất nhiều công cụ hữu ích trong việc đơn giản hóa cuộc tấn công.
Tôi không nói rằng bất kỳ điều nào trong số này sẽ cho phép bạn giải mã bản mã cụ thể của mình trong một khoảng thời gian ngắn. Nhưng tất cả họ đều làm suy giảm mạnh mẽ mật mã mạnh mẽ bị cáo buộc của AES.
Nguồn
2013-02-11 19:25:09
Có các mẫu/lặp lại đã biết trong bản rõ không? Tôi không biết một cách tiếp cận hoàn toàn ngẫu nhiên. –