Đây là một câu hỏi trong thế giới thực (và vì tôi không phải là chuyên gia về mật mã nên tôi chỉ có một số kiến thức cơ bản về việc chỉ sử dụng nó chứ không hiểu sâu về cách thức hoạt động của nó.): Một hệ thống thu thập dữ liệu từ nhiều thiết bị đầu cuối được nhúng sử dụng AES128 GCM/GMAC để bảo vệ tin nhắn về mặt bảo mật và tính xác thực: mỗi tin nhắn $M$ được mã hóa $C = E(K, M)$ và được bảo vệ bằng thẻ $T=T(K, M)$ sử dụng các phím đối xứng: $(C, T)$ được gửi đến người nhận.
Trong phiên bản nâng cao của hệ thống, ngoài sự bảo vệ này, chữ ký điện tử $S=S(M)$ dựa trên ECDSA (sử dụng tài liệu chính của ECC NIST) được sử dụng: dấu hiệu đầu tiên $M$, sau đó mã hóa:
Kết quả của việc ký là Tuple $(S, M)$
sau đó ${ E(K,(S,M)), T(K, (S,M))}$ được gửi đến người nhận có khóa ECC công khai.
Câu hỏi 1: Lợi ích bổ sung mà chúng tôi có được từ việc sử dụng chữ ký bổ sung này là gì?
Nếu GCM/GMAC được sử dụng đúng cách (ví dụ: chỉ sử dụng vectơ khởi tạo một lần) và khóa đối xứng không bị xâm phạm, thì GCM/GMAC là một biện pháp bảo vệ tốt. Các tình huống mà việc sử dụng thêm chữ ký giúp cải thiện về mặt bảo mật là gì?
Câu hỏi 2: Ngoài việc ký thông báo, ECDH được sử dụng để đồng ý về các khóa đối xứng mới theo thời gian. Trong phiên bản "cũ", điều này được thực hiện thông qua thuật toán bọc khóa (chuẩn hóa), phụ thuộc vào KEK đối xứng. Một lần nữa tôi hỏi: Lợi ích thực sự của việc sử dụng ECDH thay vì Key Wrap là gì?
Tất nhiên, tôi biết các nguyên tắc của mật mã khóa công khai nhưng thực sự không thể ước tính giá trị bổ sung mà chúng tôi đạt được so với việc chỉ sử dụng biến thể đối xứng để biện minh cho nỗ lực triển khai phiên bản nâng cao.