Điểm:1

Kích thước của bộ đếm ở chế độ CTR

lá cờ us

Nếu tôi hiểu chính xác, trong chế độ CTR, tôi mã hóa nonce hoặc IV cùng với bộ đếm dưới dạng một khối, sau đó được XOR với văn bản gốc. Đối với khối tiếp theo, tôi tăng bộ đếm. Có một kích thước cố định của bộ đếm để có thể lặp qua tất cả các khối hay nó bắt đầu lại từ 0 tại một số điểm?

Ví dụ: nếu một thuật toán có kích thước khối là 16 byte, thì về mặt lý thuyết, tôi có thể lặp lại hơn 4,3 tỷ khối (68,8GiB) khi bộ đếm của tôi là 4 byte. Nhưng điều gì xảy ra nếu dữ liệu của tôi thậm chí còn lớn hơn? Bộ đếm lớn như thế nào để IV vẫn được giữ nguyên và trong khối đầu tiên không có nhiều byte chỉ được lấp đầy bằng 0?

Cảm ơn trước

Luqus avatar
lá cờ us
Không hẳn. Tôi muốn biết làm thế nào điều này chủ yếu được xử lý bởi các thuật toán tiêu chuẩn như Java Cipher ở chế độ CTR.
Maarten Bodewes avatar
lá cờ in
@kelalaka Điều đó không chính xác, Java luôn có bộ đếm (chế độ `"CTR"`), bạn sử dụng nó như ví dụ: `"AES/CTR/NoPadding"`. Java 10 đã khá cũ, nhưng [Java 6](https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#Cipher) chắc chắn đã có nó.
Maarten Bodewes avatar
lá cờ in
Câu trả lời của tôi cho câu hỏi được liên kết là: "Mặc dù bộ đếm thường được chỉ định là tách biệt với nonce trong các giao thức, nhưng việc triển khai thường có một bộ đếm có cùng kích thước với kích thước khối. Trong trường hợp đó, nonce là một phần của các bit quan trọng nhất của bộ đếm bắt đầu." Vì vậy, đây là câu trả lời chung: nó phụ thuộc vào thư viện. Nhà cung cấp tiêu chuẩn trong Java sử dụng bộ đếm endian lớn 16 byte/128 bit. Nếu bạn muốn nó không tràn vào nonce, bạn sẽ phải tự giới hạn số lượng khối/byte được mã hóa.
Maarten Bodewes avatar
lá cờ in
Nếu bạn muốn, tôi có thể di chuyển sang [so], nhưng sau đó câu hỏi nên được đặt cụ thể cho Java. Trường hợp chung đã được trả lời và tôi không thể tìm thấy một bản lừa bịp dễ dàng nào trên [so].
Maarten Bodewes avatar
lá cờ in
Nhận xét cuối cùng, tôi đã thêm "NIST đi sâu vào chi tiết về cách xây dựng các khối mật mã trong NIST SP 800-38a, phụ lục B, lưu ý ở cuối rằng các bộ đếm về cơ bản là giao thức cụ thể và yêu cầu về tính duy nhất phải được kiểm tra riêng." với câu trả lời của tôi trong liên kết khác, tôi nghĩ rằng điều đó có thể khiến bạn quan tâm.
Luqus avatar
lá cờ us
@MaartenBodewes cảm ơn vì thông tin bổ sung, điều đó sẽ trả lời câu hỏi cho tôi.
Maarten Bodewes avatar
lá cờ in
@Luqus Chà, chúng tôi luôn có thể cung cấp thêm thông tin: xem [tại đây](https://stackoverflow.com/a/70323458/589259) về kích thước nonce bên trong IV/bộ đếm 128 bit. Nếu bạn xem [simple arppoximations](https://en.wikipedia.org/wiki/Birthday_attack#Simple_approximation) trên Wikipedia về giới hạn sinh nhật thì bạn có thể tính toán, ví dụ: rủi ro xảy ra va chạm là gì nếu bạn cần một kích thước bộ đếm cụ thể (với kích thước nonce là kích thước còn lại).
kelalaka avatar
lá cờ in
Tuy nhiên, hãy nhớ rằng NIST cho biết bộ đếm 64-nonce và 64-bit, [bạn nên dừng lâu hơn mức này](https://crypto.stackexchange.com/a/85572/18298) nếu bạn đang sử dụng PRP làm AES thay thế của một PRF là ChaCha.
kelalaka avatar
lá cờ in
@MaartenBodewes Yeap, bạn nói đúng. Tôi thường kiểm tra lại. Tôi nghĩ rằng tôi mới chỉ xem [Javax](https://docs.oracle.com/javase/10/docs/api/javax/crypto/Cipher.html)

Đă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.