Điểm:1

Sử dụng CMAC thay vì hàm băm để ký tin nhắn

lá cờ us

Nói chung, khi chúng tôi muốn tạo chữ ký cho thông báo M, chúng tôi sử dụng hàm băm H và ký kết quả của H(M) bằng khóa riêng. Điều gì sẽ xảy ra nếu thay vì hàm băm H, chúng ta sẽ sử dụng CMAC với khóa K, sau đó ký kết quả của CMAC(M, K) bằng khóa riêng? Hoạt động như vậy có an toàn bằng mật mã không? Nếu vậy, khóa K có cần được giữ bí mật không?

Tôi có một thiết bị có bộ tăng tốc phần cứng cho AES-CMAC và tự hỏi liệu tôi có thể tận dụng nó thay vì triển khai thuật toán băm trong phần mềm hay không.

kelalaka avatar
lá cờ in
Chào mừng bạn đến với Cryptography.SE. Băm rồi ký sẽ nhanh hơn nhiều. Bạn có thể tìm thấy nhiều triển khai cho bất kỳ hàm băm tốt nào. Thuật toán chữ ký số của bạn là gì? Thông thường, chúng đi kèm với một hàm băm. Bạn có đang triển khai chữ ký điện tử của riêng mình không? Điều gì về các cuộc tấn công kênh bên?
morsisko avatar
lá cờ us
Xin chào, thuật toán chữ ký của tôi là ECDSA. Tôi có một bộ vi điều khiển với bộ tăng tốc AES-CMAC phần cứng. Tôi đang sử dụng triển khai chữ ký số mã nguồn mở của ECDSA do dự án micro-ecc cung cấp. Tôi biết rằng tôi có thể triển khai thuật toán băm trong phần mềm, nhưng băn khoăn không biết tác dụng phụ của việc sử dụng CMAC thay vì hàm băm là gì
kelalaka avatar
lá cờ in
Bạn có mã hóa cả tin nhắn không? Sau đó, với thuật toán nào?
morsisko avatar
lá cờ us
Không, tin nhắn không được mã hóa. Trên thực tế, thông báo là nội dung của phần sụn. Trong khi khởi động, thiết bị tính toán hàm băm/cmac của phần sụn, sau đó xác minh xem chữ ký ECDSA được tạo ngoại tuyến (trên máy tính) có hợp lệ cho phần sụn hiện tại hay không bằng cách sử dụng khóa chung được nhúng
Điểm:5
lá cờ my

Điều gì sẽ xảy ra nếu thay vì hàm băm H, chúng ta sẽ sử dụng CMAC với khóa K, sau đó ký kết quả của CMAC(M, K) bằng khóa riêng? Hoạt động như vậy có an toàn bằng mật mã không?

Nếu $K$ được sử dụng cho một chữ ký cụ thể là công khai (chữ ký này phải được xác minh bởi người nắm giữ khóa chung và chữ ký và không có gì bí mật), sau đó có thể dễ dàng tìm thấy thông báo thứ hai $M'$ như vậy mà $\text{CMAC}(M, K) = \text{CMAC}(M', K)$; nghĩa là, chữ ký cũng sẽ xác minh bằng tin nhắn thứ hai đó $M'$.

Trên thực tế, kẻ tấn công sẽ có rất nhiều sự linh hoạt trong việc lựa chọn $M'$; anh ta có thể chỉ định toàn bộ $M'$ tin nhắn ngoại trừ khối 16 byte được căn chỉnh ở bất kỳ đâu trong tin nhắn đó - sau đó anh ta có thể tính toán hiệu quả giá trị 16 byte đó phải là bao nhiêu; điều đó mang lại cho anh ta toàn bộ $M'$.

Mặt khác, nếu $K$ là bí mật, điều trên không áp dụng. Tất nhiên, điều đó đặt ra một câu hỏi rõ ràng: nếu người ký và người xác minh chia sẻ một bí mật (và bạn có thể tin tưởng rằng người xác minh sẽ không cố gắng tạo ra các giả mạo), tại sao bạn không sử dụng CMAC và không bận tâm đến thao tác ký ?

morsisko avatar
lá cờ us
Cảm ơn câu trả lời của bạn. Cuộc tấn công như vậy có tên để đọc thêm về điều này không? Tôi nghĩ rằng việc tìm xung đột cho CMAC với khóa đã biết không dễ hơn việc tìm xung đột cho hàm băm
poncho avatar
lá cờ my
@morsisko: bạn đã đọc nó ở đâu? Tôi không biết liệu cuộc tấn công có tên hay không - nó quá đơn giản, tôi không biết có ai bận tâm đặt tên cho nó không. Tất cả những gì kẻ tấn công cần làm là tính toán chuyển tiếp CMAC cho đến khối không xác định (rất dễ dàng nếu bạn biết k) và tính toán ngược lại từ giá trị đích cho đến khối không xác định (một lần nữa, dễ dàng nếu bạn biết k và CMAC dựa trên một mật mã khối không thể đảo ngược) - xor của hai giá trị trạng thái theo hai hướng là giá trị mà khối không xác định cần phải có.
morsisko avatar
lá cờ us
Cảm ơn. Giờ thì tôi đã hiểu

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