Điểm:3

Chế độ CBC với IV có thể dự đoán được nếu phím chỉ được sử dụng một lần?

lá cờ mc

Gần đây, có người nói với tôi rằng sử dụng chế độ CBC với IV có thể dự đoán được (ví dụ: tất cả bằng 0) sẽ an toàn hợp lý nếu khóa chỉ được sử dụng để mã hóa một lần. Tôi đã xem qua một số ví dụ về các cuộc tấn công bằng văn bản rõ được chọn chống lại chế độ CBC với IV có thể dự đoán được và có vẻ như họ cho rằng khóa được sử dụng cho văn bản mã hóa của kẻ tấn công giống như khóa được sử dụng cho văn bản được mã hóa của kẻ tấn công . 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ó.

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 hay có vấn đề gì mà tôi không thấy?

Maarten Bodewes avatar
lá cờ in
Thú vị - Tôi không thể tìm thấy bản lừa bịp nào trên trang web này, trong khi tôi chắc chắn rằng đây ít nhất là một phần của các câu trả lời khác. Gần nhất tôi có thể tìm thấy là [câu trả lời này](https://crypto.stackexchange.com/a/5099/1172). Rõ ràng, dữ liệu giống hệt nhau ở phần đầu của nhiều thông báo và của ít nhất một khối sẽ dẫn đến các khối bản mã giống hệt nhau, do đó, việc sử dụng lại tổ hợp khóa / IV không bao giờ là an toàn IND-CPA nếu không đưa ra tuyên bố cụ thể đối với thông báo đầu vào, *bất kể* nếu kẻ tấn công kiểm soát các tin nhắn - không cần tấn công tích cực/Oracle.
Maarten Bodewes avatar
lá cờ in
Bản sao đầy đủ [tại đây](https://security.stackexchange.com/q/10081/2651) nhưng được đăng trên [security.se] trước khi trang web này tồn tại.
automatictester avatar
lá cờ ht
Bạn có thể quan tâm đến [điều này](https://security.stackexchange.com/questions/17044/when-using-aes-and-cbc-is-it-necessary-to-keep-the-iv-secret)
Meir Maor avatar
lá cờ in
Chúng ta nên có câu trả lời cho vấn đề này ở đây trên tiền điện tử, câu hỏi hợp pháp, câu trả lời được liên kết ở trên có vẻ như là một câu trả lời hoàn chỉnh, chúng ta có nên sao chép nguyên văn và liên kết đến bản gốc không? (có thể là câu trả lời của cộng đồng). Viết một cái gì đó nguyên bản về cơ bản giống nhau, có thể thêm một cái gì đó không quá quan trọng chỉ để cảm thấy rằng chúng tôi đã làm một cái gì đó mới?
Maarten Bodewes avatar
lá cờ in
Hmm, có lẽ tôi nên đăng câu trả lời của mình lên liên kết mà trình kiểm tra tự động đưa vào đây và sau đó liên kết với nó từ trang Bảo mật. Tôi không chắc về nó, có thể là thứ gì đó cho [meta].
Điểm:3
lá cờ my

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ì.

fgrieu avatar
lá cờ ng
Tôi không thấy trong câu hỏi bất cứ điều gì làm cho một cuộc tấn công đa mục tiêu là không thể. Vì vậy, tôi không thể đồng ý. Xem [câu trả lời của tôi](https://crypto.stackexchange.com/a/93801/555).
Điểm:1
lá cờ ng

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?

Không, anh ta không chính xác ít nhất là về mặt học thuật. Và trong một số trường hợp thực tế.

Đó là do cái gọi là tấn công đa mục tiêu. Giả định $b$phím -bit, và $k$ khóa ngẫu nhiên được sử dụng (và do đó $k$ bản mã) cho khối đầu tiên phổ biến (hoặc được chọn) đã biết $P_0$ của bản rõ (ví dụ: cùng một điểm bắt đầu của tải trọng), có một cuộc tấn công được gọi là đa mục tiêu với chi phí dự kiến $2^{b-1}/k$ mã hóa khôi phục một bản rõ đầy đủ, đó là $k$ nhanh hơn nhiều lần so với IV ngẫu nhiên. Cuộc tấn công đó chỉ đơn giản là liệt kê các khóa, mã hóa các khóa cố định đã biết $\text{IV}\oplus P_0$và tìm kiếm kết quả trong một bảng gồm tất cả các khối bản mã đầu tiên (có thể được tối ưu hóa để chỉ tốn một lần truy cập bộ nhớ).

Ngay cả khi "khối văn bản rõ đầu tiên chung (hoặc được chọn) đã biết" điều kiện được đáp ứng, cuộc tấn công này hiếm khi là một thảm họa trong thực tế đối với các khóa ngẫu nhiên 128-bit hoặc lớn hơn, ngay cả đối với các khóa rất lớn $k$ (có thể là nhiều triệu trong một số trường hợp thực tế, ví dụ: khóa phiên). Đó là bởi vì việc lưu trữ và truy cập bảng cần thiết thực sự có chi phí không đáng kể (đầu tư và điện năng). Thật khó để tưởng tượng chúng ta mất hơn 20 bit bảo mật trước kẻ tấn công sử dụng ASIC, đây là cách hợp lý nhất để thực hiện cuộc tấn công như vậy đối với khóa 128 bit bằng vũ lực. Nhưng vấn đề có thể trở nên nghiêm trọng nếu khóa được xác định rõ ràng từ mật khẩu và thậm chí có hàng nghìn mật khẩu được sử dụng.

poncho avatar
lá cờ my
Nếu chỉ có một triệu chìa khóa có thể, thì bạn đã hỏng khá nhiều rồi ...
fgrieu avatar
lá cờ ng
@poncho: Tôi đã làm rõ ý của tôi. Triệu của tôi (bây giờ là hàng nghìn) không phải là số khóa _possible_ cho mật mã khối, mà là số lượng mật khẩu được sử dụng thực sự, do đó, _actually sử dụng các khóa đích_ cho mật mã khối, được tạo bởi hàm dẫn xuất khóa dựa trên mật khẩu, ví dụ: Argon2 Scrypt hoặc PBKDF2 được cho là thiếu muối ngẫu nhiên.
Meir Maor avatar
lá cờ in
Tôi thấy thật tuyệt khi tôi đã bình chọn hai câu trả lời hay, một câu trả lời có và một câu trả lời không.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.