làm cách nào để tôi tạo một IV hợp lệ, được cung cấp một nonce? Điều này có liên quan gì đến một bộ đếm?
Bạn có thể không mong đợi điều này, nhưng nó còn tùy; nhiều lược đồ đều an toàn như nhau (ví dụ: endian lớn so với endian nhỏ). Nói chung, mặc dù giá trị bộ đếm là một số nguyên lớn cuối cùng không dấu 128 bit. Nonce là phần quan trọng nhất (ngoài cùng bên trái) của số nguyên đó.
Hơn nữa, phần thấp ban đầu của bộ đếm sẽ bắt đầu từ (tất cả) không - không một như trong ví dụ của bạn.
Vì vậy, bạn sẽ có:
NNNNNNNN NNNNNNNN NNNNNNNN 00000000
làm giá trị bắt đầu (dưới dạng thập lục phân, trong đó N đại diện cho một số chữ số hex của nonce), trong đó bên trái là phần quan trọng nhất. Tất nhiên đây là trường hợp với nonce 96 bit và bộ đếm 32 bit. Giá trị bắt đầu này thường được gọi là IV.
Vì kích thước của nonce có thể khác nhau trong nhiều thư viện, thông thường việc tăng bộ đếm được thực hiện theo mô đun $2^{128}$, với nhược điểm là tràn ở 32 bit thấp nhất sẽ ảnh hưởng đến nonce. Người dùng thư viện AES thường có quyền kiểm tra điều này (nhưng bạn cần $2^{32} * 16 = 64 \text{GiB}$ hoặc gần như $69 \text{GB}$ để đến đó).
nhưng cùng một "thế giới xin chào" được mã hóa thành một thứ khác nhau mỗi lần
Vâng, vì vậy rất có thể nonce thay đổi mọi lúc. Điều đó hoặc khóa thay đổi, hoặc thậm chí cả khóa và nonce.