Điểm:0

Cách chuyển đổi khóa ký nacl thành khóa mã hóa (NACL)

lá cờ us

Do giả định về bảo mật chung, tôi muốn sử dụng cùng một cặp khóa để ký (ed22519) và trao đổi khóa mã hóa (x25519)

Làm cách nào tôi có thể chia sẻ cùng một khóa chung cho nacl.box.keyPair và nacl.sign.keyPair của mình?

Theo tôi hiểu thì điều đó là có thể bởi vì cả hai đều nằm trên cùng một đường cong.

nacl dường như chuyển đổi khóa riêng ed22519 của anh ấy bằng chức năng này:

  crypto_hash(d, sk, 32);
  d[0] &= 248;
  d[31] &= 127;
  d[31] |= 64;

Một nỗ lực thất bại

const nacl = yêu cầu ('tweetnacl')

hạt giống = nacl.randomBytes(32)

box_keypair = nacl.box.keyPair.fromSecretKey(hạt giống)

k = new Uint8Array(Buffer.concat([box_keypair.publicKey, box_keypair.secretKey]))
sign_keypair = nacl.sign.keyPair.fromSecretKey(k)

msg = nacl.randomBytes(32)
sign_msg = nacl.sign(msg, sign_keypair.secretKey)
verif = nacl.sign.open(signed_msg, sign_keypair.publicKey)
console.log(tin nhắn, tin nhắn đã ký, xác minh) // null
```
kelalaka avatar
lá cờ in
Đây không phải là một cách tiếp cận chính xác. Mặt khác, khóa chữ ký của bạn có thời gian tồn tại lâu dài, khóa x25519 phải được tạo ngẫu nhiên cho mỗi lần trao đổi khóa để bạn có thể trao đổi khóa tạm thời - điều bắt buộc trong TLS 1.3. Nếu bạn thực sự cần, hãy sử dụng `k` trong cả hai
dave_thompson_085 avatar
lá cờ cn
Nó không hoạt động VÀ đó là một ý tưởng tồi. Xem https://crypto.stackexchange.com/questions/22850/why-does-nacl-have-different-keys-for-signing-and-encryption?rq=1 https://crypto.stackexchange.com/questions/ 54353/why-are-nacl-secret-keys-64-bytes-for-signing-but-32-bytes-for-box?rq=1 https://crypto.stackexchange.com/questions/13077/can-curve25519 -keys-be-used-with-ed25519-keys?noredirect=1&lq=1 https://crypto.stackexchange.com/questions/27866/why-curve25519-for-encryption-but-ed25519-for-signatures

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