Điểm:3

Chữ ký số với cặp khóa Curve25519

lá cờ it

Tôi có một cặp khóa công khai/riêng tư gồm các khóa Curve25519 được sử dụng bởi dây bảo vệ.

Làm cách nào tôi có thể sử dụng cặp khóa này để tạo/xác minh chữ ký số?

Tốt hơn, tôi muốn sử dụng EdDSA/Ed25519 nhưng tôi gặp khó khăn trong việc lấy một cặp khóa Ed25519 từ các khóa Curve25519 do Wireguard sử dụng.

Maarten Bodewes avatar
lá cờ in
Bạn có thể chỉ cần thực hiện dẫn xuất khóa chung bằng cách sử dụng giá trị khóa riêng đã cho cho EdDSA. Rốt cuộc, khóa riêng chỉ là một vectơ duy nhất và nhân nó với điểm cơ sở của đường cong bên phải sẽ cho bạn khóa chung. Tôi không nghĩ rằng có bất kỳ sự khác biệt nào trong w.r.t.khóa riêng (nó không chỉ là ngẫu nhiên trong một phạm vi, có một số thủ thuật trong đó) giữa Curve25519 và Ed25519, nhưng bất kỳ ai cũng vui lòng sửa lỗi cho tôi nếu tôi hiểu sai.
lá cờ it
Cám ơn vì sự gợi ý. Thật không may, điều đó sẽ không cho phép tôi sử dụng các khóa công khai Curve25519 đã trao đổi trước đó.
Maarten Bodewes avatar
lá cờ in
Tôi đã cung cấp một tiền thưởng. Xin lưu ý rằng câu trả lời phủ định cũng nên được chấp nhận khi kết luận (đủ).
Điểm:1
lá cờ uz

Tôi không nghĩ có thể thực hiện những gì bạn đang yêu cầu do cách tạo khóa để sử dụng trong ECDH so với Ed25519.

Hãy xem xét một cặp khóa Wireguard (sk1, pk1). Lưu ý rằng sk1 chỉ là 32 byte ngẫu nhiên với các bit thích hợp được đặt/xóa (nguồn) và đó pk1 có nguồn gốc từ sk1 theo cách ECDH điển hình (nguồn).

Đối với chữ ký Ed25519, bạn cần băm 32 byte ngẫu nhiên để tạo ra 64 byte, một nửa trong số đó được sử dụng để lấy khóa công khai nửa còn lại được sử dụng khi tạo chữ ký.

Vì vậy, bạn có thể lấy khóa riêng sk2 từ sk1 Và sử dụng sk2 để tạo chữ ký Ed25519. Nhưng dựa trên cuộc thảo luận trong các nhận xét, có vẻ như bạn muốn xác minh những chữ ký này mà không cần truy cập vào sk1 (có lẽ ở đầu kia của đường hầm Wireguard, nơi chỉ có pk1). Và vì bạn không thể lấy được sk1 từ pk1, bạn không thể tính toán SHA512(sk1) từ pk1. Vì vậy, bạn không thể lấy được pk2 từ pk1 một mình.

lá cờ it
Cảm ơn Eric D!. Điều đó trả lời câu hỏi của tôi :) Bạn có biết bất kỳ DSA nào có thể sử dụng tài liệu chính hiện có của tôi không?
Eric D avatar
lá cờ uz
Thật không may, tôi không biết cách nào để sử dụng an toàn các khóa hiện tại của bạn cho chữ ký điện tử với những hạn chế đó, nhưng tôi còn khá mới với công cụ này, vì vậy có thể có những kỹ thuật mà tôi không biết.
Eric D avatar
lá cờ uz
@SteffenVogel, tôi mới xem qua cái này và chưa hiểu hết về nó, nhưng tôi nghĩ nó có thể khiến bạn quan tâm. Nếu tôi hiểu chính xác bài viết, thì Signal đang sử dụng các khóa X25519/Curve25519 cho chữ ký trong sơ đồ chữ ký "XEdDSA" của nó: https://signal.org/docs/specations/xeddsa/
lá cờ it
Cảm ơn, XEdDSA dường như là thứ tôi đang tìm kiếm :)

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