Lý lịch
MuSig là phần mở rộng của/xuất phát từ chữ ký Schnorr bằng cách sử dụng các nhóm tuần hoàn trên các đường cong elip. bên trong bản gốc, các tác giả chỉ ra rằng multi-Schnorr ngây thơ dễ bị tấn công bằng phím lừa đảo:
Được cho $\Bbb G$ là một nhóm tuần hoàn của thứ tự nguyên tố; $g$ là điểm máy phát điện; $H$ là một hàm băm; $m$ là tin nhắn để ký; và có $n$ những người tham gia:
Để cho $L = \{ X_1 = g^{x_1},..., X_n = g^{x_n} \}$ là nhiều bộ khóa của người tham gia.
Hãy để mỗi chia sẻ nonce được $R_i = g^{r_i}$.
Tính nonce tổng hợp: $R = \prod_{i=1}^nR_i$
Tính khóa tổng hợp: $\tilde X = \prod_{i=1}^nX_i$
Tính toán thử thách: $c = H(\tilde X, R, m)$
Tính từng chữ ký một phần: $s_i = r_i + cx_i$
Tính toán chữ ký tổng hợp: $s = \sum_{i=1}^ns_i$
Chữ ký cho khóa tổng hợp $\tilde X$ và tin nhắn $m$ Hiện tại là $(R, s)$ và có thể được xác minh:
$g^s = R\tilde X^c$
Nếu một người tham gia là một diễn viên xấu và đợi để thu thập tất cả các khóa của người tham gia khác trước khi gửi khóa của mình, anh ta có thể tính toán một cặp khóa cho phép anh ta đăng nhập vào nhóm bằng cách đảo ngược tích một phần:
$X_1 = g^{x_1} * {(\prod_{i=2}^nX_i)}^{-1}$
Đóng góp chính của bài báo MuSig là một sơ đồ ngăn chặn cuộc tấn công khóa lừa đảo bằng cách chuyển đổi từng khóa của người tham gia sau khi trao đổi khóa theo cách cho phép tổng hợp khóa trong mô hình khóa công khai đơn giản:
Để cho $\langle L \rangle$ là một thứ tự xác định của $L$.
Để cho $a_i = H(\langle L \rangle, X_i)$
tính toán $\tilde X = \prod_{i=1}^n{X_i}^{a_i}$
Một vấn đề nổi tiếng với việc trao đổi các nonce là trong các phiên đồng thời với các nonce được chia sẻ trước, kẻ tấn công có thể sử dụng cuộc tấn công sinh nhật tổng quát của Wagner để làm sai lệch đầu ra hàm băm và do đó giả mạo chữ ký một cách hiệu quả. Giải pháp cho vấn đề này là yêu cầu tất cả những người tham gia cam kết với một giá trị nonce và chia sẻ trước cam kết thay vì nonce; khi đến lúc tạo chữ ký nhóm, các nonce được trao đổi và giao thức sẽ hủy bỏ nếu một nonce nhận được không ánh xạ tới một cam kết.
Câu hỏi
Có thể giải quyết cuộc tấn công khóa giả mạo bằng cách cam kết sử dụng khóa chung trước khi trao đổi các khóa đó không? Điều này sẽ cho phép tất cả những người tham gia phát hiện xem có bất kỳ người tham gia nào khác đang cố thao túng khóa công khai của anh ta để cho phép các chữ ký đơn lẻ cho nhóm hay không. Sau đó, phiên này có thể bị hủy và khóa tổng hợp gian lận bị bỏ qua.
Điều này có đủ để giảm thiểu cuộc tấn công bằng khóa giả mạo hay nó thiếu sự đảm bảo an ninh trong một số trường hợp nhất định?