Giả sử rằng chúng ta muốn tăng tuổi thọ của khóa chính.Chúng ta có thể làm điều này bằng cách thêm một bước dẫn xuất khóa trước khi mã hóa thực tế không? Giả sử rằng chúng tôi sử dụng khóa chính làm tài liệu tạo khóa đầu vào và một nonce ngẫu nhiên trong HKDF, liệu chúng tôi có thể kéo dài thời gian tồn tại của khóa chính không?
Có, chắc chắn khi nói đến các yêu cầu của GCM. Tất nhiên có thể có những cân nhắc khác vì cùng một khóa chính vẫn đang bảo vệ một lượng lớn thư có thể.
Nói cách khác, là AES-GCM(HKDF(MasterKey,...)
, IV, ...) cung cấp bất kỳ lợi thế nào về tổng số tin nhắn so với AES-GCM(MasterKey, IV,...)
?
Có khả năng là có, tất nhiên điều đó phụ thuộc vào các đầu vào khác của HKDF, nhưng miễn là đầu vào của HKDF là duy nhất, bạn có chức năng một chiều an toàn làm cho các khóa dẫn xuất độc lập với nhau.
Cụ thể, giả sử rằng HKDF có muối cố định và nonce 128 bit ngẫu nhiên làm đầu vào và GCM sử dụng IV ngẫu nhiên 96 bit, thì tôi giả định rằng (WK, IV) có xác suất va chạm thấp hơn (IV).
Không có "nonce" nào được định nghĩa là tham số đầu vào cho HKDF, nhưng bạn có thể sử dụng một tham số trong Thông tin
cánh đồng.
Một "muối cố định" là rất ít hoặc không sử dụng. Tuy nhiên, bạn có thể sử dụng tham số muối trống và sử dụng nonce như một phần của Thông tin
tham số và được an toàn hợp lý.
Với một loại muối, bạn không phải suy nghĩ về việc tách miền (ví dụ: sử dụng khóa chính của bạn cho bất kỳ thứ gì khác có thể gây trở ngại), trích xuất độc lập nguồn (ví dụ: khả năng lặp lại nonce hoặc entropy xấu của khóa chính) - nhưng bạn có thể làm mà không có.
Trên thực tế, bạn có thể bỏ qua một bước nếu bạn muốn và chỉ sử dụng HKDF-Mở rộng nếu khóa chính của bạn có đủ entropy. Trong trường hợp đó, không có Muối
tham số cần thiết.
Tôi khuyên bạn nên có một số chuỗi hằng số bổ sung trong trường Thông tin cũng có thể được sử dụng để lấy các khóa từ chính cho các trường hợp sử dụng bổ sung. Ví dụ, các Thông tin
trường có thể sử dụng một nhãn gọi là "Khóa mã hóa"
. Điều này chỉ đơn giản cho biết trường hợp sử dụng của các khóa con dẫn xuất là gì - nó cung cấp một số phân tách miền.
Nếu giả định này là chính xác, làm cách nào để tính toán giới hạn cho thời gian tồn tại của khóa chính?
Giả sử rằng bạn xuất các khóa 256 bit và sử dụng ít nhất SHA-256 làm hàm băm cơ bản. Sau đó, cơ hội va chạm bổ sung có thể được coi là không đáng kể; nó phụ thuộc hoàn toàn vào các thuộc tính va chạm của nonce được cung cấp.
Như đã chỉ ra, có thể có những lý do khác khiến bạn thỉnh thoảng muốn làm mới khóa chính của mình, vì tính bảo mật của thư vẫn phụ thuộc vào một khóa duy nhất đó.