Điểm:1

Tách, ký và kết hợp

lá cờ cn

Tôi có một thiết bị ký (đối xứng) các tin nhắn rất ngắn và tôi muốn ký một tin nhắn dài.

Tôi chia nó thành nhiều tin nhắn ngắn, ký tên riêng từng tin nhắn và bây giờ kết hợp tất cả các chữ ký. Tất nhiên, cách tầm thường là ghép chúng lại, nhưng có cách nào để chữ ký kết hợp có cùng độ dài với chữ ký riêng lẻ không?

Có vẻ như không dễ để bảo vệ khỏi việc sắp xếp lại các mảnh theo một thứ tự khác (băm toàn bộ chuỗi không được coi là dễ dàng trong trường hợp của tôi).

Tuy nhiên, thiết bị bao gồm chữ ký không chỉ tin nhắn mà còn cả chỉ mục đang chạy của các tin nhắn mà nó ký. Bây giờ, rõ ràng là đường xor đơn giản của các chữ ký từng phần là một chữ ký hoàn hảo của toàn bộ thông điệp.

Có ai gặp bất cứ điều gì như thế này trong lý thuyết hoặc thực hành?

Maarten Bodewes avatar
lá cờ in
Vì vậy, trong nhận xét bên dưới câu hỏi của tôi, bạn nói rằng chữ ký của các thông báo lớn được thêm tiền tố vào bộ đếm. Tuy nhiên, bạn nói rằng bạn XOR chữ ký trên các tin nhắn nhỏ hơn để lấy được chữ ký đó, vì vậy đối với tôi điều đó không có ý nghĩa gì. Vui lòng bao gồm một mô tả chính thức về chương trình của bạn.
Điểm:1
lá cờ in

Có vẻ như không dễ để bảo vệ khỏi việc sắp xếp lại các mảnh theo một thứ tự khác.

Mà phụ thuộc; bạn chưa chỉ định thao tác kết hợp các giá trị băm vào thời điểm này.

Chắc chắn bất kỳ hàm băm mật mã nào cũng có giá trị khác nếu nó thực hiện $H(x|y)$ thay vì $H(y|x)$ ở đâu $x \neq y$ và kích thước của $x$$y$ là giống hệt nhau. Nếu không, các mục tiêu chống va chạm của hàm băm không được đáp ứng.

Có vẻ như không dễ để bảo vệ khỏi việc sắp xếp lại các mảnh theo một thứ tự khác.

Chắc chắn là có, chỉ cần sử dụng HMAC, dựa trên hàm băm mật mã với SHA-256 hoặc SHA-512.

Bây giờ, rõ ràng là đường xor đơn giản của các chữ ký từng phần là một chữ ký hoàn hảo của toàn bộ thông điệp.

Có thật không? Nếu bạn nói điều đó là hiển nhiên thì bạn cần cung cấp bằng chứng.

Giả sử bạn có chữ ký của ba tin nhắn bao gồm các tin nhắn phụ $A$$B$: $M_1=(A,B)$, $M_2=(A,B')$$M_3=(A',B)$. Bây giờ nếu bạn XOR các chữ ký với nhau, bạn sẽ nhận được giá trị giống như đối với $M_4=(A', B')$:

$$S_1 = Dấu(1, A) \oplus Dấu(2, B)$$ $$S_2 = Dấu(1, A) \oplus Dấu(2, B')$$ $$S_3 = Dấu(1, A') \oplus Dấu(2, B)$$ $$S_4 = Sign(1, A') \oplus Sign(2, B') = S_1 \oplus S_2 \oplus S_3$$

XOR là một hoạt động nguy hiểm. Những gì bạn thường theo đuổi là một cây thủy sinh sử dụng băm mật mã.

Lưu ý rằng trước tiên bạn có thể thực hiện hàm băm mật mã trên các tin nhắn và thực hiện HMAC trên các hàm băm được nối. Điều đó có thể an toàn hơn là thực hiện chữ ký trên các phần khác nhau, đặc biệt nếu đầu ra của chức năng chữ ký nhỏ.

uk-ny avatar
lá cờ cn
Không, nếu $S_1 = Sig(A,B)$, $S_2 = Sig(A,B')$ và $S_3 = Sig(A',B)$, thì $S_1 \oplus S_2 \oplus S_3$ là bởi không có nghĩa là chữ ký của $(A', B')$. Thực tế, trong trường hợp của tôi, $S_1 = Sig(1,A,B)$, $S_2 = Sig(2,A,B')$ và $S_3 = Sig(3,A',B)$, nhưng nó không liên quan đến nhận xét của bạn.
Maarten Bodewes avatar
lá cờ in
Vui lòng viết ra lược đồ của bạn một cách chính thức, sau đó chúng ta thực sự có thể tạo các câu trả lời theo chủ đề. Vì nó hiện được mô tả, tôi không hiểu tại sao câu trả lời của tôi không hoạt động. Chỉ cần nói nó không phải như vậy là không có tranh luận.

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