Khi bạn đang làm việc với môi trường bị hạn chế nghiêm trọng này, nó có thể liên quan nhiều hơn những gì bạn có thể nhận được từ việc lắng nghe một số người lạ trên stackexchange; bạn có thể cần tuân theo một số tiêu chuẩn mã hóa bus CAN hiện có (được viết bởi một chuyên gia) hoặc nhờ một nhà phát triển chuyên nghiệp - mối quan tâm đi xa hơn đáng kể so với "làm cách nào để tôi sử dụng AES"
Tôi sẽ đi qua một số vấn đề rõ ràng:
Các mục tiêu bảo mật là gì? Có phải ai đó đang nghe trên xe buýt CAN không thể đọc tin nhắn không? Hoặc, nó chỉ để đảm bảo rằng mọi tin nhắn nhận được là từ người gửi được ủy quyền? Ví dụ: có phải ai đó trên bus CAN không thể chèn lệnh của riêng họ, lệnh ngẫu nhiên (tấn công DOS), lệnh đã chọn hoặc phát hành lại lệnh hợp lệ trước đó? Có phải vì vậy ai đó không thể sửa đổi các lệnh trong chuyến bay (điều này có thể xảy ra, nếu họ có thể nhận được bản mã, bằng cách nào đó ngăn người nhận nhận được bản mã gốc, sau đó phát hành lại bản mã đã sửa đổi)?
Bạn nói rằng bản mã phải là 8 byte - bản rõ tương ứng cũng là 8 byte? Vấn đề với điều đó là ai đó có thể chèn một bản mã 8 byte và nó sẽ giải mã thành một số bản rõ hợp lệ.
Sử dụng AES giả định rằng người gửi và người nhận chia sẻ khóa bí mật; điều này có đúng không? Khóa được chia sẻ như thế nào? Nó có được cung cấp trước tại nhà máy hoặc thời gian cài đặt không? Hoặc, nó có được đàm phán bằng cách nào đó không (và nếu có thì chi tiết là gì)?
Tôi cho rằng người gửi và người nhận không được đảm bảo duy trì trạng thái "đồng bộ"; nghĩa là, người nhận có thể bỏ lỡ một tin nhắn hợp lệ từ người gửi. Tôi cũng cho rằng hệ thống cần phải 'nỗ lực tối đa'; nghĩa là, việc hệ thống từ chối các thông báo hợp lệ là điều không thể chấp nhận được (ví dụ: bạn không muốn bỏ qua thông báo bàn đạp phanh "Tôi vừa bị nhấn" chỉ vì hệ thống mật mã chuyển sang trạng thái sai). Nếu giả định này không đúng, có một số kỹ thuật hữu ích có thể thực hiện được.
Bây giờ, với các câu trả lời có thể xảy ra ở trên, bản năng đầu tiên của tôi đối với chế độ mã hóa sẽ là sử dụng mã hóa bảo toàn định dạng, chẳng hạn như FF1 (sử dụng AES để mã hóa một thông báo có độ dài tùy ý, chẳng hạn như 64 bit). Tuy nhiên, FF1 tốn kém về mặt tính toán (nó sử dụng khoảng 10 đánh giá AES để mã hóa/giải mã thông báo 64 bit) và tốt nhất chỉ là một phần nhỏ trong toàn bộ giải pháp.